Megosztás a következőn keresztül:


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.comvan á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>