Aracılığıyla paylaş


Azure Active Directory B2C'de OAuth 2.0 örtük akışını kullanarak tek sayfalı uygulama oturum 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.

Birçok modern uygulamada öncelikli olarak JavaScript'te yazılmış tek sayfalı bir uygulama (SPA) ön ucu vardır. Uygulama genellikle React, Angular veya Vue.jsgibi bir çerçeve kullanılarak yazılır. Öncelikli olarak tarayıcıda çalışan SPA'lar ve diğer JavaScript uygulamaları kimlik doğrulaması için bazı ek zorluklara sahiptir:

  • Bu uygulamaların güvenlik özellikleri geleneksel sunucu tabanlı web uygulamalarından farklıdır.

  • Birçok yetkilendirme sunucusu ve kimlik sağlayıcısı çıkış noktaları arası kaynak paylaşımı (CORS) isteklerini desteklemez.

  • Tam sayfa tarayıcının uygulamadan uzağa yönlendirilmesi, kullanıcı deneyimine invaziv olabilir.

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.

MSAL.js 1.x gibi bazı çerçeveler yalnızca örtük izin akışını destekler. Bu gibi durumlarda Azure Active Directory B2C (Azure AD B2C), OAuth 2.0 yetkilendirme örtük izin akışını destekler. Akış, OAuth 2.0 belirtiminin 4.2 bölümünde açıklanmıştır. Örtük akışta uygulama, sunucudan sunucuya alışveriş yapmadan doğrudan Azure AD B2C yetkilendirme uç noktasından belirteçler alır. Tüm kimlik doğrulama mantığı ve oturum işleme, sayfa yeniden yönlendirmesi veya açılır kutu ile tamamen JavaScript istemcisinde gerçekleştirilir.

Azure AD B2C, standart OAuth 2.0 örtük akışını basit kimlik doğrulaması ve yetkilendirmeden daha fazlasına genişletir. Azure AD B2C ilke parametresini tanıtır. İlke parametresiyle, OAuth 2.0'ı kullanarak uygulamanıza kaydolma, oturum açma ve profil yönetimi kullanıcı akışları gibi ilkeler ekleyebilirsiniz. Bu makaledeki örnek HTTP isteklerinde çizim için {tenant}.onmicrosoft.com kullanılır. {tenant}kiracınızın adıyla değiştirin, eğer varsa. Ayrıca , bir kullanıcı akışı oluşturmuş olmanız gerekir.

Örtük oturum açma akışını göstermek için aşağıdaki figürü kullanıyoruz. Her adım makalenin devamında ayrıntılı olarak açıklanmıştır.

OpenID Connect örtük akışını gösteren yüzme kulvarı tarzında diyagram

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ı Azure AD B2C'nin /authorize uç noktasına yönlendirir. Kullanıcı, kullanıcı akışına bağlı olarak eylemde bulunur.

Bu istekte istemci, parametresindeki scope kullanıcıdan ve çalıştırılacak kullanıcı akışından alması gereken izinleri gösterir. İsteğin nasıl çalıştığı hakkında bilgi edinmek için isteği bir tarayıcıya yapıştırmayı ve çalıştırmayı deneyin. Değiştir:

  • {tenant} azure AD B2C kiracınızın adıyla birlikte.

  • 00001111-aaaa-2222-bbbb-3333cccc4444 kiracınıza kaydettiğiniz uygulamanın uygulama kimliğiyle birlikte.

  • {policy} kiracınızda oluşturduğunuz bir ilkenin adıyla , örneğin b2c_1_sign_in.

GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/authorize?
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&response_type=id_token+token
&redirect_uri=https%3A%2F%2Faadb2cplayground.azurewebsites.net%2F
&response_mode=fragment
&scope=openid%20offline_access
&state=arbitrary_data_you_can_receive_in_the_response
&nonce=12345

HTTP GET isteğindeki parametreler aşağıdaki tabloda açıklanmıştır.

Parametre Gerekli Açıklama
{kiracı} Evet Azure AD B2C kiracınızın adı
{politika} Evet Çalıştırmak istediğiniz kullanıcı akışının adı. 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.
yanıt_türü Evet OpenID Connect girişi için id_token dahil edilmelidir. Ayrıca yanıt türünü tokende içerebilir. kullanıyorsanız token, uygulamanız yetkilendirme uç noktasına ikinci bir istekte bulunmadan yetkilendirme uç noktasından hemen bir erişim belirteci alabilir. Yanıt türünü kullanırsanız token parametresi, scope belirteci hangi kaynak için verebileceğinizi gösteren bir kapsam içermelidir.
yönlendirme_uri Hayı Kimlik doğrulama yanıtlarının uygulamanız tarafından gönderilip alınabildiği uygulamanızın yeniden yönlendirme URI'si. Url ile kodlanmış olması dışında portalda kayıtlı bir uygulamaya eklediğiniz yeniden yönlendirme URI'lerinden biriyle tam olarak eşleşmelidir.
yanıt_modu Hayı Sonuçta elde edilen belirteci uygulamanıza geri göndermek için kullanılacak yöntemi belirtir. Örtük akışlar için kullanın fragment.
kapsam Evet Boşlukla ayrılmış öğelerden oluşan kapsam listesi. Tek bir kapsam değeri, istenen izinlerin her ikisini de Microsoft Entra Kimliği'ne gösterir. 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 uzun süreli erişim için yenileme belirtecine ihtiyacı olduğunu gösterir.
devlet Hayı İstekte bulunan ve belirteç yanıtında da döndürülen bir değer. Kullanmak istediğiniz herhangi bir içeriğin dizesi olabilir. Genellikle siteler arası istek sahteciliği saldırılarını önlemek için rastgele oluşturulan ve benzersiz bir değer kullanılır. Durum, kimlik doğrulama isteği gerçekleşmeden önce kullanıcının uygulamadaki durumuyla ilgili bilgileri (örneğin, kullanıcının üzerinde olduğu sayfa veya yürütülmekte olan kullanıcı akışı) kodlamak için de kullanılır.
Nonce Evet İstekte bulunan (uygulama tarafından oluşturulan) ve sonuçta elde edilen kimlik belirtecinde hak olarak yer alan bir değer. Uygulama daha sonra token yenileme saldırılarını önlemek için bu değeri doğrulayabilir. Genellikle değer, isteğin kaynağını tanımlamak için kullanılabilecek rastgele, benzersiz bir dizedir.
Uyarı Hayı Gerekli kullanıcı etkileşiminin türü. Şu anda tek geçerli değerdir login. Bu parametre kullanıcıyı bu istekte kimlik bilgilerini girmeye zorlar. Tek Sign-On etkili olmaz.

Bu, akışın etkileşimli bölümüdür. Kullanıcıdan politikanın iş akışını tamamlaması talep edilir. Kullanıcının kullanıcı adını ve parolasını girmesi, sosyal kimlikle oturum açması, yerel bir hesaba kaydolması veya başka bir dizi adımı olması gerekebilir. Kullanıcı eylemleri, kullanıcı akışının nasıl tanımlandığına bağlıdır.

Kullanıcı kullanıcı akışını tamamladıktan sonra Azure AD B2C, uygulamanıza redirect_uri aracılığıyla bir yanıt döndürür. response_mode parametresinde belirtilen yöntemini kullanır. Yanıt, yürütülen kullanıcı akışından bağımsız olarak kullanıcı eylem senaryolarının her biri için tamamen aynıdır.

Başarılı yanıt

response_mode=fragment ve response_type=id_token+token kullanan başarılı bir yanıt, okunabilirlik için satır sonlarıyla birlikte aşağıdaki gibi görünür:

GET https://aadb2cplayground.azurewebsites.net/#
access_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...
&token_type=Bearer
&expires_in=3599
&scope="00001111-aaaa-2222-bbbb-3333cccc4444 offline_access",
&id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...
&state=arbitrary_data_you_sent_earlier
Parametre Açıklama
erişim_token Uygulamanın Azure AD B2C'den istediği erişim belirteci.
belirteç_tipi Belirteç türü değeri. Azure AD B2C'nin desteklediği tek tür Taşıyıcı'dır.
son_kullanma_süresi Erişim belirtecinin geçerli olduğu süre (saniye cinsinden).
kapsam Belirtecin geçerli olduğu yetki alanları. Ayrıca kapsamları kullanarak belirteçleri daha sonra kullanılmak üzere önbelleğe alabilirsiniz.
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. Kimlik belirteçleri ve içerikleri hakkında daha fazla bilgi için bkz. Azure AD B2C belirteç dokümantasyonu.
devlet İstekte bir state parametre varsa, yanıtta aynı değer görünmelidir. Uygulama, istek ve yanıttaki state değerlerinin aynı olduğunu doğrulamalıdır.

Hata yanıtı

Hata yanıtları, uygulamanın bunları uygun şekilde işleyebilmesi için yeniden yönlendirme URI'sine de gönderilebilir:

GET https://aadb2cplayground.azurewebsites.net/#
error=access_denied
&error_description=the+user+canceled+the+authentication
&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ılan kod.
hata açıklaması Kimlik doğrulama hatasının kök nedenini belirlemenize 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 state değerlerinin aynı olduğunu 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.

Kullanmayı tercih ettiğiniz dile bağlı olarak, JWT'leri doğrulamak için birçok açık kaynak kitaplığı kullanılabilir. Kendi doğrulama mantığınızı uygulamak yerine kullanılabilir açık kaynak kitaplıkları keşfetmeyi göz önünde bulundurun. Bu kitaplıkları düzgün kullanmayı öğrenmenize yardımcı olması için bu makaledeki bilgileri kullanabilirsiniz.

Azure AD B2C'de OpenID Connect meta veri uç noktası vardır. Bir uygulama, çalışma zamanında Azure AD B2C hakkında bilgi getirmek için uç noktayı kullanabilir. Bu bilgiler uç noktaları, belirteç içeriklerini ve belirteç imzalama anahtarlarını içerir. Azure AD B2C kiracınızda her kullanıcı akışı için bir JSON meta veri belgesi vardır. Örneğin, b2c_1_sign_in adındaki kiracıdaki fabrikamb2c.onmicrosoft.com kullanıcı akışının 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 de 'dir jwks_uri. Aynı kullanıcı akışının değeri şu şekilde olabilir:

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ı (ve meta verilerin nereden getirileceğini) belirlemek için aşağıdaki seçeneklerden herhangi birini kullanabilirsiniz:

  • Kullanıcı akışı adı acr talepte id_token dahil edilir. Kimlik belirtecinden talepleri ayrıştırma hakkında bilgi almak için Azure AD B2C belirteci referansı'na bakın.

  • İsteği gönderdiğinizde kullanıcı akışını parametresinin state değerinde kodlar. Ardından, hangi kullanıcı akışının kullanıldığını belirlemek için parametresinin state kodunu çöz.

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ı (bu uç noktada bulunur) kullanabilirsiniz. Bu uç noktada herhangi bir zamanda kid tarafından tanımlanan birden çok anahtar listelenmiş olabilir. Başlık id_token, aynı zamanda bir kid talep içerir. Kimlik belirtecini imzalamak için bu anahtarlardan hangisinin kullanıldığını gösterir. Belirteçleri doğrulama hakkında bilgi edinmek de dahil olmak üzere daha fazla bilgi için bkz. Azure AD B2C belirteç başvurusu.

Kimlik belirtecinin imzasını doğruladıktan sonra, birkaç iddianın doğrulanması gerekir. Ö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.

  • aud Uygulamanız için kimlik belirtecinin verildiğinden emin olmak için talebi doğrulayın. Değeri uygulamanızın uygulama kimliği olmalıdır.

  • iat ve exp taleplerini doğrulayarak kimlik belirtecinin süresi dolmadığından emin olun.

Gerçekleştirmeniz gereken birkaç doğrulama daha OpenID Connect Core Belirtiminde ayrıntılı olarak açıklanmıştır. Senaryonuza bağlı olarak ek talepleri de doğrulamak isteyebilirsiniz. Bazı yaygın doğrulamalar şunlardır:

  • Kullanıcının veya kuruluşun uygulamaya kaydolduğunu güvence altına alma.

  • Kullanıcının uygun yetkilendirme ve ayrıcalıklara sahip olduğundan emin olun.

  • Microsoft Entra çok faktörlü kimlik doğrulamasını kullanma gibi belirli bir kimlik doğrulaması gücünün oluştuğundan emin olma.

Kimlik belirtecindeki talepler hakkında daha fazla bilgi için Azure AD B2C belirteç başvurusu sayfasına bakın.

Kimlik belirtecini doğruladıktan sonra kullanıcıyla oturum başlatabilirsiniz. Uygulamanızda, kullanıcı hakkında bilgi edinmek için kimlik belirtecindeki talepleri kullanın. Bu bilgiler görüntüleme, kayıtlar, yetkilendirme vb. için kullanılabilir.

Erişim belirteçlerini alma

Web uygulamalarınızın yapması gereken tek şey kullanıcı akışlarını yürütmekse, sonraki birkaç bölümü atlayabilirsiniz. Aşağıdaki bölümlerdeki bilgiler 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.

Artık kullanıcıyı SPA'nızda oturum açtığınıza göre, Microsoft Entra Id ile güvenliği sağlanan web API'lerini çağırmak için erişim belirteçleri alabilirsiniz. Yanıt türünü kullanarak token zaten bir belirteç almış olsanız bile, kullanıcıyı yeniden oturum açmaya yönlendirmeden ek kaynaklara yönelik belirteçleri almak için bu yöntemi kullanabilirsiniz.

Tipik bir web uygulaması akışında /token uç noktasına bir istek gönderirsiniz. Ancak uç nokta CORS isteklerini desteklemediğinden yenileme belirteci almak için AJAX çağrıları yapmak bir seçenek değildir. Bunun yerine, diğer web API'leri için yeni belirteçler almak için gizli bir HTML iframe öğesinde örtük akışı kullanabilirsiniz. Okunaklılık için satır sonları içeren bir örnek aşağıda verilmiştir:

https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/authorize?
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&response_type=token
&redirect_uri=https%3A%2F%2Faadb2cplayground.azurewebsites.net%2F
&scope=https%3A%2F%2Fapi.contoso.com%2Ftasks.read
&response_mode=fragment
&state=arbitrary_data_you_can_receive_in_the_response
&nonce=12345
&prompt=none
Parametre Gerekli mi? Açıklama
{kiracı} Gerekli Azure AD B2C kiracınızın adı
{politika} Gerekli Çalıştırılacak kullanıcı akışı. 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 Gerekli Azure portalında uygulamanıza atanan uygulama kimliği.
yanıt_türü Gerekli OpenID Connect oturum açma için id_token içermelidir. Ayrıca yanıt türünü tokende içerebilir. Burada kullanıyorsanız token , uygulamanız yetkilendirme uç noktasına ikinci bir istekte bulunmadan yetkilendirme uç noktasından hemen bir erişim belirteci alabilir. Yanıt türünü kullanırsanız token parametresi, scope belirteci hangi kaynak için verebileceğinizi gösteren bir kapsam içermelidir.
yönlendirme_uri Önerilir Kimlik doğrulama yanıtlarının uygulamanız tarafından gönderilip alınabildiği uygulamanızın yeniden yönlendirme URI'si. URL ile kodlanmış olması dışında portalda kaydettiğiniz yeniden yönlendirme URI'lerinden biriyle tam olarak eşleşmelidir.
kapsam Gerekli Boşlukla ayrılmış öğelerden oluşan kapsam listesi. Belirteçleri almak için, hedeflenen kaynak için ihtiyacınız olan tüm kapsamları ekleyin.
yanıt_modu Önerilir Sonuçta elde edilen belirteci uygulamanıza geri göndermek için kullanılan yöntemi belirtir. Gizli akış için fragment kullanın. Diğer iki mod, query ve form_post, belirtilebilir ancak örtük akışta çalışmaz.
devlet Önerilir belirteç yanıtında döndürülen istekte yer alan bir değer. Kullanmak istediğiniz herhangi bir içeriğin dizesi olabilir. Genellikle siteler arası istek sahteciliği saldırılarını önlemek için rastgele oluşturulan ve benzersiz bir değer kullanılır. Durum, kimlik doğrulama isteği gerçekleşmeden önce kullanıcının uygulamadaki durumu hakkındaki bilgileri kodlamak için de kullanılır. Örneğin, kullanıcının bulunduğu sayfa veya görünüm.
Nonce Gerekli İstekte yer alan ve sonuçta elde edilen kimlik belirtecinde talep olarak bulunan uygulama tarafından oluşturulan bir değer. Uygulama daha sonra token yenileme saldırılarını önlemek için bu değeri doğrulayabilir. Genellikle değer, isteğin kaynağını tanımlayan rastgele, benzersiz bir dizedir.
Uyarı Gerekli Gizli bir iframe'de belirteçleri yenilemek ve almak için, iframe'in oturum açma sayfasında takılı kalmamasını ve hemen yanıt vermesini sağlamak üzere prompt=none kullanın.
giriş_ipucu Gerekli Gizli bir iframe'de belirteçleri yenilemek ve almak için, kullanıcının belirli bir zamanda sahip olabileceği birden çok oturumu ayırt etmek için kullanıcının kullanıcı adını bu ipucuna ekleyin. Önceki bir oturum açmadan kullanıcı adını preferred_username talebini kullanarak ayıklayabilirsiniz (profile talebini alabilmek için preferred_username kapsamında olması gerekir).
etki alanı ipucu Gerekli consumers veya organizations olabilir. Gizli bir iframe'de belirteçleri yenilemek ve edinmek için domain_hint değerini isteğe ekleyin. Önceki oturum açmanın kimlik belirtecinden tid talebini ayıklayarak hangi değerin kullanılacağını belirleyin (profile talebini almak için tid kapsamı gereklidir). Eğer tid talep değeri 9188040d-6c67-4c5b-b112-36a304b66dad ise, domain_hint=consumers kullanın. Aksi takdirde domain_hint=organizationskullanın.

Parametresini prompt=none ayarlayarak, bu istek hemen başarılı olur veya başarısız olur ve uygulamanıza geri döner. Parametresinde response_mode belirtilen yöntem kullanılarak yeniden yönlendirme URI'si aracılığıyla uygulamanıza başarılı bir yanıt gönderilir.

Başarılı yanıt

"response_mode=fragment kullanılarak verilen başarılı bir yanıt şu örneğe benzer:"

GET https://aadb2cplayground.azurewebsites.net/#
access_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...
&state=arbitrary_data_you_sent_earlier
&token_type=Bearer
&expires_in=3599
&scope=https%3A%2F%2Fapi.contoso.com%2Ftasks.read
Parametre Açıklama
erişim_token Uygulamanın istediği belirteç.
belirteç_tipi Belirteç türü her zaman Bearer olacaktır.
devlet İstekte bir state parametre varsa, yanıtta aynı değer görünmelidir. Uygulama, istek ve yanıttaki state değerlerinin aynı olduğunu doğrulamalıdır.
son_kullanma_süresi Erişim belirtecinin geçerli olduğu süre (saniye).
kapsam Erişim belirtecinin geçerli olduğu kapsamlar.

Hata yanıtı

Hata yanıtları, uygulamanın bunları uygun şekilde işleyebilmesi için yeniden yönlendirme URI'sine de gönderilebilir. için prompt=none, beklenen bir hata şu örneğe benzer:

GET https://aadb2cplayground.azurewebsites.net/#
error=user_authentication_required
&error_description=the+request+could+not+be+completed+silently
Parametre Açıklama
hata Oluşan hata türlerini sınıflandırmak için kullanılabilecek bir hata kodu dizesi. Hatalara tepki vermek için dizeyi de kullanabilirsiniz.
hata açıklaması Kimlik doğrulama hatasının kök nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.

iframe isteğinde bu hatayı alırsanız, kullanıcının yeni bir belirteç almak için etkileşimli olarak yeniden oturum açması gerekir.

Belirteçleri yenileme

Kimlik belirteçlerinin ve erişim belirteçlerinin her ikisi de kısa bir süre sonra sona erer. Uygulamanız bu belirteçleri düzenli aralıklarla yenilemeye hazır olmalıdır. Örtük akışlar, güvenlik nedeniyle yenileme jetonu almanıza izin vermez. İki belirteç türünü de yenilemek için gizli bir HTML iframe öğesinde örtük akışı kullanın. Yetkilendirme isteğine parametresini prompt=none ekleyin. Yeni bir id_token değeri almak için response_type=id_token ve scope=openid öğelerini ve bir nonce parametresini kullandığınızdan emin olun.

Oturum kapatma isteği gönderme

Kullanıcının oturumunu kapatmak istediğinizde kullanıcıyı Azure AD B2C'nin oturum kapatma uç noktasına yönlendirin. Daha sonra uygulamada kullanıcının oturumunu temizleyebilirsiniz. Kullanıcıyı yeniden yönlendirmezseniz, Azure AD B2C ile geçerli bir Tek Sign-On oturumuna sahip olduklarından, kimlik bilgilerini yeniden girmeden uygulamanızda yeniden kimlik doğrulaması yapabilirler.

Kullanıcıyı, end_session_endpoint doğrulama bölümünde açıklanan OpenID Connect meta veri belgesinde listelenene yönlendirebilirsiniz. Örneğin:

GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/logout?post_logout_redirect_uri=https%3A%2F%2Faadb2cplayground.azurewebsites.net%2F
Parametre Gerekli Açıklama
{kiracı} Evet Azure AD B2C kiracınızın adı.
{politika} Evet Kullanıcının uygulamanızda oturumunu kapatmak için kullanmak istediğiniz kullanıcı akışı. Bunun, uygulamanın kullanıcının oturumunu açmak için kullandığı kullanıcı akışıyla aynı olması gerekir.
çı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.
devlet Hayı İ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.

Uyarı

Kullanıcıyı Azure end_session_endpoint AD B2C'ye yönlendirmek, kullanıcının Tek Sign-On durumunun bir kısmını temizler. Ancak kullanıcının sosyal kimlik sağlayıcısı oturumunu kapatmaz. Kullanıcı bir sonraki oturum açma sırasında aynı kimlik sağlayıcısını seçerse, kullanıcının kimlik bilgileri girilmeden kimliği yeniden doğrulanır. Bir kullanıcı Azure AD B2C uygulamanızın oturumunu kapatmak istiyorsa, örneğin Facebook hesabında tamamen oturumunu kapatmak istediği anlamına gelmez. Ancak, yerel hesaplar için kullanıcının oturumu düzgün bir şekilde sonlandırılacaktır.

Sonraki Adımlar

Kod örneğine bakın: JavaScript SPA'da Azure AD B2C ile oturum açma.