Aracılığıyla paylaş


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:

  1. Özel etki alanınızı Event Grid ad alanı uç noktasına yönlendirmek için DNS girdileri ekleyin.
  2. Event Grid ad alanınızda yönetilen kimliği etkinleştirin.
  3. Özel etki alanınız için sunucu sertifikasını barındıran bir Azure Key Vault hesabı oluşturun.
  4. Ad alanının yönetilen kimliği için Azure Key Vault'a rol ataması ekleyin.
  5. Ö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.
  6. Event Grid ad alanı, özel etki alanının sahipliğini kanıtlamak için kullandığınız bir TXT kaydı oluşturur.
  7. 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.
  8. 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.
  9. İ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

  1. 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 "centraluseaup" 
    
  2. 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:

  1. 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) 
    
  2. 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) 
    
  3. 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:

  1. Azure portalında Event Grid ad alanınıza gidin

  2. Event Grid Ad Alanı sayfasında, sol gezinti menüsünde Özel etki alanları'nı seçin.

  3. Özel etki alanları sayfasında + Özel etki alanı'nı seçin.

    + Özel etki alanı düğmesinin seçili olduğu bir Azure Event Grid ad alanının Özel etki alanları sayfasını gösteren ekran görüntüsü.

  4. Özel etki alanı ekle sayfasında, aşağıdaki özellikler için değerleri belirtin:

    1. Etki alanı adı: Event Grid ad alanı ana bilgisayar adlarınızdan birine atanacak tam etki alanı adı.

    2. İlişkili konak adı türü: Özel etki alanı adınız ile ilişkilendirilecek varsayılan konak adı türü.

    3. 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.

    4. 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.

    5. Ekle'yi seçin

      Özel etki alanı ekle sayfasını gösteren ekran görüntüsü.

  5. Ö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.jsonbir 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 UserAssignedolabilirSystemAssigned. 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:

  1. 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.

  2. Özel etki alanı adınızı doğrulayın.

    1. Azure portalını kullanmak için şu adımları izleyerek özel etki alanlarınızı doğrulayın:

      1. Özel etki alanları sayfasında Etki alanlarını doğrula'yı seçin.
      2. Etki alanlarını doğrula sayfasında Doğrula'yı seçin.
    2. 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ğunu Approveddoğ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/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"
                          }
                      }
                  ]
              }
          }
      }