Informace o překladači deklarací identity ve vlastních zásadách Azure Active Directory B2C
Překladače deklarací identity ve vlastních zásadách Azure Active Directory B2C (Azure AD B2C) poskytují kontextové informace o žádosti o autorizaci, jako je název zásady, ID korelace požadavku, jazyk uživatelského rozhraní a další.
Chcete-li použít překladač deklarací identity ve vstupní nebo výstupní deklaraci identity, definujete řetězec ClaimType, v elementu ClaimsSchema a pak nastavíte DefaultValue na překladač deklarací identity ve vstupním nebo výstupním elementu deklarace identity. Azure AD B2C přečte hodnotu překladače deklarací identity a použije hodnotu v technickém profilu.
V následujícím příkladu je typ correlationId
deklarace identity definován s datovým typem string
.
<ClaimType Id="correlationId">
<DisplayName>correlationId</DisplayName>
<DataType>string</DataType>
<UserHelpText>Request correlation Id</UserHelpText>
</ClaimType>
V technickém profilu namapujte překladač deklarací identity na typ deklarace identity. Azure AD B2C naplní hodnotu překladače {Context:CorrelationId}
deklarací identity correlationId
a odešle deklaraci identity do technického profilu.
<InputClaim ClaimTypeReferenceId="correlationId" DefaultValue="{Context:CorrelationId}" />
Kultura
Následující tabulka uvádí překladače deklarací identity s informacemi o jazyce použitém v žádosti o autorizaci:
Deklarace identity | Popis | Příklad |
---|---|---|
{Culture:LanguageName} | Dvoumísmenný kód ISO pro jazyk. | en |
{Culture:LCID} | LCID kódu jazyka. | 1033 |
{Culture:RegionName} | Dvoumísmenný kód ISO pro oblast. | (USA) |
{Culture:RFC5646} | Kód jazyka RFC5646. | cs |
Podívejte se na živou ukázku překladačů deklarací identity jazykové verze.
Zásady
Následující tabulka uvádí překladače deklarací identity s informacemi o zásadách použitých v žádosti o autorizaci:
Deklarace identity | Popis | Příklad |
---|---|---|
{Policy:PolicyId} | Název zásady předávající strany. | B2C_1A_signup_signin |
{Policy:RelyingPartyTenantId} | ID tenanta zásad předávající strany. | your-tenant.onmicrosoft.com |
{Policy:TenantObjectId} | ID objektu tenanta zásad předávající strany. | 00000000-0000-0000-0000-000000000000 |
{Policy:TrustFrameworkTenantId} | ID tenanta architektury důvěryhodnosti. | your-tenant.onmicrosoft.com |
Podívejte se na živou ukázku překladačů deklarací zásad.
Kontext
Následující tabulka uvádí překladače kontextových deklarací identity žádosti o autorizaci:
Deklarace identity | Popis | Příklad |
---|---|---|
{Context:BuildNumber} | Verze rozhraní Identity Experience Framework (číslo buildu). | 1.0.507.0 |
{Context:CorrelationId} | ID korelace. | 00000000-0000-0000-0000-000000000000 |
{Context:DateTimeInUtc} | Datum a čas ve standardu UTC. | 10.10.2021 12:00:00 |
{Context:DeploymentMode} | Režim nasazení zásad. | Výroba |
{Context:HostName} | Název hostitele aktuálního požadavku. | contoso.b2clogin.com |
{Context:IPAddress} | IP adresa uživatele. | 11.111.111.11 |
{Context:KMSI} | Určuje, jestli je zaškrtnuté políčko Zůstat přihlášeni . | true |
Podívejte se na živou ukázku překladačů kontextových deklarací identity.
Žádosti
Tato část popisuje, jak získat hodnotu deklarace identity jako překladač deklarací identity.
Deklarace identity | Popis | Příklad |
---|---|---|
{Claim:claim type} | Identifikátor typu deklarace identity, který je již definován v oddílu ClaimsSchema v souboru zásad nebo nadřazeném souboru zásad. Příklad: {Claim:displayName} nebo {Claim:objectId} . |
Hodnota typu deklarace identity. |
OpenID Connect
Následující tabulka uvádí překladače deklarací identity s informacemi o žádosti o autorizaci OpenID Connect:
Deklarace identity | Popis | Příklad |
---|---|---|
{OIDC:AuthenticationContextReferences} | Parametr acr_values řetězce dotazu. |
– |
{OIDC:ClientId} | Parametr client_id řetězce dotazu. |
00000000-0000-0000-0000-000000000000 |
{OIDC:DomainHint} | Parametr domain_hint řetězce dotazu. |
facebook.com |
{OIDC:LoginHint} | Parametr login_hint řetězce dotazu. |
someone@contoso.com |
{OIDC:MaxAge} | max_age . |
– |
{OIDC:Nonce} | Parametr Nonce řetězce dotazu. |
defaultNonce |
{OIDC:Password} | Heslo uživatele toku přihlašovacích údajů vlastníka prostředku. | heslo 1 |
{OIDC:Prompt} | Parametr prompt řetězce dotazu. |
Přihlásit |
{OIDC:RedirectUri} | Parametr redirect_uri řetězce dotazu. |
https://jwt.ms |
{OIDC:Resource} | Parametr resource řetězce dotazu. |
– |
{OIDC:Scope} | Parametr scope řetězce dotazu. |
openid |
{OIDC:Username} | Uživatelské jméno uživatele toku přihlašovacích údajů pro heslo vlastníka prostředku. | emily@contoso.com |
{OIDC:IdToken} | Parametr id token řetězce dotazu. |
– |
Podívejte se na živou ukázku překladačů deklarací identity OpenID Connect.
Parametry klíč-hodnota OAuth2
Jakýkoli název parametru, který je součástí požadavku OIDC nebo OAuth2, lze namapovat na deklaraci identity na cestě uživatele. Například požadavek z aplikace může obsahovat parametr řetězce dotazu s názvem app_session
, loyalty_number
nebo libovolným vlastním řetězcem dotazu.
Deklarace identity | Popis | Příklad |
---|---|---|
{OAUTH-KV:campaignId} | Parametr řetězce dotazu. | Havaj |
{OAUTH-KV:app_session} | Parametr řetězce dotazu. | A3C5R |
{OAUTH-KV:loyalty_number} | Parametr řetězce dotazu. | 1 234 |
{OAUTH-KV:any custom query string} | Parametr řetězce dotazu. | – |
Parametry klíč-hodnota SAML
V žádosti o ověření SAML je možné namapovat jakýkoli název parametru, který je součástí požadavku, ale není specifický pro protokol (například SAMLRequest) na deklaraci identity na cestě uživatele. Požadavek může například obsahovat vlastní parametr, například username
. To platí jak pro požadavky SAML iniciované aktualizací SP, tak i požadavky SAML iniciované protokolem IDP.
Deklarace identity | Popis | Příklad |
---|---|---|
{SAML-KV:username} | Řetězec dotazu nebo parametr textu POST. | username@domain.com |
{SAML-KV:loyalty_number} | Řetězec dotazu nebo parametr textu POST. | 1 234 |
{SAML-KV:any custom query string} | Řetězec dotazu nebo parametr textu POST. | – |
SAML
Následující tabulka uvádí překladače deklarací identity s informacemi o žádosti o autorizaci SAML:
Deklarace identity | Popis | Příklad |
---|---|---|
{SAML:AuthnContextClassReferences} | Hodnota AuthnContextClassRef elementu z požadavku SAML. |
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport |
{SAML:NameIdPolicyFormat} | Atribut Format , z NameIDPolicy elementu požadavku SAML. |
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress |
{SAML:Issuer} | Hodnota elementu SAML Issuer požadavku SAML. |
https://contoso.com |
{SAML:AllowCreate} | Hodnota AllowCreate atributu NameIDPolicy z elementu požadavku SAML. |
True |
{SAML:ForceAuthn} | Hodnota ForceAuthN atributu AuthnRequest z elementu požadavku SAML. |
True |
{SAML:ProviderName} | Hodnota ProviderName atributu AuthnRequest z elementu požadavku SAML. |
Contoso.com |
{SAML:RelayState} | Parametr RelayState řetězce dotazu. |
|
{SAML:Subject} | Element Subject NameId požadavku SAML AuthN. |
|
{SAML:Binding} | Hodnota ProtocolBinding atributu AuthnRequest z elementu požadavku SAML. |
urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST |
Podívejte se na živou ukázku překladačů deklarací identity SAML.
Zprostředkovatel identity OAuth2
Následující tabulka uvádí překladače deklarací identity OAuth2:
Deklarace identity | Popis | Příklad |
---|---|---|
{oauth2:access_token} | Přístupový token zprostředkovatele identity OAuth2. Atribut access_token . |
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1Ni... |
{oauth2:token_type} | Typ přístupového tokenu. Atribut token_type . |
Nosič |
{oauth2:expires_in} | Doba platnosti přístupového tokenu v sekundách. Atribut expires_in . Datový typ výstupní deklarace identity musí být int nebo long . |
960000 |
{oauth2:refresh_token} | Obnovovací token zprostředkovatele identity OAuth2. Atribut refresh_token . |
eyJraWQiOiJacW9pQlp2TW5pYVc2MUY... |
Pokud chcete použít překladače deklarací identity OAuth2, nastavte atribut výstupní deklarace identity PartnerClaimType
na překladač deklarací identity. Následující příklad ukazuje, jak získat deklarace identity externího zprostředkovatele identity:
<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>
Použití překladačů deklarací identity
Překladače deklarací identity můžete použít s následujícími prvky:
Položka | Element (Prvek) | Nastavení |
---|---|---|
Technický profil Application Insights | InputClaim |
|
Technický profil Microsoft Entra | InputClaim , OutputClaim |
1, 2 |
Technický profil OAuth2 | InputClaim , OutputClaim |
1, 2 |
Technický profil OpenID Connect | InputClaim , OutputClaim |
1, 2 |
Technický profil transformace deklarací identity | InputClaim , OutputClaim |
1, 2 |
Technický profil poskytovatele RESTful | InputClaim |
1, 2 |
Technický profil zprostředkovatele identity SAML | OutputClaim |
1, 2 |
Technický profil s vlastním kontrolním výrazem | InputClaim , OutputClaim |
1, 2 |
ContentDefinition | LoadUri |
|
ContentDefinitionParameters | Parameter |
|
Technický profil RelyingParty | OutputClaim |
2 |
Nastavení:
- Metadata
IncludeClaimResolvingInClaimsHandling
musí být nastavena natrue
hodnotu . - Vstupní nebo výstupní atribut
AlwaysUseDefaultValue
deklarací identity musí být nastaven natrue
hodnotu .
Ukázky překladačů deklarací identity
Technický profil RESTful
V technickém profilu RESTful můžete chtít odeslat uživatelský jazyk, název zásady, obor a ID klienta. Na základě deklarací identity může rozhraní REST API spouštět vlastní obchodní logiku a v případě potřeby vyvolat lokalizovanou chybovou zprávu.
Následující příklad ukazuje technický profil RESTful s tímto scénářem:
<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>
Přímé přihlášení
Pomocí překladačů deklarací identity můžete předem zadat přihlašovací jméno nebo přímé přihlášení ke konkrétnímu poskytovateli sociální identity, jako je Facebook, LinkedIn nebo účet Microsoft. Další informace najdete v tématu Nastavení přímého přihlašování pomocí Azure Active Directory B2C.
Dynamické přizpůsobení uživatelského rozhraní
Azure AD B2C umožňuje předat parametry řetězce dotazu koncovým bodům definice obsahu HTML a dynamicky vykreslit obsah stránky. Tato funkce například umožňuje upravit obrázek pozadí na registrační nebo přihlašovací stránce Azure AD B2C na základě vlastního parametru, který předáváte z webové nebo mobilní aplikace. Další informace najdete v tématu Dynamické konfigurace uživatelského rozhraní pomocí vlastních zásad v Azure Active Directory B2C. Stránku HTML můžete také lokalizovat na základě parametru jazyka nebo můžete změnit obsah na základě ID klienta.
Následující příklad předá parametr řetězce dotazu s názvem campaignId s hodnotou Hawaii
, kód en-US
jazyka a aplikace představující ID klienta:
<UserJourneyBehaviors>
<ContentDefinitionParameters>
<Parameter Name="campaignId">{OAUTH-KV:campaignId}</Parameter>
<Parameter Name="language">{Culture:RFC5646}</Parameter>
<Parameter Name="app">{OIDC:ClientId}</Parameter>
</ContentDefinitionParameters>
</UserJourneyBehaviors>
V důsledku toho Azure AD B2C odešle výše uvedené parametry na stránku obsahu HTML:
/selfAsserted.aspx?campaignId=hawaii&language=en-US&app=0239a9cc-309c-4d41-87f1-31288feb2e82
Definice obsahu
V Objektu ContentDefinition LoadUri
můžete odesílat překladače deklarací identity, které na základě použitých parametrů načítá obsah z různých míst.
<ContentDefinition Id="api.signuporsignin">
<LoadUri>https://contoso.blob.core.windows.net/{Culture:LanguageName}/myHTML/unified.html</LoadUri>
...
</ContentDefinition>
Technický profil Application Insights
Pomocí Aplikace Azure lication Insights a překladačů deklarací identity můžete získat přehled o chování uživatelů. V technickém profilu Application Insights odešlete vstupní deklarace identity, které se zachovají do Aplikace Azure lication Insights. Další informace najdete v tématu Sledování chování uživatelů v cestách Azure AD B2C pomocí Application Insights. Následující příklad odešle ID zásady, ID korelace, jazyk a ID klienta do Aplikace Azure lication 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>
Zásady předávající strany
V technickém profilu zásad předávající strany můžete chtít odeslat ID tenanta nebo ID korelace do aplikace předávající strany v rámci 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>
Další kroky
- Další ukázky překladačů deklarací identity najdete v úložišti GitHub komunity Azure AD B2C.