Megosztás a következőn keresztül:


Regisztráció és bejelentkezés beállítása általános OpenID-Csatlakozás az Azure Active Directory B2C használatával

Mielőtt hozzákezdene, a 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.

Az OpenID Csatlakozás az OAuth 2.0-ra épülő hitelesítési protokoll, amely a biztonságos felhasználói bejelentkezéshez használható. A protokollt használó legtöbb identitásszolgáltató támogatott az Azure AD B2C-ben.

Ez a cikk bemutatja, hogyan vehet fel egyéni OpenID-Csatlakozás identitásszolgáltatókat a felhasználói folyamatokba.

Fontos

A végpontoknak meg kell felelniük az Azure AD B2C biztonsági követelményeinek. A régebbi TLS-verziók és -titkosítások elavultak. További információ: Azure AD B2C TLS és titkosítási csomag követelményei.

Előfeltételek

Az identitásszolgáltató hozzáadása

  1. Jelentkezzen be az Azure Portalra az Azure AD B2C-bérlő globális rendszergazdájaként.
  2. Ha több bérlőhöz is hozzáfér, a felső menüben válassza a Gépház ikont az Azure AD B2C-bérlőre való váltáshoz a Címtárak + előfizetések menüből.
  3. Válassza az Azure Portal bal felső sarkában található Minden szolgáltatás lehetőséget, majd keresse meg és válassza ki az Azure AD B2C-t.
  4. Válassza az Identitásszolgáltatók lehetőséget, majd válassza az Új OpenID Csatlakozás szolgáltatót.
  5. Adjon meg egy nevet. Írja be például a Contoso nevet.

Az OpenId Csatlakozás identitásszolgáltatót úgy határozhatja meg, hogy hozzáadja azt a szabályzat bővítményfájljában lévő ClaimsProviders elemhez.

  1. Nyissa meg az TrustFrameworkExtensions.xml fájlt.

  2. Keresse meg a ClaimsProviders elemet. Ha nem létezik, adja hozzá a gyökérelemhez.

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

    <ClaimsProvider>
      <Domain>contoso.com</Domain>
      <DisplayName>Login with Contoso</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Contoso-OpenIdConnect">
          <DisplayName>Contoso</DisplayName>
          <Description>Login with your Contoso account</Description>
          <Protocol Name="OpenIdConnect"/>
          <Metadata>
            <Item Key="METADATA">https://your-identity-provider.com/.well-known/openid-configuration</Item>
            <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>
          </Metadata>
          <!-- <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_ContosoSecret"/>
          </CryptographicKeys> -->
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="oid"/>
            <OutputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="tid"/>
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
            <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="oid"/>
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    

Az identitásszolgáltató konfigurálása

Minden OpenID Csatlakozás identitásszolgáltató egy metaadat-dokumentumot ír le, amely a bejelentkezés végrehajtásához szükséges legtöbb információt tartalmazza. A metaadat-dokumentum olyan információkat tartalmaz, mint a használandó URL-címek és a szolgáltatás nyilvános aláírókulcsainak helye. Az OpenID Csatlakozás metaadat-dokumentum mindig egy végponton található, amely a következő végződésű.well-known/openid-configuration: . A hozzáadni kívánt OpenID Csatlakozás identitásszolgáltató esetében adja meg a metaadat URL-címét.

A Metaadatok URL-címében adja meg az OpenID Csatlakozás metaadat-dokumentum URL-címét.

<Item Key="METADATA"> A műszaki profil metaadatai között adja meg az OpenID Csatlakozás metaadat-dokumentum URL-címét.

Ügyfélazonosító és titkos kód

Ahhoz, hogy a felhasználók bejelentkezhessenek, az identitásszolgáltató megköveteli, hogy a fejlesztők regisztráljanak egy alkalmazást a szolgáltatásukban. Ez az alkalmazás rendelkezik egy azonosítóval, amelyet ügyfél-azonosítónak és titkos ügyfélkódnak neveznek.

Az ügyfél titkos kódja nem kötelező. Azonban meg kell adnia egy ügyfél titkos kódját, ha a Válasz típusa az code, amely a titkos kód használatával cseréli le a kódját a jogkivonatra.

Az ügyfélazonosító és az ügyfél titkos kódjának hozzáadásához másolja ki ezeket az értékeket az identitásszolgáltatóból, és írja be őket a megfelelő mezőkbe.

<Item Key="client_id"> A műszaki profil metaadataiban adja meg az ügyfélazonosítót.

Szabályzatkulcs létrehozása

Ha szükség van az ügyfél titkos kódjára, tárolja a korábban az Azure AD B2C-bérlőben rögzített ügyféltitkot.

  1. Jelentkezzen be az Azure Portalra.

  2. Győződjön meg arról, hogy az Azure AD B2C-bérlőt tartalmazó könyvtárat használja. Válassza ki a Címtár + előfizetés szűrőt a portál eszköztárán.

  3. A Portál beállításai | Címtárak + előfizetések lap, keresse meg az Azure AD B2C-címtárat a címtárnévlistában, majd válassza a Váltás lehetőséget.

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

  5. Az Áttekintés lapon válassza az Identity Experience Framework lehetőséget.

  6. Válassza a Házirendkulcsok lehetőséget, majd válassza a Hozzáadás lehetőséget.

  7. A Beállítások beállításnál válassza a Manuallehetőséget.

  8. Adja meg a szabályzatkulcs nevét. For example, ContosoSecret. A rendszer automatikusan hozzáadja az előtagot B2C_1A_ a kulcs nevéhez.

  9. A Titkos kód mezőbe írja be a korábban rögzített ügyfélkulcsot.

  10. Kulcshasználat esetén válassza a Signaturelehetőséget.

  11. Click Create.

  12. Az XML-elemben CryptographicKeys adja hozzá a következő elemet:

    <CryptographicKeys>
      <Key Id="client_secret" StorageReferenceId="B2C_1A_ContosoSecret"/>
    </CryptographicKeys>
    

Scope

A hatókör határozza meg például az identitásszolgáltatótól openid profilebegyűjtendő információkat és engedélyeket. Ahhoz, hogy az identitásszolgáltatótól megkapja az azonosító jogkivonatát, meg kell adnia a hatókört openid .

Az azonosító jogkivonat nélkül a felhasználók nem tudnak bejelentkezni az Azure AD B2C-be az egyéni identitásszolgáltató használatával. Más hatókörök szóközzel elválasztva is hozzáfűzhetők. Az egyéni identitásszolgáltató dokumentációjában megtekintheti, hogy milyen egyéb hatókörök érhetők el.

A Hatókör mezőben adja meg a hatóköröket az identitásszolgáltatótól. For example, openid profile.

<Item Key="scope"> A műszaki profil metaadataiban adja meg az identitásszolgáltató hatóköreit. For example, openid profile.

Válasz típusa

A válasz típusa azt ismerteti, hogy a rendszer milyen típusú információkat küld vissza az egyéni identitásszolgáltató kezdeti hívásában authorization_endpoint . A következő választípusok használhatók:

  • code: Az engedélyezési kód folyamatának megfelelően a rendszer visszaad egy kódot az Azure AD B2C-nek. Az Azure AD B2C ezután meghívja a token_endpoint token kódjának cseréjét.
  • id_token: Az egyéni identitásszolgáltató visszaad egy azonosító jogkivonatot az Azure AD B2C-nek.

A Válasz típusban válassza ki codeaz identitásszolgáltató beállításainak megfelelőt.id_token

<Item Key="response_types"> A műszaki profil metaadatai között válassza ki codevagy id_token az identitásszolgáltató beállításainak megfelelően.

Válasz mód

A válasz mód határozza meg azt a módszert, amellyel az adatokat vissza kell küldeni az egyéni identitásszolgáltatótól az Azure AD B2C-be. A következő válaszmódok használhatók:

  • form_post: Ez a válasz mód ajánlott a legjobb biztonság érdekében. A válasz a HTTP-metóduson POST keresztül lesz továbbítva, és a kód vagy a jogkivonat a törzsbe lesz kódolva a application/x-www-form-urlencoded formátum használatával.
  • query: A kód vagy jogkivonat lekérdezési paraméterként lesz visszaadva.

Válasz módban válassza ki form_postvagy queryaz identitásszolgáltató beállításainak megfelelően.

<Item Key="response_mode"> A műszaki profil metaadatai között válassza ki form_postaz queryidentitásszolgáltató beállításainak megfelelően.

Domain hint

A tartományra vonatkozó tipp segítségével közvetlenül a megadott identitásszolgáltató bejelentkezési oldalára ugorhat, ahelyett, hogy a felhasználó kiválasztanák a rendelkezésre álló identitásszolgáltatók listáját.

Az ilyen viselkedés engedélyezéséhez adjon meg egy értéket a tartománymutatóhoz. Az egyéni identitásszolgáltatóhoz való ugráshoz fűzze hozzá a paramétert domain_hint=<domain hint value> a kérés végéhez, amikor meghívja az Azure AD B2C-t bejelentkezésre.

A Domain hintben adja meg a tartománymutatóban használt tartománynevet.

<Domain>contoso.com</Domain> A műszaki profil XML-elemében adja meg a tartománymutatóban használt tartománynevet. For example, contoso.com.

Jogcímek leképezése

Miután az egyéni identitásszolgáltató visszaküld egy azonosító jogkivonatot az Azure AD B2C-nek, az Azure AD B2C-nek képesnek kell lennie a kapott jogkivonat jogcímeinek megfeleltetésére az Azure AD B2C által felismert és használt jogcímekre. Az alábbi leképezések mindegyikéhez tekintse meg az egyéni identitásszolgáltató dokumentációját az identitásszolgáltató jogkivonataiban visszaadott jogcímek megértéséhez:

  • Felhasználói azonosító: Adja meg azt a jogcímet, amely a bejelentkezett felhasználó egyedi azonosítóját adja meg.
  • Megjelenítendő név: Adja meg azt a jogcímet, amely a felhasználó megjelenítendő nevét vagy teljes nevét adja meg.
  • Utónév: Adja meg azt a jogcímet, amely a felhasználó utónevét adja meg.
  • Vezetéknév: Adja meg a felhasználó vezetéknevét tartalmazó jogcímet.
  • E-mail: Adja meg a felhasználó e-mail-címét tartalmazó jogcímet.

Az OutputClaims elem az identitásszolgáltató által visszaadott jogcímek listáját tartalmazza. Képezze le a házirendben definiált jogcím nevét az identitásszolgáltatóban meghatározott névre. <OutputClaims> Az elem alatt konfigurálja az PartnerClaimType attribútumot az identitásszolgáltató által meghatározott jogcímnévvel.

ClaimTypeReferenceId PartnerClaimType
issuerUserId Adja meg azt a jogcímet, amely a bejelentkezett felhasználó egyedi azonosítót adja meg.
displayName Adja meg azt a jogcímet, amely a felhasználó megjelenítendő nevét vagy teljes nevét adja meg.
givenName Adja meg a felhasználó utónevét tartalmazó jogcímet.
surName Adja meg a felhasználó vezetéknevét tartalmazó jogcímet.
email Adja meg a felhasználó e-mail-címét tartalmazó jogcímet.
identityProvider Adja meg a jogkivonat kiállítójának nevét tartalmazó jogcímet. For example, iss. Ha az identitásszolgáltató nem tartalmazza a kiállítói jogcímet a jogkivonatban, állítsa be az DefaultValue attribútumot az identitásszolgáltató egyedi azonosítójával. For example, DefaultValue="contoso.com".

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

  1. Az Azure AD B2C-bérlőben válassza a Felhasználói folyamatok lehetőséget.
  2. Kattintson arra a felhasználói folyamatra, amelyet hozzá szeretne adni az identitásszolgáltatóhoz.
  3. A Közösségi identitásszolgáltatók területen válassza ki a hozzáadott identitásszolgáltatót. Például a Contoso.
  4. Válassza a Mentés parancsot.

A felhasználói folyamat tesztelése

  1. A szabályzat teszteléséhez válassza a Felhasználói folyamat futtatása lehetőséget.
  2. 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.
  3. Válassza a Felhasználói folyamat futtatása gombot.
  4. A regisztrációs vagy bejelentkezési lapon válassza ki a bejelentkezni kívánt identitásszolgáltatót. Például a Contoso.

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.

Felhasználói folyamat 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 az 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 az TrustFrameworkExtensions.xml fájlt , és keresse meg a UserJourneys elemet. Ha az elem nem létezik, adjon hozzá egyet.
  4. Illessze be a UserJourney elem gyermekként másolt UserJourney elem teljes tartalmát.
  5. Nevezze át a felhasználói folyamat azonosítóját. For example, 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 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 rövid 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="ContosoExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

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

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

A függő entitás házirendje( például SignUpSignIn.xml) meghatározza az Azure AD B2C által végrehajtandó felhasználói folyamatot. Keresse meg a DefaultUserJourney elemet a függő entitáson belül. Frissítse a referenciaazonosítót a felhasználói útazonosítónak megfelelően, amelyben hozzáadta az identitásszolgáltatót.

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

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

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

  1. Jelentkezzen be az 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 az 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.
  1. Válassza ki például B2C_1A_signup_signina függő entitás szabályzatát.
  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 Contoso lehetőséget a Google-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.

Ismert problémák

  • Az Azure AD B2C nem támogatja a JWE -t (JSON-webtitkosítás) a titkosított jogkivonatok OpenID-kapcsolati identitásszolgáltatókkal való cseréjéhez.

Következő lépések

További információt az OpenId Csatlakozás technikai profil referencia-útmutatójában talál.