Regisztráció és bejelentkezés beállítása SAML-identitásszolgáltatóval az Azure Active Directory B2C használatával
Az Azure Active Directory B2C (Azure AD B2C) támogatja az SAML 2.0 identitásszolgáltatókkal való összevonást. Ez a cikk bemutatja, hogyan engedélyezheti a bejelentkezést EGY SAML identitásszolgáltató felhasználói fiókkal, lehetővé téve a felhasználók számára, hogy bejelentkezhessenek meglévő közösségi vagy vállalati identitásaikkal, például az ADFS-sel és a Salesforce-tal.
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.
Ez a funkció csak egyéni szabályzatokhoz érhető el. A beállítási lépésekhez válassza az egyéni szabályzatot az előző választóban.
Forgatókönyv áttekintése
Az Azure AD B2C-t úgy konfigurálhatja, hogy a felhasználók külső közösségi vagy vállalati SAML-identitásszolgáltatóktól (IDP) származó hitelesítő adatokkal jelentkezzenek be az alkalmazásba. Amikor az Azure AD B2C egy SAML-identitásszolgáltatóval egyesül, az saml-identitásszolgáltatóhoz irányuló SAML-kérést kezdeményez, és SAML-választ vár. Az alábbi ábrán:
- Az alkalmazás engedélyezési kérelmet kezdeményez az Azure AD B2C-hez. Az alkalmazás lehet OAuth 2.0 vagy OpenId Csatlakozás alkalmazás vagy SAML-szolgáltató.
- Az Azure AD B2C bejelentkezési oldalán a felhasználó úgy dönt, hogy saml identitásszolgáltatói fiókkal (például Contoso) jelentkezik be. Az Azure AD B2C saml engedélyezési kérelmet kezdeményez, és a bejelentkezés befejezéséhez a felhasználót az SAML identitásszolgáltatójához viszi.
- Az SAML-identitásszolgáltató SAML-választ ad vissza.
- Az Azure AD B2C ellenőrzi az SAML-jogkivonatot, kinyeri a jogcímeket, kiadja a saját jogkivonatát, és visszaviszi a felhasználót az alkalmazásba.
Előfeltételek
- Végezze el az Egyéni szabályzatok használatának első lépéseit az Active Directory B2C-ben.
- Ha még nem tette meg, regisztráljon egy webalkalmazást.
A megoldás összetevői
Ehhez a forgatókönyvhöz a következő összetevők szükségesek:
- SAML-identitásszolgáltató, amely képes fogadni, dekódolni és válaszolni az Azure AD B2C-től érkező SAML-kérelmekre.
- Az identitásszolgáltató nyilvánosan elérhető SAML-metaadat-végpontja.
- Egy Azure AD B2C-bérlő.
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.
Szabályzatkulcs létrehozása
Az Azure AD B2C és az SAML-identitásszolgáltató közötti megbízhatóság kialakításához meg kell adnia egy érvényes X509-tanúsítványt a titkos kulccsal. Az Azure AD B2C aláírja az SAML-kérelmeket a tanúsítvány titkos kulcsával. Az identitásszolgáltató a tanúsítvány nyilvános kulcsával érvényesíti a kérést. A nyilvános kulcs a műszaki profil metaadatain keresztül érhető el. Másik lehetőségként manuálisan is feltöltheti a .cer fájlt az SAML-identitásszolgáltatóba.
Az önaláírt tanúsítvány a legtöbb esetben elfogadható. Éles környezetekben ajánlott X509-tanúsítványt használni, amelyet egy hitelesítésszolgáltató állít ki. A dokumentum későbbi részében leírtaknak megfelelően egy nem éles környezet esetében mindkét oldalon letilthatja az SAML-aláírást.
Tanúsítvány beszerzése
Ha még nem rendelkezik tanúsítvánnyal, használhat önaláírt tanúsítványt. Az önaláírt tanúsítvány olyan biztonsági tanúsítvány, amelyet nem egy hitelesítésszolgáltató (CA) ír alá, és nem biztosítja a hitelesítésszolgáltató által aláírt tanúsítvány biztonsági garanciáit.
Windows rendszeren a PowerShell New-SelfSignedCertificate parancsmagja segítségével hozzon létre tanúsítványt.
Futtassa a következő PowerShell-parancsot egy önaláírt tanúsítvány létrehozásához. Módosítsa az argumentumot az
-Subject
alkalmazáshoz és az Azure AD B2C-bérlő nevéhez, példáulcontosowebapp.contoso.onmicrosoft.com
. A dátumot úgy is módosíthatja-NotAfter
, hogy a tanúsítvány lejárata eltérő legyen.New-SelfSignedCertificate ` -KeyExportPolicy Exportable ` -Subject "CN=yourappname.yourtenant.onmicrosoft.com" ` -KeyAlgorithm RSA ` -KeyLength 2048 ` -KeyUsage DigitalSignature ` -NotAfter (Get-Date).AddMonths(12) ` -CertStoreLocation "Cert:\CurrentUser\My"
Windows rendszerű számítógépen keresse meg és válassza a Felhasználói tanúsítványok kezelése lehetőséget
A Tanúsítványok – Aktuális felhasználó csoportban válassza a Személyes>tanúsítványok>yourappname.yourtenant.onmicrosoft.com lehetőséget.
Jelölje ki a tanúsítványt, majd válassza az Összes tevékenység>exportálása művelet>lehetőséget.
Válassza a Következő>igen lehetőséget, exportálja a Következő titkos kulcsot.>
Fogadja el a fájlformátum exportálásának alapértelmezett értékét, majd válassza a Tovább gombot.
Engedélyezze a Jelszó beállítást, adjon meg egy jelszót a tanúsítványhoz, majd válassza a Tovább gombot.
A tanúsítvány mentési helyének megadásához válassza a Tallózás lehetőséget , és keresse meg a kívánt könyvtárat.
A Mentés másként ablakban adjon meg egy fájlnevet, majd válassza a Mentés lehetőséget.
Válassza a Next>Finish (Tovább > Befejezés) elemet.
Ahhoz, hogy az Azure AD B2C elfogadja a .pfx fájljelszót, a jelszót az AES256-SHA256 helyett a Windows Tanúsítványtár exportálási segédprogram TripleDES-SHA1 beállításával kell titkosítani.
A tanúsítvány feltöltése
A tanúsítványt az Azure AD B2C-bérlőben kell tárolnia.
- Jelentkezzen be az Azure Portalra.
- 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.
- 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.
- Az Áttekintés lapon válassza az Identity Experience Framework lehetőséget.
- Válassza a Házirendkulcsok lehetőséget, majd válassza a Hozzáadás lehetőséget.
- A Beállítások beállításnál válassza a
Upload
lehetőséget. - Adja meg a szabályzatkulcs nevét. For example,
SAMLSigningCert
. A rendszer automatikusan hozzáadja az előtagotB2C_1A_
a kulcs nevéhez. - Keresse meg és válassza ki a tanúsítvány .pfx fájlját a titkos kulccsal.
- Click Create.
Az SAML technikai profil konfigurálása
Az SAML-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. A jogcímszolgáltatók egy SAML technikai profilt tartalmaznak, amely meghatározza az SAML-identitásszolgáltatóval való kommunikációhoz szükséges végpontokat és protokollokat. SamL technikai profillal rendelkező jogcímszolgáltató hozzáadása:
Nyissa meg az TrustFrameworkExtensions.xml fájlt.
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>Contoso</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Contoso-SAML2"> <DisplayName>Contoso</DisplayName> <Description>Login with your SAML identity provider account</Description> <Protocol Name="SAML2"/> <Metadata> <Item Key="PartnerEntity">https://your-AD-FS-domain/federationmetadata/2007-06/federationmetadata.xml</Item> </Metadata> <CryptographicKeys> <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SAMLSigningCert"/> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="assertionSubjectName" /> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="first_name" /> <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="last_name" /> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="http://schemas.microsoft.com/identity/claims/displayname" /> <OutputClaim ClaimTypeReferenceId="email" /> <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="contoso.com" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp"/> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Frissítse a következő XML-elemeket a megfelelő értékkel:
Jogcímek leképezése
Az OutputClaims elem az SAML-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 definiált helyességi névre. Ellenőrizze az identitásszolgáltatónál a jogcímek (állítások) listáját. További információ: jogcímleképezés.
A fenti példában a Contoso-SAML2 egy SAML-identitásszolgáltató által visszaadott jogcímeket tartalmazza:
- Az assertionSubjectName jogcím a issuerUserId jogcímhez van megfeleltetve.
- A first_name jogcím a givenName jogcímre van leképezve.
- A last_name jogcím a vezetéknév-jogcímre van leképezve.
- A
http://schemas.microsoft.com/identity/claims/displayname
jogcím a displayName jogcímre van leképezve. - Az e-mail-jogcím névleképezés nélkül.
A technikai profil olyan jogcímeket is visszaad, amelyeket az identitásszolgáltató nem ad vissza:
- Az identitásszolgáltató nevét tartalmazó identityProvider-jogcím .
- Az authenticationSource-jogcím a socialIdpAuthentication alapértelmezett értékével.
Az SAML-munkamenet technikai profiljának hozzáadása
Ha még nem rendelkezik az SM-Saml-idp
SAML-munkamenet technikai profiljával, vegyen fel egyet a bővítményszabályzatba. Keresse meg a szakaszt <ClaimsProviders>
, és adja hozzá a következő XML-kódrészletet. Ha a szabályzat már tartalmazza a SM-Saml-idp
technikai profilt, ugorjon a következő lépésre. További információ: egyszeri bejelentkezés munkamenet-kezelés.
<ClaimsProvider>
<DisplayName>Session Management</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="SM-Saml-idp">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="IncludeSessionIndex">false</Item>
<Item Key="RegisterServiceProviders">false</Item>
</Metadata>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
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.
- Nyissa meg az TrustFrameworkBase.xml fájlt a kezdőcsomagból.
- Keresse meg és másolja ki a UserJourney elem teljes tartalmát, amely tartalmazza
Id="SignUpOrSignIn"
a elemet. - Nyissa meg az TrustFrameworkExtensions.xml fájlt , és keresse meg a UserJourneys elemet. Ha az elem nem létezik, adjon hozzá egyet.
- Illessze be a UserJourney elem gyermekként másolt UserJourney elem teljes tartalmát.
- 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.
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 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.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-SAML2" />
</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 CustomSignUpSignIn
van állítva:
<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ó könyvtárat.
- Az Azure Portalon 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.xml
a függő entitás házirendje, példáulSignUpSignIn.xml
.
SAML-identitásszolgáltató konfigurálása
A szabályzat konfigurálása után konfigurálnia kell az SAML-identitásszolgáltatót az Azure AD B2C SAML metaadataival. Az SAML-metaadatok az SAML-protokollban használt információk, amelyek a szabályzat, a szolgáltató konfigurációjának felfedésére szolgálnak. Meghatározza a szolgáltatások helyét, például a bejelentkezést és a kijelentkezéseket, a tanúsítványokat, a bejelentkezési módszert stb.
Minden SAML-identitásszolgáltató különböző lépésekkel állítja be a szolgáltatót. Egyes SAML-identitásszolgáltatók az Azure AD B2C metaadatait kérik, míg mások megkövetelik, hogy manuálisan menjen át a metaadatfájlon, és adja meg az információkat. Útmutatásért tekintse meg az identitásszolgáltató dokumentációját.
Az alábbi példa egy Azure AD B2C technikai profil SAML-metaadatainak URL-címét mutatja be:
https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-policy>/samlp/metadata?idptp=<your-technical-profile>
Egyéni tartomány használata esetén használja a következő formátumot:
https://your-domain-name/<your-tenant-name>.onmicrosoft.com/<your-policy>/samlp/metadata?idptp=<your-technical-profile>
Cserélje le a következő értékeket:
- a bérlő neve a bérlő nevével, például your-tenant.onmicrosoft.com.
- saját tartománynevét az egyéni tartománynévvel, például login.contoso.com.
- a szabályzat nevét. Például B2C_1A_signup_signin_adfs.
- az Ön műszaki profilja az SAML identitásszolgáltató technikai profiljának nevével. Például Contoso-SAML2.
Nyisson meg egy böngészőt, és keresse meg az URL-címet. Győződjön meg arról, hogy a megfelelő URL-címet írja be, és hozzáféréssel rendelkezik az XML-metaadatfájlhoz.
Egyéni szabályzat tesztelése
- Jelentkezzen be az Azure Portalra.
- 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.
- Az Azure Portalon 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 ki például
B2C_1A_signup_signin
a 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ímnek 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 Contoso-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.ms
jogkivonat tartalmát.