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:
- Korumalı bir web API'sinin güvenlik belirteçlerini alma: Microsoft tarafından geliştirilen ve desteklenen Microsoft Kimlik Doğrulama Kitaplığı'nı (MSAL) kullanmanızı öneririz.
- Web API'sini veya web uygulamasını koruma: Bu kaynakları korumanın bir zorluğu güvenlik belirtecini doğrulamaktır. Bazı platformlarda Microsoft ara yazılım kitaplıkları sunar.
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.
Ancak, daemon uygulamaları da vardır. Bu senaryolarda uygulamalar, kullanıcı olmadan kendileri adına belirteçler alır.
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) |
---|---|
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ı
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.
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.
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.
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.
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.
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 |
---|---|---|---|
Tek sayfalı uygulama | PKCE ile yetkilendirme kodu | İş veya okul hesapları, kişisel hesaplar ve Azure Active Directory B2C (Azure AD B2C) | |
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ı | Yetkilendirme kodu | İş veya okul hesapları, kişisel hesaplar ve Azure AD B2C | |
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ı | 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 | ||
Cihaz kodu | İş veya okul hesapları, kişisel hesaplar, ancak B2C Azure AD değil | ||
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ı | İ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 | 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 |
![]() MSAL.js |
![]() MSAL.js |
![]() MSAL.js |
![]() |
![]() MSAL.js |
Tek sayfalı uygulama |
![]() MSAL.js |
![]() MSAL.js |
![]() MSAL.js |
![]() |
![]() MSAL.js |
Kullanıcılar için oturum açan web uygulaması |
![]() ![]() MSAL Düğümü |
![]() ![]() MSAL Düğümü |
![]() ![]() MSAL Düğümü |
||
Web API’lerini çağıran web uygulaması |
![]() ASP.NET Core + MSAL.NET ![]() MSAL Java ![]() Flask + MSAL Python ![]() MSAL Düğümü |
![]() ASP.NET Core + MSAL.NET ![]() MSAL Java ![]() Flask + MSAL Python ![]() MSAL Düğümü |
![]() ASP.NET Core + MSAL.NET ![]() MSAL Java ![]() Flask + MSAL Python ![]() MSAL Düğümü |
||
Web API'lerini çağıran masaüstü uygulaması |
![]() ![]() MSAL Java ![]() MSAL Python ![]() MSAL Düğümü |
![]() ![]() MSAL Java ![]() MSAL Python ![]() MSAL Düğümü |
![]() ![]() MSAL Java ![]() MSAL Python ![]() MSAL Düğümü ![]() |
||
Web API'lerini çağıran mobil uygulama |
![]() ![]() |
![]() |
![]() |
||
Daemon uygulaması |
![]() ![]() MSAL Java ![]() MSAL Python ![]() MSAL Düğümü |
![]() ![]() MSAL Java ![]() MSAL Python ![]() MSAL Düğümü |
![]() ![]() MSAL Java ![]() MSAL Python ![]() MSAL Düğümü |
||
Web API'lerini çağıran web API'si |
![]() ASP.NET Core + MSAL.NET ![]() MSAL Java ![]() MSAL Python ![]() MSAL Düğümü |
![]() ASP.NET Core + MSAL.NET ![]() MSAL Java ![]() MSAL Python ![]() MSAL Düğümü |
![]() ASP.NET Core + MSAL.NET ![]() MSAL Java ![]() MSAL Python ![]() 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: