Úvod do oprávnění a souhlasu

Pro přístup k chráněnému prostředku, jako jsou e-maily nebo data kalendáře, vaše aplikace potřebuje autorizaci vlastníka prostředku. Vlastník prostředku může žádost vaší aplikace vyjádřit souhlas nebo ji zamítnout. Pochopení těchto základních konceptů vám pomůže vytvářet bezpečnější a důvěryhodnější aplikace, které od svých uživatelů a správců vyžadují pouze přístup, který potřebují, když ho potřebují.

Scénáře aplikace Access

Jako vývojář aplikace musíte určit, jak bude vaše aplikace přistupovat k datům. Aplikace může používat delegovaný přístup, jednat jménem přihlášeného uživatele nebo přístup pouze pro aplikaci a jednat pouze jako vlastní identita aplikace.

Obrázek znázorňující scénáře přístupu

Delegovaný přístup (přístup jménem uživatele)

V tomto scénáři přístupu se uživatel přihlásil ke klientské aplikaci. Klientská aplikace přistupuje k prostředku jménem uživatele. Delegovaný přístup vyžaduje delegovaná oprávnění. Klient i uživatel musí být autorizováni samostatně, aby mohli žádost vytvořit. Další informace o scénáři delegovaného přístupu najdete v tématu Scénář delegovaného přístupu.

Klientské aplikaci musí být udělena správná delegovaná oprávnění. Delegovaná oprávnění se také dají označovat jako obory. Obory jsou oprávnění pro daný prostředek, která představují, k čemu má klientská aplikace přístup jménem uživatele. Další informace o oborech najdete v tématu Obory a oprávnění.

Autorizace pro uživatele závisí na oprávněních, která mu byla udělena pro přístup k prostředku. Uživatel může mít například autorizaci pro přístup k prostředkům adresáře pomocí řízení přístupu na základě role (RBAC) služby Azure Active Directory (Azure AD) nebo k přístupu k prostředkům pošty a kalendáře pomocí Exchange Online RBAC. Další informace o řízení přístupu na základě role pro aplikace najdete v tématu RBAC pro aplikace.

Přístup pouze pro aplikace (Přístup bez uživatele)

V tomto scénáři přístupu aplikace funguje sama bez přihlášení uživatele. Přístup k aplikacím se používá ve scénářích, jako je automatizace a zálohování. Tento scénář zahrnuje aplikace, které běží jako služby nebo procesy démony na pozadí. Je vhodné, když není žádoucí mít přihlášeného konkrétního uživatele nebo když požadovaná data není možné omezit na jednoho uživatele.

Přístup pouze pro aplikace používá role aplikace místo delegovaných oborů. Při udělení souhlasu mohou být aplikační role také označovány jako oprávnění aplikací. Pro přístup pouze k aplikacím musí mít klientská aplikace udělené odpovídající aplikační role aplikace, která volá, aby mohla získat přístup k požadovaným datům. Další informace o přiřazování aplikačních rolí klientským aplikacím najdete v tématu Přiřazování aplikačních rolí aplikacím.

Typy oprávnění

Delegovaná oprávnění se používají ve scénáři delegovaného přístupu. Jedná se o oprávnění, která aplikaci umožňují jednat jménem uživatele. Aplikace nikdy nebude mít přístup k ničemu, k čímýmůmmům nebude mít přístup samotný přihlášený uživatel.

Představte si například aplikaci, která získala delegovaná oprávnění Files.Read.All jménem uživatele Tom. Aplikace bude moct číst jenom soubory, ke kterým má Tom osobní přístup.

Oprávnění aplikace, někdy označovaná jako role aplikace, se používají ve scénáři přístupu pouze k aplikacím, aniž by byl přihlášený uživatel. Aplikace bude mít přístup ke všem datům, ke kterým je oprávnění přidružené. Například aplikace s uděleným oprávněním Files.Read.All bude moct číst libovolný soubor v tenantovi. Souhlas s oprávněními aplikace může udělit jenom správce nebo vlastník instančního objektu.

Existují i jiné způsoby, jak lze aplikacím udělit autorizaci pro přístup pouze k aplikacím. Aplikaci je například možné přiřadit roli RBAC Azure AD.

Porovnání delegovaných oprávnění a oprávnění aplikace

Delegovaná oprávnění Oprávnění aplikace
Typy aplikací Webová / mobilní / jednostránková aplikace (SPA) Web / démon
Kontext přístupu Získání přístupu jménem uživatele Získání přístupu bez uživatele
Kdo může vyjádřit souhlas – Uživatelé můžou vyjádřit souhlas se svými daty.
– Správci můžou vyjádřit souhlas pro všechny uživatele.
Souhlas může udělit jenom správce.
Další názvy -Obory
– Obory oprávnění OAuth2
– Aplikační role
– Oprávnění jenom pro aplikace
Výsledek souhlasu (specifický pro Microsoft Graph) oAuth2PermissionGrant appRoleAssignment

Jedním ze způsobů, jak se aplikacím udělí oprávnění, je udělení souhlasu. Souhlas je proces, při kterém uživatelé nebo správci autorizují aplikaci pro přístup k chráněnému prostředku. Když se například uživatel pokusí přihlásit k aplikaci poprvé, může aplikace požádat o oprávnění k zobrazení profilu uživatele a ke čtení obsahu poštovní schránky uživatele. Uživateli se prostřednictvím výzvy k vyjádření souhlasu zobrazí seznam oprávnění, která aplikace požaduje. Mezi další scénáře, ve kterých se uživatelům může zobrazit výzva k vyjádření souhlasu, patří:

  • Pokud byl dříve udělený souhlas odvolán.
  • Když je aplikace naprogramovaná tak, aby při každém přihlášení výslovně zobrazovala výzvu k vyjádření souhlasu.
  • Když aplikace pomocí přírůstkového nebo dynamického souhlasu požádá o některá oprávnění předem a další oprávnění později podle potřeby.

Klíčové podrobnosti výzvy k vyjádření souhlasu jsou seznam oprávnění, která aplikace vyžaduje, a informace o vydavateli. Další informace o výzvě k vyjádření souhlasu a prostředí souhlasu pro správce i koncové uživatele najdete v tématu Prostředí pro vyjádření souhlasu aplikace.

Souhlas uživatele nastane, když se uživatel pokusí přihlásit k aplikaci. Uživatel zadá své přihlašovací údaje. Tyto přihlašovací údaje se kontrolují, aby se zjistilo, jestli už byl udělen souhlas. Pokud neexistuje žádný předchozí záznam o souhlasu uživatele nebo správce s požadovanými oprávněními, zobrazí se uživateli výzva k vyjádření souhlasu a zobrazí se výzva k udělení požadovaných oprávnění aplikaci. V mnoha případech se může vyžadovat, aby správce udělil souhlas jménem uživatele.

V závislosti na požadovaných oprávněních můžou některé aplikace vyžadovat, aby souhlas udělil správce. Například oprávnění aplikace a mnoho delegovaných oprávnění s vysokými oprávněními může udělit souhlas pouze správce. Správci můžou udělit souhlas pro sebe nebo pro celou organizaci. Další informace o souhlasu uživatele a správce najdete v přehledu souhlasu uživatele a správce.

Předběžné ověření

Předběžné ověření umožňuje vlastníkovi aplikace prostředků udělit oprávnění, aniž by se uživatelům musela zobrazovat výzva k vyjádření souhlasu se stejnou sadou oprávnění, která byla předem autorizována. Tímto způsobem aplikace, která byla předem autorizována, nebude žádat uživatele o souhlas s oprávněními. Vlastníci prostředků můžou předběžně ověřovat klientské aplikace v Azure Portal nebo pomocí PowerShellu a rozhraní API, jako je Microsoft Graph.

Další kroky