Dela via


Definiera en teknisk OpenID Connect-profil i en anpassad Azure Active Directory B2C-princip

Kommentar

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) tillhandahåller 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. Federering med en identitetsprovider gör det möjligt för användare att logga in med sina befintliga sociala identiteter eller företagsidentiteter.

Protokoll

Attributet Namn för protokollelementet måste anges till OpenIdConnect. Protokollet för den tekniska MSA-OIDC-profilen är OpenIdConnecttill 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 med värdet contoso.com för till auktoriseringsbegäran.

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

Utdataanspråk

OutputClaims-elementet 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 det namn 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 mappas till utfärdarenUserId-anspråket.
  • Namnanspråket som mappas 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 Obligatoriskt Beskrivning
client_id Ja Programidentifieraren för identitetsprovidern.
IdTokenAudience Nej Målgruppen för 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 Ja 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 Nej 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 Nej 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 Nej 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 Nej Namnet på identitetsprovidern.
response_types Nej Svarstypen enligt OpenID Connect Core 1.0-specifikationen. Möjliga värden: id_token, codeeller token.
response_mode Nej 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.
omfattning Nej Omfånget för den begäran som definieras enligt OpenID Connect Core 1.0-specifikationen. Till exempel openid, profileoch email.
HttpBinding Nej Den förväntade HTTP-bindningen till åtkomsttoken och anspråkstokens slutpunkter. Möjliga värden: GET eller POST.
ValidTokenIssuerPrefixes Nej 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 Nej 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 truemå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 Nej 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 Nej Anger om OIDC-metadata ska identifieras med hjälp av utfärdaren i JWT-token. Om du behöver skapa url:en för metadataslutpunkten baserat på utfärdaren anger du detta till true.
IncludeClaimResolvingInClaimsHandling Nej 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 Nej 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 OpenID Connect-klientautentisering.
token_signing_algorithm Nej Anger den signeringsalgoritm 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 Nej Anger om den tekniska profilen under inloggningen försöker logga ut från federerade identitetsprovidrar. Mer information finns i Azure AD B2C-sessionsinloggning. Möjliga värden: true (standard) eller false.
ReadBodyClaimsOnIdpRedirect Nej Ange till för att true 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>

Användargränssnittselement

Följande inställningar kan användas för att konfigurera felmeddelandet som visas vid fel. Metadata ska konfigureras i den tekniska profilen OpenID Connect. Felmeddelandena kan lokaliseras.

Attribut Obligatoriskt Beskrivning
UserMessageIfClaimsPrincipalDoesNotExist Nej Meddelandet som ska visas för användaren om ett konto med det angivna användarnamnet inte hittades i katalogen.
UserMessageIfInvalidPassword Nej Meddelandet som ska visas för användaren om lösenordet är felaktigt.
UserMessageIfOldPasswordUsed Nej Meddelandet som ska visas för användaren om ett gammalt lösenord används.

Krypteringsnycklar

CryptographicKeys-elementet innehåller följande attribut:

Attribut Obligatoriskt Beskrivning
client_secret Ja Klienthemligheten för identitetsproviderprogrammet. Den här kryptografiska nyckeln krävs endast 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 Ja Den privata RSA-nyckeln som ska användas för att signera klientkontroll. Den här kryptografiska nyckeln krävs endast om token_endpoint_auth_method metadata har angetts till private_key_jwt.

Omdirigerings-URI

När du konfigurerar omdirigerings-URI:n 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 finnas i alla gemener.

Exempel: