Přidání aplikačních rolí do aplikace a jejich přijetí v tokenu
Řízení přístupu na základě role (RBAC) je oblíbený mechanismus pro vynucení autorizace v aplikacích. RBAC umožňuje správcům udělit oprávnění rolím, nikoli konkrétním uživatelům nebo skupinám. Správce pak může přiřadit role různým uživatelům a skupinám a řídit, kdo má přístup k jakému obsahu a funkcím.
Díky použití RBAC s deklaracemi rolí aplikací a rolí můžou vývojáři bezpečně vynutit autorizaci ve svých aplikacích s menším úsilím.
Dalším přístupem je použití skupin Microsoft Entra a deklarací identity skupin, jak je znázorněno v ukázce kódu active-directory-aspnetcore-webapp-openidconnect-v2 na GitHubu. Skupiny Microsoft Entra a aplikační role se vzájemně nevylučují; dají se použít společně, aby poskytovaly i jemně odstupňované řízení přístupu.
Deklarace rolí pro aplikaci
Role aplikací definujete pomocí Centra pro správu Microsoft Entra během procesu registrace aplikace. Aplikační role jsou definované v registraci aplikace a představují službu, aplikaci nebo rozhraní API. Když se uživatel přihlásí k aplikaci, Microsoft Entra ID vygeneruje roles
deklaraci identity pro každou roli, kterou uživatel nebo instanční objekt udělil, což lze použít k implementaci autorizace založené na deklarací identity. Role aplikací se dají přiřadit uživateli nebo skupině uživatelů. Role aplikací je možné také přiřadit instančnímu objektu pro jinou aplikaci nebo instančnímu objektu pro spravovanou identitu.
Pokud v současné době přidáte instanční objekt do skupiny a pak této skupině přiřadíte roli aplikace, nepřidá roles
ID Microsoft Entra deklaraci identity do tokenů, které se v ní vystaví.
Role aplikací se deklarují pomocí uživatelského rozhraní rolí aplikací v Centru pro správu Microsoft Entra:
Počet rolí, které přidáte, se počítá do limitů manifestu aplikace vynucovaných id Microsoft Entra. Informace o těchto omezeních najdete v části Manifest limits (Omezení manifestu) v referenčních informacích k manifestu aplikace Microsoft Entra.
Uživatelské rozhraní rolí aplikací
Tip
Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.
Vytvoření role aplikace pomocí uživatelského rozhraní Centra pro správu Microsoft Entra:
Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací.
Pokud máte přístup k více tenantům, pomocí ikony Nastavení v horní nabídce přepněte do tenanta, který obsahuje registraci aplikace z nabídky Adresáře a předplatná.
Přejděte do části Aplikace> identit>Registrace aplikací a vyberte aplikaci, ve které chcete definovat role aplikací.
V části Spravovat vyberte Role aplikace a pak vyberte Vytvořit roli aplikace.
V podokně Vytvořit aplikační roli zadejte nastavení pro požadovanou roli. Následující tabulka popisuje každé nastavení a jejich parametry.
Pole Description Příklad Zobrazované jméno Zobrazovaný název role aplikace, která se zobrazí v prostředí souhlasu správce a přiřazení aplikací. Tato hodnota může obsahovat mezery. Survey Writer
Povolené typy členů Určuje, jestli se tato role aplikace dá přiřadit uživatelům, aplikacím nebo oběma.
Pokud jsou k dispoziciapplications
, role aplikací se zobrazí jako oprávnění aplikace v části> Spravovat oprávnění rozhraní API pro registraci aplikace– Přidat oprávnění > > Moje rozhraní API > Zvolte oprávnění aplikace API>.Users/Groups
Hodnota Určuje hodnotu deklarace identity rolí, kterou má aplikace v tokenu očekávat. Hodnota by se měla přesně shodovat s řetězcem odkazovaným v kódu aplikace. Hodnota nemůže obsahovat mezery. Survey.Create
Popis Podrobnější popis role aplikace, která se zobrazí během přiřazení aplikace správce a prostředí souhlasu. Writers can create surveys.
Chcete tuto roli aplikace povolit? Určuje, jestli je povolená role aplikace. Pokud chcete odstranit roli aplikace, zrušte zaškrtnutí tohoto políčka a před pokusem o odstranění použijte změnu. Toto nastavení řídí využití a dostupnost role aplikace a zároveň ji může dočasně nebo trvale zakázat, aniž by se úplně odebrala. Kontroloval Výběrem možnosti Použít změny uložte.
Když je role aplikace nastavená na Povoleno, mají všichni uživatelé, aplikace nebo skupiny, kteří mají přiřazenou roli aplikace, která je součástí jejich tokenů. Tyto tokeny můžou být přístupové tokeny, když aplikace volá rozhraní API, které volá aplikace nebo tokeny ID při přihlašování uživatele. Pokud je tato možnost zakázaná, stane se neaktivní a už nebude možné ji přiřadit. Všechny předchozí přiřazené uživatele si zachovají roli aplikace, která je součástí jejich tokenů, ale nemá žádný vliv, protože už není aktivně přiřaditelná.
Přiřazení vlastníka aplikace
Před přiřazením rolí aplikací k aplikacím musíte sami sebe přiřadit jako vlastníka aplikace.
- V registraci aplikace v části Spravovat vyberte Vlastníci a Přidat vlastníky.
- V novém okně vyhledejte a vyberte vlastníky, které chcete přiřadit k aplikaci. Vybraní vlastníci se zobrazí na pravém panelu. Po dokončení potvrďte výběr a vlastníky aplikace se zobrazí v seznamu vlastníka.
Poznámka:
Ujistěte se, že aplikace API i aplikace, ke které chcete přidat oprávnění k oběma, mají vlastníka, jinak se rozhraní API při vyžádání oprávnění rozhraní API nezobrazí.
Přiřazení rolí aplikací k aplikacím
Po přidání rolí aplikací do aplikace můžete přiřadit roli aplikace klientské aplikaci pomocí Centra pro správu Microsoft Entra nebo programově pomocí Microsoft Graphu. Přiřazení role aplikace k aplikaci by nemělo být zaměňováno s přiřazováním rolí uživatelům.
Když aplikaci přiřadíte role aplikace, vytvoříte oprávnění aplikace. Oprávnění aplikace obvykle používají aplikace démona nebo back-endové služby, které potřebují ověřovat a provádět autorizovaná volání rozhraní API samy za sebe – bez interakce uživatele.
Přiřazení rolí aplikací k aplikaci pomocí Centra pro správu Microsoft Entra:
- Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací.
- Přejděte do aplikace> identit>Registrace aplikací a pak vyberte Všechny aplikace.
- Vyberte Všechny aplikace. Zobrazí se seznam všech vašich aplikací. Pokud se vaše aplikace v seznamu nezobrazí, pomocí filtrů v horní části seznamu Všechny aplikace seznam omezte, nebo procházením seznamu aplikaci vyhledejte.
- Vyberte aplikaci, ke které chcete přiřadit roli aplikace.
- Vyberte Oprávnění rozhraní API>Přidat oprávnění.
- Vyberte kartu Moje rozhraní API a pak vyberte aplikaci, pro kterou jste definovali role aplikace.
- V části Oprávnění vyberte role, které chcete přiřadit.
- Vyberte tlačítko Přidat oprávnění a doplňte role.
Nově přidané role by se měly zobrazit v podokně oprávnění rozhraní API registrace vaší aplikace.
Udělit souhlas správce
Vzhledem k tomu, že se jedná o oprávnění aplikace, nikoli o delegovaná oprávnění, musí správce udělit souhlas s používáním aplikačních rolí přiřazených aplikaci.
- V podokně oprávnění rozhraní API registrace aplikace vyberte Udělit souhlas správce pro <název> tenanta.
- Po zobrazení výzvy k udělení souhlasu s požadovanými oprávněními vyberte Ano .
Sloupec Stav by měl odrážet, že byl udělen souhlas pro <název> tenanta.
Scénář použití rolí aplikací
Pokud implementujete obchodní logiku role aplikace, která přihlašuje uživatele ve scénáři aplikace, nejprve definujte role aplikace v Registrace aplikací. Pak je správce přiřadí uživatelům a skupinám v podokně Podnikové aplikace . V závislosti na scénáři se tyto přiřazené role aplikací zahrnou do různých tokenů vydaných pro vaši aplikaci. Například pro aplikaci, která přihlašuje uživatele, jsou deklarace identity rolí zahrnuty do tokenu ID. Když vaše aplikace volá rozhraní API, deklarace identity rolí se zahrnou do přístupového tokenu.
Pokud implementujete obchodní logiku aplikační role ve scénáři aplikace volající rozhraní API, máte dvě registrace aplikací. Jedna registrace aplikace je pro aplikaci a druhá registrace aplikace je určená pro rozhraní API. V takovém případě definujte aplikační role a přiřaďte je uživateli nebo skupině v registraci aplikace rozhraní API. Když se uživatel ověří v aplikaci a vyžádá si přístupový token za účelem volání rozhraní API, součástí tokenu bude deklarace identity rolí. Dalším krokem je přidání kódu do webového rozhraní API, abyste při volání rozhraní API zkontrolovali tyto role.
Informace o tom, jak přidat autorizaci do webového rozhraní API, najdete v tématu Chráněné webové rozhraní API: Ověření oborů a rolí aplikací.
Role aplikací vs. skupiny
I když k autorizaci můžete použít role aplikací nebo skupiny, klíčové rozdíly mezi nimi můžou ovlivnit, které se rozhodnete pro váš scénář použít.
Role aplikací | Skupiny |
---|---|
Jsou specifické pro aplikaci a jsou definovány v registraci aplikace. Přesouvají se s aplikací. | Nejsou specifické pro aplikaci, ale pro tenanta Microsoft Entra. |
Role aplikací se odeberou při odebrání registrace aplikace. | Skupiny zůstanou nedotčené i v případě, že je aplikace odebrána. |
Zadanou roles v deklaraci identity. |
Zadanou v groups deklaraci identity. |
Pomocí aplikačních rolí můžou vývojáři určit, jestli se uživatel může přihlásit k aplikaci nebo jestli aplikace může získat přístupový token pro webové rozhraní API. Aby bylo možné tuto kontrolu zabezpečení rozšířit na skupiny, mohou vývojáři a správci přiřadit k aplikačním rolím také skupiny zabezpečení.
Vývojáři raději používají role aplikací, když chtějí popsat a řídit parametry autorizace v samotné aplikaci. Například aplikace používající skupiny pro autorizaci se v dalším tenantovi přeruší, protože ID skupiny i název se můžou lišit. Aplikace využívající role aplikací zůstává v bezpečí. Aplikace SaaS ve skutečnosti často přiřazují skupiny k rolím aplikací ze stejných důvodů, jako umožňuje zřízení aplikace SaaS ve více tenantech.
Přiřazení uživatelů a skupin k rolím Microsoft Entra
Jakmile do aplikace přidáte role aplikací, můžete uživatelům a skupinám přiřadit role Microsoft Entra. Přiřazení uživatelů a skupin k rolím je možné provádět prostřednictvím uživatelského rozhraní portálu nebo programově pomocí Microsoft Graphu. Když se uživatelé přiřazení k různým rolím přihlásí k aplikaci, mají jejich tokeny přiřazené role v roles
deklaraci identity.
Přiřazení uživatelů a skupin k rolím pomocí Centra pro správu Microsoft Entra:
- Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací.
- Pokud máte přístup k více tenantům, pomocí ikony Nastavení v horní nabídce přepněte do tenanta, který obsahuje registraci aplikace z nabídky Adresáře a předplatná.
- Přejděte k podnikovým aplikacím> identit.>
- Vyberte Všechny aplikace. Zobrazí se seznam všech vašich aplikací. Pokud se vaše aplikace v seznamu nezobrazí, pomocí filtrů v horní části seznamu Všechny aplikace seznam omezte, nebo procházením seznamu aplikaci vyhledejte.
- Vyberte aplikaci, ve které chcete přiřadit uživatele nebo skupiny zabezpečení k rolím.
- Pod možností Spravovat vyberte Uživatelé a skupiny.
- Vyberte Přidat uživatele a otevřete podokno Přidat přiřazení.
- V podokně Přidat přiřazení vyberte selektor Uživatelé a skupiny. Zobrazí se seznam uživatelů a skupin zabezpečení. Můžete vyhledat konkrétního uživatele nebo skupinu a vybrat více uživatelů a skupin, které se v seznamu zobrazují. Pokračujte výběrem tlačítka Vybrat .
- V podokně Přidat přiřazení vyberte Vybrat roli. Zobrazí se všechny role, které jste definovali pro aplikaci.
- Zvolte roli a vyberte tlačítko Vybrat.
- Výběrem tlačítka Přiřadit dokončete přiřazení uživatelů a skupin k aplikaci.
Ověřte, že se uživatelé a skupiny, které jste přidali, zobrazují v seznamu Uživatelé a skupiny .
Další kroky
Další informace o rolích aplikací najdete v následujících zdrojích informací.
- Ukázky kódu na GitHubu
- Referenční dokumentace
- Video: Implementace autorizace v aplikacích pomocí platformy Microsoft Identity Platform (1:01:15)