Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, web kancası veya Azure işlevi kullanarak Azure Event Grid ad alanlarıyla kimlik doğrulaması yapmayı öğreneceksiniz.
Web kancası kimlik doğrulaması, dış HTTP uç noktalarının (web kancaları veya işlevler) Message Queuing Telemetri Aktarımı (MQTT) bağlantılarının dinamik olarak kimliğini doğrulamasını sağlar. Bu yöntem, güvenli erişim sağlamak için Microsoft Entra ID JSON Web Belirteci doğrulamasını kullanır.
İstemci bağlanmaya çalıştığında, aracı Paylaşılan Erişim İmzası belirteçleri, kullanıcı adları ve parolalar gibi kimlik bilgilerini doğrulayan, hatta Sertifika İptal Listesi denetimleri gerçekleştiren kullanıcı tanımlı bir HTTP uç noktasını çağırır. Web kancası isteği değerlendirir ve ayrıntılı yetkilendirme için isteğe bağlı meta verilerin yanı sıra bağlantıya izin verme veya bağlantıyı reddetme kararı döndürür. Bu yaklaşım, farklı cihaz filoları ve kullanım örnekleri arasında esnek ve merkezi kimlik doğrulama ilkelerini destekler.
Önkoşullar
- Sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliğe sahip bir Event Grid ad alanı.
- Dış web kancası veya Azure işlevi.
- Event Grid ad alanının yönetilen kimliğine Azure işlevine veya web kancasına erişim izni verilir.
Üst düzey adımlar
Ad alanları için özel web kancası kimlik doğrulaması kullanmak için şu adımları izleyin:
- Bir ad alanı oluşturun ve alt kaynaklarını yapılandırın.
- Event Grid ad alanınızda yönetilen kimliği etkinleştirin.
- Yönetilen kimliğe Azure işlevinize veya web kancanıza erişim verin.
- Event Grid ad alanınızda özel web kancası ayarlarını yapılandırın.
- İstemcilerinizi Event Grid ad alanına bağlayın ve web kancası veya işlevi aracılığıyla kimlik doğrulamasından geçin.
Ad alanı oluşturma ve alt kaynaklarını yapılandırma
Ad alanı oluşturmak ve alt kaynaklarını yapılandırmak için Hızlı Başlangıç: Azure portalıyla Event Grid ad alanında MQTT iletilerini yayımlama ve abone olma başlığı altındaki yönergeleri izleyin. İstemci kimlikleri sağlanan belirteçten geldiğinden sertifika ve istemci oluşturma adımlarını atlayın. İstemci öznitelikleri, istemci belirtecindeki özel talepleri temel alır. İstemci öznitelikleri istemci grubu sorgusunda, konu şablonu değişkenlerinde ve yönlendirme zenginleştirme yapılandırmasında kullanılır.
Event Grid ad alanınızda yönetilen kimliği etkinleştirme
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.
Yönetilen kimliğe bir işleve veya web kancasına uygun erişim verme
Event Grid ad alanınızın yönetilen kimliğine hedef Azure işlevine veya web kancasına uygun erişimi verin.
Azure işlevi için özel kimlik doğrulaması ayarlamak için sonraki adımları izleyin.
Microsoft Entra uygulaması oluşturma
Microsoft Entra Id'de bir Microsoft Entra uygulaması oluşturun.
Uygulamanın Genel Bakış sayfasında Uygulama (istemci) Kimliği değerini not edin.
Soldaki menüden API'yi kullanıma sunma'yı seçin. Uygulama Kimliği URI'si'nin yanında Ekle'yi seçin.
Uygulama kimliği URI'sini düzenle bölmesinde Uygulama Kimliği URI değerini not edin ve kaydet'i seçin.
Azure işlevi için kimlik doğrulamasını ayarlama
Azure portalından oluşturulmuş temel bir Azure işlevine sahipseniz, kimlik doğrulamasını ayarlayın ve yönetilen kimlik kullanılarak oluşturulan Microsoft Entra Id belirtecini doğrulayın.
Azure İşlevleri uygulamanıza gidin.
Sol menüde Kimlik Doğrulaması'nı ve ardından Kimlik sağlayıcısı ekle'yi seçin.
Kimlik sağlayıcısı ekle sayfasında, Kimlik Sağlayıcısı için açılan listeden Microsoft'u seçin.
Uygulama kaydı bölümünde, aşağıdaki özellikler için değerleri belirtin:
İzin verilen belirteç hedef kitleleri için, daha önce not ettiğiniz Microsoft Entra uygulamasının Uygulama Kimliği URI değerini ekleyin.
Ek denetimler bölümünde, İstemci uygulaması geliştirme için Belirli istemci uygulamalarından gelen isteklere izin ver'i seçin.
İzin verilen istemci uygulamaları bölmesinde, belirteci oluşturmak için kullanılan sistem tarafından atanan yönetilen kimliğin istemci kimliğini girin. Bu kimliği Microsoft Entra Id kaynağının kurumsal uygulamasında bulabilirsiniz.
Özel gereksinimlerinize göre diğer ayarları seçin ve ardından Ekle'yi seçin.
Şimdi Microsoft Entra ID belirtecini oluşturun ve kullanın.
- Kaynak olarak uygulama kimliği URI'si ile yönetilen kimliği kullanarak bir Microsoft Entra Id belirteci oluşturun.
- Azure işlevini istek üst bilgisine ekleyerek çağırmak için bu belirteci kullanın.
Event Grid ad alanınızda özel web kancası kimlik doğrulama ayarlarını yapılandırma
Azure portalını ve Azure CLI'yi kullanarak Event Grid ad alanınızda özel web kancası kimlik doğrulaması ayarlarını yapılandırın. Önce ad alanını oluşturur ve sonra güncelleştirirsiniz.
Azure portal’ı kullanma
Azure portalında Event Grid ad alanınıza gidin.
Event Grid Ad Alanı sayfasında, soldaki menüden Yapılandırma'yı seçin.
Özel Web Kancası kimlik doğrulaması bölümünde aşağıdaki özellikler için değerleri belirtin:
- Yönetilen kimlik türü: Kullanıcı tarafından atanan'ı seçin.
- Web kancası URL'si: Event Grid hizmetinin belirtilen yönetilen kimliği kullanarak kimliği doğrulanmış web kancası isteklerini gönderdiği URL uç noktasının değerini girin.
- Belirteç izleyicisi URI'si: Erişim belirtecinin teslim isteklerine taşıyıcı belirteç olarak eklenmesini sağlamak için Microsoft Entra uygulama kimliğinin veya URI'sinin değerini girin.
- Microsoft Entra Id kiracı kimliği: Kimliği doğrulanmış web kancası teslimi için taşıyıcı belirteci almak için kullanılan Microsoft Entra kiracı kimliğinin değerini girin.
seçin, sonra daUygula'yı seçin.
Azure CLI'yi kullanma
Ad alanınızı özel web kancası kimlik doğrulaması yapılandırmasıyla güncelleştirmek için aşağıdaki komutu kullanın:
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"
ve <NAMESPACE_NAME> değerlerini gerçek değerlerinizle değiştirin<RESOURCE_GROUP_NAME>. Abonelik, kaynak grubu, kimlik, uygulama kimliği, URL ve kiracı kimliğindeki yer tutucuları doldurun. Event Grid MQTT aracısı için web kancası tabanlı kimlik doğrulamasının performansını ve güvenilirliğini artırmak için web kancası uç noktanız için HTTP/2 desteğini etkinleştirmenizi kesinlikle öneririz.
Webhook API ayrıntıları
İstek başlıkları
Yetkilendirme: Taşıyıcı belirteci
Belirteç, web kancasını çağırmak üzere yapılandırılmış yönetilen kimlik için bir Microsoft Entra belirtecidir.
İstek veri yükü
{
"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>"
}
Payload alanı açıklamaları
| Alan | Gerekli/İsteğe Bağlı | Açıklama |
|---|---|---|
clientId |
Gerekli | MQTT CONNECT paketinden istemci kimliği. |
userName |
Opsiyonel | MQTT CONNECT paketinden kullanıcı adı. |
password |
Opsiyonel | Base64 kodlamasında MQTT CONNECT paketinden parola. |
authenticationMethod |
Opsiyonel | MQTT CONNECT paketinden kimlik doğrulama yöntemi (yalnızca MQTT5). |
authenticationData |
Opsiyonel | Base64 kodlamasında MQTT CONNECT paketinden kimlik doğrulama verileri (yalnızca MQTT5). |
clientCertificate |
Opsiyonel | PEM biçiminde istemci sertifikası. |
clientCertificateChain |
Opsiyonel | İstemci tarafından sağlanan diğer sertifikalar, istemci sertifikasından Sertifika Yetkilisi sertifikasına zinciri oluşturmak için gereklidir. |
userProperties |
Opsiyonel | CONNECT paketinden kullanıcı özellikleri (yalnızca MQTT5). |
Yanıt yükü
Başarılı yanıt
HTTP/1.1 200 OK
Content-Type: application/json
{
"decision": "allow",
"clientAuthenticationName": "<string>",
"attributes": {
"attr": "<int/string/array_of_strings>",
...
},
"expiration": "<unix time format>"
}
Yanıt reddedildi
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"decision": "deny",
"errorReason": "<string>"
}
Yanıt alanı açıklamaları
| Alan | Açıklama |
|---|---|
decision (gerekli) |
Kimlik doğrulama kararı veya allowdenyşeklindedir. |
clientAuthenticationName |
İstemci kimlik doğrulama ismi (kimlik ismi). (olarak ayarlandığında decisiongereklidirallow.) |
attributes |
Öznitelikleri olan sözlük. Anahtar, öznitelik adıdır ve değer bir int/string/array değeridir. (İsteğe bağlı olarak decision ayarlandığında allow.) |
expiration |
Unix saat biçiminde son kullanma tarihi. (İsteğe bağlı olarak decision ayarlandığında allow.) |
errorReason |
olarak ayarlandıysa decisiondenyhata iletisi. Bu hata günlüğe kaydedilir. (İsteğe bağlı olarak decision ayarlandığında deny.) |
Desteklenen öznitelik türleri örnekleri
"num_attr_pos": 1,
"num_attr_neg": -1,
"str_attr": "str_value",
"str_list_attr": [
"str_value_1",
"str_value_2"
]
Tüm doğru veri türleri (uygun <int32/string/array_of_strings>sayı) öznitelik olarak kullanılır. Örnekte, num_attr_pos, num_attr_neg, str_attrve str_list_attr talepleri doğru veri türlerine sahiptir ve öznitelik olarak kullanılır.