Azure Active Directory B2C'de özel ilkeler kullanarak çok kiracılı Microsoft Entra ID için oturum açmayı ayarlama

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 gerekli adımlar her yöntem için farklıdır.

Bu özellik yalnızca özel ilkeler için kullanılabilir. Kurulum adımları için, önceki seçicide Özel ilke'yi seçin.

Bu makalede, Microsoft Entra Id için çok kiracılı uç noktayı kullanan kullanıcılar için oturum açmayı etkinleştirme gösterilmektedir. Her kiracı için bir kimlik sağlayıcısı yapılandırmak zorunda kalmadan, birden çok Microsoft Entra kiracısından kullanıcıların Azure AD B2C kullanarak oturum açmasına izin verme. Ancak, bu kiracılardan herhangi birindeki konuk üyeler oturum açamaz . Bunun için her kiracıyı ayrı ayrı yapılandırmanız gerekir.

Önkoşullar

Dekont

Bu makalede, SocialAndLocalAccounts başlangıç paketinin ön koşulda belirtilen önceki adımlarda kullanıldığı varsayılmıştır.

Microsoft Entra uygulamasını kaydetme

Azure Active Directory B2C'de (Azure AD B2C) Microsoft Entra hesabı olan kullanıcılar için oturum açmayı etkinleştirmek için Azure portalında bir uygulama oluşturmanız gerekir. Daha fazla bilgi için bkz. Uygulamayı Microsoft kimlik platformu kaydetme.

  1. Azure Portal oturum açın.

  2. Birden çok kiracıya erişiminiz varsa, Dizinler + abonelikler menüsünden Microsoft Entra Id kiracınıza geçmek için üstteki menüden Ayarlar simgesini seçin.

  3. Azure portalının sol üst köşesindeki Tüm hizmetler'i seçin ve ardından Uygulama kayıtları arayıp seçin.

  4. Yeni kayıt seçeneğini belirleyin.

  5. Uygulamanız için bir Ad girin. Örneğin, Azure AD B2C App.

  6. Bu uygulama için herhangi bir kuruluş dizininde (Herhangi bir Microsoft Entra dizini – Çok Kiracılı) Hesaplar'ı seçin.

  7. Yeniden Yönlendirme URI'si için Web değerini kabul edin ve tüm küçük harflerle aşağıdaki URL'yi girin; burada your-B2C-tenant-name yerine Azure AD B2C kiracınızın adı kullanılır.

    https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp
    

    Örneğin, https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/oauth2/authresp.

    Özel bir etki alanı kullanıyorsanız girin https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. değerini özel etki alanınızla ve your-tenant-name kiracınızın adıyla değiştirinyour-domain-name.

  8. Kaydet'i seçin. Daha sonraki bir adımda kullanmak üzere Uygulama (istemci) kimliğini kaydedin.

  9. Sertifika gizli dizileri'ni& ve ardından Yeni istemci gizli dizisi'ni seçin.

  10. Gizli dizi için bir Açıklama girin, bir süre sonu seçin ve ardından Ekle'yi seçin. Gizli anahtarın Değerini sonraki bir adımda kullanmak üzere kaydedin.

İsteğe bağlı talepleri yapılandırma

Microsoft Entra Id'den ve given_name taleplerini almak family_nameistiyorsanız, Azure portalı kullanıcı arabiriminde veya uygulama bildiriminde uygulamanız için isteğe bağlı beyanlar yapılandırabilirsiniz. Daha fazla bilgi için bkz . Microsoft Entra uygulamanıza isteğe bağlı talepler sağlama.

  1. Azure Portal oturum açın. Microsoft Entra ID'yi arayın ve seçin.
  2. Yönet bölümünden Uygulama kayıtları'ı seçin.
  3. Listede isteğe bağlı talepleri yapılandırmak istediğiniz uygulamayı seçin.
  4. Yönet bölümünde Belirteç yapılandırması'nı seçin.
  5. İsteğe bağlı talep ekle öğesini seçin.
  6. Belirteç türü için Kimlik'i seçin.
  7. eklenecek isteğe bağlı talepleri seçin, family_nameve given_name.
  8. Add (Ekle) seçeneğini belirleyin. Microsoft Graph e-posta iznini aç (taleplerin belirteçte görünmesi için gereklidir) görüntülenirse, etkinleştirin ve ekle'yi yeniden seçin.

[İsteğe bağlı] Uygulamanızın orijinalliğini doğrulama

Yayımcı doğrulaması, kullanıcılarınızın kaydettiğiniz uygulamanın orijinalliğini anlamasına yardımcı olur. Doğrulanmış bir uygulama, uygulamanın yayımcısının microsoft iş ortağı ağını (MPN) kullanarak kimliğini doğruladığı anlamına gelir. Uygulamanızı yayımcısı doğrulandı olarak işaretlemeyi öğrenin.

İlke anahtarı oluşturma

Oluşturduğunuz uygulama anahtarını Azure AD B2C kiracınızda depolamanız gerekir.

  1. Birden çok kiracıya erişiminiz varsa, Dizinler + abonelikler menüsünden Azure AD B2C kiracınıza geçmek için üstteki menüden Ayarlar simgesini seçin.
  2. Azure portalının sol üst köşesindeki Tüm hizmetler'i seçin ve ardından Azure AD B2C'yi arayıp seçin.
  3. İlkeler'in altında Kimlik Deneyimi Çerçevesi'ne tıklayın.
  4. İlke anahtarları'nı ve ardından Ekle'yi seçin.
  5. Seçenekler için öğesini seçinManual.
  6. İlke anahtarı için bir Ad girin. Örneğin, AADAppSecret. Ön ek B2C_1A_ , oluşturulduğunda anahtarınızın adına otomatik olarak eklenir, bu nedenle aşağıdaki bölümdeki XML'deki başvurusu B2C_1A_AADAppSecret.
  7. Gizli dizi alanına, daha önce kaydettiğiniz istemci gizli dizinizi girin.
  8. Anahtar kullanımı için öğesini seçinSignature.
  9. Oluştur seçeneğini belirleyin.

Microsoft Entra Id'yi kimlik sağlayıcısı olarak yapılandırma

Kullanıcıların Microsoft Entra hesabı kullanarak oturum açmasını sağlamak için Microsoft Entra Id'yi Azure AD B2C'nin bir uç nokta üzerinden iletişim kurabileceği bir talep sağlayıcısı olarak tanımlamanız gerekir. Uç nokta, belirli bir kullanıcının kimliğini doğrulamak için Azure AD B2C tarafından kullanılan bir dizi talep sağlar.

İlkenizin uzantı dosyasındaki ClaimsProvider öğesine Microsoft Entra Id ekleyerek Microsoft Entra Id'yi talep sağlayıcısı olarak tanımlayabilirsiniz.

  1. SocialAndLocalAccounts/TrustFrameworkExtensions.xml dosyasını açın (önkoşullarda kullandığınız dosyalara bakın).

  2. ClaimsProviders öğesini bulun. Yoksa kök öğesinin altına ekleyin.

  3. Aşağıdaki gibi yeni bir ClaimsProvider ekleyin:

    <ClaimsProvider>
      <Domain>commonaad</Domain>
      <DisplayName>Common AAD</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="AADCommon-OpenIdConnect">
          <DisplayName>Multi-Tenant AAD</DisplayName>
          <Description>Login with your Contoso account</Description>
          <Protocol Name="OpenIdConnect"/>
          <Metadata>
            <Item Key="METADATA">https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration</Item>
            <!-- Update the Client ID below to the Application ID -->
            <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
            <Item Key="response_types">code</Item>
            <Item Key="scope">openid profile</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
            <Item Key="DiscoverMetadataByTokenIssuer">true</Item>
            <!-- The key below allows you to specify each of the Azure AD tenants that can be used to sign in. Update the GUIDs below for each tenant. -->
            <Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000,https://login.microsoftonline.com/11111111-1111-1111-1111-111111111111</Item>
            <!-- The commented key below specifies that users from any tenant can sign-in. Uncomment if you would like anyone with an Azure AD account to be able to sign in. -->
            <!-- <Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/</Item> -->
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_AADAppSecret"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="oid"/>
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. ClaimsProvider öğesinin altında Domain değerini diğer kimlik sağlayıcılarından ayırt etmek için kullanılabilecek benzersiz bir değerle güncelleştirin.

  5. TechnicalProfile öğesinin altında DisplayName değerini (örneğin, Multi-Tenant AAD) güncelleştirin. Bu değer, oturum açma sayfanızdaki oturum açma düğmesinde görüntülenir.

  6. client_id daha önce kaydettiğiniz Microsoft Entra çok kiracılı uygulamanın uygulama kimliğine ayarlayın.

  7. CryptographicKeys altında, Depolama ReferenceId değerini daha önce oluşturulan ilke anahtarının adıyla güncelleştirin. Örneğin, B2C_1A_AADAppSecret.

Erişimi kısıtlama

ValidTokenIssuerPrefixes değeri olarak kullanılmasıhttps://login.microsoftonline.com/, tüm Microsoft Entra kullanıcılarının uygulamanızda oturum açmasına olanak tanır. Geçerli belirteç verenlerin listesini güncelleştirin ve oturum açabilen belirli bir Microsoft Entra kiracısı kullanıcı listesiyle erişimi kısıtlayın.

Değerleri almak için, kullanıcıların oturum açmasını istediğiniz Microsoft Entra kiracılarının her biri için OpenID Bağlan bulma meta verilerine bakın. Meta veri URL'sinin biçimi, Microsoft Entra kiracınızın adı olan your-tenant öğesine benzerhttps://login.microsoftonline.com/your-tenant/v2.0/.well-known/openid-configuration. Örnek:

https://login.microsoftonline.com/fabrikam.onmicrosoft.com/v2.0/.well-known/openid-configuration

Oturum açmak için kullanılması gereken her Microsoft Entra kiracısı için şu adımları gerçekleştirin:

  1. Tarayıcınızı açın ve kiracının OpenID Bağlan meta veri URL'sine gidin. issuer Nesnesini bulun ve değerini kaydedin. gibi https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/v2.0görünmelidir.
  2. Değeri kopyalayıp ValidTokenIssuerPrefixes anahtarına yapıştırın. Birden çok vereni virgülle ayırın. Önceki ClaimsProvider XML örneğinde iki veren içeren bir örnek görüntülenir.

Kullanıcı yolculuğu ekleme

Bu noktada, kimlik sağlayıcısı ayarlanmıştır, ancak henüz oturum açma sayfalarından herhangi birinde kullanılamaz. Kendi özel kullanıcı yolculuğunuz yoksa, mevcut şablon kullanıcı yolculuğunun bir kopyasını oluşturun, aksi takdirde sonraki adıma geçin.

  1. Başlangıç paketinden TrustFrameworkBase.xml dosyasını açın.
  2. içeren Id="SignUpOrSignIn"UserJourney öğesinin tüm içeriğini bulun ve kopyalayın.
  3. TrustFrameworkExtensions.xml dosyasını açın ve UserJourneys öğesini bulun. Öğesi yoksa bir tane ekleyin.
  4. UserJourneys öğesinin alt öğesi olarak kopyaladığınız UserJourney öğesinin tüm içeriğini yapıştırın.
  5. Kullanıcı yolculuğunun kimliğini yeniden adlandırın. Örneğin, Id="CustomSignUpSignIn".

Kimlik sağlayıcısını kullanıcı yolculuğuna ekleme

Artık bir kullanıcı yolculuğunuz olduğuna göre, yeni kimlik sağlayıcısını kullanıcı yolculuğuna ekleyin. Önce bir oturum açma düğmesi eklersiniz, ardından düğmeyi bir eyleme bağlarsınız. Eylem, daha önce oluşturduğunuz teknik profildir.

  1. veya içeren düzenleme adımı öğesini Type="CombinedSignInAndSignUp"Type="ClaimsProviderSelection" kullanıcı yolculuğunda bulun. Genellikle ilk düzenleme adımıdır. ClaimsProviderSelections öğesi, kullanıcının oturum açabileceği kimlik sağlayıcılarının listesini içerir. Öğelerin sırası, kullanıcıya sunulan oturum açma düğmelerinin sırasını denetler. ClaimsProviderSelection XML öğesi ekleyin. TargetClaimsExchangeId değerini kolay bir ad olarak ayarlayın.

  2. Sonraki düzenleme adımında claimsexchange öğesi ekleyin. Kimliği hedef talep değişim kimliğinin değerine ayarlayın. TechnicalProfileReferenceId değerini daha önce oluşturduğunuz teknik profilin kimliğine güncelleştirin.

Aşağıdaki XML, kimlik sağlayıcısıyla bir kullanıcı yolculuğunun ilk iki düzenleme adımını gösterir:

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    ...
    <ClaimsProviderSelection TargetClaimsExchangeId="AzureADCommonExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="AzureADCommonExchange" TechnicalProfileReferenceId="AADCommon-OpenIdConnect" />
  </ClaimsExchanges>
</OrchestrationStep>

Bağlı olan taraf ilkesini yapılandırma

Bağlı olan taraf ilkesi, örneğin SignUpSignIn.xml, Azure AD B2C'nin yürüteceği kullanıcı yolculuğunu belirtir. Bağlı olan taraf içinde DefaultUserJourney öğesini bulun. ReferenceId değerini, kimlik sağlayıcısını eklediğiniz kullanıcı yolculuğu kimliğiyle eşleşecek şekilde güncelleştirin.

Aşağıdaki örnekte, kullanıcı yolculuğu için CustomSignUpSignIn ReferenceId değeri olarak CustomSignUpSignInayarlanmıştır:

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Özel ilkeyi karşıya yükleme

  1. Azure Portal oturum açın.
  2. Portal araç çubuğunda Dizin + Abonelik simgesini ve ardından Azure AD B2C kiracınızı içeren dizini seçin.
  3. Azure portalında Azure AD B2C'yi arayın ve seçin.
  4. İlkeler'in altında Kimlik Deneyimi Çerçevesi'ne tıklayın.
  5. Özel İlkeyi Karşıya Yükle'yi seçin ve değiştirdiğiniz iki ilke dosyasını şu sırayla karşıya yükleyin: uzantı ilkesi, örneğin TrustFrameworkExtensions.xml, ve gibi SignUpSignIn.xmlbağlı olan taraf ilkesi.

Özel ilkenizi test edin

  1. Bağlı olan taraf ilkenizi seçin, örneğin B2C_1A_signup_signin.
  2. Uygulama için daha önce kaydettiğiniz bir web uygulamasını seçin. Yanıt URL'si göstermelidirhttps://jwt.ms.
  3. Şimdi çalıştır düğmesini seçin.
  4. Microsoft Entra hesabıyla oturum açmak için kaydolma veya oturum açma sayfasında Ortak Microsoft Entra Kimliği'ni seçin.

Çok kiracılı oturum açma özelliğini test etmek için, başka bir Microsoft Entra kiracısı bulunan bir kullanıcının kimlik bilgilerini kullanarak son iki adımı gerçekleştirin. Şimdi çalıştır uç noktasını kopyalayın ve google chrome'da Gizli Mod veya Microsoft Edge'de bir InPrivate penceresi gibi özel bir tarayıcı penceresinde açın. Özel tarayıcı penceresinde açmak, şu anda önbelleğe alınmış microsoft entra kimlik bilgilerini kullanmayarak tam kullanıcı yolculuğunu test etmenizi sağlar.

Oturum açma işlemi başarılı olursa, tarayıcınız Azure AD B2C tarafından döndürülen belirtecin içeriğini görüntüleyen öğesine yönlendirilir https://jwt.ms.

Sonraki adımlar