Megosztás a következőn keresztül:


Megosztott eszköz mód Android-eszközökhöz

Az előtérbeli munkavállalók, például a kereskedelmi alkalmazottak, a hajózószemélyzet tagjai és helyszíni szolgáltatás dolgozók gyakran használnak megosztott mobileszközt a munkájuk elvégzéséhez. Ezek a megosztott eszközök biztonsági kockázatot jelenthetnek, ha a felhasználók szándékosan vagy szándékosan megosztják a jelszavaikat vagy a PIN-jüket, hogy hozzáférjenek a megosztott eszközön lévő ügyfél- és üzleti adatokhoz.

A megosztott eszköz mód lehetővé teszi egy Android 8.0-s vagy újabb eszköz konfigurálását, hogy az alkalmazottak biztonságosan megoszthatják az eszközt. Az alkalmazottak egyszer jelentkezhetnek be, és egyszeri bejelentkezést (SSO) kaphatnak a funkciót támogató összes alkalmazáshoz, így gyorsabban férhetnek hozzá az információkhoz. Amikor az alkalmazottak kijelentkeznek a műszak vagy a feladat elvégzése után, a rendszer automatikusan kijelentkezik az eszközről és az összes támogatott alkalmazásból, így az eszköz készen áll a következő felhasználóra.

A Megosztott eszköz mód funkció előnyeinek kihasználásához az alkalmazásfejlesztők és a felhőeszköz-rendszergazdák együttműködnek:

  1. Az eszközgazdák előkészítik az eszközt a manuális megosztásra, vagy egy mobileszköz-kezelési (MDM-) szolgáltató, például a Microsoft Intune használatával. Az előnyben részesített lehetőség az MDM használata, mivel az érintés nélküli üzembe helyezéssel lehetővé teszi az eszköz nagy léptékű, megosztott eszköz módban történő beállítását. Az MDM leküldi a Microsoft Authenticator alkalmazást az eszközökre, és egy felügyelt konfigurációs frissítésen keresztül bekapcsolja az egyes eszközökhöz tartozó "Megosztott módot". Ez a megosztott mód beállítás módosítja az eszközön támogatott alkalmazások viselkedését. Ez az MDM-szolgáltatótól származó konfiguráció beállítja az eszköz megosztott eszközmódját, és aktiválja a megosztott eszköz regisztrációját az Authenticator alkalmazással.

  2. Az alkalmazásfejlesztők egy egyfiókos alkalmazást írnak (a többfiókos alkalmazások nem támogatottak megosztott eszköz módban) a következő forgatókönyv kezeléséhez:

    • Felhasználói eszközre való bejelentkezés bármely támogatott alkalmazáson keresztül
    • Felhasználó eszközszintű kijelentkeztetése bármely támogatott alkalmazáson keresztül
    • Az eszköz állapotának lekérdezése annak megállapításához, hogy az alkalmazás megosztott eszköz módban lévő eszközön van-e
    • A felhasználó eszközállapotának lekérdezése az alkalmazás legutóbbi használat óta bekövetkezett változásainak meghatározásához

    A megosztott eszköz mód támogatása az alkalmazás funkciófrissítésének minősül, és segíthet növelni annak bevezetését olyan környezetekben, ahol ugyanazt az eszközt több felhasználó használja.

    Fontos

    Az Android megosztott eszközmódját támogató Microsoft-alkalmazások nem igényelnek módosításokat, és csak telepíteni kell az eszközön a megosztott eszköz mód előnyeinek eléréséhez.

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

Ha úgy szeretné konfigurálni androidos eszközét, hogy támogassa a megosztott eszköz módot, az Android OS 8.0-s vagy újabb verzióját kell futtatnia. Az eszközt a gyári alaphelyzetbe állítással is törölni kell, vagy az összes Microsoft- és más megosztott eszközmód-kompatibilis alkalmazást el kell távolítani és újra kell telepíteni.

A Microsoft Intune támogatja a Microsoft Entra megosztott eszköz módban lévő eszközök érintésmentes kiépítését, ami azt jelenti, hogy az eszköz beállítható és regisztrálható az Intune-ban az előtérbeli feldolgozó minimális interakciójával. Ha az eszközt megosztott eszköz módban szeretné beállítani a Microsoft Intune MDM-ként való használatakor, olvassa el a Microsoft Entra megosztott eszköz módú eszközök regisztrációjának beállítása című témakört.

Android-alkalmazás módosítása a megosztott eszköz mód támogatásához

A felhasználók öntől függenek, hogy adataik ne szivárogjanak ki egy másik felhasználó számára. A következő szakaszok hasznos jeleket nyújtanak az alkalmazás számára, hogy változás történt, és kezelni kell. Önnek kell ellenőriznie a felhasználó állapotát az eszközön minden alkalommal, amikor az alkalmazást használja, majd törli az előző felhasználó adatait. Ebbe beletartozik az is, ha a rendszer a háttérből tölti be a többfeladatos feladatokat. Felhasználói módosítás esetén gondoskodnia kell arról, hogy az előző felhasználó adatai is törlődjenek, és hogy az alkalmazásban megjelenített gyorsítótárazott adatok törlődjenek. Azt javasoljuk, hogy a megosztott eszköz mód támogatása érdekében az alkalmazás frissítése után a vállalatával végezze el a biztonsági felülvizsgálatot.

A Microsoft Authentication Library (MSAL) SDK hozzáadása az alkalmazás függőségeihez

Adja hozzá az MSAL-kódtárat függőségként a build.gradle fájlban, a következőképpen:

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

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

A Microsoft Authentication Library (MSAL) SDK használatával írt alkalmazások egyetlen vagy több fiókot kezelhetnek. Részletekért lásd az egyfiókos vagy a többfiókos módot. A megosztott eszközmódú alkalmazások csak egyfiókos módban működnek.

Ha nem szeretné támogatni a többfiókos módot, állítsa be "account_mode" "SINGLE" az msal konfigurációs fájlba. 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 konfigurációs fájlra:

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

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 .

Az egy- és a többfiókos fiókok támogatása

Az alkalmazás felépíthető úgy, hogy a személyes eszközökön és a megosztott eszközökön is fusson. Ha az alkalmazás jelenleg több fiókot támogat, és támogatni szeretné a megosztott eszköz módot, adjon hozzá támogatást az egyfiókos módhoz.

Előfordulhat, hogy azt is szeretné, hogy az alkalmazás a futó eszköz típusától függően változtassa meg a működését. Egyfiókos módban való futtatás időpontjának meghatározására használható ISingleAccountPublicClientApplication.isSharedDevice() .

Az alkalmazás által használt eszköz típusát két különböző interfész jelöli. Amikor alkalmazáspéldányt kér az MSAL alkalmazás-előállítójától, a rendszer automatikusan megadja a megfelelő alkalmazásobjektumot.

Az alábbi objektummodell bemutatja, hogy milyen típusú objektumot kaphat, és mit jelent a megosztott eszköz környezetében:

nyilvános ügyfélalkalmazás öröklési modellje

Az objektum lekérésekor gépelés-ellenőrzést kell végeznie, és a megfelelő felületre kell leadnia.PublicClientApplication A következő kód több fiókmódot vagy egyfiókos módot keres, és megfelelően veti be az alkalmazásobjektumot:

private IPublicClientApplication mApplication;

        // Running in personal-device mode?
        if (mApplication instanceOf IMultipleAccountPublicClientApplication) {
          IMultipleAccountPublicClientApplication multipleAccountApplication = (IMultipleAccountPublicClientApplication) mApplication;
          ...
        // Running in shared-device mode?
        } else if (mApplication instanceOf ISingleAccountPublicClientApplication) {
           ISingleAccountPublicClientApplication singleAccountApplication = (ISingleAccountPublicClientApplication) mApplication;
            ...
        }

Az alábbi különbségek attól függenek, hogy az alkalmazás megosztott vagy személyes eszközön fut-e:

Megosztott módú eszköz Személyes eszköz
Számlák Egyetlen fiók Több fiók
Bejelentkezés Globális Globális
Kijelentkezés Globális Minden alkalmazás szabályozhatja, hogy a kijelentkezés helyi-e az alkalmazásban.
Támogatott fióktípusok Csak munkahelyi fiókok Támogatott személyes és munkahelyi fiókok

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;

PublicClientApplication.create(
    this.getApplicationCOntext(),
    R.raw.auth_config_single_account,
    new PublicClientApplication.ApplicationCreatedListener() {

        @Override
        public void onCreated(IPublicClientApplication application){
            mSingleAccountApp = (ISingleAccountPublicClientApplication)application;
        }

        @Override
        public void onError(MsalException exception){
            /*Fail to initialize PublicClientApplication */
        }
    });

Megosztott eszköz mód észlelése

A megosztott eszköz mód észlelése fontos az alkalmazás számára. Sok alkalmazás felhasználói élményének (UX) megváltoztatására van szükség, amikor az alkalmazást megosztott eszközön használják. Előfordulhat például, hogy az alkalmazás rendelkezik egy "Regisztráció" funkcióval, amely nem megfelelő az előtérbeli feldolgozók számára, mert valószínűleg már rendelkezik fiókkal. Ha megosztott eszköz módban van, további biztonságot is érdemes hozzáadni az alkalmazás adatainak kezeléséhez.

isSharedDevice Az API IPublicClientApplication használatával állapítsa meg, hogy egy alkalmazás megosztott eszköz módban fut-e egy eszközön.

Az alábbi kódrészletek példákat mutatnak az isSharedDevice API használatára.

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

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

A megosztott eszköz mód támogatásának másik fontos része a felhasználó állapotának meghatározása az eszközön, valamint az alkalmazásadatok törlése, ha a felhasználó megváltozott, vagy ha egyáltalán nincs felhasználó az eszközön. Önnek kell gondoskodnia arról, hogy az adatok ne szivárogjanak ki egy másik felhasználó számára.

Az API használatával getCurrentAccountAsync lekérdezheti az eszközön jelenleg bejelentkezett fiókot.

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;
        final AcquireTokenSilentParameters silentParameters = new AcquireTokenSilentParameters.Builder()
                        .fromAuthority(signedInUser.getAuthority())
                        .forAccount(signedInUser)
                        .withScopes(Arrays.asList(getScopes()))
                        .withCallback(getAuthSilentCallback())
                        .build();
        mSingleAccountApp.acquireTokenSilentAsync(silentParameters);
      }
    }
    @Override
    public void onAccountChanged(@Nullable IAccount priorAccount, @Nullable Iaccount currentAccount)
    {
      if (currentAccount == null)
      {
        //Perform a cleanup task as the signed-in account changed.
        cleaUp();
      }
    }
    @Override
    public void onError(@NonNull Exception exception)
    {
        //getCurrentAccountAsync failed
    }
  }
}

Felhasználó globális bejelentkezése

Ha egy eszköz megosztott eszközként van konfigurálva, az alkalmazás meghívhatja az signIn API-t a fiókba való bejelentkezéshez. A fiók globálisan elérhető lesz az eszközön lévő összes jogosult alkalmazás számára, miután az első alkalmazás bejelentkezett a fiókba.

final SignInParameters signInParameters = ... /* create SignInParameters object */
mSingleAccountApp.signIn(signInParameters);

Felhasználó globális kijelentkeztetése

Az alábbi kód 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. Ez azonban nem törli az adatokat az alkalmazásból. Törölnie kell az adatokat az alkalmazásból, és törölnie kell minden olyan gyorsítótárazott adatot, amit az alkalmazás megjeleníthet a felhasználó számára.

mSingleAccountApp.signOut(new ISingleAccountPublicClientApplication.SignOutCallback() {
    @Override
    public void onSignOut() {
        // clear data from your application
    }

    @Override
    public void onError(@NonNull MsalException exception) {
        // signout failed, show error
    }
});

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);
}

Megosztott eszköz módot támogató Microsoft-alkalmazások

Ezek a Microsoft-alkalmazások támogatják a Microsoft Entra megosztott eszköz üzemmódot:

Megosztott eszköz módot támogató külső MDM-k

Ezek a külső mobile Eszközkezelés (MDM) szolgáltatók támogatják a Microsoft Entra megosztott eszköz módot:

Megosztott eszköz kijelentkezése és az alkalmazás teljes életciklusa

Amikor egy felhasználó kijelentkezik, lépéseket kell tennie a felhasználó adatainak és adatainak védelme érdekében. Ha például egy orvosi rekordokat tartalmazó alkalmazást hoz létre, győződjön meg arról, hogy amikor a felhasználó kijelentkezik, a korábban megjelenített betegrekordok törlődnek. Az alkalmazásnak fel kell készülnie az adatvédelemre, és minden alkalommal ellenőriznie kell, amikor az előtérbe kerül.

Ha az alkalmazás MSAL használatával kijelentkezteti a felhasználót egy megosztott módban lévő eszközön futó alkalmazásban, a bejelentkezett fiók és a gyorsítótárazott jogkivonatok mind az alkalmazásból, mind az eszközről törlődnek.

Az alábbi ábra az alkalmazás teljes életciklusát és az alkalmazás futtatása során előforduló gyakori eseményeket mutatja be. A diagram a tevékenység indításának, a fiók bejelentkezésének és kijelentkezésének időpontjáról, valamint az olyan eseményekről szól, mint a szüneteltetés, a folytatás és a tevékenység leállítása.

Megosztott eszközalkalmazás életciklusa

Következő lépések

Állítson be egy Android-eszközt, amely megosztott eszköz módban futtatja az alkalmazásokat, és teszteli az alkalmazást.

Megosztott eszköz mód Android-eszközökhöz