Aracılığıyla paylaş


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

Önemli

1 Mayıs 2025 tarihinden itibaren Azure AD B2C artık yeni müşteriler için satın alınamayacak. SSS bölümünden daha fazla bilgi edinebilirsiniz.

Azure Active Directory B2C (Azure AD B2C), çeşitli modern uygulama mimarileri için kimlik doğrulamasını destekler. Hepsi endüstri standardı protokoller OAuth 2.0 veya OpenID Connect'i temel alır. Bu makalede, tercih ettiğiniz dil veya platformdan bağımsız olarak oluşturabileceğiniz uygulama türleri açıklanmaktadır. Ayrıca, uygulama oluşturmaya başlamadan önce üst düzey senaryoları anlamanıza 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ğıdakiler 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ışı (yerleşik bir ilke) veya Azure AD B2C'nin davranışını denetleyen özel bir ilke belirtir. Her iki ilke türü de yüksek oranda özelleştirilebilir bir kullanıcı deneyimleri kümesi oluşturmanıza olanak tanır.

Her uygulamanın etkileşimi 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ı, ilke tanımına göre ilkeyi 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 sunucusu, erişim 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şturmakta olduğunuz uygulamanın türüne bağlı olarak biraz farklılık gösterebilir.

Web uygulamaları

Azure AD B2C, bir web sunucusunda barındırılan ve bir tarayıcı aracılığıyla erişilen web uygulamaları (.NET, PHP, Java, Ruby, Python ve Node.jsdahil) için tüm kullanıcı deneyimleri için OpenID Connect'i destekler. OpenID Connect'in Azure AD B2C uygulamasında, web uygulamanız Microsoft Entra ID'ye kimlik doğrulama istekleri göndererek kullanıcı deneyimlerini başlatır. İsteğin sonucu bir id_token. Bu güvenlik belirteci kullanıcının kimliğini temsil eder. Ayrıca, kullanıcı hakkında talepler şeklinde bilgi sağlar:

// Partial raw id_token
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImtyaU1QZG1Cd...

// Partial content of a decoded id_token
{
    "name": "John Smith",
    "email": "john.smith@gmail.com",
    "oid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
    ...
}

Azure AD B2C belirteç başvurusunda bir uygulama için kullanılabilen belirteç türleri ve talepler hakkında daha fazla bilgi edinin.

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

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

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

Bu senaryoyu çalışırken görmek için Kullanmaya başlama bölümümüzdeki web uygulaması oturum açma kodu örneklerinden birini deneyin.

Basit oturum açmayı kolaylaştırmanın yanı sıra, bir web uygulamasının bir arka uç web hizmetine de erişmesi gerekebilir. Bu durumda, web uygulaması biraz farklı bir OpenID Connect akışı gerçekleştirebilir ve yetkilendirme kodlarını ve yenileme belirteçlerini kullanarak belirteçleri alabilir. Bu senaryo aşağıdaki Web API'leri bölümünde gösterilmiş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ılarda 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 sunar:

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ştirmesine olanak tanır. Buna ek olarak, 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ı önerdik . 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.

Bu akıştan yararlanmak için uygulamanızMSAL.js 2.x gibi onu destekleyen bir kimlik doğrulama kitaplığı kullanabilir.

Tek sayfalı uygulamalarında kimlik doğrulama

Örtük izin akışı

MSAL.js 1.x gibi bazı kütüphaneler yalnızca örtük izin akışını destekler veya uygulamanız örtük akış kullanacak şekilde tasarlanmıştır. Bu gibi durumlarda Azure AD B2C, OAuth 2.0 örtük akışını destekler. Örtük izin akışı, uygulamanın kimlik ve Erişim belirteçlerini almasına olanak tanır. Yetkilendirme kodu akışının aksine, örtük sağlama akışı Yenileme belirteci döndürmez.

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.

Uyarı

Microsoft örtük verme akışını kullanmamanızı önerir. SPA'ları desteklemenin önerilen yolu OAuth 2.0 Yetkilendirme kodu akışıdır (PKCE ile). Bu akışın belirli yapılandırmaları, uygulamada çok yüksek düzeyde güven gerektirir ve diğer akışlarda mevcut olmayan riskleri taşır. Bu akışı yalnızca diğer daha güvenli akışlar uygun olmadığında kullanmalısınız. Daha fazla bilgi için örtük izin akışıyla ilgili güvenlik endişelerine bakın.

Web API'leri

Uygulamanızın RESTful web API'si gibi web hizmetlerinin güvenliğini sağlamak için Azure AD B2C'yi kullanabilirsiniz. Web API'leri, belirteçleri kullanarak gelen HTTP isteklerinin kimliğini doğrulayarak verilerinin güvenliğini sağlamak için OAuth 2.0'ı kullanabilir. Bir web API'sini ç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 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ılabilen belirteç türleri ve talepler hakkında daha fazla 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 dahil olmak üzere birçok istemci türünden belirteç alabilir. Web API'sini çağıran bir web uygulaması için tam akışın bir ö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ı, id_token ve yetkilendirme kodunu yeniden yönlendirme URI'sine gönderir.
  4. Web sunucusu id_token öğesini doğrular ve bir oturum çerezi ayarlar.
  5. Azure AD B2C'den access_token talep ederken, web sunucusu, yetkilendirme kodunu, uygulama istemci kimliğini ve istemci kimlik bilgilerini sağlar.
  6. access_token ve refresh_token web sunucusuna döndürülür.
  7. Web API, yetkilendirme başlığıyla 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 jetonları ve jeton alma adımları hakkında daha fazla bilgi edinmek için OAuth 2.0 protokolü hakkında bilgi edinin.

Azure AD B2C kullanarak bir web API'sinin güvenliğini sağlamayı öğrenmek için Kullanmaya başlama bölümümüzdeki web API'si öğreticilerine göz atı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 kimlik alır. Uygulamanın authorization_code , şu anda oturum açmış olan kullanıcı adına arka uç hizmetlerini çağırma iznini temsil eder. Uygulama daha sonra arka planda authorization_code'ı bir access_token ve bir refresh_token ile değiştirebilir. Uygulama, HTTP isteklerinde bir arka uç web API'sine kimlik doğrulaması yapmak için access_token kullanabilir. Eski bir ürünün süresi dolduğunda yenisini refresh_token almak için access_token de kullanabilir.

Daemon'lar/sunucu tarafı uygulamalar

Uzun süre çalışan işlemler içeren veya bir kullanıcı olmadan çalışan uygulamaların da web API'leri gibi güvenli kaynaklara erişmek için bir yola ihtiyacı vardır. Bu uygulamalar, kimliklerini (kullanıcının vekil kimliği yerine) ve OAuth 2.0 istemci yetkilendirme akışını kullanarak kimlik doğrulaması yapabilir ve belirteçleri alabilir. İstemci kimlik bilgileri akışı, on-name-flow ile aynı değildir ve on-name-flow, sunucudan sunucuya kimlik doğrulaması için 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 /token veya kendi uygulamanız için Microsoft Entra Kimliği ve Microsoft kimlik platformu https://login.microsoftonline.com/your-tenant-name.onmicrosoft.com/oauth2/v2.0/token uç noktasını () kullanarak istemci kimlik bilgisi akışını ayarlayabilirsiniz. Daha fazla bilgi için Microsoft Entra belirteç referansı makalesine göz atın.

Desteklenmeyen uygulama türleri

Web API zincirleri (akış adına)

Birçok mimari, her ikisinin de Azure AD B2C tarafından güvenliği sağlandığı başka bir aşağı akış web API'sini çağırması gereken bir web API'si içerir. Bu senaryo, Web API'si arka ucuna sahip olan ve Microsoft Graph API gibi bir Microsoft çevrimiçi hizmetini çağıran yerel istemcilerde yaygındır.

Bu zincirleme web API'si senaryosu, akış adına olarak da bilinen OAuth 2.0 JWT taşıyıcı kimlik bilgisi izni kullanılarak desteklenebilir. Ancak, adına işlem akışı şu anda Azure AD B2C'de uygulanmamaktadır.

Sonraki Adımlar

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