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:
- Adjon hozzá DNS-bejegyzéseket, hogy az egyéni tartományt az Event Grid névtérvégpontjára irányíthassa.
- Engedélyezze a felügyelt identitást az Event Grid-névtérben.
- Hozzon létre egy Azure Key Vault-fiókot, amely az egyéni tartomány kiszolgálótanúsítványát tárolja.
- Szerepkör-hozzárendelés hozzáadása az Azure Key Vaultban a névtér felügyelt identitásához.
- 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.
- Az Event Grid-névtér létrehoz egy TXT rekordot, amelyet az egyéni tartomány tulajdonjogának igazolására használ.
- 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.
- 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.
- 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
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 "centraluseuap"
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:
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)
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)
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:
Lépjen az Event Grid-névtérre az Azure Portalon
Az Event Grid Névtér lapján válassza az Egyéni tartományok lehetőséget a bal oldali navigációs menüben.
Az Egyéni tartományok lapon válassza az + Egyéni tartomány lehetőséget.
Az Egyéni tartomány hozzáadása lapon adja meg az alábbi tulajdonságok értékeit:
Tartománynév: az Event Grid-névtér egyik állomásnevéhez hozzárendelendő teljes tartománynév.
Társított állomásnévtípus: az egyéni tartománynévhez társítandó alapértelmezett állomásnévtípus.
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.
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.
Válassza a Hozzáadás lehetőséget
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.json
fá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:
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.
Ellenőrizze az egyéni tartománynevet.
Az Azure Portal használatához kövesse az alábbi lépéseket az egyéni tartományok érvényesítéséhez:
- Az Egyéni tartományok lapon válassza a Tartományok érvényesítése lehetőséget.
- A Tartományok érvényesítése lapon válassza az Ellenőrzés lehetőséget.
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/AZURESUBSCRIPTIONID/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" } } ] } } }