Azure Active Directory B2C'de OAuth 2.0 örtük akışını kullanarak tek sayfalı uygulama oturum açma
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.js gibi bir çerçeve kullanılarak yazılır. Öncelikle tarayıcıda çalışan SPA'ların ve diğer JavaScript uygulamalarının kimlik doğrulaması için bazı ek zorlukları vardır:
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.
Uygulamadan uzağa yönlendirilen tam sayfa tarayıcılar, kullanıcı deneyimine çok büyük bir rahatsızlık verebilir.
SPA'ları desteklemenin önerilen yolu, OAuth 2.0 Yetkilendirme kodu akışıdır (PKCE ile).
MSAL.js 1.x gibi bazı çerçeveler yalnızca örtük verme akışını destekler. Bu gibi durumlarda Azure Active Directory B2C (Azure AD B2C), OAuth 2.0 yetkilendirme örtülü verme akışını destekler. Akış, OAuth 2.0 belirtiminin 4.2 bölümünde açıklanmıştır. Örtük akışta uygulama, belirteçleri doğrudan Azure AD B2C yetkilendirme uç noktasından sunucudan sunucuya alışveriş yapmadan alır. Tüm kimlik doğrulama mantığı ve oturum işleme tamamen JavaScript istemcisinde sayfa yeniden yönlendirmesi veya açılır kutu ile 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, uygulamanıza kaydolma, oturum açma ve profil yönetimi kullanıcı akışları gibi ilkeler eklemek için OAuth 2.0'ı kullanabilirsiniz. Bu makaledeki örnek HTTP isteklerinde çizim için {tenant}.onmicrosoft.com kullanıyoruz. varsa değerini kiracınızın adıyla değiştirin{tenant}
. 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 şekli kullanırız. Her adım makalenin devamında ayrıntılı olarak açıklanmış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ı 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.90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6
kiracınıza kaydettiğiniz uygulamanın uygulama kimliğiyle birlikte.{policy}
kiracınızda oluşturduğunuz bir ilkenin adıyla ( örneğinb2c_1_sign_in
) .
GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/authorize?
client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6
&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 |
---|---|---|
{tenant} | Yes | Azure AD B2C kiracınızın adı |
{policy} | Yes | Ç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_up veya b2c_1_edit_profile . |
client_id | Yes | Azure portal uygulamanıza atadığı uygulama kimliği. |
response_type | Yes | OpenID Connect oturum açma için dahil id_token edilmelidir. Ayrıca yanıt türünü token de 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 belirtecin verildiği kaynağı gösteren bir kapsam içermelidir. |
redirect_uri | No | 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. |
response_mode | No | 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 . |
scope | Yes | Boşlukla ayrılmış kapsam listesi. Tek bir kapsam değeri, istenen izinlerin her ikisini de Microsoft Entra kimliğini belirtir. Kapsam, openid kullanıcıda oturum açma ve kullanıcı hakkında kimlik belirteçleri biçiminde veri alma 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. |
state | No | İ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şturulmuş, 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 | Yes | İ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. Genellikle değer, isteğin kaynağını tanımlamak için kullanılabilecek rastgele, benzersiz bir dizedir. |
Istemi | No | Gerekli kullanıcı etkileşiminin türü. Şu anda tek geçerli değer şeklindedir login . Bu parametre kullanıcıyı bu istekte kimlik bilgilerini girmeye zorlar. Tek Sign-On geçerli olmaz. |
Bu, akışın etkileşimli bölümüdür. Kullanıcıdan ilkenin iş akışını tamamlaması istenir. 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, aracılığıyla redirect_uri
uygulamanıza bir yanıt döndürür. parametresinde response_mode
belirtilen yöntemini kullanır. Yanıt, yürütülen kullanıcı akışından bağımsız olarak, kullanıcı eylemi senaryolarının her biri için tam olarak aynıdır.
Başarılı yanıt
Okunabilirlik için satır sonlarıyla birlikte aşağıdakine benzeyen ve response_type=id_token+token
kullanan response_mode=fragment
başarılı bir yanıt:
GET https://aadb2cplayground.azurewebsites.net/#
access_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...
&token_type=Bearer
&expires_in=3599
&scope="90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 offline_access",
&id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...
&state=arbitrary_data_you_sent_earlier
Parametre | Açıklama |
---|---|
access_token | Uygulamanın B2C'Azure AD istediği erişim belirteci. |
token_type | Belirteç türü değeri. Azure AD B2C'nin desteklediği tek tür Taşıyıcı'dır. |
expires_in | Erişim belirtecinin geçerli olduğu süre (saniye cinsinden). |
scope | Belirtecin geçerli olduğu kapsamlar. Ayrıca kapsamları kullanarak belirteçleri daha sonra kullanmak üzere önbelleğe alabilirsiniz. |
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 belirteci başvurusu. |
state | İstekte bir state parametre varsa, yanıtta aynı değerin görünmesi gerekir. Uygulama, istek ve yanıttaki değerlerin state 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 |
---|---|
error | Oluşan hata türlerini sınıflandırmak için kullanılan bir kod. |
error_description | Kimlik doğrulama hatasının kök nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi. |
state | İstekte bir state parametre varsa, yanıtta aynı değerin görünmesi gerekir. Uygulama, istek ve yanıttaki değerlerin state aynı olduğunu doğrulamalıdır. |
Kimlik belirtecini doğrulama
Kimlik belirteci almak, 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ını incelemeyi 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, kiracıda fabrikamb2c.onmicrosoft.com
adlı b2c_1_sign_in
bir 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 şeklindedir jwks_uri
. Aynı kullanıcı akışının değeri şöyle 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ı içindeki talepe
acr
id_token
dahil edilir. Kimlik belirtecinden talepleri ayrıştırma hakkında bilgi için bkz. Azure AD B2C belirteci başvurusu.İsteği yayımladığınızda kullanıcı akışını parametresinin
state
değerinde kodlar. Ardından parametresinin kodunu çözerekstate
hangi kullanıcı akışının kullanıldığını belirleyin.
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. Herhangi bir anda bu uç noktada her biri tarafından kid
tanımlanan birden çok anahtar olabilir. üst bilgisi id_token
de 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 belirteci başvurusu.
Kimlik belirtecinin imzasını doğruladıktan sonra, çeşitli talepler doğrulama gerektirir. Örnek:
nonce
Belirteç yeniden yürütme saldırılarını önlemek için talebi doğrulayın. Değeri, oturum açma isteğinde belirttiğiniz değer olmalıdır.Kimlik belirtecinin
aud
uygulamanız için verildiğinden emin olmak için talebi doğrulayın. Değeri uygulamanızın uygulama kimliği olmalıdır.Kimlik belirtecinin
iat
süresinin dolmadığından emin olmak için veexp
taleplerini doğrulayın.
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 yetkilendirmeye ve ayrıcalıklara sahip olduğundan emin olması.
Çok faktörlü Microsoft Entra kimlik doğrulaması kullanmak 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 bkz. Azure AD B2C belirteci başvurusu.
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 B2C'nin kendisi Azure AD tarafından korunan bir web API'sine kimliği doğrulanmış çağrılar yapması gereken web uygulamaları için geçerlidir.
Kullanıcıyı SPA'nızda oturum açtığınıza göre, Microsoft Entra kimliğiyle 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ç aldıysanı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 uç noktaya bir istekte /token
bulunabilirsiniz. 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. Burada, okunabilirlik için satır sonları içeren bir örnek verilmiştir:
https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/authorize?
client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6
&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? | Description |
---|---|---|
{tenant} | Gerekli | Azure AD B2C kiracınızın adı |
{policy} | 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_up veya b2c_1_edit_profile . |
client_id | Gerekli | Azure portal uygulamanıza atanan uygulama kimliği. |
response_type | Gerekli | OpenID Connect oturum açma için dahil id_token edilmelidir. Yanıt türünü token de içerebilir. Burada kullanıyorsanız token , uygulamanız yetkilendirme uç noktasına ikinci bir istekte bulunmadan hemen yetkilendirme uç noktasından erişim belirteci alabilir. Yanıt türünü kullanırsanız token parametresi, scope belirtecin verildiği kaynağı gösteren bir kapsam içermelidir. |
redirect_uri | Önerilen | 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. |
scope | Gerekli | Boşlukla ayrılmış kapsam listesi. Belirteçleri almak için, hedeflenen kaynak için gereken tüm kapsamları ekleyin. |
response_mode | Önerilen | Sonuçta elde edilen belirteci uygulamanıza geri göndermek için kullanılan yöntemi belirtir. Örtük akış için kullanın fragment . ve olmak üzere iki mod daha belirtilebilir query form_post , ancak örtük akışta çalışmaz. |
state | Önerilen | İstekte bulunan ve belirteç yanıtında 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şturulmuş, 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 açık olduğu sayfa veya görünüm. |
Nonce | Gerekli | İstekte bulunan ve sonuçta elde edilen kimlik belirtecinde talep olarak bulunan uygulama tarafından oluşturulan bir değer. Uygulama daha sonra belirteç yeniden yürütme saldırılarını azaltmak için bu değeri doğrulayabilir. Genellikle değer, isteğin kaynağını tanımlayan rastgele, benzersiz bir dizedir. |
Istemi | Gerekli | Gizli bir iframe'de belirteçleri yenilemek ve almak için, iframe'in oturum açma sayfasında takılmadığından ve hemen döndürmediğinden emin olmak için kullanın prompt=none . |
login_hint | Gerekli | Gizli bir iframe'de belirteçleri yenilemek ve almak için, kullanıcının belirli bir anda sahip olabileceği birden çok oturumu ayırt etmek için kullanıcının kullanıcı adını bu ipucuna ekleyin. Talebi kullanarak preferred_username önceki bir oturum açmadan kullanıcı adını ayıklayabilirsiniz ( profile talebi almak preferred_username için kapsam gereklidir). |
domain_hint | Gerekli |
consumers veya organizations olabilir. Gizli bir iframe'de belirteçleri yenilemek ve almak için isteğe değerini ekleyin domain_hint .
tid Hangi değerin kullanılacağını belirlemek için önceki bir oturum açma işleminin kimlik belirtecinden talebi ayıklayın (profile talebi almak tid için kapsam gereklidir).
tid Talep değeri ise 9188040d-6c67-4c5b-b112-36a304b66dad kullanındomain_hint=consumers . Aksi takdirde kullanın domain_hint=organizations . |
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
kullanarak response_mode=fragment
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 |
---|---|
access_token | Uygulamanın istediği belirteç. |
token_type | Belirteç türü her zaman Taşıyıcı olacaktır. |
state | İstekte bir state parametre varsa, yanıtta aynı değerin görünmesi gerekir. Uygulama, istek ve yanıttaki değerlerin state aynı olduğunu doğrulamalıdır. |
expires_in | Erişim belirtecinin geçerli olduğu süre (saniye). |
scope | 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 |
---|---|
error | 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. |
error_description | 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 nedenleriyle yenileme belirteci almanıza izin vermez. Her iki 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 ve ve scope=openid
parametresini nonce
kullandığınızdan response_type=id_token
emin olun.
Oturum kapatma isteği gönderme
Kullanıcının uygulamadan çıkışını yapmak istediğinizde, kullanıcıyı B2C'nin oturum kapatma uç noktasına Azure AD 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 oturumu olduğundan, kimlik bilgilerini yeniden girmeden uygulamanıza yeniden kimlik doğrulaması yapabilir.
Kullanıcıyı, Kimlik belirteciniend_session_endpoint
doğrulama bölümünde açıklanan OpenID Connect meta veri belgesinde listelenene yönlendirebilirsiniz. Örnek:
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 |
---|---|---|
{tenant} | Yes | Azure AD B2C kiracınızın adı. |
{policy} | Yes | Kullanıcının uygulamanızda oturumunu kapatmak için kullanmak istediğiniz kullanıcı akışı. Bunun, uygulamanın kullanıcı oturumunu açmak için kullandığı kullanıcı akışıyla aynı olması gerekir. |
post_logout_redirect_uri | No | Başarılı bir şekilde oturumu kapatıldıktan sonra kullanıcının yeniden yönlendirileceği URL. Dahil değilse, Azure AD B2C kullanıcıya genel bir ileti gösterir. |
state | No | İstekte bir state parametre varsa, yanıtta aynı değerin görünmesi gerekir. Uygulama, istek ve yanıttaki değerlerin state aynı olduğunu doğrulamalıdır. |
Not
Kullanıcıyı tek Sign-On durumuna yönlendirmekend_session_endpoint
, Azure AD B2C ile kullanıcının tek Sign-On durumundan bazıları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, bu, örneğin Facebook hesabında tamamen oturumu kapatmak istediği anlamına gelmez. Ancak, yerel hesaplar için kullanıcının oturumu düzgün bir şekilde sonlandırılır.
Sonraki adımlar
Kod örneğine bakın: JavaScript SPA'da Azure AD B2C ile oturum açma.