Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Ab dem 1. Mai 2025 steht Azure AD B2C nicht mehr für neue Kunden zur Verfügung. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.
Hinweis
In Azure Active Directory B2C sind benutzerdefinierte Richtlinien in erster Linie für komplexe Szenarien konzipiert. Für die meisten Szenarien empfehlen wir die Verwendung von integrierten Benutzerflows. Informieren Sie sich, sofern noch nicht geschehen, unter Tutorial: Erstellen von Benutzerflows und benutzerdefinierten Richtlinien in Azure Active Directory B2C über das Starter Pack für benutzerdefinierte Richtlinien.
Mit einem technischen Profil für die Forderungstransformation können Sie Ausgabeansprüchetransformationen aufrufen, um Anspruchswerte zu bearbeiten, Ansprüche zu überprüfen oder Standardwerte für eine Reihe von Ausgabeansprüchen festzulegen.
Protokoll
Das Name-Attribut des Protocol-Elements muss auf Proprietary festgelegt werden. Das Handler-Attribut muss den vollqualifizierten Namen der Protokollhandlerassembly enthalten, die von Azure AD B2C verwendet wird: Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
Das folgende Beispiel zeigt ein technisches Profil für die Anspruchstransformation:
<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" />
...
Ausgabeansprüche
Das OutputClaims-Element ist obligatorisch. Stellen Sie mindestens einen Ausgabeanspruch bereit, der vom technischen Profil zurückgegeben wird. Das folgende Beispiel zeigt, wie Standardwerte in den Ausgabeansprüchen festgelegt werden:
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="ageGroup" DefaultValue="Undefined" />
<OutputClaim ClaimTypeReferenceId="ageGroupValueChanged" DefaultValue="false" />
</OutputClaims>
Transformationen von Ausgabeansprüchen
Das OutputClaimsTransformations-Element kann eine Auflistung von OutputClaimsTransformation-Elementen enthalten, die zum Ändern von Ansprüchen oder zum Generieren neuer Elemente verwendet werden. Das folgende technische Profil ruft die RemoveAlternativeSecurityIdByIdentityProvider-Anspruchstransformation auf. Diese Anspruchstransformation entfernt eine soziale Identifizierung aus der Sammlung von AlternativeSecurityIds. Die Ausgabeansprüche dieses technischen Profils sind "identityProvider2", die auf facebook.com" " und "AlternativeSecurityIds" festgelegt ist, die die Liste der sozialen Identitäten enthält, die diesem Benutzer zugeordnet sind, nachdem facebook.com Identität entfernt wurde.
<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>
Mit dem technischen Profil für die Forderungstransformation können Sie eine Forderungstransformation aus dem Orchestrierungsschritt jeder Benutzerreise ausführen. Im folgenden Beispiel ruft der Orchestrierungsschritt eines der nicht verknüpften technischen Profile auf, z. B. UnLink-Facebook-OAUTH. Dieses technische Profil ruft die Ausgabeansprüchetransformation RemoveAlternativeSecurityIdByIdentityProvider auf, die einen neuen AlternativeSecurityIds2-Anspruch generiert. Der Ausgabeanspruch enthält die Liste der sozialen Identitäten des Benutzers, während die Facebook-Identität aus den Sammlungen entfernt wird.
<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>
Metadaten
| Merkmal | Erforderlich | BESCHREIBUNG |
|---|---|---|
| IncludeClaimResolvingInClaimsHandling | Nein | Gibt für Eingabe- und Ausgabeansprüche an, ob die Forderungsauflösung im technischen Profil enthalten ist. Mögliche Werte sind true oder false (Standardwert). Wenn Sie einen Anspruchslöser im technischen Profil verwenden möchten, legen Sie diese Metadaten auf true. |
| ContentDefinitionReferenceId | Nein | Der Bezeichner der Inhaltsdefinition , die diesem technischen Profil zugeordnet ist. Die Inhaltsdefinitionsmetadaten sind für FormatLocalizedString-, GetLocalizedStringsTransformation- und GetMappedValueFromLocalizedCollection-Anspruchstransformationen erforderlich. |
Verwenden eines technischen Validierungsprofils
Ein technisches Profil für die Anspruchstransformation kann verwendet werden, um Informationen zu überprüfen. Im folgenden Beispiel fordert das selbst bestätigte technische Profil"LocalAccountSignUpWithLogonEmail " den Benutzer auf, die E-Mail zweimal einzugeben, und ruft dann das technische Validierungsprofil "Validate-Email" auf, um die E-Mails zu überprüfen. Das technische Profil " Validate-Email " ruft die Anspruchstransformation AssertEmailAreEqual auf, um die beiden Anspruchs-E-Mails und emailRepeat zu vergleichen, und löst eine Ausnahme aus, wenn sie nicht dem angegebenen Vergleich entsprechen.
<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>
Das technische Profil der Forderungstransformation ruft die AssertionEmailAreEqual-Anspruchstransformation auf, wodurch bestätigt wird, dass vom Benutzer bereitgestellte E-Mails identisch sind.
<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>
Ein selbst bestätigtes technisches Profil kann das technische Überprüfungsprofil aufrufen und die Fehlermeldung anzeigen, wie in den Metadaten "UserMessageIfClaimsTransformationStringsAreNotEqual " angegeben.
<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>