Oktatóanyag: Megosztott eszköz mód használata Android-alkalmazásban

Ebben az oktatóanyagban az Android-fejlesztők és a Microsoft Entra bérlői rendszergazdái megismerkednek az Android-alkalmazások megosztott eszköz módjának engedélyezéséhez szükséges kóddal, Authenticator alkalmazással és bérlői beállításokkal.

Ebben az oktatóanyagban:

  • Kódminta letöltése
  • Megosztott eszköz mód engedélyezése és észlelése
  • Egy vagy több fiók mód észlelése
  • Felhasználói kapcsoló észlelése, globális bejelentkezés és kijelentkezés engedélyezése
  • Bérlő beállítása és az alkalmazás regisztrálása
  • Android-eszköz beállítása megosztott eszköz módban
  • A mintaalkalmazás futtatása

Előfeltételek

Fejlesztői útmutató

Az oktatóanyag ezen szakasza fejlesztői útmutatást nyújt a megosztott eszköz mód androidos alkalmazásokban való implementálásához a Microsoft Authentication Library (MSAL) használatával. Az MSAL Android-oktatóanyagából megtudhatja, hogyan integrálhatja az MSAL-t az Android-alkalmazással, hogyan jelentkezhet be egy felhasználóba, hívhatja meg a Microsoft Graphot, és kijelentkeztethet egy felhasználót.

A minta letöltése

Klónozza a mintaalkalmazást a GitHubról. A minta képes egy- vagy többfiókos módban dolgozni.

Az MSAL SDK hozzáadása a helyi Maven-adattárhoz

Ha nem a mintaalkalmazást használja, adja hozzá az MSAL-kódtárat függőségként a build.gradle fájlhoz, például:

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

Az alkalmazás konfigurálása megosztott eszköz mód használatára

A konfigurációs fájl beállításával kapcsolatos további információkért tekintse meg a konfigurációs dokumentációt .

Állítsa be "shared_device_mode_supported" az true MSAL konfigurációs fájlba.

Lehet, hogy nem tervezi támogatni a többfiókos módot. Ez akkor fordulhat elő, ha nem használ megosztott eszközt, és a felhasználó egyszerre több fiókkal is bejelentkezhet az alkalmazásba. Ha igen, állítsa a következőre "account_mode""SINGLE": . Ez garantálja, hogy az alkalmazás mindig megkapja ISingleAccountPublicClientApplicationaz alkalmazást, és jelentősen leegyszerűsíti az MSAL-integrációt. Az alapértelmezett érték "account_mode" az "MULTIPLE", ezért fontos, hogy ezt az értéket módosítsa a konfigurációs fájlban, ha üzemmódot használ "single account" .

Íme egy példa a mintaalkalmazás>>res>raw könyvtárában található auth_config.json fájlra:

{
  "client_id": "Client ID after app registration at https://aka.ms/MobileAppReg",
  "authorization_user_agent": "DEFAULT",
  "redirect_uri": "Redirect URI after app registration at https://aka.ms/MobileAppReg",
  "account_mode": "SINGLE",
  "broker_redirect_uri_registered": true,
  "shared_device_mode_supported": true,
  "authorities": [
    {
      "type": "AAD",
      "audience": {
        "type": "AzureADandPersonalMicrosoftAccount",
        "tenant_id": "common"
      }
    }
  ]
}

Megosztott eszköz mód észlelése

A megosztott eszköz mód lehetővé teszi, hogy az Android-eszközöket úgy konfigurálja, hogy több alkalmazott is megossza, miközben Microsoft Identity-alapú felügyeletet biztosít az eszköznek. Az alkalmazottak gyorsan bejelentkezhetnek az eszközeikre, és gyorsan hozzáférhetnek az ügyféladatokhoz. Ha végzett a műszakjával vagy a feladatával, egyetlen kattintással kijelentkeztetheti a megosztott eszközön lévő összes alkalmazást, és az eszköz azonnal készen áll a következő alkalmazott használatára.

Annak megállapítására használható isSharedDevice() , hogy egy alkalmazás megosztott eszköz módban lévő eszközön fut-e. Az alkalmazás ezt a jelzőt használhatja annak meghatározására, hogy ennek megfelelően kell-e módosítania az UX-t.

Íme egy kódrészlet, amely bemutatja, hogyan használható isSharedDevice(). A mintaalkalmazás osztályából származik SingleAccountModeFragment :

deviceModeTextView.setText(mSingleAccountApp.isSharedDevice() ? "Shared" : "Non-Shared");

A PublicClientApplication objektum inicializálása

Ha az MSAL konfigurációs fájlban van beállítva "account_mode":"SINGLE" , biztonságosan leadhatja a visszaadott alkalmazásobjektumot ISingleAccountPublicCLientApplication.

private ISingleAccountPublicClientApplication mSingleAccountApp;

/*Configure your sample app and save state for this activity*/
PublicClientApplication.create(this.getApplicationCOntext(),
  R.raw.auth_config,
  new PublicClientApplication.ApplicationCreatedListener(){
  @Override
  public void onCreated(IPublicClientApplication application){
  mSingleAccountApp = (ISingleAccountPublicClientApplication)application;
  loadAccount();
  }
  @Override
  public void onError(MsalException exception){
  /*Fail to initialize PublicClientApplication */
  }
});

Egy vagy több fiók mód észlelése

Ha olyan alkalmazást ír, amelyet csak az előtérbeli feldolgozók használnak egy megosztott eszközön, javasoljuk, hogy csak az egyfiókos mód támogatásához írja meg az alkalmazást. Ez magában foglalja a legtöbb feladatra összpontosító alkalmazást, például az orvosi nyilvántartási alkalmazásokat, a számlaalkalmazásokat és a legtöbb üzletági alkalmazást. Ez leegyszerűsíti a fejlesztést, mivel az SDK számos funkcióját nem kell kezelni.

Ha az alkalmazás több fiókot és megosztott eszköz módot is támogat, az alábbiak szerint típusellenőrzést kell végeznie, és a megfelelő felületre kell leadnia.

private IPublicClientApplication mApplication;

        if (mApplication instanceOf IMultipleAccountPublicClientApplication) {
          IMultipleAccountPublicClientApplication multipleAccountApplication = (IMultipleAccountPublicClientApplication) mApplication;
          ...
        } else if (mApplication instanceOf    ISingleAccountPublicClientApplication) {
           ISingleAccountPublicClientApplication singleAccountApplication = (ISingleAccountPublicClientApplication) mApplication;
            ...
        }

Kérje le a bejelentkezett felhasználót, és állapítsa meg, hogy egy felhasználó megváltozott-e az eszközön

A loadAccount metódus lekéri a bejelentkezett felhasználó fiókját. A onAccountChanged metódus meghatározza, hogy a bejelentkezett felhasználó megváltozott-e, és ha igen, törölje a következőt:

private void loadAccount()
{
  mSingleAccountApp.getCurrentAccountAsync(new ISingleAccountPublicClientApplication.CurrentAccountCallback())
  {
    @Override
    public void onAccountLoaded(@Nullable IAccount activeAccount)
    {
      if (activeAccount != null)
      {
        signedInUser = activeAccount;
        mSingleAccountApp.acquireTokenSilentAsync(SCOPES,"http://login.microsoftonline.com/common",getAuthSilentCallback());
      }
    }
    @Override
    public void onAccountChanged(@Nullable IAccount priorAccount, @Nullable Iaccount currentAccount)
    {
      if (currentAccount == null)
      {
        //Perform a cleanup task as the signed-in account changed.
        updateSingedOutUI();
      }
    }
    @Override
    public void onError(@NonNull Exception exception)
    {
    }
  }
}

Felhasználó globális bejelentkezése

A következő bejelentkezések egy felhasználónál az eszközön keresztül az MSAL-t használó más alkalmazásokba az Authenticator alkalmazással:

private void onSignInClicked()
{
  mSingleAccountApp.signIn(getActivity(), SCOPES, null, getAuthInteractiveCallback());
}

Felhasználó globális kijelentkeztetése

A következő eltávolítja a bejelentkezett fiókot, és törli a gyorsítótárazott jogkivonatokat nem csak az alkalmazásból, hanem a megosztott eszköz módban lévő eszközről is:

private void onSignOutClicked()
{
  mSingleAccountApp.signOut(new ISingleAccountPublicClientApplication.SignOutCallback()
  {
    @Override
    public void onSignOut()
    {
      updateSignedOutUI();
    }
    @Override
    public void onError(@NonNull MsalException exception)
    {
      /*failed to remove account with an exception*/
    }
  });
}

Közvetítés fogadása más alkalmazásokból kezdeményezett globális kijelentkezés észleléséhez

A fiókváltoztatás közvetítésének fogadásához regisztrálnia kell egy műsorszolgáltatót. Javasoljuk, hogy regisztrálja a műsorszolgáltatót a környezet által regisztrált fogadókon keresztül.

Amikor egy fiókmódosítási adás érkezik, azonnal kérje le a bejelentkezett felhasználót, és állapítsa meg, hogy megváltozott-e egy felhasználó az eszközön. Ha változás észlelhető, kezdeményezheti a korábban bejelentkezett fiók adatainak törlését. Javasoljuk, hogy megfelelően állítsa le a műveleteket, és végezze el az adatok törlését.

Az alábbi kódrészlet bemutatja, hogyan regisztrálhat szórásvevőt.

private static final String CURRENT_ACCOUNT_CHANGED_BROADCAST_IDENTIFIER = "com.microsoft.identity.client.sharedmode.CURRENT_ACCOUNT_CHANGED";
private BroadcastReceiver mAccountChangedBroadcastReceiver;
private void registerAccountChangeBroadcastReceiver(){
    mAccountChangedBroadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            //INVOKE YOUR PRIOR ACCOUNT CLEAN UP LOGIC HERE
        }
    };
    IntentFilter filter = new

    IntentFilter(CURRENT_ACCOUNT_CHANGED_BROADCAST_IDENTIFIER);
    this.registerReceiver(mAccountChangedBroadcastReceiver, filter);
}

Rendszergazdák kézikönyve

Az alábbi lépések az alkalmazás beállítását és az eszköz megosztott eszköz módba helyezését ismertetik.

Az alkalmazás regisztrálása

Először regisztrálja az alkalmazást a szervezeti bérlőn belül. Ezután adja meg ezeket az értékeket az auth_config.json fájlban, hogy az alkalmazás megfelelően fusson.

Ennek módjáról további információt az alkalmazás regisztrálása című témakörben talál.

Megjegyzés:

Az alkalmazás regisztrálásakor használja a bal oldalon található rövid útmutatót, majd válassza az Android lehetőséget. Ez egy olyan oldalra vezet, ahol a rendszer kérni fogja, hogy adja meg az alkalmazás csomagnevét és aláírási kivonatát . Ezek nagyon fontosak ahhoz, hogy az alkalmazáskonfiguráció működjön. Ezután megkapja az alkalmazáshoz használható konfigurációs objektumot, amelyet kivághat és beilleszthet a auth_config.json fájlba.

Configure your Android app page

Válassza a Módosítás kérése lehetőséget, majd adja meg a gyorsútmutató által kért értékeket. Ha ez megtörtént, létrehozzuk az összes szükséges konfigurációs fájlt.

Configure your project page

Bérlő beállítása

Tesztelési célokra állítsa be a következőket a bérlőben: legalább két alkalmazott, egy felhőalapú eszköz Rendszergazda istrator és egy globális Rendszergazda istrator. Állítsa be a Rendszergazda istrator felhőeszközt a szervezeti szerepkörök módosításával. A szervezeti szerepkörök eléréséhez válassza az Identitásszerepkörök>> Rendszergazdák>szerepkörök >>Rendszergazdák minden szerepkört, majd válassza a Felhőalapú eszköz Rendszergazda istrator lehetőséget. Adja hozzá azokat a felhasználókat, amelyek az eszközt megosztott módba helyezhetik.

Android-eszköz beállítása megosztott módban

Az Authenticator alkalmazás letöltése

Töltse le a Microsoft Authenticator alkalmazást a Google Play Áruházból. Ha már letöltötte az alkalmazást, győződjön meg arról, hogy az a legújabb verzió.

Hitelesítő alkalmazás beállításai > az eszköz regisztrálása a felhőben

Indítsa el az Authenticator alkalmazást, és lépjen a fő fiók lapjára. Amint megjelenik a Fiók hozzáadása lap, készen áll az eszköz megosztására.

Authenticator add account screen

Lépjen a Gépház panelre a jobb oldali menüsávon. Válassza az Eszközregisztráció lehetőséget a Munkahelyi és iskolai fiókok területen.

Authenticator settings screen

Amikor erre a gombra kattint, a rendszer kérni fogja, hogy engedélyezze az eszköz névjegyeihez való hozzáférést. Ennek oka az Android fiókintegrációja az eszközön. Válassza az Engedélyezés lehetőséget.

Authenticator allow access confirmation screen

A felhőeszköz Rendszergazda istratornak meg kell adnia a szervezeti e-mail-címét, vagy regisztrálnia kell megosztott eszközként. Ezután kattintson a regisztráció megosztott eszközként gombra, és adja meg a hitelesítő adatait.

Device registration screen in app

App screenshot showing Microsoft sign-in page

Az eszköz most már megosztott módban van.

App screen showing shared device mode enabled

Az eszközön történő bejelentkezések és kijelentkezések globálisak lesznek, ami azt jelenti, hogy minden olyan alkalmazásra vonatkoznak, amely integrálva van az eszköz MSAL és Microsoft Authenticator szolgáltatásával. Mostantól olyan alkalmazásokat helyezhet üzembe az eszközön, amelyek megosztott eszköz módú funkciókat használnak.

A megosztott eszköz megtekintése

Miután megosztott módban helyezte el az eszközt, a szervezet ismerté válik, és nyomon követi a szervezeti bérlőben. A megosztott eszközöket a Csatlakozás típusával tekintheti meg.

Screenshot that shows the all devices pane

A mintaalkalmazás futtatása

A mintaalkalmazás egy egyszerű alkalmazás, amely meghívja a szervezet Graph API-ját. Első futtatáskor a rendszer kérni fogja a hozzájárulást, mivel az alkalmazás új az alkalmazotti fiókjában.

Application configuration info screen

További lépések

További információ a Microsoft Authentication Library és a megosztott eszköz mód androidos eszközökön való használatával kapcsolatban: