A hitelesítés és az engedélyezés rugalmasságának növelése a fejlesztés alatt álló ügyfélalkalmazásokban

Ismerje meg, hogyan építhet rugalmasságot olyan ügyfélalkalmazásokba, amelyek a Microsoft Identitásplatform és a Microsoft Entra-azonosító használatával jelentkeznek be a felhasználókba, és műveleteket hajtanak végre a felhasználók nevében.

A Microsoft Authentication Library (MSAL) használata

A Microsoft Authentication Library (MSAL) a Microsoft Identitásplatform része. Az MSAL jogkivonatokat szerez be, kezel, gyorsítótáraz és frissít; az ajánlott eljárásokat használja a rugalmasság érdekében. Az MSAL segít a fejlesztőknek biztonságos megoldások létrehozásában.

További információ:

Az MSAL gyorsítótárazza a jogkivonatokat, és csendes jogkivonat-beszerzési mintát használ. Az MSAL szerializálja a jogkivonat-gyorsítótárat olyan operációs rendszereken, amelyek natív módon biztosítanak biztonságos tárolást, például Univerzális Windows-platform (UWP), iOS és Android rendszereken. A szerializálási viselkedés testreszabása a használat során:

  • Microsoft.Identity.Web
  • MSAL.NET
  • Javához készült MSAL
  • Pythonhoz készült MSAL

További információ:

MSAL használata esetén a jogkivonatok gyorsítótárazása, frissítése és csendes beszerzése támogatott. A hitelesítéshez használjon egyszerű mintákat a jogkivonatok beszerzéséhez. Számos nyelv támogatott. Kódmintát talál, Microsoft Identitásplatform kódmintákat.

try
{
    result = await app.AcquireTokenSilent(scopes, account).ExecuteAsync();
}
catch(MsalUiRequiredException ex)
{
    result = await app.AcquireToken(scopes).WithClaims(ex.Claims).ExecuteAsync()
}

Az MSAL képes a jogkivonatok frissítésére. Ha a Microsoft Identitásplatform hosszú élettartamú jogkivonatot ad ki, adatokat küldhet az ügyfélnek a jogkivonat frissítéséhez (refresh_in). Az alkalmazás addig fut, amíg a régi jogkivonat érvényes, de egy újabb jogkivonat-beszerzés hosszabb időt vesz igénybe.

MSAL-kiadások

Javasoljuk a fejlesztőknek, hogy készítsenek egy folyamatot a legújabb MSAL-kiadás használatára, mivel a hitelesítés az alkalmazásbiztonság része. Használja ezt a gyakorlatot a fejlesztés alatt álló kódtárakhoz, és javítsa az alkalmazás rugalmasságát.

Keresse meg a legújabb verziót és kibocsátási megjegyzéseket:

Rugalmas minták a tokenkezeléshez

Ha nem használja az MSAL-t, használjon rugalmas mintákat a tokenkezeléshez. Az MSAL-kódtár az ajánlott eljárásokat valósítja meg.

A modern hitelesítést használó alkalmazások általában végpontot hívnak meg a felhasználót hitelesítő jogkivonatok lekéréséhez, vagy engedélyezik az alkalmazás számára a védett API-k meghívását. Az MSAL kezeli a hitelesítést, és mintákat implementál a rugalmasság javítása érdekében. Ha nem használja az MSAL-t, az ajánlott eljárásokhoz használja az ebben a szakaszban található útmutatót. Ellenkező esetben az MSAL automatikusan implementálja az ajánlott eljárásokat.

Gyorsítótár-jogkivonatok

Győződjön meg arról, hogy az alkalmazások pontosan gyorsítótáraznak jogkivonatokat a Microsoft Identitásplatform. Miután az alkalmazás jogkivonatokat kapott, a jogkivonatokkal rendelkező HTTP-válasznak van egy expires_in tulajdonsága, amely jelzi a gyorsítótárazás időtartamát, és azt, hogy mikor érdemes újra felhasználni. Győződjön meg arról, hogy az alkalmazás nem kísérli meg dekódolni az API hozzáférési jogkivonatát.

Egy alkalmazás Microsoft Identitásplatform hívásának diagramja az alkalmazást futtató eszközön található tokengyorsítótáron keresztül.

A gyorsítótárazott jogkivonatok megakadályozzák az alkalmazások és a Microsoft Identitásplatform közötti szükségtelen forgalmat. Ez a forgatókönyv kevésbé teszi érzékenyebbé az alkalmazást a jogkivonat-beszerzési hibákra azáltal, hogy csökkenti a jogkivonat-beszerzési hívásokat. A gyorsítótárazott jogkivonatok javítják az alkalmazás teljesítményét, mivel az alkalmazás ritkábban blokkolja a jogkivonatok beszerzését. A felhasználók továbbra is bejelentkezve maradnak az alkalmazásba a jogkivonat élettartama alatt.

Jogkivonatok szerializálása és megőrzése

Győződjön meg arról, hogy az alkalmazások biztonságosan szerializálják a jogkivonat-gyorsítótárat, hogy megőrizzék a jogkivonatokat az alkalmazáspéldányok között. A jogkivonatok újrafelhasználása az élettartamuk során. A frissítési jogkivonatokat és a hozzáférési jogkivonatokat a rendszer több órán keresztül bocsátja ki. Ez idő alatt a felhasználók többször is elindíthatják az alkalmazást. Amikor egy alkalmazás elindul, ellenőrizze, hogy érvényes hozzáférést vagy frissítési jogkivonatot keres-e. Ez növeli az alkalmazások rugalmasságát és teljesítményét.

További információ:

Győződjön meg arról, hogy az állandó jogkivonat-tároló hozzáférés-vezérléssel és titkosítással rendelkezik a felhasználó-tulajdonos vagy a folyamatidentitás vonatkozásában. A különböző operációs rendszereken a hitelesítő adatok tárolási funkciói vannak.

Jogkivonatok csendes beszerzése

Egy felhasználó hitelesítése vagy egy API meghívásához szükséges engedély lekérése több lépéssel jár a Microsoft Identitásplatform. Például az első alkalommal bejelentkező felhasználók hitelesítő adatokat adnak meg, és többtényezős hitelesítést hajtanak végre. Minden lépés hatással van a szolgáltatást nyújtó erőforrásra. A legkevésbé függőségekkel rendelkező legjobb felhasználói élmény a csendes jogkivonatok beszerzése.

A felhasználói hitelesítést vagy engedélyezést segítő Microsoft Identitásplatform szolgáltatások diagramja.

A csendes jogkivonat beszerzése az alkalmazásjogkivonat-gyorsítótárból származó érvényes jogkivonattal kezdődik. Ha nincs érvényes jogkivonat, az alkalmazás megkísérli beszerezni a jogkivonatot egy elérhető frissítési jogkivonat és a jogkivonat végpontja használatával. Ha egyik lehetőség sem érhető el, az alkalmazás a paraméterrel szerez be egy jogkivonatot prompt=none . Ez a művelet az engedélyezési végpontot használja, de a felhasználó számára nem jelenik meg felhasználói felület. Ha lehetséges, a Microsoft Identitásplatform felhasználói beavatkozás nélkül biztosít jogkivonatot az alkalmazásnak. Ha egy metódus nem eredményez jogkivonatot, akkor a felhasználó manuálisan újrahitelesít.

Feljegyzés

Általában győződjön meg arról, hogy az alkalmazások nem használnak olyan kéréseket, mint a "bejelentkezés" és a "hozzájárulás". Ezek a kérések kényszerítik a felhasználói beavatkozást, ha nincs szükség interakcióra.

Válaszkód kezelése

A következő szakaszokban megismerheti a válaszkódokat.

HTTP 429 válaszkód

Vannak olyan hibaválaszok, amelyek befolyásolják a rugalmasságot. Ha az alkalmazás HTTP 429-válaszkódot kap, túl sok kérést, Microsoft Identitásplatform szabályozza a kéréseket. Ha egy alkalmazás túl sok kérést küld, az szabályozva van, hogy megakadályozza az alkalmazás számára a jogkivonatok fogadását. Ne engedélyezze, hogy egy alkalmazás megkísérelje a jogkivonatok beszerzését, mielőtt az Újrapróbálkozási válasz mező ideje befejeződik. A 429-re adott válasz gyakran azt jelzi, hogy az alkalmazás nem gyorsítótáraz és nem megfelelően újrafelhasználja a jogkivonatokat. Győződjön meg arról, hogy a jogkivonatok gyorsítótárazása és újrafelhasználása az alkalmazásban megtörtént.

HTTP 5x válaszkód

Ha egy alkalmazás http 5x válaszkódot kap, az alkalmazásnak nem szabad gyors újrapróbálkozási ciklust megadnia. Használja ugyanazt a kezelést a 429-válaszhoz. Ha nem jelenik meg újrapróbálkozási utófej, a válasz után legalább 5 másodperccel hajtsa végre az exponenciális visszatartási újrapróbálkozási műveletet az első újrapróbálkozással.

Ha egy kérés túllépi az időkorlátot, az azonnali újrapróbálkozást nem lehet visszafogni. Exponenciális visszatartási újrapróbálkozás implementálása az első újrapróbálkozással, legalább 5 másodperccel a válasz után.

Számos alkalmazásnak és API-nak felhasználói adatokra van szüksége az engedélyezéshez. Az elérhető módszereknek vannak előnyei és hátrányai.

Tokenek

Az identitás- és hozzáférési jogkivonatok szabványos jogcímekkel rendelkeznek, amelyek információt nyújtanak. Ha szükséges információk találhatók a jogkivonatban, a leghatékonyabb módszer a jogkivonat-jogcímek használata, mivel ez megakadályozza a másik hálózati hívást. A kevesebb hálózati hívás nagyobb rugalmasságot jelent.

További információ:

Feljegyzés

Egyes alkalmazások meghívják a UserInfo végpontot a hitelesített felhasználóval kapcsolatos jogcímek lekéréséhez. Az azonosító jogkivonatban szereplő információk a UserInfo végpont információinak egy szuperhalmaza. Engedélyezze az alkalmazásoknak, hogy a UserInfo végpont meghívása helyett az azonosító jogkivonatot használják.

Bővítse a standard jogkivonat-jogcímeket választható jogcímekkel, például csoportokkal. Az Alkalmazáscsoport beállítás az alkalmazáshoz rendelt csoportokat tartalmazza. Az Összes vagy a Biztonsági csoport lehetőség tartalmaz csoportokat az ugyanabban a bérlőben lévő alkalmazásokból, amelyek csoportokat adhatnak hozzá a jogkivonathoz. Értékelje ki az effektust, mert azzal ronthatja a jogkivonatban lévő csoportok kérésének hatékonyságát, hogy tokenblobot okoz, és további hívásokat igényel a csoportok lekéréséhez.

További információ:

Javasoljuk, hogy használjon és tartalmazzon alkalmazásszerepköröket, amelyeket az ügyfelek a portál vagy AZ API-k használatával kezelnek. Szerepkörök hozzárendelése felhasználókhoz és csoportokhoz a hozzáférés szabályozásához. Jogkivonat kiadásakor a hozzárendelt szerepkörök a jogkivonatszerepkörök jogcímében találhatók. A jogkivonatból származó információk megakadályozzák a további API-hívások használatát.

Lásd: Alkalmazásszerepkörök hozzáadása az alkalmazáshoz, és azok fogadása a jogkivonatban

Jogcímek hozzáadása bérlői adatok alapján. Egy bővítmény például egy vállalatspecifikus felhasználói azonosítóval rendelkezik.

A címtárból származó információk jogkivonathoz való hozzáadása hatékony, és a függőségek csökkentésével növeli a rugalmasságot. Nem kezeli a jogkivonatok beszerzésének sikertelensége miatti rugalmassági problémákat. Opcionális jogcímek hozzáadása az alkalmazás elsődleges forgatókönyveihez. Ha az alkalmazás rendszergazdai funkciókkal kapcsolatos információkat igényel, az alkalmazás szükség szerint beszerezheti ezeket az információkat.

Microsoft Graph

A Microsoft Graph egységes API-végponttal rendelkezik a Microsoft 365-adatok elérésére a hatékonysági mintákról, az identitásról és a biztonságról. A Microsoft Graphot használó alkalmazások a Microsoft 365-információkat használhatják az engedélyezéshez.

Az alkalmazásoknak egy jogkivonatra van szükségük a Microsoft 365 eléréséhez, amely rugalmasabb, mint a microsoft 365-összetevők, például a Microsoft Exchange vagy a Microsoft SharePoint korábbi API-jai, amelyek több jogkivonatot igényelnek.

A Microsoft Graph API-k használatakor olyan Microsoft Graph SDK-t használjon, amely leegyszerűsíti a Microsoft Graphhoz hozzáférő rugalmas alkalmazások létrehozását.

Lásd: A Microsoft Graph SDK áttekintése

Az engedélyezéshez fontolja meg a jogkivonat-jogcímek használatát néhány Microsoft Graph-hívás helyett. Csoportok, alkalmazásszerepkörök és opcionális jogcímek kérése jogkivonatokban. Az engedélyezéshez a Microsoft Graph további hálózati hívásokat igényel, amelyek a Microsoft Identitásplatform és a Microsoft Graphra támaszkodnak. Ha azonban az alkalmazás adatrétegként a Microsoft Graph-ra támaszkodik, akkor az engedélyezéshez szükséges Microsoft Graph nem nagyobb kockázattal jár.

Közvetítői hitelesítés használata mobileszközökön

Mobileszközökön a Microsoft Authenticatorhoz hasonló hitelesítési közvetítő javítja a rugalmasságot. A hitelesítési közvetítő egy elsődleges frissítési jogkivonatot (PRT) használ a felhasználóra és az eszközre vonatkozó jogcímekkel. A PRT használatával hitelesítési jogkivonatokkal érhet el más alkalmazásokat az eszközről. Amikor egy PRT alkalmazáshozzáférést kér, a Microsoft Entra ID megbízik az eszköz és az MFA-jogcímekben. Ez növeli a rugalmasságot azáltal, hogy csökkenti az eszköz hitelesítésének lépéseit. A felhasználókat nem támadja meg több MFA-kérés ugyanazon az eszközön.

Lásd: Mi az elsődleges frissítési jogkivonat?

Egy Microsoft Identitásplatform hívó alkalmazás diagramja egy jogkivonat-gyorsítótáron és jogkivonat-tárolón keresztül, valamint az alkalmazást futtató eszközön található hitelesítési közvetítőn keresztül.

Az MSAL támogatja a közvetítői hitelesítést. További információ:

Folyamatos hozzáférés kiértékelése

A folyamatos hozzáférés-kiértékelés (CAE) hosszú élettartamú jogkivonatokkal növeli az alkalmazások biztonságát és rugalmasságát. A CAE-vel a hozzáférési jogkivonatot a rendszer a kritikus események és a szabályzatok kiértékelése alapján vonja vissza a rövid jogkivonat-élettartamok helyett. Egyes erőforrás API-k esetében, mivel a kockázat és a szabályzat valós időben van kiértékelve, a CAE akár 28 órára is megnöveli a jogkivonatok élettartamát. Az MSAL frissíti a hosszú élettartamú jogkivonatokat.

További információ:

Ha erőforrás API-kat fejleszt, keresse fel a openid.netMegosztott jelek – Biztonságos webhookok keretrendszert.

Következő lépések