Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk segítséget nyújthat fejlesztőként az alkalmazásengedély-stratégia kialakításában a minimális jogosultság biztosítása érdekében. A folytatás előtt tekintse meg az API védelmi cikkét, amely bemutatja a regisztrációval, engedélyekkel és hozzáféréssel kapcsolatos ajánlott eljárásokat.
Tekintsük át, hogy a Microsoft identitásplatformja által védett API hogyan használja a Microsoft identitás-jóváhagyási keretrendszerét. Példaként a Microsoft Graph API-t használjuk, mert ez teszi a Microsoft identitásplatform hozzájárulási keretrendszerének legkiterjedtebb használatát.
Elnevezési konvenció engedélynevekhez
A Microsoft Graph csapata létrehozott egy elnevezési konvenciót az engedélynevekhez, hogy megkönnyítse az engedély és az engedély által engedélyezett erőforrás-hozzáférés összekapcsolását. A Microsoft Graph-engedélynevek egy egyszerű resource.operation.constraint mintát követnek. A két elsődleges művelet a Read és a ReadWrite (beleértve a frissítést és a törlést).
A kényszerelem befolyásolja az alkalmazás címtáron belüli hozzáférésének mértékét. A Microsoft Graph az alábbi korlátozásokat támogatja:
- Mindegyik engedélyt ad az alkalmazásnak, hogy végrehajtsa a műveleteket a címtárban megadott típusú összes erőforráson.
- A megosztott engedélyekkel az alkalmazás végrehajthatja a más felhasználók által a bejelentkezett felhasználóval megosztott erőforrásokon végzett műveleteket.
- Az AppFolder engedélyt ad az alkalmazásnak fájlok olvasására és írására a OneDrive egy dedikált mappájában. Ez a korlátozás csak a Fájlok engedélyobjektumon érhető el, és csak a Microsoft-fiókokra érvényes.
- Ha nem határoz meg korlátozást, az alkalmazás csak a bejelentkezett felhasználó tulajdonában lévő erőforrásokon hajthatja végre a műveleteket.
Hozzáférés és műveletek adott erőforrásokhoz
Tekintsünk meg néhány engedélyt vagy hatókört a Microsoft Graph felhasználói objektumához, amelyből megtudhatja, hogy a Microsoft API-tervezők hogyan engedélyezték az adott erőforrásokhoz való hozzáférést és műveleteket:
| Engedély | Sztring megjelenítése | Leírás |
|---|---|---|
User.Read |
Bejelentkezés és felhasználói profil olvasása | Lehetővé teszi, hogy a felhasználók bejelentkezhessenek az alkalmazásba, és lehetővé teszik az alkalmazás számára a bejelentkezett felhasználók profiljának olvasását. Lehetővé teszi továbbá, hogy az alkalmazás beolvassa a bejelentkezett felhasználók alapvető vállalati adatait. |
User.ReadWrite |
Felhasználói profilhoz való olvasási és írási hozzáférés | Lehetővé teszi, hogy az alkalmazás elolvassa a bejelentkezett felhasználó teljes profilját. Lehetővé teszi továbbá, hogy az alkalmazás a nevében frissítse a bejelentkezett felhasználó profiladatait. |
User.Read és User.ReadWrite léteznek (ellentétben egyetlen, nem létező User.Access engedéllyel), hogy az alkalmazások a legkisebb jogosultság elvét, azaz a nulla bizalmú modellt követhessék. Ha a fejlesztő nem rendelkezik a felhasználó profiljának frissítésére vonatkozó követelménysel és kóddal, az alkalmazás nem kér User.ReadWrite. Ezért egy rosszindulatú felhasználó nem tudja veszélyeztetni az alkalmazást, és nem használhatja az adatok módosítására.
Figyelje meg, hogy User.Read nem csak hozzáférést biztosít az alkalmazásnak a felhasználói objektumhoz. Minden engedély egy adott művelettartományt jelöl. Fontos, hogy a fejlesztők és a rendszergazdák elolvassák az engedély leírását, hogy pontosan lássák, milyen engedélyeket engedélyeznek.
User.ReadAmellett, hogy lehetővé teszi az aktuális felhasználó teljes profiljának olvasását, lehetővé teszi, hogy az alkalmazás a Microsoft Graph Szervezetek objektumából származó alapvető információkat lássa.
Tekintsünk meg egy másik engedélyt:
| Engedély | Sztring megjelenítése | Leírás |
|---|---|---|
User.ReadBasic.All |
Az összes felhasználó alapprofiljának olvasása | Lehetővé teszi az alkalmazás számára, hogy a bejelentkezett felhasználó nevében beolvassa a szervezet többi felhasználójának alapvető profiltulajdonságait. Tartalmazza a megjelenítendő nevet, az utónevet és a családnevet, az e-mail-címet, a megnyitott bővítményeket és a fényképet. Lehetővé teszi, hogy az alkalmazás beolvassa a bejelentkezett felhasználó teljes profilját. |
A művelettartomány azzal kezdődik, hogy User.ReadBasic.All mindent megtesz, amit User.Read. Emellett hozzáférhet a megjelenítendő névhez, az utó- és családnévhez, az e-mail-címhez, a fényképhez és a nyitott bővítményekhez más szervezeti felhasználók számára. Az adott működési tartomány lehetővé teszi az alkalmazások számára, hogy szép felhasználói felhasználói felülettel rendelkezzenek, és példa az API-tervezőkre, akik engedéllyel engedélyeznek egy adott művelettartományt.
Tekintsünk meg még néhány engedélyt a Microsoft Graph felhasználói objektumához:
| Engedély | Sztring megjelenítése | Leírás |
|---|---|---|
User.Read.All |
Az összes felhasználó teljes profiljának olvasása | Lehetővé teszi, hogy az alkalmazás a bejelentkezett felhasználó nevében elolvassa a szervezet többi felhasználójának profiltulajdonságait, jelentéseit és kezelőinek teljes készletét. |
User.ReadWrite.All |
Az összes felhasználó teljes profiljának olvasása és írása | Lehetővé teszi az alkalmazás számára, hogy a bejelentkezett felhasználó nevében elolvassa és megírja a szervezet többi felhasználójának profiltulajdonságait, jelentéseit és kezelőinek teljes készletét. Emellett lehetővé teszi az alkalmazás számára, hogy felhasználókat hozzon létre és töröljön, és visszaállítsa a felhasználói jelszavakat a bejelentkezett felhasználó nevében. |
Mint az User.Read és User.ReadWrite, User.Read.All és User.ReadWrite.All különböző engedélyek, amelyek lehetővé teszik az alkalmazás számára, hogy kövesse a minimum jogosultság és a zéró bizalom elvét.
User.Read.All érdekes, mert a szervezet minden felhasználója rendelkezik ezzel a képességgel (például megnyithatja az Outlookot, felfelé és lefelé haladhat egy jelentési láncban). Ön, mint egyéni, láthatja a szervezet összes többi felhasználójának teljes felhasználói profilját. A Microsoft Graph API tervezői azonban úgy döntöttek, hogy csak a rendszergazdák engedélyezhetik egy alkalmazásnak ugyanazt a műveletet, mert User.Read.All a bérlő szervezeti hierarchiáját is magában foglalja. Ha egy rossz szereplő hozzáfért ezekhez az információkhoz, célzott adathalász támadást indíthat, ahol az adathalász e-mail egy személy felettesétől vagy a felettesétől származik.
User.ReadWrite.All egy hatékony működési tartomány. Az ilyen engedélyekkel rendelkező alkalmazások frissíthetik vagy akár törölhetik is a bérlő összes felhasználóját.
Delegált engedélyként, amikor egy felhasználó az alkalmazás előtt van, az alkalmazás csak azt teheti, amit az aktuális felhasználó tehet. A normál felhasználók az alkalmazás engedélyétől függetlenül nem frissíthetnek vagy törölhetnek más felhasználókat. Ha azonban egy bérlői rendszergazda használja az alkalmazást, akkor végrehajthatja ezeket a műveleteket. Amikor úgy dönt, hogy megadja vagy megtagadja ezt az engedélyt, értékelje ki az alkalmazást egy bérlői rendszergazdai felhasználó szem előtt tartásával.
Rendszergazdai hozzájárulást igénylő engedélyek
A Microsoft Graph API-tervezők ezeket az engedélyeket úgy jelölték, mint amelyek rendszergazdai hozzájárulást igényelnek User.Read.All és User.ReadWrite.All. Adjunk hozzá egy Rendszergazda? oszlopot az engedélytáblánkhoz, amely jelzi, hogy mikor van szükség rendszergazdai hozzájárulásra:
| Engedély | Sztring megjelenítése | Leírás | Adminisztrátor? |
|---|---|---|---|
User.Read |
Bejelentkezés és felhasználói profil olvasása | Lehetővé teszi, hogy a felhasználók bejelentkezhessenek az alkalmazásba, és lehetővé teszik az alkalmazás számára a bejelentkezett felhasználók profiljának olvasását. Lehetővé teszi továbbá, hogy az alkalmazás beolvassa a bejelentkezett felhasználók alapvető vállalati adatait. | No |
User.ReadWrite |
Felhasználói profilhoz való olvasási és írási hozzáférés | Lehetővé teszi, hogy az alkalmazás elolvassa a bejelentkezett felhasználó teljes profilját. Lehetővé teszi továbbá, hogy az alkalmazás a nevében frissítse a bejelentkezett felhasználó profiladatait. | No |
User.ReadBasic.All |
Az összes felhasználó alapprofiljának olvasása | Lehetővé teszi az alkalmazás számára, hogy a bejelentkezett felhasználó nevében beolvassa a szervezet többi felhasználójának alapvető profiltulajdonságait. Tartalmazza a megjelenítendő nevet, az utónevet és a családnevet, az e-mail-címet, a megnyitott bővítményeket és a fényképet. Lehetővé teszi, hogy az alkalmazás beolvassa a bejelentkezett felhasználó teljes profilját. | No |
User.Read.All |
Az összes felhasználó teljes profiljának olvasása | Lehetővé teszi, hogy az alkalmazás a bejelentkezett felhasználó nevében elolvassa a szervezet többi felhasználójának profiltulajdonságait, jelentéseit és kezelőinek teljes készletét. | Igen |
User.ReadWrite.All |
Az összes felhasználó teljes profiljának olvasása és írása | Lehetővé teszi az alkalmazás számára, hogy a bejelentkezett felhasználó nevében elolvassa és megírja a szervezet többi felhasználójának profiltulajdonságait, jelentéseit és kezelőinek teljes készletét. Emellett lehetővé teszi az alkalmazás számára, hogy felhasználókat hozzon létre és töröljön, és visszaállítsa a felhasználói jelszavakat a bejelentkezett felhasználó nevében. | Igen |
Amint azt a rendszergazdai hozzájárulást igénylő kérelemengedélyek című cikkben is látható, a bérlői rendszergazdák felülírhatják a követelményeket, és rendszergazdai hozzájárulást igénylőként jelölhetik ki a bérlőjükben lévő bármely vagy az összes alkalmazásengedélyt. Úgy tervezheti meg az alkalmazást, hogy zökkenőmentesen kezelje, ha nem kap jogkivonatot a kéréséből. A hozzájárulás hiánya az egyik oka annak, hogy az alkalmazás nem kap jogkivonatot.
Következő lépések
- Egy másik API-ból meghívott API segít biztosítani a Zero Trust elv megvalósítását, amikor egy API-nak meg kell hívnia egy másik API-t, és biztonságosan fejlesztheti az alkalmazását, amikor egy felhasználó nevében jár el.
- Az erőforrások elérésére vonatkozó engedély beszerzése segít megérteni, hogyan biztosíthatja a legjobban a zéró megbízhatóságot az alkalmazás erőforrás-hozzáférési engedélyeinek beszerzésekor.
- Tokenek testreszabása ismerteti az információkat, amelyeket a Microsoft Entra tokenekben kaphat. Ez a cikk bemutatja, hogyan szabhatja testre a tokeneket a rugalmasság és a szabályozás javítása érdekében, miközben a legkisebb jogosultságokkal rendelkező Zero Trust biztonságot növeli.
- A csoportjogcímek és alkalmazásszerepkörök tokenekben való konfigurálása bemutatja, hogyan konfigurálhatja alkalmazásait alkalmazásszerepkör-definíciókkal, és hogyan rendelhet biztonsági csoportokat alkalmazásszerepkörökhöz. Ezek a módszerek segítenek a rugalmasság és az ellenőrzés javításában, miközben a minimális jogosultsággal rendelkező alkalmazásmegbízhatósági biztonságot növelik.
- A rendszergazdai hozzájárulást igénylő engedélyek kérése azt az engedélyt és a hozzájárulási élményt ismerteti, amikor az alkalmazásengedélyek rendszergazdai hozzájárulást igényelnek.
- Ebben a rövid útmutatóban: Webes API védelme a Microsoft identitásplatformjával, töltsön le és futtasson egy kódmintát, amely bemutatja, hogyan védheti meg a ASP.NET webes API-t.
- Ebben az oktatóanyagban – Az API átalakítása és védelme az Azure API Managementben megtudhatja, hogyan lehet közös szabályzatokat konfigurálni a technológiai verem információinak és az eredeti URL-címeknek az elrejtéséhez az API HTTP válasz törzsében.
- Az ajánlott engedélyezési eljárások segítségével implementálhatja a legjobb engedélyezési, engedély- és hozzájárulási modelleket az alkalmazásokhoz.