Öğretici: Android uygulamanızda paylaşılan cihaz modunu kullanma

Bu öğreticide, Android geliştiricileri ve Microsoft Entra kiracı yöneticileri bir Android uygulaması için paylaşılan cihaz modunu etkinleştirmek için gereken kod, Authenticator uygulaması ve kiracı ayarları hakkında bilgi edinecek.

Bu öğreticide:

  • Kod örneği indirme
  • Paylaşılan cihaz modunu etkinleştirme ve algılama
  • Tek veya birden çok hesap modunu algılama
  • Kullanıcı anahtarını algılama ve genel oturum açma ve oturumu kapatmayı etkinleştirme
  • Kiracıyı ayarlama ve uygulamayı kaydetme
  • Paylaşılan cihaz modunda bir Android cihazı ayarlama
  • Örnek uygulamayı çalıştırma

Önkoşullar

Geliştirici kılavuzu

Öğreticinin bu bölümünde, Microsoft Kimlik Doğrulama Kitaplığı 'nı (MSAL) kullanarak bir Android uygulamasında paylaşılan cihaz modunu uygulamaya yönelik geliştirici yönergeleri sağlanır. MSAL'yi Android uygulamanızla tümleştirmeyi, bir kullanıcıda oturum açmayı, Microsoft Graph'ı aramayı ve bir kullanıcıyı oturumu kapatmayı öğrenmek için MSAL Android öğreticisine bakın.

Örneği indirme

GitHub'dan örnek uygulamayı kopyalayın. Örnek, tek veya çok hesaplı modda çalışma özelliğine sahiptir.

MSAL SDK'sını yerel Maven deponuza ekleme

Örnek uygulamayı kullanmıyorsanız, MSAL kitaplığını build.gradle dosyanıza bağımlılık olarak ekleyin, örneğin:

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

Uygulamanızı paylaşılan cihaz modunu kullanacak şekilde yapılandırma

Yapılandırma dosyanızı ayarlama hakkında daha fazla bilgi için yapılandırma belgelerine bakın.

MSAL yapılandırma dosyanızda olarak true ayarlayın"shared_device_mode_supported".

Birden çok hesap modunu desteklemeyi planlamıyor olabilirsiniz. Bu, paylaşılan bir cihaz kullanmıyorsanız ve kullanıcı aynı anda birden fazla hesapla uygulamada oturum açabilirse olabilir. Öyleyse olarak ayarlayın "account_mode""SINGLE". Bu, uygulamanızın her zaman 'i edineceğini ISingleAccountPublicClientApplicationgaranti eder ve MSAL tümleştirmenizi önemli ölçüde basitleştirir. varsayılan değeridir "account_mode" , "MULTIPLE"bu nedenle modu kullanıyorsanız "single account" yapılandırma dosyasında bu değeri değiştirmeniz önemlidir.

Örnek uygulamanın app>main>res>ham dizininde yer alan auth_config.json dosyasının bir örneği aşağıda verilmiştir:

{
  "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"
      }
    }
  ]
}

Paylaşılan cihaz modunu algılama

Paylaşılan cihaz modu, Android cihazlarını birden çok çalışan tarafından paylaşılacak şekilde yapılandırmanıza olanak tanırken, cihazın Microsoft Identity destekli yönetimini sağlar. Çalışanlar cihazlarında oturum açabilir ve müşteri bilgilerine hızlı bir şekilde erişebilir. Vardiyalarını veya görevlerini tamamladıktan sonra, paylaşılan cihazdaki tüm uygulamaların oturumunu tek bir tıklamayla kapatabilecekler ve cihaz bir sonraki çalışanın kullanımına hemen hazır olacaktır.

Paylaşılan cihaz modundaki bir cihazda bir uygulamanın çalışıp çalışmadığını belirlemek için kullanın isSharedDevice() . Uygulamanız bu bayrağı kullanarak UX'i buna göre değiştirmesi gerekip gerekmediğini belirleyebilir.

Burada, uygulamasını nasıl kullanabileceğinizi isSharedDevice()gösteren bir kod parçacığı yer alır. Örnek uygulamadaki SingleAccountModeFragment sınıfındandır:

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

PublicClientApplication nesnesini başlatma

MSAL yapılandırma dosyasında ayarlarsanız "account_mode":"SINGLE" , döndürülen uygulama nesnesini güvenli bir şekilde olarak ISingleAccountPublicCLientApplicationdönüştürebilirsiniz.

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

Tek ve birden çok hesap modunu algılama

Paylaşılan bir cihazda yalnızca ön cephe çalışanları için kullanılacak bir uygulama yazıyorsanız uygulamanızı yalnızca tek hesap modunu destekleyecek şekilde yazmanızı öneririz. Bu, tıbbi kayıt uygulamaları, fatura uygulamaları ve çoğu iş kolu uygulaması gibi görev odaklı uygulamaların çoğunu içerir. Bu, SDK'nın birçok özelliğinin barındırılması gerekmediğinden geliştirmenizi basitleştirir.

Uygulamanız birden çok hesabı ve paylaşılan cihaz modunu destekliyorsa, aşağıda gösterildiği gibi bir tür denetimi gerçekleştirmeniz ve uygun arabirime atamanız gerekir.

private IPublicClientApplication mApplication;

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

Oturum açmış kullanıcıyı alma ve cihazda bir kullanıcının değişip değişmediğini belirleme

yöntemi, loadAccount oturum açmış kullanıcının hesabını alır. onAccountChanged yöntemi, oturum açmış kullanıcının değişip değişmediğini belirler ve değiştiyse şunları temizleyin:

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

Bir kullanıcıda genel olarak oturum açma

Aşağıdaki, kimlik doğrulayıcı uygulamasıyla MSAL kullanan diğer uygulamalarda cihaz genelindeki bir kullanıcıda oturum açar:

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

Bir kullanıcının genel olarak oturumunu kapatma

Aşağıdaki, oturum açmış hesabı kaldırır ve önbelleğe alınan belirteçleri yalnızca uygulamadan değil paylaşılan cihaz modundaki cihazdan da temizler:

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

Diğer uygulamalardan başlatılan genel oturumu kapatmayı algılamak için yayın alma

Hesap değişikliği yayınını almak için bir yayın alıcısı kaydetmeniz gerekir. Yayın alıcınızı Bağlama kayıtlı alıcılar aracılığıyla kaydetmeniz önerilir.

Hesap değişikliği yayını alındığında, oturum açmış kullanıcıyı hemen alın ve cihazda bir kullanıcının değişip değişmediğini belirleyin. Bir değişiklik algılanırsa, önceden oturum açmış hesap için veri temizlemeyi başlatın. Tüm işlemlerin düzgün bir şekilde durdurulması ve veri temizlemenin yapılması önerilir.

Aşağıdaki kod parçacığı, yayın alıcısını nasıl kaydedebildiğinizi gösterir.

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

Yönetici kılavuzu

Aşağıdaki adımlar uygulamanızı ayarlamayı ve cihazınızı paylaşılan cihaz moduna geçirmeyi açıklar.

Uygulamayı kaydetme

İlk olarak, uygulamayı kuruluş kiracınıza kaydedin. Ardından uygulamanızın düzgün çalışması için aşağıdaki değerleri auth_config.json dosyasında sağlayın.

Bunun nasıl yapılacağını öğrenmek için bkz . Uygulamanızı kaydetme.

Dekont

Uygulamanızı kaydederken lütfen sol taraftaki hızlı başlangıç kılavuzunu kullanın ve ardından Android'i seçin. Bu sizi, uygulamanız için Paket Adı ve İmza Karması sağlamanız istenecek bir sayfaya yönlendirir. Bunlar, uygulama yapılandırmanızın çalıştığından emin olmak için çok önemlidir. Ardından uygulamanız için kullanabileceğiniz ve kesip auth_config.json dosyanıza yapıştırabileceğiniz bir yapılandırma nesnesi alırsınız.

Configure your Android app page

Bu değişikliği benim için yap'ı seçip hızlı başlangıcın istediği değerleri sağlamanız gerekir. Bu işlem tamamlandığında ihtiyacınız olan tüm yapılandırma dosyalarını oluşturacağız.

Configure your project page

Kiracıyı ayarlama

Test amacıyla kiracınızda aşağıdakileri ayarlayın: en az iki çalışan, bir Bulut Cihazı Yönetici istrator ve bir Genel Yönetici istrator. Kuruluş Rollerini değiştirerek Bulut Cihazı Yönetici istrator'ı ayarlayın. Kuruluş Rollerinize erişmek için Kimlik>Rolleri ve yöneticiler>Roller ve yöneticiler>Tüm roller'i ve ardından Bulut Cihazı Yönetici istrator'ı seçin. Bir cihazı paylaşılan moda koyabilecek kullanıcıları ekleyin.

Paylaşılan modda Bir Android cihazı ayarlama

Authenticator Uygulamasını indirin

Google Play mağazasından Microsoft Authenticator Uygulamasını indirin. Uygulamayı zaten indirdiyseniz en son sürüm olduğundan emin olun.

Kimlik doğrulayıcı uygulama ayarları ve cihazı buluta kaydetme

Authenticator Uygulamasını başlatın ve ana hesap sayfasına gidin. Hesap Ekle sayfasını gördüğünüzde, cihazı paylaştırmaya hazırsınız demektir.

Authenticator add account screen

Sağ menü çubuğunu kullanarak Ayarlar bölmesine gidin. İş ve Okul hesapları'nın altında Cihaz Kaydı'nı seçin.

Authenticator settings screen

Bu düğmeye tıkladığınızda, cihaz kişilerine erişimi yetkilendirmeniz istenir. Bunun nedeni Android'in cihazdaki hesap tümleştirmesidir. İzin ver'i seçin.

Authenticator allow access confirmation screen

Bulut Cihazı Yönetici istrator, kuruluş e-postasını Paylaşılan cihaz olarak kaydet'in altına girmelidir. Ardından paylaşılan cihaz olarak kaydet düğmesine tıklayın ve kimlik bilgilerini girin.

Device registration screen in app

App screenshot showing Microsoft sign-in page

Cihaz artık paylaşılan modda.

App screen showing shared device mode enabled

Cihazdaki tüm oturum açma ve oturum kapatma işlemleri genel olacaktır, yani cihazdaki MSAL ve Microsoft Authenticator ile tümleştirilmiş tüm uygulamalar için geçerlidir. Artık paylaşılan cihaz modu özelliklerini kullanan uygulamaları cihaza dağıtabilirsiniz.

Paylaşılan cihazı görüntüleme

Bir cihazı paylaşılan moda aldıktan sonra kuruluşunuz tarafından bilinir ve kuruluş kiracınızda izlenir. Birleştirme Türü'ne bakarak paylaşılan cihazlarınızı görüntüleyebilirsiniz.

Screenshot that shows the all devices pane

Örnek uygulamayı çalıştırma

Örnek Uygulama, kuruluşunuzun Graph API'sini çağıran basit bir uygulamadır. İlk çalıştırmada, uygulama çalışan hesabınızda yeni olduğundan onay vermeniz istenir.

Application configuration info screen

Sonraki adımlar

Android cihazlarda Microsoft Kimlik Doğrulama Kitaplığı ve paylaşılan cihaz modu ile çalışma hakkında daha fazla bilgi edinin: