Azure Active Directory B2C özel ilkesini kullanarak kullanıcı girişlerini toplama ve işleme
Azure Active Directory B2C (Azure AD B2C) özel ilkeleri, kullanıcı girişlerini toplamanıza olanak tanır. Ardından, kullanıcı girişlerini işlemek için yerleşik yöntemleri kullanabilirsiniz.
Bu makalede, grafik kullanıcı arabirimi aracılığıyla kullanıcı girişleri toplayan özel bir ilke yazmayı öğreneceksiniz. Ardından girişlere erişip işlem yapacak ve son olarak bunları JWT belirtecinde talep olarak döndüreceksiniz. Bu görevi tamamlamak için şunları yapacaksınız:
Beyanları bildirin. Talep, Azure AD B2C ilkesi yürütme sırasında verilerin geçici olarak depolanmasını sağlar. Ad, soyadı veya kullanıcıdan veya diğer sistemlerden alınan diğer talepler gibi kullanıcı hakkındaki bilgileri depolayabilir. Talepler hakkında daha fazla bilgi için Bkz. Azure AD B2C özel ilkesine genel bakış.
Teknik profilleri tanımlayın. Teknik profil, farklı taraf türleriyle iletişim kurmak için bir arabirim sağlar. Örneğin, veri toplamak için kullanıcıyla etkileşim kurmanızı sağlar.
Bildirdiğiniz talepleri işlemek için kullandığınız talep dönüştürmelerini yapılandırın.
İçerik tanımlarını yapılandırın. İçerik tanımı yüklenecek kullanıcı arabirimini tanımlar. Daha sonra kendi özelleştirilmiş HTML içeriğinizi sağlayarak kullanıcı arabirimini özelleştirebilirsiniz.
Kendi Kendine Onaylanan Teknik Profiller ve DisplayClaims kullanarak kullanıcı arabirimlerini yapılandırın ve kullanıcıya gösterin.
Düzenleme Adımlarını kullanarak belirli bir sırada Teknik Profilleri çağır.
Ön koşullar
Henüz bir kiracınız yoksa, Azure aboneliğinize bağlı bir Azure AD B2C kiracısı oluşturun.
Bir web uygulaması kaydedin ve kimlik belirteci örtük verme özelliğini etkinleştirin. Yeniden Yönlendirme URI'sinde kullanın https://jwt.ms.
Bilgisayarınızda Visual Studio Code (VS Code) yüklü olmalıdır.
İlk Azure AD B2C özel ilkenizi yazma - Merhaba Dünya! adımlarını tamamlayın. Bu makale, Kendi özel ilkelerinizi oluşturma ve çalıştırma kılavuz serisinin bir parçasıdır.
Dekont
Bu makale, Azure Active Directory B2C'de kendi özel ilkelerinizi oluşturma ve çalıştırma nasıl yapılır kılavuzu serisinin bir parçasıdır. Bu seriyi ilk makaleden başlatmanızı öneririz.
1. Adım - Beyanları bildirme
objectId ve iletiyle birlikte ek talepler bildirin:
VS Code'da dosyayı açın
ContosoCustomPolicy.XML
.ClaimsSchema
bölümüne aşağıdaki ClaimType bildirimlerini ekleyin:<ClaimType Id="givenName"> <DisplayName>Given Name</DisplayName> <DataType>string</DataType> <UserHelpText>Your given name (also known as first name).</UserHelpText> <UserInputType>TextBox</UserInputType> </ClaimType> <ClaimType Id="surname"> <DisplayName>Surname</DisplayName> <DataType>string</DataType> <UserHelpText>Your surname (also known as family name or last name).</UserHelpText> <UserInputType>TextBox</UserInputType> </ClaimType> <ClaimType Id="displayName"> <DisplayName>Display Name</DisplayName> <DataType>string</DataType> <UserHelpText>Your display name.</UserHelpText> <UserInputType>TextBox</UserInputType> </ClaimType>
GivenName, soyad ve displayName olmak üzere üç Talep Türü bildirdik. Bu bildirimler , UserInputType
ve DisplayName
öğelerini içerirDataType
:
- DataType , taleplerin barındırdığını değerin veri türünü belirtir. DataType öğelerinin desteklediği veri türleri hakkında daha fazla bilgi edinin.
- Kullanıcıdan talebin değerini toplamak istiyorsanız UserInputType , kullanıcı arabiriminde görüntülenen kullanıcı arabirimi denetimini belirtir. Azure AD B2C'nin desteklediği kullanıcı giriş türleri hakkında daha fazla bilgi edinin.
- Kullanıcıdan talebin değerini toplamak istiyorsanız, DisplayName kullanıcı arabiriminde görünen kullanıcı arabirimi denetiminin etiketini belirtir.
2. Adım - Talep dönüştürmelerini tanımlama
ClaimsTransformation, belirli bir talebi başka bir talepe dönüştürmek için kullandığınız bir işlev içerir. Örneğin, bir dize talebini küçük harften büyük harfe değiştirebilirsiniz. Azure AD B2C tarafından desteklenen Talep dönüştürmeleri hakkında daha fazla bilgi edinin.
dosyasında, bölümün
ContosoCustomPolicy.XML
BuildingBlocks
alt öğesi olarak bir<ClaimsTransformations>
öğe ekleyin.<ClaimsTransformations> </ClaimsTransformations>
öğesinin içine
ClaimsTransformations
aşağıdaki kodu ekleyin:<ClaimsTransformation Id="GenerateRandomObjectIdTransformation" TransformationMethod="CreateRandomString"> <InputParameters> <InputParameter Id="randomGeneratorType" DataType="string" Value="GUID"/> </InputParameters> <OutputClaims> <OutputClaim ClaimTypeReferenceId="objectId" TransformationClaimType="outputClaim"/> </OutputClaims> </ClaimsTransformation> <ClaimsTransformation Id="CreateDisplayNameTransformation" TransformationMethod="FormatStringMultipleClaims"> <InputClaims> <InputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="inputClaim1"/> <InputClaim ClaimTypeReferenceId="surname" TransformationClaimType="inputClaim2"/> </InputClaims> <InputParameters> <InputParameter Id="stringFormat" DataType="string" Value="{0} {1}"/> </InputParameters> <OutputClaims> <OutputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="outputClaim"/> </OutputClaims> </ClaimsTransformation> <ClaimsTransformation Id="CreateMessageTransformation" TransformationMethod="FormatStringClaim"> <InputClaims> <InputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="inputClaim"/> </InputClaims> <InputParameters> <InputParameter Id="stringFormat" DataType="string" Value="Hello {0}"/> </InputParameters> <OutputClaims> <OutputClaim ClaimTypeReferenceId="message" TransformationClaimType="outputClaim"/> </OutputClaims> </ClaimsTransformation>
Üç talep dönüştürmesi yapılandırdık:
GenerateRandomObjectIdTransformation, CreateRandomString yöntemi tarafından belirtilen rastgele bir dize oluşturur. objectId talebi, öğesi tarafından
OutputClaim
belirtilen şekilde oluşturulan dizeyle güncelleştirilir.CreateDisplayNameTransformation, displayName oluşturmak için givenName ve soyadlarını birleştirir.
CreateMessageTransformation, Hello ve displayName'i ileti oluşturmak için birleştirir.
3. Adım - İçerik tanımlarını yapılandırma
ContentDefinitions, kullanıcılarınıza gösterdiğiniz web sayfalarının düzenini denetleen HTML şablonlarının URL'sini belirtmenize olanak sağlar. Her adım için oturum açma veya kaydolma, parola sıfırlama veya hata sayfaları gibi belirli kullanıcı arabirimleri belirtebilirsiniz.
İçerik tanımı eklemek için dosyanın bölümüne ContosoCustomPolicy.XML
aşağıdaki kodu BuildingBlocks
ekleyin:
<ContentDefinitions>
<ContentDefinition Id="SelfAssertedContentDefinition">
<LoadUri>~/tenant/templates/AzureBlue/selfAsserted.cshtml</LoadUri>
<RecoveryUri>~/common/default_page_error.html</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.7</DataUri>
</ContentDefinition>
</ContentDefinitions>
4. Adım - Teknik profilleri yapılandırma
Özel bir ilkede TechnicalProfile işlevi uygulayan öğedir. Artık Talepler ve Talep Dönüştürmeleri tanımladığınıza göre tanımlarınızı yürütmek için Teknik Profillere ihtiyacınız vardır. Öğelerin içinde ClaimsProvider
bir teknik profil bildirilir.
Azure AD B2C bir dizi teknik profil sağlar. Her teknik profil belirli bir rol gerçekleştirir. Örneğin, bir hizmet uç noktasına HTTP çağrısı yapmak için REST teknik profili kullanırsınız. Talep Dönüştürme'de tanımladığınız işlemi yürütmek için bir talep dönüştürme teknik profili kullanabilirsiniz. Azure AD B2C özel ilkelerinin sağladığı teknik profil türleri hakkında daha fazla bilgi edinin.
Talepleriniz için değerleri ayarlama
objectId, displayName ve ileti talepleri değerlerini ayarlamak için GenerateRandomObjectIdTransformation, CreateDisplayNameTransformation ve CreateMessageTransformation talep dönüştürmelerini yürüten bir teknik profil yapılandırabilirsiniz. Talep dönüştürmeleri öğesinde OutputClaimsTransformations
tanımlanan sırayla yürütülür. Örneğin, önce görünen adı, ardından iletiyi oluşturur.
Aşağıdakileri
ClaimsProvider
bölümünClaimsProviders
alt öğesi olarak ekleyin.<ClaimsProvider> <DisplayName>Technical Profiles to generate claims</DisplayName> </ClaimsProvider>
objectId, displayName ve ileti talepleri değerlerini ayarlamak için, az önce oluşturduğunuz öğenin içine
ClaimsProvider
aşağıdaki kodu ekleyin:<!--<ClaimsProvider>--> <TechnicalProfiles> <TechnicalProfile Id="ClaimGenerator"> <DisplayName>Generate Object ID, displayName and message Claims Technical Profile.</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/> <OutputClaims> <OutputClaim ClaimTypeReferenceId="objectId"/> <OutputClaim ClaimTypeReferenceId="displayName"/> <OutputClaim ClaimTypeReferenceId="message"/> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="GenerateRandomObjectIdTransformation"/> <OutputClaimsTransformation ReferenceId="CreateDisplayNameTransformation"/> <OutputClaimsTransformation ReferenceId="CreateMessageTransformation"/> </OutputClaimsTransformations> </TechnicalProfile> </TechnicalProfiles> <!--</ClaimsProvider>-->
Kullanıcı girişlerini toplama
displayName talebi givenName ve soyadlarından oluşturursunuz, bu nedenle kullanıcı girişi olarak toplamanız gerekir. Kullanıcı girişi toplamak için, Kendi Kendine Onaylanan adlı bir teknik profil türü kullanırsınız. Kendi kendine onaylanan bir teknik profil yapılandırırken, kullanıcı arabirimini görüntülemek kendi kendini onaylayan teknik profilden sorumlu olduğundan içerik tanımlarına başvurmanız gerekir.
Aşağıdakileri
ClaimsProvider
bölümünClaimsProviders
alt öğesi olarak ekleyin.<ClaimsProvider> <DisplayName>Technical Profiles to collect user's details </DisplayName> </ClaimsProvider>
Az önce oluşturduğunuz öğenin içine
ClaimsProvider
aşağıdaki kodu ekleyin:<TechnicalProfiles> <TechnicalProfile Id="UserInformationCollector"> <DisplayName>Collect User Input Technical Profile</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/> <Metadata> <Item Key="ContentDefinitionReferenceId">SelfAssertedContentDefinition</Item> </Metadata> <DisplayClaims> <DisplayClaim ClaimTypeReferenceId="givenName" Required="true"/> <DisplayClaim ClaimTypeReferenceId="surname" Required="true"/> </DisplayClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="givenName"/> <OutputClaim ClaimTypeReferenceId="surname"/> </OutputClaims> </TechnicalProfile> </TechnicalProfiles>
givenName ve soyad talepleri için iki görünen beyana dikkat edin. Her iki talep de gerekli olarak işaretlendiğinden, kullanıcının görüntülenen formu göndermeden önce değerleri girmesi gerekir. Talepler ekranda Verilen Ad ve ardından Soyadı gibi DisplayClaims öğesinde tanımlanan sırada görüntülenir.
5. Adım - Kullanıcı yolculuklarını tanımlama
Teknik profillerin çağrılma sırasını tanımlamak için kullanıcı yolculuklarını kullanırsınız. kullanıcı yolculuğundaki adımları belirtmek için öğesini kullanırsınız OrchestrationSteps
.
Kullanıcı Yolculuğu'nun HelloWorldJourney
mevcut içeriğini aşağıdaki kodla değiştirin:
<OrchestrationSteps>
<OrchestrationStep Order="1" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="GetUserInformationClaimsExchange" TechnicalProfileReferenceId="UserInformationCollector"/>
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="GetMessageClaimsExchange" TechnicalProfileReferenceId="ClaimGenerator"/>
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="3" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer"/>
</OrchestrationSteps>
Düzenleme adımlarına göre kullanıcı girişlerini toplar, objectId, displayName ve ileti talepleri için değerleri ayarlar ve son olarak Jwt belirtecini göndeririz.
6. Adım - Bağlı olan tarafı güncelleştirme
bölümünün öğesinin OutputClaims
RelyingParty
içeriğini aşağıdaki kodla değiştirin:
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
<OutputClaim ClaimTypeReferenceId="displayName"/>
<OutputClaim ClaimTypeReferenceId="message"/>
6. adımı tamamladıktan sonra dosya ContosoCustomPolicy.XML
aşağıdaki koda benzer görünmelidir:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TrustFrameworkPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06"
PolicySchemaVersion="0.3.0.0" TenantId="yourtenant.onmicrosoft.com"
PolicyId="B2C_1A_ContosoCustomPolicy"
PublicPolicyUri="http://yourtenant.onmicrosoft.com/B2C_1A_ContosoCustomPolicy">
<BuildingBlocks>
<ClaimsSchema>
<ClaimType Id="objectId">
<DisplayName>unique object Id for subject of the claims being returned</DisplayName>
<DataType>string</DataType>
</ClaimType>
<ClaimType Id="message">
<DisplayName>Will hold Hello World message</DisplayName>
<DataType>string</DataType>
</ClaimType>
<ClaimType Id="givenName">
<DisplayName>Given Name</DisplayName>
<DataType>string</DataType>
<UserHelpText>Your given name (also known as first name).</UserHelpText>
<UserInputType>TextBox</UserInputType>
</ClaimType>
<ClaimType Id="surname">
<DisplayName>Surname</DisplayName>
<DataType>string</DataType>
<UserHelpText>Your surname (also known as family name or last name).</UserHelpText>
<UserInputType>TextBox</UserInputType>
</ClaimType>
<ClaimType Id="displayName">
<DisplayName>Display Name</DisplayName>
<DataType>string</DataType>
<UserHelpText>Your display name.</UserHelpText>
<UserInputType>TextBox</UserInputType>
</ClaimType>
</ClaimsSchema>
<ClaimsTransformations>
<ClaimsTransformation Id="GenerateRandomObjectIdTransformation" TransformationMethod="CreateRandomString">
<InputParameters>
<InputParameter Id="randomGeneratorType" DataType="string" Value="GUID"/>
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectId" TransformationClaimType="outputClaim"/>
</OutputClaims>
</ClaimsTransformation>
<ClaimsTransformation Id="CreateDisplayNameTransformation" TransformationMethod="FormatStringMultipleClaims">
<InputClaims>
<InputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="inputClaim1"/>
<InputClaim ClaimTypeReferenceId="surname" TransformationClaimType="inputClaim2"/>
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormat" DataType="string" Value="{0} {1}"/>
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="outputClaim"/>
</OutputClaims>
</ClaimsTransformation>
<ClaimsTransformation Id="CreateMessageTransformation" TransformationMethod="FormatStringClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="inputClaim"/>
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormat" DataType="string" Value="Hello {0}"/>
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="message" TransformationClaimType="outputClaim"/>
</OutputClaims>
</ClaimsTransformation>
</ClaimsTransformations>
<ContentDefinitions>
<ContentDefinition Id="SelfAssertedContentDefinition">
<LoadUri>~/tenant/templates/AzureBlue/selfAsserted.cshtml</LoadUri>
<RecoveryUri>~/common/default_page_error.html</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.7</DataUri>
</ContentDefinition>
</ContentDefinitions>
</BuildingBlocks>
<!--Claims Providers Here-->
<ClaimsProviders>
<ClaimsProvider>
<DisplayName>Token Issuer</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="JwtIssuer">
<DisplayName>JWT Issuer</DisplayName>
<Protocol Name="None"/>
<OutputTokenFormat>JWT</OutputTokenFormat>
<Metadata>
<Item Key="client_id">{service:te}</Item>
<Item Key="issuer_refresh_token_user_identity_claim_type">objectId</Item>
<Item Key="SendTokenResponseBodyWithJsonNumbers">true</Item>
</Metadata>
<CryptographicKeys>
<Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer"/>
<Key Id="issuer_refresh_token_key" StorageReferenceId="B2C_1A_TokenEncryptionKeyContainer"/>
</CryptographicKeys>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<ClaimsProvider>
<DisplayName>Trustframework Policy Engine TechnicalProfiles</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="TpEngine_c3bd4fe2-1775-4013-b91d-35f16d377d13">
<DisplayName>Trustframework Policy Engine Default Technical Profile</DisplayName>
<Protocol Name="None"/>
<Metadata>
<Item Key="url">{service:te}</Item>
</Metadata>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<ClaimsProvider>
<DisplayName>Claim Generator Technical Profiles</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="ClaimGenerator">
<DisplayName>Generate Object ID, displayName and message Claims Technical Profile.</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectId"/>
<OutputClaim ClaimTypeReferenceId="displayName"/>
<OutputClaim ClaimTypeReferenceId="message"/>
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="GenerateRandomObjectIdTransformation"/>
<OutputClaimsTransformation ReferenceId="CreateDisplayNameTransformation"/>
<OutputClaimsTransformation ReferenceId="CreateMessageTransformation"/>
</OutputClaimsTransformations>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
<ClaimsProvider>
<DisplayName>Technical Profiles to collect user's details</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="UserInformationCollector">
<DisplayName>Collect User Input Technical Profile</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<Metadata>
<Item Key="ContentDefinitionReferenceId">SelfAssertedContentDefinition</Item>
</Metadata>
<DisplayClaims>
<DisplayClaim ClaimTypeReferenceId="givenName" Required="true"/>
<DisplayClaim ClaimTypeReferenceId="surname" Required="true"/>
</DisplayClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="givenName"/>
<OutputClaim ClaimTypeReferenceId="surname"/>
</OutputClaims>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
</ClaimsProviders>
<UserJourneys>
<UserJourney Id="HelloWorldJourney">
<OrchestrationSteps>
<OrchestrationStep Order="1" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="GetUserInformationClaimsExchange" TechnicalProfileReferenceId="UserInformationCollector"/>
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="GetMessageClaimsExchange" TechnicalProfileReferenceId="ClaimGenerator"/>
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="3" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer"/>
</OrchestrationSteps>
</UserJourney>
</UserJourneys>
<RelyingParty><!--
Relying Party Here that's your policy’s entry point
Specify the User Journey to execute
Specify the claims to include in the token that is returned when the policy runs
-->
<DefaultUserJourney ReferenceId="HelloWorldJourney"/>
<TechnicalProfile Id="HelloWorldPolicyProfile">
<DisplayName>Hello World Policy Profile</DisplayName>
<Protocol Name="OpenIdConnect"/>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
<OutputClaim ClaimTypeReferenceId="displayName"/>
<OutputClaim ClaimTypeReferenceId="message"/>
</OutputClaims>
<SubjectNamingInfo ClaimType="sub"/>
</TechnicalProfile>
</RelyingParty>
</TrustFrameworkPolicy>
Henüz yapmadıysanız, değerini kiracı adınızın alt etki alanı bölümüyle (gibi) contoso
değiştirinyourtenant
. Kiracı adınızı alma hakkında bilgi edinin.
3. Adım - Özel ilke dosyasını karşıya yükleme
Özel ilke dosyasını karşıya yükleme bölümünde yer alan adımları izleyin. Portalda bulunan dosyayla aynı ada sahip bir dosyayı karşıya yüklüyorsanız, zaten varsa Özel ilkenin üzerine yaz'ı seçtiğinizden emin olun.
4. Adım - Özel ilkeyi test edin
Özel ilkeler'in altında B2C_1A_CONTOSOCUSTOMPOLICY'ı seçin.
Özel ilkenin genel bakış sayfasında Uygulamayı seçin için daha önce kaydettiğiniz webapp1 gibi web uygulamasını seçin. Yanıt URL'si seç değerinin olarak ayarlandığından
https://jwt.ms
emin olun.Şimdi çalıştır düğmesini seçin.
Verilen Ad ve Soyadı girin ve Devam'ı seçin.
İlke yürütmeyi tamamladıktan sonra adresine yönlendirilirsiniz https://jwt.ms
ve kodu çözülen bir JWT belirteci görürsünüz. Aşağıdaki JWT belirteci kod parçacığına benzer:
{
"typ": "JWT",
"alg": "RS256",
"kid": "pxLOMWFg...."
}.{
...
"sub": "c7ae4515-f7a7....",
...
"acr": "b2c_1a_contosocustompolicy",
...
"name": "Maurice Paulet",
"message": "Hello Maurice Paulet"
}.[Signature]
Sonraki adımlar
Ardından şunları öğrenin:
Azure AD B2C'nin özel ilkelerindeki Teknik Profil türleri hakkında.
Özel ilke kullanarak kullanıcı girişlerini doğrulama.