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ó:
- A Microsoft Authentication Library áttekintése
- Mi a Microsoft Identitásplatform?
- Microsoft Identitásplatform dokumentációja
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ó:
Egyéni jogkivonat-gyorsítótár szerializálása az MSAL for Java-ban
Egyéni jogkivonat-gyorsítótár szerializálása a Pythonhoz készült MSAL-ben.
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:
microsoft-authentication-library-for-js
microsoft-authentication-library-for-dotnet
microsoft-authentication-library-for-python
microsoft-authentication-library-for-java
microsoft-authentication-library-for-objc
microsoft-authentication-library-for-android
microsoft-identity-web
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.
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 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.
Engedélyezéssel kapcsolatos információk lekérése
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ó:
- Microsoft Identitásplatform azonosító jogkivonatok
- Microsoft Identitásplatform hozzáférési jogkivonatok
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?
Az MSAL támogatja a közvetítői hitelesítést. További információ:
- Egyszeri bejelentkezés hitelesítési közvetítőn keresztül iOS-en
- Alkalmazásközi egyszeri bejelentkezés engedélyezése Androidon az MSAL használatával
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ó:
- Folyamatos hozzáférés kiértékelése
- Alkalmazások biztonságossá tétele folyamatos hozzáférés-értékeléssel
- Kritikus esemény kiértékelése
- Feltételes hozzáférési szabályzat kiértékelése
- CaE-kompatibilis API-k használata az alkalmazásokban
Ha erőforrás API-kat fejleszt, keresse fel a openid.net
Megosztott jelek – Biztonságos webhookok keretrendszert.
Következő lépések
- CaE-kompatibilis API-k használata az alkalmazásokban
- A hitelesítés és az engedélyezés rugalmasságának növelése a fejleszthető démonalkalmazásokban
- Rugalmasság kiépítése az identitás- és hozzáférés-kezelési infrastruktúrában
- Rugalmasság kiépítése az ügyfélidentitásban és a hozzáférés-kezelésben az Azure AD B2C-vel