Přiřazení vlastních názvů domén k názvům MQTT a hostitelům HTTP služby Event Grid
Obor názvů Event Gridu se při vytváření automaticky přiřadí název hostitele HTTP. Pokud je pro obor názvů povolený MQTT, přiřadí se k oboru názvů také název hostitele MQTT. Vaši klienti používají tyto názvy hostitelů ke komunikaci s oborem názvů Služby Event Grid.
Vlastní názvy domén můžete přiřadit k názvům MQTT a hostitelů HTTP služby Event Grid spolu s výchozími názvy hostitelů. Konfigurace vlastních domén vám nejen pomáhají splňovat požadavky na zabezpečení a dodržování předpisů, ale také eliminuje nutnost upravovat klienty, kteří jsou už propojeni s vaší doménou.
Požadavky
Pokud chcete použít vlastní domény pro obory názvů, musíte mít následující požadavky:
- Vlastní doména, kterou vlastníte, a může upravit její záznamy DNS (Domain Name System). Pokud chcete upravit záznamy DNS, potřebujete přístup k registru DNS pro svého poskytovatele domény, například GoDaddy.
- Certifikát SSL (Secure Sockets Layer) pro vaši vlastní doménu z veřejné nebo privátní certifikační autority.
- Účet služby Azure Key Vault pro hostování certifikátu SSL pro vaši vlastní doménu.
Základní kroky
Pokud chcete pro obory názvů používat vlastní domény, postupujte takto:
- Přidejte položky DNS, které odkazují na vlastní doménu na koncový bod oboru názvů Event Gridu.
- Povolte spravovanou identitu v oboru názvů Služby Event Grid.
- Vytvořte účet služby Azure Key Vault, který je hostitelem certifikátu serveru pro vaši vlastní doménu.
- Přidání přiřazení role ve službě Azure Key Vault pro spravovanou identitu oboru názvů
- Přidružte obor názvů event Gridu k vlastní doméně a zadejte vlastní název domény, název certifikátu a odkaz na instanci trezoru klíčů.
- Obor názvů Event Gridu vygeneruje záznam TXT, který použijete k prokázání vlastnictví vlastní domény.
- Ověření vlastnictví domény vytvořením záznamu TXT na základě hodnoty, kterou Služba Event Grid vygenerovala v předchozím kroku.
- Event Grid ověří záznamy TXT vlastní domény před aktivací vlastní domény pro použití vašich klientů.
- Klienti se můžou připojit k oboru názvů Event Gridu prostřednictvím vlastní domény.
Omezení
- Konfigurace vlastní domény je jedinečná pro každou oblast napříč názvy hostitelů MQTT a HTTP.
- Konfigurace vlastní domény nemůže být stejná pro názvy hostitelů MQTT a HTTP ve stejném oboru názvů.
- Konfigurace vlastní domény nemůže kolidovat s žádným názvem hostitele MQTT nebo HTTP pro libovolný obor názvů ve stejné oblasti.
Přidání položek DNS
Vytvořte záznamy DNS ve vaší doméně tak, aby odkazovali na název hostitele vašeho oboru názvů Event Gridu, ke kterému chcete doménu přidružit. Další informace najdete v tématu Konfigurace vlastního názvu domény pro cloudovou službu Azure.
Název hostitele HTTP pro váš obor názvů je v následujícím formátu: <namespace name>.centraluseuap-1.eventgrid.azure.net
Název hostitele MQTT pro váš obor názvů je v následujícím formátu: <namespace name>.centraluseuap-1.ts.eventgrid.azure.net
Povolení spravované identity v oboru názvů služby Event Grid
Obor názvů používá spravovanou identitu pro přístup k instanci služby Azure Key Vault k získání certifikátu serveru pro vaši vlastní doménu. Pomocí následujícího příkazu povolte spravovanou identitu přiřazenou systémem v oboru názvů Event Gridu:
az eventgrid namespace update --resource-group <resource group name> --name <namespace name> --identity "{type:systemassigned}"
Informace o konfiguraci systémových a uživatelem přiřazených identit pomocí webu Azure Portal najdete v tématu Povolení spravované identity pro obor názvů Služby Event Grid.
Vytvoření účtu služby Azure Key Vault a nahrání certifikátu serveru
Pomocí následujícího příkazu vytvořte účet služby Azure Key Vault:
az keyvault create --name "<your-unique-keyvault-name>" --resource-group "<resource group name>" --location "centraluseaup"
Pomocí následujícího příkazu naimportujte certifikát do služby Azure Key Vault.
az keyvault certificate import --vault-name "<your-key-vault-name>" -n "<cert name>" -f "<path to your certificate pem file> "
Poznámka:
Váš certifikát musí obsahovat název domény do alternativního názvu subjektu pro DNS. Další informace najdete v tématu Kurz: Import certifikátu ve službě Azure Key Vault.
Přidání přiřazení role ve službě Azure Key Vault pro spravovanou identitu oboru názvů
Přístup k oboru názvů potřebujete pro přístup k účtu služby Azure Key Vault pomocí následujícího postupu:
Získání ID instančního objektu identity spravovaného systémem služby Event Grid pomocí následujícího příkazu
$principalId=(az eventgrid namespace show --resource-group <resource group name> --name <namespace name> --query identity.principalId -o tsv)
Získejte ID prostředku služby Azure Key Vault.
$keyVaultResourceId=(az keyvault show --resource-group <resource group name> --name <your key vault name> --query id -o tsv)
Přidání přiřazení role ve službě Key Vault pro spravovanou identitu oboru názvů
az role assignment create --role "Key Vault Certificate User" --assignee $principalId --scope $keyVaultResourceId
Další informace o přístupu ke službě Key Vault a prostředí portálu najdete v tématu Poskytnutí přístupu k klíčům, certifikátům a tajným kódům služby Key Vault pomocí řízení přístupu na základě role v Azure.
Přidružení oboru názvů Event Gridu k vlastní doméně
V tomto kroku přidružíte neověřenou vlastní doménu k oboru názvů, ale nemůžete ji použít, dokud v dalším kroku neprokážete vlastnictví vlastní domény.
Použití webu Azure Portal
Pomocí následujícího postupu přidejte vlastní domény:
Na webu Azure Portal přejděte do svého oboru názvů Event Gridu .
Na stránce Obor názvů služby Event Grid vyberte v levé navigační nabídce vlastní domény.
Na stránce Vlastní domény vyberte + Vlastní doména.
Na stránce Přidat vlastní doménu zadejte hodnoty následujících vlastností:
Název domény: plně kvalifikovaný název domény, který se má přiřadit k jednomu z názvů hostitelů oboru názvů Event Gridu.
Přidružený typ názvu hostitele: výchozí typ názvu hostitele, který se má přidružit k vašemu vlastnímu názvu domény.
Adresa URL certifikátu: Identifikátor certifikátu serveru ve službě Azure Key Vault. Zahrňte pouze základní identifikátor certifikátu vyloučením posledního segmentu identifikátoru certifikátu. Místo toho můžete vybrat certifikát pomocí trezoru klíčů a vybrat certifikát a trezor klíčů z vašich předplatných.
Spravovaná identita: spravovaná identita použitá k ověření ve službě Key Vault pro přístup k vytvořenému certifikátu serveru.
Vyberte Přidat.
Záznamy TXT uložte, protože je potřeba použít tyto hodnoty k prokázání vlastního vlastnictví domény.
Příklad Azure CLI
Pomocí následujícího příkazu aktualizujte obor názvů pomocí vlastní konfigurace domény. Následující objekt obsahuje dvě různé customDomains
konfigurace: konfigurace v části topicSpacesConfiguration
je přiřazena k vašemu koncovému bodu MQTT a konfigurace v části topicsConfiguration
je přiřazena k vašemu koncovému bodu HTTP.
Poznámka:
Každá konfigurace vlastní domény musí být v rámci stejné oblasti jedinečná.
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"
}
}
]
}
}
}
Nahraďte následující zástupné symboly příslušnými hodnotami, uložte ho do souboru s názvem NS.json
a spusťte příkaz rozhraní příkazového řádku.
Držák místa | Popis |
---|---|
HOSTNAME |
Název hostitele můžete získat ze stránky Přehled vašeho oboru názvů Event Gridu na webu Azure Portal. |
NAMESPACENAME |
Název oboru názvů Event Gridu |
TOPICNAME |
Název tématu v oboru názvů |
HTTPDOMAINNAME |
Název domény HTTP. |
MQTTDOMAINNAME |
Název domény MQTT. |
SUBSCRIPTIONID |
ID předplatného Azure |
RESOURCEGROUPNAME |
Název skupiny prostředků Azure |
KEYVAULTNAME |
Název trezoru klíčů |
CERTIFICATENAME |
Název certifikátu. |
Typ identity (type
) může být buď SystemAssigned
nebo UserAssigned
. Pokud UserAssigned
je vybraná, zadejte identitu přiřazenou uživatelem pomocí userAssignedIdentity
vlastnosti.
Odpověď na tuto operaci zahrnuje informace DNS ve formě následujících vlastností: expectedTxtRecordName
a expectedTxtRecordValue
. Tyto informace uložte, protože tyto hodnoty potřebujete použít k prokázání vlastnictví vlastní domény. Tady je ukázková odpověď:
{
"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>"
}
]
}
}
}
Ověření vlastnictví vlastní domény
Pokud chcete prokázat vlastnictví domény, postupujte takto:
Přidejte informace o DNS.
Vraťte se k doménovému registrátorovi a vytvořte nový záznam TXT pro vaši doménu na základě zkopírovaných informací DNS z předchozího kroku. Vytvoření tohoto TXT pro vaši doménu ověří vlastnictví vašeho názvu domény. Nastavte hodnotu TTL (Time to Live) na 3 600 sekund (60 minut) a pak záznam uložte.
Ověřte vlastní název domény.
Pokud chcete použít Azure Portal, pomocí následujícího postupu ověřte vlastní domény:
- Na stránce Vlastní domény vyberte Ověřit domény.
- Na stránce Ověřit domény vyberte Ověřit.
Pomocí následujícího příkazu aktualizujte obor názvů s identickou konfigurací vlastní domény. Tento příkaz aktivuje ověření vlastnictví vlastní domény. Záznamy DNS se musí rozšířit, než ověříte doménu a čas šíření nastavení DNS závisí na vašem doménovém registrátorovi.
V odpovědi na příkaz ověřte, že je
Approved
.validationState
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" } } ] } } }