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. Role aplikací se definují při registraci aplikace představující 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. Dá se 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:

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň cloudová aplikace Správa istrator.

  2. 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á.

  3. Přejděte do části Aplikace> identit>Registrace aplikací a vyberte aplikaci, ve které chcete definovat role aplikací.

  4. V části Spravovat vyberte Role aplikace a pak vyberte Vytvořit roli aplikace.

    An app registration's app roles pane in the Azure portal

  5. V podokně Vytvořit aplikační roli zadejte nastavení pro požadovanou roli. Následující tabulka popisuje každé nastavení a jejich parametry.

    An app registration's app roles create context pane in the Azure portal

    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. Kontrolovány
  6. Výběrem možnosti Použít změny uložte.

Pokud je role aplikace nastavená tak, aby byla povolená, všichni uživatelé, aplikace nebo skupiny, které mají přiřazené, obsahovaly své tokeny. 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í budou mít stále roli aplikace zahrnutou do svých tokenů, ale nemá žádný vliv, protože už není aktivně přiřaditelná.

Přiřazení vlastníka aplikace

Pokud jste to ještě neudělali, musíte se přiřadit jako vlastník aplikace.

  1. V registraci aplikace v části Spravovat vyberte Vlastníci a Přidat vlastníky.
  2. 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. Vlastník aplikace se teď 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

Jakmile do aplikace přidáte role aplikací, můžete k klientské aplikaci přiřadit roli aplikace pomocí Centra pro správu Microsoft Entra nebo programově pomocí Microsoft Graphu. To není 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:

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň cloudová aplikace Správa istrator.
  2. Přejděte do aplikace> identit>Registrace aplikací a pak vyberte Všechny aplikace.
  3. 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.
  4. Vyberte aplikaci, ke které chcete přiřadit roli aplikace.
  5. Vyberte Oprávnění rozhraní API>Přidat oprávnění.
  6. Vyberte kartu Moje rozhraní API a pak vyberte aplikaci, pro kterou jste definovali role aplikace.
  7. V části Oprávnění vyberte role, které chcete přiřadit.
  8. 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.

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.

  1. V podokně oprávnění rozhraní API registrace aplikace vyberte Udělit souhlas správce pro <název> tenanta.
  2. 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 . Tyto přiřazené role aplikace jsou součástí jakéhokoli tokenu vydaného pro vaši aplikaci.

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í.

Aplikačním rolím dávají vývojáři přednost, 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čí. Přiřazení skupin k rolím aplikací je ve skutečnosti oblíbené u aplikací SaaS 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

Po přidání rolí aplikací do aplikace 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, jejich tokeny budou mít 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:

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň cloudová aplikace Správa istrator.
  2. 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á.
  3. Přejděte k podnikovým aplikacím> identit.>
  4. 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.
  5. Vyberte aplikaci, ve které chcete přiřadit uživatele nebo skupiny zabezpečení k rolím.
  6. Pod možností Spravovat vyberte Uživatelé a skupiny.
  7. Vyberte Přidat uživatele a otevřete podokno Přidat přiřazení.
  8. 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í.
  9. Jakmile vyberete uživatele a skupiny, pokračujte výběrem tlačítka Vybrat.
  10. V podokně Přidat přiřazení vyberte Vybrat roli. Zobrazí se všechny role, které jste pro aplikaci definovali.
  11. Zvolte roli a vyberte tlačítko Vybrat.
  12. 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í.