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


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

metaadatok és tanúsítványcsere

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:

  1. 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.
  2. 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.
  3. Állítsa a technikai profil WantsEncryptedAssertions metaadatait értékre true.
  4. 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 SPNameQualifierattribú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 truevan á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 falsevan á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, Sha512vagy 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 truevan á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 falsevan á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 falsevan á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 truevan á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 truevan á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 truevan á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 AllowCreateNameIDPolicy 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 truelesz á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: