Om anspråkslösare i anpassade Azure Active Directory B2C-principer
Anspråksmatchare i anpassade Azure Active Directory B2C-principer (Azure AD B2C) ger kontextinformation om en auktoriseringsbegäran, till exempel principnamn, korrelations-ID för begäran, användargränssnittsspråk med mera.
Om du vill använda en anspråkslösare i ett indata- eller utdataanspråk definierar du en sträng ClaimType, under elementet ClaimsSchema , och sedan anger du DefaultValue till anspråkslösaren i indata- eller utdataanspråkelementet. Azure AD B2C läser värdet för anspråkslösaren och använder värdet i den tekniska profilen.
I följande exempel definieras en anspråkstyp med namnet correlationId
med datatypen string
.
<ClaimType Id="correlationId">
<DisplayName>correlationId</DisplayName>
<DataType>string</DataType>
<UserHelpText>Request correlation Id</UserHelpText>
</ClaimType>
I den tekniska profilen mappar du anspråkslösaren till anspråkstypen. Azure AD B2C fyller värdet för anspråkslösaren {Context:CorrelationId}
i anspråket correlationId
och skickar anspråket till den tekniska profilen.
<InputClaim ClaimTypeReferenceId="correlationId" DefaultValue="{Context:CorrelationId}" />
Kultur
I följande tabell visas anspråkslösare med information om det språk som används i auktoriseringsbegäran:
Anspråk | beskrivning | Exempel |
---|---|---|
{Kultur:LanguageName} | Iso-koden med två bokstäver för språket. | en |
{Kultur:LCID} | LCID för språkkod. | 1053 |
{Culture:RegionName} | Iso-koden med två bokstäver för regionen. | USA |
{Kultur:RFC5646} | Språkkoden RFC5646. | en-US |
Kolla in Live-demonstrationen av kulturanspråkslösare.
Policy
I följande tabell visas anspråkslösare med information om principen som används i auktoriseringsbegäran:
Anspråk | beskrivning | Exempel |
---|---|---|
{Policy:PolicyId} | Namnet på den förlitande partens princip. | B2C_1A_signup_signin |
{Policy:RelyingPartyTenantId} | Klientorganisations-ID:t för den förlitande partens princip. | your-tenant.onmicrosoft.com |
{Policy:TenantObjectId} | Klientobjekt-ID:t för den förlitande partens princip. | 00000000-0000-0000-0000-000000000000 |
{Policy:TrustFrameworkTenantId} | Klientorganisations-ID för förtroenderamverket. | your-tenant.onmicrosoft.com |
Kolla in livedemon för principanspråkslösare.
Kontext
I följande tabell visas de kontextuella anspråkslösare för auktoriseringsbegäran:
Anspråk | beskrivning | Exempel |
---|---|---|
{Context:BuildNumber} | Identity Experience Framework-versionen (versionsnummer). | 1.0.507.0 |
{Context:CorrelationId} | Korrelations-ID:t. | 00000000-0000-0000-0000-000000000000 |
{Context:DateTimeInUtc} | Datumtiden i UTC. | 2021-10-10 12:00:00 |
{Context:DeploymentMode} | Principdistributionsläget. | Produktion |
{Context:HostName} | Värdnamnet för den aktuella begäran. | contoso.b2clogin.com |
{Context:IPAddress} | Användarens IP-adress. | 11.111.111.11 |
{Kontext:KMSI} | Anger om kryssrutan Behåll mig inloggad är markerad. | true |
Kolla in livedemon för kontextanspråkslösare.
Anspråk
I det här avsnittet beskrivs hur du hämtar ett anspråksvärde som en anspråkslösare.
Anspråk | beskrivning | Exempel |
---|---|---|
{Anspråk:anspråkstyp} | En identifierare av en anspråkstyp som redan definierats i avsnittet ClaimsSchema i principfilen eller den överordnade principfilen. Till exempel: {Claim:displayName} , eller {Claim:objectId} . |
Ett anspråkstypvärde. |
OpenID Connect
I följande tabell visas anspråkslösare med information om OpenID Connect-auktoriseringsbegäran:
Anspråk | beskrivning | Exempel |
---|---|---|
{OIDC:AuthenticationContextReferences} | Frågesträngsparametern acr_values . |
Ej tillämpligt |
{OIDC:ClientId} | Frågesträngsparametern client_id . |
00000000-0000-0000-0000-000000000000 |
{OIDC:DomainHint} | Frågesträngsparametern domain_hint . |
facebook.com |
{OIDC:LoginHint} | Frågesträngsparametern login_hint . |
someone@contoso.com |
{OIDC:MaxAge} | max_age . |
Ej tillämpligt |
{OIDC:Nonce} | Frågesträngsparametern Nonce . |
defaultNonce |
{OIDC:Password} | Lösenordsautentiseringsuppgifterna för resursägaren flödar användarens lösenord. | password1 |
{OIDC:Prompt} | Frågesträngsparametern prompt . |
inloggning |
{OIDC:RedirectUri} | Frågesträngsparametern redirect_uri . |
https://jwt.ms |
{OIDC:Resource} | Frågesträngsparametern resource . |
Ej tillämpligt |
{OIDC:Scope} | Frågesträngsparametern scope . |
openid |
{OIDC:Username} | Resursägarens lösenordsuppgifter flödar användarens användarnamn. | emily@contoso.com |
{OIDC:IdToken} | Frågesträngsparametern id token . |
Ej tillämpligt |
Kolla in livedemon för OpenID Connect-anspråkslösare.
OAuth2-nyckelvärdesparametrar
Alla parameternamn som ingår som en del av en OIDC- eller OAuth2-begäran kan mappas till ett anspråk under användarresan. Till exempel kan begäran från programmet innehålla en frågesträngsparameter med namnet app_session
, loyalty_number
eller en anpassad frågesträng.
Anspråk | beskrivning | Exempel |
---|---|---|
{OAUTH-KV:campaignId} | En frågesträngsparameter. | Hawaii |
{OAUTH-KV:app_session} | En frågesträngsparameter. | A3C5R |
{OAUTH-KV:loyalty_number} | En frågesträngsparameter. | 1234 |
{OAUTH-KV:any custom query string} | En frågesträngsparameter. | Ej tillämpligt |
SAML-nyckelvärdesparametrar
I en SAML-autentiseringsbegäran kan alla parameternamn som ingår i begäran, men som inte är specifika för protokollet (till exempel SAMLRequest) mappas till ett anspråk under användarresan. Begäran kan till exempel innehålla en anpassad parameter, username
till exempel . Detta gäller både SP-initierade och IDP-initierade SAML-begäranden.
Anspråk | beskrivning | Exempel |
---|---|---|
{SAML-KV:username} | En frågesträng eller POST-brödtextparameter. | username@domain.com |
{SAML-KV:loyalty_number} | En frågesträng eller POST-brödtextparameter. | 1234 |
{SAML-KV:any custom query string} | En frågesträng eller POST-brödtextparameter. | Ej tillämpligt |
SAML
I följande tabell visas anspråkslösare med information om SAML-auktoriseringsbegäran:
Anspråk | beskrivning | Exempel |
---|---|---|
{SAML:AuthnContextClassReferences} | Elementvärdet AuthnContextClassRef från SAML-begäran. |
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport |
{SAML:NameIdPolicyFormat} | Attributet Format från elementet NameIDPolicy i SAML-begäran. |
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress |
{SAML:Issuer} | SAML-elementvärdet Issuer för SAML-begäran. |
https://contoso.com |
{SAML:AllowCreate} | Attributvärdet AllowCreate från elementet NameIDPolicy i SAML-begäran. |
Sant |
{SAML:ForceAuthn} | Attributvärdet ForceAuthN från elementet AuthnRequest i SAML-begäran. |
Sant |
{SAML:ProviderName} | Attributvärdet ProviderName från elementet AuthnRequest i SAML-begäran. |
Contoso.com |
{SAML:RelayState} | Frågesträngsparametern RelayState . |
|
{SAML:Subject} | Subject Från NameId-elementet i SAML AuthN-begäran. |
|
{SAML:Binding} | Attributvärdet ProtocolBinding från elementet AuthnRequest i SAML-begäran. |
urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST |
Kolla in livedemon för SAML-anspråkslösare.
OAuth2-identitetsprovider
I följande tabell visas anspråkslösare för OAuth2-identitetsprovidern :
Anspråk | beskrivning | Exempel |
---|---|---|
{oauth2:access_token} | Åtkomsttoken för OAuth2-identitetsprovidern. Attributet access_token . |
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1Ni... |
{oauth2:token_type} | Typ av åtkomsttoken. Attributet token_type . |
Bärare |
{oauth2:expires_in} | Hur lång tid åtkomsttoken är giltig i sekunder. Attributet expires_in . Utdataanspråket DataType måste vara int eller long . |
960000 |
{oauth2:refresh_token} | Uppdateringstoken för OAuth2-identitetsprovidern. Attributet refresh_token . |
eyJraWQiOiJacW9pQlp2TW5pYVc2MUY... |
Om du vill använda OAuth2-identitetsproviderns anspråkslösare anger du utdataanspråkets attribut till anspråkslösaren PartnerClaimType
. I följande exempel visas hur du hämtar anspråk för den externa identitetsprovidern:
<ClaimsProvider>
<DisplayName>Contoso</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="Contoso-OAUTH">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="{oauth2:access_token}" />
<OutputClaim ClaimTypeReferenceId="identityProviderAccessTokenType" PartnerClaimType="{oauth2:token_type}" />
<OutputClaim ClaimTypeReferenceId="identityProviderAccessTokenExpiresIn" PartnerClaimType="{oauth2:expires_in}" />
<OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="{oauth2:refresh_token}" />
</OutputClaims>
...
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Använda anspråkslösare
Du kan använda anspråkslösare med följande element:
Artikel | Element | Inställningar |
---|---|---|
Teknisk profil för Application Insights | InputClaim |
|
Teknisk profil för Microsoft Entra | InputClaim , OutputClaim |
1, 2 |
Teknisk OAuth2-profil | InputClaim , OutputClaim |
1, 2 |
Teknisk profil för OpenID Connect | InputClaim , OutputClaim |
1, 2 |
Teknisk profil för anspråkstransformering | InputClaim , OutputClaim |
1, 2 |
Teknisk profil för RESTful-provider | InputClaim |
1, 2 |
Teknisk profil för SAML-identitetsprovider | OutputClaim |
1, 2 |
Egensäkrad teknisk profil | InputClaim , OutputClaim |
1, 2 |
ContentDefinition | LoadUri |
|
ContentDefinitionParameters | Parameter |
|
Teknisk profil för RelyingParty | OutputClaim |
2 |
Inställningar:
- Metadata
IncludeClaimResolvingInClaimsHandling
måste anges tilltrue
. - Attributet
AlwaysUseDefaultValue
för indata- eller utdataanspråk måste vara inställt påtrue
.
Exempel på anspråkslösare
RESTful teknisk profil
I en RESTful-teknisk profil kanske du vill skicka användarspråket, principnamnet, omfånget och klient-ID:t. Baserat på anspråken kan REST-API:et köra anpassad affärslogik och vid behov generera ett lokaliserat felmeddelande.
I följande exempel visas en RESTful-teknisk profil med det här scenariot:
<TechnicalProfile Id="REST">
<DisplayName>Validate user input data and return loyaltyNumber claim</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ServiceUrl">https://your-app.azurewebsites.net/api/identity</Item>
<Item Key="AuthenticationType">None</Item>
<Item Key="SendClaimsIn">Body</Item>
<Item Key="IncludeClaimResolvingInClaimsHandling">true</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="userLanguage" DefaultValue="{Culture:LCID}" AlwaysUseDefaultValue="true" />
<InputClaim ClaimTypeReferenceId="policyName" DefaultValue="{Policy:PolicyId}" AlwaysUseDefaultValue="true" />
<InputClaim ClaimTypeReferenceId="scope" DefaultValue="{OIDC:Scope}" AlwaysUseDefaultValue="true" />
<InputClaim ClaimTypeReferenceId="clientId" DefaultValue="{OIDC:ClientId}" AlwaysUseDefaultValue="true" />
</InputClaims>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
Direkt inloggning
Med hjälp av anspråksmatchare kan du fylla i inloggningsnamnet i förväg eller direkt logga in på en specifik social identitetsprovider, till exempel Facebook, LinkedIn eller ett Microsoft-konto. Mer information finns i Konfigurera direkt inloggning med Azure Active Directory B2C.
Dynamisk anpassning av användargränssnittet
Med Azure AD B2C kan du skicka frågesträngsparametrar till html-innehållsdefinitionens slutpunkter för att dynamiskt återge sidinnehållet. Med den här funktionen kan du till exempel ändra bakgrundsbilden på registrerings- eller inloggningssidan för Azure AD B2C baserat på en anpassad parameter som du skickar från ditt webb- eller mobilprogram. Mer information finns i Konfigurera användargränssnittet dynamiskt med hjälp av anpassade principer i Azure Active Directory B2C. Du kan också lokalisera HTML-sidan baserat på en språkparameter, eller så kan du ändra innehållet baserat på klient-ID:t.
I följande exempel skickas frågesträngsparametern med namnet campaignId med värdet Hawaii
, en språkkod för en-US
och en app som representerar klient-ID:t:
<UserJourneyBehaviors>
<ContentDefinitionParameters>
<Parameter Name="campaignId">{OAUTH-KV:campaignId}</Parameter>
<Parameter Name="language">{Culture:RFC5646}</Parameter>
<Parameter Name="app">{OIDC:ClientId}</Parameter>
</ContentDefinitionParameters>
</UserJourneyBehaviors>
Därför skickar Azure AD B2C ovanstående parametrar till HTML-innehållssidan:
/selfAsserted.aspx?campaignId=hawaii&language=en-US&app=0239a9cc-309c-4d41-87f1-31288feb2e82
Innehållsdefinition
I en ContentDefinition LoadUri
kan du skicka anspråksmatchare för att hämta innehåll från olika platser, baserat på de parametrar som används.
<ContentDefinition Id="api.signuporsignin">
<LoadUri>https://contoso.blob.core.windows.net/{Culture:LanguageName}/myHTML/unified.html</LoadUri>
...
</ContentDefinition>
Teknisk profil för Application Insights
Med Azure Application Insights och anspråkslösare kan du få insikter om användarbeteende. I den tekniska Application Insights-profilen skickar du indataanspråk som sparas till Azure Application Insights. Mer information finns i Spåra användarbeteende i Azure AD B2C-resor med hjälp av Application Insights. I följande exempel skickas princip-ID, korrelations-ID, språk och klient-ID till Azure Application Insights.
<TechnicalProfile Id="AzureInsights-Common">
<DisplayName>Alternate Email</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.Insights.AzureApplicationInsightsProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
...
<InputClaims>
<InputClaim ClaimTypeReferenceId="PolicyId" PartnerClaimType="{property:Policy}" DefaultValue="{Policy:PolicyId}" />
<InputClaim ClaimTypeReferenceId="CorrelationId" PartnerClaimType="{property:CorrelationId}" DefaultValue="{Context:CorrelationId}" />
<InputClaim ClaimTypeReferenceId="language" PartnerClaimType="{property:language}" DefaultValue="{Culture:RFC5646}" />
<InputClaim ClaimTypeReferenceId="AppId" PartnerClaimType="{property:App}" DefaultValue="{OIDC:ClientId}" />
</InputClaims>
</TechnicalProfile>
Princip för förlitande part
I en teknisk profil för förlitande partprincip kanske du vill skicka klientorganisations-ID:t eller korrelations-ID:t till det förlitande partprogrammet i JWT.
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="email" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
<OutputClaim ClaimTypeReferenceId="identityProvider" />
<OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
<OutputClaim ClaimTypeReferenceId="correlationId" AlwaysUseDefaultValue="true" DefaultValue="{Context:CorrelationId}" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
Nästa steg
- Hitta fler exempel på anspråkslösare på GitHub-lagringsplatsen för Azure AD B2C-communityn