Megosztás:


Oktatóanyag: Android-alkalmazás beállítása a felhasználók microsoftos identitásplatform használatával történő bejelentkezéséhez

A következőkre vonatkozik: Zöld kör fehér pipa jellel a munkaerő bérlőkre vonatkozó tartalom jelölésére. A munkaerő bérlők zöld kör fehér pipa jellel a külső bérlőkre vonatkozó tartalom jelölésére. Külső bérlők (további információ)

Ebben az oktatóanyagban az Androidhoz készült Microsoft Authentication Library (MSAL) androidos alkalmazáshoz való hozzáadását mutatja be. Az MSAL lehetővé teszi, hogy az Android-alkalmazások hitelesítsék a felhasználókat a Microsoft Entra használatával.

Ebben az oktatóanyagban meg fogja;

  • MSAL-függőség hozzáadása
  • Konfiguráció hozzáadása
  • MSAL SDK-példány létrehozása

Előfeltételek

  • Munkaerőt igénybe vevő. Használhatja az alapértelmezett címtárat, vagy beállíthat egy új bérlőt.
  • Regisztráljon egy új alkalmazást a Microsoft Entra felügyeleti központban, amely csak ebben a szervezeti címtárban lévő fiókokhoz van konfigurálva. További részletekért tekintse meg az alkalmazás regisztrálását . Jegyezze fel a következő értékeket az alkalmazás áttekintési oldaláról későbbi használatra:
    • Alkalmazás (ügyfél) azonosítója
    • Címtár (ügyfél) azonosítója
  • Android-projekt. Ha nem rendelkezik Android-projektel, hozza létre.

Átirányítási URI hozzáadása

Az alkalmazásregisztrációban meghatározott átirányítási URI-kat kell konfigurálnia a letöltött kódmintával való kompatibilitás biztosításához. Ezek az URI-k elengedhetetlenek ahhoz, hogy a sikeres bejelentkezés után a felhasználók visszakerüljenek az alkalmazásba.

  1. A kezelés alatt válassza az Hitelesítés>Platform hozzáadása>Android lehetőséget.

  2. Adja meg a projekt csomagnevét a fent letöltött mintatípus alapján.

    • Java-minta – com.azuresamples.msalandroidapp
    • Kotlin-minta: com.azuresamples.msalandroidkotlinapp
  3. Az Android-alkalmazás konfigurálása panel Aláírás kivonat szakaszában válassza a Fejlesztési aláírás kivonat létrehozása lehetőséget, és másolja a KeyTool parancsot a parancssorba.

    • KeyTool.exe a Java Development Kit (JDK) részeként van telepítve. A KeyTool parancs végrehajtásához telepítenie kell az OpenSSL eszközt is. További információkért tekintse meg az Android dokumentációját a kulcsok generálására vonatkozóan.
  4. Adja meg a KeyTool által létrehozott aláíráskivonatot .

  5. Válassza a Konfigurálás lehetőséget, és mentse az Android konfigurációs panelen megjelenő MSAL-konfigurációt, hogy később beírhassa azt az alkalmazás konfigurálásakor.

  6. Válassza a Kész lehetőséget.

MSAL-függőségek és kapcsolódó kódtárak hozzáadása a projekthez

Ha MSAL-függőségeket szeretne hozzáadni androidos projektjéhez, kövesse az alábbi lépéseket:

  1. Nyissa meg a projektet az Android Studióban, vagy hozzon létre egy új projektet.

  2. Nyissa meg az alkalmazásának build.gradle-ját, és adja hozzá a következő függőségeket:

    allprojects {
    repositories {
        //Needed for com.microsoft.device.display:display-mask library
        maven {
            url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1'
            name 'Duo-SDK-Feed'
        }
        mavenCentral()
        google()
        }
    }
    //...
    
    dependencies { 
        implementation 'com.microsoft.identity.client:msal:5.+'
        //...
    }
    

    A build.gradle konfigurációban az adattárak a projektfüggőségekhez vannak definiálva. Tartalmaz egy Maven-adattár URL-címet az Azure DevOps com.microsoft.device.display:display-mask könyvtárához. Emellett a Maven Central és a Google adattárait is használja. A függőségek szakasz az MSAL 5-ös verziójának és potenciálisan más függőségeknek a megvalósítását határozza meg.

  3. Az Android Studióban válassza a Fájl>Projekt szinkronizálása a Gradle-fájlokkallehetőséget.

Konfiguráció hozzáadása

A szükséges bérlőazonosítókat, például az alkalmazás (ügyfél) azonosítóját egy JSON-konfigurációs beállítással adhatja át az MSAL SDK-nak.

A következő lépésekkel hozhat létre konfigurációs fájlt:

  1. Az Android Studio projektpaneljében navigáljon a app\src\main\reskönyvtárba.

  2. Kattintson jobb gombbal res, és válassza a Új>Könyvtárlehetőséget. Írja be raw új könyvtárnévként, és válassza OKlehetőséget.

  3. alkalmazásban>src>main>res>raw, hozzon létre egy új JSON-fájlt a auth_config_single_account.json néven, és illessze be a korábban mentett MSAL-konfigurációt.

    Az átirányítási URI alatt illessze be a következőt:

      "account_mode" : "SINGLE",
    

    A konfigurációs fájlnak a következő példához kell hasonlítania:

    {
      "client_id": "00001111-aaaa-bbbb-3333-cccc4444",
      "authorization_user_agent": "WEBVIEW",
      "redirect_uri": "msauth://com.azuresamples.msalandroidapp/00001111%cccc4444%3D",
      "broker_redirect_uri_registered": true,
      "account_mode": "SINGLE",
      "authorities": [
        {
          "type": "AAD",
          "audience": {
            "type": "AzureADandPersonalMicrosoftAccount",
            "tenant_id": "common"
          }
        }
      ]
    }
    

    Mivel ez az oktatóanyag csak azt mutatja be, hogyan konfigurálhat egy alkalmazást egyfiókos módban, tekintse meg egy vagy több fiókos módú és az alkalmazás konfigurálásával kapcsolatos további információt

  4. A "WEBVIEW" használatát javasoljuk. Ha a "authorization_user_agent" böngészőként szeretné konfigurálni az alkalmazásban, az alábbi frissítéseket kell elvégeznie. a) Frissítse a auth_config_single_account.json-t az "authorization_user_agent": "Browser" értékkel. b) AndroidManifest.xmlfrissítése. Az alkalmazásban lépjen a alkalmazáshoz>src>main>AndroidManifest.xml, és adja hozzá a BrowserTabActivity tevékenységet az <application> elem gyermekeként. Ez a bejegyzés lehetővé teszi, hogy a Microsoft Entra ID visszahívást kezdeményez az ön alkalmazásához a hitelesítés befejezése után.

    <!--Intent filter to capture System Browser or Authenticator calling back to our app after sign-in-->
    <activity
        android:name="com.microsoft.identity.client.BrowserTabActivity"
        android:exported="true">
        <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="Enter_the_Package_Name"
                android:path="/Enter_the_Signature_Hash" />
        </intent-filter>
    </activity>
    
    • Használja a csomagnév-t a android:host=. érték helyettesítésére. Úgy kell kinéznie, mint a com.azuresamples.msalandroidapp.
    • Az Aláíráskivonat használatával cserélje le android:path= értékét. Győződjön meg arról, hogy az aláírási kivonat elején egy előtagként szereplő / található. Úgy kell kinéznie, mint a /aB1cD2eF3gH4+iJ5kL6-mN7oP8q=.

    Ezeket az értékeket az alkalmazásregisztráció Hitelesítés paneljén is megtalálhatja.

MSAL SDK-példány létrehozása

Az MSAL SDK-példány inicializálásához használja a következő kódot:

PublicClientApplication.createSingleAccountPublicClientApplication(
    getContext(),
    R.raw.auth_config_single_account,
    new IPublicClientApplication.ISingleAccountApplicationCreatedListener() {
        @Override
        public void onCreated(ISingleAccountPublicClientApplication application) {
            // Initialize the single account application instance
            mSingleAccountApp = application;
            loadAccount();
        }

        @Override
        public void onError(MsalException exception) {
            // Handle any errors that occur during initialization
            displayError(exception);
        }
    }
);

Ez a kód egyetlen nyilvános ügyfélalkalmazást hoz létre a auth_config_single_account.jsonkonfigurációs fájl használatával. Az alkalmazás sikeres létrehozása után hozzárendeli a példányt mSingleAccountApp, és meghívja a loadAccount() metódust. Ha a létrehozás során hiba történik, a displayError(exception) metódus meghívásával kezeli a hibát.

Győződjön meg arról, hogy tartalmazza az importálási utasításokat. Az Android Studiónak automatikusan tartalmaznia kell az importálási utasításokat.

Következő lépések