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 OpenIdConnectayarlanması 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, codeveya 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 emailgibiprofileopenid.
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 trueayarlayın.
IncludeClaimResolvingInClaimsHandling No Giriş ve çıkış talepleri için, talep çözümlemesinin teknik profile dahil edilip edilmeyeceğini belirtir. Olası değerler: trueveya false (varsayılan). Teknik profilde bir talep çözümleyicisi kullanmak istiyorsanız, bunu olarak trueayarlayı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_jwtbelirtir. 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 codetoken_endpoint_auth_method veya client_secret_basicolarak 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_jwtayarlandığı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: