Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mitarbeiter an vorderster Front, wie etwa Einzelhandelsmitarbeiter, Flugbesatzungsmitglieder und Außendienstmitarbeiter, verwenden häufig ein gemeinsam genutztes Mobilgerät für ihre Arbeit. Diese freigegebenen Geräte können Sicherheitsrisiken darstellen, wenn Ihre Benutzer ihre Kennwörter oder PINs absichtlich oder nicht für den Zugriff auf Kunden- und Geschäftsdaten auf dem freigegebenen Gerät freigeben.
Mit dem Modus für gemeinsam genutzte Geräte können Sie ein Android 8.0- oder höher-Gerät so konfigurieren, dass Mitarbeiter das Gerät sicher freigeben können. Mitarbeiter können sich einmal anmelden und dann per Single Sign-On (SSO) auf alle Apps zugreifen, die diese Funktion unterstützen, und erhalten so schneller Zugriff auf Informationen. Wenn sich Mitarbeitende nach Abschluss ihrer Schicht oder Aufgabe abmelden, werden sie automatisch vom Gerät und allen unterstützten Anwendungen abgemeldet, sodass das Gerät für die nächsten Benutzenden bereit ist.
Um das Feature "Gemeinsam genutzter Gerätemodus" nutzen zu können, arbeiten App-Entwickler und Cloudgeräteadministratoren zusammen:
Geräteadministratoren bereiten das Gerät so vor, dass es manuell oder mithilfe eines MDM-Anbieters (Mobile Device Management) wie Microsoft Intune freigegeben wird. Die bevorzugte Option ist die Verwendung eines MDM, da sich Geräte damit per Zero-Touch-Bereitstellung in großem Maßstab im Modus für gemeinsam genutzte Geräte einrichten lassen. Die MDM stellt die Microsoft Authenticator-App auf den Geräten bereit und aktiviert auf jedem Gerät den „Modus für gemeinsam genutzte Geräte“ durch ein verwaltetes Konfigurationsupdate für das Gerät. Diese Einstellung für den freigegebenen Modus ändert das Verhalten der unterstützten Apps auf dem Gerät. Diese Konfiguration vom MDM-Anbieter legt den Modus für gemeinsam genutzte Geräte für das Gerät fest und löst die Registrierung gemeinsam genutzter Geräte mithilfe der Authenticator-App aus.
Anwendungsentwickler schreiben eine Einzelkonto-App (Apps mit mehreren Konten werden im Modus für gemeinsam genutzte Geräte nicht unterstützt), um das folgende Szenario zu behandeln:
- Einen Benutzer geräteweit über eine beliebige unterstützte Anwendung anmelden
- Einen Benutzer geräteweit über eine beliebige unterstützte Anwendung abmelden
- Fragen Sie den Zustand des Geräts ab, um zu ermitteln, ob sich Ihre Anwendung auf einem Gerät befindet, das sich im Modus für gemeinsam genutzte Geräte befindet.
- Fragen Sie den Gerätestatus des Benutzers ab, um änderungen in Ihrer Anwendung seit der letzten Verwendung zu ermitteln.
Die Unterstützung des modus für gemeinsam genutzte Geräte sollte als Featureupgrade für Ihre Anwendung betrachtet werden und kann dazu beitragen, die Akzeptanz in Umgebungen zu erhöhen, in denen dasselbe Gerät unter mehreren Benutzern verwendet wird.
Important
Microsoft Anwendungen, die den Modus für gemeinsam genutzte Geräte unter Android unterstützen, erfordern keine Änderungen und müssen nur auf dem Gerät installiert werden, um die Vorteile zu erhalten, die im Modus für gemeinsam genutzte Geräte verfügbar sind.
Gerät im Modus für gemeinsam genutzte Geräte einrichten
Um Ihr Android-Gerät so zu konfigurieren, dass der Modus für gemeinsam genutzte Geräte unterstützt wird, sollte android OS 8.0 oder höher ausgeführt werden. Das Gerät sollte außerdem entweder durch Zurücksetzen auf die Werkseinstellungen gelöscht werden, oder alle Microsoft-Apps und anderen Apps, für die der Modus für gemeinsam genutzte Geräte aktiviert ist, sollten deinstalliert und neu installiert werden.
Microsoft Intune unterstützt die Zero-Touch-Bereitstellung für Geräte im Modus für gemeinsam genutzte Geräte von Microsoft Entra, das heißt, dass das Gerät mit minimaler Interaktion durch den Frontline-Mitarbeiter eingerichtet und bei Intune registriert werden kann. Informationen zum Einrichten des Geräts im modus "Gemeinsam genutztes Gerät" bei Verwendung von Microsoft Intune als MDM finden Sie unter Einrichten der Registrierung für Geräte im Microsoft Entra modus für gemeinsam genutzte Geräte.
Ändern Sie Ihre Android-Anwendung, um den Modus für gemeinsam genutzte Geräte zu unterstützen.
Ihre Benutzer sind von Ihnen abhängig, um sicherzustellen, dass ihre Daten nicht an einen anderen Benutzer verloren gehen. In den folgenden Abschnitten werden hilfreiche Signale bereitgestellt, um ihrer Anwendung mitzuteilen, dass eine Änderung aufgetreten ist und behandelt werden soll. Sie sind dafür verantwortlich, den Status des Benutzers auf dem Gerät jedes Mal zu überprüfen, wenn Ihre App verwendet wird, und dann die Daten des vorherigen Benutzers löschen. Dies schließt ein, wenn es aus dem Hintergrund in Multitasking neu geladen wird. Bei einer Benutzeränderung sollten Sie sicherstellen, dass sowohl die Daten des vorherigen Benutzers gelöscht werden, als auch alle zwischengespeicherten Daten, die in Ihrer Anwendung angezeigt werden, entfernt werden. Es wird dringend empfohlen, dass Sie und Ihr Unternehmen einen Prozess zur Sicherheitsüberprüfung durchführen, nachdem Sie Ihre App aktualisiert haben, um den modus für gemeinsam genutzte Geräte zu unterstützen.
Fügen Sie das MICROSOFT AUTHENTICATION LIBRARY (MSAL)-SDK zu den Abhängigkeiten Ihrer Anwendung hinzu.
Fügen Sie die MSAL-Bibliothek wie folgt als Abhängigkeit in der Datei "build.gradle" hinzu:
dependencies{
implementation 'com.microsoft.identity.client.msal:5.+'
}
Konfigurieren Ihrer App für den Modus für gemeinsam genutzte Geräte
In Anwendungen, die mit dem Microsoft Authentication Library (MSAL) (MSAL) SDK geschrieben wurden, können ein einzelnes Konto oder mehrere Konten verwaltet werden. Ausführliche Informationen finden Sie im Einzelkontomodus oder im Modus für mehrere Konten. Apps im Modus für gemeinsam genutzte Geräte funktionieren nur im Einzelkontomodus.
Wenn Sie nicht vorhaben, den Modus für mehrere Konten zu unterstützen, setzen Sie "account_mode" in Ihrer MSAL-Konfigurationsdatei auf "SINGLE". So wird sichergestellt, dass Ihre App immer ISingleAccountPublicClientApplication erhält, und Ihre MSAL-Integration wird erheblich vereinfacht. Der Standardwert von "account_mode" lautet "MULTIPLE", daher ist es wichtig, diesen Wert in der Konfigurationsdatei zu ändern, wenn Sie den Modus "single account" verwenden.
Hier ist ein Beispiel für die Konfigurationsdatei:
{
"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"
}
}
]
}
Weitere Informationen zum Einrichten der Konfigurationsdatei finden Sie in der Konfigurationsdokumentation .
Unterstützung von Einzelkonten und mehreren Konten
Die App kann so erstellt werden, dass sie auf persönlichen sowie auf gemeinsam genutzten Geräten ausgeführt werden kann. Wenn Ihre App derzeit mehrere Konten unterstützt und der Modus für gemeinsam genutzte Geräte unterstützt werden soll, fügen Sie die Unterstützung für den Modus für einzelne Konten hinzu.
Sie können auch festlegen, dass sich das Verhalten der App je nach dem Gerätetyp ändert, auf dem sie ausgeführt wird. Verwenden Sie ISingleAccountPublicClientApplication.isSharedDevice(), um festzulegen, wann der Modus für einzelne Konten ausgeführt werden soll.
Es gibt zwei verschiedene Schnittstellen, die den Typ des Geräts darstellen, auf dem die Anwendung ausgeführt wird. Wenn Sie eine Anwendungsinstanz aus der MSAL-Anwendungsfactory anfordern, wird automatisch das richtige Anwendungsobjekt bereitgestellt.
Im folgenden Objektmodell sind der Objekttyp, den Sie möglicherweise erhalten, und seine Bedeutung im Kontext gemeinsam genutzter Geräte dargestellt:
Sie müssen eine Typüberprüfung und Umwandlung zur entsprechenden Schnittstelle durchführen, wenn Sie Ihr PublicClientApplication-Objekt erhalten. Der folgende Code überprüft, ob der Modus für mehrere Konten oder der Modus für einzelne Konten aktiv ist und wandelt das Anwendungsobjekt entsprechend um:
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;
...
}
Folgende Unterschiede gelten in Abhängigkeit davon, ob die App auf einem gemeinsam genutzten oder einem persönlichen Gerät ausgeführt wird:
| Gerät im freigegebenen Modus | Persönliches Gerät | |
|---|---|---|
| Konten | Einzelnes Konto | Mehrere Konten |
| Anmelden | Global | Global |
| Abmelden | Global | In jeder Anwendung kann gesteuert werden, ob die Abmeldung lokal für die Anwendung erfolgt. |
| Unterstützte Kontotypen | Nur Geschäftskonten | Persönliche Konten und Arbeitskonten werden unterstützt |
Initialisieren des PublicClientApplication-Objekts
Wenn Sie "account_mode":"SINGLE" in der config-Datei für MSAL festlegen, können Sie das zurückgegebene Anwendungsobjekt problemlos in ein ISingleAccountPublicCLientApplication-Element umwandeln.
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 */
}
});
Freigegebenen Gerätemodus erkennen
Das Erkennen des Modus für gemeinsam genutzte Geräte ist für Ihre Anwendung wichtig. Viele Anwendungen erfordern eine Anpassung der User Experience (UX), wenn die Anwendung auf einem gemeinsam genutzten Gerät verwendet wird. Ihre Anwendung kann z. B. über ein "Registrierungsfeature" verfügen, das für mitarbeiter in Service und Produktion nicht geeignet ist, da sie wahrscheinlich bereits über ein Konto verfügen. Möglicherweise möchten Sie auch zusätzliche Sicherheit für die Verarbeitung von Daten ihrer Anwendung hinzufügen, wenn sie sich im modus für gemeinsam genutzte Geräte befindet.
Verwenden Sie die isSharedDevice API in IPublicClientApplication, um festzustellen, ob eine App auf einem Gerät im Modus für freigegebene Geräte ausgeführt wird.
Die folgenden Codeausschnitte zeigen Beispiele für die Verwendung der isSharedDevice API.
deviceModeTextView.setText(mSingleAccountApp.isSharedDevice() ? "Shared" : "Non-Shared");
Den angemeldeten Benutzer abrufen und feststellen, ob der Benutzer auf dem Gerät gewechselt hat
Ein weiterer wichtiger Bestandteil der Unterstützung des modus für gemeinsam genutzte Geräte ist die Bestimmung des Zustands des Benutzers auf dem Gerät und das Löschen von Anwendungsdaten, wenn sich ein Benutzer geändert hat oder kein Benutzer überhaupt auf dem Gerät vorhanden ist. Sie sind dafür verantwortlich, sicherzustellen, dass Daten nicht an einen anderen Benutzer verloren gehen.
Sie können die API verwenden getCurrentAccountAsync , um das aktuell angemeldete Konto auf dem Gerät abzufragen.
Mit der loadAccount-Methode wird das Konto des angemeldeten Benutzers abgerufen. Mit der onAccountChanged-Methode wird ermittelt, ob sich der angemeldete Benutzer geändert hat. Wenn dies der Fall ist, wird eine Bereinigung durchgeführt:
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
}
}
}
Globales Anmelden eines Benutzers
Wenn ein Gerät als freigegebenes Gerät konfiguriert ist, kann Ihre Anwendung die signIn API aufrufen, um sich beim Konto anzumelden. Das Konto ist global für alle berechtigten Apps auf dem Gerät verfügbar, nachdem sich die erste App beim Konto angemeldet hat.
final SignInParameters signInParameters = ... /* create SignInParameters object */
mSingleAccountApp.signIn(signInParameters);
Globales Abmelden eines Benutzers
Der folgende Code entfernt das angemeldete Konto und löscht zwischengespeicherte Token nicht nur aus der App, sondern auch vom Gerät, das sich im Modus für freigegebene Geräte befindet. Die Daten werden jedoch nicht aus Ihrer Anwendung gelöscht. Sie müssen die Daten in Ihrer Anwendung löschen und alle zwischengespeicherten Daten löschen, die Ihre Anwendung dem Benutzer möglicherweise anzeigt.
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
}
});
Empfangen einer Übertragung zur Erkennung einer von anderen Anwendungen initiierten globalen Abmeldung
Um die Übertragung für eine Kontoänderung zu empfangen, müssen Sie einen Übertragungsempfänger registrieren. Es wird empfohlen, Ihren Empfänger über die Kontext-registrierten Empfänger zu registrieren.
Wenn eine Kontoaktualisierungsbenachrichtigung empfangen wird, ermitteln Sie sofort den angemeldeten Benutzer und bestimmen, ob sich der Benutzer auf dem Gerät geändert hat. Wenn eine Änderung erkannt wird, initiieren Sie die Datenbereinigung für ein zuvor angemeldetes Konto. Es wird empfohlen, alle Vorgänge ordnungsgemäß zu beenden und eine Datenbereinigung durchzuführen.
Der folgende Codeausschnitt zeigt, wie Sie einen Übertragungsempfänger registrieren können.
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);
}
Microsoft Anwendungen, die den gemeinsam genutzten Gerätemodus unterstützen
Diese Microsoft-Anwendungen unterstützen den Microsoft Entra-Modus für gemeinsam genutzte Geräte:
- Microsoft Teams
- Microsoft Viva Engage (zuvor Yammer)
- Outlook
- Microsoft Power Apps
- Microsoft 365
- Microsoft Power BI Mobile
- Microsoft Edge
- Verwalteter Startbildschirm
MDMs von Drittanbietern, die den gemeinsam genutzten Gerätemodus unterstützen
Diese Drittanbieter von Mobile Geräteverwaltung (MDM) unterstützen den Microsoft Entra-Modus für gemeinsam genutzte Geräte:
Abmeldung auf gemeinsam genutzten Geräten und der gesamte App-Lebenszyklus
Wenn sich ein Benutzer abmeldet, müssen Sie Maßnahmen ergreifen, um den Datenschutz und die Daten des Benutzers zu schützen. Wenn Sie beispielsweise eine App für medizinische Aufzeichnungen erstellen, sollten Sie sicherstellen, dass beim Abmelden des Benutzers zuvor angezeigte Patientenakten gelöscht werden. Ihre Anwendung muss für den Datenschutz vorbereitet sein und jedes Mal überprüfen, wenn sie in den Vordergrund wechselt.
Wenn Ihre App MSAL verwendet, um den Benutzer in einer App abzumelden, die auf einem Gerät ausgeführt wird, das im gemeinsam genutzten Modus ausgeführt wird, werden das angemeldete Konto und zwischengespeicherte Token sowohl von der App als auch vom Gerät entfernt.
Das folgende Diagramm zeigt den gesamten App-Lebenszyklus und allgemeine Ereignisse, die während der App-Ausführung auftreten können. Das Diagramm zeigt den Ablauf vom Start einer Aktivität über das An- und Abmelden bei einem Konto bis hin dazu, wie sich Ereignisse wie das Pausieren, Fortsetzen und Beenden der Aktivität in diesen Ablauf einordnen.
Nächste Schritte
Richten Sie ein Android-Gerät ein, um Apps im Modus für gemeinsam genutzte Geräte auszuführen und Ihre App zu testen.