Zdefiniuj profil techniczny OpenID Connect Connect w zasadach niestandardowych Azure Active Directory B2CDefine an OpenID Connect technical profile in an Azure Active Directory B2C custom policy

Uwaga

W Azure Active Directory B2C zasady niestandardowe są przeznaczone głównie do realizacji złożonych scenariuszy.In Azure Active Directory B2C, custom policies are designed primarily to address complex scenarios. W przypadku większości scenariuszy zalecamy używanie wbudowanych przepływów użytkowników.For most scenarios, we recommend that you use built-in user flows.

Azure Active Directory B2C (Azure AD B2C) zapewnia obsługę dostawcy tożsamości protokołu OpenID Connect Connect .Azure Active Directory B2C (Azure AD B2C) provides support for the OpenID Connect protocol identity provider. OpenID Connect Connect 1,0 definiuje warstwę tożsamości na serwerze OAuth 2,0 i reprezentuje stan grafiki w nowoczesnych protokołach uwierzytelniania.OpenID Connect 1.0 defines an identity layer on top of OAuth 2.0 and represents the state of the art in modern authentication protocols. Za pomocą profilu technicznego OpenID Connect Connect można sfederować przy użyciu dostawcy tożsamości usługi OpenID Connect Connect, takiego jak Azure AD.With an OpenID Connect technical profile, you can federate with an OpenID Connect based identity provider, such as Azure AD. Federowanie z dostawcą tożsamości umożliwia użytkownikom logowanie się przy użyciu istniejących tożsamości społecznościowych lub firmowych.Federating with an identity provider allows users to sign in with their existing social or enterprise identities.

ProtokółProtocol

Atrybut name elementu Protocol musi być ustawiony na OpenIdConnect .The Name attribute of the Protocol element needs to be set to OpenIdConnect. Na przykład protokół dla profilu technicznego MSA-OIDC OpenIdConnect :For example, the protocol for the MSA-OIDC technical profile is OpenIdConnect:

<TechnicalProfile Id="MSA-OIDC">
  <DisplayName>Microsoft Account</DisplayName>
  <Protocol Name="OpenIdConnect" />
  ...

Oświadczenia wejścioweInput claims

Elementy InputClaims i InputClaimsTransformations nie są wymagane.The InputClaims and InputClaimsTransformations elements are not required. Ale możesz chcieć wysłać dodatkowe parametry do dostawcy tożsamości.But you may want to send additional parameters to your identity provider. Poniższy przykład dodaje parametr domain_hint ciągu zapytania z wartością contoso.com do żądania autoryzacji.The following example adds the domain_hint query string parameter with the value of contoso.com to the authorization request.

<InputClaims>
  <InputClaim ClaimTypeReferenceId="domain_hint" DefaultValue="contoso.com" />
</InputClaims>

Oświadczenia wyjścioweOutput claims

Element OutputClaims zawiera listę oświadczeń zwracanych przez dostawcę tożsamości programu OpenID Connect Connect.The OutputClaims element contains a list of claims returned by the OpenID Connect identity provider. Może być konieczne zamapowanie nazwy żądania zdefiniowanego w zasadach na nazwę zdefiniowaną w dostawcy tożsamości.You may need to map the name of the claim defined in your policy to the name defined in the identity provider. Można również uwzględnić oświadczenia, które nie są zwracane przez dostawcę tożsamości, o ile atrybut ten jest ustawiony DefaultValue .You can also include claims that aren't returned by the identity provider, as long as you set the DefaultValue attribute.

Element OutputClaimsTransformations może zawierać kolekcję elementów OutputClaimsTransformation , które są używane do modyfikowania oświadczeń wyjściowych lub generowania nowych.The OutputClaimsTransformations element may contain a collection of OutputClaimsTransformation elements that are used to modify the output claims or generate new ones.

W poniższym przykładzie przedstawiono oświadczenia zwrócone przez dostawcę tożsamości konta Microsoft:The following example shows the claims returned by the Microsoft Account identity provider:

  • Zastrzeżenie podrzędne , które jest mapowane na issuerUserId .The sub claim that is mapped to the issuerUserId claim.
  • Nazwa , która jest mapowana do żądania DisplayName .The name claim that is mapped to the displayName claim.
  • Adres e-mail bez mapowania nazwy.The email without name mapping.

Profil techniczny zwraca również oświadczenia, które nie są zwracane przez dostawcę tożsamości:The technical profile also returns claims that aren't returned by the identity provider:

  • IdentityProvider , który zawiera nazwę dostawcy tożsamości.The identityProvider claim that contains the name of the identity provider.
  • AuthenticationSource z wartością domyślną socialIdpAuthentication.The authenticationSource claim with a default value of socialIdpAuthentication.
<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>

MetadaneMetadata

AtrybutAttribute WymaganeRequired OpisDescription
client_idclient_id TakYes Identyfikator aplikacji dostawcy tożsamości.The application identifier of the identity provider.
IdTokenAudienceIdTokenAudience NieNo Odbiorcy id_token.The audience of the id_token. Jeśli ta wartość jest określona, Azure AD B2C sprawdza, czy aud w tokenie zwróconym przez dostawcę tożsamości jest równa określonemu w metadanych IdTokenAudience.If specified, Azure AD B2C checks whether the aud claim in a token returned by the identity provider is equal to the one specified in the IdTokenAudience metadata.
METADANEMETADATA TakYes Adres URL wskazujący dokument konfiguracji dostawcy tożsamości OpenID Connect Connect, który jest również znany jako OpenID Connect dobrze znana konfiguracja.A URL that points to an OpenID Connect identity provider configuration document, which is also known as OpenID well-known configuration endpoint. Adres URL może zawierać {tenant} wyrażenie, które jest zastępowane nazwą dzierżawy.The URL can contain the {tenant} expression, which is replaced with the tenant name.
authorization_endpointauthorization_endpoint NieNo Adres URL wskazujący punkt końcowy autoryzacji konfiguracji dostawcy tożsamości OpenID Connect Connect.A URL that points to an OpenID Connect identity provider configuration authorization endpoint. Wartość metadanych authorization_endpoint ma pierwszeństwo przed authorization_endpoint określonym w OpenID connectnym punkcie końcowym konfiguracji.The value of authorization_endpoint metadata takes precedence over the authorization_endpoint specified in the OpenID well-known configuration endpoint. Adres URL może zawierać {tenant} wyrażenie, które jest zastępowane nazwą dzierżawy.The URL can contain the {tenant} expression, which is replaced with the tenant name.
end_session_endpointend_session_endpoint NieNo Adres URL punktu końcowego sesji końcowej.The URL of the end session endpoint. Wartość metadanych authorization_endpoint ma pierwszeństwo przed end_session_endpoint określonym w OpenID connectnym punkcie końcowym konfiguracji.The value of authorization_endpoint metadata takes precedence over the end_session_endpoint specified in the OpenID well-known configuration endpoint.
issuerissuer NieNo Unikatowy identyfikator dostawcy tożsamości OpenID Connect Connect.The unique identifier of an OpenID Connect identity provider. Wartość metadanych wystawcy ma pierwszeństwo przed issuer określonym w OpenID connectnym punkcie końcowym konfiguracji.The value of issuer metadata takes precedence over the issuer specified in the OpenID well-known configuration endpoint. Jeśli ta wartość jest określona, Azure AD B2C sprawdza, czy iss w tokenie zwróconym przez dostawcę tożsamości jest równa określonemu w metadanych wystawcy.If specified, Azure AD B2C checks whether the iss claim in a token returned by the identity provider is equal to the one specified in the issuer metadata.
ProviderNameProviderName NieNo Nazwa dostawcy tożsamości.The name of the identity provider.
response_typesresponse_types NieNo Typ odpowiedzi zgodnie z specyfikacją OpenID Connect Connect Core 1,0.The response type according to the OpenID Connect Core 1.0 specification. Możliwe wartości: id_token , code , lub token .Possible values: id_token, code, or token.
response_moderesponse_mode NieNo Metoda wykorzystywana przez dostawcę tożsamości do wysyłania wyniku z powrotem do Azure AD B2C.The method that the identity provider uses to send the result back to Azure AD B2C. Możliwe wartości: query , form_post (wartość domyślna), lub fragment .Possible values: query, form_post (default), or fragment.
scopescope NieNo Zakres żądania, który jest zdefiniowany zgodnie z specyfikacją OpenID Connect Connect Core 1,0.The scope of the request that is defined according to the OpenID Connect Core 1.0 specification. Takie jak openid , profile i email .Such as openid, profile, and email.
HttpBindingHttpBinding NieNo Oczekiwano powiązania HTTP z punktami końcowymi tokenu dostępu i tokenów oświadczeń.The expected HTTP binding to the access token and claims token endpoints. Możliwe wartości: GET lub POST .Possible values: GET or POST.
ValidTokenIssuerPrefixesValidTokenIssuerPrefixes NieNo Klucz, którego można użyć do zalogowania się do poszczególnych dzierżawców w przypadku korzystania z dostawcy tożsamości z wieloma dzierżawcami, takiego jak Azure Active Directory.A key that can be used to sign in to each of the tenants when using a multi-tenant identity provider such as Azure Active Directory.
UsePolicyInRedirectUriUsePolicyInRedirectUri NieNo Wskazuje, czy należy używać zasad podczas konstruowania identyfikatora URI przekierowania.Indicates whether to use a policy when constructing the redirect URI. Podczas konfigurowania aplikacji w dostawcy tożsamości należy określić identyfikator URI przekierowania.When you configure your application in the identity provider, you need to specify the redirect URI. Identyfikator URI przekierowania wskazuje Azure AD B2C, https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp .The redirect URI points to Azure AD B2C, https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp. W przypadku określenia true tego elementu należy dodać identyfikator URI przekierowania dla każdej używanej zasady.If you specify true, you need to add a redirect URI for each policy you use. Na przykład: https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/{policy-name}/oauth2/authresp.For example: https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/{policy-name}/oauth2/authresp.
MarkAsFailureOnStatusCode5xxMarkAsFailureOnStatusCode5xx NieNo Wskazuje, czy żądanie do usługi zewnętrznej powinno być oznaczone jako błąd, jeśli kod stanu HTTP znajduje się w zakresie 5xx.Indicates whether a request to an external service should be marked as a failure if the Http status code is in the 5xx range. Wartość domyślna to false.The default is false.
DiscoverMetadataByTokenIssuerDiscoverMetadataByTokenIssuer NieNo Wskazuje, czy metadane OIDC powinny być odnajdywane przy użyciu wystawcy w tokenie JWT.Indicates whether the OIDC metadata should be discovered by using the issuer in the JWT token.
IncludeClaimResolvingInClaimsHandlingIncludeClaimResolvingInClaimsHandling NieNo W przypadku oświadczeń wejściowych i wyjściowych określa, czy w profilu technicznym znajduje się rozpoznawanie oświadczeń .For input and output claims, specifies whether claims resolution is included in the technical profile. Możliwe wartości: true , lub false (wartość domyślna).Possible values: true, or false (default). Jeśli chcesz użyć programu rozpoznawania oświadczeń w profilu technicznym, ustaw dla tej opcji wartość true .If you want to use a claims resolver in the technical profile, set this to true.
token_endpoint_auth_methodtoken_endpoint_auth_method NieNo Określa sposób, w jaki Azure AD B2C wysyła nagłówek uwierzytelniania do punktu końcowego tokenu.Specifies how Azure AD B2C sends the authentication header to the token endpoint. Możliwe wartości: client_secret_post (domyślnie) i client_secret_basic (publiczna wersja zapoznawcza) private_key_jwt (publiczna wersja zapoznawcza).Possible values: client_secret_post (default), and client_secret_basic (public preview), private_key_jwt (public preview). Aby uzyskać więcej informacji, zobacz sekcję OpenID Connect Connect Client Authentication.For more information, see OpenID Connect client authentication section.
token_signing_algorithmtoken_signing_algorithm NieNo Określa algorytm podpisywania, który ma być używany, gdy token_endpoint_auth_method jest ustawiony na private_key_jwt .Specifies the signing algorithm to use when token_endpoint_auth_method is set to private_key_jwt. Możliwe wartości: RS256 (ustawienie domyślne) lub RS512 .Possible values: RS256 (default) or RS512.
SingleLogoutEnabledSingleLogoutEnabled NieNo Wskazuje, czy podczas logowania profil techniczny próbuje wylogować się z federacyjnych dostawców tożsamości.Indicates whether during sign-in the technical profile attempts to sign out from federated identity providers. Aby uzyskać więcej informacji, zobacz Azure AD B2C wylogowania sesji. Możliwe wartości: true (ustawienie domyślne) lub false .For more information, see Azure AD B2C session sign-out. Possible values: true (default), or false.
ReadBodyClaimsOnIdpRedirectReadBodyClaimsOnIdpRedirect NieNo Ustaw na true , aby odczytywać oświadczenia z treści odpowiedzi w przypadku przekierowania dostawcy tożsamości.Set to true to read claims from response body on identity provider redirect. Te metadane są używane z identyfikatorem Apple ID, gdzie oświadczenia zwracają w ładunku odpowiedzi.This metadata is used with Apple ID, where claims return in the response payload.
<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>

Elementy interfejsu użytkownikaUI elements

Przy użyciu poniższych ustawień można skonfigurować komunikat o błędzie wyświetlany w przypadku awarii.The following settings can be used to configure the error message displayed upon failure. Metadane należy skonfigurować w profilu technicznym OpenID Connect Connect.The metadata should be configured in the OpenID Connect technical profile. Komunikaty o błędach można lokalizować.The error messages can be localized.

AtrybutAttribute WymaganeRequired OpisDescription
UserMessageIfClaimsPrincipalDoesNotExistUserMessageIfClaimsPrincipalDoesNotExist NieNo Komunikat, który ma być wyświetlany użytkownikowi w przypadku, gdy w katalogu nie znaleziono konta o podanej nazwie użytkownika.The message to display to the user if an account with the provided username not found in the directory.
UserMessageIfInvalidPasswordUserMessageIfInvalidPassword NieNo Komunikat, który ma być wyświetlany użytkownikowi, jeśli hasło jest nieprawidłowe.The message to display to the user if the password is incorrect.
UserMessageIfOldPasswordUsedUserMessageIfOldPasswordUsed NieNo Komunikat, który ma być wyświetlany użytkownikowi w przypadku użycia starego hasła.The message to display to the user if an old password used.

Klucze kryptograficzneCryptographic keys

Element CryptographicKeys zawiera następujący atrybut:The CryptographicKeys element contains the following attribute:

AtrybutAttribute WymaganeRequired OpisDescription
client_secretclient_secret TakYes Klucz tajny klienta aplikacji dostawcy tożsamości.The client secret of the identity provider application. Ten klucz kryptograficzny jest wymagany tylko wtedy, gdy response_types metadanych ma ustawioną wartość code i token_endpoint_auth_method jest ustawiona na client_secret_post lub client_secret_basic .This cryptographic key is required only if the response_types metadata is set to code and token_endpoint_auth_method is set to client_secret_post or client_secret_basic. W takim przypadku Azure AD B2C wykonuje inne wywołanie wymiany kodu autoryzacji dla tokenu dostępu.In this case, Azure AD B2C makes another call to exchange the authorization code for an access token. Jeśli metadane są ustawione na wartość można id_token pominąć klucz kryptograficzny.If the metadata is set to id_token you can omit the cryptographic key.
assertion_signing_keyassertion_signing_key TakYes Klucz prywatny RSA, który będzie używany do podpisywania potwierdzenia klienta.The RSA private key which will be used to sign the client assertion. Ten klucz kryptograficzny jest wymagany tylko wtedy, gdy metadane token_endpoint_auth_method są ustawione na private_key_jwt .This cryptographic key is required only if the token_endpoint_auth_method metadata is set to private_key_jwt.

Identyfikator URI przekierowaniaRedirect Uri

Podczas konfigurowania identyfikatora URI przekierowania dostawcy tożsamości wprowadź wartość https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp .When you configure the redirect URI of your identity provider, enter https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp. Pamiętaj, aby zamienić na {your-tenant-name} nazwę dzierżawy.Make sure to replace {your-tenant-name} with your tenant's name. Identyfikator URI przekierowania musi zawierać tylko małe litery.The redirect URI needs to be in all lowercase.

Przykłady:Examples: