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

Notitie

In Azure Active Directory B2C is een aangepast beleid voornamelijk bedoeld om complexe scenario's aan te pakken. Voor de meeste scenario's raden we u aan de 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 ondernemingsidentiteiten.

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. Maar mogelijk wilt u aanvullende parameters naar uw id-provider verzenden. In het volgende voorbeeld wordt de domain_hint querytekenreeksparameter met de waarde van contoso.com toegevoegd aan 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 claim displayName .
  • Het e-mailbericht zonder naamtoewijzing.

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

  • Claim identityProvider die de naam van de id-provider bevat.
  • De claim authenticationSource met 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 Yes De toepassings-id van de id-provider.
IdTokenAudience No 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 Yes 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 No Een URL die verwijst naar een autorisatie-eindpunt voor de configuratie van de OpenID Connect-id-provider. De waarde van authorization_endpoint metagegevens heeft voorrang op de authorization_endpoint die is opgegeven in het bekende OpenID-configuratie-eindpunt. De URL kan de {tenant} expressie bevatten, die wordt vervangen door de naam van de tenant.
end_session_endpoint No 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 bekende OpenID-configuratie-eindpunt.
uitgever No De unieke id van een OpenID Connect-id-provider. De waarde van metagegevens van de verlener heeft voorrang op de issuer die is opgegeven in het bekende OpenID-configuratie-eindpunt. Indien opgegeven, controleert Azure AD B2C of de iss claim in een token dat door de id-provider wordt geretourneerd, gelijk is aan het token dat is opgegeven in de metagegevens van de verlener.
ProviderName No De naam van de id-provider.
response_types No Het antwoordtype volgens de OpenID Connect Core 1.0-specificatie. Mogelijke waarden: id_token, codeof token.
response_mode No 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.
scope No Het bereik van de aanvraag dat is gedefinieerd volgens de OpenID Connect Core 1.0-specificatie. openidZoals , profileen email.
HttpBinding No De verwachte HTTP-binding voor de eindpunten van het toegangstoken en claimtoken. Mogelijke waarden: GET of POST.
ValidTokenIssuerPrefixes No Een sleutel die kan worden gebruikt om u aan te melden bij elk van de tenants wanneer u een id-provider voor meerdere tenants gebruikt, zoals Microsoft Entra-id.
UsePolicyInRedirectUri No Geeft aan of een beleid moet worden gebruikt bij het maken van de omleidings-URI. Wanneer u uw toepassing configureert in de id-provider, 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. Bijvoorbeeld: https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/{policy-name}/oauth2/authresp.
MarkAsFailureOnStatusCode5xx No Geeft aan of een aanvraag bij een externe service moet worden gemarkeerd als een fout als de HTTP-statuscode zich in het 5xx-bereik bevindt. De standaardwaarde is false.
DiscoverMetadataByTokenIssuer No Geeft aan of de OIDC-metagegevens moeten worden gedetecteerd met behulp van de verlener in het JWT-token. Als u de EINDPUNT-URL voor metagegevens wilt bouwen op basis van Verlener, stelt u deze in op true.
IncludeClaimResolvingInClaimsHandling No 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 No 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 No Hiermee geeft u het ondertekeningsalgoritme op dat moet worden gebruikt wanneer token_endpoint_auth_method is ingesteld op private_key_jwt. Mogelijke waarden: RS256 (standaard) of RS512.
SingleLogoutEnabled No 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 No Stel in op true om claims te lezen van de 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 voor het configureren van het foutbericht dat wordt weergegeven bij een fout. De metagegevens moeten worden geconfigureerd in het technische OpenID Connect-profiel. De foutberichten kunnen worden gelokaliseerd.

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

Cryptografische sleutels

Het element CryptographicKeys bevat het volgende kenmerk:

Kenmerk Vereist Beschrijving
client_secret Yes Het clientgeheim van de id-providertoepassing. Deze cryptografische sleutel is alleen vereist als de response_types metagegevens is ingesteld op code en token_endpoint_auth_method is ingesteld op client_secret_post of client_secret_basic. In dit geval voert Azure AD B2C nog een aanroep uit om de autorisatiecode uit te wisselen voor een toegangstoken. Als de metagegevens zijn ingesteld op id_token , kunt u de cryptografische sleutel weglaten.
assertion_signing_key Yes 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 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: