Problemen met aangepast Azure AD B2C-beleid en gebruikersstromen oplossen

Voordat u begint, gebruikt u de selector Een beleidstype kiezen om het type beleid te kiezen dat u instelt. U kunt in Azure Active Directory B2C op twee manieren definiëren hoe gebruikers met uw toepassingen communiceren: via vooraf gedefinieerde gebruikersstromen of via volledig configureerbaar aangepast beleid. De stappen die in dit artikel zijn vereist, verschillen voor elke methode.

Uw toepassing moet bepaalde fouten verwerken die afkomstig zijn van de Azure B2C-service. In dit artikel worden enkele veelvoorkomende fouten beschreven en wordt uitgelegd hoe u deze kunt afhandelen.

Fout bij opnieuw instellen van wachtwoord

Deze fout treedt op wanneer de selfservice voor wachtwoordherstel niet is ingeschakeld in een gebruikersstroom. Als u dus de koppeling Bent u uw wachtwoord vergeten selecteert, wordt er geen gebruikersstroom voor het opnieuw instellen van wachtwoorden geactiveerd. In plaats daarvan wordt foutcode AADB2C90118 naar uw toepassing geretourneerd.

Er zijn twee oplossingen voor dit probleem:

Gebruiker heeft de bewerking geannuleerd

Azure AD B2C-service kan ook een fout retourneren aan uw toepassing wanneer een gebruiker een bewerking annuleert. Hier volgen enkele voorbeelden van scenario's waarin een gebruiker een annuleringsbewerking uitvoert:

  • Een gebruikersbeleid maakt gebruik van de aanbevolen selfservice voor wachtwoordherstel (SSPR) met een lokaal consumentenaccount. De gebruiker selecteert de koppeling Uw wachtwoord vergeten? en selecteert vervolgens de knop Annuleren voordat de gebruikersstroomervaring is voltooid. In dit geval retourneert de Azure AD B2C-service foutcode AADB2C90091 naar uw toepassing.
  • Een gebruiker kiest ervoor om te verifiëren met een externe id-provider, zoals LinkedIn. De gebruiker selecteert de knop Annuleren voordat deze wordt geverifieerd bij de id-provider zelf. In dit geval retourneert de Azure AD B2C-service foutcode AADB2C90273 naar uw toepassing. Meer informatie over foutcodes die azure Active Directory B2C-service retourneren.

Als u deze fout wilt afhandelen, haalt u de beschrijving van de fout voor de gebruiker op en reageert u terug met een nieuwe verificatieaanvraag met behulp van dezelfde gebruikersstroom.

Als u aangepaste beleidsregels van Azure Active Directory B2C (Azure AD B2C) gebruikt, kan het zijn dat u problemen ondervindt met de XML-indeling of runtime van de beleidstaal. In dit artikel worden enkele hulpprogramma's en tips beschreven waarmee u problemen kunt detecteren en oplossen.

Dit artikel is gericht op het oplossen van problemen met uw aangepaste azure AD B2C-beleidsconfiguratie. De relying party-toepassing of de bijbehorende identiteitsbibliotheek wordt niet aangepakt.

Overzicht van correlatie-id van Azure AD B2C

Azure AD B2C-correlatie-id is een unieke id-waarde die is gekoppeld aan autorisatieaanvragen. Het doorloopt alle indelingsstappen die een gebruiker doorloopt. Met de correlatie-id kunt u het volgende doen:

  • Identificeer aanmeldingsactiviteiten in uw toepassing en volg de prestaties van uw beleid.
  • Zoek de Azure-toepassing Insights-logboeken van de aanmeldingsaanvraag.
  • Geef de correlatie-id door aan uw REST API en gebruik deze om de aanmeldingsstroom te identificeren.

De correlatie-id wordt gewijzigd telkens wanneer een nieuwe sessie tot stand wordt gebracht. Wanneer u fouten in uw beleid opsneert, moet u ervoor zorgen dat u bestaande browsertabbladen sluit of een nieuwe browser in de privémodus opent.

Vereisten

De Correlatie-id van Azure AD B2C ophalen

U vindt de correlatie-id op de registratie- of aanmeldingspagina van Azure AD B2C. Selecteer in uw browser de weergavebron. De correlatie wordt boven aan de pagina weergegeven als een opmerking.

Screenshot of Azure AD B2C sign-in page view source.

Kopieer de correlatie-id en ga door met de aanmeldingsstroom. Gebruik de correlatie-id om het aanmeldingsgedrag te observeren. Zie Problemen oplossen met Application Insights voor meer informatie.

Echo de Azure AD B2C-correlatie-id

U kunt de correlatie-id opnemen in uw Azure AD B2C-tokens. De correlatie-id opnemen:

  1. Open het uitbreidingsbestand van uw beleid. Bijvoorbeeld SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  2. Zoek element BuildingBlocks. Als het element niet aanwezig is, voegt u het toe.

  3. Zoek naar het element ClaimsSchema. Als het element niet aanwezig is, voegt u het toe.

  4. Voeg de correlatie-id-claim toe aan het element ClaimsSchema .

    <!-- 
    <BuildingBlocks>
      <ClaimsSchema> -->
        <ClaimType Id="correlationId">
          <DisplayName>correlation ID</DisplayName>
          <DataType>string</DataType>
        </ClaimType>
      <!-- 
      </ClaimsSchema>
    </BuildingBlocks>-->
    
  5. Open het relying party-bestand van uw beleid. Bijvoorbeeld SocialAndLocalAccounts/SignUpOrSignIn.xml bestand. De uitvoerclaim wordt toegevoegd aan het token na een geslaagde gebruikersbeleving en verzonden naar de toepassing. Wijzig het technische profielelement in de sectie relying party om de correlationId als uitvoerclaim toe te voegen.

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <DisplayName>PolicyProfile</DisplayName>
        <Protocol Name="OpenIdConnect" />
        <OutputClaims>
          ...
          <OutputClaim ClaimTypeReferenceId="correlationId" DefaultValue="{Context:CorrelationId}" />
        </OutputClaims>
        <SubjectNamingInfo ClaimType="sub" />
      </TechnicalProfile>
    </RelyingParty>
    

Problemen oplossen met Application Insights

Gebruik Application Insights om problemen met uw aangepaste beleid vast te stellen. Application Insights traceert de activiteit van uw aangepaste gebruikerstraject voor beleid. Het biedt een manier om uitzonderingen te diagnosticeren en de uitwisseling van claims tussen Azure AD B2C en de verschillende claimproviders te observeren. De claimproviders worden gedefinieerd door technische profielen, zoals id-providers, API-services, de Azure AD B2C-gebruikersmap en andere services.

U wordt aangeraden de Azure AD B2C-extensie voor VS Code te installeren. Met de Azure AD B2C-extensie worden de logboeken voor u ingedeeld op basis van de beleidsnaam, correlatie-id (Application Insights geeft het eerste cijfer van de correlatie-id weer) en de tijdstempel van het logboek. Met deze functie kunt u het relevante logboek vinden op basis van de lokale tijdstempel en de gebruikersbeleving zien zoals uitgevoerd door Azure AD B2C.

Notitie

  • Er is een korte vertraging, meestal minder dan vijf minuten, voordat u nieuwe logboeken in Application Insights kunt zien.
  • De community heeft de Visual Studio Code-extensie voor Azure AD B2C ontwikkeld om identiteitsontwikkelaars te helpen. De extensie wordt niet ondersteund door Microsoft en wordt strikt ter beschikking gesteld.

Een stroom voor eenmalige aanmelding kan meer dan één Azure-toepassing Insights-tracering uitgeven. In de volgende schermopname bevat het B2C_1A_signup_signin-beleid drie logboeken. Elk logboek vertegenwoordigt een deel van de aanmeldingsstroom.

In de volgende schermopname ziet u de Azure AD B2C-extensie voor VS Code met Azure-toepassing Insights trace explorer.

Screenshot of Azure AD B2C extension for VS Code with Azure Application Insights trace.

Het traceringslogboek filteren

Met de focus op de Trace Explorer van Azure AD B2C begint u het eerste cijfer van de correlatie-id te typen of een tijdstip waarop u wilt zoeken. U ziet een filtervak in de rechterbovenhoek van de Azure AD B2C-traceverkenner waarin wordt weergegeven wat u tot nu toe hebt getypt en overeenkomende traceringslogboeken zijn gemarkeerd.

Screenshot of Azure AD B2C extension Azure AD B2C trace explorer filter highlighting.

Als u de muisaanwijzer boven het filtervak beweegt en Filter inschakelen op type selecteert, worden alleen overeenkomende traceringslogboeken weergegeven. Gebruik de knop X wissen om het filter te wissen.

Screenshot of Azure AD B2C extension Azure AD B2C trace explorer filter.

Details van traceringslogboek van Application Insights

Wanneer u een Azure-toepassing Insights-trace selecteert, wordt met de extensie het detailvenster van Application Insights geopend met de volgende informatie:

  • Application Insights: algemene informatie over het traceringslogboek, inclusief de beleidsnaam, correlatie-id, Azure-toepassing Insights-tracerings-id en tijdstempel voor tracering.
  • Technische profielen : lijst met technische profielen die worden weergegeven in het traceringslogboek.
  • Claims : alfabetische lijst met claims die worden weergegeven in het traceringslogboek en de bijbehorende waarden. Als een claim meerdere keren in het traceringslogboek met verschillende waarden wordt weergegeven, wijst een => teken de nieuwste waarde aan. U kunt deze claims controleren om te bepalen of de verwachte claimwaarden juist zijn ingesteld. Als u bijvoorbeeld een voorwaarde hebt die een claimwaarde controleert, kan de sectie claims u helpen bepalen waarom een verwachte stroom zich anders gedraagt.
  • Claimtransformatie: lijst met claimtransformaties die worden weergegeven in het traceringslogboek. Elke claimtransformatie bevat de invoerclaims, invoerparameters en uitvoerclaims. De sectie claimstransformatie geeft inzicht in de gegevens die zijn verzonden en het resultaat van de claimtransformatie.
  • Tokens : lijst met tokens die worden weergegeven in het traceringslogboek. De tokens bevatten de onderliggende federatieve OAuth en OpenId Verbinding maken tokens van de id-provider. Het token van de federatieve id-provider geeft details over hoe de id-provider de claims retourneert naar Azure AD B2C, zodat u de technische profielclaims van de id-provider kunt toewijzen.
  • Uitzonderingen : lijst met uitzonderingen of fatale fouten die worden weergegeven in het traceringslogboek.
  • Application Insights JSON : de onbewerkte gegevens die worden geretourneerd door Application Insights.

In de volgende schermopname ziet u een voorbeeld van het venster details van het traceringslogboek van Application Insights.

Screenshot of Azure AD B2C extension Azure AD B2C trace report.

Problemen met JWT-tokens oplossen

Voor validatie- en foutopsporingsdoeleinden voor JWT-token kunt u JWT's decoderen met behulp van een site zoals https://jwt.ms. Maak een testtoepassing die kan worden omgeleid naar https://jwt.ms tokeninspectie. Als u dit nog niet hebt gedaan, registreert u een webtoepassing en schakelt u impliciete toekenning van id-token in.

Screenshot of JWT token preview.

Gebruik Nu uitvoeren en https://jwt.ms om uw beleid onafhankelijk van uw web- of mobiele toepassing te testen. Deze website fungeert als een Relying Party-toepassing. Hiermee wordt de inhoud van het JSON-webtoken (JWT) weergegeven dat uw Azure AD B2C-beleid genereert.

Problemen met HET SAML-protocol oplossen

Voor hulp bij het configureren en opsporen van fouten in de integratie met uw serviceprovider, kunt u een browserextensie gebruiken voor het SAML-protocol, bijvoorbeeld de EXTENSIE SAML DevTools voor Chrome, SAML-tracer voor FireFox of Edge of IE-ontwikkelhulpprogramma's.

In de volgende schermopname ziet u hoe de SAML DevTools-extensie de SAML-aanvraag weergeeft die Azure AD B2C naar de id-provider verzendt en het SAML-antwoord.

Screenshot of SAML protocol trace log.

Met deze hulpprogramma's kunt u de integratie tussen uw toepassing en Azure AD B2C controleren. Bijvoorbeeld:

  • Controleer of de SAML-aanvraag een handtekening bevat en bepaal welk algoritme wordt gebruikt om de autorisatieaanvraag aan te melden.
  • Controleer of Azure AD B2C een foutbericht retourneert.
  • Controleer of de assertiesectie is versleuteld.
  • Haal de naam van de claims op die de id-provider retourneren.

U kunt ook de uitwisseling van berichten tussen uw clientbrowser en Azure AD B2C traceren met Fiddler. Het kan u helpen een indicatie te krijgen van waar uw gebruikerstraject mislukt in de indelingsstappen.

Problemen met de geldigheid van beleid oplossen

Nadat u klaar bent met het ontwikkelen van uw beleid, uploadt u het beleid naar Azure AD B2C. Er zijn mogelijk problemen met uw beleid, maar u kunt uw beleid geldig hebben voordat u het uploadt.

De meest voorkomende fout bij het instellen van aangepaste beleidsregels is onjuist opgemaakte XML. Een goede XML-editor is bijna essentieel. Het geeft standaard XML weer, kleurcodes inhoud, vult algemene termen in, houdt XML-elementen geïndexeerd en kan worden gevalideerd op basis van een XML-schema.

U wordt aangeraden Visual Studio Code te gebruiken. Installeer vervolgens een XML-extensie, zoals XML-taalondersteuning door Red Hat. Met de XML-extensie kunt u het XML-schema valideren voordat u uw XML-bestand uploadt met behulp van een aangepaste XSD-schemadefinitie voor beleid.

U kunt de XML-bestandskoppelingsstrategie gebruiken om het XML-bestand met de XSD te binden door de volgende instellingen toe te voegen aan uw VS Code-bestand settings.json . Hiervoor doet u het volgende:

  1. Selecteer bestandsvoorkeuren>> in VS Code Instellingen. Zie Gebruikers- en werkruimte-Instellingen voor meer informatie.

  2. Zoek naar fileAssociations en selecteer vervolgens onder de extensie de XML.

  3. Selecteer Bewerken in settings.json.

    Screenshot of VS Code XML schema validation.

  4. Voeg in de settings.json de volgende JSON-code toe:

    "xml.fileAssociations": [
      {
        "pattern": "**.xml",
        "systemId": "https://raw.githubusercontent.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack/master/TrustFrameworkPolicy_0.3.0.0.xsd"
      }
    ]
    
  5. De wijzigingen opslaan.

In het volgende voorbeeld ziet u een XML-validatiefout. Wanneer u de muis over de elementnaam beweegt, bevat de extensie de verwachte elementen.

Screenshot of VS Code XML schema validation error indicator.

In het volgende geval is het DisplayName element juist. Maar in de verkeerde volgorde. De DisplayName moet vóór het Protocol element staan. Als u het probleem wilt oplossen, beweegt u de muis over het DisplayName element naar de juiste volgorde van de elementen.

Screenshot of VS Code XML schema validation order error.

Beleid en beleidsvalidatie uploaden

Validatie van het XML-beleidsbestand wordt automatisch uitgevoerd bij het uploaden. De meeste fouten veroorzaken dat het uploaden mislukt. Validatie bevat het beleidsbestand dat u wilt uploaden. Het bevat ook de keten van bestanden waarnaar het uploadbestand verwijst (het beleidbestand van de relying party, het extensiebestand en het basisbestand).

Tip

Azure AD B2C voert aanvullende validatie uit voor relying party-beleid. Wanneer u een probleem ondervindt met uw beleid, zelfs als u alleen het uitbreidingsbeleid bewerkt, is het een goede gewoonte om ook het relying party-beleid te uploaden.

Deze sectie bevat de veelvoorkomende validatiefouten en mogelijke oplossingen.

Fout bij schemavalidatie gevonden... heeft een ongeldig onderliggend element {name}

Uw beleid bevat een ongeldig XML-element of het XML-element is geldig, maar lijkt in de verkeerde volgorde te staan. Als u dit type fout wilt oplossen, raadpleegt u de sectie Problemen met de geldigheid van beleid oplossen.

Er is een dubbele sleutelreeks {number}

Een gebruikerstrajectof subtraject bestaat uit een geordende lijst met indelingsstappen die op volgorde worden uitgevoerd. Nadat u uw reis hebt gewijzigd, hernummert u de stappen sequentieel zonder gehele getallen van 1 naar N te overslaan.

Tip

U kunt de Azure AD B2C-extensie voor VS Code-opdracht(Shift+Ctrl+r) gebruiken om alle indelingsstappen van gebruikerstrajecten en subtrajecten in uw beleid opnieuw te nummeren.

... is verwacht dat er een stap met de order {number} is, maar deze is niet gevonden...

Controleer de vorige fout.

Indelingsstapvolgorde {number} in gebruikerstraject {name}... wordt gevolgd door een selectiestap van een claimprovider en moet een claimuitwisseling zijn, maar het is van het type...

Het type indelingsstappen en ClaimsProviderSelectionCombinedSignInAndSignUp bevat een lijst met opties waaruit een gebruiker kan kiezen. Het moet worden gevolgd door het type ClaimsExchange van een of meer claims uitwisseling.

De volgende indelingsstappen veroorzaken dit type of deze fout. De tweede indelingsstap moet het ClaimsExchangetype zijn, niet ClaimsProviderSelection.

<!-- 
<UserJourneys>
  <UserJourney Id="SignUpOrSignIn">
    <OrchestrationSteps>-->
      <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
        <ClaimsProviderSelections>
          <ClaimsProviderSelection TargetClaimsExchangeId="FacebookExchange"/>
          <ClaimsProviderSelection ValidationClaimsExchangeId="LocalAccountSigninEmailExchange"/>
        </ClaimsProviderSelections>
        <ClaimsExchanges>
          <ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email"/>
        </ClaimsExchanges>
      </OrchestrationStep> 

      <OrchestrationStep Order="2" Type="ClaimsProviderSelection">
        ...
      </OrchestrationStep>
      ...
    <!--
    </OrchestrationSteps>
  </UserJourney>
</UserJourneys> -->

... stap {number} met 2 claims uitwisselingen. Deze moet worden voorafgegaan door de selectie van een claimprovider om te bepalen welke claims kunnen worden uitgewisseld

Een indelingsstaptype ClaimsExchange moet één ClaimsExchangehebben, tenzij de vorige stap het type ClaimsProviderSelectionis, of CombinedSignInAndSignUp. De volgende indelingsstappen veroorzaken dit type fout. De zesde stap bevat twee claims uitwisseling.

<!-- 
<UserJourneys>
  <UserJourney Id="SignUpOrSignIn">
    <OrchestrationSteps>-->
      ...
      <OrchestrationStep Order="5" Type="ClaimsExchange">
        ...
        <ClaimsExchanges>
          <ClaimsExchange Id="SelfAsserted-Social" TechnicalProfileReferenceId="SelfAsserted-Social"/>
        </ClaimsExchanges>
      </OrchestrationStep>
      <OrchestrationStep Order="6" Type="ClaimsExchange">
        <ClaimsExchanges>
          <ClaimsExchange Id="Call-REST-First-API" TechnicalProfileReferenceId="Call-REST-First-API"/>
          <ClaimsExchange Id="Call-REST-Second-API" TechnicalProfileReferenceId="Call-REST-Second-API"/>
        </ClaimsExchanges>
      </OrchestrationStep>
      ...
    <!--
    </OrchestrationSteps>
  </UserJourney>
</UserJourneys> -->

Gebruik twee indelingsstappen om dit type fout op te lossen. Elke indelingsstap met één claimuitwisseling.

<!-- 
<UserJourneys>
  <UserJourney Id="SignUpOrSignIn">
    <OrchestrationSteps>-->
      ...
      <OrchestrationStep Order="5" Type="ClaimsExchange">
        ...
        <ClaimsExchanges>
          <ClaimsExchange Id="SelfAsserted-Social" TechnicalProfileReferenceId="SelfAsserted-Social"/>
        </ClaimsExchanges>
      </OrchestrationStep>
      <OrchestrationStep Order="6" Type="ClaimsExchange">
        <ClaimsExchanges>
          <ClaimsExchange Id="Call-REST-First-API" TechnicalProfileReferenceId="Call-REST-First-API"/>
        </ClaimsExchanges>
      </OrchestrationStep>
      <OrchestrationStep Order="7" Type="ClaimsExchange">
        <ClaimsExchanges>
          <ClaimsExchange Id="Call-REST-Second-API" TechnicalProfileReferenceId="Call-REST-Second-API"/>
        </ClaimsExchanges>
      </OrchestrationStep>
      ...
    <!--
    </OrchestrationSteps>
  </UserJourney>
</UserJourneys> -->

Er is een dubbele sleutelreeks {name}

Een reis heeft meerdere ClaimsExchange met hetzelfde Id. De volgende stappen veroorzaken dit type fout. De ID AADUserWrite wordt tweemaal weergegeven in het gebruikerstraject.

<!-- 
<UserJourneys>
  <UserJourney Id="SignUpOrSignIn">
    <OrchestrationSteps>-->
      ...
      <OrchestrationStep Order="7" Type="ClaimsExchange">
        <ClaimsExchanges>
          <ClaimsExchange Id="AADUserWrite" TechnicalProfileReferenceId="AAD-UserWriteUsingAlternativeSecurityId"/>
        </ClaimsExchanges>
      </OrchestrationStep>
      <OrchestrationStep Order="8" Type="ClaimsExchange">
        <ClaimsExchanges>
          <ClaimsExchange Id="AADUserWrite" TechnicalProfileReferenceId="Call-REST-API"/>
        </ClaimsExchanges>
      </OrchestrationStep>
      ...
    <!--
    </OrchestrationSteps>
  </UserJourney>
</UserJourneys> -->

Als u dit type fout wilt oplossen, wijzigt u de claims van de achtste indelingsstappen in een unieke naam, zoals Call-REST-API.

<!-- 
<UserJourneys>
  <UserJourney Id="SignUpOrSignIn">
    <OrchestrationSteps>-->
      ...
      <OrchestrationStep Order="7" Type="ClaimsExchange">
        <ClaimsExchanges>
          <ClaimsExchange Id="AADUserWrite" TechnicalProfileReferenceId="AAD-UserWriteUsingAlternativeSecurityId"/>
        </ClaimsExchanges>
      </OrchestrationStep>
      <OrchestrationStep Order="8" Type="ClaimsExchange">
        <ClaimsExchanges>
          <ClaimsExchange Id="Call-REST-API" TechnicalProfileReferenceId="Call-REST-API"/>
        </ClaimsExchanges>
      </OrchestrationStep>
      ...
    <!--
    </OrchestrationSteps>
  </UserJourney>
</UserJourneys> -->

... verwijst naar ClaimType met id {claim name}, maar noch het beleid noch een van de basisbeleidsregels bevat een dergelijk element

Dit type fout treedt op wanneer uw beleid verwijst naar een claim die niet is gedeclareerd in het claimschema. Claims moeten worden gedefinieerd in ten minste één van de bestanden in het beleid.

Bijvoorbeeld een technisch profiel met de schoolId-uitvoerclaim . Maar de uitvoerclaim schoolId wordt nooit gedeclareerd in het beleid of in een bovenliggend beleid.

<OutputClaims>
  <OutputClaim ClaimTypeReferenceId="schoolId" />
  ...
</OutputClaims>

Als u dit type fout wilt oplossen, controleert u of de ClaimTypeReferenceId waarde onjuist is gespeld of niet bestaat in het schema. Als de claim is gedefinieerd in het uitbreidingsbeleid, maar ook wordt gebruikt in het basisbeleid. Zorg ervoor dat de claim is gedefinieerd in het beleid waarin deze wordt gebruikt of in een beleid op het hoogste niveau.

Als u de claim toevoegt aan het claimschema, wordt dit type fout opgelost.

<!--
<BuildingBlocks>
  <ClaimsSchema> -->
    <ClaimType Id="schoolId">
      <DisplayName>School name</DisplayName>
      <DataType>string</DataType>
      <UserHelpText>Enter your school name</UserHelpText>
      <UserInputType>TextBox</UserInputType>
    </ClaimType>
  <!-- 
  </ClaimsSchema>
</BuildingBlocks> -->

... verwijst naar een ClaimTransformation met id...

De oorzaak van deze fout is vergelijkbaar met die voor de claimfout. Controleer de vorige fout.

De gebruiker is momenteel geregistreerd als gebruiker van de tenant 'yourtenant.onmicrosoft.com'...

U meldt zich aan met een account van een tenant die verschilt van het beleid dat u probeert te uploaden. Bijvoorbeeld uw aanmelding met admin@contoso.onmicrosoft.com, terwijl uw beleid TenantId is ingesteld op fabrikam.onmicrosoft.com.

<TrustFrameworkPolicy ...
  TenantId="fabrikam.onmicrosoft.com"
  PolicyId="B2C_1A_signup_signin"
  PublicPolicyUri="http://fabrikam.onmicrosoft.com/B2C_1A_signup_signin">

  <BasePolicy>
    <TenantId>fabrikam.onmicrosoft.com</TenantId>
    <PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId>
  </BasePolicy>
  ...
</TrustFrameworkPolicy>
  • Controleer of de TenantId waarde in de <TrustFrameworkPolicy\> en <BasePolicy\> elementen overeenkomen met uw Azure AD B2C-doeltenant.

Claimtype {name} is de uitvoerclaim van het technische profiel van de relying party, maar het is geen uitvoerclaim in een van de stappen van het gebruikerstraject...

In een relying party-beleid hebt u een uitvoerclaim toegevoegd, maar de uitvoerclaim is geen uitvoerclaim in een van de stappen van het gebruikerstraject. Azure AD B2C kan de claimwaarde niet lezen uit de claimtas.

In het volgende voorbeeld is de schoolId-claim een uitvoerclaim van het technische profiel van de relying party, maar het is geen uitvoerclaim in een van de stappen van SignUpOrSignIn-gebruikerstraject .

<RelyingParty>
  <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
  <TechnicalProfile Id="PolicyProfile">
    <DisplayName>PolicyProfile</DisplayName>
    <Protocol Name="OpenIdConnect" />
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="schoolId" />
      ...
    </OutputClaims>
    <SubjectNamingInfo ClaimType="sub" />
  </TechnicalProfile>
</RelyingParty>

Als u dit type fout wilt oplossen, moet u ervoor zorgen dat de uitvoerclaims worden weergegeven in de verzameling technische profielclaims van ten minste één indelingsprofiel. Als uw gebruikerstraject de claim niet kan uitvoeren, stelt u in het technische profiel van de relying party een standaardwaarde in, zoals een lege tekenreeks.

<OutputClaim ClaimTypeReferenceId="schoolId" DefaultValue="" />

Invoertekenreeks heeft geen juiste indeling

U stelt een onjuist waardetype in op een claim van een ander type. U definieert bijvoorbeeld een geheel getalclaim.

<!--
<BuildingBlocks>
  <ClaimsSchema> -->
    <ClaimType Id="age">
      <DisplayName>Age</DisplayName>
      <DataType>int</DataType>
    </ClaimType>
  <!--
  </ClaimsSchema>
</BuildingBlocks> -->

Vervolgens probeert u een tekenreekswaarde in te stellen:

<OutputClaim ClaimTypeReferenceId="age" DefaultValue="ABCD" />

Als u dit type fout wilt oplossen, moet u ervoor zorgen dat u de juiste waarde instelt, zoals DefaultValue="0".

Tenant {name} heeft al een beleid met id {name}. Een ander beleid met dezelfde id kan niet worden opgeslagen

U probeert een beleid te uploaden naar uw tenant, maar er is al een beleid met dezelfde naam geüpload naar uw tenant.

Als u dit type fout wilt oplossen, schakelt u bij het uploaden van het beleid het aangepaste beleid overschrijven in als dit al bestaat .

Screenshot that demonstrates how to overwrite the custom policy if it already exists.

Volgende stappen