Regisztráció és bejelentkezés beállítása GitHub-fiókkal az Azure Active Directory B2C használatával

Fontos

2025. május 1-jére az Azure AD B2C már nem lesz elérhető az új ügyfelek számára. További információ a GYIK-ben.

Mielőtt hozzákezdene, a lap tetején található Szabályzattípus kiválasztása választóval válassza ki a beállított szabályzat típusát. Az Azure Active Directory B2C két módszert kínál annak meghatározására, hogy a felhasználók hogyan használják az alkalmazásokat: előre definiált felhasználói folyamatokon vagy teljesen konfigurálható egyéni szabályzatokon keresztül. A cikkben szereplő lépések különbözőek az egyes metódusok esetében.

Megjegyzés:

Ez a funkció nyilvános előzetes verzióban érhető el.

Fontos

2021 májusától a GitHub bejelentett egy módosítást, amely hatással van az Azure AD B2C egyéni szabályzatok összevonására. A változás miatt metaadatokat adhat hozzá <Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item> a GitHub technikai profiljához. További információ: API-hitelesítés elavultatása lekérdezési paraméterekkel.

Előfeltételek

GitHub OAuth-alkalmazás létrehozása

Ha gitHub-fiókkal szeretne bejelentkezni az Azure Active Directory B2C-be (Azure AD B2C), létre kell hoznia egy alkalmazást a GitHub Developer Portalon. További információ: OAuth-alkalmazás létrehozása. Ha még nem rendelkezik GitHub-fiókkal, regisztrálhat a webhelyen https://www.github.com/.

  1. Jelentkezzen be a GitHub-fejlesztőbe a GitHub-hitelesítő adataival.
  2. Válassza az OAuth Apps , majd az Új OAuth-alkalmazás lehetőséget.
  3. Adja meg az alkalmazás nevét és a kezdőlap URL-címét.
  4. Az Engedélyezési visszahívás URL-címéhez írja be a következőt https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp: Ha egyéni tartományt használ, írja be a következőt https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp: Cserélje le your-domain-name az egyéni tartományra, és your-tenant-name a bérlő nevére. A bérlő nevének megadásakor használja az összes kisbetűt, még akkor is, ha a bérlő nagybetűkkel van definiálva az Azure AD B2C-ben.
  5. Kattintson az Alkalmazás regisztrálása gombra.
  6. Másolja ki az ügyfélazonosító és az ügyfélkód értékeit. Mindkettőnek hozzá kell adnia az identitásszolgáltatót a bérlőhöz.

A GitHub konfigurálása identitásszolgáltatóként

  1. Jelentkezzen be az Azure Portalra egy olyan fiókkal, amely legalább külső identitásszolgáltatói rendszergazdai jogosultságokkal rendelkezik.
  2. Ha több bérlőhöz is hozzáférése van, a felső menüben a Beállítások ikont választva váltson az Azure AD B2C-bérlőre a Címtárak + előfizetések menüből.
  3. Válassza az Összes szolgáltatást az Azure Portal bal felső sarkában, keresse meg és válassza az Azure AD B2C-t.
  4. Válassza az Identitásszolgáltatók lehetőséget, majd válassza a GitHub (előzetes verzió) lehetőséget.
  5. Adjon meg egy nevet. Például a GitHub.
  6. Az ügyfélazonosítóhoz adja meg a korábban létrehozott GitHub-alkalmazás ügyfél-azonosítóját.
  7. Az Ügyfélkód mezőbe írja be a rögzített ügyfélkulcsot.
  8. Válassza az Mentésgombot.

GitHub-identitásszolgáltató hozzáadása egy felhasználói folyamathoz

Jelenleg a GitHub identitásszolgáltatója be van állítva, de még nem érhető el egyik bejelentkezési oldalon sem. A GitHub-identitásszolgáltató hozzáadása egy felhasználói folyamathoz:

  1. Az Azure AD B2C bérleményben válassza a Felhasználói folyamatok lehetőséget.
  2. Kattintson arra a felhasználói folyamatra, amelyet hozzá szeretne adni a GitHub-identitásszolgáltatóhoz.
  3. A Közösségi identitásszolgáltatók területen válassza a GitHubot.
  4. Válassza az Mentésgombot.
  5. A szabályzat teszteléséhez válassza a Felhasználói folyamat futtatása lehetőséget.
  6. Alkalmazás esetén válassza ki a korábban regisztrált testapp1 nevű webalkalmazást. A Válasz URL-címnek meg kell jelennie https://jwt.ms.
  7. Válassza a Felhasználói folyamat futtatása gombot.
  8. A regisztrációs vagy bejelentkezési oldalon válassza a GitHubot a GitHub-fiókkal való bejelentkezéshez.

Ha a bejelentkezési folyamat sikeres, a rendszer átirányítja a böngészőt, amely megjeleníti az Azure AD B2C által visszaadott https://jwt.msjogkivonat tartalmát.

Szabályzatkulcs létrehozása

Az Azure AD B2C-bérlőben korábban rögzített ügyfélkulcsot kell tárolnia.

  1. Jelentkezzen be a Azure portalra.
  2. Ha több bérlőhöz is hozzáférése van, a felső menüben a Beállítások ikont választva váltson az Azure AD B2C-bérlőre a Címtárak + előfizetések menüből.
  3. Válassza az Összes szolgáltatást az Azure Portal bal felső sarkában, majd keresse meg és válassza az Azure AD B2C-t.
  4. Az Áttekintés lapon válassza a Identity Experience Framework-et.
  5. Válassza a Házirendkulcsok lehetőséget, majd válassza a Hozzáadás lehetőséget.
  6. A Beállítások beállításnál válassza a Manuallehetőséget.
  7. Adjon meg egy nevet a házirendkulcshoz. Például: GitHubSecret. A rendszer automatikusan hozzáadja az előtagot B2C_1A_ a kulcs nevéhez.
  8. A Titkos kód mezőbe írja be a korábban rögzített ügyfélkulcsot.
  9. Kulcshasználat esetén válassza a Signaturelehetőséget.
  10. Kattintson a Létrehozás gombra.

A GitHub konfigurálása identitásszolgáltatóként

Ahhoz, hogy a felhasználók GitHub-fiókkal jelentkezzenek be, meg kell határoznia azt a fiókot jogcímszolgáltatóként, amellyel az Azure AD B2C egy végponton keresztül tud kommunikálni. A végpont olyan jogcímeket biztosít, amelyeket az Azure AD B2C használ annak ellenőrzésére, hogy egy adott felhasználó hitelesített-e.

A GitHub-fiókot jogcímszolgáltatóként úgy határozhatja meg, hogy hozzáadja azt a szabályzat bővítményfájljában lévő ClaimsProviders elemhez.

  1. Nyissa meg a TrustFrameworkExtensions.xml.

  2. Keresse meg a ClaimsProviders elemet. Ha nem létezik, adja hozzá a törzselemhez.

  3. Adjon hozzá egy új ClaimsProvidert az alábbiak szerint:

    <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. Állítsa be a client_id az alkalmazásregisztrációból származó alkalmazásazonosítóra.

  5. Mentse a fájlt.

Jogcímátalakítások hozzáadása

A GitHub technikai profiljához hozzá kell adni a CreateIssuerUserId jogcímátalakításokat a ClaimsTransformations listájához. Ha nincs meghatározva ClaimsTransformations elem a fájlban, adja hozzá a szülő XML-elemeket az alábbiak szerint. A jogcímátalakításokhoz szükség van egy numerikusUserId nevű új jogcímtípusra is.

  1. Keresse meg a BuildingBlocks elemet. Ha az elem nem létezik, adja hozzá.
  2. Keresse meg a ClaimsSchema elemet. Ha az elem nem létezik, adja hozzá.
  3. Adja hozzá a numericUserId jogcímet a ClaimsSchema elemhez.
  4. Keresse meg a ClaimsTransformations elemet. Ha az elem nem létezik, adja hozzá.
  5. Adja hozzá a CreateIssuerUserId jogcímátalakításokat a ClaimsTransformations elemhez .
<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>

Felhasználói útvonal hozzáadása

Ezen a ponton az identitásszolgáltató be van állítva, de még nem érhető el egyik bejelentkezési oldalon sem. Ha nem rendelkezik saját egyéni felhasználói folyamatokkal, hozzon létre egy meglévő sablonfelhasználói folyamat másolatát, ellenkező esetben folytassa a következő lépéssel.

  1. Nyissa meg a TrustFrameworkBase.xml fájlt a kezdőcsomagból.
  2. Keresse meg és másolja ki a UserJourney elem teljes tartalmát, amely tartalmazza Id="SignUpOrSignIn"a elemet.
  3. Nyissa meg a TrustFrameworkExtensions.xml , és keresse meg a UserJourneys elemet. Ha az elem nem létezik, adjon hozzá egyet.
  4. Illessze be a UserJourney elem teljes tartalmát, amelyet a UserJourneys elem gyermekként másolt.
  5. Nevezze át a felhasználói folyamat azonosítóját. Például: Id="CustomSignUpSignIn".

Identitásszolgáltató hozzáadása egy felhasználói folyamathoz

Most, hogy már rendelkezik felhasználói folyamatokkal, adja hozzá az új identitásszolgáltatót a felhasználói folyamathoz. Először hozzáad egy bejelentkezési gombot, majd csatolja a gombot egy művelethez. A művelet az a korábban létrehozott technikai profil.

  1. Keresse meg a vezénylési lépés azon elemét, amely tartalmazza Type="CombinedSignInAndSignUp"vagy Type="ClaimsProviderSelection" a felhasználói folyamat során. Általában ez az első vezénylési lépés. A ClaimsProviderSelections elem azon identitásszolgáltatók listáját tartalmazza, amelyekkel a felhasználó bejelentkezhet. Az elemek sorrendje szabályozza a felhasználónak megjelenített bejelentkezési gombok sorrendjét. Adjon hozzá egy ClaimsProviderSelection XML elemet. Állítsa be a TargetClaimsExchangeId értékét egy olvasmányos névre.

  2. A következő vezénylési lépésben adjon hozzá egy ClaimsExchange elemet. Állítsa az azonosítót a cél jogcímcsere-azonosító értékére. Frissítse a TechnicalProfileReferenceId értékét a korábban létrehozott műszaki profil azonosítójára.

Az alábbi XML a felhasználói folyamat első két vezénylési lépését mutatja be az identitásszolgáltatóval:

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

A függő entitás házirendjének konfigurálása

A függő entitás szabályzata, például SignUpSignIn.xml, meghatározza, hogy az Azure AD B2C milyen felhasználói folyamatot hajt végre. Keresse meg a DefaultUserJourney elemet a megbízó félen belül. Frissítse a referenciaazonosítót úgy, hogy megfeleljen a felhasználói út ID-jének, amelyhez hozzáadta az azonosítószolgáltatót.

A következő példában a CustomSignUpSignIn felhasználói folyamat Referenciaazonosítója a következőre van állítva: CustomSignUpSignIn

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

Az egyéni szabályzat feltöltése

  1. Jelentkezzen be a Azure portalra.
  2. Válassza a Címtár + Előfizetés ikont a portál eszköztárán, majd válassza ki az Azure AD B2C-bérlőt tartalmazó könyvtárat.
  3. Az Azure Portalon keresse meg és válassza ki az Azure AD B2C-t.
  4. A Szabályzatok területen válassza a Identity Experience Framework lehetőséget.
  5. Válassza az Egyéni házirend feltöltése lehetőséget, majd töltse fel a módosított két házirendfájlt a következő sorrendben: a bővítményházirend, például TrustFrameworkExtensions.xmla függő entitás házirendje, például SignUpSignIn.xml.

Egyéni szabályzat tesztelése

  1. Válassza ki a megbízó fél irányelvét, például B2C_1A_signup_signin.
  2. Alkalmazás esetén válasszon ki egy korábban regisztrált webalkalmazást. A Válasz URL-címnek meg kell jelennie https://jwt.ms.
  3. Válassza a Futtatás most gombot.
  4. A regisztrációs vagy bejelentkezési oldalon válassza a GitHubot a GitHub-fiókkal való bejelentkezéshez.

Ha a bejelentkezési folyamat sikeres, a rendszer átirányítja a böngészőt, amely megjeleníti az Azure AD B2C által visszaadott https://jwt.msjogkivonat tartalmát.

Következő lépések