Azure Active Directory (AAD) kimlik doğrulamasıAzure Active Directory (AAD) Authentication

Azure Active Directory (AAD) Azure'ın tercih edilen çok kiracılı bulut dizin hizmetidir; güvenlik sorumlularının kimliğini doğrulayabilir veya Microsoft’un Active Directory’si gibi diğer kimlik sağlayıcılarıyla federasyon oluşturabilir.Azure Active Directory (AAD) is Azure's preferred multi-tenant cloud directory service, capable of authenticating security principals or federating with other identity providers, such as Microsoft's Active Directory.

AAD, çeşitli türlerdeki (Web uygulaması, Windows masaüstü uygulaması, evrensel uygulamalar, mobil uygulamalar vb.) uygulamanın kusto hizmetlerini tek bir şekilde doğrulamasına ve kullanmasına izin verir.AAD allows application of various kinds (web application, Windows desktop application, Universal applications, mobile applications, etc.) to uniformly authenticate and use Kusto services.

AAD, bir dizi kimlik doğrulama senaryosunu destekler.AAD supports a number of authentication scenarios. Kimlik doğrulaması sırasında bir kullanıcı varsa, bir kullanıcının AAD Kullanıcı kimlik doğrulaması tarafından AAD 'ye kimliğini doğrulaması gerekir.If there is a user present during the authentication, one should authenticate the user to AAD by AAD User Authentication. Bazı durumlarda, bir kullanıcı etkileşimli olarak olmasa bile bir hizmetin kusto kullanmasını ister.In some cases, one wants a service to use Kusto even when no user is interactively present. Bu gibi durumlarda, bir uygulamanın, AAD uygulama kimlik doğrulaması ' nda açıklandığı gibi, uygulama gizli anahtarı kullanılarak uygulamanın kimlik doğrulaması gerekir.In such cases, one should authenticate the application through the use of an application secret, as described in AAD Application Authentication.

Aşağıdaki kimlik doğrulama yöntemleri, .NET kitaplıkları dahil olmak üzere genel olarak kusto tarafından desteklenir:The following methods of authentication are supported by Kusto in general, including through its .NET libraries:

  • Etkileşimli kullanıcı kimlik doğrulaması-Bu mod, gerekli olduğu gibi etkileşim gerektirir, oturum açma kullanıcı arabirimi açılırInteractive user authentication - this mode requires interactivity, as if needed, logon UI will pop up
  • Daha önce kusto için verilen mevcut bir AAD belirteciyle Kullanıcı kimlik doğrulamasıUser authentication with an existing AAD token previously issued for Kusto
  • AppID ve paylaşılan gizlilik ile uygulama kimlik doğrulamasıApplication authentication with AppID and shared secret
  • Yerel olarak yüklenen X. 509v2 sertifikası veya sertifikası satır içi olarak sağlanmış uygulama kimlik doğrulamasıApplication authentication with locally installed X.509v2 certificate or certificate provided inline
  • Önceden kusto için verilen mevcut bir AAD belirteci ile uygulama kimlik doğrulamasıApplication authentication with an existing AAD token previously issued for Kusto
  • Başka bir kaynak için verilen bir AAD belirteciyle Kullanıcı veya uygulama kimlik doğrulaması, bu kaynak ve kusto arasında güven varUser or Application authentication with an AAD token issued for another resource, provided trust exists between that resource and Kusto

Lütfen kılavuz ve örnekler için kusto bağlantı dizeleri başvurusuna bakın.Please see the Kusto connection strings reference for guidance and examples.

Kullanıcı kimlik doğrulamasıUser authentication

Kullanıcı kimlik doğrulaması, Kullanıcı AAD 'ye kimlik bilgileri sunarken (veya bazı kimlik, ADFS gibi AAD ile Federasyon), kusto hizmetine sunulabilen bir güvenlik belirteci geri alırsa oluşur.User authentication happens when the user presents credentials to AAD (or to some identity provide that federates with AAD, such as ADFS), and gets back a security token that can be presented to the Kusto service. Kusto hizmeti için güvenlik belirtecinin nasıl alındığı önemli değildir; belirtecin geçerli olup olmadığı ve AAD (veya federasyon IdP) tarafından belirtece hangi bilgilerin eklendiği önemlidir.The Kusto service doesn't care how the security token was obtained, it cares about whether the token is valid and what information is put there by AAD (or the federated IdP).

İstemci tarafında Kusto AAD istemci kitaplığı ADAL veya benzer bir kodun kullanıcıdan kimlik bilgilerini girmesini istediği etkileşimli kimlik doğrulamasını destekler.On the client side, Kusto supports both interactive authentication, in which the AAD client library ADAL or similar code requests the user to enter credentials. Aynı zamanda Kusto kullanan uygulamanın geçerli bir kullanıcı belirteci aldığı ve bunu sunduğu belirteç tabanlı kimlik doğrulamasını da destekler.It also supports token-based authentication, in which the application using Kusto obtains a valid user token and presents it. Son olarak, Kusto kullanan uygulamanın başka (Kusto olmayan) bir hizmet için geçerli bir kullanıcı belirteci aldığı senaryoları da destekler, ama bunun için kaynakla Kusto arasında güven ilişkisi olmalıdır.Last, it supports a scenario in which the application using Kusto obtains a valid user token for some other service (not Kusto), provided there's a trust relationship between that resource and Kusto.

Kusto istemci kitaplıklarını kullanma ve AAD kullanarak Kusto’da kimlik doğrulaması yapma hakkındaki ayrıntılar için bkz. Kusto bağlantı dizeleri.Please see Kusto connection strings for details on how to use the Kusto client libraries and authenticate by using AAD to Kusto.

Uygulama kimlik doğrulamasıApplication authentication

İstekler belirli bir kullanıcıyla ilişkilendirilmediğinde veya kimlik bilgilerini girecek kullanıcı olmadığında AAD uygulaması kimlik doğrulama akışı kullanılabilir.When requests are not associated with a specific user, or there's no user available to enter credentials, the AAD application authentication flow may be used. Bu akışta uygulama bazı gizli bilgileri sunarak AAD’de (veya federasyon IdP’de) kimliğini doğrular.In this flow, the application authenticates to AAD (or the federated IdP) by presenting some secret information. Aşağıdaki senaryolar çeşitli Kusto istemcileri tarafından desteklenir:The following scenarios are supported by the various Kusto clients:

  • Yerel olarak yüklenmiş bir X.509v2 sertifikasının kullanıldığı uygulama kimlik doğrulaması.Application authentication using an X.509v2 certificate installed locally.
  • İstemci kitaplığına bayt akışı olarak verilen X.509v2 sertifikasının kullanıldığı uygulama kimlik doğrulaması.Application authentication using an X.509v2 certificate given to the client library as a byte stream.
  • AAD uygulama kimliği ve AAD uygulama anahtarının kullanıldığı uygulama kimlik doğrulaması (uygulamalar için kullanıcı adı/parola kimlik doğrulamasının eşdeğeri).Application authentication using an AAD application ID and an AAD application key (the equivalent of username/password authentication for applications).
  • Daha önce alınmış geçerli bir AAD belirtecinin (Kusto’ya verilmiş) kullanıldığı uygulama kimlik doğrulaması.Application authentication using a previously-obtained valid AAD token (issued to Kusto).
  • Daha önce alınmış ve başka bir kaynağa verilmiş geçerli bir AAD belirtecinin kullanıldığı uygulama kimlik doğrulaması (kaynak ile Kusto arasında güven ilişkisi olmalıdır).Application authentication using a previously-obtained valid AAD token issued to some other resource, provided that there's a trust relationship between that resource and Kusto.

AAD sunucusu uygulama IzinleriAAD Server Application Permissions

Genel durumda, bir AAD sunucu uygulaması birden çok izin tanımlayabilir (örneğin, salt okuma izni ve bir okuma yazıcı izni) ve AAD istemci uygulaması, yetkilendirme belirteci istediğinde hangi izinlere ihtiyaç duyabileceğine karar verebilir.In the general case, an AAD Server Application can define multiple permissions (e.g., read-only permission and a read-writer permission) and the AAD client application may decide which permissions it needs when it requests an authorization token. Belirteç alma 'nın bir parçası olarak, kullanıcıdan, bu izinlere sahip olan yetkilendirmede Kullanıcı adına işlem yapması için AAD istemci uygulamasının yetkilendirilmesini istenir.As part of token acquisition, the user will be asked to authorize the AAD client application to be act on the user's behalf with authorization to have these permissions. Kullanıcının onaylaması gerekir, bu izinler AAD istemci uygulamasına verilen belirtecin kapsam talebinde listelenecektir.Should the user approve, these permissions will be listed in the scope claim of the token that is issued to the AAD client application.

AAD istemci uygulaması, kullanıcıdan "Access kusto" iznini (hangi AAD "kaynak sahibi" olarak çağırır) isteyecek şekilde yapılandırılmıştır.The AAD client application is configured to request the "Access Kusto" permission from the user (which AAD calls "the resource owner").

AAD İstemci Uygulaması Olarak Kusto İstemci SDK’sıKusto Client SDK as an AAD Client Application

Kusto istemci kitaplıkları Kusto ile iletişim kurmak üzere belirteç almak için ADAL’yi (AAD istemci kitaplığı) çağırdığında, şu bilgileri sağlar:When the Kusto client libraries invoke ADAL (the AAD client library) to acquire a token for communicating with Kusto, it provides the following information:

  1. Çağırandan alınan AAD kiracısıThe AAD Tenant, as received from the caller
  2. AAD İstemci Uygulaması KimliğiThe AAD Client Application ID
  3. AAD Istemci kaynak KIMLIĞIThe AAD Client Resource ID
  4. AAD ReplyUrl 'Si (kimlik doğrulama başarıyla tamamlandıktan sonra AAD hizmetinin yönlendirileceği URL); ADAL daha sonra bu yeniden yönlendirmeyi yakalar ve yetkilendirme kodunu bundan ayıklar).The AAD ReplyUrl (the URL that the AAD service will redirect-to after authentication completes successfully; ADAL then captures this redirect and extracts the authorization code from it).
  5. Küme URI 'SI (' https://Cluster-and-region.kusto.windows.net ').The Cluster URI ('https://Cluster-and-region.kusto.windows.net').

ADAL tarafından kusto Istemci kitaplığına döndürülen belirteç, hedef kitle olarak kusto AAD sunucu uygulamasına ve kapsam olarak "erişim kusto" iznine sahiptir.The token returned by ADAL to the Kusto Client Library has the Kusto AAD Server Application as the audience, and the "Access Kusto" permission as the scope.

AAD ile programlı olarak kimlik doğrulamasıAuthenticating with AAD Programmatically

Aşağıdaki makalelerde AAD ile kusto için programlı olarak nasıl kimlik doğrulaması yapılacağı açıklanmaktadır:The following articles explain how to programmatically authenticate to Kusto with AAD: