Regisztráció és bejelentkezés beállítása általános OpenID-Csatlakozás Azure Active Directory B2C használatával
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 azt ismerteti, hogyan adhat hozzá egyéni OpenID-Csatlakozás identitásszolgáltatókat a felhasználói folyamatokhoz.
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 csomagok követelményei.
Előfeltételek
- Hozzon létre egy felhasználói folyamatot , hogy a felhasználók regisztrálhassák és bejelentkezhessenek az alkalmazásba.
- Webalkalmazás regisztrálása.
- Hajtsa végre a Első lépések lépéseit egyéni szabályzatokkal az Active Directory B2C-ben
- Webalkalmazás regisztrálása.
Az identitásszolgáltató hozzáadása
- Jelentkezzen be az Azure Portalra az Azure AD B2C-bérlő globális rendszergazdájaként.
- Győződjön meg arról, hogy az Azure AD B2C-bérlőt tartalmazó címtárat használja. Válassza a Címtárak és előfizetések ikont a portál eszköztárán.
- A Portál beállításai | A Címtárak és előfizetések lapon keresse meg az Azure AD B2C-címtárat a Címtárnév listában, majd válassza a Váltás lehetőséget.
- 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.
- Válassza az Identitásszolgáltatók lehetőséget, majd válassza az Új OpenID Csatlakozás szolgáltatót.
- Adjon meg egy nevet. Írja be például a Contoso nevet.
Definiálja az OpenId Csatlakozás identitásszolgáltatót úgy, hogy hozzáadja azt a házirend bővítményfájljában található ClaimsProviders elemhez.
Nyissa meg a TrustFrameworkExtensions.xml.
Keresse meg a ClaimsProviders elemet. Ha nem létezik, adja hozzá a gyökérelemhez.
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" /> </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óhoz 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él-azonosí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 nevezünk.
Az ügyfélkulcs megadása nem kötelező. Ha azonban a válasz típusacodea titkos kód, meg kell adnia egy titkos ügyfélkulcsot a jogkivonat kódjának cseréjéhez.
Az ügyfél-azonosító és az ügyfélkulcs hozzáadásához másolja ki ezeket az értékeket az identitásszolgáltatóból, és adja meg őket a megfelelő mezőkbe.
<Item Key="client_id"> A műszaki profil metaadatai között adja meg az ügyfél-azonosítót.
Szabályzatkulcs létrehozása
Ha titkos ügyfélkódra van szükség, tárolja az Azure AD B2C-bérlőben korábban rögzített titkos ügyfélkulcsot.
Jelentkezzen be az Azure Portalra.
Győződjön meg arról, hogy az Azure AD B2C-bérlőt tartalmazó címtárat használja. Válassza a Címtár és előfizetés szűrőt a portál eszköztárán.
A Portál beállításai | A Címtárak és előfizetések lapon keresse meg az Azure AD B2C-címtárat a Címtárnév listában, majd válassza a Váltás lehetőséget.
Válassza az Összes szolgáltatást a Azure Portal bal felső sarkában, majd keresse meg és válassza ki az Azure AD B2C-t.
Az Áttekintés lapon válassza az Identity Experience Framework lehetőséget.
Válassza a Házirendkulcsok , majd a Hozzáadás lehetőséget.
A Beállítások beállításnál válassza a
Manuallehetőséget.Adja meg a szabályzatkulcs nevét . Például:
ContosoSecret. A rendszer automatikusan hozzáadja az előtagotB2C_1A_a kulcs nevéhez.A Titkos kód mezőbe írja be a korábban rögzített titkos ügyfélkulcsot.
Kulcshasználat esetén válassza a
Signaturelehetőséget.Kattintson a Létrehozás lehetőségre.
Az XML-elemben
CryptographicKeysadja hozzá a következő elemet:<CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_ContosoSecret"/> </CryptographicKeys>
Hatókör
A hatókör határozza meg azokat az információkat és engedélyeket, amelyeket például openid profileaz identitásszolgáltatótól szeretne gyűjteni. Ahhoz, hogy az identitásszolgáltatótól megkapja az azonosító jogkivonatát, meg kell adnia a openid hatókört.
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 más hatókörök érhetők el.
A Hatókör mezőbe írja be az identitásszolgáltató hatóköreit. Például: openid profile.
<Item Key="scope"> A technikai profil metaadatai között adja meg az identitásszolgáltató hatóköreit. Például: openid profile.
Válasz típusa
A válasz típusa azt írja le, hogy milyen típusú információkat küld vissza a rendszer 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 atoken_endpointjogkivonat kódját.id_token: Az egyéni identitásszolgáltató egy azonosító jogkivonatot ad vissza az Azure AD B2C-nek.
A Válasz típusban válassza ki vagy id_tokenválassza codeki az identitásszolgáltató beállításainak megfelelően.
<Item Key="response_types"> A technikai 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 rendszer a HTTP-metódusonPOSTkeresztül továbbítja a választ, és a kód vagy a jogkivonat a törzsbe van kódolva aapplication/x-www-form-urlencodedformátum használatával.query: A kód vagy a jogkivonat lekérdezési paraméterként lesz visszaadva.
Válasz módban válassza ki vagy queryválassza form_postki az identitásszolgáltató beállításainak megfelelően.
<Item Key="response_mode"> A technikai profil metaadatai között válassza ki vagy queryválassza form_postki az identitásszolgáltató beállításainak megfelelően.
Tartománymutató
A tartománymutatóval közvetlenül a megadott identitásszolgáltató bejelentkezési oldalára ugorhat, ahelyett, hogy a felhasználó kiválasztanák az elérhető 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óra 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 Tartománymutatóban adja meg a tartománymutatóban használt tartománynevet.
<Domain>contoso.com</Domain> A technikai profil XML-elemében adja meg a tartománymutatóban használt tartománynevet. Például: 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 leképezni a fogadott jogkivonat jogcímeit 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 megismeré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 meg adó jogcímet.
Az OutputClaims elem az identitásszolgáltató által visszaadott jogcímek listáját tartalmazza. Képezze le a házirendben meghatározott 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 megfelelő jogcímnévvel.
| ClaimTypeReferenceId | PartnerClaimType |
|---|---|
issuerUserId |
Adja meg azt a jogcímet, amely a bejelentkezett felhasználó egyedi azonosítójának megadására szolgál. |
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 meg adó jogcímet. |
identityProvider |
Adja meg a jogkivonat kiállítójának nevét tartalmazó jogcímet. Például: 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. Például: DefaultValue="contoso.com". |
Identitásszolgáltató hozzáadása egy felhasználói folyamathoz
- Az Azure AD B2C-bérlőben válassza ki a felhasználói folyamatokat.
- Kattintson arra a felhasználói folyamatra, amelyhez hozzá szeretné adni az identitásszolgáltatót.
- A Közösségi identitásszolgáltatók területen válassza ki a hozzáadott identitásszolgáltatót. Például Contoso.
- Kattintson a Mentés gombra.
A felhasználói folyamat tesztelése
- A szabályzat teszteléséhez válassza a Felhasználói folyamat futtatása lehetőséget.
- Az Application esetében válassza ki a testapp1 nevű webalkalmazást, amelyet korábban regisztrált. A válasz URL-címének meg kell jelennie
https://jwt.ms. - Válassza a Felhasználói folyamat futtatása gombot.
- A regisztrációs vagy bejelentkezési lapon válassza ki a bejelentkezni kívánt identitásszolgáltatót. Például Contoso.
Ha a bejelentkezési folyamat sikeres, a rendszer átirányítja a böngészőt https://jwt.ms, amely megjeleníti az Azure AD B2C által visszaadott jogkivonat tartalmát.
Felhasználói folyamat hozzáadása
Ezen a ponton az identitásszolgáltató már 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 duplikátumát, ellenkező esetben folytassa a következő lépéssel.
- Nyissa meg a TrustFrameworkBase.xml fájlt a kezdőcsomagból.
- Keresse meg és másolja ki a UserJourney elem teljes tartalmát, amely tartalmazza
Id="SignUpOrSignIn". - Nyissa meg a TrustFrameworkExtensions.xml , és keresse meg a UserJourneys elemet. Ha az elem nem létezik, adjon hozzá egyet.
- Illessze be a UserJourney elem gyermekként kimásolt UserJourney elem teljes tartalmát.
- 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 elkészült a felhasználói folyamat, adja hozzá az új identitásszolgáltatót a felhasználói folyamathoz. Először vegyen fel egy bejelentkezési gombot, majd kapcsolja a gombot egy művelethez. A művelet a korábban létrehozott műszaki profil.
Keresse meg a vezénylési lépés azon elemét, amely tartalmazza
Type="CombinedSignInAndSignUp"vagyType="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 határozza meg a felhasználónak megjelenített bejelentkezési gombok sorrendjét. Adjon hozzá egy ClaimsProviderSelection XML-elemet. Állítsa a TargetClaimsExchangeId értékét egy rövid névre.A következő vezénylési lépésben adjon hozzá egy ClaimsExchange elemet. Állítsa az azonosítót a céljogcí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.
A következő 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 szabályzata, például SignUpSignIn.xml, meghatározza az Azure AD B2C által végrehajtott felhasználói folyamatot. Keresse meg a DefaultUserJourney elemet a függő entitáson belül. Frissítse a ReferenceId azonosítót , hogy megfeleljen a felhasználói útazonosítónak, amelyben hozzáadta az identitásszolgáltatót.
A következő példában a CustomSignUpSignIn felhasználói folyamat esetében a ReferenceId értéke a következő CustomSignUpSignIn:
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
Az egyéni szabályzat feltöltése
- Jelentkezzen be az Azure Portalra.
- 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ó címtárat.
- A Azure Portal keresse meg és válassza ki az Azure AD B2C-t.
- A Szabályzatok területen válassza az Identity Experience Framework lehetőséget.
- 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áulSignUpSignIn.xml.
- Válassza ki például
B2C_1A_signup_signina függő entitás szabályzatát. - Alkalmazás esetén válasszon ki egy korábban regisztrált webalkalmazást. A válasz URL-címének meg kell jelennie
https://jwt.ms. - Válassza a Futtatás most gombot.
- 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 https://jwt.ms, amely megjeleníti az Azure AD B2C által visszaadott jogkivonat tartalmát.
Következő lépések
További információt az OpenId Csatlakozás műszaki profil referencia-útmutatójában talál.