Aangepaste domeinnamen toewijzen aan de MQTT- en HTTP-hostnamen van de Event Grid-naamruimte
Aan de Event Grid-naamruimte wordt automatisch een HTTP-hostnaam toegewezen op het moment van maken. Als MQTT is ingeschakeld voor de naamruimte, wordt de MQTT-hostnaam ook toegewezen aan de naamruimte. Uw clients gebruiken deze hostnamen om te communiceren met de Event Grid-naamruimte.
U kunt uw aangepaste domeinnamen toewijzen aan de MQTT- en HTTP-hostnamen van uw Event Grid-naamruimte, samen met de standaardhostnamen. Aangepaste domeinconfiguraties helpen u niet alleen om te voldoen aan uw beveiligings- en nalevingsvereisten, maar ook de noodzaak om uw clients te wijzigen die al aan uw domein zijn gekoppeld.
Vereisten
Als u aangepaste domeinen voor naamruimten wilt gebruiken, moet u de volgende vereisten hebben:
- Aangepast domein dat u bezit en de DNS-records (Domain Name System) kunt wijzigen. Als u DNS-records wilt wijzigen, hebt u toegang nodig tot het DNS-register voor uw domeinprovider, zoals GoDaddy.
- Ssl-certificaat (Secure Sockets Layer) voor uw aangepaste domein vanaf een openbare of persoonlijke CA.
- Azure Key Vault-account voor het hosten van het SSL-certificaat voor uw aangepaste domein.
Stappen op hoog niveau
Als u aangepaste domeinen wilt gebruiken voor naamruimten, voert u de volgende stappen uit:
- Voeg DNS-vermeldingen toe om uw aangepaste domein te laten verwijzen naar het Event Grid-naamruimte-eindpunt.
- Schakel beheerde identiteit in uw Event Grid-naamruimte in.
- Maak een Azure Key Vault-account dat als host fungeert voor het servercertificaat voor uw aangepaste domein.
- Voeg roltoewijzing toe in Azure Key Vault voor de beheerde identiteit van de naamruimte.
- Koppel uw Event Grid-naamruimte aan het aangepaste domein, waarbij u de verwijzing naar uw aangepaste domeinnaam, certificaatnaam en sleutelkluisexemplaren opgeeft.
- De Event Grid-naamruimte genereert een TXT-record die u gebruikt om het eigendom van het aangepaste domein te bewijzen.
- Bewijs het eigendom van uw domein door een TXT-record te maken op basis van de waarde die Event Grid in de vorige stap heeft gegenereerd.
- Event Grid valideert de TXT-records van het aangepaste domein voordat het aangepaste domein wordt geactiveerd voor het gebruik van uw clients.
- Uw clients kunnen verbinding maken met de Event Grid-naamruimte via het aangepaste domein.
Beperkingen
- De configuratie van aangepaste domeinen is uniek per regio tussen MQTT- en HTTP-hostnamen.
- De configuratie van aangepaste domeinen kan niet identiek zijn voor de MQTT- en HTTP-hostnamen onder dezelfde naamruimte.
- De configuratie van aangepaste domeinen kan niet botsen met een MQTT- of HTTP-hostnaam voor een naamruimte in dezelfde regio.
DNS-vermeldingen toevoegen
Maak DNS-records in uw domein om te verwijzen naar de hostnaam van uw Event Grid-naamruimte waaraan u uw domein wilt koppelen. Zie Een aangepaste domeinnaam configureren voor een Azure-cloudservice voor meer informatie.
De HTTP-hostnaam voor uw naamruimte heeft de volgende indeling: <namespace name>.centraluseuap-1.eventgrid.azure.net
De MQTT-hostnaam voor uw naamruimte heeft de volgende indeling: <namespace name>.centraluseuap-1.ts.eventgrid.azure.net
Beheerde identiteit inschakelen in uw Event Grid-naamruimte
De naamruimte maakt gebruik van de beheerde identiteit voor toegang tot uw Azure Key Vault-exemplaar om het servercertificaat voor uw aangepaste domein op te halen. Gebruik de volgende opdracht om door het systeem toegewezen beheerde identiteit in te schakelen in uw Event Grid-naamruimte:
az eventgrid namespace update --resource-group <resource group name> --name <namespace name> --identity "{type:systemassigned}"
Zie Beheerde identiteit inschakelen voor een Event Grid-naamruimte voor informatie over het configureren van systeem- en door de gebruiker toegewezen identiteiten met behulp van Azure Portal.
Een Azure Key Vault-account maken en uw servercertificaat uploaden
Gebruik de volgende opdracht om een Azure Key Vault-account te maken:
az keyvault create --name "<your-unique-keyvault-name>" --resource-group "<resource group name>" --location "centraluseaup"
Gebruik de volgende opdracht om een certificaat te importeren in Azure Key Vault
az keyvault certificate import --vault-name "<your-key-vault-name>" -n "<cert name>" -f "<path to your certificate pem file> "
Notitie
Uw certificaat moet de domeinnaam in de alternatieve onderwerpnaam voor DNS bevatten. Zie Zelfstudie: Een certificaat importeren in Azure Key Vault voor meer informatie.
Roltoewijzing toevoegen in Azure Key Vault voor de beheerde identiteit van de naamruimte
U moet toegang tot de naamruimte opgeven voor toegang tot uw Azure Key Vault-account met behulp van de volgende stappen:
De principal-id van de Event Grid-naamruimte van het systeem beheerde identiteit ophalen met behulp van de volgende opdracht
$principalId=(az eventgrid namespace show --resource-group <resource group name> --name <namespace name> --query identity.principalId -o tsv)
Haal uw Azure Key Vault-resource-id op.
$keyVaultResourceId=(az keyvault show --resource-group <resource group name> --name <your key vault name> --query id -o tsv)
Voeg roltoewijzing toe in Key Vault voor de beheerde identiteit van de naamruimte.
az role assignment create --role "Key Vault Certificate User" --assignee $principalId --scope $keyVaultResourceId
Zie Toegang tot Key Vault-sleutels, -certificaten en -geheimen bieden met een op rollen gebaseerd toegangsbeheer van Azure voor meer informatie over toegang tot Key Vault en de portal.
Uw Event Grid-naamruimte koppelen aan het aangepaste domein
In deze stap koppelt u uw niet-geverifieerde aangepaste domein aan de naamruimte, maar u kunt dit pas gebruiken als u uw eigendom van het aangepaste domein in de volgende stap bewijst.
Azure Portal gebruiken
Gebruik de volgende stappen om uw aangepaste domeinen toe te voegen:
Navigeer naar uw Event Grid-naamruimte in Azure Portal
Selecteer op de pagina Event Grid-naamruimte aangepaste domeinen in het linkernavigatiemenu.
Selecteer + Aangepast domein op de pagina Aangepaste domeinen.
Geef op de pagina Aangepast domein toevoegen waarden op voor de volgende eigenschappen:
Domeinnaam: de volledig gekwalificeerde domeinnaam die moet worden toegewezen aan een van uw Event Grid-naamruimtehostnamen.
Gekoppeld hostnaamtype: het standaardhostnaamtype dat moet worden gekoppeld aan uw aangepaste domeinnaam.
Certificaat-URL: de certificaat-id van het servercertificaat in uw Azure Key Vault. Alleen de basis-id van het certificaat opnemen door het laatste segment van de certificaat-id uit te sluiten. U kunt een certificaat selecteren met behulp van een sleutelkluis om het certificaat en de sleutelkluis in uw abonnementen te selecteren.
Beheerde identiteit: de beheerde identiteit die wordt gebruikt voor verificatie met de Key Vault voor toegang tot het servercertificaat dat is gemaakt.
Selecteer Toevoegen
Sla de TXT-records op zoals u deze waarden moet gebruiken om uw eigendom van uw aangepaste domein te bewijzen.
Azure CLI-voorbeeld
Gebruik de volgende opdracht om uw naamruimte bij te werken met de configuratie van het aangepaste domein. Het volgende object bevat twee verschillende customDomains
configuraties: de configuratie waaronder topicSpacesConfiguration
wordt toegewezen aan uw MQTT-eindpunt en de configuratie die wordt uitgevoerd topicsConfiguration
, is toegewezen aan uw HTTP-eindpunt.
Notitie
Elke aangepaste domeinconfiguratie moet uniek zijn binnen dezelfde regio.
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"
}
}
]
}
}
}
Vervang de volgende tijdelijke aanduidingen door de juiste waarden, sla deze op in een bestand met de naam NS.json
en voer de CLI-opdracht uit.
Tijdelijke houder | Beschrijving |
---|---|
HOSTNAME |
U kunt de hostnaam ophalen op de overzichtspagina van uw Event Grid-naamruimte in Azure Portal. |
NAMESPACENAME |
Naam van de Event Grid-naamruimte. |
TOPICNAME |
Naam van het onderwerp in de naamruimte. |
HTTPDOMAINNAME |
Naam van het HTTP-domein. |
MQTTDOMAINNAME |
Naam van het MQTT-domein. |
SUBSCRIPTIONID |
Azure-abonnements-id. |
RESOURCEGROUPNAME |
De naam van de Azure-resourcegroep. |
KEYVAULTNAME |
Naam van de sleutelkluis. |
CERTIFICATENAME |
Naam van het certificaat. |
Het identiteitstype (type
) kan SystemAssigned
of UserAssigned
. Als UserAssigned
dit is geselecteerd, geeft u de door de gebruiker toegewezen identiteit op met behulp van de userAssignedIdentity
eigenschap.
Het antwoord op deze bewerking bevat de DNS-gegevens in de vorm van de volgende eigenschappen: expectedTxtRecordName
en expectedTxtRecordValue
. Sla deze informatie op omdat u deze waarden moet gebruiken om uw eigendom van uw aangepaste domein te bewijzen. Hier volgt een voorbeeldantwoord:
{
"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>"
}
]
}
}
}
Uw eigendom van uw aangepaste domein bewijzen
Voer de volgende stappen uit om uw domeineigendom te bewijzen:
Voeg de DNS-gegevens toe.
Ga terug naar uw domeinregistrar en maak een nieuwe TXT-record voor uw domein op basis van uw gekopieerde DNS-gegevens uit de vorige stap. Als u deze TXT maakt voor uw domein, wordt het eigendom van uw domeinnaam gecontroleerd. Stel de time to live (TTL) in op 3.600 seconden (60 minuten) en sla de record vervolgens op.
Verifieer de naam van uw aangepaste domein.
Volg deze stappen om uw aangepaste domeinen te valideren om Azure Portal te gebruiken:
- Selecteer Op de pagina Aangepaste domeinen de optie Domeinen valideren.
- Selecteer Valideren op de pagina Domeinen valideren.
Gebruik de volgende opdracht om uw naamruimte bij te werken met een identieke aangepaste domeinconfiguratie. Met deze opdracht wordt de validatie van het eigendom van het aangepaste domein geactiveerd. De DNS-records moeten worden doorgegeven voordat u het domein kunt verifiëren en de doorgiftetijd van uw DNS-instellingen is afhankelijk van uw domeinregistrar.
Controleer in het antwoord op uw opdracht of het
validationState
isApproved
.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" } } ] } } }