適用於 Android 裝置的共用裝置模式

一線工作者 (例如零售員工、飛行機組成員和現場服務人員) 通常會使用共用行動裝置來執行其工作。 當他們開始共用密碼或 PIN 號碼以存取共用裝置上的客戶和商務資料時,這就會變成問題。

共用裝置模式可讓您設定 Android 裝置,讓多個員工可以輕鬆共用。 員工可以登入並快速存取客戶資訊。 當他們完成輪班或工作時,就可以登出裝置,而且該裝置可以立即準備好供下一位員工使用。

共用裝置模式也提供 Microsoft 身分識別支援的裝置管理。

若要建立共用裝置模式應用程式,開發人員和雲端裝置管理員需要合作:

  • 開發人員會撰寫單一帳戶應用程式 (在共用裝置模式下不支援多帳戶應用程式)、將 "shared_device_mode_supported": true 新增至應用程式的設定,以及撰寫程式碼來處理共用裝置登出之類的動作。
  • 裝置管理員透過安裝驗證器應用程式,並使用驗證器應用程式將裝置設定為共用模式,來準備要共用的裝置。 只有處於雲端裝置管理員角色的使用者才能使用驗證器應用程式,讓裝置進入共用模式。 您可以透過下列方式,在 Azure 入口網站中設定組織角色的成員資格:Azure Active Directory>角色和管理員>雲端裝置管理員

本文主要著重於開發人員應考慮的事項。

單一帳戶與多帳戶應用程式

使用 Microsoft 驗證程式庫 (MSAL) SDK 所撰寫的應用程式可以管理單一帳戶或多個帳戶。 如需詳細資料,請參閱單一帳戶模式或多帳戶模式

您應用程式可用的 Microsoft 身分識別平台功能會有所不同,取決於應用程式是在單一帳戶模式還是多帳戶模式中執行。

共用裝置模式應用程式只能在單一帳戶模式下運作

重要

僅支援多帳戶模式的應用程式無法在共用裝置上執行。 如果員工載入不支援單一帳戶模式的應用程式,其不會在共用裝置上執行。

在 MSAL SDK 發行之前所撰寫的應用程式,會在多帳戶模式下執行,而且必須更新為支援單一帳戶模式,然後才能在共用模式裝置上執行。

同時支援單一帳戶和多帳戶

您可以建置應用程式,以支援同時在個人裝置和共用裝置上執行。 如果您的應用程式目前支援多個帳戶,而且您想要支援共用裝置模式,請新增單一帳戶模式的支援。

您也可能想要應用程式變更其行為,取決於其執行所在的裝置類型。 使用 ISingleAccountPublicClientApplication.isSharedDevice() 來決定何時要在單一帳戶模式下執行。

有兩個不同的介面,代表您應用程式所在的裝置類型。 當您從 MSAL 的應用程式工廠要求應用程式執行個體時,系統會自動提供正確的應用程式物件。

下列物件模型說明您可能會收到的物件類型,以及其在共用裝置內容中的意義:

公用用戶端應用程式繼承模型

當您取得 PublicClientApplication 物件時,您必須進行類型檢查並轉換成適當的介面。 下列程式碼會檢查多帳戶模式或單一帳戶模式,並相應地轉換應用程式物件:

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

下列差異適用,取決於您的應用程式是在共用裝置還是在個人裝置上執行:

共用模式裝置 個人裝置
帳戶 單一帳戶 多個帳戶
登入 全球 全球
登出 全球 每個應用程式都可以控制登出是在應用程式的本機還是針對應用程式系列進行。
支援的帳戶類型 僅限工作帳戶 支援個人和工作帳戶

為何您可能只想要支援單一帳戶模式

如果您撰寫的應用程式只會用於使用共用裝置的一線工作者,建議您將應用程式撰寫為只支援單一帳戶模式。 這包括大部分以工作為主的應用程式,例如醫療記錄應用程式、發票應用程式,以及大多數的企業營運應用程式。 僅支援單一帳戶模式可簡化開發,因為您不需要實作屬於多帳戶應用程式的其他功能。

當裝置模式變更時,會發生什麼情況

如果您的應用程式是以多帳戶模式執行,且管理員將裝置置於共用裝置模式,則系統會從應用程式清除裝置上的所有帳戶,並將應用程式轉換成單一帳戶模式。

支援共用裝置模式的 Microsoft 應用程式

這些 Microsoft 應用程式支援 Azure AD 的共用裝置模式:

共用裝置登出和整體應用程式生命週期

當使用者登出時,您必須採取行動,以保護使用者的隱私權和資料。 例如,如果您是建置醫療記錄應用程式,則會想要確定當使用者登出時,清除先前顯示的患者記錄。 您的應用程式必須為資料隱私權做好準備,並在每次進入前景時檢查。

當您的應用程式使用 MSAL,在處於共用模式的裝置上執行的應用程式中,將使用者登出時,已登入的帳戶和快取的權杖會從應用程式和裝置中移除。

下圖顯示整體應用程式生命週期,以及在應用程式執行時可能發生的常見事件。 此圖表涵蓋了活動啟動、登入和登出帳戶的時間,以及暫停、繼續及停止活動之類的事件如何納入。

共用裝置應用程式生命週期

後續步驟

如需有關如何在 Android 裝置上以共用模式執行一線工作者應用程式的詳細資訊,請參閱: