Megosztás a következőn keresztül:


Egyéni tartománynevek hozzárendelése az Event Grid-névtér MQTT- és HTTP-gazdagépneveihez

Az Event Grid-névtér a létrehozáskor automatikusan HTTP-állomásnevet kap. Ha az MQTT engedélyezve van a névtéren, az MQTT-állomásnév is hozzá lesz rendelve a névtérhez. Az ügyfelek ezeket a gazdagépneveket használják az Event Grid névtérrel való kommunikációhoz.

Az egyéni tartományneveket hozzárendelheti az Event Grid-névtér MQTT- és HTTP-gazdagépneveihez, valamint az alapértelmezett gazdagépnevekhez. Az egyéni tartománykonfigurációk nem csak a biztonsági és megfelelőségi követelmények teljesítésében segítenek, hanem szükségtelenné teszi a tartományhoz már csatolt ügyfelek módosítását is.

Előfeltételek

Ha egyéni tartományokat szeretne használni a névterekhez, a következő előfeltételekkel kell rendelkeznie:

  • Az Ön tulajdonában lévő egyéni tartomány, amely módosíthatja a tartománynévrendszer (DNS) rekordjait. A DNS-rekordok módosításához hozzá kell férnie a tartományszolgáltató DNS-beállításjegyzékéhez, például a GoDaddyhez.
  • Secure Sockets Layer (SSL) tanúsítvány az egyéni tartományhoz egy nyilvános vagy privát hitelesítésszolgáltatótól.
  • Azure Key Vault-fiók az egyéni tartomány SSL-tanúsítványának üzemeltetéséhez.

Magas szintű lépések

Ha egyéni tartományokat szeretne használni a névterekhez, kövesse az alábbi lépéseket:

  1. Adjon hozzá DNS-bejegyzéseket, hogy az egyéni tartományt az Event Grid névtérvégpontjára irányíthassa.
  2. Engedélyezze a felügyelt identitást az Event Grid-névtérben.
  3. Hozzon létre egy Azure Key Vault-fiókot, amely az egyéni tartomány kiszolgálótanúsítványát tárolja.
  4. Szerepkör-hozzárendelés hozzáadása az Azure Key Vaultban a névtér felügyelt identitásához.
  5. Társítsa az Event Grid-névteret az egyéni tartományhoz, megadva az egyéni tartománynevet, a tanúsítványnevet és a kulcstartópéldány-referenciát.
  6. Az Event Grid-névtér létrehoz egy TXT rekordot, amelyet az egyéni tartomány tulajdonjogának igazolására használ.
  7. A tartomány tulajdonjogának igazolásához hozzon létre egy TXT rekordot az Event Grid által az előző lépésben létrehozott érték alapján.
  8. Az Event Grid ellenőrzi az egyéni tartomány TXT rekordjait, mielőtt aktiválja az egyéni tartományt az ügyfelek számára.
  9. Az ügyfelek az egyéni tartományon keresztül csatlakozhatnak az Event Grid névtérhez.

Korlátozások

  • Az egyéni tartománykonfiguráció régiónként egyedi az MQTT- és HTTP-gazdagépnevek között.
  • Az egyéni tartománykonfiguráció nem lehet azonos az azonos névtérben lévő MQTT- és HTTP-gazdagépnevek esetében.
  • Az egyéni tartománykonfiguráció nem ütközhet egyetlen MQTT- vagy HTTP-állomásnévvel sem ugyanabban a régióban lévő névtérhez.

DNS-bejegyzések hozzáadása

Hozzon létre DNS-rekordokat a tartományban, és mutasson annak az Event Grid-névtérnek a gazdagépnevére, amelyhez a tartományt társítani szeretné. További információ: Egyéni tartománynév konfigurálása azure-felhőszolgáltatáshoz.

A névtér HTTP-állomásneve a következő formátumban van: <namespace name>.centraluseuap-1.eventgrid.azure.net

A névtér MQTT-állomásneve a következő formátumban van: <namespace name>.centraluseuap-1.ts.eventgrid.azure.net

Felügyelt identitás engedélyezése az Event Grid-névtérben

A névtér a felügyelt identitás használatával éri el az Azure Key Vault-példányt az egyéni tartomány kiszolgálótanúsítványának lekéréséhez. A következő paranccsal engedélyezheti a rendszer által hozzárendelt felügyelt identitást az Event Grid-névtérben:

az eventgrid namespace update --resource-group <resource group name> --name <namespace name> --identity "{type:systemassigned}" 

A rendszer és a felhasználó által hozzárendelt identitások Azure Portalon való konfigurálásáról további információt az Event Grid-névtér felügyelt identitásának engedélyezése című témakörben talál.

Azure Key Vault-fiók létrehozása és kiszolgálótanúsítvány feltöltése

  1. Azure Key Vault-fiók létrehozásához használja a következő parancsot:

    az keyvault create --name "<your-unique-keyvault-name>" --resource-group "<resource group name>" --location "centraluseaup" 
    
  2. Tanúsítvány importálása az Azure Key Vaultba a következő paranccsal

    az keyvault certificate import --vault-name "<your-key-vault-name>" -n "<cert name>" -f "<path to your certificate pem file> " 
    

    Feljegyzés

    A tanúsítványnak tartalmaznia kell a tartománynevet a DNS tulajdonos alternatív nevére. További információ : Oktatóanyag: Tanúsítvány importálása az Azure Key Vaultban.

Szerepkör-hozzárendelés hozzáadása az Azure Key Vaultban a névtér felügyelt identitásához

Az Alábbi lépések végrehajtásával hozzáférést kell adnia a névtérhez az Azure Key Vault-fiók eléréséhez:

  1. Az Event Grid névtérrendszer felügyelt identitásnév-azonosítójának lekérése az alábbi paranccsal

    $principalId=(az eventgrid namespace show --resource-group <resource group name> --name <namespace name> --query identity.principalId -o tsv) 
    
  2. Kérje le az Azure Key Vault erőforrás-azonosítóját.

    $keyVaultResourceId=(az keyvault show --resource-group <resource group name> --name <your key vault name> --query id -o tsv) 
    
  3. Szerepkör-hozzárendelés hozzáadása a Key Vaultban a névtér felügyelt identitásához.

    az role assignment create --role "Key Vault Certificate User" --assignee $principalId --scope $keyVaultResourceId 
    

    A Key Vault hozzáférésével és a portál felületével kapcsolatos további információkért lásd : Hozzáférés biztosítása a Key Vault kulcsaihoz, tanúsítványaihoz és titkos kulcsaihoz azure-beli szerepköralapú hozzáférés-vezérléssel.

Event Grid-névtér társítása az egyéni tartományhoz

Ebben a lépésben a nem ellenőrzött egyéni tartományt társítja a névtérhez, de csak akkor használhatja, ha a következő lépésben igazolja az egyéni tartomány tulajdonjogát.

Az Azure Portal használata

Az egyéni tartományok hozzáadásához kövesse az alábbi lépéseket:

  1. Lépjen az Event Grid-névtérre az Azure Portalon

  2. Az Event Grid Namespace lapon válassza az Egyéni tartományok lehetőséget a bal oldali navigációs menüben.

  3. Az Egyéni tartományok lapon válassza az + Egyéni tartomány lehetőséget.

    Képernyőkép egy Azure Event Grid-névtér Egyéni tartományok lapjáról, amelyen a + Egyéni tartomány gomb van kiválasztva.

  4. Az Egyéni tartomány hozzáadása lapon adja meg az alábbi tulajdonságok értékeit:

    1. Tartománynév: az Event Grid-névtér egyik állomásnevéhez hozzárendelendő teljes tartománynév.

    2. Társított állomásnévtípus: az egyéni tartománynévhez társítandó alapértelmezett állomásnévtípus.

    3. Tanúsítvány URL-címe: a kiszolgálótanúsítvány tanúsítványazonosítója az Azure Key Vaultban. A tanúsítványazonosító utolsó szegmensének kizárásával csak a tanúsítvány alapazonosítóját adja meg. A tanúsítvány és a kulcstartó kiválasztásához válassza ki a tanúsítványt és a kulcstartót az előfizetésekből.

    4. Felügyelt identitás: a Key Vaulttal való hitelesítéshez használt felügyelt identitás a létrehozott kiszolgálótanúsítvány eléréséhez.

    5. Válassza a Hozzáadás lehetőséget

      Képernyőkép az Egyéni tartomány hozzáadása lapról.

  5. Mentse a TXT rekordokat , mivel ezeket az értékeket kell használnia az egyéni tartomány tulajdonjogának igazolásához.

Azure CLI-példa

Az alábbi paranccsal frissítse a névteret az egyéni tartománykonfigurációval. A következő objektum két különböző customDomains konfigurációt tartalmaz: az alatta lévő topicSpacesConfiguration konfiguráció az MQTT-végponthoz van rendelve, az alatta lévő topicsConfiguration konfiguráció pedig a HTTP-végponthoz van rendelve.

Feljegyzés

Minden egyéni tartománykonfigurációnak egyedinek kell lennie ugyanabban a régióban.

az resource create --resource-type Microsoft.EventGrid/namespaces --id /subscriptions/<Subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.EventGrid/namespaces/<Namespace Name> --is-full-object --properties @./resources/NS.json 

NS.json

{
    "properties": {
        "topicsConfiguration": {
            "hostname": "HOSTNAME",
            "customDomains": [
                {
                    "fullyQualifiedDomainName": "www.HTTPDOMAINNAME.com",
                    "identity": {
                        "type": "SystemAssigned"
                    },
                    "certificateInfo": {
                        "keyVaultArmId": " /subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.KeyVault/vaults/KEYVAULTNAME",
                        "certificateName": "CERTIFICATENAME"
                    }
                }
            ]
        },
        "topicSpacesConfiguration": {
            "state": " Enabled",
            "routeTopicResourceId": " /subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.EventGrid/namespaces/NAMESPACENAME/topics/TOPICNAME",
            "hostname": "NAMESPACENAME.westus2-1.ts.eventgrid.azure.net",
            "routingIdentityInfo": {
                "type": "None"
            },
            "customDomains": [
                {
                    "fullyQualifiedDomainName": " www.MQTTDOMAINNAME.com ",
                    "identity": {
                        "type": "SystemAssigned"
                    },
                    "certificateInfo": {
                        "keyVaultArmId": "/subscriptions/SUBSCRIPTIONNAME/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.KeyVault/vaults/KEYVAULTNAME",
                        "certificateName": "CERTIFICATENAME"
                    }
                }
            ]
        }
    }
}

Cserélje le a következő helyőrzőket a megfelelő értékekre, mentse egy névvel ellátott NS.jsonfájlba, és futtassa a CLI-parancsot.

Helytartó Leírás
HOSTNAME A gazdagép nevét az Event Grid-névtér Áttekintés lapján szerezheti be az Azure Portalon.
NAMESPACENAME Az Event Grid névterének neve.
TOPICNAME A témakör neve a névtérben.
HTTPDOMAINNAME A HTTP-tartomány neve.
MQTTDOMAINNAME Az MQTT-tartomány neve.
SUBSCRIPTIONID Az Azure-előfizetés azonosítója.
RESOURCEGROUPNAME Az Azure-erőforráscsoport neve.
KEYVAULTNAME A kulcstartó neve.
CERTIFICATENAME A tanúsítvány neve.

Az identitás típusa (type) lehet vagy SystemAssigned UserAssigned. Ha UserAssigned be van jelölve, adja meg a felhasználó által hozzárendelt identitást a userAssignedIdentity tulajdonság használatával.

A műveletre adott válasz a DNS-adatokat a következő tulajdonságok formájában tartalmazza: expectedTxtRecordName és expectedTxtRecordValue. Mentse ezeket az adatokat, mivel ezeket az értékeket kell használnia az egyéni tartomány tulajdonjogának igazolásához. Íme egy mintaválasz:

{
    "properties": {
        "topicsConfiguration": {
            "hostname": "HOSTNAME",
            "customDomains": [
                {
                    "fullyQualifiedDomainName": "www.HTTPDOMAINNAME.com",
                    "validationState": "Pending",
                    "identity": {
                        "type": "SystemAssigned"
                    },
                    "certificateInfo": {
                        "keyVaultArmId": " /subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.KeyVault/vaults/KEYVAULTNAME",
                        "certificateName": "CERTIFICATENAME"
                    },
                    "expectedTxtRecordName": "_eg. www.contoso-http.com",
                    "expectedTxtRecordValue": "<random string>"
                }
            ]
        },
        "topicSpacesConfiguration": {
            "state": " Enabled",
            "routeTopicResourceId": " /subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.EventGrid/namespaces/MSNS/topics/TOPICNAME",
            "hostname": "HOSTNAME",
            "routingIdentityInfo": {
                "type": "None"
            },
            "customDomains": [
                {
                    "fullyQualifiedDomainName": " www.MQTTDOMAINNAME.com ",
                    "validationState": "Pending",
                    "identity": {
                        "type": "SystemAssigned"
                    },
                    "certificateInfo": {
                        "keyVaultArmId": "/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.KeyVault/vaults/KEYVAULTNAME",
                        "certificateName": "CERTIFICATENAME"
                    },
                    "expectedTxtRecordName": "_eg. www.contoso-mqtt.com",
                    "expectedTxtRecordValue": "<random string>"
                }
            ]
        }
    }
}

Egyéni tartomány tulajdonjogának igazolása

A tartomány tulajdonjogának igazolásához kövesse az alábbi lépéseket:

  1. Adja hozzá a DNS-adatokat.

    Térjen vissza a tartományregisztrálójához, és hozzon létre egy új TXT rekordot a tartományához az előző lépésben másolt DNS-adatok alapján. A TXT létrehozása a tartomány számára ellenőrzi a tartománynév tulajdonjogát. Állítsa be az élettartamot (TTL) 3600 másodpercre (60 perc), majd mentse a rekordot.

  2. Ellenőrizze az egyéni tartománynevet.

    1. Az Azure Portal használatához kövesse az alábbi lépéseket az egyéni tartományok érvényesítéséhez:

      1. Az Egyéni tartományok lapon válassza a Tartományok érvényesítése lehetőséget.
      2. A Tartományok érvényesítése lapon válassza az Ellenőrzés lehetőséget.
    2. Az alábbi paranccsal frissítheti a névteret azonos egyéni tartománykonfigurációval. Ez a parancs elindítja az egyéni tartomány tulajdonjogának érvényesítését. A DNS-rekordoknak propagálása előtt ellenőriznie kell a tartományt, és a DNS-beállítások propagálási ideje a tartományregisztrálótól függ.

      A parancsra adott válaszban ellenőrizze, hogy az validationState .Approved

      az resource create --resource-type Microsoft.EventGrid/namespaces --id /subscriptions/<Subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.EventGrid/namespaces/<Namespace Name> --is-full-object --properties @./resources/NS.json 
      

      NS.json:

      {
          "properties": {
              "topicsConfiguration": {
                  "hostname": "HOSTNAME",
                  "customDomains": [
                      {
                          "fullyQualifiedDomainName": "www.HTTPDOMAINNAME.com",
                          "identity": {
                              "type": "SystemAssigned"
                          },
                          "certificateInfo": {
                              "keyVaultArmId": " /subscriptions/AZURESUBCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.KeyVault/vaults/KEYVAULTNAME",
                              "certificateName": "CERTIFICATENAME"
                          }
                      }
                  ]
              },
              "topicSpacesConfiguration": {
                  "state": " Enabled",
                  "routeTopicResourceId": " /subscriptions/AZURESUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.EventGrid/namespaces/NAMESPACENAME/topics/TOPICNAME",
                  "hostname": "HOSTNAME",
                  "routingIdentityInfo": {
                      "type": "None"
                  },
                  "customDomains": [
                      {
                          "fullyQualifiedDomainName": "www.MQTTDOMAINNAME.com ",
                          "identity": {
                              "type": "SystemAssigned"
                          },
                          "certificateInfo": {
                              "keyVaultArmId": "/subscriptions/AZURESUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.KeyVault/vaults/KEYVAULTNAME",
                              "certificateName": "CERTIFICATENAME"
                          }
                      }
                  ]
              }
          }
      }