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, endüstri standardı OAuth 2.0 ve OpenID Connect protokollerini 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.
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 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) |
---|---|
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:
.NET'te geliştirirseniz, 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ı yerine .NET için IdentityModel uzantıları tarafından gerçekleştirilen güvenlik belirtecinin doğrulanmasıdır.
Node.js'da geliştirirseniz MSAL Node'u 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 bir 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 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.
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.
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.
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.
Daha fazla bilgi için bkz . Web API'lerini çağıran mobil uygulama.
Not
MSAL iOS veya MSAL Android kullanan bir mobil uygulamada 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.
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.
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 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ü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ı | 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 | ||
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 | 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 Microsoft Entra kuruluşlarında 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
- .NET Framework
- Java
- JavaScript
- macOS
- Yerel Android
- Yerel iOS
- Node.js
- Python
- Windows 10/UWP
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 |
MSAL.js |
MSAL.js |
MSAL.js |
MSAL.js | MSAL.js |
Tek sayfalı uygulama |
MSAL.js |
MSAL.js |
MSAL.js |
MSAL.js | MSAL.js |
Kullanıcılar için oturum açan web uygulaması |
ASP.NET Core MSAL Düğümü |
ASP.NET Core MSAL Düğümü |
ASP.NET Core 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.NET MSAL Java MSAL Python MSAL Düğümü |
MSAL.NET MSAL Java MSAL Python MSAL Düğümü |
MSAL.NET MSAL Java MSAL Python MSAL Düğümü MSAL.objc |
||
Web API'lerini çağıran mobil uygulama |
MSAL.NET MSAL.NET | MSAL.objc | MSAL. Android | ||
Daemon uygulaması |
MSAL.NET MSAL Java MSAL Python MSAL Düğümü |
MSAL.NET MSAL Java MSAL Python MSAL Düğümü |
MSAL.NET 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. Microsoft kimlik platformu kimlik doğrulama kitaplıkları.
Sonraki adımlar
Kimlik doğrulaması hakkında daha fazla bilgi için bkz: