Azure Active Directory B2C özel ilkesinde OpenID Connect teknik profili tanımlama
Not
Azure Active Directory B2C'de özel ilkeler öncelikli olarak karmaşık senaryoları ele almak için tasarlanmıştır. Çoğu senaryoda yerleşik kullanıcı akışlarını kullanmanızı öneririz. Bunu yapmadıysanız , Active Directory B2C'de özel ilkeleri kullanmaya başlama bölümünde özel ilke başlangıç paketi hakkında bilgi edinin.
Azure Active Directory B2C (Azure AD B2C), OpenID Connect protokolü kimlik sağlayıcısı için destek sağlar. OpenID Connect 1.0, OAuth 2.0'ın üzerinde bir kimlik katmanı tanımlar ve modern kimlik doğrulama protokollerinde en son durumu temsil eder. OpenID Connect teknik profiliyle, Microsoft Entra kimliği gibi OpenID Connect tabanlı bir kimlik sağlayıcısıyla federasyon oluşturabilirsiniz. Kimlik sağlayıcısıyla federasyon, kullanıcıların mevcut sosyal veya kurumsal kimlikleriyle oturum açmasına olanak tanır.
Protokol
Protocol öğesinin Name özniteliğinin olarak OpenIdConnect
ayarlanması gerekir. Örneğin, MSA-OIDC teknik profilinin protokolü şudur OpenIdConnect
:
<TechnicalProfile Id="MSA-OIDC">
<DisplayName>Microsoft Account</DisplayName>
<Protocol Name="OpenIdConnect" />
...
Giriş talepleri
InputClaims ve InputClaimsTransformations öğeleri gerekli değildir. Ancak kimlik sağlayıcınıza ek parametreler göndermek isteyebilirsiniz. Aşağıdaki örnek , yetkilendirme isteğine değeriyle contoso.com
domain_hint sorgu dizesi parametresini ekler.
<InputClaims>
<InputClaim ClaimTypeReferenceId="domain_hint" DefaultValue="contoso.com" />
</InputClaims>
Çıkış talepleri
OutputClaims öğesi, OpenID Connect kimlik sağlayıcısı tarafından döndürülen taleplerin listesini içerir. İlkenizde tanımlanan talebin adını kimlik sağlayıcısında tanımlanan adla eşlemeniz gerekebilir. Özniteliğini ayarladığınız DefaultValue
sürece kimlik sağlayıcısı tarafından döndürülmeyecek talepleri de ekleyebilirsiniz.
OutputClaimsTransformations öğesi, çıkış taleplerini değiştirmek veya yenilerini oluşturmak için kullanılan OutputClaimsTransformation öğelerinin bir koleksiyonunu içerebilir.
Aşağıdaki örnekte, Microsoft Hesabı kimlik sağlayıcısı tarafından döndürülen talepler gösterilmektedir:
- IssuerUserId talebine eşlenen alt talep.
- displayName talebiyle eşlenen ad talebi.
- Ad eşlemesi olmayan e-posta .
Teknik profil, kimlik sağlayıcısı tarafından döndürülmeyecek talepleri de döndürür:
- Kimlik sağlayıcısının adını içeren identityProvider talebi.
- socialIdpAuthentication varsayılan değerine sahip authenticationSource talebi.
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="live.com" />
<OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
<OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
<OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
<OutputClaim ClaimTypeReferenceId="email" />
</OutputClaims>
Meta veri
Öznitelik | Gerekli | Açıklama |
---|---|---|
client_id | Yes | Kimlik sağlayıcısının uygulama tanımlayıcısı. |
IdTokenAudience | No | id_token seyircisi. belirtilirse, Azure AD B2C kimlik sağlayıcısı tarafından döndürülen belirteçteki talebin IdTokenAudience meta verilerinde belirtilene eşit olup olmadığını aud denetler. |
META VERİ | Yes | İyi bilinen OpenID yapılandırma uç noktası olarak da bilinen OpenID Connect kimlik sağlayıcısı yapılandırma belgesine işaret eden bir URL. URL, kiracı adıyla değiştirilen ifadeyi içerebilir {tenant} . |
authorization_endpoint | No | OpenID Connect kimlik sağlayıcısı yapılandırma yetkilendirme uç noktasına işaret eden bir URL. authorization_endpoint meta verilerinin değeri, OpenID iyi bilinen yapılandırma uç noktasında belirtilenden önceliklidir authorization_endpoint . URL, kiracı adıyla değiştirilen ifadeyi içerebilir {tenant} . |
end_session_endpoint | No | Son oturum uç noktasının URL'si. Meta verilerin değeri end_session_endpoint , OpenID iyi bilinen yapılandırma uç noktasında belirtilenden önceliklidir end_session_endpoint . |
yayınlayan | No | OpenID Connect kimlik sağlayıcısının benzersiz tanımlayıcısı. Veren meta verilerinin değeri, OpenID iyi bilinen yapılandırma uç noktasında belirtilenden önceliklidir issuer . belirtilirse, Azure AD B2C kimlik sağlayıcısı tarafından döndürülen belirteçteki talebin veren meta verilerinde belirtilene eşit olup olmadığını iss denetler. |
ProviderName | No | Kimlik sağlayıcısının adı. |
response_types | No | OpenID Connect Core 1.0 belirtimine göre yanıt türü. Olası değerler: id_token , code veya token . |
response_mode | No | Kimlik sağlayıcısının sonucu Azure AD B2C'ye geri göndermek için kullandığı yöntem. Olası değerler: query , form_post (varsayılan) veya fragment . |
scope | No | OpenID Connect Core 1.0 belirtimine göre tanımlanan isteğin kapsamı. , ve email gibiprofile openid . |
HttpBinding | No | Erişim belirteci ve talep belirteci uç noktalarına beklenen HTTP bağlaması. Olası değerler: GET veya POST . |
ValidTokenIssuerPrefixes | No | Microsoft Entra kimliği gibi çok kiracılı bir kimlik sağlayıcısı kullanırken kiracıların her birinde oturum açmak için kullanılabilecek bir anahtar. |
UsePolicyInRedirectUri | No | Yeniden yönlendirme URI'sini oluştururken ilkenin kullanılıp kullanılmayacağını gösterir. Uygulamanızı kimlik sağlayıcısında yapılandırırken yeniden yönlendirme URI'sini belirtmeniz gerekir. Yeniden yönlendirme URI'Azure AD B2C, https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp öğesine işaret ediyor. belirtirseniz true , kullandığınız her ilke için bir yeniden yönlendirme URI'sini eklemeniz gerekir. Örneğin: https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/{policy-name}/oauth2/authresp . |
MarkAsFailureOnStatusCode5xx | No | Http durum kodu 5xx aralığındaysa dış hizmete yönelik bir isteğin hata olarak işaretlenip işaretlenmediğini gösterir. Varsayılan değer: false . |
DiscoverMetadataByTokenIssuer | No | OIDC meta verilerinin JWT belirtecindeki veren kullanılarak bulunup bulunmayacağını gösterir. Veren'i temel alarak meta veri uç noktası URL'sini oluşturmanız gerekiyorsa, bunu olarak true ayarlayın. |
IncludeClaimResolvingInClaimsHandling | No | Giriş ve çıkış talepleri için, talep çözümlemesinin teknik profile dahil edilip edilmeyeceğini belirtir. Olası değerler: true veya false (varsayılan). Teknik profilde bir talep çözümleyicisi kullanmak istiyorsanız, bunu olarak true ayarlayın. |
token_endpoint_auth_method | No | Azure AD B2C'nin kimlik doğrulama üst bilgisini belirteç uç noktasına nasıl gönderdiğini belirtir. Olası değerler: client_secret_post (varsayılan) ve client_secret_basic , private_key_jwt . Daha fazla bilgi için bkz. OpenID Connect istemci kimlik doğrulaması bölümü. |
token_signing_algorithm | No | olarak ayarlandığında kullanılacak token_endpoint_auth_method imzalama algoritmasını private_key_jwt belirtir. Olası değerler: RS256 (varsayılan) veya RS512 . |
SingleLogoutEnabled | No | Teknik profilde oturum açma sırasında federasyon kimlik sağlayıcılarının oturumunu kapatmayı deneyip denemediğini gösterir. Daha fazla bilgi için bkz. Azure AD B2C oturumu oturumu kapatma. Olası değerler: true (varsayılan) veya false . |
ReadBodyClaimsOnIdpRedirect | No |
true Kimlik sağlayıcısı yeniden yönlendirmesinde yanıt gövdesinden talepleri okumak için olarak ayarlayın. Bu meta veriler, taleplerin yanıt yükünde döndürdüğü Apple Kimliği ile kullanılır. |
<Metadata>
<Item Key="ProviderName">https://login.live.com</Item>
<Item Key="METADATA">https://login.live.com/.well-known/openid-configuration</Item>
<Item Key="response_types">code</Item>
<Item Key="response_mode">form_post</Item>
<Item Key="scope">openid profile email</Item>
<Item Key="HttpBinding">POST</Item>
<Item Key="UsePolicyInRedirectUri">false</Item>
<Item Key="client_id">Your Microsoft application client ID</Item>
</Metadata>
Kullanıcı arabirimi öğeleri
Hata durumunda görüntülenen hata iletisini yapılandırmak için aşağıdaki ayarlar kullanılabilir. Meta veriler OpenID Connect teknik profilinde yapılandırılmalıdır. Hata iletileri yerelleştirilebilir.
Öznitelik | Gerekli | Açıklama |
---|---|---|
UserMessageIfClaimsPrincipalDoesNotExist | No | Sağlanan kullanıcı adıyla bir hesap dizinde bulunmazsa kullanıcıya görüntülenecek ileti. |
UserMessageIfInvalidPassword | No | Parola yanlışsa kullanıcıya görüntülenecek ileti. |
UserMessageIfOldPasswordUsed | No | Eski bir parola kullanılıyorsa kullanıcıya görüntülenecek ileti. |
Şifreleme anahtarları
CryptographicKeys öğesi aşağıdaki özniteliği içerir:
Öznitelik | Gerekli | Açıklama |
---|---|---|
client_secret | Yes | Kimlik sağlayıcısı uygulamasının istemci gizli dizisi. Bu şifreleme anahtarı yalnızca response_types meta verileri olarak ve code token_endpoint_auth_method veya client_secret_basic olarak ayarlandıysa client_secret_post gereklidir. Bu durumda, Azure AD B2C, yetkilendirme kodunu bir erişim belirteci ile değiştirmek için başka bir çağrı yapar. Meta veriler olarak id_token ayarlandıysa şifreleme anahtarını atlayabilirsiniz. |
assertion_signing_key | Yes | İstemci onayını imzalamak için kullanılacak RSA özel anahtarı. Bu şifreleme anahtarı yalnızca token_endpoint_auth_method meta verileri olarak private_key_jwt ayarlandığında gereklidir. |
Yeniden Yönlendirme URI'si
Kimlik sağlayıcınızın yeniden yönlendirme URI'sini yapılandırdığınızda girin https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp
. değerini kiracınızın adıyla değiştirdiğinden {your-tenant-name}
emin olun. Yeniden yönlendirme URI'sinin küçük harfle yazılması gerekir.
Örnekler: