Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
1 Mayıs 2025 tarihinden itibaren Azure AD B2C artık yeni müşteriler için satın alınamayacak. SSS bölümünden daha fazla bilgi edinebilirsiniz.
Bu makalede, Azure Active Directory B2C (Azure AD B2C) ile OAuth2 özel hatasını işleme açıklanmaktadır. İlkenizde bir mantık yanlış giderse bu teknik profili kullanın. Teknik profil, OAuth2 veya OpenId Connect bağlı olan taraf uygulamanıza hata döndürür. OAuth2 özel hata teknik profilinin Canlı tanıtımını gözden geçirin.
Özel OAuth2 hata iletisini işlemek için:
- OAuth2 hata teknik profili tanımlayın.
- Hata kodunu ve hata iletisi taleplerini ayarlayın.
- Kullanıcı yolculuğundan OAuth2 hata teknik profilini çağırın.
OAuth2 hatası
Hata aşağıdaki verilerle döndürülr:
-
hata -
access_denied -
error_description - kuralını
AAD_Custom_<errorCode>: <errorMessage>kullanan hata iletisi. - Bağıntı Kimliği - Azure AD B2C bağıntı kimliği.
- Zaman damgası - Hatanın zaman damgası.
Aşağıdaki örnekte uygulamaya özel bir hata iletisi döndürülmesi gösterilmektedir https://jwt.ms :
https://jwt.ms/#error=access_denied&error_description=AAD_Custom_1234%3a+My+custom+error+message%0d%0aCorrelation+ID%3a+233bf9bd-747a-4800-9062-6236f3f69a47%0d%0aTimestamp%3a+2021-03-25+14%3a01%3a23Z%0d%0a
Protokol
Protocol öğesinin Name özniteliği olarak ayarlanmalıdırOAuth2.
OutputTokenFormat öğesini olarak OAuth2Errorayarlayın.
Aşağıdaki örnekte için ReturnOAuth2Errorbir teknik profil gösterilmektedir:
<!--
<ClaimsProviders> -->
<ClaimsProvider>
<DisplayName>Token Issuer</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="ReturnOAuth2Error">
<DisplayName>Return OAuth2 error</DisplayName>
<Protocol Name="OAuth2" />
<OutputTokenFormat>OAuth2Error</OutputTokenFormat>
<CryptographicKeys>
<Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
</CryptographicKeys>
<InputClaims>
<InputClaim ClaimTypeReferenceId="errorCode" />
<InputClaim ClaimTypeReferenceId="errorMessage" />
</InputClaims>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<!--
</ClaimsProviders> -->
Hata kodu ve hata iletisinin özel değerlerini oluşturmak için talep dönüştürmesini tanımlama
Hata kodu ve hata iletisinin özel değerlerini oluşturmak için şu adımları kullanın:
ClaimsTransformationsöğesini bulun ve içine aşağıdaki kodu ekleyin<!-- <ClaimsTransformations> --> <ClaimsTransformation Id="GenerateErrorCode" TransformationMethod="CreateStringClaim"> <InputParameters> <InputParameter Id="value" DataType="string" Value="Error_001" /> </InputParameters> <OutputClaims> <OutputClaim ClaimTypeReferenceId="errorCode" TransformationClaimType="createdClaim" /> </OutputClaims> </ClaimsTransformation> <ClaimsTransformation Id="GenerateErrorMessage" TransformationMethod="CreateStringClaim"> <InputParameters> <InputParameter Id="value" DataType="string" Value="Insert error description." /> </InputParameters> <OutputClaims> <OutputClaim ClaimTypeReferenceId="errorMessage" TransformationClaimType="createdClaim" /> </OutputClaims> </ClaimsTransformation> <!-- </ClaimsTransformations> -->Tanımladığınız OAuth2 teknik profilinden önce herhangi bir teknik profilin öğesinde
OutputClaimsTransformationsiki talep dönüştürmesini ekleyin:<OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="generateErrorCode" /> <OutputClaimsTransformation ReferenceId="generateErrorMessage" /> </OutputClaimsTransformations>
Giriş talepleri
InputClaims öğesi, OAuth2 hatası döndürmek için gereken taleplerin listesini içerir.
| ClaimReferenceId (ClaimReferenceId) | Zorunlu | Açıklama |
|---|---|---|
| hata kodu | Evet | Hata kodu. |
| hata mesajı | Evet | Hata iletisi. |
Şifreleme anahtarları
CryptographicKeys öğesi aşağıdaki anahtarı içerir:
| Öznitelik | Zorunlu | Açıklama |
|---|---|---|
| issuer_secret | Evet | X509 sertifikası (RSA anahtar kümesi).
B2C_1A_TokenSigningKeyContainer Özel ilkeleri kullanmaya başlama bölümünde yapılandırdığınız anahtarı kullanın. |
Teknik profili çağırma
Bir kullanıcı yolculuğundan veya alt yolculuktan (türütransfer) OAuth2 hata teknik profilini çağırabilirsiniz.
OAuth2 hata teknik profilinize bir başvuruyla düzenleme adımı türünü SendClaims olarak ayarlayın.
Kullanıcı yolculuğunuz veya alt yolculuğunuzda zaten başka bir SendClaims düzenleme adımı varsa özniteliğini belirteç veren teknik profili olarak ayarlayın DefaultCpimIssuerTechnicalProfileReferenceId .
Aşağıdaki örnekte:
- Kullanıcı yolculuğu
SignUpOrSignIn-Custom,DefaultCpimIssuerTechnicalProfileReferenceIdbelirteci veren teknik profilineJwtIssuerayarlar. - Sekizinci düzenleme adımı, öğesinin
errorCodemevcut olup olmadığını denetler. Evet ise, hatayı döndürmekReturnOAuth2Erroriçin teknik profili çağırın. - Yoksa
errorCode, dokuzuncu düzenleme adımı belirteci düzenler.
<UserJourney Id="SignUpOrSignIn-Custom" DefaultCpimIssuerTechnicalProfileReferenceId="JwtIssuer">
<OrchestrationSteps>
...
<OrchestrationStep Order="8" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="ReturnOAuth2Error">
<Preconditions>
<Precondition Type="ClaimsExist" ExecuteActionsIf="false">
<Value>errorCode</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
</OrchestrationStep>
<OrchestrationStep Order="9" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
</OrchestrationSteps>
<ClientDefinition ReferenceId="DefaultWeb" />
</UserJourney>
İsteğe bağlı olarak, OAuth2 hata teknik profilini işlemek için önkoşulları kullanabilirsiniz. Örneğin, e-posta talebi yoksa OAuth2 hata teknik profilini çağırmak için ayarlayabilirsiniz:
<OrchestrationStep Order="3" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="ReturnOAuth2Error">
<Preconditions>
<Precondition Type="ClaimsExist" ExecuteActionsIf="false">
<Value>email</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
</OrchestrationStep>
Sonraki adımlar
UserJourneys hakkında bilgi edinin