Event Grid ad alanının MQTT ve HTTP ana bilgisayar adlarına özel etki alanı adları atama
Event Grid ad alanına, oluşturma sırasında otomatik olarak bir HTTP ana bilgisayar adı atanır. Ad alanında MQTT etkinleştirildiyse, MQTT ana bilgisayar adı da ad alanına atanır. İstemcileriniz Event Grid ad alanıyla iletişim kurmak için bu konak adlarını kullanır.
Özel etki alanı adlarınızı Event Grid ad alanınızın MQTT ve HTTP ana bilgisayar adlarına ve varsayılan konak adlarına atayabilirsiniz. Özel etki alanı yapılandırmaları yalnızca güvenlik ve uyumluluk gereksinimlerinizi karşılamanıza yardımcı olmakla kalmaz, aynı zamanda zaten etki alanınıza bağlı olan istemcilerinizi değiştirme gereksinimini de ortadan kaldırır.
Önkoşullar
Ad alanları için özel etki alanlarını kullanmak için aşağıdaki önkoşullara sahip olmanız gerekir:
- Sahip olduğunuz ve Etki Alanı Adı Sistemi (DNS) kayıtlarını değiştirebileceğiniz özel etki alanı. DNS kayıtlarını değiştirmek için GoDaddy gibi etki alanı sağlayıcınızın DNS kayıt defterine erişmeniz gerekir.
- Genel veya özel CA'dan özel etki alanınız için Güvenli Yuva Katmanı (SSL) sertifikası.
- Özel etki alanınız için SSL sertifikasını barındırmak için Azure Key Vault hesabı.
Üst düzey adımlar
Ad alanları için özel etki alanları kullanmak için şu adımları izleyin:
- Özel etki alanınızı Event Grid ad alanı uç noktasına yönlendirmek için DNS girdileri ekleyin.
- Event Grid ad alanınızda yönetilen kimliği etkinleştirin.
- Özel etki alanınız için sunucu sertifikasını barındıran bir Azure Key Vault hesabı oluşturun.
- Ad alanının yönetilen kimliği için Azure Key Vault'a rol ataması ekleyin.
- Özel etki alanı adınızı, sertifika adınızı ve anahtar kasası örneği başvurunuzu belirterek Event Grid ad alanınızı özel etki alanıyla ilişkilendirin.
- Event Grid ad alanı, özel etki alanının sahipliğini kanıtlamak için kullandığınız bir TXT kaydı oluşturur.
- Event Grid'in önceki adımda oluşturduğu değere göre bir TXT kaydı oluşturarak etki alanı sahipliğinizi kanıtlayın.
- Event Grid, istemcilerinizin kullanımı için özel etki alanını etkinleştirmeden önce özel etki alanının TXT kayıtlarını doğrular.
- İstemcileriniz özel etki alanı aracılığıyla Event Grid ad alanına bağlanabilir.
Sınırlamalar
- Özel etki alanı yapılandırması, MQTT ve HTTP ana bilgisayar adları genelinde bölge başına benzersizdir.
- Özel etki alanı yapılandırması, aynı ad alanı altındaki MQTT ve HTTP ana bilgisayar adları için aynı olamaz.
- Özel etki alanı yapılandırması, aynı bölgedeki herhangi bir ad alanı için MQTT veya HTTP ana bilgisayar adıyla çakışmaz.
DNS girdileri ekleme
Etki alanınızı ilişkilendirmek istediğiniz Event Grid ad alanınızın ana bilgisayar adına işaret etmek için etki alanınızda DNS kayıtları oluşturun. Daha fazla bilgi edinmek için bkz . Azure bulut hizmeti için özel etki alanı adı yapılandırma.
Ad alanınız için HTTP ana bilgisayar adınız aşağıdaki biçimdedir: <namespace name>.centraluseuap-1.eventgrid.azure.net
Ad alanınız için MQTT ana bilgisayar adınız aşağıdaki biçimdedir: <namespace name>.centraluseuap-1.ts.eventgrid.azure.net
Event Grid ad alanınızda yönetilen kimliği etkinleştirme
Ad alanı, özel etki alanınız için sunucu sertifikasını almak üzere Azure Key Vault örneğine erişmek için yönetilen kimliği kullanır. Event Grid ad alanınızda sistem tarafından atanan yönetilen kimliği etkinleştirmek için aşağıdaki komutu kullanın:
az eventgrid namespace update --resource-group <resource group name> --name <namespace name> --identity "{type:systemassigned}"
Azure portalını kullanarak sistem ve kullanıcı tarafından atanan kimlikleri yapılandırma hakkında bilgi için bkz . Event Grid ad alanı için yönetilen kimliği etkinleştirme.
Azure Key Vault hesabı oluşturma ve sunucu sertifikanızı karşıya yükleme
Azure Key Vault hesabı oluşturmak için aşağıdaki komutu kullanın:
az keyvault create --name "<your-unique-keyvault-name>" --resource-group "<resource group name>" --location "centraluseuap"
Sertifikayı Azure Key Vault'a aktarmak için aşağıdaki komutu kullanın
az keyvault certificate import --vault-name "<your-key-vault-name>" -n "<cert name>" -f "<path to your certificate pem file> "
Not
Sertifikanız, DNS için Konu Alternatifi adına etki alanı adını içermelidir. Daha fazla bilgi için bkz . Öğretici: Azure Key Vault'ta sertifika içeri aktarma.
Ad alanının yönetilen kimliği için Azure Key Vault'ta rol ataması ekleme
Aşağıdaki adımları kullanarak Azure Key Vault hesabınıza erişmek için ad alanına erişim sağlamanız gerekir:
Aşağıdaki komutu kullanarak Event Grid ad alanı sistemi yönetilen kimlik sorumlusu kimliğini alma
$principalId=(az eventgrid namespace show --resource-group <resource group name> --name <namespace name> --query identity.principalId -o tsv)
Azure Key Vault kaynak kimliğinizi alın.
$keyVaultResourceId=(az keyvault show --resource-group <resource group name> --name <your key vault name> --query id -o tsv)
Ad alanının yönetilen kimliği için Key Vault'a rol ataması ekleyin.
az role assignment create --role "Key Vault Certificate User" --assignee $principalId --scope $keyVaultResourceId
Key Vault erişimi ve portal deneyimi hakkında daha fazla bilgi için bkz . Azure rol tabanlı erişim denetimiyle Key Vault anahtarlarına, sertifikalarına ve gizli dizilerine erişim sağlama.
Event Grid ad alanınızı özel etki alanıyla ilişkilendirme
Bu adımda, doğrulanmamış özel etki alanınızı ad alanıyla ilişkilendirirsiniz, ancak sonraki adımda özel etki alanının sahipliğini kanıtlayana kadar bu etki alanını kullanamazsınız.
Azure portalı kullanma
Özel etki alanlarınızı eklemek için aşağıdaki adımları kullanın:
Azure portalında Event Grid ad alanınıza gidin
Event Grid Ad Alanı sayfasında, sol gezinti menüsünde Özel etki alanları'nı seçin.
Özel etki alanları sayfasında + Özel etki alanı'nı seçin.
Özel etki alanı ekle sayfasında, aşağıdaki özellikler için değerleri belirtin:
Etki alanı adı: Event Grid ad alanı ana bilgisayar adlarınızdan birine atanacak tam etki alanı adı.
İlişkili konak adı türü: Özel etki alanı adınız ile ilişkilendirilecek varsayılan konak adı türü.
Sertifika URL'si: Azure Key Vault'unuzda sunucu sertifikasının Sertifika Tanımlayıcısı. Sertifika Tanımlayıcısı'nın son kesimi hariç tutarak yalnızca sertifikanın temel tanımlayıcısını ekleyin. Aboneliklerinizden sertifikayı ve anahtar kasasını seçmek için bunun yerine Anahtar kasası kullanarak sertifika seçin'i seçebilirsiniz.
Yönetilen kimlik: Oluşturulan sunucu sertifikasına erişmek için Key Vault ile kimlik doğrulaması yapmak için kullanılan yönetilen kimlik.
Ekle'yi seçin
Özel etki alanı sahipliğinizi kanıtlamak için bu değerleri kullanmanız gerektiğinden TXT kayıtlarını kaydedin.
Azure CLI örneği
Ad alanınızı özel etki alanı yapılandırmasıyla güncelleştirmek için aşağıdaki komutu kullanın. Aşağıdaki nesne iki farklı customDomains
yapılandırma içerir: altındaki topicSpacesConfiguration
yapılandırma MQTT uç noktanıza atanır ve altındaki topicsConfiguration
yapılandırma http uç noktanıza atanır.
Not
Her özel etki alanı yapılandırmasının aynı bölge içinde benzersiz olması gerekir.
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"
}
}
]
}
}
}
Aşağıdaki yer tutucuları uygun değerlerle değiştirin, adlı NS.json
bir dosyaya kaydedin ve CLI komutunu çalıştırın.
Yer tutucu | Açıklama |
---|---|
HOSTNAME |
Konak adını Azure portalındaki Event Grid ad alanınızın Genel Bakış sayfasından alabilirsiniz. |
NAMESPACENAME |
Event Grid ad alanının adı. |
TOPICNAME |
Ad alanında konunun adı. |
HTTPDOMAINNAME |
HTTP etki alanının adı. |
MQTTDOMAINNAME |
MQTT etki alanının adı. |
SUBSCRIPTIONID |
Azure abonelik kimliği. |
RESOURCEGROUPNAME |
Azure kaynak grubunun adı. |
KEYVAULTNAME |
Anahtar kasasının adı. |
CERTIFICATENAME |
Sertifikanın adı. |
Kimlik türü (type
) veya UserAssigned
olabilirSystemAssigned
. seçilirse UserAssigned
, özelliğini kullanarak userAssignedIdentity
kullanıcı tarafından atanan kimliği belirtin.
Bu işleme verilen yanıt, DNS bilgilerini şu özellikler biçiminde içerir: expectedTxtRecordName
ve expectedTxtRecordValue
. Bu bilgileri, özel etki alanı sahipliğinizi kanıtlamak için bu değerleri kullanmanız gerektiği şekilde kaydedin. Aşağıda örnek bir yanıt verilmişti:
{
"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>"
}
]
}
}
}
Özel etki alanı sahipliğinizi kanıtlama
Etki alanı sahipliğinizi kanıtlamak için şu adımları izleyin:
DNS bilgilerini ekleyin.
Etki alanı kayıt şirketinize geri dönün ve önceki adımda kopyalanan DNS bilgilerinizi temel alarak etki alanınız için yeni bir TXT kaydı oluşturun. Etki alanınız için bu TXT'nin oluşturulması, etki alanı adınızın sahipliğini doğrular. Yaşam süresini (TTL) 3.600 saniye (60 dakika) olarak ayarlayın ve ardından kaydı kaydedin.
Özel etki alanı adınızı doğrulayın.
Azure portalını kullanmak için şu adımları izleyerek özel etki alanlarınızı doğrulayın:
- Özel etki alanları sayfasında Etki alanlarını doğrula'yı seçin.
- Etki alanlarını doğrula sayfasında Doğrula'yı seçin.
Ad alanınızı aynı özel etki alanı yapılandırmasıyla güncelleştirmek için aşağıdaki komutu kullanın. Bu komut, özel etki alanı sahipliğini doğrulamayı tetikler. Etki alanını doğrulayabilmeniz için DNS kayıtlarının yayılması gerekir ve DNS ayarlarınızın yayılma süresi etki alanı kayıt şirketinize bağlıdır.
Komutunuz yanıtında öğesinin
validationState
olduğunuApproved
doğrulayı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/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" } } ] } } }