Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przestrzeń nazw usługi Event Grid jest automatycznie przypisywana jako nazwa hosta HTTP w momencie tworzenia. Jeśli protokół MQTT jest włączony w przestrzeni nazw, nazwa hosta MQTT jest również przypisywana do przestrzeni nazw. Klienci używają tych nazw hostów do komunikowania się z przestrzenią nazw usługi Event Grid.
Nazwy domen niestandardowych można przypisać do własnych nazw hostów MQTT i HTTP przestrzeni nazw usługi Event Grid, obok domyślnych nazw hostów. Konfiguracje domen niestandardowych nie tylko ułatwiają spełnienie wymagań dotyczących zabezpieczeń i zgodności, ale także eliminuje konieczność modyfikowania klientów, którzy są już połączeni z domeną.
Wymagania wstępne
Aby używać domen niestandardowych dla przestrzeni nazw, należy spełnić następujące wymagania wstępne:
- Domena niestandardowa, której jesteś właścicielem i może modyfikować rekordy systemu nazw domen (DNS). Aby zmodyfikować rekordy DNS, musisz mieć dostęp do rejestru DNS dostawcy domeny, takiego jak GoDaddy.
- Certyfikat Secure Sockets Layer (SSL) dla niestandardowej domeny od publicznego lub prywatnego dostawcy certyfikatów.
- Konto usługi Azure Key Vault do hostowania certyfikatu SSL dla domeny niestandardowej.
Ogólne kroki
Aby użyć domen niestandardowych dla przestrzeni nazw, wykonaj następujące kroki:
- Dodaj wpisy DNS, aby przypisać domenę niestandardową do punktu końcowego przestrzeni nazw Event Grid.
- Włącz tożsamość zarządzaną w przestrzeni nazw Event Grid.
- Utwórz konto usługi Azure Key Vault, które hostuje certyfikat serwera dla domeny niestandardowej.
- Dodaj przypisanie roli w usłudze Azure Key Vault dla zarządzanej tożsamości przestrzeni nazw.
- Skojarz przestrzeń nazw usługi Event Grid z domeną niestandardową, określając niestandardową nazwę domeny, nazwę certyfikatu i odwołanie do wystąpienia magazynu kluczy.
- Przestrzeń nazw usługi Event Grid generuje rekord TXT używany do udowodnienia własności domeny niestandardowej.
- Udowodnij własność domeny, tworząc rekord TXT na podstawie wartości wygenerowanej w poprzednim kroku przez usługę Event Grid.
- Usługa Event Grid weryfikuje rekordy TXT domeny niestandardowej przed aktywowanie domeny niestandardowej dla użycia klientów.
- Klienci mogą łączyć się z przestrzenią nazw usługi Event Grid za pośrednictwem domeny niestandardowej.
Ograniczenia
- Konfiguracja domeny niestandardowej jest unikatowa dla poszczególnych regionów w kontekście nazw hostów dla MQTT i HTTP.
- Konfiguracja domeny niestandardowej nie może być identyczna dla nazw hostów MQTT i HTTP w tej samej przestrzeni nazw.
- Konfiguracja domeny niestandardowej nie może kolidować z żadną nazwą hosta MQTT ani HTTP dla żadnej przestrzeni nazw w tym samym regionie.
Dodawanie wpisów DNS
Utwórz rekordy DNS w domenie, aby wskazać nazwę hosta przestrzeni nazw usługi Event Grid, z którą chcesz skojarzyć domenę. Aby dowiedzieć się więcej, zobacz Konfigurowanie niestandardowej nazwy domeny dla usługi w chmurze platformy Azure.
Nazwa hosta HTTP dla przestrzeni nazw ma następujący format: <namespace name>.centraluseuap-1.eventgrid.azure.net
Nazwa hosta MQTT dla przestrzeni nazw ma następujący format: <namespace name>.centraluseuap-1.ts.eventgrid.azure.net
Włącz tożsamość zarządzaną w przestrzeni nazw usługi Event Grid
Przestrzeń nazw używa tożsamości zarządzanej do dostępu do instancji Azure Key Vault, aby uzyskać certyfikat serwera dla domeny niestandardowej. Użyj następującego polecenia, aby włączyć tożsamość zarządzaną przypisaną przez system w przestrzeni nazw usługi Event Grid:
az eventgrid namespace update --resource-group <resource group name> --name <namespace name> --identity "{type:systemassigned}"
Aby uzyskać informacje dotyczące konfigurowania tożsamości systemowych i przypisywanych przez użytkownika przy użyciu portalu Azure, zobacz Włączanie tożsamości zarządzanej dla przestrzeni nazw usługi Event Grid.
Tworzenie konta usługi Azure Key Vault i przekazywanie certyfikatu serwera
Użyj następującego polecenia, aby utworzyć konto usługi Azure Key Vault:
az keyvault create --name "<your-unique-keyvault-name>" --resource-group "<resource group name>" --location "centraluseuap"Użyj następującego polecenia, aby zaimportować certyfikat do usługi Azure Key Vault
az keyvault certificate import --vault-name "<your-key-vault-name>" -n "<cert name>" -f "<path to your certificate pem file> "Uwaga
Certyfikat musi zawierać nazwę domeny w alternatywnej nazwie podmiotu dla systemu DNS. Aby uzyskać więcej informacji, zobacz Samouczek: importowanie certyfikatu w usłudze Azure Key Vault.
Dodawanie przypisania roli w usłudze Azure Key Vault dla tożsamości zarządzanej przestrzeni nazw
Aby uzyskać dostęp do konta usługi Azure Key Vault, musisz zapewnić dostęp do przestrzeni nazw, wykonując następujące kroki:
Uzyskaj identyfikator podmiotu tożsamości zarządzanej przez system z przestrzeni nazw Event Grid, używając następującego polecenia
$principalId=(az eventgrid namespace show --resource-group <resource group name> --name <namespace name> --query identity.principalId -o tsv)Pobierz identyfikator zasobu usługi Azure Key Vault.
$keyVaultResourceId=(az keyvault show --resource-group <resource group name> --name <your key vault name> --query id -o tsv)Dodaj przypisanie roli w usłudze Key Vault dla tożsamości zarządzanej przestrzeni nazw.
az role assignment create --role "Key Vault Certificate User" --assignee $principalId --scope $keyVaultResourceIdAby uzyskać więcej informacji na temat dostępu do usługi Key Vault i środowiska portalu, zobacz Zapewnianie dostępu do kluczy, certyfikatów i wpisów tajnych usługi Key Vault przy użyciu kontroli dostępu opartej na rolach platformy Azure.
Powiąż swoją przestrzeń nazw usługi Event Grid z domeną niestandardową
W tym kroku skojarzysz niezweryfikowaną domenę niestandardową z przestrzenią nazw, ale nie możesz jej używać, dopóki nie udowodnisz własności domeny niestandardowej w następnym kroku.
Korzystanie z witryny Azure Portal
Aby dodać domeny niestandardowe, wykonaj następujące czynności:
Przejdź do przestrzeni nazw Event Grid w portalu Azure
Na stronie Przestrzeń nazw Event Grid wybierz Domeny niestandardowe w menu nawigacyjnym po lewej stronie.
Na stronie Domeny niestandardowych wybierz + Domena niestandardowa.
Na stronie Dodawanie domeny niestandardowej określ wartości następujących właściwości:
Nazwa domeny: w pełni kwalifikowana nazwa domeny, która ma zostać przypisana do jednej z nazw hostów w przestrzeni nazw Event Grid.
Skojarzony typ nazwy hosta: domyślny typ nazwy hosta, który ma być przypisany do twojej niestandardowej nazwy domeny.
Adres URL certyfikatu: identyfikator certyfikatu serwera w usłudze Azure Key Vault. Uwzględnij tylko podstawowy identyfikator certyfikatu, wykluczając ostatni segment identyfikatora certyfikatu. Zamiast tego możesz wybrać opcję Wybierz certyfikat i magazyn kluczy z subskrypcji, aby wybrać zarówno certyfikat, jak i magazyn kluczy.
Tożsamość zarządzana: tożsamość zarządzana używana do uwierzytelniania w usłudze Key Vault w celu uzyskania dostępu do utworzonego certyfikatu serwera.
Wybierz Dodaj
Zapisz rekordy TXT, ponieważ musisz użyć tych wartości, aby potwierdzić własność swojej niestandardowej domeny.
Przykład interfejsu wiersza polecenia platformy Azure
Użyj następującego polecenia, aby zaktualizować przestrzeń nazw przy użyciu konfiguracji domeny niestandardowej. Następujący obiekt zawiera dwie różne customDomains konfiguracje: konfiguracja w obszarze topicSpacesConfiguration jest przypisana do punktu końcowego MQTT, a konfiguracja w obszarze topicsConfiguration jest przypisana do punktu końcowego HTTP.
Uwaga
Każda konfiguracja domeny niestandardowej musi być unikatowa w tym samym regionie.
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"
},
}
]
},
"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"
}
}
]
}
}
}
Zastąp następujące symbole zastępcze odpowiednimi wartościami, zapisz je w pliku o nazwie NS.json, i uruchom polecenie CLI.
| Zastępczy element | opis |
|---|---|
HOSTNAME |
Nazwę hosta można uzyskać na stronie Przegląd przestrzeni nazw usługi Event Grid w witrynie Azure Portal. |
NAMESPACENAME |
Nazwa przestrzeni nazw usługi Event Grid. |
TOPICNAME |
Nazwa tematu w przestrzeni nazw. |
HTTPDOMAINNAME |
Nazwa domeny HTTP. |
MQTTDOMAINNAME |
Nazwa domeny MQTT. |
SUBSCRIPTIONID |
Identyfikator subskrypcji platformy Azure. |
RESOURCEGROUPNAME |
Nazwa grupy zasobów platformy Azure. |
KEYVAULTNAME |
Nazwa magazynu kluczy. |
CERTIFICATENAME |
Nazwa certyfikatu. |
Typ tożsamości (type) może mieć wartość SystemAssigned lub UserAssigned. Jeśli wybrano UserAssigned, określ tożsamość przypisaną przez użytkownika za pomocą właściwości userAssignedIdentity.
Odpowiedź na tę operację zawiera informacje DNS w postaci następujących właściwości: expectedTxtRecordName i expectedTxtRecordValue. Zapisz te informacje, ponieważ chcesz użyć tych wartości, aby udowodnić własność domeny niestandardowej. Oto przykładowa odpowiedź:
{
"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>"
}
]
}
}
}
Potwierdzanie własności domeny niestandardowej
Aby udowodnić własność domeny, wykonaj następujące kroki:
Dodaj informacje DNS.
Wróć do rejestratora domen i utwórz nowy rekord TXT dla domeny na podstawie skopiowanych informacji DNS z poprzedniego kroku. Utworzenie tego TXT dla domeny weryfikuje własność nazwy domeny. Ustaw czas wygaśnięcia (TTL) na 3600 sekund (60 minut), a następnie zapisz rekord.
Zweryfikuj swoją niestandardową nazwę domeny.
Aby użyć witryny Azure Portal, wykonaj następujące kroki, aby zweryfikować domeny niestandardowe:
- Na stronie Domeny niestandardowe wybierz Zweryfikuj domeny.
- Na stronie Weryfikowanie domen wybierz pozycję Weryfikuj.
Użyj następującego polecenia, aby zaktualizować swoją przestrzeń nazw przy użyciu identycznej konfiguracji domeny niestandardowej. To polecenie wyzwala walidację własności domeny niestandardowej. Rekordy DNS muszą być propagowane, zanim będzie można zweryfikować domenę i czas propagacji ustawień DNS zależy od rejestratora domen.
W odpowiedzi na polecenie sprawdź, czy element
validationStatema wartość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.jsonNS.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" } } ] } } }