Neuerungen für Unternehmen in Android 10

Diese Seite bietet einen Überblick über die neuen Enterprise-APIs, -Funktionen und -Funktionen. Verhaltensänderungen mit Android 10.

Arbeitsprofile für unternehmenseigene Geräte

Android 10 bietet neue Bereitstellungs- und Attestierungsfunktionen für unternehmenseigenen Geräten nutzen, für die nur ein Arbeitsprofil erforderlich ist.

Verbesserte Bereitstellungstools für Arbeitsprofile

Sie können Arbeitsprofile auf Geräten mit Android 10 und höher bereitstellen, die registriert sind mit QR-Code oder Zero-Touch. Ein neues Intent-Extra für die Bereitstellung unternehmenseigener Geräte ermöglicht Device Policy Controller Apps (DPCs) zum Initiieren von Arbeitsprofilen oder vollständig verwalteten einrichten. Nachdem ein Arbeitsprofil erstellt oder die vollständige Verwaltung eingerichtet wurde, müssen Bildschirme zur Richtliniencompliance starten, um anfängliche Richtlinien zu erzwingen.

Deklarieren Sie in der Manifestdatei Ihres DPC einen neuen Intent-Filter für GET_PROVISIONING_MODE in einer Aktivität und füge den BIND_DEVICE_ADMIN hinzu Berechtigung, um zu verhindern, dass beliebige Apps diese Aktivität starten. Beispiel:

<activity
    android:name=".GetProvisioningModeActivity"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <intent-filter>
        <action
            android:name="android.app.action.GET_PROVISIONING_MODE" />
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

Während der Bereitstellung startet das System die mit dem Intent-Filter. Zweck dieser Aktivität ist es, einen Verwaltungsmodus festzulegen (Arbeitsprofil oder vollständig verwaltet)

Es kann hilfreich sein, zusätzliche Bereitstellungszustände abzurufen, bevor Sie den entsprechenden Verwaltungsmodus für das Gerät auswählen. Die Aktivität kann getIntent() zum Abrufen Folgendes:

DPCs können auch einen neuen Ergebnis-Intent erstellen und ihm die folgenden Extras hinzufügen:

Um den Verwaltungsmodus auf dem Gerät festzulegen, rufen Sie putExtra(DevicePolicyManager.EXTRA_PROVISIONING_MODE,desiredProvisioningMode), Dabei steht desiredProvisioningMode für:

  • Arbeitsprofil: PROVISIONING_MODE_MANAGED_PROFILE
  • Vollständig verwaltet: PROVISIONING_MODE_FULLY_MANAGED_DEVICE

Arbeitsprofil oder vollständig verwaltete Bereitstellung durch Senden der Nutzerverwaltung abschließen Details zur Einrichtung über setResult(RESULT_OK, Intent) und schließen Sie alle aktiven Bildschirme finish()

Nach der Bereitstellung steht den DPCs ein neuer Intent zum Starten zur Verfügung Compliance-Bildschirme zu öffnen und anfängliche Richtlinieneinstellungen zu erzwingen. Im Arbeitsprofil werden im Arbeitsprofil die Compliance-Bildschirme angezeigt. Ihr DPC muss sicherstellen, dass seine Compliance-Bildschirme den Nutzern angezeigt werden, selbst wenn sie diese verlassen während der Einrichtung.

Deklarieren Sie in der Manifestdatei Ihres DPC einen neuen Intent-Filter für ADMIN_POLICY_COMPLIANCE in einer Aktivität und füge den BIND_DEVICE_ADMIN hinzu Berechtigung, um zu verhindern, dass beliebige Apps diese Aktivität starten. Beispiel:

<activity
    android:name=".PolicyComplianceActivity"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <intent-filter>
        <action android:name="android.app.action.ADMIN_POLICY_COMPLIANCE" />
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

Ihr DPC muss diesen neuen Intent verwenden, anstatt auf den ACTION_PROFILE_PROVISIONING_COMPLETE Nachricht an alle.

Die mit dem Intent-Filter verknüpfte Aktivität kann Folgendes aufrufen: getIntent() zum Abrufen die EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE Nach der Einhaltung der Richtlinien muss ADMIN_POLICY_COMPLIANCE setResult(RESULT_OK, Intent) zurückgeben und alle aktiven Bildschirme mit folgendem Symbol schließen: finish()

Auf vollständig verwalteten Geräten kehren Nutzer zum Startbildschirm zurück. Geräte mit Arbeitsprofil Nutzer auffordern, ihr privates Konto hinzuzufügen, bevor sie zu Hause zurückkehren Bildschirm.

Attestierung der Geräte-ID des Arbeitsprofils

DPCs, die als Administrator eines Arbeitsprofils festgelegt wurden, das über die Zero-Touch-Registrierung bereitgestellt wird Geräte-IDs wie die IMEI-Nummer oder die des Herstellers Seriennummer haben. Das Gerät muss sichere Hardware wie eine vertrauenswürdige Ausführungsumgebung (TEE) oder Secure Element (SE) und unterstützen Geräte-ID Attestierung und Zero-Touch-Registrierung.

Die Administratorkomponente eines Arbeitsprofils kann DevicePolicyManager.generateKeyPair() aufrufen und dabei ID_TYPE_SERIAL, ID_TYPE_IMEI oder ID_TYPE_MEID für das idAttestationFlags-Argument übergeben.

Weitere Informationen zum Extrahieren und Validieren von Geräte-IDs finden Sie unter Hardwaregestützte Schlüsselpaare mit Schlüsselattestierung verifizieren.

Verbesserungen am Arbeitsprofil

Neue APIs zur Unterstützung der profilübergreifenden Sichtbarkeit von Kalendern und App-Installationen aus unbekannten Quellen werden auf dem gesamten Gerät blockiert.

Arbeitsprofil, unbekannte Quellen auf dem gesamten Gerät

Apps, die von anderen Quellen als Google Play oder einer anderen vertrauenswürdigen App heruntergeladen wurden werden als Apps aus unbekannten Quellen bezeichnet. Unter Android 10 haben Administratoren der Arbeit Profile können Nutzer oder Profile daran hindern, Apps von unbekannten auf beliebigen Geräten auf dem Gerät finden, indem Sie die neue Nutzereinschränkung DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY Nach dem Hinzufügen dieser Einschränkung kann ein Nutzer des Geräts jedoch weiterhin Apps mithilfe von ADB installieren.

Um zu verhindern, dass Nutzer versehentlich Apps aus unbekannten Quellen installieren, empfehlen, diese Nutzereinschränkung hinzuzufügen, da dafür Google Play nicht erforderlich ist zu installierende Dienste. Ältere Android-Versionen können folgendermaßen unterstützt werden: Legen Sie einen Wert für die verwaltete Konfiguration für Google Play fest.

Zulässige Eingabegeräte auf Arbeitsprofile beschränken

Wenn Administratoren von Arbeitsprofilen DevicePolicyManager.setPermittedInputMethods() aufrufen, können Nutzer nur auf die zulässigen Eingabemethoden in ihrer Arbeit zugreifen statt des gesamten Geräts aus. So haben die Nutzenden volle Kontrolle über die Eingabe. auf der privaten Seite ihres Geräts.

Arbeitsprofile im Hintergrund löschen

WIPE_SILENTLY hinzugefügt Melden Sie sich in DevicePolicyManager.wipeData() an. Wenn das Flag gesetzt ist, werden Nutzer nicht benachrichtigt, nachdem ihr Arbeitsprofil gelöscht wurde mit wipeData().

Neue Funktionen für vollständig verwaltete Geräte

Mit Android 10 werden neue Funktionen und APIs für vollständig verwaltete Geräte eingeführt, darunter manuelle Systemupdates, die Ausweitung der QR-Code- und NFC-Bereitstellung auf sind die Anmeldedaten für ein EAP-WLAN und die Unterstützung von DNS-over-TLS enthalten.

Manuelle Installation von Systemupdates

In Android 10 können Administratoren von vollständig verwalteten Geräten Systemupdates über eine Datei mit Systemupdates. Mit manuellen Systemupdates können IT-Administratoren Folgendes tun:

  • Teste ein Update auf einer kleinen Anzahl von Geräten, bevor du es allgemein installierst.
  • Vermeiden Sie doppelte Downloads in Netzwerken mit begrenzter Bandbreite.
  • Installationen aufteilen oder Geräte nur dann aktualisieren, wenn sie nicht verwendet werden

Zuerst legt ein IT-Administrator eine Richtlinie für verzögerte Systemupdates fest. um die automatische Installation zu verzögern (falls erforderlich). Als Nächstes ruft der DPC eines Geräts installSystemUpdate() auf durch den Pfad zur Systemupdatedatei eines Geräteherstellers. Übergeben Sie ein InstallSystemUpdateCallback-Element Objekt, mit dem das System Fehler melden kann, die vor dem Gerät auftreten. neu gestartet. Wenn ein Fehler auftritt, ruft das System onInstallUpdateError() auf durch den Fehlercode.

Nach dem Neustart des Geräts muss der DPC die erfolgreiche Installation bestätigen mit einer Versions-API wie Build.FINGERPRINT Wenn das Update melden Sie den Fehler einem IT-Administrator.

EAP-WLAN-Bereitstellung

In Android 10 können QR-Codes und NFC-Daten, die für die Gerätebereitstellung verwendet werden, Folgendes enthalten: EAP-Konfiguration und -Anmeldedaten – einschließlich Zertifikaten. Wenn eine Person einen QR-Code scannt oder auf ein NFC-Tag tippt, authentifiziert sich das Gerät automatisch bei einem lokalen WLAN Netzwerk mit EAP und startet den Bereitstellungsprozess ohne zusätzliche manuelle Eingabe.

Um WLAN über EAP zu authentifizieren, füge ein EXTRA_PROVISIONING_WIFI_SECURITY_TYPE mit dem Wert "EAP". Um die EAP-Authentifizierung festzulegen, können Sie den folgende zusätzliche Extras für Ihren Intent:

Unterstützung für privates DNS

Organisationen können DNS-over-TLS verwenden. (auf Android-Geräten als Privates DNS bezeichnet), um DNS-Abfragen nicht bekannt zu machen. einschließlich der internen Hostnamen. Administratorkomponenten vollständig verwalteter Geräte kann die Einstellungen für das private DNS des Geräts steuern. So richten Sie den Modus „Privates DNS“ ein: Rufen Sie uns an:

Wenn Ihr DPC eine dieser Methoden aufruft, gibt das System PRIVATE_DNS_SET_NO_ERROR zurück, wenn Der Anruf war erfolgreich. Andernfalls wird ein Fehler zurückgegeben.

Rufen Sie getGlobalPrivateDnsMode() auf, um den Modus des privaten DNS und den auf einem Gerät festgelegten Host abzurufen und getGlobalPrivateDnsHost(). Sie können verhindern, dass Nutzer die Einstellungen für das private DNS ändern, indem Sie die DISALLOW_CONFIG_PRIVATE_DNS Nutzereinschränkung.

Ausnahme für VPN-Sperrmodus

Im VPN-Sperrmodus kann ein DPC jedes Netzwerk blockieren Zugriffe, bei denen keine das VPN. Administratoren von vollständig auf verwalteten Geräten und mit Arbeitsprofilen können Apps vom Sperrmodus ausgenommen werden. Ausgenommene Apps verwenden standardmäßig ein VPN, stellen aber automatisch eine Verbindung zu anderen Apps her wenn das VPN nicht verfügbar ist. Ausgenommene Apps, die auch explizit Zugriff verweigert auf VPN verwenden nur andere Netzwerke.

Um eine App vom Sperrmodus auszunehmen, rufen Sie die neue Methode DevicePolicyManager setAlwaysOnVpnPackage() die eine Liste ausgenommener App-Pakete akzeptiert. Alle vom DPC hinzugefügten App-Pakete muss beim Aufruf der Methode auf dem Gerät installiert werden. Wenn eine App deinstalliert und neu installiert wird, muss die App wieder ausgenommen werden. So holst du dir die Apps zuvor vom Sperrmodus ausgenommen, getAlwaysOnVpnLockdownWhitelist()

Damit Administratoren von vollständig verwalteten Geräten und Arbeitsprofilen den Sperrmodus erhalten fügt Android 10 die isAlwaysOnVpnLockdownEnabled() .

Neue Delegationsbereiche

Android 10 erweitert die Liste der Funktionen, die ein DPC an andere, mehr spezialisierten Anwendungen. Android gruppiert die für eine Aufgabe erforderlichen API-Methoden in Scopes. Rufen Sie zum Delegieren eines Bereichs setDelegatedScopes() und einen oder mehrere der folgenden Bereiche übergeben:

Android 10 führt die neue Klasse ein DelegatedAdminReceiver für bevollmächtigte Apps. Das System verwendet diesen Übertragungsempfänger, um DPC-ähnliche Callbacks zum Delegieren von Apps. Apps, denen Netzwerkaktivitäten delegiert wurden Logging und Zertifikatsauswahl sollte diese Klasse implementieren. So fügen Sie dies hinzu: -Komponente an eine delegierte App übergeben werden, gehen Sie folgendermaßen vor:

  1. Fügen Sie eine abgeleitete Klasse von DelegatedAdminReceiver hinzu an die Delegat-App gesendet.
  2. Deklarieren Sie die <receiver> im App-Manifest erstellen und dabei für jeden Callback eine Intent-Filteraktion hinzufügen. Beispiel: ACTION_NETWORK_LOGS_AVAILABLE oder ACTION_CHOOSE_PRIVATE_KEY_ALIAS.
  3. Übertragungsempfänger mit BIND_DEVICE_ADMIN schützen Berechtigung.

Das folgende Snippet zeigt das App-Manifest einer einzelnen Bevollmächtigten-App, die übernimmt sowohl die Netzwerkprotokollierung als auch die Zertifikatsauswahl:

<receiver android:name=".app.DelegatedAdminReceiver"
        android:permission="android.permission.BIND_DELEGATED_ADMIN">
    <intent-filter>
        <action android:name="android.app.admin.action.NETWORK_LOGS_AVAILABLE">
        <action android:name="android.app.action.CHOOSE_PRIVATE_KEY_ALIAS">
    </intent-filter>
    </receiver>

Protokollierung der Netzwerkaktivität

Damit Organisationen Malware erkennen und verfolgen können, können DPCs TCP-Verbindungen protokollieren und DNS-Lookups durch das System. In Android 10 Administratoren von vollständig verwalteten Netzwerkprotokollierung an eine spezialisierte App delegieren können.

Zum Abrufen von Netzwerkprotokollen nach dem macht einen Batch verfügbar, delegieren von Anwendungen zuerst abgeleitete Klassen. DelegatedAdminReceiver (wie zuvor beschrieben). Implementieren Sie in Ihrer abgeleiteten Klasse den Parameter onNetworkLogsAvailable() -Callbacks an, indem du der Anleitung unter Logs abrufen folgst.

Apps delegieren können Folgendes aufrufen DevicePolicyManager Methoden (null für das Argument admin wird übergeben):

Um den Verlust von Protokollen zu vermeiden, sollten DPCs die Netzwerkprotokollierung nicht aktivieren. an eine andere App delegieren möchten. Die Delegat-App sollte Netzwerkprotokolle zu erfassen. Nachdem ein DPC das Netzwerk-Logging delegiert, erhält er keine Weitere onNetworkLogsAvailable() Callbacks angegeben werden.

Weitere Informationen dazu, wie Sie das Logging der Netzwerkaktivität über eine delegierte App melden, finden Sie in der Entwicklerleitfaden zum Logging der Netzwerkaktivität.

Zertifikatauswahl

In Android 10: Administratoren von auf vollständig verwalteten Geräten, Arbeitsprofilen und sekundären Nutzern von der Zertifikatsauswahl bis zu einer spezialisierten App.

Zum Auswählen eines Zertifikatsalias müssen zuerst abgeleitete Klassen von Apps delegieren DelegatedAdminReceiver (wie zuvor beschrieben). Implementieren Sie in Ihrer abgeleiteten Klasse den Parameter onChoosePrivateKeyAlias()-Callback und gibt einen Alias für einen bevorzugten Zertifikat oder geben Sie null zurück, um den Nutzer zur Auswahl eines Zertifikats aufzufordern.

Einstellung von Richtlinien zur Geräteverwaltung

Android 10 verhindert, dass Apps und DPCs alte Geräte verwenden. Admin. Wir empfehlen Kunden, und Partner auf vollständig verwaltete Geräte oder Arbeitsprofile umstellen. Die folgenden lösen eine SecurityException aus wenn sie von einem Geräteadministrator aufgerufen wird, der auf Android 10 ausgerichtet ist:

Einige Anwendungen verwenden die Geräteverwaltung für die Geräteverwaltung für Verbraucher. Für z. B. das Sperren und Löschen eines verlorenen Geräts. Dazu gehen Sie so vor: sind weiterhin verfügbar:

Weitere Informationen zu diesen Änderungen finden Sie unter Geräteadministrator Einstellung.

Neue Funktionen für Apps

Apps, die auf Android 10 ausgerichtet sind, können die Komplexität der Displaysperre auf einem Gerät abfragen bevor vertrauliche Daten angezeigt oder wichtige Funktionen eingeführt werden. Apps anrufen Vorteile der KeyChain API durch verbessertes Verhalten und für VPN-Apps sind neue Funktionen verfügbar.

Qualitätsprüfung für Displaysperre

Ab Android 10 werden Apps mit wichtigen Funktionen, die eine Displaysperre erfordern, kann die Komplexität der Displaysperre eines Geräts oder Arbeitsprofils abfragen. Apps, die eine kann der Nutzer zu den Einstellungen für die Displaysperre des Systems weitergeleitet werden. damit sie ihre Sicherheitseinstellungen aktualisieren können.

So prüfen Sie die Qualität der Displaysperre:

Um die Einstellungen für die Displaysperre des Systems zu starten, verwenden Sie ACTION_SET_NEW_PASSWORD mit zusätzlichen EXTRA_PASSWORD_COMPLEXITY-Optionen, die nicht die im Intent „Extra“ angegebenen Komplexität erfüllen, sind ausgegraut. Nutzer können eine der verfügbaren Optionen für die Displaysperre auswählen oder den Bildschirm verlassen.

Best Practice:Zeigen Sie vor dem Starten des Systems eine Nachricht in Ihrer App an die Seite für die Displaysperre. Wenn die App fortgesetzt wird, DevicePolicyManager.getPasswordComplexity() noch einmal. Wenn trotzdem eine stärkere Displaysperre erforderlich ist, schränken Sie den Zugriff ein, anstatt Nutzer werden wiederholt aufgefordert, ihre Sicherheitseinstellungen zu aktualisieren.

HTTP-Proxy-Unterstützung in VPN-Anwendungen

In Android 10 können VPN-Apps einen HTTP-Proxy festlegen für die VPN-Verbindung. Um einen HTTP-Proxy hinzuzufügen, muss eine VPN-App eine ProxyInfo-Instanz mit einem Host und Port vor dem Anruf VpnService.Builder.setHttpProxy() Das System und viele Netzwerkbibliotheken verwenden diese Proxy-Einstellung, aber das System zwingt Apps nicht, HTTP-Anfragen über einen Proxy weiterzuleiten.

Beispielcode, der zeigt, wie ein HTTP-Proxy eingerichtet wird, finden Sie in der ToyVPN Beispiel-App.

VPN-Dienstmodi

VPN-Apps können erkennen, ob der Dienst ausgeführt wird, weil der Dienst immer aktiv ist. Vpn und wenn lockdown Modus aktiv ist. Neue Methoden die in Android 10 hinzugefügt wurden, können Sie Ihre Benutzeroberfläche anpassen. Zum Beispiel haben Sie wird möglicherweise deaktiviert, wenn der Lebenszyklus durch ein durchgehend aktives VPN gesteuert wird Ihrer Dienstleistung.

VPN-Apps können die folgenden VpnService aufrufen nach dem Herstellen einer Verbindung und die lokale Schnittstelle einrichten:

  • isAlwaysOn() bis Herausfinden, ob das System den Dienst aufgrund eines durchgehend aktiven VPNs gestartet hat
  • isLockdownEnabled() um herauszufinden, ob das System Verbindungen blockiert, die das VPN nicht verwenden

Der Status "Always-On" bleibt während der Ausführung des Dienstes gleich, Der Status des Sperrmodus kann sich ändern.

Verbesserungen am Schlüsselbund

Android 10 enthält einige Verbesserungen in Bezug auf die KeyChain API

Wenn eine App KeyChain.choosePrivateKeyAlias() aufruft, müssen Android 10 oder höher installiert sein Geräte filtern die Liste der Zertifikate, aus denen ein Nutzer basierend auf den Aussteller und Schlüsselalgorithmen, die im Aufruf angegeben wurden.

Beispiel: Ein TLS-Server sendet eine Zertifikatsanfrage im Rahmen eines TLS-Handshakes und durch Browseraufrufe KeyChain.choosePrivateKeyAlias(), nur die Aufforderung zur Zertifikatsauswahl enthält Optionen, die dem Parameter Aussteller entsprechen. Wenn keine Übereinstimmungstypen oder keine Zertifikate auf dem Gerät installiert sind, wird dem Nutzer nicht angezeigt.

Außerdem wurde KeyChain nicht mehr muss auf dem Gerät eine Displaysperre eingerichtet sein, bevor Schlüssel oder CA-Zertifikate übertragen werden können. importiert.