Definiera en teknisk OpenID Connect-profil i en anpassad Azure Active Directory B2C-princip
Anteckning
I Azure Active Directory B2C är anpassade principer främst utformade för att hantera komplexa scenarier. I de flesta scenarier rekommenderar vi att du använder inbyggda användarflöden. Om du inte har gjort det kan du läsa mer om startpaketet för anpassad princip i Kom igång med anpassade principer i Active Directory B2C.
Azure Active Directory B2C (Azure AD B2C) har stöd för OpenID Connect-protokollidentitetsprovidern. OpenID Connect 1.0 definierar ett identitetslager ovanpå OAuth 2.0 och representerar den senaste tekniken i moderna autentiseringsprotokoll. Med en teknisk OpenID Connect-profil kan du federera med en OpenID Connect-baserad identitetsprovider, till exempel Microsoft Entra-ID. Om du federerar med en identitetsprovider kan användarna logga in med sina befintliga sociala identiteter eller företagsidentiteter.
Protokoll
Attributet Name för protocol-elementet måste anges till .OpenIdConnect
Protokollet för den tekniska MSA-OIDC-profilen är OpenIdConnect
till exempel :
<TechnicalProfile Id="MSA-OIDC">
<DisplayName>Microsoft Account</DisplayName>
<Protocol Name="OpenIdConnect" />
...
Indataanspråk
Elementen InputClaims och InputClaimsTransformations krävs inte. Men du kanske vill skicka ytterligare parametrar till din identitetsprovider. I följande exempel läggs parametern domain_hint frågesträng till med värdet contoso.com
för i auktoriseringsbegäran.
<InputClaims>
<InputClaim ClaimTypeReferenceId="domain_hint" DefaultValue="contoso.com" />
</InputClaims>
Utdataanspråk
Elementet OutputClaims innehåller en lista över anspråk som returneras av OpenID Connect-identitetsprovidern. Du kan behöva mappa namnet på anspråket som definierats i principen till namnet som definierats i identitetsprovidern. Du kan också inkludera anspråk som inte returneras av identitetsprovidern, så länge du anger DefaultValue
attributet.
Elementet OutputClaimsTransformations kan innehålla en samling OutputClaimsTransformation-element som används för att ändra utdataanspråken eller generera nya.
I följande exempel visas de anspråk som returneras av Microsoft-kontoidentitetsprovidern:
- Det underanspråk som är mappat till issuerUserId-anspråket .
- Namnanspråket som är mappat till displayName-anspråket.
- E-postmeddelandet utan namnmappning.
Den tekniska profilen returnerar också anspråk som inte returneras av identitetsprovidern:
- IdentityProvider-anspråket som innehåller namnet på identitetsprovidern.
- AuthenticationSource-anspråket med standardvärdet 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>
Metadata
Attribut | Krävs | Beskrivning |
---|---|---|
client_id | Yes | Programidentifieraren för identitetsprovidern. |
IdTokenAudience | No | Publiken på id_token. Om det anges kontrollerar Azure AD B2C om anspråket aud i en token som returneras av identitetsprovidern är lika med det som anges i metadata för IdTokenAudience. |
METADATA | Yes | En URL som pekar på ett konfigurationsdokument för OpenID Connect-identitetsprovidern, som även kallas openID välkänd konfigurationsslutpunkt. URL:en kan innehålla uttrycket {tenant} , som ersätts med klientorganisationens namn. |
authorization_endpoint | No | En URL som pekar på en slutpunkt för konfigurationsauktorisering för OpenID Connect-identitetsprovider. Värdet för authorization_endpoint metadata har företräde framför det authorization_endpoint som anges i den välkända OpenID-konfigurationsslutpunkten. URL:en kan innehålla uttrycket {tenant} , som ersätts med klientorganisationens namn. |
end_session_endpoint | No | URL:en för slutsessionens slutpunkt. Värdet för end_session_endpoint metadata har företräde framför det end_session_endpoint som anges i den välkända OpenID-konfigurationsslutpunkten. |
utfärdare | No | Den unika identifieraren för en OpenID Connect-identitetsprovider. Värdet för utfärdarmetadata har företräde framför det issuer som anges i den välkända OpenID-konfigurationsslutpunkten. Om det anges kontrollerar Azure AD B2C om anspråket iss i en token som returneras av identitetsprovidern är lika med det som anges i utfärdarmetadata. |
ProviderName | No | Namnet på identitetsprovidern. |
response_types | No | Svarstypen enligt OpenID Connect Core 1.0-specifikationen. Möjliga värden: id_token , code eller token . |
response_mode | No | Den metod som identitetsprovidern använder för att skicka tillbaka resultatet till Azure AD B2C. Möjliga värden: query , form_post (standard) eller fragment . |
omfång | No | Omfånget för den begäran som definieras enligt OpenID Connect Core 1.0-specifikationen. Till exempel openid , profile och email . |
HttpBinding | No | Den förväntade HTTP-bindningen till åtkomsttoken och anspråkstokens slutpunkter. Möjliga värden: GET eller POST . |
ValidTokenIssuerPrefixes | No | En nyckel som kan användas för att logga in på var och en av klienterna när du använder en identitetsprovider för flera klientorganisationer, till exempel Microsoft Entra-ID. |
UsePolicyInRedirectUri | No | Anger om du vill använda en princip när du skapar omdirigerings-URI:n. När du konfigurerar ditt program i identitetsprovidern måste du ange omdirigerings-URI:n. Omdirigerings-URI:n pekar på Azure AD B2C, https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp . Om du anger true måste du lägga till en omdirigerings-URI för varje princip som du använder. Exempel: https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/{policy-name}/oauth2/authresp . |
MarkAsFailureOnStatusCode5xx | No | Anger om en begäran till en extern tjänst ska markeras som ett fel om Http-statuskoden ligger i 5xx-intervallet. Standardvärdet är false . |
DiscoverMetadataByTokenIssuer | No | Anger om OIDC-metadata ska identifieras med hjälp av utfärdaren i JWT-token. Om du behöver skapa metadataslutpunkts-URL:en baserat på utfärdaren anger du detta till true . |
IncludeClaimResolvingInClaimsHandling | No | För indata- och utdataanspråk anger om anspråksmatchning ingår i den tekniska profilen. Möjliga värden: true , eller false (standard). Om du vill använda en anspråkslösare i den tekniska profilen anger du detta till true . |
token_endpoint_auth_method | No | Anger hur Azure AD B2C skickar autentiseringshuvudet till tokenslutpunkten. Möjliga värden: client_secret_post (standard) och client_secret_basic , private_key_jwt . Mer information finns i avsnittet Om OpenID Connect-klientautentisering. |
token_signing_algorithm | No | Anger signeringsalgoritmen som ska användas när token_endpoint_auth_method är inställd på private_key_jwt . Möjliga värden: RS256 (standard) eller RS512 . |
SingleLogoutEnabled | No | Anger om den tekniska profilen försöker logga ut från federerade identitetsprovidrar under inloggningen. Mer information finns i logga ut Azure AD B2C-session. Möjliga värden: true (standard) eller false . |
ReadBodyClaimsOnIdpRedirect | No | Ange till för true att läsa anspråk från svarstexten vid omdirigering av identitetsprovider. Dessa metadata används med Apple-ID, där anspråk returneras i svarsnyttolasten. |
<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>
Element för användargränssnitt
Följande inställningar kan användas för att konfigurera felmeddelandet som visas vid fel. Metadata ska konfigureras i den tekniska openID Connect-profilen. Felmeddelandena kan lokaliseras.
Attribut | Krävs | Beskrivning |
---|---|---|
UserMessageIfClaimsPrincipalDoesNotExist | No | Meddelandet som ska visas för användaren om ett konto med det angivna användarnamnet inte hittades i katalogen. |
UserMessageIfInvalidPassword | No | Meddelandet som ska visas för användaren om lösenordet är felaktigt. |
UserMessageIfOldPasswordUsed | No | Meddelandet som ska visas för användaren om ett gammalt lösenord används. |
Krypteringsnycklar
Elementet CryptographicKeys innehåller följande attribut:
Attribut | Krävs | Beskrivning |
---|---|---|
client_secret | Yes | Klienthemligheten för identitetsproviderprogrammet. Den här kryptografiska nyckeln krävs bara om response_types metadata har angetts till code och token_endpoint_auth_method har angetts till client_secret_post eller client_secret_basic . I det här fallet gör Azure AD B2C ytterligare ett anrop för att byta auktoriseringskoden mot en åtkomsttoken. Om metadata är inställda på id_token kan du utelämna den kryptografiska nyckeln. |
assertion_signing_key | Yes | Den privata RSA-nyckeln som ska användas för att signera klientför försäkran. Den här kryptografiska nyckeln krävs bara om token_endpoint_auth_method metadata är inställt på private_key_jwt . |
Omdirigerings-URI
När du konfigurerar omdirigerings-URI för din identitetsprovider anger du https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp
. Ersätt {your-tenant-name}
med klientorganisationens namn. Omdirigerings-URI:n måste vara i gemener.
Exempel: