Risolvere i problemi relativi ai criteri personalizzati e ai flussi utente di Azure AD B2C

Prima di iniziare, usare il selettore Scegli un tipo di criterio per scegliere il tipo di criterio che si sta configurando. Azure Active Directory B2C offre due metodi per definire il modo in cui gli utenti interagiscono con le applicazioni: tramite flussi utente predefiniti o tramite criteri personalizzati completamente configurabili. I passaggi necessari in questo articolo sono diversi per ogni metodo.

L'applicazione deve gestire determinati errori provenienti dal servizio Azure B2C. Questo articolo illustra alcuni degli errori comuni e come gestirli.

Errore di reimpostazione della password

Questo errore si verifica quando l'esperienza di reimpostazione della password self-service non è abilitata in un flusso utente. Di conseguenza, selezionando il collegamento Password dimenticata? non viene attivato un flusso utente di reimpostazione della password. Viene invece restituito il codice di errore AADB2C90118 all'applicazione.

Esistono 2 soluzioni per questo problema:

L'utente ha annullato l'operazione

Il servizio Azure AD B2C può anche restituire un errore all'applicazione quando un utente annulla un'operazione. Di seguito sono riportati alcuni esempi di scenari in cui un utente esegue un'operazione di annullamento:

  • I criteri utente usano l'esperienza di reimpostazione della password self-service consigliata con un account locale consumer. L'utente seleziona il collegamento Password dimenticata? e quindi seleziona il pulsante Annulla prima del completamento dell'esperienza del flusso utente. In questo caso, il servizio Azure AD B2C restituisce il codice AADB2C90091 di errore all'applicazione.
  • Un utente sceglie di eseguire l'autenticazione con un provider di identità esterno, ad esempio LinkedIn. L'utente seleziona il pulsante Annulla prima di eseguire l'autenticazione al provider di identità stesso. In questo caso, il servizio Azure AD B2C restituisce il codice AADB2C90273 di errore all'applicazione. Altre informazioni sui codici di errore restituiti dal servizio Azure Active Directory B2C.

Per gestire questo errore, recuperare la descrizione dell'errore per l'utente e rispondere con una nuova richiesta di autenticazione usando lo stesso flusso utente.

Se si usano criteri personalizzati di Azure Active Directory B2C (Azure AD B2C), è possibile che si verifichino problemi con il formato XML del linguaggio dei criteri o i problemi di runtime. Questo articolo descrive alcuni strumenti e suggerimenti utili per individuare e risolvere i problemi.

Questo articolo è incentrato sulla risoluzione dei problemi della configurazione dei criteri personalizzati di Azure AD B2C. Non tratta l'applicazione relying party o la relativa libreria di identità.

Panoramica dell'ID di correlazione di Azure AD B2C

L'ID di correlazione di Azure AD B2C è un valore di identificatore univoco associato alle richieste di autorizzazione. Passa attraverso tutti i passaggi di orchestrazione che un utente esegue. Con l'ID di correlazione è possibile:

  • Identificare l'attività di accesso nell'applicazione e tenere traccia delle prestazioni dei criteri.
  • Trovare i log di app Azure lication Insights della richiesta di accesso.
  • Passare l'ID di correlazione all'API REST e usarlo per identificare il flusso di accesso.

L'ID di correlazione viene modificato ogni volta che viene stabilita una nuova sessione. Quando si esegue il debug dei criteri, assicurarsi di chiudere le schede del browser esistenti o di aprire un nuovo browser in modalità privata.

Prerequisiti

Ottenere l'ID correlazione di Azure AD B2C

È possibile trovare l'ID di correlazione nella pagina di iscrizione o accesso di Azure AD B2C. Nel browser selezionare Visualizza origine. La correlazione viene visualizzata come commento nella parte superiore della pagina.

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

Copiare l'ID di correlazione e quindi continuare il flusso di accesso. Usare l'ID correlazione per osservare il comportamento di accesso. Per altre informazioni, vedere Risoluzione dei problemi con Application Insights.

Echo the Azure AD B2C correlation ID

È possibile includere l'ID di correlazione nei token di Azure AD B2C. Per includere l'ID correlazione:

  1. Aprire il file delle estensioni del criterio, Ad esempio, SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  2. Cercare l'elemento BuildingBlocks. Se l'elemento non esiste, aggiungerlo.

  3. Individuare l'elemento ClaimsSchema. Se l'elemento non esiste, aggiungerlo.

  4. Aggiungere l'attestazione ID di correlazione all'elemento ClaimsSchema .

    <!-- 
    <BuildingBlocks>
      <ClaimsSchema> -->
        <ClaimType Id="correlationId">
          <DisplayName>correlation ID</DisplayName>
          <DataType>string</DataType>
        </ClaimType>
      <!-- 
      </ClaimsSchema>
    </BuildingBlocks>-->
    
  5. Aprire il file relying party dei criteri. Ad esempio, SocialAndLocalAccounts/SignUpOrSignIn.xml file. L'attestazione di output verrà aggiunta al token dopo un percorso utente riuscito e inviata all'applicazione. Modificare l'elemento del profilo tecnico nella sezione relying party per aggiungere come correlationId attestazione di output.

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

Risoluzione dei problemi con Application Insights

Per diagnosticare i problemi con i criteri personalizzati, usare Application Insights. Application Insights traccia l'attività del percorso utente dei criteri personalizzati. Fornisce un modo per diagnosticare le eccezioni e osservare lo scambio di attestazioni tra Azure AD B2C e i vari provider di attestazioni. I provider di attestazioni sono definiti da profili tecnici, ad esempio provider di identità, servizi basati su API, directory utente di Azure AD B2C e altri servizi.

È consigliabile installare l'estensione Azure AD B2C per VS Code. Con l'estensione Azure AD B2C, i log vengono organizzati in base al nome dei criteri, all'ID di correlazione (Application Insights presenta la prima cifra dell'ID di correlazione) e al timestamp del log. Questa funzionalità consente di trovare il log pertinente in base al timestamp locale e di visualizzare il percorso utente come eseguito da Azure AD B2C.

Nota

  • Si verifica un breve ritardo, in genere inferiore a cinque minuti, prima di poter visualizzare nuovi log in Application Insights.
  • La community ha sviluppato l'estensione di Visual Studio Code per Azure AD B2C per aiutare gli sviluppatori di identità. L'estensione non è supportata da Microsoft e viene resa disponibile rigorosamente così come è.

Un flusso di accesso Single Sign-In può emettere più di una traccia di app Azure lication Insights. Nello screenshot seguente il criterio di B2C_1A_signup_signin include tre log. Ogni log rappresenta parte del flusso di accesso.

Lo screenshot seguente mostra l'estensione Azure AD B2C per VS Code con esplora tracce di app Azure lication Insights.

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

Filtrare il log di traccia

Con lo stato attivo su Esplora tracce di Azure AD B2C, iniziare a digitare la prima cifra dell'ID di correlazione o una volta che si vuole trovare. Nella parte superiore destra di Azure AD B2C Trace Explorer viene visualizzata una casella di filtro che mostra gli elementi digitati finora e i log di traccia corrispondenti sono evidenziati.

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

Passando il puntatore del mouse sulla casella di filtro e selezionando Abilita filtro in base al tipo vengono visualizzati solo i log di traccia corrispondenti. Usare il pulsante "X" Cancella per cancellare il filtro.

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

Dettagli del log di traccia di Application Insights

Quando si seleziona una traccia di app Azure lication Insights, l'estensione apre la finestra dei dettagli di Application Insights con le informazioni seguenti:

  • Application Insights: informazioni generice sul log di traccia, inclusi il nome dei criteri, l'ID di correlazione, l'ID di traccia app Azure lication Insights e il timestamp di traccia.
  • Profili tecnici: elenco dei profili tecnici visualizzati nel log di traccia.
  • Attestazioni : elenco alfabetico di attestazioni visualizzate nel log di traccia e i relativi valori. Se nel log di traccia viene visualizzata più volte un'attestazione con valori diversi, un => segno definisce il valore più recente. È possibile esaminare queste attestazioni per determinare se i valori delle attestazioni previsti sono impostati correttamente. Ad esempio, se si dispone di una precondizione che controlla un valore di attestazione, la sezione delle attestazioni consente di determinare il motivo per cui un flusso previsto si comporta in modo diverso.
  • Trasformazione delle attestazioni: elenco di trasformazioni delle attestazioni visualizzate nel log di traccia. Ogni trasformazione delle attestazioni contiene le attestazioni di input, i parametri di input e le attestazioni di output. La sezione trasformazione delle attestazioni fornisce informazioni dettagliate sui dati inviati in e sul risultato della trasformazione delle attestazioni.
  • Token: elenco di token visualizzati nel log di traccia. I token includono i token OAuth federati sottostanti e OpenId Connessione token del provider di identità. Il token del provider di identità federato fornisce informazioni dettagliate su come il provider di identità restituisce le attestazioni ad Azure AD B2C in modo da poter eseguire il mapping delle attestazioni di output del profilo tecnico del provider di identità.
  • Eccezioni: elenco di eccezioni o errori irreversibili visualizzati nel log di traccia.
  • APPLICATION Insights JSON : dati non elaborati restituiti da Application Insights.

Lo screenshot seguente mostra un esempio della finestra dei dettagli del log di traccia di Application Insights.

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

Risolvere i problemi relativi ai token JWT

Ai fini della convalida e del debug dei token JWT, è possibile decodificare JWT usando un sito come https://jwt.ms. Creare un'applicazione di test in grado di eseguire il reindirizzamento a https://jwt.ms per l'ispezione dei token. Se non è già stato fatto, registrare un'applicazione Web e abilitare la concessione implicita del token ID.

Screenshot of JWT token preview.

Usare Esegui ora e https://jwt.ms per testare i criteri indipendentemente dall'applicazione Web o per dispositivi mobili. Questo sito Web funziona come un'applicazione relying party. Visualizza il contenuto del token Web JSON (JWT) generato dai criteri di Azure AD B2C.

Risolvere i problemi relativi al protocollo SAML

Per configurare ed eseguire il debug dell'integrazione con il provider di servizi, è possibile usare un'estensione del browser per il protocollo SAML, ad esempio l'estensione SAML DevTools per Chrome, SAML-tracer per FireFox o Edge o IE Strumenti di sviluppo.

Lo screenshot seguente illustra come l'estensione SAML DevTools presenta la richiesta SAML inviata da Azure AD B2C al provider di identità e la risposta SAML.

Screenshot of SAML protocol trace log.

Usando questi strumenti, è possibile controllare l'integrazione tra l'applicazione e Azure AD B2C. Ad esempio:

  • Controllare se la richiesta SAML contiene una firma e determinare quale algoritmo viene usato per accedere alla richiesta di autorizzazione.
  • Controllare se Azure AD B2C restituisce un messaggio di errore.
  • Controllare se la sezione asserzione è crittografata.
  • Ottenere il nome delle attestazioni restituisce il provider di identità.

È anche possibile tracciare lo scambio di messaggi tra il browser client e Azure AD B2C, con Fiddler. Consente di ottenere un'indicazione del punto in cui il percorso utente genera errori nei passaggi di orchestrazione.

Risolvere i problemi di validità dei criteri

Dopo aver completato lo sviluppo dei criteri, caricare i criteri in Azure AD B2C. Potrebbero verificarsi alcuni problemi con i criteri, ma è possibile validità dei criteri prima di caricarlo.

L'errore più comune nell'impostazione dei criteri è la formattazione XML non corretta. Un buon editor XML è essenziale. Visualizza il contenuto xml in modo nativo, i codici colori, precompila i termini comuni, mantiene indicizzati gli elementi XML e può eseguire la convalida in base a uno schema XML.

È consigliabile usare Visual Studio Code. Installare quindi un'estensione XML, ad esempio il supporto del linguaggio XML di Red Hat. L'estensione XML consente di convalidare lo schema XML prima di caricare il file XML usando la definizione dello schema XSD dei criteri personalizzati.

È possibile usare la strategia di associazione di file XML per associare il file XML xsD aggiungendo le impostazioni seguenti nel file di VS Code settings.json . A questo scopo:

  1. In VS Code selezionare Preferenze> file>Impostazioni. Per altre informazioni, vedere Impostazioni utente e area di lavoro.

  2. Cercare fileAssociations, quindi in Estensione selezionare il file XML.

  3. Selezionare Modifica in settings.json.

    Screenshot of VS Code XML schema validation.

  4. In settings.json aggiungere il codice JSON seguente:

    "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. Salvare le modifiche.

Nell'esempio seguente viene illustrato un errore di convalida XML. Quando si sposta il mouse sul nome dell'elemento, l'estensione elenca gli elementi previsti.

Screenshot of VS Code XML schema validation error indicator.

Nel caso seguente, l'elemento DisplayName è corretto. Ma, nell'ordine sbagliato. Deve DisplayName essere prima dell'elemento Protocol . Per risolvere il problema, spostare il mouse sull'elemento nell'ordine DisplayName corretto degli elementi.

Screenshot of VS Code XML schema validation order error.

Convalida dei criteri e del caricamento dei criteri

La convalida del file di criteri XML viene eseguita automaticamente al caricamento. La maggior parte degli errori causano errori del caricamento. La convalida include il file di criteri da caricare. Include anche la catena di file a cui si riferisce il file di caricamento (il file dei criteri relying party, il file delle estensioni e il file di base).

Suggerimento

Azure AD B2C esegue una convalida aggiuntiva per i criteri della relying party. Quando si verifica un problema con i criteri, anche se si modificano solo i criteri di estensione, è consigliabile caricare anche i criteri della relying party.

Questa sezione contiene gli errori di convalida comuni e le soluzioni probabili.

Errore di convalida dello schema trovato... elemento figlio '{name}' non valido

Il criterio contiene un elemento XML non valido o l'elemento XML è valido, ma sembra essere nell'ordine errato. Per correggere questo tipo di errore, vedere la sezione Risolvere i problemi di validità dei criteri.

Esiste una sequenza di chiavi duplicata '{number}'

Un percorso utente o un sottopercorso è costituito da un elenco ordinato di passaggi di orchestrazione eseguiti in sequenza. Dopo aver modificato il percorso, numerare i passaggi in sequenza senza ignorare numeri interi da 1 a N.

Suggerimento

È possibile usare l'estensione Azure AD B2C per il comando vs Code(Shift+Ctrl+r) per numerare tutti i percorsi utente e i passaggi di orchestrazione dei percorsi secondari nei criteri.

... era previsto di avere passo con l'ordine "{number}", ma non è stato trovato...

Controllare l'errore precedente.

Ordine dei passaggi di orchestrazione "{number}" nel percorso utente "{name}" ... è seguito da un passaggio di selezione del provider di attestazioni e deve essere uno scambio di attestazioni, ma è di tipo ...

Il tipo di passaggi di orchestrazione di ClaimsProviderSelectione CombinedSignInAndSignUp contiene un elenco di opzioni tra cui un utente può scegliere. Deve seguire per tipo di con uno o più scambi di ClaimsExchange attestazioni.

I passaggi di orchestrazione seguenti causano questo tipo o errore. Il secondo passaggio di orchestrazione deve essere di ClaimsExchangetipo , non 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> -->

... passaggio {number} con 2 scambi di attestazioni. Deve essere preceduto dalla selezione di un provider di attestazioni per determinare quale scambio di attestazioni può essere usato

Un tipo di passaggio di orchestrazione di ClaimsExchange deve avere un singolo ClaimsExchangeoggetto , a meno che il passaggio precedente non sia di ClaimsProviderSelectiontipo o CombinedSignInAndSignUp. I passaggi di orchestrazione seguenti causano questo tipo di errore. Il sesto passaggio contiene due scambi di attestazioni.

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

Per correggere questo tipo di errore, usare due passaggi di orchestrazione. Ogni passaggio di orchestrazione con uno scambio di attestazioni.

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

Esiste una sequenza di chiavi duplicata '{name}'

Un percorso ha più ClaimsExchange con lo stesso Id. I passaggi seguenti causano questo tipo di errore. L'ID AADUserWrite viene visualizzato due volte nel percorso utente.

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

Per correggere questo tipo di errore, modificare lo scambio di attestazioni dei passaggi di orchestrazione con un nome univoco, ad esempio 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> -->

... fa riferimento a ClaimType con ID "{nome attestazione}", ma né i criteri né i relativi criteri di base contengono tale elemento

Questo tipo di errore si verifica quando i criteri fanno riferimento a un'attestazione non dichiarata nello schema delle attestazioni. Le attestazioni devono essere definite in almeno uno dei file nei criteri.

Ad esempio, un profilo tecnico con l'attestazione di output schoolId . Ma l'attestazione di output schoolId non viene mai dichiarata nei criteri o in un criterio predecessore.

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

Per correggere questo tipo di errore, controllare se il ClaimTypeReferenceId valore è digitato in modo errato o non esiste nello schema. Se l'attestazione è definita nei criteri delle estensioni, ma viene usata anche nei criteri di base. Assicurarsi che l'attestazione sia definita nei criteri in cui viene usata o in un criterio di livello superiore.

L'aggiunta dell'attestazione allo schema delle attestazioni risolve questo tipo di errore.

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

... fa un riferimento a un ClaimsTransformation con ID...

La causa di questo errore è simile a quella per l'errore di attestazione. Controllare l'errore precedente.

L'utente è attualmente registrato come utente del tenant 'yourtenant.onmicrosoft.com'...

Si accede con un account da un tenant diverso dal criterio che si tenta di caricare. Ad esempio, l'accesso con admin@contoso.onmicrosoft.com, mentre i criteri TenantId sono impostati su 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>
  • Verificare che il TenantId valore negli <TrustFrameworkPolicy\> elementi e <BasePolicy\> corrisponda al tenant di Azure AD B2C di destinazione.

Il tipo di attestazione "{name}" è l'attestazione di output del profilo tecnico della relying party, ma non è un'attestazione di output nei passaggi del percorso utente...

In un criterio relying party è stata aggiunta un'attestazione di output, ma l'attestazione di output non è un'attestazione di output in nessuno dei passaggi del percorso utente. Azure AD B2C non può leggere il valore dell'attestazione dal contenitore delle attestazioni.

Nell'esempio seguente, l'attestazione schoolId è un'attestazione di output del profilo tecnico della relying party, ma non è un'attestazione di output nei passaggi del percorso utente SignUpOrSignIn .

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

Per correggere questo tipo di errore, assicurarsi che le attestazioni di output vengano visualizzate in almeno una raccolta di attestazioni di output del profilo tecnico dei passaggi di orchestrazione. Se il percorso utente non può restituire l'attestazione, nel profilo tecnico della relying party impostare un valore predefinito, ad esempio una stringa vuota.

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

La stringa di input non era in un formato corretto

Impostare un tipo di valore non corretto su un'attestazione da un altro tipo. Ad esempio, si definisce un'attestazione integer.

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

Provare quindi a impostare un valore stringa:

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

Per correggere questo tipo di errore, assicurarsi di impostare il valore corretto, ad esempio DefaultValue="0".

Il tenant "{name}" ha già un criterio con ID "{name}". Non è possibile archiviare un altro criterio con lo stesso ID

Si tenta di caricare un criterio nel tenant, ma un criterio con lo stesso nome è già caricato nel tenant.

Per correggere questo tipo di errore, quando si carica il criterio, selezionare la casella di controllo Sovrascrivi il criterio personalizzato se esiste già.

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

Passaggi successivi