Een technisch Microsoft Entra-profiel definiëren in een aangepast Azure Active Directory B2C-beleid

Notitie

In Azure Active Directory B2C is aangepast beleid voornamelijk bedoeld om met complexe scenario's om te gaan. Voor de meeste scenario's wordt aangeraden ingebouwde gebruikersstromen te gebruiken. Als u dit nog niet hebt gedaan, vindt u meer informatie over aangepast beleid in het starterspakket in Aan de slag met aangepaste beleidsregels in Active Directory B2C.

Azure Active Directory B2C (Azure AD B2C) biedt ondersteuning voor het microsoft Entra-gebruikersbeheer. In dit artikel worden de specifieke kenmerken van een technisch profiel beschreven voor de interactie met een claimprovider die ondersteuning biedt voor dit gestandaardiseerde protocol.

Protocol

Het kenmerk Naam van het element Protocol moet worden ingesteld op Proprietary. Het handlerkenmerk moet de volledig gekwalificeerde naam van de assembly van de protocolhandler Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullbevatten.

Het volgen van aangepaste beleidsstartpakket Technische profielen van Microsoft Entra omvat het technische profiel AAD-Common . De technische profielen van Microsoft Entra geven het protocol niet op omdat het protocol is geconfigureerd in het technische profiel AAD-Common :

  • AAD-UserReadUsingAlternativeSecurityId en AAD-UserReadUsingAlternativeSecurityId-NoError - Zoek een sociaal account op in de map.
  • AAD-UserWriteUsingAlternativeSecurityId - Maak een nieuw sociaal account.
  • AAD-UserReadUsingEmailAddress - Zoek een lokaal account op in de map.
  • AAD-UserWriteUsingLogonEmail - Maak een nieuw lokaal account.
  • AAD-UserWritePasswordUsingObjectId - Een wachtwoord van een lokaal account bijwerken.
  • AAD-UserWriteProfileUsingObjectId - Een gebruikersprofiel van een lokaal of sociaal account bijwerken.
  • AAD-UserReadUsingObjectId - Lees een gebruikersprofiel van een lokaal of sociaal account.
  • AAD-UserWrite Telefoon NumberUsingObjectId - Schrijf het MFA-telefoonnummer van een lokaal of sociaal account

In het volgende voorbeeld ziet u het technische profiel AAD-Common :

<TechnicalProfile Id="AAD-Common">
  <DisplayName>Azure Active Directory</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />

  <CryptographicKeys>
    <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
  </CryptographicKeys>

  <!-- We need this here to suppress the SelfAsserted provider from invoking SSO on validation profiles. -->
  <IncludeInSso>false</IncludeInSso>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>

InputClaims

Het element InputClaims bevat een claim die wordt gebruikt om een account in de map op te zoeken of een nieuwe te maken. Er moet precies één InputClaim-element zijn in de verzameling invoerclaims voor alle technische profielen van Microsoft Entra. Mogelijk moet u de naam van de claim die in uw beleid is gedefinieerd, toewijzen aan de naam die is gedefinieerd in Microsoft Entra-id.

Als u een bestaand gebruikersaccount wilt lezen, bijwerken of verwijderen, is de invoerclaim een sleutel die het account uniek identificeert in de Microsoft Entra-directory. Bijvoorbeeld objectId, userPrincipalName, signInNames.emailAddress, signInNames.userName of alternativeSecurityId.

Als u een nieuw gebruikersaccount wilt maken, is de invoerclaim een sleutel waarmee een lokaal of federatief account uniek wordt geïdentificeerd. Bijvoorbeeld: lokaal account: signInNames.emailAddress of signInNames.userName. Voor een federatief account: de alternativeSecurityId.

Het element InputClaimsTransformations kan een verzameling invoerclaimtransformatie-elementen bevatten die worden gebruikt om de invoerclaim te wijzigen of nieuwe te genereren.

OutputClaims

Het element OutputClaims bevat een lijst met claims die worden geretourneerd door het technische profiel van Microsoft Entra. Mogelijk moet u de naam van de claim die in uw beleid is gedefinieerd, toewijzen aan de naam die is gedefinieerd in Microsoft Entra-id. U kunt ook claims opnemen die niet worden geretourneerd door de Microsoft Entra-id, zolang u het DefaultValue kenmerk instelt.

Het element OutputClaimsTransformations kan een verzameling OutputClaimsTransformation-elementen bevatten die worden gebruikt om uitvoerclaims te wijzigen of nieuwe te genereren.

Het technische profiel AAD-UserWriteUsingLogonEmail maakt bijvoorbeeld een lokaal account en retourneert de volgende claims:

  • objectId, wat de id is van het nieuwe account
  • newUser, waarmee wordt aangegeven of de gebruiker nieuw is
  • authenticationSource, waarmee verificatie wordt ingesteld op localAccountAuthentication
  • userPrincipalName, de user principal name van het nieuwe account
  • signInNames.emailAddress, de aanmeldingsnaam van het account, vergelijkbaar met de e-mailinvoerclaim
<OutputClaims>
  <OutputClaim ClaimTypeReferenceId="objectId" />
  <OutputClaim ClaimTypeReferenceId="newUser" PartnerClaimType="newClaimsPrincipalCreated" />
  <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" />
  <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
  <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
</OutputClaims>

PersistentedClaims

Het element PersistentedClaims bevat alle waarden die door Microsoft Entra-id moeten worden bewaard met mogelijke toewijzingsgegevens tussen een claimtype dat al is gedefinieerd in de sectie ClaimsSchema in het beleid en de naam van het Microsoft Entra-kenmerk.

Het technische profiel AAD-UserWriteUsingLogonEmail , waarmee een nieuw lokaal account wordt gemaakt, behoudt de volgende claims:

  <PersistedClaims>
    <!-- Required claims -->
    <PersistedClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />
    <PersistedClaim ClaimTypeReferenceId="newPassword" PartnerClaimType="password"/>
    <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration" />

    <!-- Optional claims. -->
    <PersistedClaim ClaimTypeReferenceId="givenName" />
    <PersistedClaim ClaimTypeReferenceId="surname" />
  </PersistedClaims>

De naam van de claim is de naam van het Kenmerk Microsoft Entra, tenzij het kenmerk PartnerClaimType is opgegeven, dat de microsoft Entra-kenmerknaam bevat.

Vereisten voor een bewerking

  • Er moet precies één InputClaim-element in de claimtas staan voor alle technische profielen van Microsoft Entra.
  • In het artikel met kenmerken van gebruikersprofielen worden de ondersteunde kenmerken van het Azure AD B2C-gebruikersprofiel beschreven die u kunt gebruiken in de invoerclaims, uitvoerclaims en persistente claims.
  • Als de bewerking is Write of DeleteClaims, moet deze ook worden weergegeven in een PersistentedClaims-element .
  • De waarde van de claim userPrincipalName moet de indeling hebben.user@tenant.onmicrosoft.com
  • De claim displayName is vereist en mag geen lege tekenreeks zijn.

Bewerkingen voor technische profielen van Microsoft Entra

Read

Met de bewerking Lezen worden gegevens over één gebruikersaccount gelezen. Het volgende technische profiel leest gegevens over een gebruikersaccount met behulp van de objectId van de gebruiker:

<TechnicalProfile Id="AAD-UserReadUsingObjectId">
  <Metadata>
    <Item Key="Operation">Read</Item>
    <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>
  </Metadata>
  <IncludeInSso>false</IncludeInSso>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
  </InputClaims>
  <OutputClaims>

    <!-- Required claims -->
    <OutputClaim ClaimTypeReferenceId="strongAuthenticationPhoneNumber" />

    <!-- Optional claims -->
    <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
    <OutputClaim ClaimTypeReferenceId="givenName" />
    <OutputClaim ClaimTypeReferenceId="surname" />
  </OutputClaims>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

Schrijven

Met de schrijfbewerking wordt één gebruikersaccount gemaakt of bijgewerkt. Met het volgende technische profiel wordt een nieuw sociaal account gemaakt:

<TechnicalProfile Id="AAD-UserWriteUsingAlternativeSecurityId">
  <Metadata>
    <Item Key="Operation">Write</Item>
    <Item Key="RaiseErrorIfClaimsPrincipalAlreadyExists">true</Item>
    <Item Key="UserMessageIfClaimsPrincipalAlreadyExists">You are already registered, please press the back button and sign in instead.</Item>
  </Metadata>
  <IncludeInSso>false</IncludeInSso>
  <InputClaimsTransformations>
    <InputClaimsTransformation ReferenceId="CreateOtherMailsFromEmail" />
  </InputClaimsTransformations>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="AlternativeSecurityId" PartnerClaimType="alternativeSecurityId" Required="true" />
  </InputClaims>
  <PersistedClaims>
    <!-- Required claims -->
    <PersistedClaim ClaimTypeReferenceId="alternativeSecurityId" />
    <PersistedClaim ClaimTypeReferenceId="userPrincipalName" />
    <PersistedClaim ClaimTypeReferenceId="mailNickName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />

    <!-- Optional claims -->
    <PersistedClaim ClaimTypeReferenceId="otherMails" />
    <PersistedClaim ClaimTypeReferenceId="givenName" />
    <PersistedClaim ClaimTypeReferenceId="surname" />
  </PersistedClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="newUser" PartnerClaimType="newClaimsPrincipalCreated" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
  </OutputClaims>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>

DeleteClaims

Met de bewerking DeleteClaims worden de gegevens uit een opgegeven lijst met claims gewist. Met het volgende technische profiel worden claims verwijderd:

<TechnicalProfile Id="AAD-DeleteClaimsUsingObjectId">
  <Metadata>
    <Item Key="Operation">DeleteClaims</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
  </InputClaims>
  <PersistedClaims>
    <PersistedClaim ClaimTypeReferenceId="objectId" />
    <PersistedClaim ClaimTypeReferenceId="Verified.strongAuthenticationPhoneNumber" PartnerClaimType="strongAuthenticationPhoneNumber" />
  </PersistedClaims>
  <OutputClaims />
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

DeleteClaimsPrincipal

Met de bewerking DeleteClaimsPrincipal wordt één gebruikersaccount uit de map verwijderd. Met het volgende technische profiel wordt een gebruikersaccount uit de directory verwijderd met behulp van de principal-naam van de gebruiker:

<TechnicalProfile Id="AAD-DeleteUserUsingObjectId">
  <Metadata>
    <Item Key="Operation">DeleteClaimsPrincipal</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
  </InputClaims>
  <OutputClaims/>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

Met het volgende technische profiel wordt een sociaal gebruikersaccount verwijderd met behulp van alternativeSecurityId:

<TechnicalProfile Id="AAD-DeleteUserUsingAlternativeSecurityId">
  <Metadata>
    <Item Key="Operation">DeleteClaimsPrincipal</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="alternativeSecurityId" Required="true" />
  </InputClaims>
  <OutputClaims/>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

Metagegevens

Kenmerk Vereist Beschrijving
Operation Ja De bewerking die moet worden uitgevoerd. Mogelijke waarden: Read, Write, , DeleteClaimsof DeleteClaimsPrincipal.
RaiseErrorIfClaimsPrincipalDoesNotExist Nee Er wordt een fout gegenereerd als het gebruikersobject niet bestaat in de map. Mogelijke waarden: true of false.
RaiseErrorIfClaimsPrincipalAlreadyExists Nee Er wordt een fout gegenereerd als het gebruikersobject al bestaat. Mogelijke waarden: true of false. Deze metagegevens zijn alleen van toepassing voor de schrijfbewerking.
ApplicationObjectId Nee De id van het toepassingsobject voor extensiekenmerken. Waarde: ObjectId van een toepassing. Zie Aangepaste kenmerken gebruiken voor meer informatie.
ClientId Nee De client-id voor toegang tot de tenant als derde partij. Zie Aangepaste kenmerken gebruiken in een aangepast profielbewerkingsbeleid voor meer informatie
IncludeClaimResolvingInClaimsHandling Nee Geeft voor de invoer- en uitvoerclaims aan of claimsoplossing is opgenomen in het technische profiel. Mogelijke waarden: true of false (standaard). Als u een claimsresolver wilt gebruiken in het technische profiel, stel dit in op true.

UI-elementen

De volgende instellingen kunnen worden gebruikt om het foutbericht te configureren dat wordt weergegeven bij een fout. De metagegevens moeten worden geconfigureerd in het zelf-gecontroleerde technische profiel. De foutberichten kunnen worden gelokaliseerd.

Kenmerk Vereist Beschrijving
UserMessageIfClaimsPrincipalAlreadyExists Nee Als er een fout optreedt (zie RaiseErrorIfClaimsPrincipalAlreadyExists-kenmerkbeschrijving), geeft u het bericht op dat aan de gebruiker moet worden weergegeven als het gebruikersobject al bestaat.
UserMessageIfClaimsPrincipalDoesNotExist Nee Als er een fout optreedt (zie de beschrijving van het kenmerk RaiseErrorIfClaimsPrincipalDoesNotExist), geeft u het bericht op dat aan de gebruiker moet worden weergegeven als het gebruikersobject niet bestaat.

Volgende stappen

Zie het volgende artikel, bijvoorbeeld voor het gebruik van een technisch profiel voor Microsoft Entra: