Share via


Microsoft Entra Id ile kimlik doğrulaması ve yetkilendirme

Bu makalede, Microsoft Entra Id kullanarak Azure Event Grid yayımlama istemcilerinin kimliğinin nasıl doğrulandığı açıklanmaktadır.

Genel Bakış

Microsoft Identity platformu, kimlik sağlayıcısı olarak Microsoft Entra Id kullanan kaynaklar ve uygulamalar için tümleşik kimlik doğrulaması ve erişim denetimi yönetimi sağlar. Uygulamalarınızda kimlik doğrulaması ve yetkilendirme desteği sağlamak için Microsoft kimlik platformu kullanın. OAuth 2.0 ve OpenID Bağlan gibi açık standartları temel alır ve birçok kimlik doğrulama senaryolarını destekleyen araçlar ve açık kaynak kitaplıklar sunar. Örneğin, çok faktörlü kimlik doğrulaması gerektiren veya belirli konumlardan erişime izin veren ilkeler ayarlamanıza olanak tanıyan Koşullu Erişim gibi gelişmiş özellikler sağlar.

Microsoft Entra ID kullanırken güvenlik duruşunuzu geliştiren bir avantaj, kimlik doğrulama anahtarları gibi kimlik bilgilerini kodda veya depolarda depolamanız gerekmesidir. Bunun yerine, korumalı bir kaynakta kimlik doğrulaması yaparken uygulamanızın sunduğu Microsoft kimlik platformu OAuth 2.0 erişim belirteçlerinin alınmasına güvenirsiniz. Olay yayımlama uygulamanızı Microsoft Entra ID'ye kaydedebilir ve yönettiğiniz ve kullandığınız uygulamanızla ilişkili bir hizmet sorumlusu alabilirsiniz. Bunun yerine, kimlik yaşam döngüsünün bazı yönleri sizin için yönetildiğinden, daha basit bir kimlik yönetimi modeli için sistem tarafından atanan veya kullanıcı tarafından atanan Yönetilen Kimlikler'i kullanabilirsiniz.

Rol tabanlı erişim denetimi (RBAC), yetkilendirmeyi belirli güvenlik sorumlularının (kullanıcılar, gruplar veya uygulamalar için kimlikler) Azure kaynakları üzerinde işlemleri yürütmek için belirli izinlere sahip olacak şekilde yapılandırmanıza olanak tanır. Bu şekilde, Event Grid'e olay gönderen bir istemci uygulaması tarafından kullanılan güvenlik sorumlusunun kendisiyle ilişkilendirilmiş EventGrid Veri Göndereni RBAC rolüne sahip olması gerekir.

Güvenlik sorumluları

Event Grid yayımlama istemcisinin kimlik doğrulaması tartışılırken geçerli olan iki geniş güvenlik sorumlusu kategorisi vardır:

  • Yönetilen kimlikler. Yönetilen kimlik, bir Azure kaynağında etkinleştirdiğiniz ve yalnızca bu kaynakla ilişkilendirilen veya açıkça oluşturup adlandırdığınız kullanıcı tarafından atanan sistem atanabilir. Kullanıcı tarafından atanan yönetilen kimlikler birden fazla kaynakla ilişkilendirilebilir.
  • Uygulama güvenlik sorumlusu. Bir uygulamayı temsil eden ve Microsoft Entra Id ile korunan kaynaklara erişen bir güvenlik sorumlusu türüdür.

Kullanılan güvenlik sorumlusu, yönetilen kimlik veya uygulama güvenlik sorumlusu ne olursa olsun, istemciniz bu kimliği Kullanarak Microsoft Entra Kimliği'nden önce kimlik doğrulaması yapar ve Event Grid'e olay gönderirken isteklerle gönderilen bir OAuth 2.0 erişim belirteci alır. Bu belirteç kriptografik olarak imzalanır ve Event Grid bunu aldıktan sonra belirteç doğrulanır. Örneğin, hedef kitlenin (belirtecin hedeflenen alıcısı) Event Grid (https://eventgrid.azure.net) olduğu ve diğer şeyler olduğu doğrulanır. Belirteç, istemci kimliği hakkında bilgi içerir. Event Grid bu kimliği alır ve istemciye EventGrid Veri Göndereni rolünün atandığını doğrular. Event Grid, olay yayımlama isteğinin tamamlanmasına izin vermeden önce kimliğin Microsoft.EventGrid/events/send/action kimlikle ilişkilendirilmiş bir RBAC rolünde izni olduğunu doğrular.

Event Grid SDK'sını kullanıyorsanız, Event Grid veri düzlemi SDK'ları sizin için bunu yaptığı için erişim belirteçlerinin alımının nasıl uygulanacağından ve event Grid'e yapılan her istekte nasıl eklendiğinin ayrıntıları konusunda endişelenmeniz gerekmez.

Microsoft Entra kimlik doğrulamasını kullanmak için istemci yapılandırma adımları

İstemcinizi bir konuya, etki alanına veya iş ortağı ad alanına olay gönderirken Microsoft Entra kimlik doğrulamasını kullanacak şekilde yapılandırmak için aşağıdaki adımları gerçekleştirin.

  1. Kimlik doğrulaması yapmak için kullanmak istediğiniz bir güvenlik sorumlusu oluşturun veya kullanın. Yönetilen kimlik veya uygulama güvenlik sorumlusu kullanabilirsiniz.
  2. Güvenlik sorumlusuna EventGrid Veri Göndereni rolünü atayarak bir güvenlik sorumlusuna olayları yayımlama izni verin.
  3. Event Grid SDK'sını kullanarak olayları bir Event Grid'de yayımlayın.

Yönetilen kimlik kullanarak kimlik doğrulaması yapma

Yönetilen kimlikler, Azure kaynaklarıyla ilişkilendirilmiş kimliklerdir. Yönetilen kimlikler, uygulamaların Microsoft Entra kimlik doğrulamayı destekleyen Azure kaynaklarını kullanırken kullandığı bir kimlik sağlar. Uygulamalar, Event Grid'de olay yayımlarken istekle birlikte sunulan Microsoft Entra belirteçlerini almak için sanal makine veya Azure Uygulaması hizmeti gibi barındırma kaynağının yönetilen kimliğini kullanabilir. Uygulama bağlandığında Event Grid yönetilen varlığın bağlamını istemciye bağlar. Yönetilen kimlikle ilişkilendirildikten sonra Event Grid yayımlama istemciniz tüm yetkili işlemleri gerçekleştirebilir. Yetkilendirme, yönetilen varlığı event grid RBAC rolüyle ilişkilendirerek verilir.

Yönetilen kimlik, Azure hizmetlerine Microsoft Entra Id'de otomatik olarak yönetilen bir kimlik sağlar. Diğer kimlik doğrulama yöntemlerinin aksine, kimliğin kendisi veya erişmeniz gereken kaynaklar için uygulama kodunuzda veya yapılandırmanızda erişim anahtarlarını veya Paylaşılan Erişim İmzalarını (SAS) depolamanız ve korumanız gerekmez.

Yönetilen kimlikleri kullanarak olay yayımlama istemcinizin kimliğini doğrulamak için önce istemci uygulamanız için Azure hizmetini barındırmaya karar verin ve ardından bu Azure hizmet örneğinde sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimlikleri etkinleştirin. Örneğin, vm, Azure Uygulaması Hizmeti veya Azure İşlevleri yönetilen kimlikleri etkinleştirebilirsiniz.

Barındırma hizmetinde yapılandırılmış bir yönetilen kimliğiniz olduğunda, olayları bu kimliğe yayımlama iznini atayın.

İstemci uygulamasının güvenlik sorumlusunu kullanarak kimlik doğrulaması yapma

Yönetilen kimliklerin yanı sıra başka bir kimlik seçeneği de istemci uygulamanız için bir güvenlik sorumlusu oluşturmaktır. Bu amaçla, uygulamanızı Microsoft Entra ID'ye kaydetmeniz gerekir. Uygulamanızı kaydetmek, kimlik ve erişim yönetimi denetimini Microsoft Entra Id'ye devredebileceğiniz bir harekettir. Uygulamayı kaydetme bölümündeki ve İstemci gizli dizisi ekleme bölümündeki adımları izleyin. Başlamadan önce önkoşulları gözden geçirmeyi unutmayın.

Uygulama güvenlik sorumlunuz olduktan ve yukarıdaki adımları izledikten sonra, olayları bu kimliğe yayımlama iznini atayın.

Dekont

Portala bir uygulama kaydettiğinizde, ev kiracınızda otomatik olarak bir uygulama nesnesi ve hizmet sorumlusu oluşturulur. Alternatif olarak, uygulamanızı kaydetmek için Microsot Graph'ı kullanabilirsiniz. Ancak, Microsoft Graph API'lerini kullanarak bir uygulama kaydeder veya oluşturursanız, hizmet sorumlusu nesnesini oluşturmak ayrı bir adımdır.

Olayları yayımlamak için güvenlik sorumlusuna izin atama

Event Grid'de olayları yayımlamak için kullanılan kimliğin Event Grid'e Microsoft.EventGrid/events/send/action olay gönderme iznine sahip olması gerekir. Bu izin, yerleşik RBAC rolü Event Grid Veri Göndereni'ne eklenir. Bu rol, bir yönetim grubu, Azure aboneliği, kaynak grubu veya belirli bir Event Grid konusu, etki alanı veya iş ortağı ad alanı olabilecek belirli bir kapsam için bir güvenlik sorumlusuna atanabilir. Bir güvenlik sorumlusuna EventGrid Veri Göndereni rolü atamak için Azure rollerini atama başlığındaki adımları izleyin ve bu şekilde olayları göndermek için bu güvenlik sorumlusu erişimini kullanarak bir uygulamaya verin. Alternatif olarak, izni içeren Microsoft.EventGrid/events/send/action bir özel rol tanımlayabilir ve bu özel rolü güvenlik sorumlunuza atayabilirsiniz.

RBAC ayrıcalıklarıyla ilgilenildi, artık event grid'e olay göndermek için istemci uygulamanızı oluşturabilirsiniz.

Dekont

Event Grid, olay göndermenin ötesinde amaçlar için daha fazla RBAC rolünü destekler. Daha fazla bilgi için bkz. Event Grid yerleşik rolleri.

Event Grid'in istemci SDK'larını kullanarak olayları yayımlama

Event Grid'de olayları yayımlamak için Event Grid'in veri düzlemi SDK'sını kullanın. Event Grid SDK'sı, Microsoft Entra kimlik doğrulaması dahil olmak üzere tüm kimlik doğrulama yöntemlerini destekler.

.NET SDK'sını kullanarak Event Grid'de olayları yayımlayan örnek kod aşağıda verilmiştır. Konu uç noktasını Azure portalındaki Event Grid konunuzun Genel Bakış sayfasından alabilirsiniz. Şu biçimdedir: https://<TOPIC-NAME>.<REGION>-1.eventgrid.azure.net/api/events.

ManagedIdentityCredential managedIdentityCredential = new ManagedIdentityCredential();
EventGridPublisherClient client = new EventGridPublisherClient( new Uri("<TOPIC ENDPOINT>"), managedIdentityCredential);


EventGridEvent egEvent = new EventGridEvent(
        "ExampleEventSubject",
        "Example.EventType",
        "1.0",
        "This is the event data");

// Send the event
await client.SendEventAsync(egEvent);

Önkoşullar

Event Grid'de kimlik doğrulaması yapmak için önkoşullar aşağıdadır.

Microsoft Entra kimlik doğrulamayı kullanarak olayları yayımlama

Olayları bir konu, etki alanı veya iş ortağı ad alanına göndermek için istemciyi aşağıdaki şekilde oluşturabilirsiniz. İlk olarak Microsoft Entra kimlik doğrulaması için destek sağlayan API sürümüdür 2018-01-01. Uygulamanızda bu API sürümünü veya daha yeni bir sürümü kullanın.

Örnek:

Bu C# kod parçacığı, Azure.Identity kitaplığını eklemeniz gereken DefaultAzureCredential yöntemini etkinleştirmek için istemci gizli dizisine sahip bir Uygulama (Hizmet Sorumlusu) kullanarak bir Event Grid yayımcı istemcisi oluşturur. Resmi SDK'yı kullanıyorsanız SDK sürümü sizin için işler.

Environment.SetEnvironmentVariable("AZURE_CLIENT_ID", "");
Environment.SetEnvironmentVariable("AZURE_TENANT_ID", "");
Environment.SetEnvironmentVariable("AZURE_CLIENT_SECRET", "");

EventGridPublisherClient client = new EventGridPublisherClient(new Uri("your-event-grid-topic-domain-or-partner-namespace-endpoint"), new DefaultAzureCredential());

Daha fazla bilgi için aşağıdaki makaleleri inceleyin:

Anahtar ve paylaşılan erişim imzası kimlik doğrulamayı devre dışı bırakma

Microsoft Entra kimlik doğrulaması, erişim anahtarı veya Paylaşılan Erişim İmzası (SAS) belirteci kimlik doğrulaması tarafından sunulandan daha üstün bir kimlik doğrulama desteği sağlar. Microsoft Entra kimlik doğrulaması ile kimlik, Microsoft Entra kimlik sağlayıcısına karşı doğrulanır. Geliştirici olarak, Microsoft Entra kimlik doğrulamasını kullanıyorsanız kodunuzda anahtarları işlemeniz gerekmez. Ayrıca, uygulamanızın güvenlik duruşunu geliştirmenize yardımcı olabilecek Koşullu Erişim gibi Microsoft Identity platformunda yerleşik olarak bulunan tüm güvenlik özelliklerinden de yararlanacaksınız.

Microsoft Entra kimlik doğrulamasını kullanmaya karar verdikten sonra, erişim anahtarlarına veya SAS belirteçlerine göre kimlik doğrulamasını devre dışı bırakabilirsiniz.

Dekont

Acess anahtarları veya SAS belirteci kimlik doğrulaması, yerel kimlik doğrulamasının bir biçimidir. Microsoft Entra Id'ye bağlı olmayan bu kimlik doğrulama mekanizmaları kategorisini tartışırken bazen "yerel kimlik doğrulamasına" başvurduğunu duyarsınız. Yerel kimlik doğrulamasını devre dışı bırakmak için kullanılan API parametresi, uygun şekilde çağrılır. disableLocalAuth

Azure portalı

Yeni bir konu oluştururken, Konu Oluştur sayfasının Gelişmiş sekmesinde yerel kimlik doğrulamasını devre dışı bırakabilirsiniz.

Screenshot showing the Advanced tab of Create Topic page when you can disable local authentication.

Mevcut bir konu için, yerel kimlik doğrulamasını devre dışı bırakmak için aşağıdaki adımları izleyin:

  1. Konunun Event Grid Konu Başlığı sayfasına gidin ve Yerel Kimlik Doğrulaması altında Etkin'i seçin

    Screenshot showing the Overview page of an existing topic.

  2. Yerel Kimlik Doğrulaması açılır penceresinde Devre Dışı'nı ve ardından Tamam'ı seçin.

    Screenshot showing the Local Authentication window.

Azure CLI

Aşağıdaki CLI komutu, yerel kimlik doğrulaması devre dışı bırakılmış özel bir konu oluşturmanın yolunu gösterir. Yerel kimlik doğrulamayı devre dışı bırakma özelliği şu anda önizleme olarak kullanılabilir ve API sürümünü 2021-06-01-previewkullanmanız gerekir.

az resource create --subscription <subscriptionId> --resource-group <resourceGroup> --resource-type Microsoft.EventGrid/topics --api-version 2021-06-01-preview --name <topicName> --location <location> --properties "{ \"disableLocalAuth\": true}"

Başvurunuz için, oluşturduğunuz veya güncelleştirdiğiniz konuya göre kullanabileceğiniz kaynak türü değerleri aşağıdadır.

Konu türü Kaynak türü
Etki alanları Microsoft.EventGrid/domains
İş Ortağı Ad Alanı Microsoft.EventGrid/partnerNamespaces
Özel Konu Microsoft.EventGrid/topics

Azure PowerShell

PowerShell kullanıyorsanız, yerel kimlik doğrulaması devre dışı bırakılmış özel bir konu oluşturmak için aşağıdaki cmdlet'leri kullanın.


Set-AzContext -SubscriptionId <SubscriptionId>

New-AzResource -ResourceGroupName <ResourceGroupName> -ResourceType Microsoft.EventGrid/topics -ApiVersion 2021-06-01-preview -ResourceName <TopicName> -Location <Location> -Properties @{disableLocalAuth=$true}

Dekont

Kaynaklar