Active Directory B2C'de kullanılabilecek uygulama türleri

Azure Active Directory B2C (Azure AD B2C), çeşitli modern uygulama mimarileri için kimlik doğrulamasını destekler. Bunların tümü OAuth 2.0 veya OpenID Connect endüstri standardı protokollerine dayalıdır. Bu makalede, tercih ettiğiniz dilden veya platformdan bağımsız olarak oluşturabileceğiniz uygulama türleri açıklanmaktadır. Uygulama oluşturmaya başlamadan önce üst düzey senaryoları anlamanıza da yardımcı olur.

Azure AD B2C kullanan her uygulamanın Azure portal kullanılarak Azure AD B2C kiracınıza kaydedilmesi gerekir. Uygulama kayıt işlemi aşağıdaki gibi değerleri toplar ve atar:

  • Uygulamanızı benzersiz olarak tanımlayan bir Uygulama Kimliği .
  • Yanıtları uygulamanıza geri yönlendirmek için kullanılabilecek bir Yanıt URL'si .

Azure AD B2C'ye gönderilen her istek, bir kullanıcı akışını (yerleşik ilke) veya Azure AD B2C'nin davranışını denetleyan özel bir ilke belirtir. Her iki ilke türü de son derece özelleştirilebilir bir kullanıcı deneyimi kümesi oluşturmanıza olanak tanır.

Her uygulamanın etkileşimini benzer bir üst düzey deseni izler:

  1. Uygulama, bir ilkeyi yürütmek için kullanıcıyı v2.0 uç noktasına yönlendirir.
  2. Kullanıcı, ilkeyi ilke tanımına göre tamamlar.
  3. Uygulama v2.0 uç noktasından bir güvenlik belirteci alır.
  4. Uygulama, korumalı bilgilere veya korumalı bir kaynağa erişmek için güvenlik belirtecini kullanır.
  5. Kaynak sunucu, erişim izni verilebileceğini doğrulamak için güvenlik belirtecini doğrular.
  6. Uygulama, güvenlik belirtecini düzenli aralıklarla yeniler.

Bu adımlar, oluşturduğunuz uygulama türüne göre biraz farklılık gösterebilir.

Web uygulamaları

Bir web sunucusunda barındırılan ve tarayıcı üzerinden erişilen web uygulamaları (.NET, PHP, Java, Ruby, Python ve Node.js dahil) için B2C tüm kullanıcı deneyimleri için OpenID Connect'i destekler Azure AD. OpenID Connect'in Azure AD B2C uygulamasında, web uygulamanız Microsoft Entra kimliğine kimlik doğrulaması istekleri vererek kullanıcı deneyimlerini başlatır. İstek sonucu id_token şeklindedir. Bu güvenlik belirteci, kullanıcının kimliğini temsil eder. Ayrıca kullanıcı hakkındaki bilgileri talep biçiminde sağlar:

// Partial raw id_token
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImtyaU1QZG1Cd...

// Partial content of a decoded id_token
{
    "name": "John Smith",
    "email": "john.smith@gmail.com",
    "oid": "d9674823-dffc-4e3f-a6eb-62fe4bd48a58"
    ...
}

Azure AD B2C belirteç başvurusunda bir uygulamanın kullanabileceği belirteç ve talep türleri hakkında daha fazla bilgi edinin.

Bir web uygulamasında, bir ilkenin her yürütülmesi şu üst düzey adımları uygular:

  1. Kullanıcı web uygulamasına göz atar.
  2. Web uygulaması, kullanıcıyı yürütülecek ilkeyi gösteren Azure AD B2C'ye yönlendirir.
  3. Kullanıcı ilkeyi tamamlar.
  4. Azure AD B2C tarayıcıya bir id_token döndürür.
  5. id_token, yeniden yönlendirme URI'sine postalanır.
  6. id_token doğrulanır ve oturum tanımlama bilgisi ayarlanır.
  7. Kullanıcıya güvenli bir sayfa döndürülür.

id_token Microsoft Entra kimliğinden alınan bir ortak imzalama anahtarı kullanılarak doğrulanması, kullanıcının kimliğini doğrulamak için yeterlidir. Bu işlem, sonraki sayfa isteklerinde kullanıcıyı tanımlamak için kullanılabilecek bir oturum tanımlama bilgisi de ayarlar.

Bu senaryoyu çalışırken görmek için Başlarken bölümümüzde web uygulaması oturum açma kod örneklerinden birini deneyin.

Basit oturum açmayı kolaylaştırmaya ek olarak, bir web uygulamasının arka uç web hizmetine de erişmesi gerekebilir. Bu durumda, web uygulaması biraz farklı bir OpenID Connect akışı gerçekleştirebilir ve yetkilendirme kodları ve yenileme belirteçleri kullanarak belirteçler alabilir. Bu senaryo, aşağıdaki Web API'leri bölümünde belirtilmiştir.

Tek sayfalı uygulamalar

Birçok modern web uygulaması, istemci tarafı tek sayfalı uygulamalar ("SPA'lar") olarak oluşturulur. Geliştiriciler bunları JavaScript veya Angular, Vue veya React gibi bir SPA çerçevesi kullanarak yazar. Bu uygulamalar bir web tarayıcı üzerinde çalışır ve geleneksel sunucu tarafı web uygulamalarından farklı kimlik doğrulama özelliklerine sahiptir.

Azure AD B2C, tek sayfalı uygulamaların kullanıcılara oturum açmasını ve arka uç hizmetlerine veya web API'lerine erişmek için belirteçler almasını sağlamak için iki seçenek sağlar:

Yetkilendirme kodu akışı (PKCE ile)

OAuth 2.0 Yetkilendirme kodu akışı (PKCE ile), uygulamanın kimliği doğrulanmış kullanıcıyı ve korumalı API'leri çağırmak için gereken Erişim belirteçlerini temsil eden kimlik belirteçleri için bir yetkilendirme kodu değişimi yapmasına olanak tanır. Ayrıca, kullanıcılarla etkileşime gerek kalmadan kullanıcılar adına kaynaklara uzun süreli erişim sağlayan Yenileme belirteçlerini döndürür.

Bu yaklaşımı öneririz . Sınırlı kullanım ömrüne sahip yenileme belirteçleri, uygulamanızın Safari ITP gibi modern tarayıcı tanımlama bilgisi gizlilik sınırlamalarına uyum sağlamasına yardımcı olur.

Uygulamanız bu akışın avantajlarından yararlanmak için 2.xMSAL.js gibi onu destekleyen bir kimlik doğrulama kitaplığı kullanabilir.

Tek sayfalı uygulamalar-kimlik doğrulaması

Örtük verme akışı

MSAL.js 1.x gibi bazı kitaplıklar yalnızca örtük verme akışını destekler veya uygulamanız örtük akışı kullanmak için uygulanır. Bu gibi durumlarda Azure AD B2C, OAuth 2.0 örtük akışını destekler. Örtük verme akışı, uygulamanın Kimlik ve Erişim belirteçlerini almasına olanak tanır. Yetkilendirme kodu akışının aksine, örtük verme akışı Bir Yenileme belirteci döndürmez.

Bu yaklaşımı önermeyiz .

Bu kimlik doğrulama akışı, Electron ve React-Native gibi platformlar arası JavaScript çerçeveleri kullanan uygulama senaryolarını içermez. Bu senaryolar, yerel platformlarla etkileşim için daha fazla özellik gerektirir.

Web API'leri

Uygulamanızın RESTful web API'si gibi web hizmetlerinin güvenliğini sağlamak için Azure AD B2C kullanabilirsiniz. Web API’leri belirteçleri kullanarak gelen HTTP isteklerinin kimliğini doğrulama yoluyla verilerinin güvenliğini sağlamak üzere OAuth 2.0 kullanabilir. Web API'si çağıranı, HTTP isteğinin yetkilendirme üst bilgisine bir belirteç ekler:

GET /api/items HTTP/1.1
Host: www.mywebapi.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6...
Accept: application/json
...

Web API'si daha sonra, API çağıranının kimliğini doğrulamak ve belirteçte kodlanmış taleplerden çağıran hakkında bilgi ayıklamak için belirteci kullanabilir. Azure AD B2C belirteç başvurusunda bir uygulama için kullanılabilir talepler ve belirteç türleri hakkında bilgi edinin.

Web API'si web uygulamaları, masaüstü ve mobil uygulamalar, tek sayfalı uygulamalar, sunucu tarafı daemon'lar ve diğer web API'leri gibi birçok istemci türünden belirteç alabilir. Web API'sini çağıran bir web uygulaması için tam akış örneği aşağıda verilmiştir:

  1. Web uygulaması bir ilke yürütür ve kullanıcı kullanıcı deneyimini tamamlar.
  2. Azure AD B2C, tarayıcıya bir (OpenID Connect) id_token ve yetkilendirme kodu döndürür.
  3. Tarayıcı, ve yetkilendirme kodunu yeniden yönlendirme URI'sine postalar id_token .
  4. Web sunucusu öğesini id_token doğrular ve bir oturum tanımlama bilgisi ayarlar.
  5. Web sunucusu yetkilendirme kodu, uygulama istemci kimliği ve istemci kimlik bilgilerini sağlayarak Azure AD B2C'den bir access_token ister.
  6. access_token ve refresh_token web sunucusuna döndürülür.
  7. Web API'si yetkilendirme üst bilgisinde ile access_token çağrılır.
  8. Web API'si belirteci doğrular.
  9. Güvenli veriler web uygulamasına döndürülür.

Yetkilendirme kodları, yenileme belirteçleri ve belirteç alma adımları hakkında daha fazla bilgi edinmek için OAuth 2.0 protokolünü okuyun.

Azure AD B2C'yi kullanarak bir web API'sini nasıl güvence altına alacağınızı öğrenmek için Başlarken bölümümüzdeki web API'si eğitimlerine bakın.

Mobil ve yerel uygulamalar

Mobil ve masaüstü uygulamaları gibi cihazlara yüklenen uygulamaların genellikle kullanıcılar adına arka uç hizmetlerine veya web API'lerine erişmesi gerekir. Azure AD B2C ve OAuth 2.0 yetkilendirme kodu akışını kullanarak yerel uygulamalarınıza özelleştirilmiş kimlik yönetimi deneyimleri ekleyebilir ve arka uç hizmetlerini güvenli bir şekilde çağırabilirsiniz.

Bu akışta uygulama ilkeleri yürütür ve kullanıcı ilkeyi tamamladıktan sonra Microsoft Entra kimliğinden bir authorization_code alır. , authorization_code uygulamanın şu anda oturum açmış olan kullanıcı adına arka uç hizmetlerini çağırma iznini temsil eder. Uygulama daha sonra arka planda ve için access_tokenrefresh_tokenöğesini değiştirebilirauthorization_code. Uygulama, HTTP isteklerinde access_token arka uç web API'sinde kimlik doğrulaması yapmak için kullanabilir. Ayrıca eskisinin süresi dolduğunda yeni bir access_token almak için refresh_token öğesini kullanabilir.

Daemons/sunucu tarafı uygulamaları

Uzun süre çalışan işlemler içeren veya kullanıcının varlığı olmadan çalışan uygulamalar da web API'leri gibi güvenli kaynaklara erişmek için bir yönteme ihtiyaç duyar. Bu uygulamalar kimliklerini kullanarak (kullanıcının temsilci kimliği yerine) ve OAuth 2.0 istemci kimlik bilgileri akışını kullanarak kimlik doğrulaması yapabilir ve belirteç alabilir. İstemci kimlik bilgisi akışı, on-behalf-flow ile aynı değildir ve sunucudan sunucuya kimlik doğrulaması için on-behalf-flow kullanılmamalıdır.

Azure AD B2C için OAuth 2.0 istemci kimlik bilgileri akışı şu anda genel önizleme aşamasındadır. Ancak, bir Microsoft Graph uygulaması veya kendi uygulamanız için Microsoft Entra kimliği ve Microsoft kimlik platformu /token uç noktasını (https://login.microsoftonline.com/your-tenant-name.onmicrosoft.com/oauth2/v2.0/token) kullanarak istemci kimlik bilgisi akışını ayarlayabilirsiniz. Daha fazla bilgi için Microsoft Entra belirteci başvurusu makalesine bakın.

Desteklenmeyen uygulama türleri

Web API'si zincirleri (temsili akış)

Çoğu mimari başka bir aşağı akış web API'si çağırmayı gerektiren bir web API'si içerir; her iki API de Azure AD B2C tarafından güvence altına alınır. Bu senaryo, Web API'sinin arka ucuna sahip olan ve Microsoft Graph API gibi bir Microsoft çevrimiçi hizmetini çağıran yerel istemcilerde yaygındır.

Bu zincirli web API'si senaryosu, temsili akış olarak da bilinen OAuth 2.0 JWT taşıyıcı kimlik bilgisi yetkisi kullanılarak desteklenebilir. Ancak, adına akış şu anda Azure AD B2C'de uygulanmamıştır.

Sonraki adımlar

Azure Active Directory B2C'de Kullanıcı akışları tarafından sağlanan yerleşik ilkeler hakkında daha fazla bilgi edinin.