Aracılığıyla paylaş


Azure Active Directory B2C kullanarak GitHub hesabıyla kaydolma ve oturum açma ayarlama

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

Başlamadan önce, ayarlamakta olduğunuz ilke türünü seçmek için bu sayfanın üst kısmındaki İlke türü seç 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.

Uyarı

Bu özellik genel önizleme aşamasındadır.

Önemli

Mayıs 2021'den itibaren GitHub, Azure AD B2C özel ilke federasyonunuzu etkileyen bir değişiklik duyurdu. Değişiklik nedeniyle GitHub teknik profilinize meta veriler ekleyin <Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item> . Daha fazla bilgi için bkz. Sorgu parametreleri aracılığıyla API kimlik doğrulamasını kullanımdan kaldırma.

Önkoşullar

GitHub OAuth uygulaması oluşturma

Azure Active Directory B2C'de (Azure AD B2C) GitHub hesabıyla oturum açmayı etkinleştirmek için GitHub Geliştirici portalında bir uygulama oluşturmanız gerekir. Daha fazla bilgi için bkz. OAuth Uygulaması Oluşturma. Henüz bir GitHub hesabınız yoksa adresinden kaydolabilirsiniz https://www.github.com/.

  1. GitHub kimlik bilgilerinizle GitHub Geliştiricisi'nde oturum açın.
  2. OAuth Uygulamaları'nı ve ardından Yeni OAuth Uygulaması'nı seçin.
  3. Bir Uygulama adı ve Giriş Sayfası URL'nizi girin.
  4. Yetkilendirme geri çağırma URL'si için girinhttps://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp. Özel bir etki alanı kullanıyorsanız, https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp girin. your-domain-name yerine özel alan adınızı, your-tenant-name yerine ise kiracınızın adını yazın. Azure AD B2C'de kiracı büyük harflerle tanımlansa bile kiracı adınızı girerken tüm küçük harfleri kullanın.
  5. Uygulamayı kaydet'e tıklayın.
  6. İstemci Kimliği ve İstemci Gizli Anahtarı değerlerini kopyalayın. Kimlik sağlayıcısını kiracınıza eklemek için her ikisini de yapmanız gerekir.

GitHub'ı kimlik sağlayıcısı olarak yapılandırma

  1. Azure portalında en az Dış Kimlik Sağlayıcısı Yöneticisi ayrıcalıklarına sahip bir hesapla oturum açın.
  2. Birden çok kiracıya erişiminiz varsa Azure AD B2C kiracınıza geçiş yapmak için Dizinler + abonelikler menüsünde, üstteki menüden Ayarlar simgesini seçin.
  3. Azure portalının sol üst köşesindeki Tüm hizmetler'i seçin, Azure AD B2C'yi arayın ve seçin.
  4. Kimlik sağlayıcıları seçeneğini seçin, sonra GitHub (Önizleme) seçeneğini seçin.
  5. Bir Ad girin. Örneğin GitHub.
  6. İstemci Kimliği için, daha önce oluşturduğunuz GitHub uygulamasının İstemci Kimliğini girin.
  7. İstemci gizlisi için kaydettiğiniz istemci gizlisini girin.
  8. Kaydetseçeneğini seçin.

Kullanıcı akışına GitHub kimlik sağlayıcısı ekleme

Bu noktada GitHub kimlik sağlayıcısı ayarlanmıştır, ancak henüz oturum açma sayfalarından herhangi birinde kullanılamaz. GitHub kimlik sağlayıcısını bir kullanıcı akışına eklemek için:

  1. Azure AD B2C kiracınızda Kullanıcı akışları'yı seçin.
  2. GitHub kimlik sağlayıcısını eklemek istediğiniz kullanıcı akışına tıklayın.
  3. Sosyal kimlik sağlayıcıları altında GitHub'ı seçin.
  4. Kaydetseçeneğini seçin.
  5. İlkenizi test etmek için Kullanıcı akışını çalıştır'ı seçin.
  6. Uygulama için daha önce kaydettiğiniz testapp1 adlı web uygulamasını seçin. Yanıt URL'si göstermelidirhttps://jwt.ms.
  7. Kullanıcı akışını çalıştır düğmesini seçin.
  8. GitHub hesabıyla oturum açmak için kaydolma veya oturum açma sayfasında GitHub'ı seçin.

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 https://jwt.ms adresine yönlendirilir.

İlke anahtarı oluşturma

Daha önce Azure AD B2C dizininde kaydettiğiniz istemci sırrını depolamanız gerekir.

  1. Azure portalınaoturum açın.
  2. Birden çok kiracıya erişiminiz varsa Azure AD B2C kiracınıza geçiş yapmak için Dizinler + abonelikler menüsünde, ü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 Azure AD B2C'yi arayıp seçin.
  4. Genel Bakış sayfasında Kimlik Deneyimi Çerçevesi'ni seçin.
  5. İlke Anahtarları'nı seçin, sonra Ekle'yi seçin.
  6. Seçenekler için Manual öğesini seçin.
  7. İlke anahtarı için bir Ad girin. Örneğin, GitHubSecret. Ön ek B2C_1A_ , anahtarınızın adına otomatik olarak eklenir.
  8. Gizli alanına daha önce kaydettiğiniz istemci gizli anahtarını girin.
  9. Anahtar kullanımı için Signature seçin.
  10. Oluştur'utıklayın.

GitHub'ı kimlik sağlayıcısı olarak yapılandırma

Kullanıcıların GitHub hesabı kullanarak oturum açmasını sağlamak için hesabı 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.

GitHub hesabını ilkenizin uzantı dosyasındaki ClaimsProviders öğesine ekleyerek talep sağlayıcısı olarak tanımlayabilirsiniz.

  1. TrustFrameworkExtensions.xml açın.

  2. ClaimsProviders öğesini bulun. Eğer yoksa, bunu kök öğesinin altına ekleyin.

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

    <ClaimsProvider>
      <Domain>github.com</Domain>
      <DisplayName>GitHub</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="GitHub-OAuth2">
          <DisplayName>GitHub</DisplayName>
          <Protocol Name="OAuth2" />
          <Metadata>
            <Item Key="ProviderName">github.com</Item>
            <Item Key="authorization_endpoint">https://github.com/login/oauth/authorize</Item>
            <Item Key="AccessTokenEndpoint">https://github.com/login/oauth/access_token</Item>
            <Item Key="ClaimsEndpoint">https://api.github.com/user</Item>
            <Item Key="HttpBinding">GET</Item>
            <Item Key="scope">read:user user:email</Item>
            <Item Key="UsePolicyInRedirectUri">0</Item>
            <Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item>  
            <Item Key="UserAgentForClaimsExchange">CPIM-Basic/{tenant}/{policy}</Item>
            <!-- Update the Client ID below to the Application ID -->
            <Item Key="client_id">Your GitHub application ID</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_GitHubSecret"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
            <OutputClaim ClaimTypeReferenceId="numericUserId" PartnerClaimType="id" />
            <OutputClaim ClaimTypeReferenceId="issuerUserId" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="github.com" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateIssuerUserId" />
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. uygulama kaydından uygulama kimliğine client_id ayarlayın.

  5. Dosyayı kaydedin.

Talepleri dönüştürme işlemlerini ekle

GitHub teknik profili , ClaimsTransformations listesine CreateIssuerUserId talep dönüşümlerinin eklenmesini gerektirir. Dosyanızda tanımlanmış bir ClaimsTransformations öğeniz yoksa, üst XML öğelerini aşağıda gösterildiği gibi ekleyin. Talep dönüştürmeleri için numericUserId adlı yeni bir talep türü de tanımlanmalıdır.

  1. BuildingBlocks öğesini arayın. Öğesi yoksa ekleyin.
  2. ClaimsSchema öğesini bulun. Öğesi yoksa ekleyin.
  3. ClaimsSchema öğesine numericUserId talebi ekleyin.
  4. ClaimsTransformations öğesini bulun. Öğesi yoksa ekleyin.
  5. CreateIssuerUserId talep dönüştürmelerini ClaimsTransformations öğesine ekleyin.
<BuildingBlocks>
  <ClaimsSchema>
    <ClaimType Id="numericUserId">
      <DisplayName>Numeric user Identifier</DisplayName>
      <DataType>long</DataType>
    </ClaimType>
  </ClaimsSchema>
  <ClaimsTransformations>
    <ClaimsTransformation Id="CreateIssuerUserId" TransformationMethod="ConvertNumberToStringClaim">
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="numericUserId" TransformationClaimType="inputClaim" />
      </InputClaims>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="issuerUserId" TransformationClaimType="outputClaim" />
      </OutputClaims>
    </ClaimsTransformation>
  </ClaimsTransformations>
</BuildingBlocks>

Bir kullanıcı yolculuğu ekleyin

Bu noktada, kimlik sağlayıcısı ayarlanmıştır, ancak henüz giriş sayfalarından herhangi birinde erişilebilir değildir. 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" öğesinin tüm içeriğini bulun ve kopyalayın.
  3. TrustFrameworkExtensions.xml 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 Id'sini 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. Kullanıcı yolculuğunda Type="CombinedSignInAndSignUp" veya Type="ClaimsProviderSelection" içeren düzenleme adımı öğesini 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. Id'yi hedef talepler değişimi kimliğinin değerine ayarlayın. TechnicalProfileReferenceId değerini daha önce oluşturduğunuz teknik profilin Id'sine güncelleyin.

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="GitHubExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="GitHubExchange" TechnicalProfileReferenceId="GitHub-OAuth2" />
  </ClaimsExchanges>
</OrchestrationStep>

Bağımlı taraf ilkesini yapılandırın

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 ID'si ile eşleşecek şekilde güncelleyin.

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

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

Özel ilkeyi karşıya yükle

  1. Azure portalınaoturum 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. Politikalar altında Kimlik Deneyimi Çerçevesi seçin.
  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, ardından da SignUpSignIn.xml gibi bağ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. GitHub hesabıyla oturum açmak için kaydolma veya oturum açma sayfasında GitHub'ı seçin.

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 https://jwt.ms adresine yönlendirilir.

Sonraki Adımlar