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

Microsoft kimlik platformu, farklı türlerde modern uygulama mimarilerinin kimlik doğrulamasını destekler. mimarilerin hepsi, OAuth 2,0 ve openıd Bağlansektör standardı protokollerine dayanır. uygulamalar, Microsoft kimlik platformu kimlik doğrulaması kitaplıklarınıkullanarak kimlik doğrular ve korunan apı 'lere erişmek için belirteçleri elde edin.

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

Uygulama kategorileri

Belirteçleri aşağıdakiler dahil olmak üzere çeşitli türde uygulamalardan elde edilebilir:

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

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

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

Korumalı kaynaklara ve istemci uygulamalarına karşı

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

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

Çoğu kimlik doğrulama senaryosunda, oturum açmış kullanıcılar adına belirteç elde edin.

Kullanıcıları olan senaryolar

Ancak, Daemon uygulamaları da vardır. Bu senaryolarda, uygulamalar kendi adına belirteçleri Kullanıcı olmadan alır.

Daemon uygulamalarıyla senaryolar

Tek sayfalı, ortak istemci ve gizli istemci uygulamaları

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

  • Tek sayfalı uygulamalar: Ayrıca, maça 'lar olarak da bilinen, bunlar, belirteçlerin tarayıcıda çalışan bir JavaScript veya TypeScript uygulaması tarafından alındığı Web uygulamalardır. Birçok modern uygulama ön uçta birincil olarak JavaScript 'te yazılmış tek sayfalı bir uygulamadır. uygulama genellikle Angular, React veya vue gibi bir çerçeve kullanır. Tek sayfalı uygulamaları destekleyen tek Microsoft kimlik doğrulama kitaplığı MSAL.js.

  • Ortak istemci uygulamaları: Bu kategorideki uygulamalar, aşağıdaki türler gibi, her zaman oturum açabilirler:

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

    • Web API 'sini çağıran Web uygulamaları
    • Web API 'sini ç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 izleyicisine 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ş veya okul hesapları hem de 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 mimarilerinde 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ı oturum açmak ve korunan API 'Leri çağırmak için belirteçleri almak üzere farklı kimlik doğrulama akışlarını kullanır.

Tek sayfalı uygulama

Birçok modern web uygulaması, istemci tarafı tek sayfalı uygulamalar olarak oluşturulmuştur. bu uygulamalar JavaScript veya Angular, vue ve React gibi bir çatı kullanır. Bu uygulamalar bir Web tarayıcısında çalışır.

Tek sayfalı uygulamalar, kimlik doğrulama özellikleri bakımından geleneksel sunucu tarafı Web uygulamalarından farklıdır. Microsoft kimlik platformu kullanarak, tek sayfalı uygulamalar kullanıcıların oturumunu açabilir ve arka uç hizmetlerine veya web apı 'lerine erişim belirteçleri 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ı bir uygulama örtük

Kullanıcı oturumu açan Web uygulaması

Kullanıcı oturumu açan bir Web uygulaması

Bir kullanıcının oturum açtığı bir Web uygulamasını korumaya yardımcı olmak için:

  • .net ortamında geliştirirseniz, ASP.NET openıd Bağlan ara yazılımı ile ASP.NET veya ASP.NET Core kullanırsınız. Bir kaynağın korunması, .net Için IdentityModel uzantıları tarafından GERÇEKLEŞTIRILEN ve msal kitaplıklarını değil, güvenlik belirtecini doğrulamayı içerir.

  • Node.js geliştirirseniz, msal node veya Passport.jskullanırsınız.

Daha fazla bilgi için, bkz. Kullanıcılar oturum açan Web uygulaması.

Bir Kullanıcı oturumu açan ve Kullanıcı adına bir Web API 'SI çağıran Web uygulaması

Web API 'Lerini çağıran bir Web uygulaması

Bir Web uygulamasından Kullanıcı adına bir Web API 'SI ç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 önbellekteki belirteçleri sessizce alır.

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

Bir Web API 'sini oturum açmış bir kullanıcı adına çağıran masaüstü uygulaması

Bir masaüstü uygulamasının kullanıcılar tarafından oturum açan bir Web API 'sini çağırması için, MSAL 'in etkileşimli belirteç alma yöntemlerini kullanın. Bu etkileşimli yöntemlerle oturum açma kullanıcı arabirimi deneyimini kontrol edebilirsiniz. MSAL bu etkileşim için bir Web tarayıcısı kullanır.

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

Windows bir etki alanına veya Azure Active Directory (Azure AD) bağlı bilgisayarlarda Windows 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 bir belirteç elde edebilir.

Tarayıcı olmadan bir cihazda çalışan uygulamalar, bir kullanıcı adına API 'yi hala çağırabilir. Kimlik doğrulamak için, kullanıcının Web tarayıcısına sahip başka bir cihazda oturum açması gerekir. Bu senaryo, cihaz kodu akışınıkullanmanızı gerektirir.

Cihaz kod akışı

Kullanmanız önerilmez, ancak Kullanıcı adı/parola akışı ortak istemci uygulamalarında kullanılabilir. Bu akış, DevOps gibi bazı senaryolarda hala gereklidir.

Kullanıcı adı/parola akışını kullanmak uygulamalarınızı kısıtlar. Örneğin, uygulamalar, Azure AD 'de çok faktörlü kimlik doğrulaması veya koşullu erişim aracı kullanması gereken bir kullanıcıya oturum açamaz. Uygulamalarınız aynı zamanda çoklu oturum açma özelliğinden de yararlanır. Kullanıcı adı/parola akışı ile kimlik doğrulaması, modern kimlik doğrulamasının ilkelerine karşı gider 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ç önbelleği serileştirmesiniuygulayarak, geriye dönük uyumlu ve ileri uyumlu belirteç önbellekleri kullanabilirsiniz. Bu belirteçler, önceki nesil kimlik doğrulama kitaplıklarını destekler. Belirli kitaplıklar .NET için Azure AD kimlik doğrulama kitaplığı 'nı (ADAL.NET) sürüm 3 ve sürüm 4 içerir.

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

Etkileşimli kullanıcı adına Web API 'SI çağıran mobil uygulama

Bir masaüstü uygulamasına benzer şekilde, bir mobil uygulama, bir Web API 'SI çağırmaya yönelik bir belirteç almak için MSAL 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, bunun yerine katıştırılmış Web görünümünü kullanmak için bunları yönlendirebilirsiniz. Evrensel Windows Platformu (UWP), iOS veya Android mobil platformuna bağlı olan değerler vardır.

Bir cihaz KIMLIĞI veya cihaz kaydıyla ilgili koşullu erişim içeren bazı senaryolar, cihaza bir aracı yüklenmesini gerektirir. aracıların örnekleri, android ve iOS üzerinde Microsoft Şirket Portalı Microsoft Authenticator. MSAL artık aracılar ile etkileşime geçebilir. Aracılar hakkında daha fazla bilgi için bkz. Android ve iOS 'ta aracılarıkullanma.

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

Not

MSAL. iOS, MSAL kullanan bir mobil uygulama. Xamarin üzerinde Android veya MSAL.NET, uygulama koruma ilkelerinin uygulanmasını sağlayabilir. Örneğin, ilkeler bir kullanıcının korumalı metni kopyalamasını engelleyebilir. Mobil uygulama Intune tarafından yönetilir ve Intune tarafından yönetilen bir uygulama olarak tanınır. daha fazla bilgi için bkz. Microsoft Intune uygulama SDK 'sına genel bakış.

Intune uygulama SDK 'Sı msal kitaplıklarından ayrıdır ve kendi kendıne Azure AD ile etkileşime girer.

Korumalı web API’si

Microsoft kimlik platformu uç noktasını, uygulamanızın yeniden kullanım apı 'si gibi web hizmetlerini güvenli hale getirmek için 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. Bir Web API 'SI çağıran, bir HTTP isteğinin yetkilendirme üstbilgisine bir erişim belirteci ekler.

ASP.NET veya ASP.NET Core web apı '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 yapılır.

Daha fazla bilgi için bkz. korumalı Web API 'si.

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

Korunan Web API 'nizin bir kullanıcı adına başka bir Web API 'SI çağırması için, uygulamanızın aşağı akış Web API 'SI için bir belirteç edinmesi gerekir. Bu tür çağrılar bazen hizmetten hizmete çağrılar olarak adlandırılır. Diğer Web API 'Lerini çağıran Web API 'Lerinin özel önbellek serileştirme sağlaması gerekir.

Başka bir Web API 'SI çağıran Web API 'SI

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

Daemon 'ın adında bir Web API 'SI çağıran Daemon uygulaması

Uzun süre çalışan işlemlere sahip olan veya Kullanıcı etkileşimi olmadan çalışan uygulamalarda güvenli Web API 'Lerine erişmek için bir yol gerekir. Bu tür bir uygulama uygulamanın kimliğini kullanarak kimlik doğrulaması yapabilir ve belirteçleri alabilir. Uygulama, bir istemci gizli dizisi veya sertifikası kullanarak kimliğini kanıtlar.

MSAL ' deki istemci kimlik bilgileri alma yöntemlerini kullanarak, çağıran uygulama için bir belirteç alan Daemon uygulamalarını yazabilirsiniz. Bu yöntemler, Azure AD 'de uygulama kaydına eklediğiniz bir istemci gizli anahtarı gerektirir. Ardından uygulama, parolayı çağrılan daemon ile paylaşır. Bu gizli dizi örnekleri uygulama parolaları, sertifika onaylama ve istemci onaylama işlemlerini içerir.

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ı ve kimlik doğrulama akışları arasında bire bir eşleme yoktur.

Belirteçleri alma ile ilgili senaryolar Ayrıca OAuth 2,0 kimlik doğrulama akışlarıyla eşlenir. daha fazla bilgi için Microsoft kimlik platformu bkz. OAuth 2,0 ve openıd Bağlan protokolleri.

Senaryo Ayrıntılı senaryo izlenecek yol OAuth 2,0 Flow ve verme Hedef kitle
Single-Page App with Auth code Tek sayfalı uygulama PKCE ile yetkilendirme kodu iş veya okul hesapları, kişisel hesaplar ve Azure Active Directory B2C (Azure AD B2C)
Single-Page App with Implicit Tek sayfalı uygulama Örtük iş veya okul hesapları, kişisel hesaplar ve Azure Active Directory B2C (Azure AD B2C)
Web app that signs in users Kullanıcılar için oturum açan web uygulaması Yetkilendirme kodu İş veya okul hesapları, kişisel hesaplar ve Azure AD B2C
Web app that calls web APIs Web API’lerini çağıran web uygulaması Yetkilendirme kodu İş veya okul hesapları, kişisel hesaplar ve Azure AD B2C
Desktop app that calls web APIs Web API'lerini çağıran masaüstü uygulaması PKI 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
Browserless application Cihaz kodu İş veya okul hesapları, kişisel hesaplar, Azure AD B2C değil
Mobile app that calls web APIs Web API'lerini çağıran mobil uygulama PKI 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
Daemon app that calls web APIs Web API 'Lerini çağıran Daemon uygulaması İstemci kimlik bilgileri Yalnızca uygulama olmayan ve yalnızca Azure AD kuruluşlarında kullanılan uygulama izinleri
Web API that calls web APIs 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ı Çoklu platformları 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 diller de kullanabilirsiniz.

Not

Bazı uygulama türleri her platformda kullanılamaz.

aşağıdaki tablonun Windows sütununda, .net Core her bahsedildiğinde .NET Framework de mümkündür. İkinci değer, tablonun karışıklık oluşmasını ö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ı oturum açan 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 kod 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/amaç 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/amaç 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. Microsoft kimlik platformu kimlik doğrulama kitaplıkları.

Sonraki adımlar