Delen via


Een technisch OpenID Connect-profiel definiëren in een aangepast Azure Active Directory B2C-beleid

Notitie

In Azure Active Directory B2C is aangepast beleid voornamelijk bedoeld om met complexe scenario's om te gaan. Voor de meeste scenario's wordt aangeraden ingebouwde gebruikersstromen te gebruiken. Als u dit nog niet hebt gedaan, vindt u meer informatie over aangepast beleid in het starterspakket in Aan de slag met aangepaste beleidsregels in Active Directory B2C.

Azure Active Directory B2C (Azure AD B2C) biedt ondersteuning voor de OpenID Connect-protocolidentiteitsprovider . OpenID Connect 1.0 definieert een identiteitslaag boven op OAuth 2.0 en vertegenwoordigt de state of the art in moderne verificatieprotocollen. Met een technisch OpenID Connect-profiel kunt u federeren met een op OpenID Connect gebaseerde id-provider, zoals Microsoft Entra-id. Door te federeren met een id-provider kunnen gebruikers zich aanmelden met hun bestaande sociale of zakelijke identiteiten.

Protocol

Het kenmerk Naam van het element Protocol moet worden ingesteld op OpenIdConnect. Het protocol voor het technische profiel MSA-OIDC is OpenIdConnectbijvoorbeeld:

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

Invoerclaims

De elementen InputClaims en InputClaimsTransformations zijn niet vereist. U kunt echter aanvullende parameters naar uw id-provider verzenden. In het volgende voorbeeld wordt de parameter domain_hint querytekenreeks toegevoegd met de waarde van contoso.com de autorisatieaanvraag.

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

Uitvoerclaims

Het element OutputClaims bevat een lijst met claims die worden geretourneerd door de OpenID Connect-id-provider. Mogelijk moet u de naam van de claim die in uw beleid is gedefinieerd toewijzen aan de naam gedefinieerd in de id-provider. U kunt ook claims opnemen die niet worden geretourneerd door de id-provider, zolang u het DefaultValue kenmerk instelt.

Het element OutputClaimsTransformations kan een verzameling OutputClaimsTransformation-elementen bevatten die worden gebruikt om uitvoerclaims te wijzigen of nieuwe te genereren.

In het volgende voorbeeld ziet u de claims die worden geretourneerd door de id-provider van het Microsoft-account:

  • De subclaim die is toegewezen aan de claim issuerUserId .
  • De naamclaim die is toegewezen aan de displayName-claim .
  • Het e-mailbericht zonder naamtoewijzing.

Het technische profiel retourneert ook claims die niet worden geretourneerd door de id-provider:

  • De claim identityProvider die de naam van de id-provider bevat.
  • De claim authenticationSource met een standaardwaarde 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>

Metagegevens

Kenmerk Vereist Beschrijving
client_id Ja De toepassings-id van de id-provider.
IdTokenAudience Nee Het publiek van de id_token. Indien opgegeven, controleert Azure AD B2C of de aud claim in een token dat door de id-provider wordt geretourneerd, gelijk is aan de claim die is opgegeven in de idTokenAudience-metagegevens.
METAGEGEVENS Ja Een URL die verwijst naar een OpenID Connect id-provider configuratiedocument, dat ook wel een bekend OpenID-configuratie-eindpunt wordt genoemd. De URL kan de {tenant} expressie bevatten, die wordt vervangen door de naam van de tenant.
authorization_endpoint Nee Een URL die verwijst naar een configuratie-eindpunt van de OpenID Connect-id-provider. De waarde van authorization_endpoint metagegevens heeft voorrang op de authorization_endpoint opgegeven waarde in het OpenID-configuratie-eindpunt. De URL kan de {tenant} expressie bevatten, die wordt vervangen door de naam van de tenant.
end_session_endpoint Nee De URL van het eindpunt van de eindsessie. De waarde van end_session_endpoint metagegevens heeft voorrang op de end_session_endpoint opgegeven in het OpenID-configuratie-eindpunt.
Uitgevende instelling Nee De unieke id van een OpenID Connect-id-provider. De waarde van metagegevens van de verlener heeft voorrang op de issuer opgegeven in het OpenID-bekende configuratie-eindpunt. Indien opgegeven, controleert Azure AD B2C of de iss claim in een token dat wordt geretourneerd door de id-provider gelijk is aan de claim die is opgegeven in de metagegevens van de verlener.
ProviderName Nee De naam van de id-provider.
response_types Nee Het antwoordtype volgens de OpenID Connect Core 1.0-specificatie. Mogelijke waarden: id_token, codeof token.
response_mode Nee De methode die de id-provider gebruikt om het resultaat terug te sturen naar Azure AD B2C. Mogelijke waarden: query, form_post (standaard) of fragment.
bereik Nee Het bereik van de aanvraag die is gedefinieerd volgens de OpenID Connect Core 1.0-specificatie. openidZoals , profileen email.
HttpBinding Nee De verwachte HTTP-binding met het toegangstoken en claimtokeneindpunten. Mogelijke waarden: GET of POST.
ValidTokenIssuerPrefixes Nee Een sleutel die kan worden gebruikt om u aan te melden bij elk van de tenants wanneer u een id-provider met meerdere tenants zoals Microsoft Entra-id gebruikt.
UsePolicyInRedirectUri Nee Geeft aan of een beleid moet worden gebruikt bij het maken van de omleidings-URI. Wanneer u uw toepassing in de id-provider configureert, moet u de omleidings-URI opgeven. De omleidings-URI verwijst naar Azure AD B2C, https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp. Als u opgeeft true, moet u een omleidings-URI toevoegen voor elk beleid dat u gebruikt. Voorbeeld: https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/{policy-name}/oauth2/authresp.
MarkAsFailureOnStatusCode5xx Nee Geeft aan of een aanvraag voor een externe service moet worden gemarkeerd als een fout als de HTTP-statuscode zich in het bereik van 5xx bevindt. De standaardwaarde is false.
DiscoverMetadataByTokenIssuer Nee Geeft aan of de OIDC-metagegevens moeten worden gedetecteerd met behulp van de verlener in het JWT-token. Als u de URL van het metagegevenseindpunt wilt bouwen op basis van Verlener, stelt u dit in op true.
IncludeClaimResolvingInClaimsHandling Nee Geeft voor de invoer- en uitvoerclaims aan of claimsoplossing is opgenomen in het technische profiel. Mogelijke waarden: true of false (standaard). Als u een claimsresolver wilt gebruiken in het technische profiel, stel dit in op true.
token_endpoint_auth_method Nee Hiermee geeft u op hoe Azure AD B2C de verificatieheader naar het tokeneindpunt verzendt. Mogelijke waarden: client_secret_post (standaard) en client_secret_basic, private_key_jwt. Zie de sectie OpenID Connect-clientverificatie voor meer informatie.
token_signing_algorithm Nee Hiermee geeft u het ondertekeningsalgoritme dat moet worden gebruikt wanneer token_endpoint_auth_method deze is ingesteld op private_key_jwt. Mogelijke waarden: RS256 (standaard) of RS512.
SingleLogoutEnabled Nee Hiermee wordt aangegeven of tijdens het aanmelden van het technische profiel wordt geprobeerd om zich af te melden bij federatieve id-providers. Raadpleeg Azure AD B2C-sessie afmelden voor meer informatie. Mogelijke waarden: true (standaard) of false.
ReadBodyClaimsOnIdpRedirect Nee Ingesteld op het true lezen van claims uit antwoordtekst bij omleiding van id-provider. Deze metagegevens worden gebruikt met Apple ID, waarbij claims worden geretourneerd in de nettolading van het antwoord.
<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>

UI-elementen

De volgende instellingen kunnen worden gebruikt om het foutbericht te configureren dat wordt weergegeven bij een fout. De metagegevens moeten worden geconfigureerd in het technische profiel van OpenID Connect. De foutberichten kunnen worden gelokaliseerd.

Kenmerk Vereist Beschrijving
UserMessageIfClaimsPrincipalDoesNotExist Nee Het bericht dat aan de gebruiker moet worden weergegeven als een account met de opgegeven gebruikersnaam niet in de map is gevonden.
UserMessageIfInvalidPassword Nee Het bericht dat aan de gebruiker moet worden weergegeven als het wachtwoord onjuist is.
UserMessageIfOldPasswordUsed Nee Het bericht dat aan de gebruiker moet worden weergegeven als een oud wachtwoord is gebruikt.

Cryptografische sleutels

Het element CryptographicKeys bevat het volgende kenmerk:

Kenmerk Vereist Beschrijving
client_secret Ja Het clientgeheim van de id-providertoepassing. Deze cryptografische sleutel is alleen vereist als de response_types metagegevens zijn ingesteld op code en token_endpoint_auth_method is ingesteld client_secret_post op of client_secret_basic. In dit geval roept Azure AD B2C nog een aanroep uit om de autorisatiecode voor een toegangstoken uit te wisselen. Als de metagegevens zijn ingesteld op id_token u kunt de cryptografische sleutel weglaten.
assertion_signing_key Ja De persoonlijke RSA-sleutel die wordt gebruikt om de clientverklaring te ondertekenen. Deze cryptografische sleutel is alleen vereist als de token_endpoint_auth_method metagegevens zijn ingesteld op private_key_jwt.

Omleidings-URI

Wanneer u de omleidings-URI van uw id-provider configureert, voert u dit in https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp. Zorg ervoor dat u vervangt door {your-tenant-name} de naam van uw tenant. De omleidings-URI moet in kleine letters staan.

Voorbeelden: