Konfigurace skupinových deklarací identity a rolí aplikací v tokenech
Při konfiguraci skupinových deklarací identity a rolí aplikací v tokenech se dozvíte, jak nakonfigurovat aplikace s definicemi 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. Microsoft Entra ID však omezuje podporu skupin zabezpečení v tokenu podle velikosti tokenu. Pokud je uživatel členem příliš mnoha skupin, v tokenu nebudou žádné skupiny zabezpečení.
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 skupin zabezpečení Microsoft Entra. Místo toho nakonfigurujete aplikace pomocí definic rolí aplikací a přiřadíte skupiny zabezpečení k rolím aplikací. Tento nulová důvěra (Zero Trust) osvědčený postup pro vývojáře zlepší flexibilitu a kontrolu a současně zvýší 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žbousAMAccountName
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.
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š mnoha skupin, bude vaše aplikace muset získat členství uživatele ve skupině z Microsoft Graphu. Omezení skupin v groups
deklaraci identity jsou:
- 200 skupin pro tokeny JWT.
- 150 skupin pro tokeny SAML.
- Š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 openID connect nebo OAuth2, webový token JSON (JWT), nebude groups
deklarace identity, pokud je uživatel členem příliš mnoha skupin. Místo toho bude _claim_names
deklarace identity, která obsahuje groups
člena pole.
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 době, kdy voláte Microsoft Graph.
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.
Když vyberete skupiny přiřazené k aplikaci, skupina se zahrne do groups
deklarace identity, pokud jsou splněné následující podmínky:
- skupina je přiřazena k podnikové aplikaci.
- uživatel je přímým členem skupiny.
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ů.
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 nebyl přiřazen k žádné roli.
- více hodnot v
roles
deklaraci identity, pokud má uživatel více přiřazených rolí
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ěřování a používání 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 získat v tokenech Microsoft Entra a jak přizpůsobit tokeny, aby se zlepšila flexibilita a řízení a současně se zvyšuje 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í.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro