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.
Microsoft Authentication Library (MSAL), farklı uygulama türleri ve senaryolar tarafından kullanılmak üzere çeşitli yetkilendirme izinlerini ve ilişkili belirteç akışlarını destekler.
| Kimlik doğrulama akışı | Enables | Desteklenen uygulama türleri |
|---|---|---|
| Yetkilendirme kodu | Kullanıcının oturum açması ve kullanıcı adına web API'lerine erişmesi. |
*
Masaüstü * Mobil * Tek sayfalı uygulama (SPA) ( PKCE gerektirir) * Web |
| İstemci kimlik bilgileri | Uygulamanın kimliğini kullanarak web API'lerine erişim. Genellikle sunucudan sunucuya iletişim ve kullanıcı etkileşimi gerektirmeden otomatik betikler için kullanılır. | Daemon |
| Cihaz kodu | Akıllı TV'ler ve Nesnelerin İnterneti (IoT) cihazları gibi giriş kısıtlanmış cihazlarda kullanıcı adına kullanıcı oturum açma ve web API'lerine erişim. Komut satırı arabirimi (CLI) uygulamaları tarafından da kullanılır. | Masaüstü, Mobil |
| Örtük hibe | Kullanıcı adına oturum açma ve web API'lerine erişim. Örtük verme akışı artık önerilmez. Bunun yerine Kod Değişimi için Proof Key (PKCE) ile yetkilendirme kodu kullanın. |
*
Tek sayfalı uygulama (SPA) * Web |
| Adına (OBO) | Kullanıcı adına "yukarı akış" web API'sinden "aşağı akış" web API'sine erişim. Kullanıcının kimliği ve temsilci izinleri yukarı akış API'sinden aşağı akış API'sine geçirilir. | Web API'si |
| Kullanıcı adı/parola (ROPC) | Bir uygulamanın kullanıcı parolasını doğrudan işleyerek kullanıcının oturum açmasına izin verir. ROPC akışı önerilmez. | Masaüstü, Mobil |
| Tümleşik Windows kimlik doğrulaması (IWA) | Alan adına veya Microsoft Entra ID'ye bağlı bilgisayarlardaki uygulamaların, kullanıcıdan herhangi bir ara yüz etkileşimi olmadan sessizce belirteç almasına izin verir. | Masaüstü, Mobil |
Tokens
Uygulamanız bir veya daha fazla kimlik doğrulama akışı kullanabilir. Her akış kimlik doğrulaması, yetkilendirme ve belirteç yenileme için belirli belirteç türlerini ve bazıları da yetkilendirme kodunu kullanır.
| Kimlik doğrulama akışı veya eylemi | Requires | Kimlik belirteci | Erişim belirteci | Belirteci yenileyin | Yetki kodu |
|---|---|---|---|---|---|
| Yetkilendirme kodu akışı | ✅ | ✅ | ✅ | ✅ | |
| İstemci kimlik bilgileri | ✅ (yalnızca uygulama) | ||||
| Cihaz kodu akışı | ✅ | ✅ | ✅ | ||
| Örtük akış | ✅ | ✅ | |||
| Adına iş akışı | Erişim belirteci | ✅ | ✅ | ✅ | |
| Kullanıcı adı/parola (ROPC) | Kullanıcı adı, parola | ✅ | ✅ | ✅ | |
| Hibrit OIDC akışı | ✅ | ✅ | |||
| Yenileme belirteci kurtarma | Belirteci yenileyin | ✅ | ✅ | ✅ |
Etkileşimli ve etkileşimli olmayan kimlik doğrulaması
Bu akışlardan birkaçı hem etkileşimli hem de etkileşimli olmayan belirteç alımını destekler.
- Etkileşimli - Kullanıcıdan yetkilendirme sunucusu tarafından giriş istenebilir. Örneğin, oturum açmak, çok faktörlü kimlik doğrulaması (MFA) gerçekleştirmek veya daha fazla kaynak erişimi izni vermek için.
- Etkileşimli değil - Kullanıcıdan giriş istenmeyebilir . Sessiz belirteç alma olarak da adlandırılan uygulama, yetkilendirme sunucusunun kullanıcıdan giriş istemeyebileceği bir yöntem kullanarak belirteç almaya çalışır.
MSAL tabanlı uygulamanız önce sessizce bir belirteç almayı denemeli ve yalnızca etkileşimli olmayan girişim başarısız olursa etkileşimli yönteme geri dönmelidir. Bu düzen hakkında daha fazla bilgi için Microsoft Authentication Library (MSAL) kullanarak belirteçleri alma ve önbelleğe alma konusuna bakın.
Yetki kodu
OAuth 2.0 yetkilendirme kodu verme, web API'leri gibi korumalı kaynaklara erişim kazanmak için web uygulamaları, tek sayfalı uygulamalar (SPA) ve yerel (mobil ve masaüstü) uygulamalar tarafından kullanılabilir.
Kullanıcılar web uygulamalarında oturum açarken, uygulama web API'lerini çağırmak için erişim belirteci için kullanabileceği bir yetkilendirme kodu alır.
Yukarıdaki diyagramda uygulama:
- Erişim belirteci karşılığında kullanılacak bir yetkilendirme kodu istemektedir.
- Erişim belirtecini kullanarak Microsoft Graph gibi bir web API'sini çağırır.
Yetkilendirme kodu kısıtlamaları
Tek sayfalı uygulamalar, yetkilendirme kodu verme akışını kullanırken Kanıt Anahtarı ile Kod Değişimi (PKCE) gerektirir. PKCE, MSAL tarafından desteklenir.
OAuth 2.0 belirtimi, erişim belirtecini yalnızca bir kez kullanmak için yetkilendirme kodu kullanmanızı gerektirir.
Aynı yetkilendirme koduyla birden çok kez erişim belirteci almayı denerseniz, Microsoft kimlik platformu tarafından aşağıdakine benzer bir hata döndürülür. Bazı kitaplıkların ve çerçevelerin sizin için otomatik olarak yetkilendirme kodu istemesi ve bu gibi durumlarda el ile kod istemenin de bu hataya neden olacağını unutmayın.
AADSTS70002: Error validating credentials. AADSTS54005: OAuth2 Authorization code was already redeemed, please retry with a new valid code or use an existing refresh token.
İstemci kimlik bilgileri
OAuth 2 istemci kimlik bilgileri akışı, web'de barındırılan kaynaklara bir uygulamanın kimliğini kullanarak erişmenizi sağlar. Bu tür bir izin, bir kullanıcıyla hemen etkileşim olmadan arka planda çalışması gereken sunucudan sunucuya (S2S) etkileşimler için yaygın olarak kullanılır. Bu tür uygulamalar genellikle daemon'lar veya hizmetler olarak adlandırılır.
İstemci kimlik bilgileri verme akışı, bir web hizmetinin (gizli istemci) bir kullanıcının kimliğine bürünmek yerine kendi kimlik bilgilerini kullanmasına izin verir ve başka bir web hizmetini çağırırken kimlik doğrulaması yapar. Bu senaryoda istemci genellikle bir orta katman web hizmeti, bir daemon hizmeti veya bir web sitesidir. Daha yüksek bir güvence düzeyi için Microsoft kimlik platformu, çağrı hizmetinin kimlik bilgisi olarak bir sertifika (paylaşılan gizli dizi yerine) kullanmasına da izin verir.
Uygulama sırları
Yukarıdaki diyagramda uygulama:
- Uygulama gizli anahtarı veya parola kimlik bilgileri kullanarak belirteç alır.
- Kaynak isteklerinde bulunmak için belirteci kullanır.
Certificates
Yukarıdaki diyagramda uygulama:
- Sertifika kimlik bilgilerini kullanarak bir belirteç alır.
- Kaynak isteklerinde bulunmak için belirteci kullanır.
Bu tür istemci kimlik bilgilerinin şu şekilde olması gerekir:
- Azure AD'ye kaydedildi.
- Gizli istemci uygulama nesnesi oluşturulurken kodda geçen parametre.
İstemci kimlik bilgileri için kısıtlamalar
Gizli istemci akışı Android, iOS veya Evrensel Windows Platformu (UWP) gibi mobil platformlarda desteklenmez . Mobil uygulamalar, kimlik doğrulaması gizli dizilerinin gizliliğini garanti edemeyen genel istemci uygulamaları olarak kabul edilir.
Cihaz kodu
OAuth 2 cihaz kodu akışı, kullanıcıların akıllı TV'ler, Nesnelerin İnterneti (IoT) cihazları ve yazıcılar gibi giriş kısıtlanmış cihazlarda oturum açmasına olanak tanır. Microsoft Entra ID ile etkileşimli kimlik doğrulaması için bir web tarayıcısı gerekir. Cihaz veya işletim sisteminin web tarayıcısı sağlamadığı durumlarda, cihaz kodu akışı bilgisayar veya cep telefonu gibi başka bir cihazın etkileşimli olarak oturum açmasını sağlar.
Uygulama, cihaz kodu akışını kullanarak belirteçleri bu cihazlar ve işletim sistemleri için tasarlanmış iki adımlı bir işlemle alır.
Yukarıdaki diyagramda:
- Kullanıcı kimlik doğrulaması gerektiğinde, uygulama bir kod sağlar ve kullanıcıdan URL'yi (örneğin,
https://microsoft.com/devicelogin) ziyaret etmek için İnternet'e bağlı bir akıllı telefon gibi başka bir cihaz kullanmasını ister. Daha sonra kullanıcıdan kodu girmesi istenir ve gerekirse onay istemleri ve çok faktörlü kimlik doğrulaması dahil olmak üzere normal bir kimlik doğrulama deneyiminde devam eder. - Kimlik doğrulaması başarılı olduğunda, istekte bulunan uygulama Gerekli belirteçleri Microsoft kimlik platformundan alır ve ihtiyaç duyduğu web API çağrılarını gerçekleştirmek için kullanır.
Cihaz kodu kısıtlamaları
- Cihaz kodu akışı yalnızca genel istemci uygulamaları için kullanılabilir.
- MSAL'de bir genel istemci uygulaması başlatırken şu yetkili biçimlerinden birini kullanın:
- Kiracı tabanlı:
https://login.microsoftonline.com/{tenant}/,burada{tenant}, kiracı kimliğini temsil eden bir GUID veya kiracıyla ilişkilendirilmiş bir etki alanı adıdır. - İş ve okul hesapları:
https://login.microsoftonline.com/organizations/.
- Kiracı tabanlı:
Örtük onay
Gizli yetkilendirme, istemci tarafı tek sayfalı uygulamalar (SPA'lar) için tercih edilen ve daha güvenli jeton verme akışı olarak PKCE ile yetkilendirme kodu akışı ile değiştirilmiştir. SPA oluşturuyorsanız bunun yerine PKCE ile yetkilendirme kodu akışını kullanın.
JavaScript ile yazılmış tek sayfalı web uygulamaları (Angular, Vue.js veya React.js gibi çerçeveler dahil) sunucudan indirilir ve kodları doğrudan tarayıcıda çalışır. İstemci tarafı kodları bir web sunucusunda değil tarayıcıda çalıştığından, geleneksel sunucu tarafı web uygulamalarından farklı güvenlik özelliklerine sahiptir. PKCE (Kod Değişimi için Doğrulama Anahtarı) yetkilendirme kodu akışı için mevcut olmadan önce, Tek Sayfalı Uygulamalar (SPA'lar) erişim belirteçlerini daha hızlı ve etkin bir şekilde almak için örtük yetkilendirme akışını kullanıyordu.
OAuth 2 örtük yetki akışı, uygulamanın bir arkauç sunucusu kimlik bilgisi değişimi gerçekleştirmeden Microsoft kimlik platformundan erişim belirteçleri almasını sağlar. Örtük izin akışı, bir uygulamanın kullanıcının oturum açmasını sağlamasına, oturum süresini devam ettirmesine ve kullanıcı aracısı (genellikle bir web tarayıcısı) tarafından indirilen ve çalıştırılan JavaScript kodu üzerinden diğer web API'leri için belirteçler almasına olanak tanır.
Örtük izin kısıtlamaları
Gizli izin akışı, Electron veya React Native gibi çapraz platform JavaScript çerçeveleri kullanan uygulama senaryolarını içermez. Bunlar gibi platformlar arası çerçeveler, üzerinde çalıştıkları yerel masaüstü ve mobil platformlarla etkileşim için ek özellikler gerektirir.
Örtük akış modu aracılığıyla verilen belirteçlerin uzunluk sınırlaması vardır çünkü URL'de tarayıcıya döndürülürler (burada response_mode veya query).fragment Bazı tarayıcılar, tarayıcı çubuğundaki URL'nin uzunluğunu sınırlar ve çok uzun olduğunda başarısız olur. Bu nedenle, bu örtük akış belirteçleri groups veya wids talepleri içermez.
Başkasının Adına (OBO)
OAuth 2 adına kimlik doğrulama akışı, bir uygulama bir hizmeti veya web API'sini çağırdığında, ardından tamamen aynı kullanıcı kimliği ve yayılması gereken izinler ile başka bir hizmet veya web API'si çağrılması gerektiğinde kullanılır. Orta katman hizmetinin aşağı akış hizmetine kimliği doğrulanmış istekler yapabilmesi için, kullanıcı adına Microsoft kimlik platformundan bir erişim belirtecini güvence altına alması gerekir.
Yukarıdaki diyagramda:
- Uygulama, web API'si için bir erişim belirteci alır.
- İstemci (web, masaüstü, mobil veya tek sayfalı uygulama) korumalı bir web API'sini çağırır ve erişim belirtecini HTTP isteğinin kimlik doğrulama üst bilgisine taşıyıcı belirteç olarak ekler. Web API'sinde kullanıcının kimliği doğrulanır.
- İstemci web API'sini çağırdığında, web API'si kullanıcı adına başka bir belirteç istemektedir.
- Korumalı web API'si, kullanıcı adına aşağı akış web API'sini çağırmak için bu belirteci kullanır. Web API'si daha sonra diğer aşağı akış API'leri için belirteç isteyebilir (ancak yine de aynı kullanıcı adına).
Kullanıcı adı/parola (ROPC)
Warning
Kaynak sahibi parola kimlik bilgileri (ROPC) akışı artık önerilmez. ROPC, yüksek düzeyde güven ve kimlik bilgisi ifşası gerektirir. ROPC'yi yalnızca daha güvenli bir akışın kullanılamadığı durumlarda kullanın. Daha fazla bilgi için bkz . Artan parola sorununun çözümü nedir?.
OAuth 2 kaynak sahibi parola kimlik bilgileri (ROPC) izni, bir uygulamanın parolasını doğrudan işleyerek kullanıcının oturum açmasını sağlar. Masaüstü uygulamanızda, kullanıcı adı/parola akışını kullanarak bir tokeni sessizce edinebilirsiniz. Uygulamayı kullanırken kullanıcı arabirimi gerekmez.
DevOps gibi bazı uygulama senaryoları ROPC'yi yararlı bulabilir, ancak kullanıcı oturum açma için etkileşimli bir kullanıcı arabirimi sağladığınız herhangi bir uygulamada bundan kaçınmalısınız.
Yukarıdaki diyagramda uygulama:
- Kimlik sağlayıcısına kullanıcı adını ve parolayı göndererek bir belirteç alır.
- Belirteci kullanarak bir web API'sini çağırır.
Windows etki alanına katılmış makinelerde sessizce belirteç almak için ROPC yerine Web Hesabı Yöneticisi'ni (WAM) kullanmanızı öneririz. Diğer senaryolar için cihaz kodu akışını kullanın.
ROPC kısıtlamaları
ROPC akışını kullanan uygulamalar için aşağıdaki kısıtlamalar geçerlidir:
- Çoklu oturum açma desteklenmiyor.
- Çok faktörlü kimlik doğrulaması (MFA) desteklenmiyor.
- Bu akışı kullanmadan önce kiracı yöneticinize danışın- MFA yaygın olarak kullanılan bir özelliktir.
- Koşullu Erişim desteklenmiyor.
- ROPC yalnızca iş ve okul hesapları için çalışır.
- Kişisel Microsoft hesapları (MSA) ROPC tarafından desteklenmez .
- ROPC, .NET masaüstü ve .NET uygulamalarında desteklenir .
- ROPC, Evrensel Windows Platformu (UWP) uygulamalarında desteklenmez.
- Microsoft Entra Dış Kimliği'ndeki ROPC yalnızca yerel hesaplar için desteklenir.
- MSAL.NET ve Microsoft Entra Dış Kimliği'ndeki ROPC hakkında bilgi için bkz. B2C ile Kaynak Sahibi Parola Kimlik Bilgileri (ROPC).
Tümleşik Windows kimlik doğrulaması (IWA)
Note
Tümleşik Windows Kimlik Doğrulaması, belirteçleri sessizce almanın daha güvenilir bir yolu olan WAM ile değiştirildi. WAM, geçerli Windows kullanıcısının sessiz bir şekilde oturum açmasına olanak tanır. Bu iş akışı karmaşık kurulum gerektirmez ve hatta kişisel (Microsoft) hesaplarında bile çalışır. Windows Aracısı (WAM), dahili olarak, IWA (Entegre Windows Kimlik Doğrulaması) ve PRT'yi (birincil yenileme belirteci) kullanmak da dahil olmak üzere, geçerli Windows kullanıcısı için bir belirteç almak amacıyla çeşitli stratejiler deneyecektir. Bu, IWA ile ilgili sınırlamaların çoğunu ortadan kaldırır.
MSAL, etki alanına katılmış veya Microsoft Entra ID'ye katılmış Windows bilgisayarlarda çalışan masaüstü ve mobil uygulamalar için tümleşik Windows kimlik doğrulamasını (IWA) destekler. IWA kullanarak, bu uygulamalar kullanıcı arabirimi etkileşimi gerektirmeden sessizce bir belirteç alır.
Yukarıdaki diyagramda uygulama:
- Tümleşik Windows Kimlik Doğrulaması kullanarak belirteç alır.
- Kaynak isteklerinde bulunmak için belirteci kullanır.
IWA kısıtlamaları
- Uyumluluk. Tümleşik Windows kimlik doğrulaması (IWA), .NET masaüstü, .NET ve Evrensel Windows Platformu (UWP) uygulamaları için etkinleştirilir. IWA yalnızca ADFS federasyon kullanıcılarını destekler. Active Directory'de oluşturulan ve Microsoft Entra Id ile desteklenen kullanıcılar. Active Directory desteği olmadan doğrudan Microsoft Entra ID'de oluşturulan kullanıcılar (yönetilen kullanıcılar) bu kimlik doğrulama akışını kullanamaz.
- Çok faktörlü kimlik doğrulaması (MFA). Microsoft Entra ID kiracısında MFA etkinleştirilirse ve Microsoft Entra ID tarafından bir MFA sınaması verilirse IWA etkileşimli olmayan (sessiz) kimlik doğrulaması başarısız olabilir. IWA başarısız olursa, daha önce açıklandığı gibi etkileşimli bir kimlik doğrulama yöntemine geri dönmeniz gerekir. Microsoft Entra ID, iki öğeli kimlik doğrulamasının ne zaman gerekli olduğunu belirlemek için yapay zeka kullanır. İki öğeli kimlik doğrulaması genellikle bir kullanıcı farklı bir ülkeden/bölgeden oturum açtığında, VPN kullanmadan bir şirket ağına bağlandığında ve bazen bir VPN aracılığıyla bağlandığında gereklidir . MFA'nın yapılandırması ve sınama sıklığı geliştirici olarak denetiminizin dışında olabileceğinden, uygulamanız IWA sessiz belirteç alma hatasını düzgün bir şekilde işlemelidir.
-
Yetkili URI kısıtlamaları. Genel istemci uygulaması oluştururken girdiğiniz yetkili aşağıdakilerden biri olmalıdır:
-
https://login.microsoftonline.com/{tenant}/- Bu yetki, oturum açan hedef kitlesi belirtilen Microsoft Entra ID kiracısındaki kullanıcılarla sınırlı olan tek kiracılı bir uygulamayı temsil eder. Değer,{tenant}GUID formatındaki kiracı kimliği veya kiracıyla ilişkilendirilmiş alan adı olabilir. -
https://login.microsoftonline.com/organizations/- Bu yetki, oturum açma kitlesi, herhangi bir Microsoft Entra ID kiracısında bulunan kullanıcılar olan çok kiracılı bir uygulamayı belirtir.
-
-
Kişisel hesaplar. Yetki değerleri içermemelidir
/commonveya/consumersçünkü kişisel Microsoft hesapları (MSA) IWA tarafından desteklenmemektedir. -
Onay gereksinimleri. IWA sessiz bir akış olduğundan, uygulamanızın kullanıcısının uygulamayı kullanmayı daha önce onaylamış olması veya kiracı yöneticisinin daha önce kiracıdaki tüm kullanıcılara uygulamayı kullanma izni vermiş olması gerekir. Her iki gereksinimi de karşılamak için bu işlemlerden birinin tamamlanmış olması gerekir:
- Uygulama geliştiricisi olarak Azure portal'da kendiniz Grant seçimini yaptınız.
- Kiracı yöneticisi, Azure portalındaki uygulama kaydının API izinleri sekmesinde {tenant domain} için yönetici onayı ver/iptal et'i seçti; bkz. Web API'nize erişmek için izin ekleme.
- Kullanıcıların uygulamaya onay vermeleri için bir yol sağladınız; Bkz. Microsoft kimlik platformunda izinlere ve onaylara genel bakış.
- Kiracı yöneticisinin uygulamaya onay vermesine yönelik bir yol sağladınız; Bkz. Microsoft kimlik platformunda izinlere ve onaylara genel bakış.
Sonraki Adımlar
MSAL tarafından desteklenen kimlik doğrulama akışlarını incelediğinize göre , bu akışlarda kullanılan belirteçleri alma ve önbelleğe alma hakkında bilgi edinin.