Aracılığıyla paylaş


Azure Active Directory B2C'de OpenID Connect ile web oturumu açma

Ö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.

OpenID Connect, kullanıcıların web uygulamalarında güvenli bir şekilde oturum açmasını sağlamak için kullanılabilen, OAuth 2.0'ın üzerine kurulmuş bir kimlik doğrulama protokolüdür. OpenID Connect'in Azure Active Directory B2C (Azure AD B2C) uygulamasını kullanarak web uygulamalarınızdaki kaydolma, oturum açma ve diğer kimlik yönetimi deneyimlerini Microsoft Entra ID'ye dış kaynak olarak atayabilirsiniz. Bu kılavuzda, bunu dilden bağımsız bir şekilde nasıl yapabileceğiniz gösterilmektedir. Açık kaynak kitaplıklarımızdan herhangi birini kullanmadan HTTP iletileri göndermeyi ve almayı açıklar.

Uyarı

Açık kaynak kimlik doğrulama kitaplıklarının çoğu uygulamanız için JWT'leri alır ve doğrular. Kendi kodunuzu uygulamak yerine bu seçenekleri incelemenizi öneririz. Daha fazla bilgi için bkz. Microsoft Kimlik Doğrulama Kitaplığı'na (MSAL) ve Microsoft Identity Web kimlik doğrulama kitaplığına genel bakış.

OpenID Connect, kimlik doğrulama protokolü olarak kullanmak üzere OAuth 2.0 yetkilendirme protokolunu genişletir. Bu kimlik doğrulama protokolü çoklu oturum açma işlemi gerçekleştirmenizi sağlar. İstemcinin kullanıcının kimliğini doğrulamasını ve kullanıcı hakkında temel profil bilgilerini almasını sağlayan kimlik belirteci kavramını tanıtır.

OpenID Connect ayrıca uygulamaların güvenli bir şekilde erişim belirteçleri almasını sağlar. Yetkilendirme sunucusunun güvenli olduğu kaynaklara erişmek için erişim belirteçlerini kullanabilirsiniz. Sunucuda barındırdığınız ve tarayıcı üzerinden erişilen bir web uygulaması oluşturuyorsanız OpenID Connect'i öneririz. Belirteçler hakkında daha fazla bilgi için bkz. Azure Active Directory B2C'de belirteçlere genel bakış

Azure AD B2C, basit kimlik doğrulaması ve yetkilendirmeden fazlasını yapmak için standart OpenID Connect protokollerini genişletir. Uygulamanıza kaydolma, oturum açma ve profil yönetimi gibi kullanıcı deneyimleri eklemek için OpenID Connect'i kullanmanızı sağlayan kullanıcı akışı parametresini tanıtır.

Kimlik doğrulama istekleri gönderme

Web uygulamanızın kullanıcının kimliğini doğrulaması ve bir kullanıcı akışı çalıştırması gerektiğinde, kullanıcıyı /authorize uç noktaya yönlendirebilir. Kullanıcı, kullanıcı akışına bağlı olarak eylemde bulunur.

Bu istekte istemci, parametresinde scope kullanıcıdan alması gereken izinleri belirtir ve çalıştırılacak kullanıcı akışını belirtir. İsteğin nasıl çalıştığını öğrenmek için isteği tarayıcınıza yapıştırın ve çalıştırın. Değiştir:

  • {tenant} kiracınızın adını dahil ederek.
  • 00001111-aaaa-2222-bbbb-3333cccc4444 kiracınıza kaydettiğiniz bir uygulamanın uygulama kimliğini kullanarak.
  • {application-id-uri}/{scope-name} kiracınıza kaydettiğiniz bir uygulamanın kimlik URI'si ve kapsamıyla.
  • {policy} kiracınızdaki sahip olduğunuz ilke ismiyle, örneğin b2c_1_sign_in.
GET /{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/authorize?
Host: {tenant}.b2clogin.com

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&response_type=code+id_token
&redirect_uri=https%3A%2F%2Fjwt.ms%2F
&response_mode=fragment
&scope=openid%20offline_access%20{application-id-uri}/{scope-name}
&state=arbitrary_data_you_can_receive_in_the_response
&nonce=12345
Parametre Gerekli Açıklama
{kiracı} Evet Azure AD B2C kiracınızın adı. Özel bir etki alanı kullanıyorsanız, tenant.b2clogin.com'ni etki alanınızla, örneğin fabrikam.com ile değiştirin.
{politika} Evet Uygulamanın çalıştır olduğu kullanıcı akışı veya ilkesi. Azure AD B2C kiracınızda oluşturduğunuz kullanıcı akışının adını belirtin. Örneğin: b2c_1_sign_in, b2c_1_sign_upveya b2c_1_edit_profile.
müşteri_kimlik Evet Azure portalının uygulamanıza atadığı uygulama kimliği.
Nonce Önerilir İstekte bulunan (uygulama tarafından oluşturulan) ve sonuçta elde edilen kimlik belirtecinde talep olarak bulunan bir değer. Uygulama daha sonra belirteç yeniden yürütme saldırılarını azaltmak için bu değeri doğrulayabilir. değeri genellikle isteğin kaynağını tanımlamak için kullanılabilecek rastgele bir benzersiz dizedir.
yanıt_türü Evet OpenID Connect için bir kimlik belirteci içermelidir. Web uygulamanızın da bir web API'sini çağırmak için belirteçlere ihtiyacı varsa kullanabilirsiniz code+id_token.
kapsam Evet Boşlukla ayrılmış öğelerden oluşan kapsam listesi. Kapsam, openid kullanıcının oturum açmasına ve kullanıcı hakkında kimlik belirteci biçiminde veri edinme iznini gösterir. Kapsam offline_access , web uygulamaları için isteğe bağlıdır. Uygulamanızın kaynaklara genişletilmiş erişim için yenileme belirtecine ihtiyacı olduğunu gösterir. , https://{tenant-name}/{app-id-uri}/{scope} web API'si gibi korumalı kaynaklara bir izin gösterir. Daha fazla bilgi için bkz. Erişim belirteci isteme.
Uyarı Hayı Gereken kullanıcı etkileşiminin türü. Şu anda geçerli olan tek değer, kullanıcıyı bu istekte kimlik bilgilerini girmeye zorlayan değeridir login.
yönlendirme_uri Evet redirect_uri Sunucunun uygulamanıza kimlik doğrulama yanıtları gönderdiği uygulamanızın parametresi. URL ile kodlanmış olması dışında, Azure portalına kaydettiğiniz parametrelerden biriyle redirect_uri tam olarak eşleşmelidir.
yanıt_modu Hayı Sonuçta elde edilen yetkilendirme kodunu uygulamanıza geri göndermek için kullanılan yöntem. query, form_postveya fragmentolabilir. En iyi güvenlik için yanıt modunu kullanmanızı form_post öneririz.
devlet Hayı Yetkilendirme sunucusunun belirteç yanıtında döndürdüğü isteğe ekleyebileceğiniz bir değer. İstediğiniz herhangi bir içeriğin dizesi olabilir. Rastgele oluşturulan benzersiz bir değer genellikle siteler arası istek sahteciliği saldırılarını önlemek için kullanılır. Durum, kimlik doğrulama isteği gerçekleşmeden önce kullanıcının uygulamadaki durumuyla ilgili bilgileri (örneğin, bulunduğu sayfa) kodlamak için de kullanılır. Azure portalınıza birden çok yeniden yönlendirme URL'sini kaydetmek istemiyorsanız, farklı istekler nedeniyle uygulamanızdaki yanıtları Azure AD B2C hizmetinden ayırt etmek için parametresini kullanabilirsiniz state .
giriş_ipucu Hayı Oturum açma sayfasının oturum açma adı alanını önceden doldurmak için kullanılabilir. Daha fazla bilgi için bkz. oturum açma adını önceden doldurma.
etki alanı ipucu Hayı Azure AD B2C'ye oturum açmak için kullanılması gereken sosyal kimlik sağlayıcısı hakkında bir ipucu sağlar. Geçerli bir değer eklenirse, kullanıcı doğrudan kimlik sağlayıcısı oturum açma sayfasına gider. Daha fazla bilgi için bkz. Oturum açmayı sosyal bir sağlayıcıyayönlendirme.
Özel parametreler Hayı özel ilkelerle kullanılabilen özel parametreler. Örneğin, dinamik özel sayfa içeriği URI'siya da anahtar-değer talep çözümleyicileri.

Bu noktada kullanıcıdan iş akışını tamamlaması istenir. Kullanıcının kullanıcı adını ve parolasını girmesi, sosyal kimlikle oturum açması veya dizine kaydolması gerekebilir. Kullanıcı akışının nasıl tanımlandığına bağlı olarak başka sayıda adım olabilir.

Kullanıcı akışı tamamlandıktan sonra, parametrede belirttiğiniz redirect_uri yöntem kullanılarak belirtilen response_mode parametrede uygulamanıza bir yanıt döndürülür. Yanıt, kullanıcı akışından bağımsız olarak önceki durumların her biri için aynıdır.

"response_mode=fragment kullanılarak başarılı bir yanıt şöyle görünür:"

GET https://jwt.ms/#
id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...
&code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq...
&state=arbitrary_data_you_can_receive_in_the_response
Parametre Açıklama
kimlik belirteci (id_token) Uygulamanın istediği kimlik belirteci. Kimlik belirtecini kullanarak kullanıcının kimliğini doğrulayabilir ve kullanıcıyla oturum başlatabilirsiniz.
kod kullandıysanız response_type=code+id_tokenuygulamanın istediği yetkilendirme kodu. Uygulama, bir hedef kaynak için erişim belirteci istemek üzere yetkilendirme kodunu kullanabilir. Yetkilendirme kodlarının süresi genellikle yaklaşık 10 dakika sonra dolar.
devlet İstekte bir state parametre varsa, yanıtta aynı değer görünmelidir. Uygulama, istek ve yanıttaki değerlerin aynı olduğunu state doğrulamalıdır.

Hata yanıtları, uygulamanın bunları uygun şekilde işleyebilmesi için redirect_uri parametresine de gönderilebilir:

GET https://jwt.ms/#
error=access_denied
&error_description=AADB2C90091%3a+The+user+has+cancelled+entering+self-asserted+information.%0d%0aCorrelation+ID%3a+xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%0d%0aTimestamp%3a+xxxx-xx-xx+xx%3a23%3a27Z%0d%0a
&state=arbitrary_data_you_can_receive_in_the_response
Parametre Açıklama
hata Oluşan hata türlerini sınıflandırmak için kullanılabilecek bir kod.
hata açıklaması Kimlik doğrulama hatasının kök nedenini belirlemeye yardımcı olabilecek belirli bir hata iletisi.
devlet İstekte bir state parametre varsa, yanıtta aynı değer görünmelidir. Uygulama, istek ve yanıttaki değerlerin aynı olduğunu state doğrulamalıdır.

Kimlik belirtecini doğrulama

Kimlik belirtecinin alınması kullanıcının kimliğini doğrulamak için yeterli değildir. Kimlik belirtecinin imzasını doğrulayın ve uygulamanızın gereksinimlerine göre belirteçteki talepleri doğrulayın. Azure AD B2C, belirteçleri imzalamak ve geçerli olduklarını doğrulamak için JSON Web Belirteçleri (JWT) ve ortak anahtar şifrelemesi kullanır.

Uyarı

Açık kaynak kimlik doğrulama kitaplıklarının çoğu uygulamanız için JWT'leri doğrular. Kendi doğrulama mantığınızı uygulamak yerine bu seçenekleri incelemenizi öneririz. Daha fazla bilgi için bkz. Microsoft Kimlik Doğrulama Kitaplığı'na (MSAL) ve Microsoft Identity Web kimlik doğrulama kitaplığına genel bakış.

Azure AD B2C,bir uygulamanın çalışma zamanında Azure AD B2C hakkında bilgi almasına olanak tanıyan bir OpenID Connect meta veri uç noktasına sahiptir. Bu bilgiler uç noktaları, belirteç içeriklerini ve belirteç imzalama anahtarlarını içerir. B2C kiracınızda her kullanıcı akışı için bir JSON meta veri belgesi vardır. Örneğin, b2c_1_sign_in içindeki fabrikamb2c.onmicrosoft.com kullanıcı akışı için meta veri belgesi şu konumda bulunur:

https://fabrikamb2c.b2clogin.com/fabrikamb2c.onmicrosoft.com/b2c_1_sign_in/v2.0/.well-known/openid-configuration

Bu yapılandırma belgesinin özelliklerinden biri, jwks_uriaynı kullanıcı akışı için değeri şu şekilde olacaktır:

https://fabrikamb2c.b2clogin.com/fabrikamb2c.onmicrosoft.com/b2c_1_sign_in/discovery/v2.0/keys

Kimlik belirtecini imzalamak için hangi kullanıcı akışının kullanıldığını belirlemek için iki seçeneğiniz vardır. İlk olarak, kullanıcı akışı adı kimlik belirtecindeki acr talepte yer alır. Bkz. Kullanıcı akışını temsil eden talep. Diğer seçeneğiniz, isteği gönderdiğinizde kullanıcı akışını parametrenin değerinde state kodlamak ve ardından hangi kullanıcı akışının kullanıldığını belirlemek için kodunu çözmektir. Her iki yöntem de geçerlidir.

OpenID Connect meta veri uç noktasından meta veri belgesini aldıktan sonra, kimlik belirtecinin imzasını doğrulamak için RSA 256 ortak anahtarlarını kullanabilirsiniz. Bu uç noktada her biri bir kid talep tarafından tanımlanan birden çok anahtar olabilir. Kimlik belirtecinin üst bilgisi, kimlik belirtecini imzalamak için bu anahtarlardan hangisinin kullanıldığını gösteren bir kid talep de içerir.

Azure AD B2C'den belirteçleri doğrulamak için üs (e) ve modülüs (n) kullanarak açık anahtarı oluşturmanız gerekir. Bunu yapmak için ortak anahtarı istediğiniz programlama dilinde oluşturmayı öğrenmeniz gerekir. RSA protokolü ile Ortak Anahtar oluşturma ile ilgili resmi belgelere buradan ulaşabilirsiniz: https://tools.ietf.org/html/rfc3447#section-3.1

Kimlik belirtecinin imzasını doğruladıktan sonra, doğrulamanız gereken çeşitli iddialar vardır. Örneğin:

  • nonce Token tekrar yürütme saldırılarını önlemek için hak talebini doğrulayın. Değeri, oturum açma isteğinde belirttiğiniz değer olmalıdır.
  • Uygulamanız için kimlik belirtecinin verildiğini doğrulamak amacıyla aud talebini doğrulayın. Uygulamanızın uygulama ID'si değer olarak verilmelidir.
  • Kimlik belirteci süresinin dolmadığından emin olmak için iat ve exp taleplerini doğrulayın.

Ayrıca gerçekleştirmeniz gereken birkaç doğrulama daha vardır. Doğrulamalar OpenID Connect Core Belirtiminde ayrıntılı olarak açıklanmıştır. Senaryonuza bağlı olarak daha fazla talep doğrulamak da isteyebilirsiniz. Bazı yaygın doğrulamalar şunlardır:

  • Kullanıcının/kuruluşun uygulamaya kaydolduğunu doğrulayın.
  • Kullanıcının uygun yetkilendirme/ayrıcalıklara sahip olduğundan emin olun.
  • Microsoft Entra çok faktörlü kimlik doğrulaması gibi belirli bir kimlik doğrulaması gücünün oluştuğundan emin olun.

Kimlik belirteci doğrulandıktan sonra kullanıcıyla oturum başlatabilirsiniz. Uygulamanızdaki kullanıcı hakkında bilgi edinmek için kimlik belirtecindeki talepleri kullanabilirsiniz. Bu bilgilerin kullanım alanları görüntüleme, kayıtlar ve yetkilendirmedir.

Belirteç alma

Web uygulamanızın yalnızca kullanıcı akışlarını çalıştırması gerekiyorsa, sonraki birkaç bölümü atlayabilirsiniz. Bu bölümler yalnızca Azure AD B2C tarafından korunan bir web API'sine kimliği doğrulanmış çağrılar yapması gereken web uygulamaları için geçerlidir.

Yetkilendirme kodunu (kullanarak response_type=code+id_token) istenen kaynağa bir belirteç için dönüştürebilir, POST isteğini /token uç noktasına göndererek yapabilirsiniz. Azure AD B2C'de, istekte kapsamlarını belirterek diğer API'ler için erişim belirteçleri .

Uygulamanızın kendi arka uç Web API'si için erişim belirteci de isteyebilirsiniz. Bu durumda, istenen kapsam olarak uygulamanın istemci kimliğini kullanırsınız ve bu da bu istemci kimliğine sahip bir erişim belirtecinin "hedef kitle" olarak kullanılmasına neden olur:

POST https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/token HTTP/1.1
Host: {tenant}.b2clogin.com
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&scope=00001111-aaaa-2222-bbbb-3333cccc4444 offline_access
&code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq...
&redirect_uri=urn:ietf:wg:oauth:2.0:oob
Parametre Gerekli Açıklama
{kiracı} Evet Azure AD B2C kiracınızın adı
{politika} Evet Yetkilendirme kodunu almak için kullanılan kullanıcı akışı. Bu istekte farklı bir kullanıcı akışı kullanamazsınız. Bu parametreyi POST gövdesine değil sorgu dizesine ekleyin.
müşteri_kimlik Evet Azure portalının uygulamanıza atadığı uygulama kimliği.
istemci_sırrı Evet, Web Apps'te Azure portalında oluşturulan uygulama gizli anahtarı. İstemci gizli dizileri, istemcinin güvenli bir şekilde bir istemci gizli dizisini depoladığı Web Uygulaması senaryoları için bu akışta kullanılır. Yerel Uygulama (genel istemci) senaryolarında istemci sırları güvenli bir şekilde depolanamaz, bu nedenle bu süreçte kullanılmaz. İstemci sırrı kullanıyorsanız, bunu düzenli olarak değiştirin.
kod Evet Kullanıcı akışının başında edindiğiniz yetkilendirme kodu.
izin_tipi Evet Yetkilendirme kodu akışı için olması gereken hibe türü authorization_code olmalıdır.
yönlendirme_uri Hayı redirect_uri Yetkilendirme kodunu aldığınız uygulamanın parametresi.
kapsam Hayı Boşlukla ayrılmış öğelerden oluşan kapsam listesi. Bu kapsam, kullanıcının oturum açmasına ve kullanıcı hakkındaki verileri id_token parametreleri biçiminde almasına izin verir. Uygulamanızın istemciyle aynı uygulama kimliğiyle temsil edilen kendi arka uç web API'si için belirteçler almak amacıyla kullanılabilir. Kapsam, offline_access uygulamanızın kaynaklara genişletilmiş erişim için yenileme belirtecine ihtiyacı olduğunu gösterir.

Başarılı bir belirteç yanıtı şöyle görünür:

{
    "not_before": "1442340812",
    "token_type": "Bearer",
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...",
    "scope": "00001111-aaaa-2222-bbbb-3333cccc4444 offline_access",
    "expires_in": "3600",
    "expires_on": "1644254945",
    "refresh_token": "AAQfQmvuDy8WtUv-sd0TBwWVQs1rC-Lfxa_NDkLqpg50Cxp5Dxj0VPF1mx2Z...",
}
Parametre Açıklama
öncesinde değil Belirtecin geçerli hâle geldiği epok zamanı.
belirteç_tipi Belirteç türü değeri. Bearer desteklenen tek türdür.
erişim_token İstediğiniz imzalı JWT.
kapsam Belirteç için geçerli kapsamlar.
son_kullanma_süresi Erişim belirtecinin geçerli olduğu süre (saniye cinsinden).
sona erme tarihi Erişim belirtecinin geçersiz hale geldiği dönem süresi.
yenileme_tokenu OAuth 2.0 yenileme belirteci. Uygulama, geçerli belirtecin süresi dolduktan sonra daha fazla belirteç almak için bu belirteci kullanabilir. Yenileme belirteçleri, kaynaklara erişimi uzun süreler boyunca korumak için kullanılabilir. offline_access Kapsam, yenileme belirtecini almak için hem yetkilendirme hem de belirteç isteklerinde kullanılmış olmalıdır.

Hata yanıtları şöyle görünür:

{
    "error": "invalid_grant",
    "error_description": "AADB2C90080: The provided grant has expired. Please re-authenticate and try again. Current time: xxxxxxxxxx, Grant issued time: xxxxxxxxxx, Grant expiration time: xxxxxxxxxx\r\nCorrelation ID: xxxxxxxx-xxxx-xxxX-xxxx-xxxxxxxxxxxx\r\nTimestamp: xxxx-xx-16 xx:10:52Z\r\n"
}
Parametre Açıklama
hata Oluşan hata türlerini sınıflandırmak için kullanılabilecek bir kod.
hata açıklaması Kimlik doğrulama hatasının kök nedenini belirlemeye yardımcı olabilecek bir ileti.

Belirteci kullan

Başarıyla bir erişim belirteci aldığınızda, bu belirteci isteklerinizde Authorization başlığına dahil ederek back-end web API’lerinize kullanabilirsiniz.

GET /tasks
Host: mytaskwebapi.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...

Belirteci yenile

Erişim belirteçleri ve kimlik belirteçleri kısa sürelidir. Süresi dolduktan sonra, kaynaklara erişmeye devam etmek için bunları yenilemeniz gerekir. Erişim belirtecini yenilediğinizde Azure AD B2C yeni bir belirteç döndürür. Yenilenen erişim belirteci nbf (daha önce değil), iat (verildiği tarih) ve exp (süre sonu) talep değerlerini güncelleştirecektir. Diğer tüm talep değerleri, önceki erişim belirtecindekilere benzer.

POST isteği ile /token uç noktasına başka bir istek göndererek belirteci yenileyin. Bu kez parametresi yerine parametresini refresh_token sağlayıncode:

POST https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/token HTTP/1.1
Host: {tenant}.b2clogin.com
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&scope=openid offline_access
&refresh_token=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq...
&redirect_uri=urn:ietf:wg:oauth:2.0:oob
Parametre Gerekli Açıklama
{kiracı} Evet Azure AD B2C kiracınızın adı
{politika} Evet Özgün yenileme belirtecini almak için kullanılan kullanıcı akışı. Bu istekte farklı bir kullanıcı akışı kullanamazsınız. Bu parametreyi POST gövdesine değil sorgu dizesine ekleyin.
müşteri_kimlik Evet Azure portalının uygulamanıza atadığı uygulama kimliği.
istemci_sırrı Evet, Web Apps'te Azure portalında oluşturulan uygulama gizli anahtarı. İstemci gizli dizileri, istemcinin güvenli bir şekilde bir istemci gizli dizisini depoladığı Web Uygulaması senaryoları için bu akışta kullanılır. Yerel Uygulama (açık istemci) senaryolarında, istemci gizli bilgileri güvenli bir şekilde depolanamayacağı için bu çağrıda kullanılmaz. İstemci sırrı kullanıyorsanız, lütfen bunu belirli aralıklarla değiştirin.
izin_tipi Evet Yetkilendirme kodu akışının bu bölümü için refresh_token olması gereken bağış türü.
yenileme_tokenu Evet Akışın ikinci bölümünde alınan özgün yenileme belirteci. Kapsam, offline_access yenileme belirtecini almak için hem izin hem de token isteklerinde kullanılmalıdır.
yönlendirme_uri Hayı redirect_uri Yetkilendirme kodunu aldığınız uygulamanın parametresi.
kapsam Hayı Boşlukla ayrılmış öğelerden oluşan kapsam listesi. Kapsam, openid kullanıcının oturum açmasına ve kullanıcı hakkında kimlik belirteci biçiminde veri edinme iznini gösterir. Uygulamanızın, istemciyle aynı uygulama kimliği altında temsil edilen kendi back-end web API'sine belirteç göndermek için kullanılabilir. Kapsam, offline_access uygulamanızın kaynaklara genişletilmiş erişim için yenileme belirtecine ihtiyacı olduğunu gösterir.

Başarılı bir belirteç yanıtı şöyle görünür:

{
    "not_before": "1442340812",
    "token_type": "Bearer",
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...",
    "scope": "00001111-aaaa-2222-bbbb-3333cccc4444 offline_access",
    "expires_in": "3600",
    "refresh_token": "AAQfQmvuDy8WtUv-sd0TBwWVQs1rC-Lfxa_NDkLqpg50Cxp5Dxj0VPF1mx2Z...",
    "refresh_token_expires_in": "1209600"
}
Parametre Açıklama
öncesinde değil Belirtecin geçerli hâle geldiği epok zamanı.
belirteç_tipi Belirteç türü değeri. Bearer desteklenen tek türdür.
erişim_token İstenen imzalı JWT.
kapsam Belirteç için geçerli kapsamlar.
son_kullanma_süresi Erişim belirtecinin geçerli olduğu süre (saniye cinsinden).
yenileme_tokenu OAuth 2.0 yenileme belirteci. Uygulama, geçerli belirtecin süresi dolduktan sonra ek belirteçler almak için bu belirteci kullanabilir. Yenileme belirteçleri, kaynaklara erişimi uzun süreler boyunca korumak için kullanılabilir.
yenileme_jetonu_süresi_doluyor Yenileme belirtecinin geçerli olduğu süre (saniye cinsinden).

Hata yanıtları şöyle görünür:

{
    "error": "invalid_grant",
    "error_description": "AADB2C90129: The provided grant has been revoked. Please reauthenticate and try again.\r\nCorrelation ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\r\nTimestamp: xxxx-xx-xx xx:xx:xxZ\r\n",
}
Parametre Açıklama
hata Oluşan hata türlerini sınıflandırmak için kullanılabilecek bir kod.
hata açıklaması Kimlik doğrulama hatasının kök nedenini belirlemeye yardımcı olabilecek bir ileti.

Oturum kapatma isteği gönderme

Kullanıcının uygulama oturumunu kapatmak istediğinizde, uygulamanın tanımlama bilgilerini temizlemek veya kullanıcıyla oturumu başka bir şekilde sonlandırmak yeterli değildir. Oturumu kapatmak için kullanıcıyı Azure AD B2C'ye yeniden yönlendirin. Bunu yapmazsanız, kullanıcı kimlik bilgilerini yeniden girmeden uygulamanıza yeniden kimlik doğrulaması yapabilir. Daha fazla bilgi için bkz. Azure AD B2C oturum davranışı.

Kullanıcının oturumunu kapatmak için end_session_endpoint kullanıcıyı daha önce açıklanan OpenID Connect meta veri belgesinde listelenene yönlendirin:

GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/logout?post_logout_redirect_uri=https%3A%2F%2Fjwt.ms%2F
Parametre Gerekli Açıklama
{kiracı} Evet Azure AD B2C kiracınızın adı. Özel bir etki alanı kullanıyorsanız, tenant.b2clogin.com'ni etki alanınızla, örneğin fabrikam.com ile değiştirin.
{politika} Evet Yetkilendirme isteğinde belirttiğiniz kullanıcı akışı. Örneğin, kullanıcı kullanıcı akışıyla b2c_1_sign_in oturum açtıysa, oturum kapatma isteğinde belirtin b2c_1_sign_in .
id_token_hint (kimlik jetonu ipucu) Hayı Daha önce verilmiş bir kimlik belirteci, son kullanıcının istemci ile kullanıcı arasında var olan kimliği doğrulanmış oturumu hakkında bir ipucu olarak, hesaptan çıkış uç noktasına geçirilir. id_token_hint, post_logout_redirect_uri öğesinin Azure AD B2C uygulama ayarlarınızda kayıtlı bir yanıt URL'si olmasını sağlar. Daha fazla bilgi için Oturumunuzu kapatma yönlendirmesinin güvenliğini sağlama bölümüne bakın.
müşteri_kimlik Hayır* Azure portalının uygulamanıza atadığı uygulama kimliği.

* Bu, yalıtım SSO yapılandırması kullanılırken Application gereklidir ve Oturum kapatma isteğinde Kimlik Belirteci gerektir ayarı olarak Noayarlanır.
çıkış sonrası yönlendirme URI Hayı Kullanıcının oturumu başarıyla kapattıktan sonra yönlendirileceği URL. Eğer dahil edilmezse, Azure AD B2C kullanıcıya genel bir mesaj gösterir. id_token_hint sağlamadığınız sürece, bu URL'yi Azure AD B2C uygulama ayarlarında yanıt URL'si olarak kaydetmemelisiniz.
devlet Hayı Yetkilendirme isteğine bir state parametre eklerseniz, yetkilendirme sunucusu yanıtındaki post_logout_redirect_uriaynı değeri döndürür. Uygulama, istek ve yanıttaki değerin state aynı olduğunu doğrulamalıdır.

Oturum kapatma isteği üzerine Azure AD B2C, Azure AD B2C tanımlama bilgisi tabanlı oturumu geçersiz kılır ve federasyon kimlik sağlayıcılarının oturumunu kapatmaya çalışır. Daha fazla bilgi için bkz. Tek oturum kapatma.

Oturumu kapatma yeniden yönlendirmesini güvenli hale getirin

Oturumu kapatıldıktan sonra kullanıcı, uygulama için belirttiğiniz yanıt URL'lerinden bağımsız olarak parametresinde post_logout_redirect_uri belirttiğiniz URI'ye yönlendirilir. Ancak geçerli id_token_hint bir ileti geçirilirse ve oturum kapatma isteklerinde Kimlik Belirteci Gerektir seçeneği açıksa Azure AD B2C, yeniden yönlendirmeyi gerçekleştirmeden önce değerinin post_logout_redirect_uri uygulamanın yapılandırılmış yeniden yönlendirme URI'lerinden biriyle eşleşip eşleşmediğini doğrular. Uygulama için eşleşen yanıt URL'si yapılandırılmadıysa, bir hata iletisi görüntülenir ve kullanıcı yeniden yönlendirilmiyor.

Oturum kapatma isteklerinde gerekli Kimlik Belirtecini ayarlamak için bkz. Azure Active Directory B2C'de oturum davranışını yapılandırma.