Android cihazlar için paylaşılan cihaz modu
Perakende çalışanları, uçuş ekibi üyeleri ve saha hizmeti çalışanları gibi ön cephe çalışanları genellikle işlerini yapmak için paylaşılan bir mobil cihaz kullanır. Bu paylaşılan cihazlar, kullanıcılarınızın parolalarını veya PIN'lerini paylaşmaları durumunda, paylaşılan cihazdaki müşteri ve iş verilerine erişmek için kasıtlı olarak veya değil güvenlik riskleri sunabilir.
Paylaşılan cihaz modu , çalışanların cihazı güvenli bir şekilde paylaşabilmesi için Android 8.0 veya üzeri bir cihaz yapılandırmanıza olanak tanır. Çalışanlar bir kez oturum açabilir ve bu özelliği destekleyen tüm uygulamalarda çoklu oturum açma (SSO) alarak bilgilere daha hızlı erişim sağlayabilir. Çalışanlar vardiyalarını veya görevlerini tamamladıktan sonra oturumu kapattığında, cihazın ve desteklenen tüm uygulamaların oturumu otomatik olarak kapatılarak cihaz bir sonraki kullanıcı için hazır olur.
Paylaşılan Cihaz Modu özelliğinden yararlanmak için uygulama geliştiricileri ve bulut cihazı yöneticileri birlikte çalışır:
Cihaz yöneticileri, cihazı el ile veya Microsoft Intune gibi bir mobil cihaz yönetimi (MDM) sağlayıcısı kullanarak paylaşılacak şekilde hazırlar . Tercih edilen seçenek, paylaşılan cihaz modunda sıfır dokunmayla sağlama yoluyla büyük ölçekte cihaz kurulumuna izin verdiğinden bir MDM kullanmaktır. MDM, Microsoft Authenticator uygulamasını cihazlara iletir ve cihaza yönelik yönetilen bir yapılandırma güncelleştirmesi aracılığıyla her cihaz için "Paylaşılan Modu" açar. Bu Paylaşılan Mod ayarı, cihazdaki desteklenen uygulamaların davranışını değiştiren ayardır. MDM sağlayıcısından alınan bu yapılandırma, cihaz için paylaşılan cihaz modunu ayarlar ve Authenticator Uygulamasını kullanarak paylaşılan cihaz kaydını tetikler.
Uygulama geliştiricileri , aşağıdaki senaryoyu işlemek için tek hesaplı bir uygulama (paylaşılan cihaz modunda birden çok hesaplı uygulamalar desteklenmez) yazar:
- Desteklenen tüm uygulamalar aracılığıyla kullanıcı cihaz genelinde oturum açma
- Desteklenen tüm uygulamalar aracılığıyla cihaz genelinde kullanıcı oturumunu kapatma
- Uygulamanızın paylaşılan cihaz modundaki bir cihazda olup olmadığını belirlemek için cihazın durumunu sorgula
- Son kullanımdan bu yana uygulamanızda yapılan değişiklikleri belirlemek için kullanıcının cihaz durumunu sorgula
Paylaşılan cihaz modunun desteklenmesi, uygulamanız için bir özellik yükseltmesi olarak kabul edilmelidir ve aynı cihazın birden çok kullanıcı arasında kullanıldığı ortamlarda benimsemesini artırmaya yardımcı olabilir.
Önemli
Android'de paylaşılan cihaz modunu destekleyen Microsoft uygulamaları herhangi bir değişiklik gerektirmez ve paylaşılan cihaz moduyla birlikte gelen avantajlardan yararlanmak için yalnızca cihaza yüklenmesi gerekir.
Paylaşılan Cihaz Modu'nda cihazı ayarlama
Android cihazınızı paylaşılan cihaz modunu destekleyecek şekilde yapılandırmak için Android işletim sistemi 8.0 veya üzerini çalıştırıyor olmalıdır. Cihaz ayrıca fabrika sıfırlaması ile silinmelidir veya tüm Microsoft ve diğer paylaşılan cihaz modu etkinleştirilmiş uygulamaların kaldırılıp yeniden yüklenmesi gerekir.
Microsoft Intune, Microsoft Entra paylaşılan cihaz modunda cihazlar için sıfır dokunmayla sağlamayı destekler. Bu, cihazın ön cephe çalışanının en az etkileşimiyle Intune'a ayarlanabileceği ve kaydedilebileceği anlamına gelir. MDM olarak Microsoft Intune kullanırken cihazı paylaşılan cihaz modunda ayarlamak için bkz . Microsoft Entra paylaşılan cihaz modunda cihazlar için kaydı ayarlama.
Android uygulamanızı paylaşılan cihaz modunu destekleyecek şekilde değiştirme
Kullanıcılarınız, verilerinin başka bir kullanıcıya sızmadığından emin olmak için size bağlıdır. Aşağıdaki bölümler, uygulamanıza bir değişikliğin gerçekleştiğini ve işlenmesi gerektiğini göstermek için yararlı sinyaller sağlar. Uygulamanız her kullanıldığında cihazda kullanıcının durumunu denetlemek ve ardından önceki kullanıcının verilerini temizlemek sizin sorumluluğunuzdadır. Bu, çok görevli olarak arka plandan yeniden yüklenip yüklenmediğini içerir. Kullanıcı değişikliğinde, hem önceki kullanıcının verilerinin temizlendiğinden hem de uygulamanızda görüntülenen önbelleğe alınmış verilerin kaldırıldığından emin olmanız gerekir. Uygulamanızı paylaşılan cihaz modunu destekleyecek şekilde güncelleştirdikten sonra sizin ve şirketinizin bir güvenlik gözden geçirme süreci yürütmenizi kesinlikle öneririz.
Microsoft Authentication Library (MSAL) SDK'sını uygulamanızın bağımlılıklarına ekleme
MSAL kitaplığını build.gradle dosyanıza bağımlılık olarak ekleyin, örneğin:
dependencies{
implementation 'com.microsoft.identity.client.msal:5.+'
}
Uygulamanızı paylaşılan cihaz modunu kullanacak şekilde yapılandırma
Microsoft Kimlik Doğrulama Kitaplığı (MSAL) SDK'sı kullanılarak yazılan uygulamalar tek bir hesabı veya birden çok hesabı yönetebilir. Ayrıntılar için bkz . tek hesap modu veya birden çok hesap modu. Paylaşılan cihaz modu uygulamaları yalnızca tek hesap modunda çalışır.
Birden çok hesap modunu desteklemeyi planlamıyorsanız, msal yapılandırma dosyanızda olarak ayarlayın "account_mode"
"SINGLE"
. Bu, uygulamanızın her zaman 'i edineceğini ISingleAccountPublicClientApplication
garanti 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.
Yapılandırma dosyasının bir örneği aşağıda verilmişti:
{
"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"
}
}
]
}
Yapılandırma dosyanızı ayarlama hakkında daha fazla bilgi için yapılandırma belgelerine bakın.
Hem tek hesabı hem de birden çok hesabı destekleme
Uygulamanız hem kişisel cihazlarda hem de paylaşılan cihazlarda çalıştırmayı destekleyecek şekilde oluşturulabilir. Uygulamanız şu anda birden çok hesabı destekliyorsa ve paylaşılan cihaz modunu desteklemek istiyorsanız, tek hesap modu için destek ekleyin.
Uygulamanızın üzerinde çalıştığı cihazın türüne bağlı olarak davranışını değiştirmesini de isteyebilirsiniz. Tek hesap modunda ne zaman çalıştırılacak belirlemek için kullanın ISingleAccountPublicClientApplication.isSharedDevice()
.
Uygulamanızın bulunduğu cihaz türünü temsil eden iki farklı arabirim vardır. MSAL'nin uygulama fabrikasından bir uygulama örneği istediğinizde, doğru uygulama nesnesi otomatik olarak sağlanır.
Aşağıdaki nesne modeli, alabileceğiniz nesne türünü ve paylaşılan cihaz bağlamında ne anlama geldiğini gösterir:
Nesnenizi aldığınızda bir tür denetimi yapmanız ve uygun arabirime atamanız PublicClientApplication
gerekir. Aşağıdaki kod birden çok hesap modunu veya tek hesap modunu denetler ve uygulama nesnesini uygun şekilde yayınlar:
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;
...
}
Aşağıdaki farklılıklar, uygulamanızın paylaşılan veya kişisel bir cihazda çalışıp çalışmadığına bağlı olarak geçerlidir:
Paylaşılan mod cihazı | Kişisel cihaz | |
---|---|---|
Firmalar | Tek hesap | Birden çok hesap |
Oturum aç | Global | Global |
Oturumu kapatma | Global | Her uygulama, oturumu kapatmanın uygulamada yerel olup olmadığını denetleyebilir. |
Desteklenen hesap türleri | Yalnızca iş hesapları | Desteklenen kişisel ve iş hesapları |
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 ISingleAccountPublicCLientApplication
dönüştürebilirsiniz.
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 */
}
});
Paylaşılan cihaz modunu algılama
Paylaşılan cihaz modunu algılamak uygulamanız için önemlidir. Birçok uygulama, paylaşılan bir cihazda kullanıldığında kullanıcı deneyiminde (UX) değişiklik yapılmasını gerektirir. Örneğin, uygulamanızın bir "Kaydolma" özelliği olabilir ve bu özellik ön hat çalışanı için uygun değildir çünkü zaten bir hesabı vardır. Ayrıca, paylaşılan cihaz modundaysa uygulamanızın veri işlemesine ek güvenlik de eklemek isteyebilirsiniz.
isSharedDevice
Paylaşılan cihaz modunda bir cihazda bir uygulamanın çalışıp çalışmadığını belirlemek için içindeki API'yi IPublicClientApplication
kullanın.
Aşağıdaki kod parçacıkları API'yi kullanma isSharedDevice
örneklerini gösterir.
deviceModeTextView.setText(mSingleAccountApp.isSharedDevice() ? "Shared" : "Non-Shared");
Oturum açmış kullanıcıyı alma ve cihazda bir kullanıcının değişip değişmediğini belirleme
Paylaşılan cihaz modunu desteklemenin bir diğer önemli bölümü de kullanıcının cihazdaki durumunu belirlemek ve bir kullanıcı değiştiyse veya cihazda hiç kullanıcı yoksa uygulama verilerini temizlemektir. Verilerin başka bir kullanıcıya sızmadığından emin olmak sizin sorumluluğundadır.
Cihazda şu anda oturum açmış olan hesabı sorgulamak için API'yi kullanabilirsiniz getCurrentAccountAsync
.
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;
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
}
}
}
Bir kullanıcıda genel olarak oturum açma
Bir cihaz paylaşılan cihaz olarak yapılandırıldığında, uygulamanız hesapta oturum açmak için API'yi çağırabilir signIn
. Hesap, ilk uygulama hesapta oturum açtığında cihazdaki tüm uygun uygulamalar için genel kullanıma sunulacaktır.
final SignInParameters signInParameters = ... /* create SignInParameters object */
mSingleAccountApp.signIn(signInParameters);
Bir kullanıcının genel olarak oturumunu kapatma
Aşağıdaki kod, 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. Ancak uygulamanızdaki verileri temizlemez. Uygulamanızdaki verileri temizlemeniz ve uygulamanızın kullanıcıya görüntüleyebileceği önbelleğe alınmış verileri temizlemeniz gerekir.
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
}
});
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);
}
Paylaşılan cihaz modunu destekleyen Microsoft uygulamaları
Bu Microsoft uygulamaları Microsoft Entra paylaşılan cihaz modunu destekler:
- Microsoft Teams
- Microsoft Viva Engage (önceki yammer)
- Outlook
- Microsoft Power Apps
- Microsoft 365
- Microsoft Power BI Mobil
- Microsoft Edge
- Yönetilen Giriş Ekranı
Paylaşılan cihaz modunu destekleyen üçüncü taraf MDM'ler
Bu üçüncü taraf Mobil Cihaz Yönetimi (MDM) sağlayıcıları Microsoft Entra paylaşılan cihaz modunu destekler:
Paylaşılan cihaz oturumu kapatma ve genel uygulama yaşam döngüsü
Bir kullanıcı oturumu kapattığında, kullanıcının gizliliğini ve verilerini korumak için işlem yapmanız gerekir. Örneğin, bir tıbbi kayıt uygulaması oluşturuyorsanız, kullanıcı oturumu kapattığında daha önce görüntülenen hasta kayıtlarının temizlendiğinden emin olmak istersiniz. Uygulamanızın veri gizliliğine hazır olması ve ön plana her girişinde kontrol etmesi gerekir.
Uygulamanız paylaşılan modda çalışan bir uygulamada kullanıcıyı oturumu kapatmak için MSAL kullandığında, oturum açmış hesap ve önbelleğe alınmış belirteçler hem uygulamadan hem de cihazdan kaldırılır.
Aşağıdaki diyagramda, uygulamanız çalışırken oluşabilecek genel uygulama yaşam döngüsü ve yaygın olaylar gösterilmektedir. Diyagramda etkinliğin başlatıldığı zaman, hesapta oturum açma ve oturumu kapatma işlemleri ve etkinliği duraklatma, devam ettirip durdurma gibi olayların nasıl sığdırıldığı açıklanmıştır.
Sonraki adımlar
Paylaşılan cihaz modunda uygulamaları çalıştırmak ve uygulamanızı test etmek için bir Android cihazı ayarlayın.