Kimlik doğrulama akışları ve uygulama senaryoları

Microsoft kimlik platformu, farklı türlerdeki modern uygulama mimarileri için kimlik doğrulamasını destekler. Tüm mimariler OAuth 2.0 ve OpenID Connect endüstri standardı protokolleri temel alır. Uygulamalar, Microsoft kimlik platformu kimlik doğrulama kitaplıklarını kullanarak kimliklerin kimliğini doğrular ve korumalı API'lere erişmek için belirteçler alır.

Bu makalede, kimlik doğrulama akışları ve kullanıldıkları uygulama senaryoları açıklanmaktadır.

Uygulama kategorileri

Belirteçler aşağıdakiler gibi çeşitli uygulama türlerinden alınabilir:

  • Web uygulamaları
  • Mobil uygulamalar
  • Masaüstü uygulamaları
  • Web API'leri

Belirteçler, tarayıcıya sahip olmayan veya Nesnelerin İnterneti(IoT) üzerinde çalışan cihazlarda çalışan uygulamalar tarafından da alınabilir.

Aşağıdaki bölümlerde uygulama kategorileri açıklanmaktadır.

Korumalı kaynaklar ve istemci uygulamaları karşılaştırması

Kimlik doğrulama senaryoları iki etkinlik içerir:

Kullanıcılarla veya kullanıcılar olmadan

Kimlik doğrulama senaryolarının çoğu oturum açmış kullanıcılar adına belirteçler alır.

Kullanıcılarla senaryolar

Ancak, daemon uygulamaları da vardır. Bu senaryolarda uygulamalar, kullanıcı olmadan kendileri adına belirteçler alır.

Daemon uygulamalarıyla ilgili senaryolar

Tek sayfalı, ortak istemci ve gizli istemci uygulamaları

Güvenlik belirteçleri birden çok uygulama türü tarafından alınabilir. Bu uygulamalar genellikle aşağıdaki üç kategoriye ayrılır. Her biri farklı kitaplıklar ve nesnelerle kullanılır.

  • Tek sayfalı uygulamalar: SPA olarak da bilinen bu uygulamalar, belirteçlerin tarayıcıda çalışan bir JavaScript veya TypeScript uygulaması tarafından alındığı web uygulamalarıdır. Birçok modern uygulamanın ön ucunda öncelikli olarak JavaScript ile yazılmış tek sayfalı bir uygulama vardır. Uygulama genellikle Angular, React veya Vue gibi bir çerçeve kullanır. MSAL.js, tek sayfalı uygulamaları destekleyen tek Microsoft Kimlik Doğrulama Kitaplığı'dır.

  • Genel istemci uygulamaları: Aşağıdaki türler gibi bu kategorideki uygulamalar her zaman kullanıcılarda oturum açar:

    • Oturum açmış kullanıcılar adına web API'lerini çağıran masaüstü uygulamaları
    • Mobil uygulamalar
    • IoT üzerinde çalışan uygulamalar gibi tarayıcısı olmayan cihazlarda çalışan uygulamalar
  • Gizli istemci uygulamaları: Bu kategorideki uygulamalar şunlardır:

    • Web API'lerini çağıran web uygulamaları
    • Web API'lerini çağıran Web API'leri
    • Linux daemon veya Windows hizmeti gibi bir konsol hizmeti olarak uygulandığında bile Daemon uygulamaları

Hedef kitlenin oturumunu açma

Kullanılabilir kimlik doğrulama akışları, oturum açma hedef kitlesine bağlı olarak farklılık gösterir. Bazı akışlar yalnızca iş veya okul hesapları için kullanılabilir. Diğerleri hem iş hem de okul hesapları ve kişisel Microsoft hesapları için kullanılabilir.

Daha fazla bilgi için bkz . Desteklenen hesap türleri.

Uygulama senaryoları

Microsoft kimlik platformu, bu uygulama mimarileri için kimlik doğrulamasını destekler:

  • Tek sayfalı uygulamalar
  • Web uygulamaları
  • Web API'leri
  • Mobil uygulamalar
  • Yerel uygulamalar
  • Daemon uygulamaları
  • Sunucu tarafı uygulamaları

Uygulamalar, kullanıcıların oturumunu açmak ve korumalı API'leri çağırmak için belirteçler almak için farklı kimlik doğrulama akışlarını kullanır.

Tek sayfalı uygulama

Birçok modern web uygulaması, istemci tarafı tek sayfalı uygulamalar olarak oluşturulur. Bu uygulamalar JavaScript veya Angular, Vue ve React gibi bir çerçeve kullanır. Bu uygulamalar bir web tarayıcısında çalışır.

Tek sayfalı uygulamalar, kimlik doğrulama özellikleri açısından geleneksel sunucu tarafı web uygulamalarından farklıdır. Tek sayfalı uygulamalar, Microsoft kimlik platformu kullanarak kullanıcılarda oturum açabilir ve arka uç hizmetlerine veya web API'lerine erişmek için belirteç alabilir. Microsoft kimlik platformu, JavaScript uygulamaları için iki verme türü sunar:

MSAL.js (2.x) MSAL.js (1.x)
Tek sayfalı uygulama kimlik doğrulaması Tek sayfalı uygulama örtük

Bir kullanıcıda oturum açma web uygulaması

Bir kullanıcıda oturum açma web uygulaması

Kullanıcının oturum açtığı bir web uygulamasını korumaya yardımcı olmak için:

  • .NET'te geliştirme yaparsanız, ASP.NET OpenID Connect ara yazılımıyla ASP.NET veya ASP.NET Core kullanırsınız. Kaynağın korunması, MSAL kitaplıkları için değil.NET için IdentityModel uzantıları tarafından gerçekleştirilen güvenlik belirtecinin doğrulanmasıdır.

  • Node.js'da geliştirirseniz MSAL Düğümünü kullanırsınız.

Daha fazla bilgi için bkz. Kullanıcılarda oturum açma web uygulaması.

Bir kullanıcıda oturum açıp kullanıcı adına web API'sini çağıran web uygulaması

Web API'lerini çağıran bir web uygulaması

Kullanıcı adına bir web uygulamasından web API'sini çağırmak için yetkilendirme kodu akışını kullanın ve alınan belirteçleri belirteç önbelleğinde depolayın. Gerektiğinde, MSAL belirteçleri yeniler ve denetleyici önbellekten sessizce belirteç alır.

Daha fazla bilgi için bkz . Web API'lerini çağıran web uygulaması.

Oturum açmış bir kullanıcı adına web API'sini çağıran masaüstü uygulaması

Bir masaüstü uygulamasının kullanıcılarda oturum açmış bir web API'sini çağırması için MSAL'nin etkileşimli belirteç alma yöntemlerini kullanın. Bu etkileşimli yöntemlerle oturum açma kullanıcı arabirimi deneyimini denetleyebilirsiniz. MSAL bu etkileşim için bir web tarayıcısı kullanır.

Web API'sini çağıran bir masaüstü uygulaması

Windows etki alanına veya Azure Active Directory (Azure AD) tarafından katılmış bilgisayarlarda Windows tarafından barındırılan uygulamalar için başka bir olasılık vardır. Bu uygulamalar tümleşik Windows kimlik doğrulaması kullanarak sessizce belirteç alabilir.

Tarayıcı olmadan bir cihazda çalışan uygulamalar, kullanıcı adına API'yi çağırmaya devam edebilir. Kimlik doğrulaması yapmak için kullanıcının web tarayıcısı olan başka bir cihazda oturum açması gerekir. Bu senaryo için cihaz kodu akışını kullanmanız gerekir.

Cihaz kodu akışı

Bunu kullanmanızı önermesek de kullanıcı adı/parola akışı genel istemci uygulamalarında kullanılabilir. DevOps gibi bazı senaryolarda bu akış hala gereklidir.

Kullanıcı adı/parola akışının kullanılması uygulamalarınızı kısıtlar. Örneğin, uygulamalar Azure AD'de çok faktörlü kimlik doğrulamasını veya Koşullu Erişim aracını kullanması gereken bir kullanıcıda oturum açamaz. Uygulamalarınız çoklu oturum açmadan da yararlanamaz. Kullanıcı adı/parola akışıyla kimlik doğrulaması, modern kimlik doğrulaması ilkelerine aykırıdır ve yalnızca eski nedenlerle sağlanır.

Masaüstü uygulamalarında, belirteç önbelleğinin kalıcı olmasını istiyorsanız , belirteç önbelleği serileştirmesini özelleştirebilirsiniz. Çift belirteçli önbellek serileştirmesi uygulayarak geriye dönük uyumlu ve ileri uyumlu belirteç önbelleklerini kullanabilirsiniz. Bu belirteçler, kimlik doğrulama kitaplıklarının önceki nesillerini destekler. Belirli kitaplıklar .NET (ADAL.NET) sürüm 3 ve sürüm 4 için Azure AD Kimlik Doğrulama Kitaplığı'dır.

Daha fazla bilgi için bkz . Web API'lerini çağıran masaüstü uygulaması.

Etkileşimli bir kullanıcı adına web API'sini çağıran mobil uygulama

Masaüstü uygulamasına benzer şekilde, bir mobil uygulama, web API'sini çağırmak için belirteç almak üzere MSAL'nin etkileşimli belirteç alma yöntemlerini çağırır.

Web API'sini çağıran bir mobil uygulama

MSAL iOS ve MSAL Android varsayılan olarak sistem web tarayıcısını kullanır. Ancak, bunları bunun yerine eklenmiş web görünümünü kullanmaya yönlendirebilirsiniz. Mobil platforma bağlı özellikler vardır: Evrensel Windows Platformu (UWP), iOS veya Android.

Cihaz kimliği veya cihaz kaydıyla ilgili Koşullu Erişim içeren senaryolar gibi bazı senaryolarda cihaza bir aracı yüklenmesi gerekir. Aracılara örnek olarak Android'de Microsoft Şirket Portalı ve Android ve iOS'ta Microsoft Authenticator verilebilir. MSAL artık aracılarla etkileşim kurabiliyor. Aracılar hakkında daha fazla bilgi için bkz . Android ve iOS'ta aracılardan yararlanma.

Daha fazla bilgi için bkz. Web API'lerini çağıran mobil uygulama.

Not

MSAL.iOS, MSAL kullanan bir mobil uygulama. Android veya Xamarin'de MSAL.NET uygulama koruma ilkeleri uygulanabilir. Örneğin, ilkeler kullanıcının korumalı metni kopyalamasını engelleyebilir. Mobil uygulama Intune tarafından yönetilir ve Intune tarafından yönetilen uygulama olarak tanınır. Daha fazla bilgi için bkz. Microsoft Intune Uygulama SDK'sı genel bakış.

Intune Uygulama SDK'sı MSAL kitaplıklarından ayrıdır ve Azure AD kendi başına etkileşim kurar.

Korumalı web API’si

Uygulamanızın RESTful API'si gibi web hizmetlerinin güvenliğini sağlamak için Microsoft kimlik platformu uç noktasını kullanabilirsiniz. Korumalı bir web API'si erişim belirteci aracılığıyla çağrılır. Belirteç, API'nin verilerinin güvenliğini sağlar ve gelen isteklerin kimliğini doğrular. Web API'sinin çağıranı, http isteğinin yetkilendirme üst bilgisine bir erişim belirteci ekler.

ASP.NET veya ASP.NET Core web API'nizi korumak istiyorsanız erişim belirtecini doğrulayın. Bu doğrulama için ASP.NET JWT ara yazılımını kullanırsınız. Doğrulama, MSAL.NET tarafından değil , .NET kitaplığı için IdentityModel uzantıları tarafından gerçekleştirilir.

Daha fazla bilgi için bkz . Korumalı web API'si.

Kullanıcı adına başka bir web API'sini çağıran Web API'si

Korumalı web API'nizin kullanıcı adına başka bir web API'sini çağırması için uygulamanızın aşağı akış web API'sine yönelik bir belirteç alması gerekir. Bu tür çağrılar bazen hizmet-hizmet çağrıları olarak adlandırılır. Diğer web API'lerini çağıran Web API'lerinin özel önbellek serileştirmesi sağlaması gerekir.

Başka bir web API'lerini çağıran bir web API'si

Daha fazla bilgi için bkz . Web API'lerini çağıran Web API'leri.

Daemon adında bir web API'sini çağıran Daemon uygulaması

Uzun süre çalışan işlemleri olan veya kullanıcı etkileşimi olmadan çalışan uygulamaların da güvenli web API'lerine erişmesi gerekir. Böyle bir uygulama, uygulamanın kimliğini kullanarak kimlik doğrulaması yapabilir ve belirteç alabilir. Uygulama, kimliğini bir gizli dizi veya sertifika kullanarak kanıtlar.

MSAL'de istemci kimlik bilgisi alma yöntemlerini kullanarak çağıran uygulama için belirteç alan bu tür daemon uygulamaları yazabilirsiniz. Bu yöntemler, Azure AD uygulama kaydına eklediğiniz bir gizli dizi gerektirir. Uygulama daha sonra gizli diziyi adlı daemon ile paylaşır. Bu tür gizli dizilere örnek olarak uygulama parolaları, sertifika onaylama ve istemci onaylama verilebilir.

Diğer uygulamalar ve API'ler tarafından çağrılan bir daemon uygulaması

Daha fazla bilgi için bkz. Web API'lerini çağıran Daemon uygulaması.

Senaryolar ve desteklenen kimlik doğrulama akışları

Belirteç isteyen uygulama senaryolarını uygulamak için kimlik doğrulama akışlarını kullanırsınız. Uygulama senaryoları ile kimlik doğrulama akışları arasında bire bir eşleme yoktur.

Belirteçleri almayla ilgili senaryolar da OAuth 2.0 kimlik doğrulama akışlarıyla eşler. Daha fazla bilgi için bkz. Microsoft kimlik platformu OAuth 2.0 ve OpenID Connect protokolleri.

Senaryo Ayrıntılı senaryo kılavuzu OAuth 2.0 akışı ve verme Hedef kitle
Kimlik Doğrulama koduyla Tek Sayfalı Uygulama Tek sayfalı uygulama PKCE ile yetkilendirme kodu İş veya okul hesapları, kişisel hesaplar ve Azure Active Directory B2C (Azure AD B2C)
Örtülü Tek Sayfalı Uygulama Tek sayfalı uygulama Örtük İş veya okul hesapları, kişisel hesaplar ve Azure Active Directory B2C (Azure AD B2C)
Kullanıcılar için oturum açan web uygulaması Kullanıcılar için oturum açan web uygulaması Yetkilendirme kodu İş veya okul hesapları, kişisel hesaplar ve Azure AD B2C
Web API’lerini çağıran web uygulaması Web API’lerini çağıran web uygulaması Yetkilendirme kodu İş veya okul hesapları, kişisel hesaplar ve Azure AD B2C
Web API'lerini çağıran masaüstü uygulaması Web API'lerini çağıran masaüstü uygulaması PKCE ile yetkilendirme kodu kullanarak etkileşimli İş veya okul hesapları, kişisel hesaplar ve Azure AD B2C
Tümleşik Windows kimlik doğrulaması İş veya okul hesapları
Kaynak sahibi parolası İş veya okul hesapları ve Azure AD B2C
Tarayıcısız uygulama Cihaz kodu İş veya okul hesapları, kişisel hesaplar, ancak B2C Azure AD değil
Web API'lerini çağıran mobil uygulama Web API'lerini çağıran mobil uygulama PKCE ile yetkilendirme kodu kullanarak etkileşimli İş veya okul hesapları, kişisel hesaplar ve Azure AD B2C
Kaynak sahibi parolası İş veya okul hesapları ve Azure AD B2C
Web API'lerini çağıran Daemon uygulaması Web API'lerini çağıran Daemon uygulaması İstemci kimlik bilgileri Kullanıcısı olmayan ve yalnızca Azure AD kuruluşlarda kullanılan yalnızca uygulama izinleri
Web API'lerini çağıran web API'si Web API'lerini çağıran web API'si Adına İş veya okul hesapları ve kişisel hesaplar

Senaryolar ve desteklenen platformlar ve diller

Microsoft Kimlik Doğrulama Kitaplıkları birden çok platformu destekler:

  • .NET Core
  • .NET Framework
  • Java
  • JavaScript
  • Mac OS
  • Yerel Android
  • Yerel iOS
  • Node.js
  • Python
  • Windows 10/UWP
  • Xamarin.iOS
  • Xamarin.Android

Uygulamalarınızı oluşturmak için çeşitli dilleri de kullanabilirsiniz.

Aşağıdaki tablonun Windows sütununda .NET Core'un her bahsedildiğinde .NET Framework de mümkündür. İkinci tablo karışıklığı önlemek için atlanır.

Senaryo Windows Linux Mac iOS Android
Tek sayfalı uygulama
Tek Sayfalı Uygulama Kimlik Doğrulaması
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js MSAL.js MSAL.js
MSAL.js
Tek sayfalı uygulama
Tek Sayfalı Uygulama Örtük
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js MSAL.js MSAL.js
MSAL.js
Kullanıcılar için oturum açan web uygulaması
Kullanıcıların oturum açmasını sağlayan web uygulaması
ASP.NET Core
ASP.NET Core MSAL Düğümü
MSAL Düğümü
ASP.NET Core
ASP.NET Core MSAL Düğümü
MSAL Düğümü
ASP.NET Core
ASP.NET Core MSAL Düğümü
MSAL Düğümü
Web API’lerini çağıran web uygulaması

Web API’lerini çağıran web uygulaması
ASP.NET Core
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
Flask + MSAL Python MSAL Düğümü
MSAL Düğümü
ASP.NET Core
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
Flask + MSAL Python MSAL Düğümü
MSAL Düğümü
ASP.NET Core
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
Flask + MSAL Python MSAL Düğümü
MSAL Düğümü
Web API'lerini çağıran masaüstü uygulaması

Web API'lerini çağıran masaüstü uygulamasıCihaz kodu akışı
.NET CoreMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Düğümü
MSAL Düğümü
.NET CoreMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Düğümü
MSAL Düğümü
.NET CoreMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python
MSAL Düğümü
MSAL Düğümü
iOS / Objective C veya swift MSAL.objc
Web API'lerini çağıran mobil uygulama
Web API'lerini çağıran mobil uygulama
UWP MSAL.NET Xamarin MSAL.NET iOS / Objective C veya swift MSAL.objc Android MSAL. Android
Daemon uygulaması
Daemon uygulaması
.NET CoreMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Düğümü
MSAL Düğümü
.NET Core MSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Düğümü
MSAL Düğümü
.NET CoreMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Düğümü
MSAL Düğümü
Web API'lerini çağıran web API'si

Web API'lerini çağıran web API'si
ASP.NET Core
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Düğümü
MSAL Düğümü
.NET Core
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Düğümü
MSAL Düğümü
.NET Core
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Düğümü
MSAL Düğümü

Daha fazla bilgi için bkz. kimlik doğrulama kitaplıklarını Microsoft kimlik platformu.

Sonraki adımlar

Kimlik doğrulaması hakkında daha fazla bilgi için bkz: