Az SAML-jogkivonatban kiadott jogcímek testreszabása vállalati alkalmazásokhoz

Napjainkban a Microsoft Identitásplatform támogatja az egyszeri bejelentkezést (SSO) a legtöbb vállalati alkalmazással, beleértve az Azure AD-alkalmazásgyűjteménybe előre integrált alkalmazásokat és az egyéni alkalmazásokat is. Amikor egy felhasználó a Microsoft Identitásplatform SAML 2.0 protokollal hitelesít egy alkalmazást, a Microsoft Identitásplatform jogkivonatot küld az alkalmazásnak (HTTP POST-on keresztül). Ezután az alkalmazás ellenőrzi és felhasználja a jogkivonatot, hogy bejelentkeztetse a felhasználót a felhasználónév és jelszó kérése helyett. Ezek az SAML-jogkivonatok jogcímekként ismert információkat tartalmaznak a felhasználóról.

A jogcím olyan információ, amit az identitásszolgáltató a felhasználóról a felhasználó számára ki adott jogkivonatban állít ki. Az SAML-jogkivonatbanezeket az adatokat általában az SAML Attribútum utasítás tartalmazza. A felhasználó egyedi azonosítóját általában az SAML-tulajdonos, más néven névazonosító képviseli.

Alapértelmezés szerint a Microsoft Identitásplatform SAML-jogkivonatot ad ki az alkalmazásnak, amely tartalmaz egy jogcímet, amelynek értéke a felhasználó felhasználóneve (más néven egyszerű felhasználóneve) az Azure AD-ban, amely egyedileg képes azonosítani NameIdentifier a felhasználót. Az SAML-jogkivonat emellett további, a felhasználó e-mail-címét, vezetéknevét és utónevét tartalmazó jogcímeket is tartalmaz.

Az ALKALMAZÁS SAML-jogkivonatában kiadott jogcímek megtekintéséhez vagy szerkesztéséhez nyissa meg az alkalmazást a Azure Portal. Ezután nyissa meg a Felhasználói attribútumok jogcímek szakaszt.

Open the User Attributes & Claims section in the Azure portal

Az SAML-jogkivonatban kiadott jogcímek szerkesztésének két lehetséges oka lehet:

  • Az alkalmazás megköveteli, hogy a vagy a NameID jogcím nem az Azure AD-ban tárolt felhasználónév (vagy egyszerű NameIdentifier felhasználónév) legyen.
  • Az alkalmazás úgy lett megírva, hogy más jogcím URI-ket vagy jogcímértékeket követeljen meg.

Névazonosító szerkesztése

A NameID (névazonosító érték) szerkesztése:

  1. Nyissa meg a Névazonosító érték lapot.

  2. Válassza ki az attribútumra alkalmazni kívánt attribútumot vagy átalakítást. Igény szerint megadhatja a NameID jogcím formátumát is.

    Edit the NameID (name identifier) value

NameID formátum

Ha az SAML-kérelem egy adott formátummal tartalmazza a NameIDPolicy elemet, akkor a Microsoft Identitásplatform a kérelem formátumát is be fogja fogni.

Ha az SAML-kérelem nem tartalmaz NameIDPolicy elemet, akkor a Microsoft Identitásplatform ki fogja adni a NameID-t az Ön által megadott formátumban. Ha nincs megadva formátum, a Microsoft Identitásplatform a kiválasztott jogcímforráshoz társított alapértelmezett forrásformátumot fogja használni. Ha egy átalakítás null vagy érvénytelen értéket ad vissza, az Azure AD egy perzisztens párral megegyező azonosítót küld a nameIdentifier névben.

A Névazonosító formátumának kiválasztása legördülő menüben az alábbi lehetőségek közül választhat.

NameID formátum Leírás
Alapértelmezett Microsoft Identitásplatform alapértelmezett forrásformátumot fogja használni.
Állandó Microsoft Identitásplatform a Persistent (Állandó) formátumot fogja használni a NameID formátumban.
E-mail-cím Microsoft Identitásplatform EmailAddress formátumot fogja használni a NameID formátumban.
Meghatározatlan Microsoft Identitásplatform a Nem meghatározott formátumot fogja használni a NameID formátumban.
Windows tartománynév hozzáadása Microsoft Identitásplatform WindowsDomainQualifiedName formátumot fogja használni.

Az átmeneti névazonosító is támogatott, de nem érhető el a legördülő menüben, és nem konfigurálható az Azure oldalán. A NameIDPolicy attribútummal kapcsolatos további információkért lásd: Single Sign-On SAML protocol (Egyetlen Sign-On SAML protokoll).

Attribútumok

Válassza ki a kívánt forrást NameIdentifier a (vagy NameID) jogcímhez. Az alábbi lehetőségek közül választhat.

Név Leírás
E-mail A felhasználó e-mail címe
userprincipalName A felhasználó egyszerű felhasználóneve (UPN)
onpremisessamaccountname A helyszíni Azure AD-ről szinkronizált SAM-fiók neve
objectid (objektumazonosító) A felhasználó Objektumazonosítója az Azure AD-ban
employeeid (alkalmazottazonosító) A felhasználó alkalmazotti azonosítója
Címtárbővítmények Címtárbővítmények szinkronizálása helyi Active Directory Azure AD Csatlakozás Sync használatával
Bővítményattribútumok 1–15 Az Azure AD-séma kiterjesztéséhez használt helyszíni bővítményattribútumok

További információ: 3. táblázat: Érvényes azonosítóértékek forrásonként.

Bármilyen állandó (statikus) értéket hozzárendelhet az Azure AD-ban megadott bármely jogcímhez. Konstans érték hozzárendelése érdekében kövesse az alábbi lépéseket:

  1. A Azure Portala Felhasználói attribútumok jogcímek szakaszában kattintson a Szerkesztés ikonra a jogcímek szerkesztéséhez.

  2. Kattintson a módosítani kívánt jogcímre.

  3. Adja meg a konstans értéket idézőjelek nélkül a Forrás attribútumban a szervezet szerint, majd kattintson a Mentés gombra.

    Org Attributes & Claims section in the Azure portal

  4. Az állandó érték az alábbi módon jelenik meg.

    Edit Attributes & Claims section in the Azure portal

Speciális jogcímek – átalakítások

A jogcím-transzformációs függvényeket is használhatja.

Függvény Leírás
ExtractMailPrefix() Eltávolítja a tartomány utótagját az e-mail-címből vagy az egyszerű felhasználónévből. Ez csak az átadott felhasználónév első részét (például "joe_smith" a joe_smith@contoso.com helyett).
ToLower() Kisbetűssé alakítja a kijelölt attribútum karaktereit.
ToUpper() Nagybetűssé alakítja a kijelölt attribútum karaktereit.

Alkalmazásspecifikus jogcímek hozzáadása

Alkalmazásspecifikus jogcímek hozzáadása:

  1. A Felhasználói attribútumok jogcímei lapon válasszaaz Új jogcím hozzáadása lehetőséget a Felhasználói jogcímek kezelése lap megnyitásához.
  2. Adja meg a jogcímek nevét. Az értéknek nem feltétlenül kell követnie az URI-mintát az SAML-specifikáció alapján. Ha URI-mintára van szüksége, azt a Névtér mezőbe is beteheti.
  3. Válassza ki azt a forrást, ahol a jogcím lekéri az értékét. Kiválaszthat egy felhasználói attribútumot a forrásattribútum legördülő menüből, vagy átalakítást alkalmazhat a felhasználói attribútumra, mielőtt jogcímként kibocsátja azt.

Jogcím-átalakítások

Átalakítás alkalmazása felhasználói attribútumra:

  1. A Jogcím kezelése laponválassza az Átalakítás lehetőséget jogcímforrásként az Átalakítás kezelése lap megnyitásához.

  2. Válassza ki a függvényt az átalakítás legördülő menüből. A kiválasztott függvénytől függően meg kell adnia a paramétereket és egy állandó értéket az átalakítás során való kiértékeléséhez. Az elérhető függvényekkel kapcsolatos további információkért tekintse meg az alábbi táblázatot.

  3. (előzetes verzió) Treat source as multivalued A egy jelölőnégyzet, amely jelzi, hogy az átalakítást az összes értékre vagy csak az elsőre kell alkalmazni. Alapértelmezés szerint az átalakítások csak a többértékű jogcímek első elemében lesznek alkalmazva, ha be vannak jelölve, ez biztosítja, hogy mindenkire alkalmazva legyen. Ez a jelölőnégyzet csak többértékű attribútumok (például ) esetén lesz user.proxyaddresses engedélyezve.

  4. Ha több átalakítást szeretne alkalmazni, kattintson az Átalakítás hozzáadása elemre. Egy jogcímen legfeljebb két átalakítást alkalmazhat. Például először kinyerheti a e-mail-előtagját. user.mail Ezután nagybetűsre kell tenni a sztringet.

    Multiple claims transformation

A jogcímek átalakításához az alábbi függvényeket használhatja.

Függvény Leírás
ExtractMailPrefix() Eltávolítja a tartomány utótagját az e-mail-címből vagy az egyszerű felhasználónévből. Ez csak az átadott felhasználónév első részét (például "joe_smith" a joe_smith@contoso.com helyett).
Join() Új értéket hoz létre két attribútum összevonása alapján. A két attribútum között elválasztó is használható.
ToLowercase() Kisbetűssé alakítja a kijelölt attribútum karaktereit.
ToUppercase() Nagybetűssé alakítja a kijelölt attribútum karaktereit.
Contains() Attribútumot vagy állandót ad ki, ha a bemenet megegyezik a megadott értékkel. Ellenkező esetben megadhat egy másik kimenetet, ha nincs egyezés.
Ha például olyan jogcímet szeretne kibocsátatni, amelyben az érték a felhasználó e-mail-címe, ha az tartalmazza a "@contoso.com" tartományt, ellenkező esetben az egyszerű felhasználónevet szeretné kibocsátatni. Ehhez a következő értékeket kell konfigurálnia:
1. paraméter (bemenet): user.email
Érték:"@contoso.com"
2. paraméter (kimenet): user.email
3. paraméter (kimenet, ha nincs egyezés): user.userprincipalname
EndWith() Attribútumot vagy állandót ad ki, ha a bemenet a megadott értékre végződik. Ellenkező esetben megadhat egy másik kimenetet, ha nincs egyezés.
Ha például olyan jogcímet szeretne kibocsátatni, amelyben az érték a felhasználó alkalmazotti azonosítója, ha az alkalmazott azonosítója "000" végződik, ellenkező esetben bővítményattribútumot szeretne kibocsátatni. Ehhez a következő értékeket kell konfigurálnia:
1. paraméter (input): user.employeeid
Érték:"000"
2. paraméter (kimenet): user.employeeid
3. paraméter (kimenet, ha nincs egyezés): user.extensionattribute1
StartWith() Attribútumot vagy állandót ad ki, ha a bemenet a megadott értékkel kezdődik. Ellenkező esetben megadhat egy másik kimenetet, ha nincs egyezés.
Ha például egy olyan jogcímet szeretne kibocsátatni, amelyben az érték a felhasználó alkalmazotti azonosítója, ha az ország/régió "US" előtérértékkel kezdődik, ellenkező esetben bővítményattribútumot szeretne kibocsátatni. Ehhez a következő értékeket kell konfigurálnia:
1. paraméter (input): user.country
Érték:"US"
2. paraméter (kimenet): user.employeeid
3. paraméter (kimenet, ha nincs egyezés): user.extensionattribute1
Extract() – Egyeztetés után A megadott értéknek megfelelő karakterláncot adja vissza.
Ha például a bemenet értéke "Finance_BSimon", az egyező érték "Finance_", akkor a jogcím kimenete "BSimon".
Extract() – Egyeztetés előtt A karakterlánc alsztringet adja vissza, amíg meg nem egyezik a megadott értékkel.
Ha például a bemenet értéke "BSimon_US", az egyező érték "_US", akkor a jogcím kimenete "BSimon".
Extract() – Egyezések között A karakterlánc alsztringet adja vissza, amíg meg nem egyezik a megadott értékkel.
Ha például a bemenet értéke "Finance_BSimon_US", az első egyező érték "Finance_", a második egyező érték "_US", a jogcím kimenete pedig "BSimon".
ExtractAlpha() – Előtag A sztring betűrendbe szedett előtagját adja vissza.
Ha például a bemenet értéke "BSimon_123", akkor a "BSimon" értéket adja vissza.
ExtractAlpha() – Utótag A sztring betűrendes részét adja vissza.
Ha például a bemenet értéke "123_Simon", akkor a "Simon" értéket adja vissza.
ExtractNumeric() – Előtag A sztring numerikus előtagját adja vissza.
Ha például a bemenet értéke "123_BSimon", akkor az "123" értéket adja vissza.
ExtractNumeric() – Utótag A sztring utótag numerikus részét adja vissza.
Ha például a bemenet értéke "BSimon_123", akkor az "123" értéket adja vissza.
IfEmpty() Egy attribútumot vagy állandót ad ki, ha a bemenet null vagy üres.
Ha például egy extensionattribute attribútumban tárolt attribútumot szeretne kioszteni, ha egy adott felhasználó alkalmazotti azonosítója üres. Ehhez a következő értékeket kell konfigurálnia:
1. paraméter (bemenet): user.employeeid
2. paraméter (kimenet): user.extensionattribute1
3. paraméter (kimenet, ha nincs egyezés): user.employeeid
IfNotEmpty() Attribútumot vagy állandót ad ki, ha a bemenet nem null vagy üres.
Ha például egy extensionattribute attribútumban tárolt attribútumot szeretne kioszteni, ha egy adott felhasználó alkalmazotti azonosítója nem üres. Ehhez a következő értékeket kell konfigurálnia:
1. paraméter (bemenet): user.employeeid
2. paraméter (kimenet): user.extensionattribute1
Substring() – Rögzített hossz (előzetes verzió) Kinyeri egy sztring jogcímtípusának részeit a megadott pozíciónál található karaktertől kezdve, és visszaadja a megadott számú karaktert.
SourceClaim – Az a jogcímforrás, amelyet az átalakítás végre kell hajtani.
StartIndex – Ebben a példányban egy karakterlánc alsztring nullaalapú kezdő karakterpozíciója.
Length (Hossz) – A karakterlánc alsztringben szereplő karakterek hossza.
Például:
sourceClaim – PleaseExtractThisNow
StartIndex – 6
Hossz – 11
Kimenet: ExtractThis
Substring() – EndOfString (előzetes verzió) Kinyeri egy sztring jogcímtípusának részeit a megadott pozíciónál található karaktertől kezdve, és visszaadja a jogcím többi részét a megadott kezdőindexből.
SourceClaim – Az a jogcímforrás, amelyet az átalakítás végre kell hajtani.
StartIndex – Ebben a példányban egy karakterlánc alsztring nullaalapú kezdő karakterpozíciója.
Például:
sourceClaim – PleaseExtractThisNow
StartIndex – 6
Kimenet: ExtractThisNow

Ha további átalakításra van szüksége, küldje be ötletét az Azure AD visszajelzési fórumán a SaaS-alkalmazás kategóriában.

Az UPN-jogcím hozzáadása SAML-jogkivonathoz

A jogcím az SAML korlátozott jogcímkészletének része, így nem használhatja azt a Felhasználói attribútumok http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upnjogcímek szakaszában.http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn Áthidaló megoldásként hozzáadhatja választható jogcímként a Alkalmazásregisztrációk a Azure Portal.

Nyissa meg az alkalmazást a Alkalmazásregisztrációk válassza a Jogkivonat-konfiguráció, majd a Választható jogcím hozzáadása lehetőséget. Válassza ki az SAML-jogkivonat típusát, válasszon upn-t a listából, majd kattintson a Hozzáadás gombra a jogkivonatban található jogcím lekért listájához.

Jogcímek kibocsátása feltételek alapján

A jogcím forrását a felhasználó típusa és az a csoport alapján adhatja meg, amelyhez a felhasználó tartozik.

A felhasználó típusa a következő lehet:

  • Bármely:Minden felhasználó hozzáférhet az alkalmazáshoz.
  • Tagok:a bérlő natív tagja
  • Minden vendég:A felhasználó egy külső szervezetből lesz áthozva az Azure AD-val vagy anélkül.
  • AAD vendégfelhasználók:A vendégfelhasználó egy másik, az Azure AD-t használó szervezethez tartozik.
  • Külső vendégek:A vendégfelhasználó olyan külső szervezethez tartozik, amely nem tagja az Azure AD-nek.

Az egyik forgatókönyv, ahol ez hasznos lehet, ha egy jogcím forrása eltér a vendég és az alkalmazáshoz hozzáférő alkalmazott esetében. Megadhatja, hogy ha a felhasználó egy alkalmazott, a NameID az user.email-ból származik, de ha a felhasználó vendég, akkor a NameID forrása a user.extensionattribute1.

Jogcím-feltétel hozzáadása:

  1. A Jogcím kezelése közöttbontsa ki a Jogcímfeltételeket.
  2. Válassza ki a felhasználó típusát.
  3. Válassza ki azokat a csoportokat, amelyekhez a felhasználónak tartozni kell. Egy adott alkalmazás összes jogcímében legfeljebb 50 egyedi csoportot választhat ki.
  4. Válassza ki azt a forrást, ahol a jogcím lekéri az értékét. Kiválaszthat egy felhasználói attribútumot a forrásattribútum legördülő menüből, vagy a jogcímként való kibocsátás előtt átalakítást alkalmazhat a felhasználói attribútumra.

Fontos, hogy milyen sorrendben adja hozzá a feltételeket. Az Azure AD felülről lefelé kiértékeli a feltételeket, és eldönti, hogy melyik értéket bocsátja ki a jogcímben. A kifejezésnek megfelelő utolsó érték lesz kiadva a jogcímben.

Britta Simon például vendégfelhasználó a Contoso bérlőben. Egy másik szervezethez tartozik, amely szintén az Azure AD-t használja. A Fabrikam alkalmazás alábbi konfigurációja miatt, amikor Britta megpróbál bejelentkezni a Fabrikambe, a Microsoft Identitásplatform a következőképpen értékeli ki a feltételeket.

Először is a Microsoft Identitásplatform, hogy Britta felhasználótípusa a következő-e: All guests . Mivel ez igaz, akkor a Microsoft Identitásplatform hozzárendeli a jogcím forrását a következő user.extensionattribute1 hez: . Másodszor, a Microsoft Identitásplatform ellenőrzi, hogy Britta felhasználótípusa , mivel ez is igaz, akkor a Microsoft Identitásplatform hozzárendeli a jogcím forrását a következőnek: AAD guestsuser.mail . Végül a jogcím a Britta értékével user.mail lesz kiadva.

Claims conditional configuration

Következő lépések