Řešení potíží s vlastními zásadami Azure AD B2C a toky uživatelů

Než začnete, pomocí selektoru Zvolit typ zásady zvolte typ zásady, kterou nastavujete. Azure Active Directory B2C nabízí dvě metody pro definování způsobu interakce uživatelů s vašimi aplikacemi: prostřednictvím předdefinovaných toků uživatelů nebo prostřednictvím plně konfigurovatelných vlastních zásad. Kroky vyžadované v tomto článku se pro každou metodu liší.

Vaše aplikace musí zpracovávat určité chyby pocházející ze služby Azure B2C. Tento článek popisuje některé běžné chyby a způsob jejich zpracování.

Chyba resetování hesla

K této chybě dochází v případě , že v toku uživatele není povolené samoobslužné resetování hesla. Když tedy vyberete odkaz Zapomněli jste heslo? Neaktivuje se tok uživatele pro resetování hesla. Místo toho se kód AADB2C90118 chyby vrátí do vaší aplikace.

Existují 2 řešení tohoto problému:

Uživatel operaci zrušil.

Služba Azure AD B2C může také vrátit aplikaci chybu, když uživatel zruší operaci. Tady jsou příklady scénářů, ve kterých uživatel provádí operaci zrušení:

  • Zásady uživatele používají doporučené prostředí samoobslužného resetování hesla (SSPR) s místním účtem příjemce. Uživatel vybere odkaz Zapomenuté heslo? A pak před dokončením prostředí toku uživatele vybere tlačítko Zrušit . V tomto případě služba Azure AD B2C vrátí do vaší aplikace kód AADB2C90091 chyby.
  • Uživatel se rozhodne ověřit pomocí externího zprostředkovatele identity, jako je LinkedIn. Uživatel před ověřením u samotného zprostředkovatele identity vybere tlačítko Storno . V tomto případě služba Azure AD B2C vrátí do vaší aplikace kód AADB2C90273 chyby. Přečtěte si další informace o návratu služby Azure Active Directory B2C s kódy chyb.

Pokud chcete tuto chybu zpracovat, načtěte popis chyby uživatele a pomocí stejného toku uživatele načtěte nový požadavek na ověření.

Pokud používáte vlastní zásady Azure Active Directory B2C (Azure AD B2C), může docházet k problémům s formátem XML jazyka zásad nebo problémy s modulem runtime. Tento článek popisuje některé nástroje a tipy, které vám můžou pomoct při zjišťování a řešení problémů.

Tento článek se zaměřuje na řešení potíží s konfigurací vlastních zásad Azure AD B2C. Neřeší aplikaci předávající strany ani její knihovnu identit.

Přehled ID korelace Azure AD B2C

ID korelace Azure AD B2C je jedinečná hodnota identifikátoru, která je připojená k žádostem o autorizaci. Prochází všemi kroky orchestrace, kterými uživatel prochází. S ID korelace můžete:

  • Identifikujte ve své aplikaci přihlašovací aktivitu a sledujte výkon zásad.
  • Vyhledejte protokoly Aplikace Azure Přehledy žádosti o přihlášení.
  • Předejte ID korelace do rozhraní REST API a použijte ho k identifikaci toku přihlášení.

ID korelace se změní při každém vytvoření nové relace. Při ladění zásad se ujistěte, že zavřete existující karty prohlížeče nebo otevřete nový prohlížeč v privátním režimu.

Požadavky

Získání ID korelace Azure AD B2C

ID korelace najdete na registrační stránce nebo přihlašovací stránce Azure AD B2C. V prohlížeči vyberte zdroj zobrazení. Korelace se zobrazí jako komentář v horní části stránky.

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

Zkopírujte ID korelace a pokračujte v toku přihlašování. Pomocí ID korelace můžete sledovat chování přihlašování. Další informace najdete v tématu Řešení potíží s Přehledy aplikací.

Ozvěte ID korelace Azure AD B2C

Id korelace můžete zahrnout do tokenů Azure AD B2C. Zahrnutí ID korelace:

  1. Otevřete soubor s příponami zásad. Například, SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  2. Vyhledejte element BuildingBlocks . Pokud prvek neexistuje, přidejte ho.

  3. Vyhledejte element ClaimsSchema . Pokud prvek neexistuje, přidejte ho.

  4. Přidejte deklaraci ID korelace do elementu ClaimsSchema .

    <!-- 
    <BuildingBlocks>
      <ClaimsSchema> -->
        <ClaimType Id="correlationId">
          <DisplayName>correlation ID</DisplayName>
          <DataType>string</DataType>
        </ClaimType>
      <!-- 
      </ClaimsSchema>
    </BuildingBlocks>-->
    
  5. Otevřete soubor předávající strany vaší zásady. Například SocialAndLocalAccounts/SignUpOrSignIn.xml soubor. Výstupní deklarace identity se přidá do tokenu po úspěšné cestě uživatele a odešle se do aplikace. Upravte prvek technického profilu v části předávající strany tak, aby se přidal jako correlationId výstupní deklarace identity.

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

Řešení potíží s Přehledy aplikací

K diagnostice problémů s vlastními zásadami použijte Přehledy aplikace. Aplikace Přehledy trasuje aktivitu vaší cesty uživatele vlastních zásad. Poskytuje způsob, jak diagnostikovat výjimky a sledovat výměnu deklarací identity mezi Azure AD B2C a různými zprostředkovateli deklarací identity. Zprostředkovatelé deklarací identity jsou definováni technickými profily, jako jsou zprostředkovatelé identity, služby založené na rozhraní API, uživatelský adresář Azure AD B2C a další služby.

Doporučujeme nainstalovat rozšíření Azure AD B2C pro VS Code. S rozšířením Azure AD B2C jsou protokoly uspořádané podle názvu zásady, ID korelace (application Přehledy představuje první číslici ID korelace) a časové razítko protokolu. Tato funkce vám pomůže najít relevantní protokol na základě místního časového razítka a zobrazit cestu uživatele, jak ji spouští Azure AD B2C.

Poznámka:

  • Existuje krátké zpoždění, obvykle méně než pět minut, než uvidíte nové protokoly v Přehledy aplikace.
  • Komunita vyvinula rozšíření Visual Studio Code pro Azure AD B2C, které vývojářům identit pomůže. Microsoft rozšíření nepodporuje a je k dispozici výhradně tak, jak je.

Tok jednotného přihlašování může vydat více než jedno trasování Aplikace Azure Přehledy. Na následujícím snímku obrazovky má zásada B2C_1A_signup_signin tři protokoly. Každý protokol představuje část toku přihlášení.

Následující snímek obrazovky ukazuje rozšíření Azure AD B2C pro VS Code s průzkumníkem trasování Aplikace Azure Přehledy.

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

Filtrování protokolu trasování

Když se zaměříte na Průzkumníka trasování Azure AD B2C, začněte psát první číslici ID korelace nebo čas, který chcete najít. V pravém horním rohu Průzkumníka trasování Azure AD B2C se zobrazí pole filtru, které ukazuje, co jste zatím zadali, a zvýrazní se odpovídající protokoly trasování.

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

Když najedete myší na pole filtru a vyberete Povolit filtr podle typu , zobrazí se pouze odpovídající protokoly trasování. Pomocí tlačítka Vymazat X vymažte filtr.

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

Podrobnosti protokolu trasování Přehledy aplikace

Když vyberete trasování Aplikace Azure Přehledy, rozšíření otevře okno s podrobnostmi aplikace Přehledy s následujícími informacemi:

  • Aplikační Přehledy – obecné informace o protokolu trasování, včetně názvu zásady, ID korelace, Aplikace Azure Přehledy ID trasování a časového razítka trasování.
  • Technické profily – seznam technických profilů, které se zobrazují v protokolu trasování
  • Deklarace identity – abecední seznam deklarací identity, které se zobrazují v protokolu trasování a jejich hodnotách. Pokud se deklarace identity zobrazí v protokolu trasování několikrát s různými hodnotami, označí znaménko => nejnovější hodnotu. Tyto deklarace identity můžete zkontrolovat a zjistit, jestli jsou očekávané hodnoty deklarací identity správně nastavené. Pokud máte například předběžnou podmínku, která kontroluje hodnotu deklarace identity, může vám oddíl deklarací pomoci určit, proč se očekávaný tok chová odlišně.
  • Transformace deklarací identity – seznam transformací deklarací identity, které se zobrazují v protokolu trasování. Každá transformace deklarací identity obsahuje vstupní deklarace identity, vstupní parametry a výstupní deklarace identity. Oddíl transformace deklarací identity poskytuje přehled o datech odesílaných a výsledku transformace deklarací.
  • Tokeny – seznam tokenů, které se zobrazují v protokolu trasování Tokeny zahrnují základní federované OAuth a OpenId Připojení tokeny zprostředkovatele identity. Token zprostředkovatele federované identity poskytuje podrobnosti o tom, jak zprostředkovatel identity vrací deklarace identity do Azure AD B2C, abyste mohli namapovat výstupní deklarace identity zprostředkovatele identity.
  • Výjimky – seznam výjimek nebo závažné chyby, které se zobrazují v protokolu trasování
  • Json Přehledy aplikace – nezpracovaná data, která vrací z aplikačního Přehledy.

Následující snímek obrazovky ukazuje příklad okna s podrobnostmi protokolu trasování Přehledy aplikace.

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

Řešení potíží s tokeny JWT

Pro účely ověřování a ladění tokenů JWT můžete dekódovat JWT pomocí webu, jako je https://jwt.ms. Vytvořte testovací aplikaci, která může přesměrovat na https://jwt.ms kontrolu tokenu. Pokud jste to ještě neudělali, zaregistrujte webovou aplikaci a povolte implicitní udělení tokenu ID.

Screenshot of JWT token preview.

Použijte možnost Spustit a https://jwt.ms otestujte zásady nezávisle na vaší webové nebo mobilní aplikaci. Tento web funguje jako aplikace předávající strany. Zobrazí obsah webového tokenu JSON (JWT), který vygeneruje vaše zásada Azure AD B2C.

Řešení potíží s protokolem SAML

Pokud chcete pomoct s konfigurací a laděním integrace s vaším poskytovatelem služeb, můžete použít rozšíření prohlížeče pro protokol SAML, například rozšíření SAML DevTools pro Chrome, SAML-tracer pro FireFox nebo Edge nebo IE Vývojářské nástroje.

Následující snímek obrazovky ukazuje, jak rozšíření SAML DevTools představuje požadavek SAML na Azure AD B2C odesílá zprostředkovateli identity a odpověď SAML.

Screenshot of SAML protocol trace log.

Pomocí těchto nástrojů můžete zkontrolovat integraci mezi vaší aplikací a Azure AD B2C. Příklad:

  • Zkontrolujte, jestli požadavek SAML obsahuje podpis, a zjistěte, jaký algoritmus se používá k přihlášení k žádosti o autorizaci.
  • Zkontrolujte, jestli Azure AD B2C vrací chybovou zprávu.
  • Zkontrolujte, jestli je oddíl kontrolního výrazu zašifrovaný.
  • Získejte název deklarací identity, které vrátí zprostředkovatele identity.

S Fiddlerem můžete také sledovat výměnu zpráv mezi klientským prohlížečem a Azure AD B2C. Může vám pomoct zjistit, kde cesta uživatele selhává v krocích orchestrace.

Řešení potíží s platností zásad

Po dokončení vývoje zásad nahrajete zásady do Azure AD B2C. Můžou se zde vyskytovat nějaké problémy s vašimi zásadami, ale zásady můžete před nahráním použít jako platnost.

Nejběžnější chyba při nastavování vlastních zásad je nesprávně formátovaná xml. Dobrý editor XML je téměř nezbytný. Nativně zobrazuje xml, obsah barevných kódů, předvyplní běžné termíny, udržuje elementy XML indexované a může ověřit schématu XML.

Doporučujeme používat Visual Studio Code. Pak nainstalujte rozšíření XML, jako je podpora jazyka XML pomocí Red Hatu. Rozšíření XML ověří schéma XML před nahráním souboru XML pomocí definice schématu XSD vlastních zásad.

Strategii přidružení souboru XML můžete použít k vytvoření vazby souboru XML XSD přidáním následujících nastavení do souboru VS Code settings.json . Postup:

  1. V nástroji VS Code vyberte Předvolby> souborů>Nastavení. Další informace naleznete v tématu Uživatel a pracovní prostor Nastavení.

  2. Vyhledejte soubory Asociace a pak v části Přípona vyberte XML.

  3. Vyberte Upravit v souboru settings.json.

    Screenshot of VS Code XML schema validation.

  4. Do souboru settings.json přidejte následující kód JSON:

    "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. Uložte změny.

Následující příklad ukazuje chybu ověření XML. Když přesunete myš nad název prvku, seznam přípony obsahuje očekávané prvky.

Screenshot of VS Code XML schema validation error indicator.

V následujícím případě DisplayName je prvek správný. Ale ve špatném pořadí. Hodnota DisplayName by měla být před elementem Protocol . Pokud chcete tento problém vyřešit, přesuňte myš na DisplayName prvek do správného pořadí prvků.

Screenshot of VS Code XML schema validation order error.

Nahrání zásad a ověřování zásad

Ověření souboru zásad XML se provádí automaticky při nahrávání. Většina chyb způsobí selhání nahrávání. Ověření zahrnuje soubor zásad, který chcete nahrát. Zahrnuje také řetěz souborů, na které soubor nahrání odkazuje (soubor zásad předávající strany, soubor přípon a základní soubor).

Tip

Azure AD B2C spouští další ověření zásad předávající strany. Pokud máte problém se zásadami, i když upravujete jenom zásady rozšíření, je vhodné nahrát i zásady předávající strany.

Tato část obsahuje běžné chyby ověřování a pravděpodobná řešení.

Byla nalezena chyba ověření schématu... má neplatný podřízený element {name}.

Vaše zásada obsahuje neplatný element XML nebo je platný element XML, ale zdá se, že je v nesprávném pořadí. Pokud chcete tento typ chyby opravit, přečtěte si část Řešení potíží s platností zásad.

Existuje duplicitní posloupnost klíčů {number}.

Cesta uživatele nebo dílčí cesta se skládá z seřazeného seznamu kroků orchestrace, které se spouštějí postupně. Po změně cesty přečíslujte kroky postupně bez vynechání celých čísel od 1 do N.

Tip

Pomocí rozšíření Azure AD B2C pro příkaz VS Code(Shift+Ctrl+r) můžete přečíslovat všechny cesty uživatelů a dílčí cesty orchestrace ve vašich zásadách.

... bylo očekáváno, že bude mít krok s objednávkou {number}, ale nebyl nalezen...

Zkontrolujte předchozí chybu.

Pořadí kroku orchestrace {number} na cestě uživatele {name} ... následuje krok výběru zprostředkovatele deklarací identity a musí se jednat o výměnu deklarací identity, ale je to typ...

Typ ClaimsProviderSelectionkroků orchestrace a CombinedSignInAndSignUp obsahuje seznam možností, ze které si uživatel může vybrat. Musí následovat podle typu ClaimsExchange jedné nebo více výměn deklarací identity.

Následující kroky orchestrace způsobují tento typ nebo chybu. Druhý krok orchestrace musí být typu ClaimsExchange, nikoli 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> -->

... krok {number} se 2 výměnami deklarací. Musí mu předcházet výběr zprostředkovatele deklarací identity, aby bylo možné určit, která výměna deklarací identity se dá použít.

Typ ClaimsExchange kroku orchestrace musí mít jeden ClaimsExchange, pokud předchozí krok není typem ClaimsProviderSelectionnebo CombinedSignInAndSignUp. Tento typ chyby způsobují následující kroky orchestrace. Šestý krok obsahuje dvě výměny deklarací identity.

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

Pokud chcete tento typ chyby opravit, použijte dva kroky orchestrace. Každý krok orchestrace s jednou výměnou deklarací identity.

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

Existuje duplicitní posloupnost klíčů {name}.

Cesta má více ClaimsExchange se stejnými Id. Tento typ chyby způsobují následující kroky. Id AADUserWrite se v cestě uživatele zobrazí dvakrát.

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

Pokud chcete tento typ chyby opravit, změňte výměnu deklarací identity osmého postupu orchestrace na jedinečný název, například 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> -->

... odkazuje na ClaimType s ID {claim name}, ale zásady ani žádné základní zásady neobsahují takový prvek.

K tomuto typu chyby dojde, když vaše zásada odkazuje na deklaraci identity, která není deklarována ve schématu deklarací identity. Deklarace identity musí být definovány alespoň v jednom ze souborů v zásadách.

Například technický profil s deklarací výstupu schoolId . Ale výstupní deklarací identity schoolId se nikdy nehlásí v zásadách ani v nadřazené zásadě.

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

Pokud chcete tento typ chyby opravit, zkontrolujte, jestli ClaimTypeReferenceId je hodnota chybně napsaná nebo neexistuje ve schématu. Pokud je deklarace identity definovaná v zásadách rozšíření, ale používá se také v základní zásadě. Ujistěte se, že je deklarace identity definovaná v zásadě, ve které se používá, nebo v zásadách vyšší úrovně.

Přidání deklarace identity do schématu deklarací identity řeší tento typ chyby.

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

... vytvoří odkaz na ClaimsTransformation s ID...

Příčina této chyby je podobná té, která odpovídá chybě deklarace identity. Zkontrolujte předchozí chybu.

Uživatel je aktuálně přihlášený jako uživatel tenanta yourtenant.onmicrosoft.com...

Přihlásíte se pomocí účtu z tenanta, který se liší od zásad, které se pokoušíte nahrát. Například vaše přihlášení pomocí admin@contoso.onmicrosoft.com, zatímco vaše zásada TenantId je nastavena na 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>
  • Zkontrolujte, jestli TenantId hodnota v objektech <TrustFrameworkPolicy\> a <BasePolicy\> prvech odpovídá cílovému tenantovi Azure AD B2C.

Typ deklarace identity {name} je výstupní deklarace identity technického profilu předávající strany, ale nejedná se o výstupní deklaraci identity v žádném z kroků cesty uživatele...

V zásadách předávající strany jste přidali výstupní deklaraci identity, ale výstupní deklarace identity není výstupní deklarací identity v žádném z kroků cesty uživatele. Azure AD B2C nemůže číst hodnotu deklarace identity z balíčku deklarací identity.

V následujícím příkladu je deklarace schoolId výstupní deklarací technického profilu předávající strany, ale nejedná se o výstupní deklaraci identity v žádném z kroků cesty uživatele SignUpOrSignIn .

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

Pokud chcete tento typ chyby opravit, ujistěte se, že se výstupní deklarace identity zobrazují alespoň v jedné kolekci výstupních deklarací identity profilu orchestrace. Pokud cesta uživatele nemůže vytvořit výstup deklarace identity, nastavte v technickém profilu předávající strany výchozí hodnotu, například prázdný řetězec.

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

Vstupní řetězec nebyl ve správném formátu.

Nastavte nesprávný typ hodnoty na deklaraci identity z jiného typu. Definujete například celočíselnou deklaraci identity.

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

Pak se pokusíte nastavit řetězcovou hodnotu:

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

Chcete-li tento typ chyby opravit, ujistěte se, že jste nastavili správnou hodnotu, například DefaultValue="0".

Tenant {name} už má zásadu s ID {name}. Jiné zásady se stejným ID nelze uložit.

Pokusíte se nahrát zásadu do tenanta, ale zásada se stejným názvem se už nahraje do vašeho tenanta.

Pokud chcete tento typ chyby opravit, zaškrtněte při nahrání zásady políčko Přepsat vlastní zásadu, pokud už existuje .

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

Další kroky