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, Microsoft Entra Id kimlik doğrulamasını kullanarak Azure Event Grid'den (olay abonelikleri) web kancası uç noktalarınıza olay teslimini güvenli hale getirmek açıklanmaktadır. Microsoft Entra uygulamalarını yapılandırmayı ve Event Grid ile web kancalarınız arasında kimliği doğrulanmış bağlantılar kurmak için uygun rolleri atamayı öğreneceksiniz. Makale, tanıtım için Azure portalını kullanır. Ancak CLI, PowerShell veya SDK'ları kullanarak da özelliği etkinleştirebilirsiniz.
Önemli
Microsoft, bir güvenlik açığını gidermek için 30 Mart 2021'de bir olay aboneliği oluşturma veya güncelleştirme kapsamında ek erişim denetimi yaptı. Abone istemcisinin hizmet sorumlusunun sahip olması veya hedef uygulama hizmet sorumlusuna atanmış bir rolü olması gerekir. Bu makaledeki yeni yönergeleri izleyerek Microsoft Entra Uygulamanızı yeniden yapılandırın. Microsoft Entra uygulamalarına ve hizmet sorumlularına genel bakış için bkz. Microsoft kimlik platformu (v2.0) genel bakış.
Senaryolar
Bu makalede, aşağıdaki iki senaryonun nasıl uygulanacakları ayrıntılı olarak açıklanmaktadır:
Aynı Microsoft Entra kiracısında bulunan bir web kancasına olayları teslim etme ve olay aboneliği sağlama. Bu senaryoda bir Microsoft Entra kullanıcısını veya Microsoft Entra uygulamasını olay aboneliği yazıcısı olarak kullanabilirsiniz.
Olay aboneliğinden farklı bir Microsoft Entra kiracısında bulunan bir web kancasına olay teslimi. Bu senaryoda bir Microsoft Entra uygulamasını yalnızca etkinlik aboneliği yazarı olarak kullanabilirsiniz.
İlk senaryoda, tüm adımları veya betikleri hem olay aboneliği hem de web kancası olan tek bir kiracıda çalıştırırsınız. İkinci senaryoda, olay aboneliğine sahip olan kiracıda ve web kancasına sahip olan kiracıda bazı adımlar çalıştırırsınız.
Olayları aynı Microsoft Entra kiracısında bir webhook'a teslim etme
Aşağıdaki diyagramda Event Grid'in olayları, olay aboneliğiyle aynı kiracıda bulunan bir web kancasına nasıl teslim ettiği gösterilmektedir.
Bu bölümde iki alt bölüm vardır. Her iki senaryoyu veya ilginizi çeken senaryoyu okuyun.
- Microsoft Entra ID kullanıcısını kullanarak olay aboneliğini yapılandırma
- Microsoft Entra ID uygulaması kullanarak olay aboneliğini yapılandırma
Microsoft Entra kullanıcısını kullanarak olay aboneliğini yapılandırma
Bu bölümde, bir Microsoft Entra kullanıcısı kullanarak olay aboneliğini yapılandırma gösterilmektedir.
Microsoft Entra (tek kiracı) ile çalışacak şekilde yapılandırılmış bir web kancası için Microsoft Entra uygulaması oluşturun.
Kiracıda Azure Shell'i açın ve PowerShell ortamını seçin.
Kiracıya bağlanmak için $webhookAadTenantId değerini değiştirin.
- Değişken:
- $webhookAadTenantId: Azure kiracı kimliği
$webhookAadTenantId = "[REPLACE_WITH_YOUR_TENANT_ID]" Connect-MgGraph -TenantId $webhookAadTenantId -Scopes "Application.ReadWrite.All, AppRoleAssignment.ReadWrite.All"- Değişken:
Aşağıdaki betiği açın ve $webhookAppObjectId ve $eventSubscriptionWriterUserPrincipalName değerlerini tanımlayıcılarınızla güncelleştirin, ardından betiği çalıştırmaya devam edin.
- Değişken:
- $webhookAppObjectId: Web kancası için oluşturulan Microsoft Entra uygulama kimliği
- $eventSubscriptionWriterUserPrincipalName: Olay aboneliği oluşturan kullanıcının Azure kullanıcı asıl adı
Not
$eventGridAppId değerini değiştirmeniz gerekmez. Bu betikte AzureEventGridSecureWebhookSubscriber$eventGridRoleName için ayarlanmıştır. Bu betiği yürütmek için Microsoft Entra Uygulama Yöneticisi rolünün üyesi olmanız veya Microsoft Entra Id'de web kancası uygulamasının hizmet sorumlusunun sahibi olmanız gerektiğini unutmayın.
Aşağıdaki hata iletisini görürseniz hizmet sorumlusuna yükseltmeniz gerekir. Güvenlik açığını gidermek için 30 Mart 2021'de olay aboneliği oluşturma veya güncelleştirme işlemi kapsamında ek erişim denetimi yapıldı. Abone istemcisinin hizmet sorumlusunun sahip olması veya hedef uygulama hizmet sorumlusuna atanmış bir rolü olması gerekir.
New-MgServicePrincipalAppRoleAssignment: Error occurred while executing NewServicePrincipalAppRoleAssignment Code: Authorization_RequestDenied Message: Insufficient privileges to complete the operation.- Değişken:
Portalda olay aboneliği oluştururken şu adımları izleyin:
Uç nokta türünü Web Kancası olarak seçin.
Uç nokta URI'sini belirtin.
Olay Abonelikleri Oluştur sayfasının üst kısmındaki Ek özellikler sekmesini seçin.
Ek özellikler sekmesinde şu adımları uygulayın:
Microsoft Entra kimlik doğrulamasını kullan'ı seçin ve kiracı kimliğini ve uygulama kimliğini yapılandırın:
Betiğin çıktısından Microsoft Entra kiracı kimliğini kopyalayın ve Microsoft Entra kiracı kimliği alanına girin.
Betiğin çıktısından Microsoft Entra uygulama kimliğini kopyalayın ve Microsoft Entra Uygulama Kimliği alanına girin. Uygulama kimliğini kullanmak yerine Microsoft Entra Uygulama Kimliği URI'sini kullanabilirsiniz. Uygulama kimliği URI'si hakkında daha fazla bilgi için bu makaleye bakın.
Microsoft Entra uygulaması kullanarak olay aboneliğini yapılandırma
Bu bölümde, bir Microsoft Entra uygulaması kullanarak olay aboneliğini yapılandırma gösterilmektedir.
Microsoft Entra (Tek kiracı) ile çalışmak üzere yapılandırılmış Event Grid abonelik yazıcısı için bir Microsoft Entra uygulaması oluşturun.
Microsoft Entra uygulaması için bir gizli dizi oluşturun ve değeri kaydedin (daha sonra bu değere ihtiyacınız vardır).
Event Grid konusunun Erişim denetimi (IAM) sayfasına gidin ve Event Grid aboneliği yazıcı uygulamasına Event Grid Katılımcısı rolü atayın. Bu adım, Azure CLI kullanarak Microsoft Entra uygulamasıyla Azure'da oturum açtığınızda Event Grid kaynağına erişmenizi sağlar.
Microsoft Entra (Tek kiracı) ile çalışmak üzere yapılandırılmış web kancası için bir Microsoft Entra uygulaması oluşturun.
Kiracıda Azure Shell'i açın ve PowerShell ortamını seçin.
Kiracıya bağlanmak için $webhookAadTenantId değerini değiştirin.
- Değişken:
- $webhookAadTenantId: Azure kiracı kimliği
$webhookAadTenantId = "[REPLACE_WITH_YOUR_TENANT_ID]" Connect-MgGraph -TenantId $webhookAadTenantId -Scopes "Application.ReadWrite.All, AppRoleAssignment.ReadWrite.All"- Değişken:
Aşağıdaki betiği açın ve $webhookAppObjectId ve $eventSubscriptionWriterAppId değerlerini tanımlayıcılarınızla güncelleştirin, ardından betiği çalıştırmaya devam edin.
- Değişken:
- $webhookAppObjectId: Web kancası için oluşturulan Microsoft Entra uygulama kimliği
- $eventSubscriptionWriterAppId: Event Grid abonelik yazıcı uygulaması için Microsoft Entra uygulama kimliği.
Not
değerini
$eventGridAppIddeğiştirmeniz gerekmez. Bu betikte, AzureEventGridSecureWebhookSubscriber olarak$eventGridRoleNameayarlandı. Bu betiği yürütmek için Microsoft Entra Uygulama Yöneticisi rolünün üyesi olmanız veya Microsoft Entra Id'de web kancası uygulamasının hizmet sorumlusunun sahibi olmanız gerektiğini unutmayın.- Değişken:
Komutu çalıştırarak Microsoft Entra Application üzerindeki Event Grid aboneliği yazarı olarak oturum açın.
az login --service-principal -u [REPLACE_WITH_EVENT_GRID_SUBSCRIPTION_WRITER_APP_ID] -p [REPLACE_WITH_EVENT_GRID_SUBSCRIPTION_WRITER_APP_SECRET_VALUE] --tenant [REPLACE_WITH_TENANT_ID]komutunu çalıştırarak aboneliğinizi oluşturun.
az eventgrid system-topic event-subscription create --name [REPLACE_WITH_SUBSCRIPTION_NAME] -g [REPLACE_WITH_RESOURCE_GROUP] --system-topic-name [REPLACE_WITH_SYSTEM_TOPIC] --endpoint [REPLACE_WITH_WEBHOOK_ENDPOINT] --event-delivery-schema [REPLACE_WITH_WEBHOOK_EVENT_SCHEMA] --azure-active-directory-tenant-id [REPLACE_WITH_TENANT_ID] --azure-active-directory-application-id-or-uri [REPLACE_WITH_APPLICATION_ID_FROM_SCRIPT] --endpoint-type webhookNot
Bu senaryoda bir sistem konusu kullanılır. Azure CLI kullanarak özel konular veya etki alanları için abonelik oluşturmak istiyorsanız bkz . CLI başvurusu.
Her şeyi doğru yapılandırdıysanız, Event Grid konu başlığınızda web kancası aboneliğini oluşturabilirsiniz.
Not
Bu noktada, Event Grid artık her iletide Microsoft Entra bearer token'ını webhook istemcisine aktarıyor. Web kancanızdaki yetkilendirme belirtecini doğrulamanız gerekir.
Farklı bir Microsoft Entra kiracısında bir web kancasına etkinlikleri teslim etme
Olay aboneliğiniz ile farklı Microsoft Entra kiracılarındaki webhook uç noktanız arasındaki bağlantının güvenliğini sağlamak için, bu bölümde gösterildiği gibi bir Microsoft Entra ID uygulaması kullanın. Şu anda Azure portalında bir Microsoft Entra ID kullanıcısı kullanarak bu bağlantının güvenliğini sağlayamazsınız.
Diyagrama bağlı olarak, her iki kiracıyı da yapılandırmak için sonraki adımları izleyin.
Kiracı A
A Kiracısı'nda aşağıdaki adımları tamamlayın:
Herhangi bir Microsoft Entra (çok kiracılı) ile çalışacak şekilde yapılandırılmış Event Grid abonelik oluşturucu için bir Microsoft Entra uygulaması oluşturun.
Microsoft Entra uygulaması için bir gizli dizi oluşturun ve değeri kaydedin (daha sonra bu değere ihtiyacınız vardır).
Event Grid konusunun Erişim denetimi (IAM) sayfasına gidin. Event Grid abonelik yazarının Microsoft Entra uygulamasına Event Grid Katkıda Bulunan Rolü atayın. Bu adım, Microsoft Entra uygulamasını ve Azure CLI'yi kullanarak Azure'da oturum açtığınızda uygulamaya Event Grid kaynağına erişim verir.
Kiracı B
B Kiracısı'nda aşağıdaki adımları tamamlayın:
Microsoft Entra (tek kiracı) ile çalışacak şekilde yapılandırılmış web kancası için bir Microsoft Entra uygulaması oluşturun.
B Kiracısına bağlanmak için $webhookAadTenantId değerini değiştirin.
Değişkenler:
- $webhookAadTenantId: B Kiracısı için Azure Kiracı Kimliği
$webhookAadTenantId = "[REPLACE_WITH_YOUR_TENANT_ID]" Connect-MgGraph -TenantId $webhookAadTenantId -Scopes "Application.ReadWrite.All, AppRoleAssignment.ReadWrite.All"
Aşağıdaki betiği açın ve $webhookAppObjectId ve $eventSubscriptionWriterAppId değerlerini tanımlayıcılarınızla güncelleştirin. Ardından scripti çalıştırmaya devam edin.
- Değişken:
$webhookAppObjectId: Web kancası için oluşturulan Microsoft Entra uygulama kimliği
$eventSubscriptionWriterAppId: Event Grid abonelik oluşturucu için Microsoft Entra uygulama kimliği
Not
değerini
$eventGridAppIddeğiştirmeniz gerekmez. Bu betikte AzureEventGridSecureWebhookSubscriber için$eventGridRoleNameayarlanır. Bu betiği yürütmek için Microsoft Entra Uygulama Yöneticisi rolünün üyesi olmanız veya Microsoft Entra Id'de web kancası uygulamasının hizmet sorumlusunun sahibi olmanız gerektiğini unutmayın.
Aşağıdaki hata iletisini görürseniz hizmet sorumlusuna yükseltmeniz gerekir. Güvenlik açığını gidermek için 30 Mart 2021'de olay aboneliği oluşturma veya güncelleştirme işlemi kapsamında ek erişim denetimi yapıldı. Abone istemcisinin hizmet sorumlusunun sahip olması veya hedef uygulama hizmet sorumlusuna atanmış bir rolü olması gerekir.
New-MgServicePrincipalAppRoleAssignment: Error occurred while executing NewServicePrincipalAppRoleAssignment Code: Authorization_RequestDenied Message: Insufficient privileges to complete the operation.- Değişken:
Kiracı A
A Kiracısı'nda aşağıdaki adımları tamamlayın:
Azure Shell'i açın ve komutunu çalıştırarak Event Grid abonelik yazıcısı Microsoft Entra Application olarak oturum açın.
az login --service-principal -u [REPLACE_WITH_APP_ID] -p [REPLACE_WITH_SECRET_VALUE] --tenant [REPLACE_WITH_TENANT_ID]komutunu çalıştırarak aboneliğinizi oluşturun.
az eventgrid system-topic event-subscription create --name [REPLACE_WITH_SUBSCRIPTION_NAME] -g [REPLACE_WITH_RESOURCE_GROUP] --system-topic-name [REPLACE_WITH_SYSTEM_TOPIC] --endpoint [REPLACE_WITH_WEBHOOK_ENDPOINT] --event-delivery-schema [REPLACE_WITH_WEBHOOK_EVENT_SCHEMA] --azure-active-directory-tenant-id [REPLACE_WITH_TENANT_B_ID] --azure-active-directory-application-id-or-uri [REPLACE_WITH_APPLICATION_ID_FROM_SCRIPT] --endpoint-type webhookNot
Bu senaryoda bir Event Grid Sistem Konusu kullanıyorsunuz. Azure CLI kullanarak özel konular veya Event Grid etki alanları için abonelik oluşturmak için buraya bakın.
Her şeyi doğru yapılandırdıysanız, Event Grid konu başlığınızda web kancası aboneliğini oluşturabilirsiniz.
Not
Bu noktada Event Grid, her iletide webhook istemcisine Microsoft Entra Bearer Token'ı geçirir. Web kancanızda Yetkilendirme belirtecini doğrulamanız gerekir.
İlgili içerik
- Kavramsal bilgi için bkz WebHook olay teslimi.
- Kimlik doğrulama anahtarı hakkında daha fazla bilgi için bkz . Event Grid güvenliği ve kimlik doğrulaması.
- Azure Event Grid aboneliği oluşturma hakkında daha fazla bilgi için bkz . Event Grid abonelik şeması.