Definiera en teknisk Microsoft Entra-profil i en anpassad Azure Active Directory B2C-princip

Kommentar

I Azure Active Directory B2C är anpassade principer främst utformade för att hantera komplexa scenarier. I de flesta scenarier rekommenderar vi att du använder inbyggda användarflöden. Om du inte har gjort det kan du läsa mer om startpaketet för anpassad princip i Kom igång med anpassade principer i Active Directory B2C.

Azure Active Directory B2C (Azure AD B2C) tillhandahåller stöd för Microsoft Entra-användarhantering. Den här artikeln beskriver detaljerna i en teknisk profil för att interagera med en anspråksprovider som stöder det här standardiserade protokollet.

Protokoll

Attributet Namn för protokollelementet måste anges till Proprietary. Hanterarattributet måste innehålla det fullständigt kvalificerade namnet på protokollhanterarsammansättningen Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.

Följande anpassade principstartpaket Microsoft Entra tekniska profiler inkluderar den tekniska profilen AAD-Common . De tekniska Microsoft Entra-profilerna anger inte protokollet eftersom protokollet har konfigurerats i den tekniska AAD-Common-profilen :

  • AAD-UserReadUsingAlternativeSecurityId och AAD-UserReadUsingAlternativeSecurityId-NoError – Leta upp ett socialt konto i katalogen.
  • AAD-UserWriteUsingAlternativeSecurityId – Skapa ett nytt socialt konto.
  • AAD-UserReadUsingEmailAddress – Leta upp ett lokalt konto i katalogen.
  • AAD-UserWriteUsingLogonEmail – Skapa ett nytt lokalt konto.
  • AAD-UserWritePasswordUsingObjectId – Uppdatera ett lösenord för ett lokalt konto.
  • AAD-UserWriteProfileUsingObjectId – Uppdatera en användarprofil för ett lokalt eller socialt konto.
  • AAD-UserReadUsingObjectId – Läsa en användarprofil för ett lokalt eller socialt konto.
  • AAD-UserWrite Telefon NumberUsingObjectId – Skriv MFA-telefonnumret för ett lokalt eller socialt konto

I följande exempel visas den tekniska profilen 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

Elementet InputClaims innehåller ett anspråk som används för att leta upp ett konto i katalogen eller skapa ett nytt. Det måste finnas exakt ett InputClaim-element i insamlingen av indataanspråk för alla tekniska Microsoft Entra-profiler. Du kan behöva mappa namnet på anspråket som definierats i principen till det namn som definierats i Microsoft Entra-ID.

För att läsa, uppdatera eller ta bort ett befintligt användarkonto är indataanspråket en nyckel som unikt identifierar kontot i Microsoft Entra-katalogen. Till exempel objectId, userPrincipalName, signInNames.emailAddress, signInNames.userName eller alternativeSecurityId.

För att skapa ett nytt användarkonto är indataanspråket en nyckel som unikt identifierar ett lokalt eller federerat konto. Till exempel lokalt konto: signInNames.emailAddress eller signInNames.userName. För ett federerat konto: alternativeSecurityId.

Elementet InputClaimsTransformations kan innehålla en samling transformeringselement för indataanspråk som används för att ändra indataanspråket eller generera ett nytt.

OutputClaims

OutputClaims-elementet innehåller en lista över anspråk som returneras av den tekniska Microsoft Entra-profilen. Du kan behöva mappa namnet på anspråket som definierats i principen till det namn som definierats i Microsoft Entra-ID. Du kan också inkludera anspråk som inte returneras av Microsoft Entra-ID:t så länge du anger DefaultValue attributet.

Elementet OutputClaimsTransformations kan innehålla en samling OutputClaimsTransformation-element som används för att ändra utdataanspråken eller generera nya.

Till exempel skapar den tekniska profilen AAD-UserWriteUsingLogonEmail ett lokalt konto och returnerar följande anspråk:

  • objectId, som är identifierare för det nya kontot
  • newUser, som anger om användaren är ny
  • authenticationSource, som anger autentisering till localAccountAuthentication
  • userPrincipalName, som är användarens huvudnamn för det nya kontot
  • signInNames.emailAddress, som är kontots inloggningsnamn, som liknar anspråket för e-postinmatning
<OutputClaims>
  <OutputClaim ClaimTypeReferenceId="objectId" />
  <OutputClaim ClaimTypeReferenceId="newUser" PartnerClaimType="newClaimsPrincipalCreated" />
  <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" />
  <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
  <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
</OutputClaims>

PersistedClaims

Elementet PersistedClaims innehåller alla värden som ska bevaras av Microsoft Entra-ID med möjlig mappningsinformation mellan en anspråkstyp som redan definierats i avsnittet ClaimsSchema i principen och Microsoft Entra-attributnamnet.

Den tekniska profilen AAD-UserWriteUsingLogonEmail , som skapar ett nytt lokalt konto, bevarar följande anspråk:

  <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>

Namnet på anspråket är namnet på Microsoft Entra-attributet såvida inte attributet PartnerClaimType har angetts, som innehåller attributet Microsoft Entra.

Krav för en åtgärd

  • Det måste finnas exakt ett InputClaim-element i anspråksväskan för alla tekniska Microsoft Entra-profiler.
  • Artikeln med användarprofilattribut beskriver de Azure AD B2C-användarprofilattribut som stöds som du kan använda i indataanspråk, utdataanspråk och beständiga anspråk.
  • Om åtgärden är Write eller DeleteClaimsmåste den också visas i ett PersistedClaims-element .
  • Värdet för userPrincipalName-anspråket måste vara i formatet user@tenant.onmicrosoft.com.
  • DisplayName-anspråket krävs och får inte vara en tom sträng.

Tekniska profilåtgärder för Microsoft Entra

Lästa

Åtgärden Läs läser data om ett enskilt användarkonto. Följande tekniska profil läser data om ett användarkonto med hjälp av användarens objectId:

<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>

Skriv

Skrivåtgärden skapar eller uppdaterar ett enskilt användarkonto. Följande tekniska profil skapar ett nytt socialt konto:

<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

Åtgärden DeleteClaims rensar informationen från en angivet lista över anspråk. Följande tekniska profil tar bort anspråk:

<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

Åtgärden DeleteClaimsPrincipal tar bort ett enskilt användarkonto från katalogen. Följande tekniska profil tar bort ett användarkonto från katalogen med användarens huvudnamn:

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

Följande tekniska profil tar bort ett socialt användarkonto med hjälp av 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>

Metadata

Attribut Obligatoriskt Beskrivning
Åtgärd Ja Den åtgärd som ska utföras. Möjliga värden: Read, Write, DeleteClaimseller DeleteClaimsPrincipal.
RaiseErrorIfClaimsPrincipalDoesNotExist Nej Skapa ett fel om användarobjektet inte finns i katalogen. Möjliga värden: true eller false.
RaiseErrorIfClaimsPrincipalAlreadyExists Nej Skapa ett fel om användarobjektet redan finns. Möjliga värden: true eller false. Dessa metadata gäller endast för skrivåtgärden.
ApplicationObjectId Nej Programobjektidentifieraren för tilläggsattribut. Värde: ObjectId för ett program. Mer information finns i Använda anpassade attribut.
ClientId Nej Klientidentifieraren för åtkomst till klientorganisationen som tredje part. Mer information finns i Använda anpassade attribut i en redigerad princip för anpassad profil
IncludeClaimResolvingInClaimsHandling Nej För indata- och utdataanspråk anger om anspråksmatchning ingår i den tekniska profilen. Möjliga värden: true, eller false (standard). Om du vill använda en anspråkslösare i den tekniska profilen anger du detta till true.

Användargränssnittselement

Följande inställningar kan användas för att konfigurera felmeddelandet som visas vid fel. Metadata ska konfigureras i den självsäkra tekniska profilen. Felmeddelandena kan lokaliseras.

Attribut Obligatoriskt Beskrivning
UserMessageIfClaimsPrincipalAlreadyExists Nej Om ett fel ska utlösas (se attributet RaiseErrorIfClaimsPrincipalAlreadyExists) anger du meddelandet som ska visas för användaren om användarobjektet redan finns.
UserMessageIfClaimsPrincipalDoesNotExist Nej Om ett fel ska utlösas (se attributbeskrivningen RaiseErrorIfClaimsPrincipalDoesNotExist) anger du meddelandet som ska visas för användaren om användarobjektet inte finns.

Nästa steg

Se följande artikel, till exempel om du använder en teknisk Microsoft Entra-profil: