Uygulama türlerini ve kimlik doğrulama akışlarını Microsoft kimlik platformu

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

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

Uygulama kategorileri

Güvenlik belirteçleri aşağıdakiler dahil olmak üzere çeşitli uygulama türlerinden edinilebilir:

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

Belirteçler, tarayıcısı 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

Çoğu kimlik doğrulama senaryosu, oturum açmış kullanıcılar adına belirteçler alır.

Kullanıcılarla ilgili 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 edinilebilir. Bu uygulamalar genellikle aşağıdaki üç kategoriye ayrılmıştır. Her biri farklı kitaplıklar ve nesnelerle kullanılır.

  • Tek sayfalı uygulamalar: SPA'lar olarak da bilinen bunlar, 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 türleri

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ılarda oturum 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çler 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ı

Bir kullanıcıda oturum açarken web uygulamasını korumaya yardımcı olmak için:

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 bir 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 belirteçleri sessizce 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 Microsoft Entra Id'ye 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 yine de kullanıcı adına bir API çağırabilir. 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. Bu akış, DevOps gibi bazı senaryolarda hala gereklidir.

Kullanıcı adı/parola akışının kullanılması uygulamalarınızı kısıtlar. Örneğin, uygulamalar çok faktörlü kimlik doğrulaması kullanması gereken bir kullanıcıda veya Microsoft Entra Id'de Koşullu Erişim aracında oturum açamaz. Uygulamalarınız da çoklu oturum açmadan 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.

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 üzere belirteç almak için MSAL'nin etkileşimli belirteç alma yöntemlerini çağırır.

Web API'sini çağıran 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ı senaryolar cihaza bir aracı yüklenmesini gerektirir. Aracılara örnek olarak Android'de Microsoft Şirket Portalı ve Android ve iOS'ta Microsoft Authenticator verilebilir. MSAL artık aracılarla etkileşimde bulunabilir. 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ı metin 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 Microsoft Entra ID ile 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şlemlere sahip 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, istemci gizli dizisi veya sertifika kullanarak kimliğini 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, Microsoft Entra Id'de uygulama kaydına eklediğiniz bir istemci gizli dizisini 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 almayı içeren senaryolar da OAuth 2.0 kimlik doğrulama akışlarıyla eşleniyor. Daha fazla bilgi için bkz. Microsoft kimlik platformu OAuth 2.0 ve OpenID Bağlan 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ülü İş 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 Azure AD B2C 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 Microsoft Entra kuruluşlarında 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
  • .NET Framework
  • Java
  • JavaScript
  • macOS
  • 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'den 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ılarda oturum açma 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ışı
.NETMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Düğümü
MSAL Düğümü
.NETMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Düğümü
MSAL Düğümü
.NETMSAL.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ı
.NETMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Düğümü
MSAL Düğümü
.NET MSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Düğümü
MSAL Düğümü
.NETMSAL.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
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Düğümü
MSAL Düğümü
.NET
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

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