Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku se dozvíte, jak se ověřovat pomocí oborů názvů Azure Event Gridu pomocí webhooku nebo funkce Azure.
Ověřování webhooku umožňuje externím koncovým bodům HTTP (webhooky nebo funkce) dynamicky ověřovat připojení přenosu telemetrie služby Řízení front zpráv (MQTT). Tato metoda používá ověřování webového tokenu JSON v Microsoft Entra ID k zajištění zabezpečeného přístupu.
Když se klient pokusí připojit, zprostředkovatel vyvolá uživatelem definovaný koncový bod HTTP, který ověřuje přihlašovací údaje, jako jsou tokeny sdíleného přístupového podpisu, uživatelská jména a hesla, nebo dokonce provádí kontroly seznamu odvolaných certifikátů. Webhook vyhodnocuje požadavek a vrátí rozhodnutí o povolení nebo zamítnutí připojení spolu s volitelnými metadaty pro jemně odstupňovanou autorizaci. Tento přístup podporuje flexibilní a centralizované zásady ověřování napříč různými skupinami zařízení a případy použití.
Požadavky
- Obor názvů Event Gridu s spravovanou identitou přiřazenou systémem nebo přiřazenou uživatelem.
- Externí webhook nebo funkce Azure
- Přístup udělený spravované identitě oboru názvů služby Event Grid pro funkci Azure nebo webhook.
Základní kroky
Pokud chcete pro obory názvů použít vlastní ověřování webhooku, postupujte takto:
- Vytvořte obor názvů a nakonfigurujte jeho dílčí zdroje.
- Povolte spravovanou identitu v oboru názvů služby Event Grid.
- Udělte spravované identitě přístup k funkci Azure nebo webhooku.
- Nakonfigurujte vlastní nastavení webhooku v oboru názvů Služby Event Grid.
- Připojte své klienty k Event Grid názvovému prostoru a získejte ověření pomocí webhooku nebo funkce.
Vytvořte jmenný prostor a nakonfigurujte jeho dílčí zdroje
Pokud chcete vytvořit obor názvů a nakonfigurovat jeho dílčí zdroje, postupujte podle pokynů v rychlém startu: Publikování a přihlášení k odběru zpráv MQTT v oboru názvů Event Gridu pomocí webu Azure Portal. Přeskočte kroky k vytvoření certifikátu a klienta, protože identity klientů pocházejí z poskytnutého tokenu. Atributy klienta jsou založené na specifických tvrzeních v tokenu klienta. Atributy klienta se používají v dotazu skupiny klientů, proměnných šablon tématu a konfiguraci rozšiřování směrování.
Povolení spravované identity v oboru názvů Služby Event Grid
Pokud chcete ve svém oboru názvů Event Gridu povolit spravovanou identitu přiřazenou systémem, použijte následující příkaz:
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.
Udělení vhodného přístupu spravované identity k funkci nebo webhooku
Udělte spravované identitě vašeho oboru názvů Event Gridu odpovídající přístupová práva k cílové funkci Azure nebo webhooku.
Pokud chcete nastavit vlastní ověřování pro funkci Azure, postupujte podle dalších kroků.
Vytvoření aplikace Microsoft Entra
Na stránce Přehled aplikace si poznamenejte hodnotu ID aplikace (klienta).
V nabídce vlevo vyberte Zveřejnit rozhraní API. Vedle identifikátoru URI ID aplikace vyberte Přidat.
Poznamenejte si hodnotu identifikátoru URI ID aplikace v podokně Upravit identifikátor URI ID aplikace a pak vyberte Uložit.
Nastavení ověřování pro funkci Azure
Pokud máte vytvořenou základní funkci Azure z webu Azure Portal, nastavte ověřování a ověřte token ID Microsoft Entra, který byl vytvořen pomocí spravované identity.
Přejděte do aplikace Azure Functions.
V nabídce vlevo vyberte Ověřování a pak vyberte Přidat zprostředkovatele identity.
Na stránce Přidat zprostředkovatele identity jako zprostředkovatele identity vyberte v rozevíracím seznamu Microsoft.
V části Registrace aplikace zadejte hodnoty následujících vlastností:
Pro cílové skupiny povolených tokenů přidejte hodnotu identifikátoru URI ID aplikace Microsoft Entra, kterou jste si poznamenali dříve.
V části Další kontroly pro vývoj klientských aplikací vyberte Povolit požadavky z konkrétních klientských aplikací.
V podokně Povolené klientské aplikace zadejte ID klienta spravované identity přiřazené systémem, která se používá k vygenerování tokenu. Toto ID najdete v podnikové aplikaci prostředku Microsoft Entra ID.
Zvolte další nastavení podle vašich konkrétních požadavků a pak vyberte Přidat.
Teď vygenerujte a používejte token MICROSOFT Entra ID.
- Vygenerujte token ID Microsoft Entra pomocí spravované identity s identifikátorem URI ID aplikace jako prostředky.
- Tento token použijte k vyvolání funkce Azure tak, že ji zahrnete do hlavičky požadavku.
Konfigurace přizpůsobených nastavení ověřování webhooku v oboru názvů Event Grid.
Pomocí webu Azure Portal a Azure CLI nakonfigurujte vlastní nastavení ověřování webhooku v oboru názvů Služby Event Grid. Nejprve vytvoříte obor názvů a pak ho aktualizujete.
Použití portálu Azure Portal
Na webu Azure Portal přejděte do svého oboru názvů Event Gridu.
Na stránce Obor názvů Event Grid vyberte v levé nabídce Konfigurace.
V části Vlastní ověřování webhooku zadejte hodnoty následujících vlastností:
- Typ spravované identity: Vyberte přiřazeného uživatele.
- Adresa URL webhooku: Zadejte hodnotu koncového bodu adresy URL, kde služba Event Grid odesílá ověřené požadavky webhooku pomocí zadané spravované identity.
- Identifikátor URI cílové skupiny tokenů: Zadejte hodnotu ID aplikace Microsoft Entra nebo identifikátoru URI pro získání přístupového tokenu, který se má zahrnout jako nosný token v žádostech o doručení.
- ID tenanta Microsoft Entra: Zadejte hodnotu ID tenanta Microsoft Entra použité k získání nosného tokenu pro ověřené doručování webhooku.
Vyberte a použijte.
Použití Azure CLI
Pokud chcete aktualizovat obor názvů pomocí vlastní konfigurace ověřování webhooku, použijte následující příkaz:
az eventgrid namespace update \
--resource-group <resource-group-name> \
--name <namespace-name> \
--api-version 2025-04-01-preview \
--identity-type UserAssigned \
--identity-user-assigned-identities "/subscriptions/XXXXXXXXXXX/resourcegroups/XXXXXXXXXXX/providers/Microsoft.ManagedIdentity/userAssignedIdentities/XXXXXXXXXXX={}" \
--set properties.isZoneRedundant=true \
properties.topicSpacesConfiguration.state=Enabled \
properties.topicSpacesConfiguration.clientAuthentication.webHookAuthentication.identity.type=UserAssigned \
properties.topicSpacesConfiguration.clientAuthentication.webHookAuthentication.identity.userAssignedIdentity="/subscriptions/XXXXXXXXXXX/resourcegroups/XXXXXXXXXXX/providers/Microsoft.ManagedIdentity/userAssignedIdentities/XXXXXXXXXXX" \
properties.topicSpacesConfiguration.clientAuthentication.webHookAuthentication.endpointUrl="https://XXXXXXXXXXX" \
properties.topicSpacesConfiguration.clientAuthentication.webHookAuthentication.azureActiveDirectoryApplicationIdOrUri="api://XXXXXXXXXXX/.default" \
properties.topicSpacesConfiguration.clientAuthentication.webHookAuthentication.azureActiveDirectoryTenantId="XXXXXXXXXXX"
Nahraďte <NAMESPACE_NAME> a <RESOURCE_GROUP_NAME> nahraďte skutečnými hodnotami. Vyplňte zástupné symboly v předplatném, skupině prostředků, identitě, ID aplikace, adrese URL a ID tenanta. Pokud chcete zvýšit výkon a spolehlivost ověřování založeného na webhooku pro zprostředkovatele Event Grid MQTT, důrazně doporučujeme povolit podporu PROTOKOLU HTTP/2 pro koncový bod webhooku.
Podrobnosti rozhraní API webhooku
Hlavičky žádosti
Autorizace: Nosný token
Token je token Microsoft Entra pro spravovanou identitu, která byla nakonfigurována pro volání webhooku.
Obsah žádosti
{
"clientId": "<string>",
"userName": "<string>",
"password": "<base64 encoded bytes>",
"authenticationMethod": "<string>",
"authenticationData": "<base64 encoded bytes>",
"clientCertificate": "<certificate in PEM format>",
"clientCertificateChain": "<certificates from chain in PEM format>"
}
Popisy polí datového obsahu
| Pole | Povinné nebo volitelné | Popis |
|---|---|---|
clientId |
Povinné | ID klienta z paketu MQTT CONNECT |
userName |
Volitelný | Uživatelské jméno z paketu MQTT CONNECT |
password |
Volitelný | Heslo z paketu MQTT CONNECT v kódování Base64 |
authenticationMethod |
Volitelný | Metoda ověřování z paketu MQTT CONNECT (pouze MQTT5). |
authenticationData |
Volitelný | Ověřovací data z paketu MQTT CONNECT v kódování Base64 (pouze MQTT5). |
clientCertificate |
Volitelný | Klientský certifikát ve formátu PEM |
clientCertificateChain |
Volitelný | Další certifikáty poskytované klientem potřebné k sestavení řetězu z klientského certifikátu k certifikátu certifikační autority. |
userProperties |
Volitelný | Vlastnosti uživatele z paketu CONNECT (pouze MQTT5). |
Odpověďové zatížení
Úspěšná odpověď
HTTP/1.1 200 OK
Content-Type: application/json
{
"decision": "allow",
"clientAuthenticationName": "<string>",
"attributes": {
"attr": "<int/string/array_of_strings>",
...
},
"expiration": "<unix time format>"
}
Odepřená odpověď
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"decision": "deny",
"errorReason": "<string>"
}
Popisy polí odpovědi
| Pole | Popis |
|---|---|
decision (povinné) |
Rozhodnutí o ověřování je buď allow nebo deny. |
clientAuthenticationName |
Název pro ověření klienta (jméno identity). (Požadováno při decision nastavení na allowhodnotu .) |
attributes |
Slovník s atributy. Klíč je název atributu a hodnota je int/string/array. (Volitelné, pokud decision je nastavená hodnota allow.) |
expiration |
Datum vypršení platnosti ve formátu Unix time. (Volitelné, pokud decision je nastavená hodnota allow.) |
errorReason |
Chybová zpráva, pokud decision je nastavena na deny. Tato chyba se protokoluje. (Volitelné, pokud decision je nastavená hodnota deny.) |
Příklady podporovaných typů atributů
"num_attr_pos": 1,
"num_attr_neg": -1,
"str_attr": "str_value",
"str_list_attr": [
"str_value_1",
"str_value_2"
]
Všechny správné datové typy (číslo, které se hodí <int32/string/array_of_strings>) se používají jako atributy. V příkladu , num_attr_pos, , num_attr_negstr_attra str_list_attr deklarace identity mají správné datové typy a jsou použity jako atributy.