Microsoft hitelesítési kódtár Androidhoz

Az Android Microsoft Authentication Library (MSAL) egy olyan kódtár, amely lehetővé teszi az Android-alkalmazások számára, hogy hitelesítsék a felhasználókat Microsoft Identitásplatform (korábban Azure Active Directory) és OAuth2 és OpenID Connect protokollok használatával hozzáférjenek a védett webes API-khoz. Az MSAL Android lehetővé teszi a fejlesztők számára, hogy biztonsági tokeneket szerezzenek be a Microsoft Identitásplatformról a felhasználók hitelesítéséhez és a biztonságos webes API-khoz való hozzáféréshez Android-alapú alkalmazásaik számára.

Az MSAL Android több hitelesítési forgatókönyvet is támogat, például az egyszeri bejelentkezést (SSO), a feltételes hozzáférést és a közvetítőalapú hitelesítést. Lehetővé teszi, hogy egyszerűen megcélozzon több identitást, például Microsoft Entra ID (munkahelyi és iskolai fiókok), Microsoft-fiókokat (Outlook.com, hotmail.com és még sok más), vagy Azure AD B2C-t (közösségi és helyi fiókokat).

Az itt található útmutató az MSAL Androidhoz kapcsolódó általános funkciók dokumentálására szolgál. Ha további segítségre van szüksége a Microsoft Entra ID, Microsoft Fiókok vagy Azure AD B2C használatában, tekintse meg a Microsoft Identitásplatform dokumentumokat. Ha további információt szeretne megtudni a Microsoft Graph API-ról, tekintse meg a Microsoft Graph dokumentumokat.

Natív hitelesítés támogatása az MSAL-ben

Az MSAL Android emellett lehetővé teszi egy natív hitelesítési felület implementálását a mobilalkalmazások végpontok közötti testreszabható folyamataival. Natív hitelesítéssel a felhasználók az alkalmazás elhagyása nélkül végigvezetik a gazdag, natív, mobilalapú regisztráción és bejelentkezési folyamaton. A natív hitelesítési funkció csak külső azonosítójú mobilalkalmazásokhoz érhető el az ügyfelek számára.

Migrálás Azure Active Directory hitelesítési kódtárból (ADAL)

Az Android Azure Active Directory Authentication Library (ADAL) 2023 júniusában elavult. Ha Ön vagy szervezete az Androidhoz készült Azure Active Directory Hitelesítési kódtárat (ADAL) használja, migrálnia kell az MSAL Androidra, hogy ne veszélyezhesse az alkalmazás biztonságát. Az Androidhoz készült Microsoft Authentication Library (MSAL) az a támogatott kódtár, amely hitelesítéshez és tokenek lekérésére használható.

Az MSAL Android használatának első lépései

Az MSAL Android alkalmazásbeli használatához a következőkre van szükség:

Mivel az MSAL Android a böngésző által delegált és natív hitelesítési szolgáltatásokat is támogatja, kövesse az alábbi oktatóanyagok lépéseit a forgatókönyv alapján.

Requirements

  • Min SDK 16-os vagy újabb verzió
  • Target SDK Version 33+

1. lépés: Függőség deklarálása az MSAL-en

Add hozzá az alkalmazásod build.gradle fájljához:

dependencies {
    implementation 'com.microsoft.identity.client:msal:4.9.+'
}

Adja hozzá a következő sorokat is az adattárak szakaszához a gradle szkriptben:

maven { 
    url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1' 
}

2. lépés: Az MSAL-konfigurációs fájl létrehozása

Böngésző által delegált hitelesítés:

Hozza létre a konfigurációs fájlt "nyers" erőforrásként a projektben. A PublicClientApplication példány létrehozásakor a létrehozott erőforrás-azonosító használatával hivatkozzon rá. Ha első alkalommal regisztrálja az alkalmazást a Microsoft Entra felügyeleti központ, a részletes MSAL Android-konfigurációs fájlt is megkapja

{
  "client_id" : "<YOUR_CLIENT_ID>",
  "redirect_uri" : "msauth://<YOUR_PACKAGE_NAME>/<YOUR_BASE64_URL_ENCODED_PACKAGE_SIGNATURE>",
  "broker_redirect_uri_registered": true,
}

A redirect_uri fájlban a <YOUR_PACKAGE_NAME> a context.getPackageName() metódus által visszaadott csomagnévre hivatkozik. Ez a csomagnév megegyezik a application_id fájlban definiált build.gradle névvel.

A fenti értékek a minimálisan szükséges konfigurációk. Az MSAL azokat az alapértelmezett értékeket használja, amelyek az összes többi beállítás kódtárával együtt vannak elküldve. A kódtár alapértelmezett beállításainak megismeréséhez tekintse meg az MSAL Android konfigurációs fájl dokumentációját .

Natív hitelesítés:

  1. Kattintson a jobb gombbal a res elemre, és válassza az Új > könyvtár lehetőséget. Adja meg a nyers nevet az új címtárnévként, és válassza az OK gombot.
  2. Ebben az új mappában (az app > src > main > res > raw) hozzon létre egy új JSON-fájlt auth_config_native_auth.json néven, és illessze be a következő sablon MSAL-konfigurációját:
{ 
  "client_id": "Enter_the_Application_Id_Here", 
  "authorities": [ 
    { 
      "type": "CIAM", 
      "authority_url": "https://Enter_the_Tenant_Subdomain_Here.ciamlogin.com/Enter_the_Tenant_Subdomain_Here.onmicrosoft.com/" 
    } 
  ], 
  "challenge_types": ["oob"], 
  "logging": { 
    "pii_enabled": false, 
    "log_level": "INFO", 
    "logcat_enabled": true 
  } 
 }

3. lépés: A böngésző által delegált hitelesítés AndroidManifest.xml konfigurálása

  1. Kérje a következő engedélyeket az Android-manifesztumban
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  1. Szándékszűrő konfigurálása az Android-jegyzékben az átirányítási URI használatával

Ha a konfiguráción keresztül megadott átirányítási URI-nak megfelelő szándékszűrőt nem vesz fel, az interaktív jogkivonat-kérés sikertelen lesz.

    <!--Intent filter to capture authorization code response from the default browser on the device calling back to our app after interactive sign in -->
    <activity
        android:name="com.microsoft.identity.client.BrowserTabActivity">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data
                android:scheme="msauth"
                android:host="<YOUR_PACKAGE_NAME>"
                android:path="/<YOUR_BASE64_ENCODED_PACKAGE_SIGNATURE>" />
        </intent-filter>
    </activity>

A gyakori átirányítási URI-val kapcsolatos problémákról további információkért olvassa el az MSAL Android GYIK-ot.

ProGuard

Az MSAL a futtatókörnyezetben tárolt fájlokban .class tárolt tükröződési és általános típusinformációkat használja a különböző adatmegőrzési és szerializációs funkciók támogatásához. A kódminimalizálás és az obfuszkáció könyvtári támogatása korlátozott. Ezzel a kódtárral egy alapértelmezett konfigurációt küld a rendszer; ha bármilyen problémát tapasztal, küldjön egy hibát .

Recommendation

Az MSAL egy biztonsági kódtár. Ez szabályozza, hogy a felhasználók hogyan jelentkezzenek be és férnek hozzá a szolgáltatásokhoz. Azt javasoljuk, hogy mindig a legújabb verziójú kódtárat használja az alkalmazásban, amikor csak tud. Szemantikai verziószámozást használunk, hogy ön szabályozhassa az alkalmazás frissítésének kockázatát. Ha például mindig a legfrissebb alverziót tölti le (pl. x.y.x), az biztosítja, hogy megkapja a legújabb biztonsági és funkcióbeli fejlesztéseket, azzal a garanciával, hogy az API felülete nem változott. Az GitHub Kiadások lapján mindig láthatja a legújabb verziót és kibocsátási megjegyzéseket.