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:
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.
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 ISingleAccountPublicClientApplication
az 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:
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:
- Microsoft Teams
- Microsoft Viva Engage (korábban Yammer)
- Kilátás
- Microsoft Power Apps
- Microsoft 365
- Microsoft Power BI Mobile
- Microsoft Edge
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.
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.