Sdílet prostřednictvím


Konfigurace skupinových deklarací identity a rolí aplikací v tokenech

Tento článek vám pomůže nakonfigurovat aplikace pomocí definic rolí aplikací a přiřadit skupiny zabezpečení k rolím aplikací, abyste mohli zlepšit flexibilitu a kontrolu a současně zvýšit zabezpečení aplikací s nejnižšími oprávněními.

Microsoft Entra ID podporuje odesílání přiřazených skupin zabezpečení uživatele, rolí adresáře Microsoft Entra a distribučních skupin jako deklarací identity v tokenu. Tento přístup můžete použít k řízení autorizace v aplikacích. Podpora skupiny omezení ID Microsoft Entra v tokenu však podle velikosti tokenu. Pokud je uživatel členem příliš mnoha skupin, v tokenu nejsou žádné skupiny.

V tomto článku se dozvíte o alternativním přístupu k získání informací o uživatelích v tokenech pomocí podpory skupiny Microsoft Entra. Místo toho nakonfigurujete aplikace pomocí definic rolí aplikací a přiřadíte skupiny k rolím aplikací. Tento nulová důvěra (Zero Trust) osvědčený postup pro vývojáře zlepšuje flexibilitu a kontrolu a současně zvyšuje zabezpečení aplikací s nejnižšími oprávněními.

Deklarace identity skupin můžete nakonfigurovat v tokenech, které můžete v aplikacích použít k autorizaci. Mějte na paměti, že informace o skupině v tokenu jsou aktuální pouze při přijetí tokenu. Deklarace identity skupin podporují dva hlavní vzory:

  • Skupiny identifikované pomocí atributu OID (Microsoft Entra object identifier).
  • Skupiny identifikované atributem nebo GroupSID skupinami synchronizovanými službou sAMAccountName Active Directory

Členství ve skupinách může řídit rozhodnutí o autorizaci. Například následující příklad ukazuje některé deklarace identity v tokenu. Deklarace identity skupin a role můžete přidat do ID nebo přístupových tokenů.

"aud": "e18c04b1-4868-4b93-93d1-8d71f17ab99b", 
"iss": "https://login.microsoftonline.com/833ced3d-cb2e-41de-92f1-29e2af035ddc/v2.0", 
"iat": 1669657224, "nbf": 1669657224, "exp": 1669661124, 
"groups": [ 
   "0760b6cf-170e-4a14-91b3-4b78e0739963", 
   "3b2b0c93-acd8-4208-8eba-7a48db1cd4c0" 
 ],
"oid": "cb7eda1b-d09a-40ae-b8bb-37836ebc6abd",
"sub": "3OBtLXUC2ZrN_ADLNjW9X4o0lcd61py7lgHw3Skh77s",
"tid": "833ced3d-cb2e-41ce-92f1-29e2af035ddc", 
"ver": "2.0", 
"wids": [ 
   "cf1c38e5-3621-4004-a7cb-879624dced7c", 
   "b79fbf4d-3ef9-4689-8143-76b194e85509" 
 ]

Pole groups deklarací identity se skládá z ID skupin, ke kterým je tento uživatel členem. Pole wids se skládá z ID rolí Microsoft Entra přiřazených tomuto uživateli. Tady vidíte, cf1c38e5-3621-4004-a7cb-879624dced7c že přiřazené role tohoto uživatele zahrnují Vývojáře aplikací a standardního člena, jak 3b2b0c93-acd8-4208-8eba-7a48db1cd4c0 je uvedeno.

Vaše aplikace může rozhodovat o autorizaci na základě přítomnosti nebo absence těchto deklarací identity a jejich hodnot. Seznam hodnot pro wids deklaraci identity najdete v části Předdefinované role Microsoft Entra.

Pokud chcete přidat tokeny groups a wids deklarace identity, vyberte Všechny skupiny, jak je znázorněno v následujícím příkladu obrazovky s konfigurací | Registrace aplikací | Token Volitelné deklarace identity | Upravit skupiny.

Snímek obrazovky Upravit deklarace identity skupin zobrazuje vybrané typy skupin: Skupiny přiřazené k aplikaci

Seskupování nadlimitního využití

Když požádáte o všechny skupiny v tokenu, jak je znázorněno v předchozím příkladu, nemůžete se spolehnout na token, který má v tokenu groups deklaraci identity. Existují omezení velikosti tokenů a groups deklarací identity, aby se nestaly příliš velkými. Pokud je uživatel členem příliš velkého počtu skupin, musí vaše aplikace získat členství uživatele ve skupině z Microsoft Graphu. Omezení skupin v groups deklaraci identity jsou:

  • 200 skupin pro webové tokeny JSON (JWT).
  • 150 skupin pro tokeny SAML (Security Assertion Markup Language).
  • Šest skupin při použití implicitního toku (například pomocí ASP.NET jádra, které získává tokeny ID prostřednictvím implicitní části toku hybridního toku).
    • Implicitní tok se už nedoporučuje pro jednostrákové webové aplikace.
    • Implicitní tok lze použít ve webových aplikacích pouze pro token ID, nikdy přístupový token v hybridním toku OAuth2.

Pokud používáte OpenID Připojení nebo OAuth2, můžete mít v tokenu až 200 skupin. Pokud používáte SAML, můžete mít pouze 150 skupin, protože tokeny SAML jsou větší než OAuth2 a OpenID Připojení tokeny. Pokud používáte implicitní tok, limit je šest, protože se tyto odpovědi zobrazují v adrese URL. Ve všech těchto případech se místo groups deklarace identity zobrazí indikace (označovaná jako nadlimitní využití skupiny), která vám říká, že uživatel je členem příliš mnoha skupin, aby se vešly do vašeho tokenu.

V následujícím příkladu tokenu pro připojení OpenID nebo OAuth2, webového tokenu JSON (JWT) neexistuje groups deklarace identity, pokud je uživatel členem příliš velkého počtu skupin. Místo toho existuje _claim_names deklarace identity, která obsahuje groups člena pole.

Snímek obrazovky s ukázkovým tokenem znázorňující dotaz

V příkladu výše uvedeného tokenu vidíte, že groups deklarace identity má být namapována na src1. Teoreticky byste pak hledali _claim_sources nárok a pak našli člena src1 . Odtud byste našli dotaz Graphu, který byste použili k získání členství ve skupině. Došlo ale k problému s tím, co vidíte v ukázkovém dotazu Graphu. Přejde do Azure AD Graphu (který Microsoft už nepoužívá), takže ho nepoužívejte.

Implicitní indikace nadlimitního toku se provádí s hasgroups deklarací identity místo groups deklarace identity.

Pokud chcete zajistit správnou autorizaci pomocí členství ve skupině, zkontrolujte deklaraci identity vaší aplikací groups . Pokud existuje, použijte tuto deklaraci identity k určení členství uživatele ve skupině. Pokud neexistuje žádná groups deklarace identity, zkontrolujte existenci hasgroups deklarace identity nebo _claim_names deklarace identity s groups členem pole. Pokud existují některé z těchto deklarací identity, je uživatel členem příliš mnoha skupin pro token. V takovém případě musí vaše aplikace používat Microsoft Graph k určení členství ve skupině pro uživatele. Podívejte se na seznam členství uživatele (přímé a tranzitivní) a vyhledejte všechny skupiny, a to jak přímé, tak tranzitivní, z nichž je uživatel členem.

Pokud vaše aplikace vyžaduje informace o členství ve skupinách v reálném čase, použijte Microsoft Graph k určení členství ve skupině. Mějte na paměti, že informace v tokenu, který obdržíte, jsou aktuální pouze v okamžiku, kdy token získáte.

Podívejte se na následující příklad obrazovky Registrace aplikací | Token konfigurace | Volitelné deklarace identity Upravit skupiny deklarací | identity. Jedním ze způsobů, jak se vyhnout dosažení deklarace nadlimitní využití skupiny, je vybrat skupiny přiřazené k aplikaci na obrazovce Upravit skupiny deklarací identity místo všech skupin.

Snímek obrazovky Upravit deklarace identity skupin zobrazuje vybrané typy skupin: Skupiny zabezpečení, role adresáře a Všechny skupiny.

Když vyberete skupiny přiřazené k aplikaci, skupina se zahrne do groups deklarace identity, pokud jsou splněné následující podmínky:

Od publikování tohoto článku skupiny přiřazené k možnosti aplikace nepodporují nepřímé členství. Přiřazení skupiny vyžaduje alespoň licenci na úrovni P1. Bezplatný tenant nemůže přiřadit skupiny k aplikaci.

Skupiny a role aplikací

Dalším způsobem, jak se vyhnout problému s nadlimitní využití skupiny, je definovat role aplikací, které uživatelům a skupinám umožňují typy členů. Jak je znázorněno v následujícím příkladu obrazovky Registrace aplikací | Provozní role | Vytvořit roli aplikace, vyberte Uživatelé/Skupiny pro povolené typy členů.

Snímek obrazovky s obrazovkou Vytvořit roli aplikace znázorňující povolené typy členů: Uživatelé/skupiny

Po vytvoření role aplikace v registraci aplikace můžou IT specialisté k roli přiřadit uživatele a skupiny. Vaše aplikace získá v tokenu roles deklaraci identity (token ID pro aplikaci, přístupový token pro rozhraní API) se všemi přiřazenými rolemi přihlášeného uživatele, jak je znázorněno v následujícím příkladu tokenu.

"aud": "acaf6ce9-81f0-462a-a93d-a314070738d3",
"iss": "https://login.microsoftonline.com/833ced3d-cb2e-41de-92f1-29e2af035ddc/v2.0",
"iat": 1670826509, "nbf": 1670826509, "exp": 1670830409,
"name": "Kyle Marsh",
"oid": "cb7eda1b-d09a-419e-b8bb-37836ebc6abd",
"preferred_username": "kylemar@idfordevs.dev",
"roles": [
 "Approver",
 "Reviewer" 
],
"sub": "dx-4lf-0loB3c3uVrULnZ2VTLuRRWYff0q7-QlIfYU4",
"tid": "833ced3d-cb3e-41de-92f1-29e2af035ddc",

Nezapomeňte, že vaše aplikace zpracovává následující podmínky:

  • roles absence nároku
  • uživatel nemá přiřazení role.
  • více hodnot v roles deklaraci identity, pokud má uživatel více než jedno přiřazení role

Když vytváříte role aplikací, které uživatelům a skupinám umožňují jako členy, vždy definujte základní roli uživatele bez rolí autorizace se zvýšenými oprávněními. Pokud konfigurace podnikové aplikace vyžaduje přiřazení, můžou aplikaci používat jenom uživatelé s přímým přiřazením k aplikaci nebo členství ve skupině přiřazené aplikaci.

Pokud vaše aplikace definovala role aplikace, které uživatelům a skupinám umožňují jako členy, musí být při přiřazení uživatele nebo skupiny k aplikaci jedna z definovaných rolí aplikace součástí přiřazení uživatele nebo skupiny. Pokud má vaše aplikace definované jenom role se zvýšenými oprávněními (například admin) pro aplikaci, přiřadí se všem uživatelům a skupinám role správce. Když definujete základní roli (například user), uživatelé a skupiny přiřazené k aplikaci mohou být přiřazeny základní roli uživatele.

Kromě toho, aby se zabránilo deklarace identity nadlimitního využití skupin, další výhodou použití rolí není potřeba mapovat mezi ID skupiny nebo názvem a významem ve vaší aplikaci. Váš kód může například místo iterace mezi skupinami v groups deklarací identitách hledat deklaraci identity role správce a rozhodnout se, která ID skupin by měla být povolena pro funkce správce.

Ověření a použití rolí v kódu

Když pro aplikaci definujete role aplikací, je vaší zodpovědností implementovat autorizační logiku pro tyto role. Informace o implementaci logiky autorizace v aplikacích najdete v tématu Implementace řízení přístupu na základě role v aplikacích .

Další kroky

  • Přizpůsobení tokenů popisuje informace, které můžete přijímat v tokenech Microsoft Entra. Vysvětluje, jak přizpůsobit tokeny, aby se zlepšila flexibilita a řízení a současně se zvýšilo zabezpečení nulové důvěryhodnosti aplikace s nejnižšími oprávněními.
  • Konfigurace deklarací identity skupin pro aplikace pomocí ID Microsoft Entra ukazuje, jak může ID Microsoft Entra poskytnout informace o členství uživatele v tokenech pro použití v aplikacích.
  • Osvědčené postupy zabezpečení pro vlastnosti aplikace popisují identifikátor URI přesměrování, přístupové tokeny (používané pro implicitní toky), certifikáty a tajné kódy, identifikátor URI ID aplikace a vlastnictví aplikace.
  • Obory, oprávnění a souhlas platformy Microsoft Identity Platform vysvětlují základní koncepty přístupu a autorizace, které vám pomůžou vytvářet bezpečnější a důvěryhodnější aplikace.
  • K vytváření zabezpečených aplikací použijte osvědčené postupy pro vývoj identit a přístupu nulová důvěra (Zero Trust) v životním cyklu vývoje aplikací.