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 OpenIdConnect
bijvoorbeeld :
<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 , code of 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.
openid Zoals , profile en 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: