Jogcímátalakítási műszaki profil definiálása egyéni Azure Active Directory B2C-szabályzatban
Megjegyzés
Az Azure Active Directory B2C-ben az egyéni szabályzatok elsősorban összetett forgatókönyvek kezelésére szolgálnak. A legtöbb esetben javasoljuk, hogy beépített felhasználói folyamatokat használjon. Ha még nem tette meg, tekintse meg az egyéni szabályzatok kezdőcsomagját az Egyéni szabályzatok használatának első lépései az Active Directory B2C-ben című témakörben.
A jogcímátalakítás technikai profilja lehetővé teszi a kimeneti jogcím-átalakítások meghívását a jogcímértékek módosításához, a jogcímek érvényesítéséhez vagy a kimeneti jogcímek alapértelmezett értékének beállításához.
Protokoll
A Protocol elem Name attribútumát a következőre kell állítani: Proprietary
. A kezelő attribútumnak tartalmaznia kell a Azure AD B2C által használt protokollkezelő-szerelvény teljes nevét: Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
.
Az alábbi példa egy jogcímátalakítási műszaki profilt mutat be:
<TechnicalProfile Id="Facebook-OAUTH-UnLink">
<DisplayName>Unlink Facebook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
...
Kimeneti jogcímek
Az OutputClaims elem kötelező. Adjon meg legalább egy, a műszaki profil által visszaadott kimeneti jogcímet. Az alábbi példa bemutatja, hogyan állíthatja be az alapértelmezett értékeket a kimeneti jogcímekben:
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="ageGroup" DefaultValue="Undefined" />
<OutputClaim ClaimTypeReferenceId="ageGroupValueChanged" DefaultValue="false" />
</OutputClaims>
Kimeneti jogcímátalakítások
Az OutputClaimsTransformations elem tartalmazhat olyan OutputClaimsTransformation elemeket, amelyek jogcímek módosítására vagy újak létrehozására használhatók. Az alábbi technikai profil meghívja a RemoveAlternativeSecurityIdByIdentityProvider jogcímátalakítást. Ez a jogcímátalakítás eltávolít egy közösségi azonosítót az AlternativeSecurityIds gyűjteményéből. Ennek a technikai profilnak a kimeneti jogcímei az identityProvider2, amely a következőre facebook.com
van állítva: , és AlternativeSecurityIds, amely tartalmazza a felhasználóhoz társított közösségi identitások listáját facebook.com identitás eltávolítása után.
<ClaimsTransformations>
<ClaimsTransformation Id="RemoveAlternativeSecurityIdByIdentityProvider"
TransformationMethod="RemoveAlternativeSecurityIdByIdentityProvider">
<InputClaims>
<InputClaim ClaimTypeReferenceId="IdentityProvider2"
TransformationClaimType="identityProvider" />
<InputClaim ClaimTypeReferenceId="AlternativeSecurityIds"
TransformationClaimType="collection" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="AlternativeSecurityIds"
TransformationClaimType="collection" />
</OutputClaims>
</ClaimsTransformation>
</ClaimsTransformations>
...
<TechnicalProfile Id="Facebook-OAUTH-UnLink">
<DisplayName>Unlink Facebook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="identityProvider2" DefaultValue="facebook.com" AlwaysUseDefaultValue="true" />
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="RemoveAlternativeSecurityIdByIdentityProvider" />
</OutputClaimsTransformations>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
A jogcímátalakítás technikai profilja lehetővé teszi a jogcímek átalakításának végrehajtását bármely felhasználói folyamat vezénylési lépéséből. A következő példában a vezénylési lépés meghívja az egyik leválasztott technikai profilt, például a UnLink-Facebook-OAUTH profilt. Ez a technikai profil meghívja a removeAlternativeSecurityIdByIdentityProvider kimeneti jogcím-átalakítást, amely létrehoz egy új AlternativeSecurityIds2 jogcímet. A kimeneti jogcím tartalmazza a felhasználó közösségi identitásainak listáját, miközben eltávolítja a Facebook-identitást a gyűjteményekből.
<UserJourney Id="AccountUnLink">
<OrchestrationSteps>
...
<OrchestrationStep Order="8" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="UnLinkFacebookExchange" TechnicalProfileReferenceId="UnLink-Facebook-OAUTH" />
<ClaimsExchange Id="UnLinkMicrosoftExchange" TechnicalProfileReferenceId="UnLink-Microsoft-OAUTH" />
<ClaimsExchange Id="UnLinkGitHubExchange" TechnicalProfileReferenceId="UnLink-GitHub-OAUTH" />
</ClaimsExchanges>
</OrchestrationStep>
...
</OrchestrationSteps>
</UserJourney>
Metaadatok
Attribútum | Kötelező | Leírás |
---|---|---|
IncludeClaimResolvingInClaimsHandling | No | Bemeneti és kimeneti jogcímek esetén meghatározza, hogy a jogcímek feloldása szerepel-e a műszaki profilban. Lehetséges értékek: true , vagy false (alapértelmezett). Ha egy jogcímfeloldót szeretne használni a műszaki profilban, állítsa ezt a metaadatot a értékre true . |
ContentDefinitionReferenceId | No | A technikai profilhoz társított tartalomdefiníció azonosítója. A tartalomdefiníció metaadatai szükségesek a FormatLocalizedString, a GetLocalizedStringsTransformation és a GetMappedValueFromLocalizedCollection jogcímátalakításokhoz. |
Érvényesítési műszaki profil használata
A jogcímátalakítás technikai profilja használható az információk ellenőrzésére. A következő példában a LocalAccountSignUpWithLogonEmail nevű önaláírt műszaki profil kétszer kéri meg a felhasználót, hogy adja meg az e-mailt, majd hívja meg a Validate-Email nevű érvényesítési műszaki profilt az e-mailek érvényesítéséhez. A Validate-Email technical profile meghívja a jogcímátalakítást AssertEmailAreEqual néven a két jogcím e-mail ése-mailRepeat összehasonlítása céljából, és kivételt jelez, ha azok nem egyenlők a megadott összehasonlítással.
<ClaimsTransformations>
<ClaimsTransformation Id="AssertEmailAreEqual" TransformationMethod="AssertStringClaimsAreEqual">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim1" />
<InputClaim ClaimTypeReferenceId="emailRepeat" TransformationClaimType="inputClaim2" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
</InputParameters>
</ClaimsTransformation>
</ClaimsTransformations>
A jogcímátalakítás technikai profilja meghívja az AssertEmailAreEqual jogcímátalakítást, amely azt állítja, hogy a felhasználó által megadott e-mailek megegyeznek.
<TechnicalProfile Id="Validate-Email">
<DisplayName>Unlink Facebook</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<InputClaims>
<InputClaim ClaimTypeReferenceId="emailRepeat" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" />
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="AssertEmailAreEqual" />
</OutputClaimsTransformations>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
Az önaláhagyott műszaki profil meghívhatja az érvényesítési műszaki profilt, és megjelenítheti a UserMessageIfClaimsTransformationStringsAreNotEqual metaadatokban megadott hibaüzenetet.
<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
<DisplayName>User ID signup</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
...
<Item Key="UserMessageIfClaimsTransformationStringsAreNotEqual">The email addresses you provided are not the same</Item>
</Metadata>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" />
<OutputClaim ClaimTypeReferenceId="emailRepeat" />
...
</OutputClaims>
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="Validate-Email" />
</ValidationTechnicalProfiles>
</TechnicalProfile>