Režim sdíleného zařízení pro zařízení s Androidem
Pracovníci frontline, jako jsou maloobchodní spolupracovníci, členové letové posádky a služby u zákazníků pracovníci často používají ke své práci sdílené mobilní zařízení. Tato sdílená zařízení můžou představovat bezpečnostní rizika, pokud uživatelé sdílejí svá hesla nebo PIN kódy záměrně nebo ne, aby měli přístup k zákaznickým a obchodním datům na sdíleném zařízení.
Režim sdíleného zařízení umožňuje nakonfigurovat zařízení s Androidem 8.0 nebo vyšším tak, aby zaměstnanci mohli zařízení bezpečně sdílet. Zaměstnanci se můžou jednou přihlásit a získat jednotné přihlašování ke všem aplikacím, které tuto funkci podporují, a tím jim umožnit rychlejší přístup k informacím. Když se zaměstnanci po dokončení směny nebo úkolu odhlásí, automaticky se odhlásí ze zařízení a ze všech podporovaných aplikací, aby bylo zařízení připravené pro dalšího uživatele.
Pokud chcete využívat funkci režimu sdíleného zařízení, vývojáři aplikací a správci cloudových zařízení spolupracují:
Správci zařízení připraví zařízení na ruční sdílení nebo pomocí poskytovatele správy mobilních zařízení (MDM), jako je Microsoft Intune. Upřednostňovanou možností je použití MDM, protože umožňuje nastavení zařízení ve sdíleném režimu zařízení ve velkém měřítku prostřednictvím zřizování bez dotykového ovládání. MDM odešle aplikaci Microsoft Authenticator do zařízení a zapne pro každé zařízení sdílený režim prostřednictvím spravované aktualizace konfigurace do zařízení. Toto nastavení sdíleného režimu mění chování podporovaných aplikací na zařízení. Tato konfigurace od poskytovatele MDM nastaví režim sdíleného zařízení pro zařízení a aktivuje registraci sdíleného zařízení pomocí aplikace Authenticator.
Vývojáři aplikací píší aplikaci s jedním účtem (aplikace s více účty nejsou podporované v režimu sdíleného zařízení), aby zvládli následující scénář:
- Přihlášení uživatele přes libovolnou podporovanou aplikaci
- Odhlaste se ze zařízení uživatele prostřednictvím jakékoli podporované aplikace.
- Zadejte dotaz na stav zařízení a zjistěte, jestli je vaše aplikace v zařízení, které je v režimu sdíleného zařízení.
- Zadejte dotaz na stav zařízení uživatele a určete změny v aplikaci od posledního použití.
Podpora režimu sdíleného zařízení by měla být považována za upgrade funkcí pro vaši aplikaci a může pomoct zvýšit její přijetí v prostředích, kde se stejné zařízení používá mezi více uživateli.
Důležité
Aplikace Microsoftu, které podporují režim sdíleného zařízení v Androidu, nevyžadují žádné změny a stačí je na zařízení nainstalovat, abyste získali výhody, které jsou součástí režimu sdíleného zařízení.
Nastavení zařízení v režimu sdíleného zařízení
Pokud chcete nakonfigurovat zařízení s Androidem tak, aby podporovalo režim sdíleného zařízení, mělo by běžet na androidu OS 8.0 nebo novějším. Zařízení by také mělo být vymazáno obnovením továrního nastavení nebo všechny aplikace s povoleným režimem sdíleného zařízení a dalšími aplikacemi microsoftu a jejich opětovnou instalací.
Microsoft Intune podporuje zřizování zařízení v režimu sdíleného zařízení Microsoft Entra bez dotykového ovládání, což znamená, že zařízení je možné nastavit a zaregistrovat v Intune s minimální interakcí od pracovníka frontline. Pokud chcete nastavit zařízení v režimu sdíleného zařízení při použití Microsoft Intune jako MDM, přečtěte si téma Nastavení registrace pro zařízení v režimu sdíleného zařízení Microsoft Entra.
Úprava aplikace pro Android tak, aby podporovala režim sdíleného zařízení
Vaši uživatelé závisejí na vás, abyste zajistili, že jejich data nebudou unikla jinému uživateli. Následující části poskytují užitečné signály, které značí aplikaci, že došlo ke změně a měla by se zpracovat. Zodpovídáte za kontrolu stavu uživatele na zařízení při každém použití aplikace a následném vymazání dat předchozího uživatele. To zahrnuje, pokud se znovu načte z pozadí ve více úlohách. Při změně uživatele byste měli zajistit vymazání dat předchozího uživatele a odebrání všech dat uložených v mezipaměti ve vaší aplikaci. Důrazně doporučujeme, abyste vy a vaše společnost provedli proces kontroly zabezpečení po aktualizaci aplikace tak, aby podporoval režim sdíleného zařízení.
Přidání sady MICROSOFT Authentication Library (MSAL) SDK do závislostí vaší aplikace
Do souboru build.gradle přidejte knihovnu MSAL jako závislost, například takto:
dependencies{
implementation 'com.microsoft.identity.client.msal:5.+'
}
Konfigurace aplikace pro použití režimu sdíleného zařízení
Aplikace napsané pomocí sady MICROSOFT Authentication Library (MSAL) SDK můžou spravovat jeden nebo více účtů. Podrobnosti najdete v režimu jednoho účtu nebo režimu více účtů. Aplikace režimu sdíleného zařízení fungují jenom v režimu s jedním účtem.
Pokud neplánujete podporovat režim více účtů, nastavte "account_mode"
ho v "SINGLE"
konfiguračním souboru msal. To zaručuje, že se vaše aplikace bude vždy získávat ISingleAccountPublicClientApplication
a výrazně zjednodušuje integraci MSAL. Výchozí hodnota "account_mode"
je "MULTIPLE"
, takže je důležité změnit tuto hodnotu v konfiguračním souboru, pokud používáte "single account"
režim.
Tady je příklad konfiguračního souboru:
{
"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"
}
}
]
}
Další informace o nastavení konfiguračního souboru najdete v dokumentaci ke konfiguraci.
Podpora jednoho účtu i více účtů
Aplikaci můžete vytvořit tak, aby podporovala provoz na osobních zařízeních i sdílených zařízeních. Pokud vaše aplikace aktuálně podporuje více účtů a chcete podporovat režim sdíleného zařízení, přidejte podporu pro režim jednoho účtu.
Můžete také chtít, aby aplikace změnila své chování v závislosti na typu zařízení, na kterém běží. Slouží ISingleAccountPublicClientApplication.isSharedDevice()
k určení, kdy se má spustit v režimu s jedním účtem.
Existují dvě různá rozhraní, která představují typ zařízení, na které je vaše aplikace zapnutá. Když požádáte o instanci aplikace z objektu pro vytváření aplikací MSAL, zobrazí se automaticky správný objekt aplikace.
Následující objektový model znázorňuje typ objektu, který můžete obdržet a co to znamená v kontextu sdíleného zařízení:
Při získání PublicClientApplication
objektu musíte provést kontrolu typu a přetypovat na příslušné rozhraní. Následující kód zkontroluje režimy více účtů nebo režimy jednoho účtu a odpovídajícím způsobem přetypuje objekt aplikace:
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;
...
}
Následující rozdíly platí v závislosti na tom, jestli je vaše aplikace spuštěná na sdíleném nebo osobním zařízení:
Zařízení sdíleného režimu | Osobní zařízení | |
---|---|---|
Obchodní vztahy | Jeden účet | Více účtů |
Přihlášení | Globální | Globální |
Odhlaste se | Globální | Každá aplikace může řídit, jestli je odhlášení místní k aplikaci. |
Podporované typy účtů | Pouze pracovní účty | Podporované osobní a pracovní účty |
Inicializace objektu PublicClientApplication
Pokud jste nastavili "account_mode":"SINGLE"
v konfiguračním souboru MSAL, můžete vrácený objekt aplikace bezpečně přetypovat jako ISingleAccountPublicCLientApplication
objekt aplikace .
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 */
}
});
Detekce režimu sdíleného zařízení
Detekce režimu sdíleného zařízení je pro vaši aplikaci důležitá. Mnoho aplikací vyžaduje změnu uživatelského prostředí(UX), když se aplikace používá na sdíleném zařízení. Vaše aplikace může mít například funkci Registrace, která není vhodná pro pracovníka front-line, protože pravděpodobně už účet mají. Pokud je aplikace v režimu sdíleného zařízení, můžete také chtít přidat další zabezpečení pro zpracování dat.
isSharedDevice
Pomocí rozhraní API v rozhraní IPublicClientApplication
API určete, jestli je aplikace spuštěná na zařízení v režimu sdíleného zařízení.
Následující fragmenty kódu ukazují příklady použití isSharedDevice
rozhraní API.
deviceModeTextView.setText(mSingleAccountApp.isSharedDevice() ? "Shared" : "Non-Shared");
Získání přihlášeného uživatele a určení, jestli se uživatel na zařízení změnil
Další důležitou součástí podpory režimu sdíleného zařízení je určení stavu uživatele v zařízení a vymazání dat aplikace, pokud se uživatel změnil nebo jestli na zařízení vůbec není žádný uživatel. Zodpovídáte za to, že se data nevracela jinému uživateli.
K dotazování aktuálně přihlášeného účtu na zařízení můžete použít getCurrentAccountAsync
rozhraní API.
Metoda loadAccount
načte účet přihlášeného uživatele. Metoda onAccountChanged
určuje, jestli se přihlášený uživatel změnil, a pokud ano, vyčistěte:
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
}
}
}
Globální přihlášení uživatele
Když je zařízení nakonfigurované jako sdílené zařízení, může vaše aplikace volat signIn
rozhraní API pro přihlášení k účtu. Účet bude globálně dostupný pro všechny oprávněné aplikace na zařízení po přihlášení první aplikace k účtu.
final SignInParameters signInParameters = ... /* create SignInParameters object */
mSingleAccountApp.signIn(signInParameters);
Globální odhlášení uživatele
Následující kód odebere přihlášený účet a vymaže tokeny uložené v mezipaměti nejen z aplikace, ale také ze zařízení, které je v režimu sdíleného zařízení. Neujasní ale data z vaší aplikace. Musíte vymazat data z vaší aplikace a vymazat všechna data uložená v mezipaměti, která aplikace může uživateli zobrazovat.
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
}
});
Příjem vysílání pro detekci globálního odhlašování iniciovaného z jiných aplikací
Pokud chcete přijmout vysílání změn účtu, musíte zaregistrovat přijímač vysílání. Doporučujeme zaregistrovat přijímač vysílání prostřednictvím kontextově registrovaných přijímačů.
Po přijetí vysílání změny účtu okamžitě získejte přihlášeného uživatele a určete, jestli se uživatel na zařízení změnil. Pokud se zjistí změna, zahajte vyčištění dat pro dříve přihlášený účet. Doporučuje se správně zastavit všechny operace a vyčistit data.
Následující fragment kódu ukazuje, jak můžete zaregistrovat přijímač vysílání.
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);
}
Aplikace Microsoftu, které podporují režim sdíleného zařízení
Tyto aplikace Microsoftu podporují režim sdíleného zařízení Microsoft Entra:
- Microsoft Teams
- Microsoft Viva Engage (dříve Yammer)
- Outlook
- Microsoft Power Apps
- Microsoft 365
- Microsoft Power BI Mobile
- Microsoft Edge
- Spravovaná domovská obrazovka
MdM třetích stran, které podporují režim sdíleného zařízení
Tito poskytovatelé mobilních Správa zařízení (MDM) třetích stran podporují režim sdíleného zařízení Microsoft Entra:
Odhlášení ze sdíleného zařízení a celkový životní cyklus aplikace
Když se uživatel odhlásí, musíte podniknout kroky k ochraně osobních údajů a dat uživatele. Pokud například vytváříte aplikaci lékařských záznamů, je potřeba zajistit, aby se při odhlášení uživatele dříve zobrazené záznamy pacientů vymaže. Aplikace musí být připravená na ochranu osobních údajů a kontrolovat při každém vstupu do popředí.
Když vaše aplikace používá MSAL k odhlášení uživatele v aplikaci spuštěné na zařízení, které je ve sdíleném režimu, odeberou se z aplikace i ze zařízení přihlášený účet a tokeny uložené v mezipaměti.
Následující diagram znázorňuje celkový životní cyklus aplikace a běžné události, ke kterým může dojít při spuštění aplikace. Diagram se zabývá časem spuštění aktivity, přihlášením a odhlášením účtu a tím, jak se události, jako je pozastavení, obnovení a zastavení aktivity, vejdou.
Další kroky
Nastavte zařízení s Androidem pro spouštění aplikací v režimu sdíleného zařízení a otestování aplikace.