SAML-identitásszolgáltatói technikai profil definiálása egyéni Azure Active Directory B2C-szabályzatban
Megjegyzés
Az Azure Active Directory B2C-ben az egyéni szabályzatok elsősorban összetett forgatókönyvek kezelésére szolgálnak. A legtöbb esetben javasoljuk, hogy beépített felhasználói folyamatokat használjon. Ha még nem tette meg, az egyéni szabályzatok kezdőcsomagjáról az Ismerkedés az egyéni szabályzatokkal az Active Directory B2C-ben című témakörben olvashat.
Az Azure Active Directory B2C (Azure AD B2C) támogatja az SAML 2.0 identitásszolgáltatót. Ez a cikk egy, a szabványos protokollt támogató jogcímszolgáltatóval való interakció műszaki profiljának sajátosságait ismerteti. Az SAML technikai profillal összevonhatja az SAML-alapú identitásszolgáltatót, például az ADFS-t és a Salesforce-t. Ez az összevonás lehetővé teszi, hogy a felhasználók a meglévő közösségi vagy vállalati identitásukkal jelentkezzenek be.
Metaadatok cseréje
A metaadatok az SAML-protokollban az SAML-fél konfigurációjának, például egy szolgáltatónak vagy identitásszolgáltatónak a felfedésére használt információk. A metaadatok határozzák meg 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. Az identitásszolgáltató a metaadatok használatával tudja, hogyan kommunikálhat Azure AD B2C-vel. A metaadatok XML formátumban vannak konfigurálva, és digitális aláírással is aláírhatók, hogy a másik fél érvényesíthesse a metaadatok integritását. Amikor Azure AD A B2C összevonja az SAML-identitásszolgáltatót, az SAML-kérést kezdeményező és SAML-választ kérő szolgáltatóként működik. Bizonyos esetekben a kéretlen SAML-hitelesítést is elfogadja, amelyet identitásszolgáltatónak is neveznek.
A metaadatok mindkét félnél konfigurálhatók "Statikus metaadatok" vagy "Dinamikus metaadatok" néven. Statikus módban a teljes metaadatokat átmásolhatja az egyik félből, és beállíthatja azt a másik félnél. Dinamikus módban az URL-címet a metaadatokra állítja, miközben a másik fél dinamikusan olvassa be a konfigurációt. Az alapelvek ugyanazok, ön beállítja a Azure AD B2C technikai profil metaadatait az identitásszolgáltatóban, és beállítja az identitásszolgáltató metaadatait a Azure AD B2C-ben.
Minden SAML-identitásszolgáltató különböző lépésekkel teszi elérhetővé és beállíthatja a szolgáltatót, ebben az esetben Azure AD B2C-t, és beállíthatja a Azure AD B2C-metaadatokat az identitásszolgáltatóban. Ehhez tekintse meg az identitásszolgáltató dokumentációját.
Az alábbi példa egy Azure AD B2C műszaki 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
Cserélje le a következő értékeket:
- a bérlő neve a bérlő nevével, például fabrikam.b2clogin.com.
- a szabályzat neve. Használja azt a szabályzatot, amelyben az SAML-szolgáltató technikai profilját konfigurálja, vagy egy olyan szabályzatot, amely az adott szabályzattól öröklődik.
- a műszaki profilt az SAML-identitásszolgáltató technikai profilnevével.
Digitális aláíró tanúsítványok cseréje
Ahhoz, hogy megbízhatósági kapcsolatot hozzon létre Azure AD B2C és az SAML-identitásszolgáltató között, meg kell adnia egy érvényes X509-tanúsítványt a titkos kulccsal. A titkos kulccsal (.pfx fájl) rendelkező tanúsítványt feltölti a Azure AD B2C szabályzatkulcs-tárolóba. Azure AD B2C digitálisan aláírja az SAML bejelentkezési kérést a megadott tanúsítvánnyal.
A tanúsítvány a következő módokon használható:
- Azure AD B2C létrehoz és aláír egy SAML-kérést a tanúsítvány Azure AD B2C titkos kulcsával. Az SAML-kérést a rendszer elküldi az identitásszolgáltatónak, amely a tanúsítvány Azure AD B2C nyilvános kulcsával ellenőrzi a kérést. A Azure AD B2C nyilvános tanúsítvány 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 identitásszolgáltató aláírja a Azure AD B2C-nek küldött adatokat a tanúsítvány identitásszolgáltatójának titkos kulcsával. Azure AD B2C az identitásszolgáltató nyilvános tanúsítványával ellenőrzi az adatokat. Minden identitásszolgáltatónak különböző telepítési lépései vannak. Ehhez tekintse meg az identitásszolgáltató dokumentációját. A Azure AD B2C-ben a szabályzatnak hozzá kell férnie a tanúsítvány nyilvános kulcsához az identitásszolgáltató metaadataival.
Az önaláírt tanúsítvány a legtöbb esetben elfogadható. Éles környezetekben ajánlott egy hitelesítésszolgáltató által kiadott X509-tanúsítványt használni. A dokumentum későbbi részében leírtaknak megfelelően a nem éles környezetek esetében mindkét oldalon letilthatja az SAML-aláírást.
Az alábbi ábrán a metaadatok és a tanúsítványcsere látható:
Digitális titkosítás
Az SAML-válasz helyességi feltételének titkosításához az identitásszolgáltató mindig egy titkosítási tanúsítvány nyilvános kulcsát használja egy Azure AD B2C technikai profilban. Ha Azure AD B2C-nek vissza kell fejtenie az adatokat, a titkosítási tanúsítvány privát részét használja.
Az SAML-válasz helyességi feltételének titkosítása:
- Töltsön fel egy érvényes X509-tanúsítványt a titkos kulccsal (.pfx fájl) a Azure AD B2C házirendkulcs-tárolóba.
- Adjon hozzá egy CryptographicKey elemet egy azonosítóval
SamlAssertionDecryption
a műszaki profil CryptographicKeys gyűjteményéhez. Állítsa a StorageReferenceId értéket az 1. lépésben létrehozott szabályzatkulcs nevére. - Állítsa a technikai profil WantsEncryptedAssertions metaadatait értékre
true
. - Frissítse az identitásszolgáltatót az új Azure AD B2C műszaki profil metaadataival. Meg kell jelennie a KeyDescriptor tulajdonságnak, amelynek a use tulajdonsága
encryption
a tanúsítvány nyilvános kulcsát tartalmazza.
Az alábbi példa a titkosításhoz használt SAML-metaadatok Kulcsleíró szakaszát mutatja be:
<KeyDescriptor use="encryption">
<KeyInfo xmlns="https://www.w3.org/2000/09/xmldsig#">
<X509Data>
<X509Certificate>valid certificate</X509Certificate>
</X509Data>
</KeyInfo>
</KeyDescriptor>
Protokoll
A Protocol elem Name attribútumát értékre kell állítani SAML2
.
Bemeneti jogcímek
Az InputClaims elem az SAML AuthN-kérelem tárgyán belül küldi el a NameId azonosítót. Ennek eléréséhez adjon hozzá egy bemeneti jogcímet, amelynek a PartnerClaimType értéke az subject
alábbiak szerint van beállítva.
<InputClaims>
<InputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="subject" />
</InputClaims>
Kimeneti jogcímek
Az OutputClaims elem az SAML-identitásszolgáltató AttributeStatement
által a szakaszban visszaadott jogcímek listáját tartalmazza. Előfordulhat, hogy le kell képeznie a szabályzatban meghatározott jogcím nevét az identitásszolgáltatóban meghatározott névre. Olyan jogcímeket is megadhat, amelyeket az identitásszolgáltató nem ad vissza, amíg beállítja az DefaultValue
attribútumot.
Tulajdonosnév kimeneti jogcíme
Ha normalizált jogcímként szeretné beolvasni az SAML helyességi feltétel NameId azonosítóját a Tárgyban , állítsa a PartnerClaimType jogcímet az SPNameQualifier
attribútum értékére. Ha az SPNameQualifier
attribútum nem jelenik meg, állítsa a PartnerClaimType jogcímet az NameQualifier
attribútum értékére.
SAML-helyesség:
<saml:Subject>
<saml:NameID SPNameQualifier="http://your-idp.com/unique-identifier" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">david@contoso.com</saml:NameID>
<SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<SubjectConfirmationData InResponseTo="_cd37c3f2-6875-4308-a9db-ce2cf187f4d1" NotOnOrAfter="2020-02-15T16:23:23.137Z" Recipient="https://your-tenant.b2clogin.com/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer" />
</SubjectConfirmation>
</saml:SubjectConfirmation>
</saml:Subject>
Kimeneti jogcím:
<OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="http://your-idp.com/unique-identifier" />
Ha az SAML-helyesség nem tartalmazza mindkét SPNameQualifier
vagy NameQualifier
attribútumot, állítsa a PartnerClaimType jogcímet értékre assertionSubjectName
. Győződjön meg arról, hogy a NameId az helyességi XML első értéke. Ha több helyességi feltételt határoz meg, Azure AD B2C az utolsó helyességi feltétel tárgyértékét választja ki.
Az alábbi példa egy SAML-identitásszolgáltató által visszaadott jogcímeket mutatja be:
- Az issuerUserId jogcím a assertionSubjectName jogcímre van leképezve.
- 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 displayName jogcím a névjogcí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 identityProvider jogcím, amely az identitásszolgáltató nevét tartalmazza.
- Az authenticationSource jogcím a socialIdpAuthentication alapértelmezett értékével.
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="assertionSubjectName" />
<OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="first_name" />
<OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="last_name" />
<OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
<OutputClaim ClaimTypeReferenceId="email" />
<OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="contoso.com" />
<OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
</OutputClaims>
Az OutputClaimsTransformations elem tartalmazhat outputClaimsTransformation elemek gyűjteményét, amelyek a kimeneti jogcímek módosítására vagy újak létrehozására szolgálnak.
Metaadatok
Attribútum | Kötelező | Leírás |
---|---|---|
PartnerEntity | Yes | Az SAML-identitásszolgáltató metaadatainak URL-címe. Vagy másolja ki az identitásszolgáltató metaadatait, és ágyazza be a CDATA elembe <![CDATA[Your IDP metadata]]> . Az identitásszolgáltató metaadatainak beágyazása nem ajánlott. Az identitásszolgáltató módosíthatja a beállításokat, vagy frissítheti a tanúsítványt. Ha az identitásszolgáltató metaadatai megváltoztak, kérje le az új metaadatokat, és frissítse a szabályzatot az újkal. |
WantsSignedRequests | No | Azt jelzi, hogy a technikai profil megköveteli-e az összes kimenő hitelesítési kérés aláírását. Lehetséges értékek: true vagy false . Az alapértelmezett érték true . Ha az érték értékre true van állítva, meg kell adnia a SamlMessageSigning titkosítási kulcsot, és alá kell írnia az összes kimenő hitelesítési kérést. Ha az érték értékre false van állítva, a SigAlg és az Signature paraméterek (lekérdezési sztring vagy post paraméter) nem lesznek megadva a kérelemből. Ez a metaadatok az AuthnRequestsSigned metaadat-attribútumot is vezérlik, amely az identitásszolgáltatóval megosztott Azure AD B2C műszaki profil metaadatainak kimenete. Azure AD B2C nem írja alá a kérést, ha a technikai profil metaadataiban a WantSignedRequests értékre van állítvafalse , és az identitásszolgáltató WantAuthnRequestsSigned metaadatainak értéke false vagy nincs megadva. |
XmlSignatureAlgorithm | No | A B2C Azure AD metódusa az SAML-kérelem aláírására használja. Ez a metaadat szabályozza a SigAlg paraméter értékét (lekérdezési sztring vagy post paraméter) az SAML-kérelemben. Lehetséges értékek: Sha256 , Sha384 , Sha512 vagy Sha1 (alapértelmezett). Győződjön meg arról, hogy mindkét oldalon ugyanazzal az értékkel konfigurálja az aláírási algoritmust. Csak a tanúsítvány által támogatott algoritmust használja. |
WantsSignedAssertions | No | Azt jelzi, hogy a technikai profil megköveteli-e az összes bejövő feltétel aláírását. Lehetséges értékek: true vagy false . Az alapértelmezett érték true . Ha az érték értékre true van állítva, az identitásszolgáltató által a B2C Azure AD küldött összes helyességi szakaszt saml:Assertion alá kell írni. Ha az érték értékre false van állítva, az identitásszolgáltatónak nem szabad aláírnia az helyességi elemet, de még ha igen is, Azure AD B2C nem érvényesíti az aláírást. Ez a metaadatok a WantsAssertionsSigned metaadatjelölőt is vezérli, amely az identitásszolgáltatóval megosztott Azure AD B2C műszaki profil metaadatainak kimenete. Ha letiltja az helyességi feltételek érvényesítését, érdemes lehet letiltani a válaszaláírás érvényesítését is (további információt a VálaszokJegyzett című témakörben talál). |
ResponsesSigned | No | Lehetséges értékek: true vagy false . Az alapértelmezett érték true . Ha az érték értékre false van állítva, az identitásszolgáltatónak nem kell aláírnia az SAML-választ, de még ha igen is, Azure AD B2C nem ellenőrzi az aláírást. Ha az érték értékre true van állítva, az identitásszolgáltató által a B2C Azure AD küldött SAML-válasz alá van írva, és ellenőrizni kell. Ha letiltja az SAML-válasz érvényesítését, érdemes lehet letiltani az helyességi aláírás érvényesítését is (további információ: WantSignedAssertions). |
WantsEncryptedAssertions | No | Azt jelzi, hogy a műszaki profil megköveteli-e az összes bejövő feltétel titkosítását. Lehetséges értékek: true vagy false . Az alapértelmezett érték false . Ha az érték értékre true van állítva, az identitásszolgáltató által a B2C Azure AD küldött helyességi elemet alá kell írni, és meg kell adni a SamlAssertionDecryption titkosítási kulcsot. Ha az érték értékre true van állítva, a Azure AD B2C technikai profil metaadatai tartalmazzák a titkosítási szakaszt. Az identitásszolgáltató beolvassa a metaadatokat, és titkosítja az SAML-válasz helyességi feltételét a Azure AD B2C műszaki profil metaadataiban megadott nyilvános kulccsal. Ha engedélyezi az helyességi feltételek titkosítását, előfordulhat, hogy le kell tiltania a válaszaláírás érvényesítését is (további információ: ResponsesSigned). |
NameIdPolicyFormat | No | Meghatározza a kért tárgy megjelenítéséhez használandó névazonosítóra vonatkozó korlátozásokat. Ha nincs megadva, az identitásszolgáltató által a kért tárgyhoz támogatott bármilyen azonosító használható. Például: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified .
A NameIdPolicyFormat a NameIdPolicyAllowCreate paranccsal használható. Tekintse meg az identitásszolgáltató dokumentációját, amelyből megtudhatja, hogy mely névazonosító-szabályzatok támogatottak. |
NameIdPolicyAllowLétrehozás | No |
A NameIdPolicyFormat használatakor megadhatja a AllowCreate NameIDPolicy tulajdonságot is. Ennek a metaadatnak az true értéke vagy false annak jelzése, hogy az identitásszolgáltató létrehozhat-e új fiókot a bejelentkezési folyamat során. Ehhez tekintse meg az identitásszolgáltató dokumentációját. |
AuthenticationRequestExtensions | No | A B2C Azure AD és az identitásszolgáltató között elfogadott opcionális protokollüzenetbővítmény-elemek. A bővítmény XML formátumban jelenik meg. Adja hozzá az XML-adatokat a CDATA elemhez <![CDATA[Your IDP metadata]]> . Ellenőrizze az identitásszolgáltató dokumentációját, hogy a bővítmények elem támogatott-e. |
IncludeAuthnContextClassReferences | No | Egy vagy több hitelesítési környezeti osztályt azonosító URI-hivatkozást határoz meg. Ha például engedélyezni szeretné egy felhasználónak, hogy csak felhasználónévvel és jelszóval jelentkezzen be, állítsa az értéket értékre urn:oasis:names:tc:SAML:2.0:ac:classes:Password . Ha engedélyezni szeretné a bejelentkezést felhasználónévvel és jelszóval egy védett munkameneten (SSL/TLS) keresztül, adja meg a következőt PasswordProtectedTransport : . A támogatott AuthnContextClassRef URI-kkal kapcsolatos útmutatásért tekintse meg az identitásszolgáltató dokumentációját. Adjon meg több URI-t vesszővel tagolt listaként. |
IncludeKeyInfo | No | Azt jelzi, hogy az SAML-hitelesítési kérelem tartalmazza-e a tanúsítvány nyilvános kulcsát, ha a kötés értéke HTTP-POST . Lehetséges értékek: true vagy false . |
IncludeClaimResolvingInClaimsHandling | No | A bemeneti és kimeneti jogcímek esetében megadja, hogy a jogcímek feloldása szerepel-e a műszaki profilban. Lehetséges értékek: true , vagy false (alapértelmezett). Ha egy jogcímfeloldót szeretne használni a műszaki profilban, állítsa ezt a értékre true . |
SingleLogoutEnabled | No | Azt jelzi, hogy a technikai profil bejelentkezése során megkísérel-e kijelentkezni az összevont identitásszolgáltatóktól. További információ: Azure AD B2C-munkamenet kijelentkeztetés. Lehetséges értékek: true (alapértelmezett) vagy false . |
ForceAuthN | No | Átadja a ForceAuthN értéket az SAML-hitelesítési kérelemben annak megállapításához, hogy a külső SAML-identitásszolgáltató kénytelen lesz-e hitelesítést kérni a felhasználótól. Alapértelmezés szerint Azure AD B2C a ForceAuthN értéket false (hamis) értékre állítja a kezdeti bejelentkezéskor. Ha a munkamenet ezután alaphelyzetbe áll (például az prompt=login in OIDC használatával), akkor a ForceAuthN érték a következőre true lesz állítva: . Ha az alábbi módon állítja be a metaadat-elemet, az az összes kérés értékét a külső identitásszolgáltatóra kényszeríti. Lehetséges értékek: true vagy false . |
ProviderName | No | Átadja a ProviderName értéket az SAML hitelesítési kérelemben. |
Titkosítási kulcsok
A CryptographicKeys elem a következő attribútumokat tartalmazza:
Attribútum | Kötelező | Leírás |
---|---|---|
SamlMessageSigning | Yes | Az X509-tanúsítvány (RSA-kulcskészlet) az SAML-üzenetek aláírásához. Azure AD B2C ezzel a kulccsal írja alá a kéréseket, és elküldi őket az identitásszolgáltatónak. |
SamlAssertionDecryption | Nem* | Az X509-tanúsítvány (RSA-kulcskészlet). Az SAML-identitásszolgáltató a tanúsítvány nyilvános részét használja az SAML-válasz helyességi feltételének titkosításához. Azure AD B2C a tanúsítvány privát részét használja a helyességi feltétel visszafejtéséhez. * Akkor szükséges, ha a külső identitásszolgáltató titkosítja az SAML-helyességi beállításokat. |
MetadataSigning | No | Az X509-tanúsítvány (RSA-kulcskészlet) az SAML-metaadatok aláírásához. Azure AD B2C ezt a kulcsot használja a metaadatok aláírásához. |
Következő lépések
Az SAML-identitásszolgáltatók Azure AD B2C-ben való használatát az alábbi cikkekben tekinti meg:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: