B2C özel ilkeleri ve kullanıcı akışları Azure AD sorunlarını giderme

Başlamadan önce, ayarladığınız ilke türünü seçmek için İlke türü seçin seçicisini kullanın. Azure Active Directory B2C, kullanıcıların uygulamalarınızla nasıl etkileşim kurduğunu tanımlamak için iki yöntem sunar: önceden tanımlanmış kullanıcı akışları veya tam olarak yapılandırılabilir özel ilkeler aracılığıyla. Bu makalede gereken adımlar her yöntem için farklıdır.

Uygulamanızın Azure B2C hizmetinden gelen belirli hataları işlemesi gerekir. Bu makalede yaygın hatalardan bazıları ve bunların nasıl işlenecekleri vurgulanır.

Parola sıfırlama hatası

Bu hata, bir kullanıcı akışında self servis parola sıfırlama deneyimi etkinleştirilmediğinde oluşur. Bu nedenle Parolanızı mı unuttunuz? bağlantısı seçildiğinde parola sıfırlama kullanıcı akışı tetiklemez. Bunun yerine hata kodu AADB2C90118 uygulamanıza döndürülür.

Bu sorunun 2 çözümü vardır:

Kullanıcı işlemi iptal etti

Azure AD B2C hizmeti, kullanıcı işlemi iptal ettiğinde uygulamanıza bir hata da döndürebilir. Aşağıda, kullanıcının iptal işlemi gerçekleştirdiği senaryo örnekleri verilmiştir:

  • Kullanıcı ilkesi, tüketici yerel hesabıyla önerilen self servis parola resect (SSPR) deneyimini kullanır. Kullanıcı, kullanıcı akışı deneyimi tamamlanmadan önce Parolanızı mı unuttunuz? bağlantısını seçer ve ardından İptal düğmesini seçer. Bu durumda, Azure AD B2C hizmeti uygulamanıza hata kodu AADB2C90091 döndürür.
  • Kullanıcı LinkedIn gibi bir dış kimlik sağlayıcısıyla kimlik doğrulamayı seçer. Kullanıcı, kimlik sağlayıcısının kimliğini doğrulamadan önce İptal düğmesini seçer. Bu durumda, Azure AD B2C hizmeti uygulamanıza hata kodu AADB2C90273 döndürür. Azure Active Directory B2C hizmet iadesi hata kodları hakkında daha fazla bilgi edinin.

Bu hatayı işlemek için kullanıcının hata açıklamasını getirin ve aynı kullanıcı akışını kullanarak yeni bir kimlik doğrulama isteğiyle yanıt verin.

Azure Active Directory B2C (Azure AD B2C) özel ilkelerini kullanıyorsanız, ilke dili XML biçimi veya çalışma zamanı sorunlarıyla karşılaşabilirsiniz. Bu makalede, sorunları keşfetmenize ve çözmenize yardımcı olabilecek bazı araçlar ve ipuçları açıklanmaktadır.

Bu makale, Azure AD B2C özel ilke yapılandırmanızın sorunlarını gidermeye odaklanır. Bağlı olan taraf uygulamasını veya kimlik kitaplığını ele almaz.

B2C bağıntı kimliğine genel bakış Azure AD

Azure AD B2C bağıntı kimliği, yetkilendirme isteklerine eklenmiş benzersiz bir tanımlayıcı değeridir. Kullanıcının geçirdiği tüm düzenleme adımlarından geçer. Bağıntı kimliği ile şunları yapabilirsiniz:

  • Uygulamanızda oturum açma etkinliğini belirleyin ve ilkenizin performansını izleyin.
  • Oturum açma isteğinin Azure Uygulaması İçgörüler günlüklerini bulun.
  • Bağıntı kimliğini REST API'nize geçirin ve oturum açma akışını tanımlamak için kullanın.

Bağıntı kimliği her yeni oturum oluşturulduğunda değiştirilir. İlkelerinizde hata ayıklarken mevcut tarayıcı sekmelerini kapattığınızdan veya yeni bir özel mod tarayıcı açtığınızdan emin olun.

Önkoşullar

Azure AD B2C bağıntı kimliğini alma

bağıntı kimliğini Azure AD B2C kaydolma veya oturum açma sayfasında bulabilirsiniz. Tarayıcınızda kaynağı görüntüle'yi seçin. Bağıntı, sayfanın en üstünde bir açıklama olarak görünür.

Azure AD B2C oturum açma sayfası görünüm kaynağının ekran görüntüsü.

Bağıntı kimliğini kopyalayın ve oturum açma akışına devam edin. Oturum açma davranışını gözlemlemek için bağıntı kimliğini kullanın. Daha fazla bilgi için bkz. Application Insights ile sorun giderme.

Azure AD B2C bağıntı kimliğini yankıla

bağıntı kimliğini Azure AD B2C belirteçlerinize ekleyebilirsiniz. Bağıntı kimliğini eklemek için:

  1. İlkenizin uzantılar dosyasını açın. Örneğin, SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  2. BuildingBlocks öğesini arayın. Öğe yoksa ekleyin.

  3. ClaimsSchema öğesini bulun. Öğe yoksa ekleyin.

  4. ClaimsSchema öğesine bağıntı kimliği talebi ekleyin.

    <!-- 
    <BuildingBlocks>
      <ClaimsSchema> -->
        <ClaimType Id="correlationId">
          <DisplayName>correlation ID</DisplayName>
          <DataType>string</DataType>
        </ClaimType>
      <!-- 
      </ClaimsSchema>
    </BuildingBlocks>-->
    
  5. İlkenizin bağlı olan taraf dosyasını açın. Örneğin, SocialAndLocalAccounts/SignUpOrSignIn.xml dosya. Çıkış talebi, başarılı bir kullanıcı yolculuğundan sonra belirteçe eklenir ve uygulamaya gönderilir. bağlı olan taraf bölümündeki teknik profil öğesini değiştirerek çıkış talebi olarak ekleyin correlationId .

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

Application Insights ile ilgili sorunları giderme

Özel ilkelerinizle ilgili sorunları tanılamak için Application Insights'ı kullanın. Application Insights, özel ilke kullanıcı yolculuğunuzun etkinliğini izler. Özel durumları tanılamak ve Azure AD B2C ile kimlik sağlayıcıları, API tabanlı hizmetler, Azure AD B2C kullanıcı dizini ve diğer hizmetler gibi teknik profiller tarafından tanımlanan çeşitli talep sağlayıcıları arasındaki taleplerin değişimini gözlemlemek için bir yol sağlar.

VS Code için Azure AD B2C uzantısını yüklemenizi öneririz. Azure AD B2C uzantısıyla günlükler sizin için ilke adına, bağıntı kimliğine (Application Insights bağıntı kimliğinin ilk rakamını gösterir) ve günlük zaman damgasına göre düzenlenir. Bu özellik, yerel zaman damgasına göre ilgili günlüğü bulmanıza ve B2C Azure AD tarafından yürütülen kullanıcı yolculuğunu görmenize yardımcı olur.

Not

  • Application Insights'ta yeni günlükleri görebilmeniz için genellikle beş dakikadan kısa bir gecikme olur.
  • Topluluk, Azure AD B2C için kimlik geliştiricilerine yardımcı olmak için Visual Studio Code uzantısını geliştirmiştir. Uzantı Microsoft tarafından desteklenmez ve kesinlikle olduğu gibi kullanılabilir hale getirilir.

Tek bir oturum açma akışı birden fazla Azure Uygulaması İçgörü izlemesi verebilir. Aşağıdaki ekran görüntüsünde , B2C_1A_signup_signin ilkesinin üç günlüğü vardır. Her günlük, oturum açma akışının bir bölümünü temsil eder.

Aşağıdaki ekran görüntüsünde, Azure Uygulaması Insights izleme gezgini ile VS Code için Azure AD B2C uzantısı gösterilmektedir.

Azure Uygulaması Insights izlemesiyle VS Code için Azure AD B2C uzantısının ekran görüntüsü.

İzleme günlüğünü filtreleme

Odak Azure AD B2C izleme gezginindeyse, bağıntı kimliğinin ilk rakamını veya bulmak istediğiniz zamanı yazmaya başlayın. Azure AD B2C izleme gezgininin sağ üst kısmında, şu ana kadar yazdıklarınız gösteren bir filtre kutusu görürsünüz ve eşleşen izleme günlükleri vurgulanır.

B2C izleme gezgini filtre vurgulama Azure AD Azure AD B2C uzantısının ekran görüntüsü.

Filtre kutusunun üzerine gelindiğinde ve Tür üzerinde Filtreyi Etkinleştir'i seçtiğinizde yalnızca eşleşen izleme günlükleri gösterilir. Filtreyi temizlemek için 'X' Temizle düğmesini kullanın.

B2C izleme gezgini filtresi Azure AD Azure AD B2C uzantısının ekran görüntüsü.

Application Insights izleme günlüğü ayrıntıları

Azure Uygulaması İçgörüler izlemesini seçtiğinizde uzantı, aşağıdaki bilgileri içeren Application Insights ayrıntıları penceresini açar:

  • Application Insights - İlke adı, bağıntı kimliği, Azure Uygulaması İçgörüler izleme kimliği ve izleme zaman damgası dahil olmak üzere izleme günlüğü hakkındaki genel bilgiler.
  • Teknik profiller - İzleme günlüğünde görünen teknik profillerin listesi.
  • Talepler - İzleme günlüğünde ve bunların değerlerinde görünen taleplerin alfabetik listesi. İzleme günlüğünde farklı değerlerle birden çok kez bir talep görünüyorsa, => bir işaret en yeni değeri gösterir. Beklenen talep değerlerinin doğru ayarlandığını belirlemek için bu talepleri gözden geçirebilirsiniz. Örneğin, bir talep değerini denetleyen bir ön koşula sahipseniz, talepler bölümü beklenen bir akışın neden farklı davrandığını belirlemenize yardımcı olabilir.
  • Talep dönüştürme - İzleme günlüğünde görünen talep dönüştürmelerinin listesi. Her talep dönüştürmesi giriş taleplerini, giriş parametrelerini ve çıkış taleplerini içerir. Talep dönüştürme bölümü, gönderilen veriler ve talep dönüştürme işleminin sonucu hakkında içgörü sağlar.
  • Belirteçler - İzleme günlüğünde görünen belirteçlerin listesi. Belirteçler, temel alınan federasyon OAuth'u ve OpenId Connect kimlik sağlayıcısının belirteçlerini içerir. Federasyon kimlik sağlayıcısının belirteci, kimlik sağlayıcısı teknik profil çıkış taleplerini eşlemeniz için kimlik sağlayıcısının talepleri Azure AD B2C'ye nasıl döndürdüğü hakkında ayrıntılı bilgi verir.
  • Özel durumlar - İzleme günlüğünde görünen özel durumların veya önemli hataların listesi.
  • Application Insights JSON - Application Insights'tan döndürdüğü ham veriler.

Aşağıdaki ekran görüntüsünde Application Insights izleme günlüğü ayrıntıları penceresinin bir örneği gösterilmektedir.

B2C izleme raporu Azure AD Azure AD B2C uzantısının ekran görüntüsü.

JWT belirteçleriyle ilgili sorunları giderme

JWT belirteci doğrulama ve hata ayıklama amacıyla JWT'lerin kodunu çözmek için gibi https://jwt.msbir site kullanabilirsiniz. Belirteç incelemesi için adresine https://jwt.ms yönlendirebilen bir test uygulaması oluşturun. Henüz yapmadıysanız , bir web uygulaması kaydedin ve kimlik belirteci örtük verme özelliğini etkinleştirin.

JWT belirteci önizlemesinin ekran görüntüsü.

İlkelerinizi web veya mobil uygulamanızdan bağımsız olarak test etmek için Şimdi çalıştır ve https://jwt.ms seçeneğini kullanın. Bu web sitesi bağlı olan taraf uygulaması gibi davranır. Azure AD B2C ilkeniz tarafından oluşturulan JSON web belirtecinin (JWT) içeriğini görüntüler.

SAML protokolü sorunlarını giderme

Hizmet sağlayıcınızla tümleştirmeyi yapılandırmaya ve hatalarını ayıklamaya yardımcı olmak için SAML protokolü için bir tarayıcı uzantısı kullanabilirsiniz; örneğin, Chrome için SAML Geliştirici Araçları uzantısı, FireFox için SAML izlemesi veya Edge veya IE Geliştirici araçları.

Aşağıdaki ekran görüntüsünde, SAML DevTools uzantısının B2C'nin kimlik sağlayıcısına gönderdiği Azure AD SAML isteğini ve SAML yanıtını nasıl sunduğu gösterilmektedir.

SAML protokolü izleme günlüğünün ekran görüntüsü.

Bu araçları kullanarak uygulamanızla Azure AD B2C arasındaki tümleştirmeyi de kontrol edebilirsiniz. Örnek:

  • SAML isteğinin imza içerip içermediğini denetleyin ve yetkilendirme isteğinde oturum açmak için hangi algoritmanın kullanıldığını belirleyin.
  • Azure AD B2C'nin hata iletisi döndürip döndürmediğini denetleyin.
  • Onaylama bölümünün şifrelenip şifrelenmediğini denetleyin.
  • Kimlik sağlayıcısını döndüren taleplerin adını alın.

Fiddler ile istemci tarayıcınız ile Azure AD B2C arasında ileti alışverişini de izleyebilirsiniz. Düzenleme adımlarınızda kullanıcı yolculuğunuzun nerede başarısız olduğunu gösteren bir gösterge almanıza yardımcı olabilir.

İlke geçerlilik sorunlarını giderme

İlkenizi geliştirmeyi tamamladıktan sonra, ilkeyi Azure AD B2C'ye yüklersiniz. İlkenizle ilgili bazı sorunlar olabilir, ancak karşıya yüklemeden önce ilkenizin geçerliliğini sağlayabilirsiniz.

Özel ilkeleri ayarlamada en yaygın hata düzgün biçimlendirilmemiş XML'dir. İyi bir XML düzenleyicisi neredeyse çok önemlidir. XML'yi yerel olarak görüntüler, renk kodları içeriği görüntüler, ortak terimleri önceden doldurur, XML öğelerini dizine alır ve xml şemasında doğrulayabilir.

Visual Studio Code kullanmanızı öneririz. Ardından Red Hat'in XML Dil Desteği gibi bir XML uzantısı yükleyin. XML uzantısı, XML dosyanızı karşıya yüklemeden önce özel ilke XSD şema tanımını kullanarak XML şemasını doğrulamanızı sağlar.

XML dosya ilişkilendirme stratejisini kullanarak VS Code settings.json dosyanıza aşağıdaki ayarları ekleyerek XML dosyasını XSD'ye bağlayabilirsiniz. Bunun için:

  1. VS Code'dan Dosya>Tercihleri Ayarları'nı> seçin. Daha fazla bilgi için bkz. Kullanıcı ve Çalışma Alanı Ayarları.

  2. fileAssociations için arama yapın, ardından Uzantı'nın altında XML'yi seçin.

  3. settings.json dosyasında Düzenle'yi seçin.

    VS Code XML şema doğrulamasının ekran görüntüsü.

  4. settings.json dosyasına aşağıdaki JSON kodunu ekleyin:

    "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ğişiklikleri kaydedin.

Aşağıdaki örnekte xml doğrulama hatası gösterilmektedir. Farenizi öğe adının üzerine taşıdığınızda, uzantı beklenen öğeleri listeler.

VS Code XML şema doğrulama hata göstergesinin ekran görüntüsü.

Aşağıdaki örnekte öğesi DisplayName doğrudur. Ama yanlış sırada. DisplayName öğesinden Protocol önce olmalıdır. Sorunu çözmek için farenizi öğenin üzerine DisplayName getirin ve öğelerin doğru sırasına getirin.

VS Code XML şema doğrulama sırası hatasının ekran görüntüsü.

İlkeleri karşıya yükleme ve ilke doğrulama

XML ilke dosyasının doğrulanması karşıya yüklemede otomatik olarak gerçekleştirilir. Hataların çoğu karşıya yüklemenin başarısız olmasına neden olur. Doğrulama, karşıya yüklediğiniz ilke dosyasını içerir. Ayrıca karşıya yükleme dosyasının başvurduğu dosya zincirini de içerir (bağlı olan taraf ilke dosyası, uzantılar dosyası ve temel dosya).

İpucu

Azure AD B2C, bağlı olan taraf ilkesi için ek doğrulama çalıştırır. İlkenizle ilgili bir sorun yaşarken, yalnızca uzantı ilkesini düzenleseniz bile, bağlı olan taraf ilkesini de karşıya yüklemek iyi bir uygulamadır.

Bu bölüm yaygın doğrulama hatalarını ve olası çözümleri içerir.

Şema doğrulama hatası bulundu... geçersiz '{name}' alt öğesi var

İlkeniz geçersiz bir XML öğesi içeriyor veya XML öğesi geçerli, ancak yanlış sırada görünüyor. Bu tür bir hatayı düzeltmek için İlke geçerlilik sorunlarını giderme bölümüne göz atın.

Yinelenen '{number}' anahtar dizisi var

Kullanıcı yolculuğu veya alt yolculuğu , sırayla yürütülen düzenleme adımlarının sıralı bir listesinden oluşur. Yolculuğunuzu değiştirdikten sonra, 1'den N'ye kadar olan tamsayıları atlamadan adımları sıralı olarak yeniden numaralandırın.

İpucu

İlkenizdeki tüm kullanıcı yolculuklarını ve alt yolculuk düzenleme adımlarını yeniden numaralandırmak için VS Code(Shift+Ctrl+r) için Azure AD B2C uzantısını kullanabilirsiniz.

... "{number}" siparişini içeren bir adım olması bekleniyordu, ancak bulunamadı...

Önceki hatayı denetleyin.

"{name}" kullanıcı yolculuğunda düzenleme adımı sırası "{number}" ... ardından bir talep sağlayıcısı seçim adımı gelir ve bir talep değişimi olmalıdır, ancak bu tür...

düzenleme adımları türüdür ClaimsProviderSelectionve CombinedSignInAndSignUp bir kullanıcının seçebileceği seçeneklerin listesini içerir. Bir veya daha fazla talep değişimi ile türüne ClaimsExchange göre izlenmelidir.

Aşağıdaki düzenleme adımları bu türe veya hataya neden olur. İkinci düzenleme adımı , değil ClaimsProviderSelectiontüründe ClaimsExchangeolmalıdır.

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

... 2 talep değişimiyle {number} adımı. Hangi talep değişiminin kullanılabileceğini belirlemek için bu seçimden önce bir talep sağlayıcısı seçimi bulunmalıdır

Düzenleme adımı türününClaimsExchange, önceki adım veya türünde ClaimsProviderSelectionCombinedSignInAndSignUpolmadığı sürece tek ClaimsExchangebir olmalıdır. Aşağıdaki düzenleme adımları bu tür bir hataya neden olur. Altıncı adım iki talep değişimi içerir.

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

Bu tür bir hatayı düzeltmek için iki düzenleme adımı kullanın. Tek bir talep değişimiyle her düzenleme adımı.

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

Yinelenen bir '{name}' anahtar dizisi var

Bir yolculukta aynı Idolan birden çok ClaimsExchange vardır. Aşağıdaki adımlar bu tür bir hataya neden olur. Kimlik AADUserWrite , kullanıcı yolculuğunda iki kez görünür.

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

Bu tür bir hatayı düzeltmek için sekizinci düzenleme adımlarının talep değişimini Call-REST-API gibi benzersiz bir adla değiştirin.

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

... "{claim name}" kimliğine sahip ClaimType'a başvuruda bulunur, ancak ilke veya temel ilkelerinden hiçbiri böyle bir öğe içermez

İlkeniz talep şemasında bildirilmeyen bir talep için başvuru yaptığında bu tür bir hata oluşur. Talepler ilkedeki dosyalardan en az birinde tanımlanmalıdır.

Örneğin schoolId çıkış talebine sahip bir teknik profil. Ancak schoolId çıkış talebi hiçbir zaman ilkede veya bir ata ilkesinde bildirilir.

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

Bu tür bir hatayı düzeltmek için değerin ClaimTypeReferenceId yanlış yazılıp yazılmadığını veya şemada bulunmadığını denetleyin. Talep uzantılar ilkesinde tanımlanıyorsa ancak temel ilkede de kullanılıyorsa. Talebin içinde kullanıldığı ilkede veya üst düzey bir ilkede tanımlandığından emin olun.

Talebi talep şemasına eklemek bu tür bir hatayı çözer.

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

... Id ile ClaimsTransformation başvurusu yapar...

Bu hatanın nedeni, talep hatasının nedeniyle benzerdir. Önceki hatayı denetleyin.

Kullanıcı şu anda 'yourtenant.onmicrosoft.com' kiracısının kullanıcısı olarak günlüğe kaydedildi...

Karşıya yüklemeyi denediğiniz ilkeden farklı bir kiracı hesabıyla oturum açabilirsiniz. Örneğin, ilkeniz TenantId olarak ayarlanırken ile admin@contoso.onmicrosoft.comoturum açmanız gerekirfabrikam.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>
  • ve <BasePolicy\> öğelerindeki <TrustFrameworkPolicy\> değerin TenantId hedef Azure AD B2C kiracınızla eşleşip eşleşmediğini denetleyin.

"{name}" talep türü, bağlı olan tarafın teknik profilinin çıkış talebidir, ancak kullanıcı yolculuğu adımlarının hiçbirinde çıkış talebi değildir...

Bağlı olan taraf ilkesinde bir çıkış talebi eklediniz ancak çıkış talebi, kullanıcı yolculuğu adımlarının hiçbirinde çıkış talebi değil. Azure AD B2C, talep çantasındaki talep değerini okuyamaz.

Aşağıdaki örnekte schoolId talebi, bağlı olan tarafın teknik profilinin çıkış talebidir, ancak SignUpOrSignIn kullanıcı yolculuğu adımlarının hiçbirinde çıkış talebi değildir.

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

Bu tür bir hatayı düzeltmek için, çıktı taleplerinin en az bir düzenleme adımının teknik profil çıkış talepleri koleksiyonunda göründüğünden emin olun. Kullanıcı yolculuğunuz talebin çıktısını alamıyorsa bağlı olan taraf teknik profilinde boş dize gibi bir varsayılan değer ayarlayın.

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

Giriş dizesi doğru biçimde değildi

Başka bir türe ait bir talep için yanlış değer türü ayarlarsınız. Örneğin, bir tamsayı talebi tanımlarsınız.

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

Ardından bir dize değeri ayarlamaya çalışırsınız:

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

Bu hata türünü düzeltmek için gibi DefaultValue="0"doğru değeri ayarladığınızdan emin olun.

"{name}" kiracısı zaten "{name}" kimliğine sahip bir ilkeye sahip. Aynı kimlikle başka bir ilke depolanamaz

Kiracınıza bir ilke yüklemeyi denersiniz, ancak kiracınıza aynı ada sahip bir ilke zaten yüklenmiştir.

Bu tür bir hatayı düzeltmek için, ilkeyi karşıya yüklediğinizde, Zaten varsa özel ilkenin üzerine yaz onay kutusunu seçin.

Zaten varsa özel ilkenin üzerine nasıl yazıldığını gösteren ekran görüntüsü.

Sonraki adımlar