Megosztás a következőn keresztül:


Androidhoz készült Intune App SDK – Alkalmazás részvételi funkciói

Az Androidhoz készült Microsoft Intune App SDK lehetővé teszi, hogy intune alkalmazásvédelmi szabályzatokat (más néven APP - vagy MAM-szabályzatokat) építsen be a natív Java/Kotlin Android-alkalmazásba. Az Intune által felügyelt alkalmazások integrálva lesznek az Intune App SDK-val. Az Intune-rendszergazdák egyszerűen telepíthetnek alkalmazásvédelmi szabályzatokat az Intune által felügyelt alkalmazásokban, ha az Intune aktívan kezeli az alkalmazást.

Megjegyzés:

Ez az útmutató több különböző szakaszra oszlik. Először tekintse át az Integráció megtervezése című témakört.

7. szakasz: Alkalmazás részvételi funkciói

Szakaszcélok

  • Ismerje meg az Intune App SDK különböző alkalmazás-részvételi funkcióit.
  • Az alkalmazás és a felhasználók számára releváns alkalmazás-részvételi funkciók integrálása.
  • Tesztelje ezeknek a funkcióknak az integrációját.

Mik azok az "alkalmazás-részvételi funkciók"?

Ez az SDK-integrációs folyamat megpróbálja minimalizálni a fejlesztők által megírandó alkalmazásspecifikus kód mennyiségét. Az SDK-integráció korábbi szakaszainak sikeres végrehajtásával az alkalmazás mostantól kikényszerítheti az alkalmazásvédelmi szabályzat beállításainak többségét, például a fájltitkosítást, a másolási/beillesztési korlátozásokat, a képernyőképek blokkolását és az adatátviteli korlátozásokat.

Vannak azonban olyan beállítások, amelyek megkövetelik az alkalmazásspecifikus kód megfelelő kikényszerítését; ezeket alkalmazás-részvételi funkcióknak nevezzük. Az SDK általában nem rendelkezik elegendő kontextussal az alkalmazás kódjáról vagy a végfelhasználói forgatókönyvről a beállítások automatikus kikényszerítéséhez, ezért a fejlesztőkre támaszkodik az SDK API-k megfelelő meghívásához.

Az alkalmazás részvételi funkciói nem feltétlenül választhatók. Az alkalmazás meglévő funkcióitól függően szükség lehet ezekre a funkciókra. Részletekért lásd : Az SDK-integrációval kapcsolatos legfontosabb döntések .

Az útmutató korábbi szakaszai már ismertette az alkalmazások részvételi funkcióit:

Az útmutató további része az alkalmazás részvételi funkcióinak fennmaradó készletét ismerteti:

  • Kényszerítse ki a fájlok helyi vagy felhőbeli tárolóból történő mentését/megnyitását korlátozó szabályzatot.
  • Szabályzat kényszerítése az értesítések tartalmának korlátozására.
  • A biztonsági mentési adatok védelmére vonatkozó szabályzat kényszerítése.
  • A képernyőfelvételt korlátozó szabályzat kényszerítése (ha az alkalmazás egyéni képernyőfelvételi kóddal rendelkezik).
  • Alkalmazásvédelmi hitelesítésszolgáltató támogatása.
  • Regisztráljon az SDK értesítéseire.
  • Egyéni alkalmazás-témakör alkalmazása.
  • Az Intune megbízható tanúsítványainak használatával biztosíthatja a helyszíni végpontokhoz való megbízhatósági láncot.

Az alkalmazás részvételi funkciójával kapcsolatos alapvető tudnivalók

Az AppPolicy felület számos metódust tartalmaz, amelyek tájékoztatják az alkalmazást arról, hogy bizonyos műveletek engedélyezettek-e.

A legtöbb alkalmazás-részvételi funkció a következőket foglalja magában:

  • A megfelelő hely azonosítása az alkalmazás kódjában annak ellenőrzéséhez, hogy egy művelet engedélyezve van-e.
  • Metódus meghívása AppPolicy annak ellenőrzéséhez, hogy egy művelet engedélyezve van-e az aktuálisan konfigurált szabályzat alapján.
  • Az eredménytől függően engedélyezheti a művelet befejezését, vagy módosíthatja az alkalmazás viselkedését, amikor a művelet le van tiltva.

Egy AppPolicy példány lekéréséhez használja a MAMPolicyManager metódusok egyikét, például getPolicy(final Context context) a vagy getPolicyForIdentityOID(final String oid)a metódust.

Tájékoztató módszerek az AppPolicy-ban

Nem minden metódus AppPolicy kapcsolódik egy alkalmazás részvételi funkcióhoz. Egyes metódusok tájékoztató jellegűek, így az alkalmazás adatokat ad arról, hogy mely szabályzatok vannak jelenleg konfigurálva, még akkor is, ha az SDK automatikusan kikényszeríti ezeket a szabályzatokat. Ezek a módszerek lehetővé teszik az alkalmazás számára, hogy egyéni felhasználói élményt nyújtson adott szabályzatok konfigurálásakor.

Példa: Annak megállapítása, hogy a képernyőképek le vannak-e tiltva

Ha az alkalmazás rendelkezik olyan vezérlővel, amely lehetővé teszi, hogy a felhasználó képernyőképet készítsen, érdemes lehet letiltani vagy elrejteni a vezérlőt, ha az alkalmazásvédelmi szabályzatban le vannak tiltva a képernyőképek.

Az alkalmazás ezt a hívásával MAMPolicyManager.getPolicy(currentActivity).getIsScreenCaptureAllowed()ellenőrizheti.

Az alkalmazások és az eszközök vagy a felhőbeli tárolóhelyek közötti adatátvitel korlátozására vonatkozó szabályzat

Számos alkalmazás lehetővé teszi, hogy a végfelhasználó adatokat mentsen vagy nyisson meg a helyi fájltárolási vagy felhőalapú tárolási szolgáltatásokból. Az Intune App SDK lehetővé teszi a rendszergazdák számára, hogy védelmet nyújtsanak a bejövő adatokkal és az adatszivárgással szemben azáltal, hogy korlátozzák, hogy az alkalmazások hová menthetnek adatokat, és honnan nyithatnak meg adatokat.

Megjegyzés:

Ha az alkalmazás lehetővé teszi a személyes vagy felhőbeli helyekre való mentést közvetlenül az alkalmazásból , vagy lehetővé teszi az adatok közvetlenül az alkalmazásba való megnyitását, akkor implementálnia kell ezt az Intune App SDK alkalmazás-részvételi funkciót , hogy a rendszergazdák letilthassák ezt a mentést/ megnyitást.

Mentés eszközre vagy felhőtárhelyre

Az getIsSaveToLocationAllowedForOID API a konfigurált szabályzat alapján tudatja az alkalmazással, hogy engedélyezett-e a mentés bizonyos helyekre egy adott identitáshoz:

MAMPolicyManager.getPolicy(currentActivity).getIsSaveToLocationAllowedForOID(
SaveLocation service, String oid);

Annak megállapításához, hogy az alkalmazásnak végre kell-e hajtania az getIsSaveToLocationAllowedForOID ellenőrzést, az alábbi táblázat áttekintésével állapítsa meg, hogy az alkalmazás támogatja-e az adatforgalomból való kilépést:

service Paraméter: SaveLocation Számérték Használati eset Társított objektumazonosító
ONEDRIVE_FOR_BUSINESS Az alkalmazás adatokat ment a OneDrive-ra. A felhőszolgáltatás-hitelesítéshez és a Microsoft Entra-hitelesítéshez egyaránt használt fiók objektumazonosítója. Ha egy ilyen fiók nem létezik, vagy az objektumazonosító nem ismert, használja a következőt null: .
SHAREPOINT Az alkalmazás adatokat ment a SharePointba. A felhőszolgáltatás-hitelesítéshez és a Microsoft Entra-hitelesítéshez egyaránt használt fiók objektumazonosítója. Ha egy ilyen fiók nem létezik, vagy az objektumazonosító nem ismert, használja a következőt null: .
BOX Ez az alkalmazás adatokat ment a Boxba. A felhőszolgáltatás-hitelesítéshez és a Microsoft Entra-hitelesítéshez egyaránt használt fiók objektumazonosítója. Ha egy ilyen fiók nem létezik, vagy az objektumazonosító nem ismert, használja a következőt null: .
LOCAL Az alkalmazás olyan külső tárolóhelyre menti az adatokat az eszközön, amely nem az alkalmazás privát tárolója. A külső tároló nem minősül felhőszolgáltatásnak, ezért mindig objektumazonosító paraméterrel null kell használni.
PHOTO_LIBRARY Az alkalmazás az androidos helyi fényképtárolóba menti az adatokat. Az Android helyi fényképtárolója nem minősül felhőszolgáltatásnak, ezért mindig objektumazonosító paraméterrel null kell használni.
ACCOUNT_DOCUMENT Az alkalmazás olyan helyre menti az adatokat, amely az alkalmazáson belüli fiókhoz van társítva, és nem tartozik a fent megadott felhőbeli helyek közé. *Ezt a helyet kell használni annak meghatározásához, hogy az adatok továbbíthatók-e a fiókok között egy több identitást használó alkalmazáson belül.- Egy Microsoft Entra-hitelesítéshez használt fiók objektumazonosítója. Ha egy ilyen fiók nem létezik, vagy az objektumazonosító nem ismert, használja a következőt null: .
OTHER Az alkalmazás olyan helyre menti az adatokat, amely nincs megadva, és nem felel meg a feltételeknek.ACCOUNT_DOCUMENT A oid nincs kiértékelve ehhez a helyhez, ezért a következőnek kell lennie null: .

A privát alkalmazástárolóba helyezett, az alkalmazás működéséhez szükséges vagy ideiglenesen a megjelenítéshez letöltött fájlok mindig engedélyezettek; nem kell ellenőriznie a elemet getIsSaveToLocationAllowedForOID. Ellenőrizze a következőt SaveLocation.LOCAL :

  1. A privát alkalmazástárolón kívül mentett fájlok.
  2. A privát alkalmazástárolóba letöltött fájlok, amelyek nem szükségesek az alkalmazás működéséhez (például a felhasználó szándékosan az eszközre való letöltést választja).

Megjegyzés:

A mentési szabályzat ellenőrzésekor annak a fióknak az objektumazonosítójának kell lennie, oid amely a mentett felhőszolgáltatáshoz van társítva (nem feltétlenül ugyanaz, mint a mentett dokumentumot tartalmazó fiók).

Adatok megnyitása helyi vagy felhőalapú tárolási helyről

Az getIsOpenFromLocationAllowedForOID API a konfigurált szabályzat alapján tudatja az alkalmazással, hogy bizonyos helyekről való megnyitás engedélyezett-e egy adott identitáshoz:

MAMPolicyManager.getPolicy(currentActivity).getIsOpenFromLocationAllowedForOID(
OpenLocation location, String oid);

Annak megállapításához, hogy az alkalmazásnak implementálnia kell-e az getIsOpenFromLocationAllowedForOID ellenőrzést, az alábbi táblázat áttekintésével állapítsa meg, hogy az alkalmazás támogatja-e a bejövő adatforgalom használatát:

location Paraméter: OpenLocation Számérték Használati eset Társított objektumazonosító
ONEDRIVE_FOR_BUSINESS Az alkalmazás adatokat nyit meg a OneDrive-ról. A felhőszolgáltatás-hitelesítéshez és a Microsoft Entra-hitelesítéshez egyaránt használt fiók objektumazonosítója. Ha egy ilyen fiók nem létezik, vagy az objektumazonosító nem ismert, használja a következőt null: .
SHAREPOINT Az alkalmazás adatokat nyit meg a SharePointból. A felhőszolgáltatás-hitelesítéshez és a Microsoft Entra-hitelesítéshez egyaránt használt fiók objektumazonosítója. Ha egy ilyen fiók nem létezik, vagy az objektumazonosító nem ismert, használja a következőt null: .
CAMERA Az alkalmazás adatokat nyit meg a kameráról. Érték null , mert az eszköz kamerája nem felhőszolgáltatás.
LOCAL Az alkalmazás olyan külső tárolóhelyről nyitja meg az adatokat az eszközön, amely nem az alkalmazás privát tárolója. Bár a külső tároló nem felhőszolgáltatás-hely, egy oid paraméterre azért van számítani, mert tulajdonjogot jelez.
Amikor helyi tárolóból nyit meg egy fájlt, a fájl tulajdonosát mindig figyelembe kell venni, mert a fájltulajdonos mentési szabályzata engedélyezheti vagy tilthatja más identitások számára a fájl megnyitását:
- Identitáscímkézett fájlok esetén:oid A fájltulajdonos identitásának kell lennie.
- Identitáscímke nélküli fájlok esetén:oid A-nek kell lennie null.
PHOTO_LIBRARY Az alkalmazás adatokat nyit meg androidos fényképes helyi tárolóból. Az Android helyi fényképtárolója nem minősül felhőszolgáltatásnak, ezért mindig objektumazonosító paraméterrel null kell használni.
ACCOUNT_DOCUMENT Az alkalmazás olyan helyről nyitja meg az adatokat, amely az alkalmazáson belüli fiókhoz van társítva, és nem tartozik a fent megadott felhőbeli helyek közé. *Ezt a helyet kell használni annak meghatározásához, hogy az adatok továbbíthatók-e a fiókok között egy több identitást használó alkalmazáson belül.- Egy Microsoft Entra-hitelesítéshez használt fiók objektumazonosítója. Ha egy ilyen fiók nem létezik, vagy az objektumazonosító nem ismert, használja a következőt null: .
OTHER Az alkalmazás olyan helyről nyitja meg az adatokat, amely nincs megadva, és nem felel meg a feltételeknek.ACCOUNT_DOCUMENT A oid nincs kiértékelve ehhez a helyhez, ezért a következőnek kell lennie null: .

Megjegyzés:

A nyitott szabályzat ellenőrzésekor annak a fióknak az objektumazonosítójának kell lennie, oid amely ahhoz a fájlhoz vagy felhőszolgáltatáshoz van társítva, amelyből meg van nyitva (nem feltétlenül ugyanaz, mint a dokumentumot megnyitó fiók).

Tipp

A kényelem érdekében az SDK biztosítja azt a metódust AppPolicy.isOpenFromLocalStorageAllowed , amely egy File helyi tárolóban lévő fájl paraméterét veszi fel. Ez a szabályzat kikényszerítésének feltételei, funkcionálisan megegyezik a hívással AppPolicy.getIsOpenFromLocationAllowedForOID(OpenLocation.LOCAL, oid) , kivéve, ha kezeli a fájl tulajdonosának elemzését oid a Filefájlból.

Megosztás letiltva párbeszédpanel

Az SDK egy párbeszédpanelt biztosít, amely értesíti a felhasználót arról, hogy a MAM-szabályzat blokkolt egy adatátviteli műveletet.

A párbeszédpanelnek mindig meg kell jelennie a felhasználó számára, amikor a vagy getIsOpenFromLocationAllowedForOID API-hívás getIsSaveToLocationAllowedForOID a mentési/megnyitási művelet letiltását eredményezi. A párbeszédpanel egy általános üzenetet jelenít meg, és vissza fog térni a híváshoz, amikor a rendszer Activity bezárja.

A párbeszédpanel megjelenítéséhez adja hozzá a következő kódot:

MAMUIHelper.showSharingBlockedDialog(currentActivity)

Fájlmegosztás engedélyezése

Ha a nyilvános tárolóhelyekre való mentés nem engedélyezett, az alkalmazásnak továbbra is engedélyeznie kell a felhasználó számára a fájlok megtekintését, ha letölti őket az alkalmazás privát tárolójához , majd megnyitja őket a rendszerválasztóval.

Szabályzat az értesítéseken belüli tartalom korlátozásához

Az egy identitással ellátott alkalmazások esetében az Intune App SDK alapértelmezett viselkedése megpróbálja letiltani az összes értesítést, ha az alkalmazásvédelmi szabályzat korlátozza az értesítéseket.

Az SDK alapértelmezett viselkedése korlátozott. Az SDK nem tudja automatikusan figyelembe venni a "Szervezeti adatok blokkolása" értéket, amelynek célja, hogy csak a felügyelt tartalmakat távolítsa el az értesítésekből. A több identitással rendelkező alkalmazások esetében az SDK nem tudja meghatározni, hogy mely értesítések tartalmaznak felügyelt tartalmat.

Ha az alkalmazás értesítéseket jelenít meg, és vagy többszörös identitású, és/vagy meg szeretné tartani a "Szervezeti adatok letiltása" értéket, az értesítés megjelenítése előtt ellenőriznie kell az értesítéshez társított fiók értesítéskorlátozási szabályzatát.

Annak megállapításához, hogy a szabályzat kényszerítve van-e, hajtsa végre a következő hívást:

NotificationRestriction notificationRestriction =
    MAMPolicyManager.getPolicyForIdentityOID(notificationIdentityOid).getNotificationRestriction();

A visszaadott NotificationRestriction enumerálás a következő értékeket tartalmazza:

NotificationRestriction Enumerálás Az alkalmazás várt viselkedése
BLOCKED Az alkalmazás nem jeleníthet meg értesítéseket a szabályzathoz társított fiókról. Az egy identitással ellátott alkalmazások esetében az Intune App SDK automatikusan letiltja az összes értesítést, és nincs szükség további kódra.
BLOCK_ORG_DATA Az alkalmazásnak olyan módosított értesítést kell megjelenítenie, amely nem tartalmaz szervezeti adatokat.
UNRESTRICTED Az alkalmazásnak minden értesítést meg kell jelenítenie.

Ha az alkalmazás nem hívja meg getNotificationRestrictionmegfelelően a parancsot, a MAM SDK mindent megtesz annak érdekében, hogy csak az egy identitással rendelkező alkalmazások értesítéseit korlátozza automatikusan.

Ebben az esetben a ugyanúgy lesz kezelve, BLOCK_ORG_DATA mint BLOCKED , és az értesítés egyáltalán nem jelenik meg.

A részletesebb szabályozás érdekében ellenőrizze az alkalmazásértesítések getNotificationRestriction értékét, és módosítsa megfelelően.

Biztonsági mentési adatok védelmére vonatkozó szabályzat

Az Intune App SDK letilthatja az adatok feltöltését az Android beépített biztonsági mentési és visszaállítási funkciójára. Ha többet szeretne megtudni az Android biztonsági mentéséről és visszaállításáról, tekintse meg az Android API útmutatóját és az Android S / 12-ben bevezetett módosításokat itt: Váltás biztonsági mentésre és visszaállításra.

Alkalmazások automatikus biztonsági mentése

Az Android M-től kezdve az Android automatikusan teljes biztonsági mentéseket kezdett elérhetővé tenni a Google Drive-nak az alkalmazásokhoz, függetlenül az alkalmazás cél API-tól.

Az Intune lehetővé teszi az Androidon elérhető összes automatikus biztonsági mentési funkció használatát, beleértve az egyéni szabályok XML-ben való definiálásának lehetőségét, valamint adott Intune-integrációs útmutatót az adatvédelem alkalmazásának biztosításához.

A biztonsági mentés viselkedésének konfigurálása az alkalmazás jegyzékfájljában

A alapértelmezés szerint android:allowBackuptrue (igaz ) értékre van állítva a biztonsági mentés engedélyezésével és letiltásával kapcsolatos cikkben leírtak szerint.

Ha az alkalmazás nem igényel teljes biztonsági mentési és visszaállítási funkciót, állítsa false (hamis) értékreandroid:allowBackup. Ebben az esetben nincs szükség további beavatkozásra, és a "vállalati" adatok az alkalmazásban maradnak.

Ha az alkalmazás teljes biztonsági mentési és visszaállítási funkciót igényel, állítsa true (igaz) értékreandroid:allowBackup, és hajtsa végre a következő lépéseket:

  1. Ha az alkalmazás nem a saját egyéni BackupAgentkiszolgálóját használja, az alapértelmezett MAMBackupAgenttel engedélyezheti az Intune-szabályzatnak megfelelő automatikus teljes biztonsági mentéseket. Helyezze a következőket az alkalmazásjegyzékbe:

    <application
    ...
      android:fullBackupOnly="true"
      android:backupAgent="com.microsoft.intune.mam.client.app.backup.MAMDefaultBackupAgent"
      ...>
      </application>
    
  2. [Nem kötelező] Ha egy választható egyéni BackupAgentelemet implementált, mindenképpen a MAMBackupAgent vagy a MAMBackupAgentHelper elemet kell használnia. Lásd az alábbi szakaszokat. Fontolja meg az 1. lépésben leírt, az Intune MAMDefaultBackupAgentjének használatára való váltást, amely egyszerű biztonsági mentést biztosít Android M és újabb eszközökön.

  3. Amikor eldönti, hogy az alkalmazás milyen típusú teljes biztonsági mentést kapjon (szűretlen, szűrt vagy nincs), az attribútumot android:fullBackupContent true (igaz), false (hamis) vagy XML-erőforrásra kell állítania az alkalmazásban.

  4. Ezután át kell másolnia a értékét android:fullBackupContent a com.microsoft.intune.mam.FullBackupContent metaadatcímkébe, valamint az API 31-ben hozzáadott új XML-konfigurációs formátumot támogató alkalmazások esetében a com.microsoft.intune.mam.DataExtractionRules metaadatcímkébe.

    • 1. példa: Ha azt szeretné, hogy az alkalmazás kivétel nélkül készítsen teljes biztonsági mentést, az attribútumokat és a metaadatcímkéket true (igaz) értékre kell állítania:

      <application
        ...
        android:fullBackupContent="true"
        ...>
      </application>
      ...
      <meta-data android:name="com.microsoft.intune.mam.FullBackupContent" android:value="true" />
      <meta-data android:name="com.microsoft.intune.mam.DataExtractionRules" android:value="true" />
      
    • 2. példa: Ha azt szeretné, hogy az alkalmazás az egyéni BackupAgent és a teljes, Intune-szabályzatnak megfelelő, automatikus biztonsági mentéseket használja, az attribútumokat és a metaadatcímkéket false (hamis) értékre kell állítania:

      <application
        ...
        android:fullBackupContent="false"
        ...>
      </application>
      ...
      <meta-data android:name="com.microsoft.intune.mam.FullBackupContent" android:value="false" />
      <meta-data android:name="com.microsoft.intune.mam.DataExtractionRules" android:value="false" />
      
    • 3. példa: Ha azt szeretné, hogy az alkalmazás teljes biztonsági másolatokkal rendelkezzen az XML-fájlban meghatározott egyéni szabályoknak megfelelően, állítsa az attribútumot és a metaadatcímkét ugyanarra az XML-erőforrásra:

      <application
        ...
        android:fullBackupContent="@xml/my_full_backup_content_scheme"
        android:dataExtractionRules="@xml/my_data_extraction_rules_scheme"
        ...>
      </application>
      ...
      <meta-data android:name="com.microsoft.intune.mam.FullBackupContent" android:resource="@xml/my_full_backup_content_scheme" />
      <meta-data android:name="com.microsoft.intune.mam.DataExtractionRules" android:resource="@xml/my_data_extraction_rules_scheme" />
      

Kulcs/érték biztonsági mentése

A Kulcs/érték biztonsági mentés lehetőség minden 8- vagy újabb API számára elérhető, és feltölti az alkalmazásadatokat az Android Backup Service-be. Az alkalmazásonkénti adatmennyiség legfeljebb 5 MB lehet. Kulcs/érték biztonsági mentés használata esetén backupAgentHelpert vagy BackupAgentet kell használnia.

BackupAgentHelper

A BackupAgentHelper könnyebben implementálható, mint a BackupAgent a natív Android-funkciók és az Intune MAM-integráció szempontjából a BackupAgentHelper lehetővé teszi, hogy a fejlesztő teljes fájlokat és megosztott beállításokat regisztráljon egy FileBackupHelper és SharedPreferencesBackupHelper (vagy) rendszeren, amelyeket a létrehozáskor hozzáad a BackupAgentHelperhez. A BackupAgentHelper intune MAM-tal való használatához kövesse az alábbi lépéseket:

  1. Ha a többszörös identitású biztonsági mentést egy BackupAgentHelperhasználatával szeretné használni, kövesse a BackupAgentHelper kiterjesztését ismertető Android-útmutatót.

  2. Az osztály bővítse ki a BackupAgentHelper, a FileBackupHelper és a SharedPreferencesBackupHelper MAM-megfelelőt.

Android-osztály MAM-megfelelő
BackupAgentHelper MAMBackupAgentHelper
FileBackupHelper MAMFileBackupHelper
SharedPreferencesBackupHelper MAMSharedPreferencesBackupHelper

Ezeknek az irányelveknek a követésével sikeres lesz a több identitás biztonsági mentése és visszaállítása.

BackupAgent

A BackupAgent segítségével sokkal pontosabban meghatározhatja, hogy mely adatokról készül biztonsági másolat. Mivel a implementációért meglehetősen a fejlesztő a felelős, további lépésekre van szükség az Intune megfelelő adatvédelmének biztosításához. Mivel a munka nagy része a fejlesztőt érinti, az Intune-integráció valamivel nagyobb szerepet játszik.

A MAM integrálása:

  1. Figyelmesen olvassa el a Kulcs/érték biztonsági mentés androidos útmutatóját, és különösen a BackupAgent kiterjesztését annak érdekében, hogy a BackupAgent implementációja kövesse az Android irányelveit.

  2. Az osztály bővítse ki a MAMBackupAgent elemet.

Többszörös identitás biztonsági mentése:

  1. A biztonsági mentés megkezdése előtt ellenőrizze, hogy a rendszergazda valóban engedélyezi-e a biztonsági mentésre tervezett fájlokat vagy adatpuffereket több identitással kapcsolatos forgatókönyvekben. Ennek meghatározásához használja isBackupAllowed a MAMFileProtectionManager és a MAMDataProtectionManager függvényt. Ha a fájlról vagy az adatpufferről nem lehet biztonsági másolatot készíteni, akkor ne vegye fel a biztonsági mentésbe.

  2. Ha a biztonsági mentés során biztonsági másolatot szeretne készíteni az 1. lépésben megadott fájlok identitásáról, azokat a fájlokat kell meghívnia backupMAMFileIdentity(BackupDataOutput data, File … files) , amelyekből adatokat szeretne kinyerni. Ez automatikusan létrehoz új biztonsági mentési entitásokat, és beírja őket a BackupDataOutput fájlba. Ezeket az entitásokat a rendszer automatikusan felhasználja a visszaállításkor.

Többszörös identitás visszaállítása: Az adatmentési útmutató egy általános algoritmust határoz meg az alkalmazás adatainak visszaállításához, és egy kódmintát biztosít a BackupAgent kiterjesztése szakaszban. A sikeres többszörös identitás-visszaállításhoz a kódmintában szereplő általános struktúrát kell követnie, különös figyelmet fordítva a következőkre:

  1. A biztonsági mentési entitások végighaladásához * hurkot while(data.readNextHeader())kell használnia.

  2. Ha nem egyezik meg a fájlban megadott kulccsal, akkor hívja data.skipEntityData()data.getKey() meg a következőtonBackup: . A lépés végrehajtása nélkül előfordulhat, hogy a visszaállítások nem lesznek sikeresek.

  3. Kerülje a visszatérést a biztonsági mentési entitások * szerkezetben while(data.readNextHeader())való felhasználása során, mivel az automatikusan írt entitások elvesznek.

  • Hol data található a MAMBackupDataInput helyi változójának neve, amelyet a rendszer a visszaállításkor ad át az alkalmazásnak.

Egyéni képernyőrögzítési korlátozások

Ha az alkalmazás olyan egyéni képernyőrögzítési funkciót tartalmaz, amely megkerüli az Android -level FLAG_SECURE korlátozásátWindow, akkor a funkcióhoz való teljes hozzáférés engedélyezése előtt ellenőriznie kell a képernyőfelvételi szabályzatot. Ha például az alkalmazás egyéni renderelő motort használ az aktuális nézet PNG-fájlba való megjelenítéséhez, először ellenőriznie kell a következőt AppPolicy.getIsScreenCaptureAllowed(): .

Megjegyzés:

Ha az alkalmazás nem tartalmaz egyéni vagy külső képernyőrögzítési funkciókat, nem kell semmilyen műveletet elvégeznie a képernyőfelvételek korlátozásához. A képernyőfelvételi szabályzat automatikusan érvénybe lép az Window összes MAM-integrált alkalmazás szintjén. Az operációs rendszer vagy egy másik alkalmazás által az alkalmazásban való rögzítésre Window tett kísérletek szükség szerint le lesznek tiltva. Ha például egy felhasználó megkísérli rögzíteni az alkalmazás képernyőjét az Android beépített képernyőképén vagy képernyőfelvételi funkcióin keresztül, a rögzítés automatikusan korlátozva lesz az alkalmazás részvétele nélkül.

Alkalmazásvédelmi hitelesítésszolgáltató támogatása

Az Alkalmazásvédelmi hitelesítésszolgáltató (feltételes hozzáférés), más néven az alkalmazásalapú hitelesítésszolgáltató mindaddig korlátozza az erőforrásokhoz való hozzáférést, amíg az alkalmazást az Intune alkalmazásvédelmi szabályzatai nem kezelik. A Microsoft Entra-azonosító ezt úgy kényszeríti ki, hogy megköveteli, hogy az alkalmazást regisztrálja és kezelje az APP, mielőtt jogkivonatot ad egy hitelesítésszolgáltató által védett erőforrás eléréséhez.

Megjegyzés:

Az App Protection hitelesítésszolgáltató támogatásához az MSAL-kódtár 1.0.0-s (vagy újabb) verziója szükséges.

Az MSAL-nek való meg nem felelés kezelése

Amikor jogkivonatot szerez be egy fiókhoz, az MSAL-kódtár visszaadhat vagy dobhat egy értéket MsalIntuneAppProtectionPolicyRequiredException , amely jelzi, hogy nem felel meg az alkalmazásvédelmi szabályzatkezelésnek. További paraméterek nyerhetők ki a kivételből a megfelelőség szervizelése során való használathoz (lásd: MAMComplianceManager). Ha a szervizelés sikeres volt, az alkalmazás újra tudja végezni a jogkivonat beszerzését az MSAL-ben.

MAMComplianceManager

A MAMComplianceManager felületet akkor használja a rendszer, ha a szabályzathoz szükséges hiba az MSAL-től érkezik. Tartalmazza a [remediateCompliance] metódust, amelyet meg kell hívni az alkalmazás megfelelő állapotba helyezésének megkísérléséhez. A hivatkozás a MAMComplianceManager következő módon kérhető le:

MAMComplianceManager mgr = MAMComponents.get(MAMComplianceManager.class);

// make use of mgr

A MAMComplianceManager visszaadott példány garantáltan nem lesz null.

package com.microsoft.intune.mam.policy;

public interface MAMComplianceManager {
    void remediateCompliance(String upn, String aadId, String tenantId, String authority, boolean showUX);
}

A remediateCompliance() metódus azért van meghívva, hogy megpróbálja felügyelet alá helyezni az alkalmazást, hogy megfeleljen a Microsoft Entra ID-nak a kért jogkivonat megadásához szükséges feltételeknek. Az első négy paraméter az MSAL AuthenticationCallback.onError() metódus által kapott kivételből nyerhető ki (lásd az alábbi kódmintát). Az utolsó paraméter egy logikai érték, amely azt szabályozza, hogy megjelenik-e egy felhasználói felület a megfelelőségi kísérlet során.

remediateCompliance egy egyszerű blokkolási folyamatjelző párbeszédpanelt jelenít meg, hogy az alkalmazásoknak ne kelljen testreszabott felhasználói felületet megjelenítenie a művelet során. Ez a párbeszédpanel csak akkor jelenik meg, ha a megfelelőségi szervizelés folyamatban van; nem jeleníti meg a végeredményt. Az alkalmazás regisztrálhat egy fogadót az COMPLIANCE_STATUS értesítéshez a megfelelőségi javítási kísérlet sikeres vagy sikertelen kezelése érdekében. A részletekért lásd: Megfelelőségi állapotértesítések .

remediateCompliance() mam-regisztrációt kezdeményezhet a megfelelőség megállapításának részeként. Előfordulhat, hogy az alkalmazás regisztrációs értesítést kap, ha regisztrált egy értesítés-fogadót a regisztrációs értesítésekhez. Az alkalmazás regisztrált MAMServiceAuthenticationCallback metódusa acquireToken() meghívva lesz, hogy lekérjen egy jogkivonatot a regisztrációhoz. acquireToken() a rendszer meghívja, mielőtt az alkalmazás saját jogkivonatot szerez be, így előfordulhat, hogy az alkalmazás által a sikeres tokenbeszerzés után végzett könyvelési vagy fióklétrehozási feladatok még nem történtek meg. Ebben az esetben a visszahívásnak képesnek kell lennie jogkivonat beszerzésére.

Ha nem tud jogkivonatot visszaadni a következőből acquireToken(): , a megfelelőségi javítási kísérlet sikertelen lesz.

Ha később egy érvényes jogkivonattal hívja updateToken meg a kért erőforrást, a rendszer azonnal meg fogja próbálni a megfelelőségi szervizelést a megadott jogkivonattal.

Megjegyzés:

A csendes jogkivonat beszerzése továbbra is lehetséges acquireToken() lesz, mert a felhasználó már a kivétel fogadása előtt MsalIntuneAppProtectionPolicyRequiredException a közvetítő telepítéséhez és az eszköz regisztrálásához lesz irányítva. Ez azt eredményezi, hogy a közvetítő érvényes frissítési jogkivonattal rendelkezik a gyorsítótárában, így a kért jogkivonat csendes beszerzése sikeres lesz.

Íme egy példa a szabályzathoz szükséges hiba metódusban AuthenticationCallback.onError() való fogadására, és a MAMComplianceManager meghívására a hiba kezelésére.

public void onError(@Nullable MsalException exc) {
    if (exc instanceof MsalIntuneAppProtectionPolicyRequiredException) {

        final MsalIntuneAppProtectionPolicyRequiredException policyRequiredException =
            (MsalIntuneAppProtectionPolicyRequiredException) ex;

        final String upn = policyRequiredException.getAccountUpn();
        final String aadId = policyRequiredException.getAccountUserId();
        final String tenantId = policyRequiredException.getTenantId();
        final String authority = policyRequiredException.getAuthorityURL();

        MAMComplianceManager complianceManager = MAMComponents.get(MAMComplianceManager.class);
        complianceManager.remediateCompliance(upn, aadId, tenantId, authority, showUX);
    }
}

Megfelelőségi állapotértesítések

Ha az alkalmazás regisztrál a típusú COMPLIANCE_STATUSértesítésekre, MAMComplianceNotification a lesz elküldve, hogy tájékoztassa az alkalmazást a megfelelőségi javítási kísérlet végleges állapotáról. A regisztrációval kapcsolatos részletekért lásd: Regisztráció az SDK értesítéseihez .

public interface MAMComplianceNotification extends MAMUserNotification {
    MAMCAComplianceStatus getComplianceStatus();
    String getComplianceErrorTitle();
    String getComplianceErrorMessage();
}

A getComplianceStatus() metódus a megfelelőségi szervizelési kísérlet eredményét adja vissza a [MAMCAComplianceStatus] enumerálás értékeként.

Állapotkód Magyarázat
UNKNOWN Az állapot ismeretlen. Ez nem várt hiba okára utalhat. További információk a Céges portál naplóiban találhatók.
COMPLIANT A megfelelőségi szervizelés sikeres volt, és az alkalmazás már megfelel a szabályzatnak. Az MSAL-jogkivonat beszerzését újra meg kell próbálni.
NOT_COMPLIANT A megfelelőség szervizelésére tett kísérlet nem sikerült. Az alkalmazás nem megfelelő, és az MSAL-jogkivonat beszerzését nem szabad újrapróbálkoznia, amíg a hibaállapot ki nem javítva. A RENDSZER további hibainformációkat küld a MAMComplianceNotification paranccsal.
SERVICE_FAILURE Hiba történt a megfelelőségi adatok intune-ból való lekérése közben. További információk a Céges portál naplóiban találhatók.
NETWORK_FAILURE Hiba történt az Intune szolgáltatáshoz való csatlakozáskor. Az alkalmazásnak újra meg kell próbálnia a jogkivonat beszerzését a hálózati kapcsolat visszaállításakor.
CLIENT_ERROR A megfelelőség szervizelésére tett kísérlet az ügyfélhez kapcsolódó valamilyen okból meghiúsult. Például nincs jogkivonat vagy rossz felhasználó. A RENDSZER további hibainformációkat küld a MAMComplianceNotification paranccsal.
PENDING A megfelelőség szervizelésére tett kísérlet nem sikerült, mert az állapotválasz még nem érkezett meg a szolgáltatástól, amikor túllépte az időkorlátot. Az alkalmazásnak később újra meg kell próbálnia a jogkivonat beszerzését.
COMPANY_PORTAL_REQUIRED A megfelelőségi szervizelés sikerességéhez telepíteni kell a Vállalati portált az eszközön. Ha a Céges portál már telepítve van az eszközön, az alkalmazást újra kell indítani. Ebben az esetben megjelenik egy párbeszédpanel, amely arra kéri a felhasználót, hogy indítsa újra az alkalmazást.

Ha a megfelelőségi állapot MAMCAComplianceStatus.COMPLIANT, az alkalmazásnak újra meg kell ismételnie az eredeti jogkivonat beszerzését (a saját erőforrásához).

Ha a megfelelőségi javítási kísérlet sikertelen volt, a és getComplianceErrorMessage() a getComplianceErrorTitle() metódusok olyan honosított sztringeket ad vissza, amelyeket az alkalmazás megjeleníthet a végfelhasználónak, ha úgy dönt. A legtöbb hibaesetet az alkalmazás nem tudja elhárítani, ezért általános esetben a legjobb megoldás lehet a fiók létrehozása vagy a bejelentkezés meghiúsulása, és a felhasználó később újrapróbálkozhat.

Ha egy hiba állandó, a Vállalati portál naplói segíthetnek meghatározni az okot. A végfelhasználó elküldheti a naplókat. További információ: Feltöltési és e-mail-naplók.

Íme egy példa arra, hogyan regisztrálhat egy fogadót egy névtelen osztály használatával a MAMNotificationReceiver felület implementálásához:

final MAMNotificationReceiverRegistry notificationRegistry = MAMComponents.get(MAMNotificationReceiverRegistry.class);
// create a receiver
final MAMNotificationReceiver receiver = new MAMNotificationReceiver() {
    public boolean onReceive(MAMNotification notification) {
        if (notification.getType() == MAMNotificationType.COMPLIANCE_STATUS) {
            MAMComplianceNotification complianceNotification = (MAMComplianceNotification) notification;
            
            // take appropriate action based on complianceNotification.getComplianceStatus()
            
            // unregister this receiver if no longer needed
            notificationRegistry.unregisterReceiver(this, MAMNotificationType.COMPLIANCE_STATUS);
        }
        return true;
    }
};
// register the receiver
notificationRegistry.registerReceiver(receiver, MAMNotificationType.COMPLIANCE_STATUS);

Megjegyzés:

Az értesítés fogadójának regisztrálva kell lennie a hívás remediateCompliance() előtt, hogy elkerülje az olyan versenyhelyzetet, amely az értesítés kihagyásához vezethet.

Az App Protection hitelesítésszolgáltató támogatásának deklarálása

Ha az alkalmazás készen áll az alkalmazás hitelesítésszolgáltatói szervizelésére, megadhatja a Microsoft Identitynek, hogy az alkalmazás készen áll az alkalmazás ca-ra. Ehhez az MSAL-alkalmazásban hozza létre a nyilvános ügyfelet a "protapp" ügyfélképességei használatával

{
      "client_id" : "[YOUR_CLIENT_ID]",
      "authorization_user_agent" : "DEFAULT",
      "redirect_uri" : "[YOUR_REDIRECT_URI]",
      "multiple_clouds_supported":true,
      "broker_redirect_uri_registered": true,
      "account_mode": "MULTIPLE",
      "client_capabilities": "protapp",
      "authorities" : [
        {
          "type": "AAD",
          "audience": {
            "type": "AzureADandPersonalMicrosoftAccount"
          }
        }
      ]
    }

A fentiek elvégzése után folytassa az appvédelmi hitelesítésszolgáltató ellenőrzésével az alábbi lépéssel.

Végrehajtási megjegyzések

Megjegyzés:

Az alkalmazás metódusának MAMServiceAuthenticationCallback.acquireToken()false értéket kell megadnia a jelölő számáraforceRefresh.acquireTokenSilentAsync()

AcquireTokenSilentParameters acquireTokenSilentParameters =
        builder.withScopes(Arrays.asList(scopes))
               .forceRefresh(false)
               .build();

acquireTokenSilentAsync(acquireTokenSilentParameters);

Megjegyzés:

Ha a szervizelési kísérlet során egyéni blokkoló felhasználói felületet szeretne megjeleníteni, a showUX paramétert false (hamis ) értéknek kell megadnia a következőnek: remediateCompliance(). A hívása remediateCompliance()előtt meg kell győződnie arról, hogy meg kell jelenítenie a felhasználói felületét, és regisztrálnia kell az értesítésfigyelőt. Ez megakadályozza a versenyhelyzetet, ahol az értesítés nagyon gyorsan meghiúsulhat remediateCompliance() . Egy Tevékenység alosztály vagy onMAMCreate() metódusa például onCreate() ideális hely az értesítés-figyelő regisztrálásához, majd a meghívásáhozremediateCompliance(). A paraméterei remediateCompliance() szándék-extrákként adhatók át a felhasználói felületnek. A megfelelőségi állapotról szóló értesítés érkezésekor megjelenítheti az eredményt, vagy egyszerűen befejezheti a tevékenységet.

Megjegyzés:

remediateCompliance() regisztrálja a fiókot, és megkísérli a regisztrációt. A fő jogkivonat beszerzése után nincs szükség hívásra registerAccountForMAM() , de ennek nincs semmi baja. Ha azonban az alkalmazás nem tudja beszerezni a jogkivonatát, és el szeretné távolítani a felhasználói fiókot, meg kell hívnia a fiókot unregisterAccountForMAM() , és meg kell akadályoznia a háttérben futó regisztráció újrapróbálkozásait.

Regisztráció az SDK értesítéseihez

Az Intune App SDK útmutatója már több olyan forgatókönyvet is tárgyalt, ahol előfordulhat, hogy az alkalmazásnak regisztrálnia kell az SDK értesítéseihez, például:

Ez a szakasz ismerteti az SDK által küldhető összes értesítéstípust, azt, hogy az alkalmazás mikor és miért szeretné figyelni, valamint az értesítés-fogadó implementálásának módját.

Az értesítések típusai

Minden SDK-értesítés implementálja a MAMNotification felületet, amely egyetlen függvénnyel rendelkezik, getType()és MAMNotificationType enumerálást ad vissza.

A legtöbb értesítés MAMUserNotifications, amelyek egyetlen identitásra vonatkozó információkat biztosítanak. Az identitás objektumazonosítója a getUserOid() függvényen keresztül kérhető le, az identitás UPN-jét pedig a használatával getUserIdentity()lehet lekérni.

A MAMEnrollmentNotification és a MAMComplianceNotification tovább bővíti MAMUserNotificationa elemet, amely a felhasználó/eszköz MAM szolgáltatásban való regisztrálására tett kísérletek, illetve az App Protection CA megfelelőségének szervizelésére tett kísérletek eredményeit tartalmazza.

Értesítés típusa Értesítési osztály Az értesítés oka Alkalmazhatóság Tippek a kezeléshez Hozzászóláslánc adatai
COMPLIANCE_STATUS MAMComplianceNotification Egy megfelelőségi szervizelési kísérlet eredményét adja vissza. Az App Protection hitelesítésszolgáltatót megvalósító alkalmazásoknak ezt kell kezelnie. - Nemdeterminisztikus
MAM_ENROLLMENT_RESULT MAMEnrollmentNotification Egy regisztrációs kísérlet eredményét adja vissza. Ezt minden alkalmazás megkapja. - Nemdeterminisztikus
MANAGEMENT_REMOVED MAMUserNotification Az alkalmazás nem lesz felügyelt. A használt MAMDataProtectionManager alkalmazásoknak ezt kell kezelnie. Lásd alább MANAGEMENT_REMOVED . Soha ne használja a felhasználói felület szálát
REFRESH_APP_CONFIG MAMUserNotification Előfordulhat, hogy az alkalmazáskonfigurálási értékek megváltoztak. Az alkalmazáskonfigurációt és a gyorsítótárazási alkalmazáskonfigurációs adatokat megvalósító alkalmazásoknak ezt kezelnie kell. Az alkalmazásoknak érvénytelenítenie kell és frissítenie kell a gyorsítótárazott alkalmazáskonfigurációs adatokat. Nemdeterminisztikus
REFRESH_POLICY MAMUserNotification Előfordulhat, hogy az alkalmazásvédelmi szabályzat módosult. Az alkalmazásvédelmi szabályzatot gyorsítótárazó alkalmazásoknak ezt kezelnie kell. Az alkalmazásoknak érvénytelenítenie kell és frissítenie kell a gyorsítótárazott alkalmazásvédelmi szabályzatok adatait. Nemdeterminisztikus
WIPE_USER_DATA MAMUserNotification A törlés most történik(*). A vagy a-t használó MAMDataProtectionManager alkalmazásoknak kell kezelnie ezt a vagyWIPE_USER_AUXILIARY_DATA a-t. Lásd: Szelektív törlés. Soha ne használja a felhasználói felület szálát
WIPE_USER_AUXILIARY_DATA MAMUserNotification A törlés most történik(*). Ezt csak a több identitással rendelkező alkalmazások kapják meg.
A vagy a-t használó MAMDataProtectionManager alkalmazásoknak kell kezelnie ezt a vagyWIPE_USER_DATA a-t.
Lásd: Szelektív törlés. Soha ne használja a felhasználói felület szálát
WIPE_COMPLETED MAMUserNotification A törlés befejeződött. Mindig választható. Kézbesítés a vagy WIPE_USER_AUXILIARY_DATAa után WIPE_USER_DATA történik. *Ha az alkalmazás hibát jelez a kezelője WIPE_USER_DATAWIPE_USER_AUXILIARY_DATAvagy számára, az értesítés nem lesz elküldve.- Soha ne használja a felhasználói felület szálát

(*) A törlésnek számos oka lehet, például:

  • Az alkalmazás neve unregisterAccountForMAM.
  • Egy rendszergazda kezdeményezte a távoli törlést.
  • A rendszergazda által megkövetelt feltételes hozzáférési szabályzatok nem teljesültek.

Figyelmeztetés

Az alkalmazásoknak soha nem szabad regisztrálniuk mind a, mind az WIPE_USER_DATAWIPE_USER_AUXILIARY_DATA értesítésekre.

MANAGEMENT_REMOVED

Az MANAGEMENT_REMOVED értesítés tájékoztatja az alkalmazást arról, hogy egy korábban szabályzattal felügyelt fiók felügyeletének megszüntetése készül. A fiók felügyeletének megszüntetése után az alkalmazás többé nem fogja tudni beolvasni a fiók titkosított fájljait, beolvasni a fiók titkosított adatait MAMDataProtectionManagera használatával, használni a titkosított vágólapot, vagy más módon részt venni a felügyelt alkalmazás ökoszisztémájában.

Ehhez nincs szükség a felhasználói adatok törlésére vagy a felhasználó kijelentkeztetésére (ha törlésre lenne szükség, WIPE_USER_DATA a rendszer értesítést küld). Előfordulhat, hogy sok alkalmazásnak nem kell kezelnie ezt az értesítést, de a használt MAMDataProtectionManager alkalmazásoknak ezt kezelnie kell. További részletekért lásd: Adatpuffer-védelem .

Amikor az SDK meghívja az alkalmazás fogadóját MANAGEMENT_REMOVED , a következők igazak lesznek:

  • Az SDK már visszafejti az alkalmazáshoz tartozó korábban titkosított fájlokat (de nem védett adatpuffereket). Az alkalmazáshoz közvetlenül nem tartozó nyilvános helyeken lévő fájlok (például a Dokumentumok vagy a Letöltés mappák) nem lesznek visszafejtve.

  • A fogadó metódus által létrehozott új fájlok vagy védett adatpufferek (vagy a fogadó elindítása után futó bármely más kód) nem lesznek titkosítva.

  • Az alkalmazás továbbra is hozzáfér a titkosítási kulcsokhoz, így az olyan műveletek, mint az adatpufferek visszafejtése, sikeresek lesznek.

Miután az alkalmazás fogadója visszatér, többé nem lesz hozzáférése a titkosítási kulcsokhoz.

A MAMNotificationReceiver implementálása

Az SDK értesítéseinek regisztrálásához az alkalmazásnak létre kell hoznia egy MAMNotificationReceiver-t , és regisztrálnia kell azt a MAMNotificationReceiverRegistry szolgáltatásban.

A fogadó regisztrálásához hívja meg a hívást registerReceiver a fogadóval és a kívánt értesítési típussal a Application.onCreate metódusban:

@Override
public void onCreate() {
  super.onCreate();
  MAMComponents.get(MAMNotificationReceiverRegistry.class)
    .registerReceiver(
      new ToastNotificationReceiver(),
      MAMNotificationType.WIPE_USER_DATA);
}

Az alkalmazás MAMNotificationReceiver implementációjának tartalmaznia kell a metódust onReceive(MAMNotification notification) . Ez a metódus minden fogadott értesítéshez külön lesz meghívva, és egy booleanértéket kell visszaadnia. Ennek a metódusnak általában mindig a értéket kell visszaadnia true, kivéve, ha az alkalmazás hibába ütközött egy értesítésre válaszolva.

Az Android-fogadók más típusaihoz hasonlóan az alkalmazás is rugalmasan kezeli az értesítéseket:

  • Különböző MAMNotificationReceiver-implementációkat hozhat létre a különböző értesítési típusokhoz (az alábbiakban ismertetjük). Ebben az esetben minden implementációt és minden értesítési típust külön kell regisztrálnia.
  • Egyetlen MAMNotificationReceiver-implementációt használhat, amely több különböző értesítési típusra való válaszadás logikáját tartalmazza. Ebben az esetben minden olyan értesítéstípushoz regisztrálva kell lennie, amelyekre válaszolni tud.
  • Több MAMNotificationReceiver-implementációt is létrehozhat, amelyek mindegyike ugyanarra az értesítési típusra válaszol. Ebben az esetben mindkettőt ugyanahhoz az értesítési típushoz kell regisztrálni.

Tipp

Biztonságosan letilthatja MAMNotificationReceiver.onReceive , mert a visszahívása nem fut a felhasználói felület szálán.

Egyéni témák

Az Intune App SDK-hoz egyéni téma adható meg; ez az egyéni téma minden SDK-képernyőre és párbeszédpanelre alkalmazva lesz. Ha nincs megadva téma, a rendszer az alapértelmezett SDK-témát használja.

Egyéni téma megadása

Téma megadásához hozzá kell adnia a következő kódsort a Application.onMAMCreate metódushoz:

MAMThemeManager.setAppTheme(R.style.AppTheme);

A fenti példában azt a stílustémára kell cserélnie R.style.AppTheme , amelyet az SDK-nak alkalmaznia kell.

Megbízható főtanúsítványok kezelése

Ha az alkalmazáshoz egy helyszíni vagy privát hitelesítésszolgáltató által kibocsátott SSL-/TLS-tanúsítványok szükségesek a belső webhelyekhez és alkalmazásokhoz való biztonságos hozzáférés biztosításához, az Intune App SDK a MAMTrustedRootCertsManager és a MAMCertTrustWebViewClient API-osztályokkal támogatja a tanúsítványmegbízhatóság kezelését.

Megjegyzés:

A MAMCertTrustWebViewClient az Android 10 vagy újabb verziót támogatja.

A Megbízható főtanúsítványok kezelése a következőhöz nyújt támogatást:

  • SSLContext
  • SSLSocketFactory
  • TrustManager
  • WebView

Követelmények

Megjegyzés:

A megbízható főtanúsítvány-kezelés a Microsoft Tunnel VPN Gatewaytől függetlenül is használható, azonban használathoz licenccel kell rendelkeznie a Microsoft MAM-alagúthoz.

Megbízható főtanúsítványok használata az Intune-ból megbízhatósági horgonyok létrehozásához

A megbízható főtanúsítvány-kezelés lehetővé teszi, hogy az alkalmazás megbízható főtanúsítványokat használjon az Intune-ból az eszköz tanúsítványaival együtt.

A MAMTrustedRootCertsManager és a MAMCertTrustWebViewClient API-osztályok tartalékként használják az Alkalmazáskonfigurációs szabályzaton keresztül kézbesített Intune megbízható főtanúsítványokat, ha az eszköz megbízható főtanúsítvány-tárolói nem tartalmazzák a szükséges megbízható főtanúsítványokat a helyszíni erőforrásokhoz való biztonságos kapcsolat létrehozásához. Így az alkalmazás eszköz- és Intune-tanúsítványokkal is ellenőrizheti a biztonságos kapcsolatokat és a megbízható forrásokkal folytatott kommunikációt.

A hálózati biztonsági beállítások javításához az alkalmazások használhatják a Hálózati biztonsági konfiguráció XML-fájlját. A megbízható főtanúsítvány-kezelés tiszteletben tartja ezt az extra biztonságot, és ellenőrzi, hogy az alkalmazás hálózati biztonsági konfigurációs XML-fájlja rendelkezik-e az alábbi funkciók valamelyikével:

  • Az egyéni megbízhatósági kapcsolatok további hitelesítésszolgáltatókkal, például önaláírt tanúsítványokkal rendelkeznek.
  • Tartományspecifikus szabályok a megbízható hitelesítésszolgáltatók korlátozására.
  • Adott tartományok tanúsítványkészleteinek rögzítése.

Megjegyzés:

További információ az Android hálózati biztonsági konfigurációjáról: Hálózati biztonsági konfiguráció

Ha ezek bármelyike egy megbízhatónak ellenőrzött tartományra vonatkozik, akkor a Megbízható főtanúsítványok kezelése kihagyja a tartomány egyéni megbízhatósági ellenőrzését, és csak a platform alapértelmezett megbízhatósági kezelői végezhetik el az ellenőrzéseket.

MAMTrustedRootCertsManager osztály

Ez az osztály a következő API-kat biztosítja:

  • createSSLContextForOID(String oid, String protocol): létrehoz egy SSLContext objektumot, amely megbízható főtanúsítványokat használ a megadott identitáshoz és a megadott SSL/TLS protokollhoz. Az osztályból visszaadott SSLContext objektum már megfelelően inicializálva van az eszköz és a MAM szolgáltatás összevont megbízható főtanúsítványait használó objektumokkal X509TrustManager .
  • createSSLSocketFactoryForOID(String oid, String protocol): létrehoz egy SSLSocketFactory objektumot, amely megbízható főtanúsítványokat használ a megadott identitáshoz és a megadott SSL/TLS protokollhoz. A visszaadott SSLSocketFactory objektumra ugyanabból SSLContext az objektumból hivatkozik ebben az osztályban.
  • createX509TrustManagersForOID(String oid): létrehoz egy objektumtömböt X509TrustManager , amely az eszköz és a MAM szolgáltatás összevont megbízható főtanúsítványait használja a megadott identitáshoz.

Megjegyzés:

A oid paraméter várhatóan az alkalmazást futtató adott felhasználó Microsoft Entra-felhasználóazonosítója (OID). Abban az esetben, ha a felhasználói azonosító előzetesen ismeretlen, a rendszer null értéket ad át, és a MAM megkísérli felderíteni a megfelelő identitást abból a szálból vagy folyamatból, amelyben ezek az API-k meghívása történik. Az identitást megfelelően kell beállítani a folyamaton vagy a szálon ahhoz, hogy a MAM felderítse az identitást. Ha többet szeretne megtudni az aktív identitás folyamaton vagy szálon történő beállításáról, látogasson el ide: 5. fázis: Több identitás

Megjegyzés:

Ha a protocol paraméter nincs megadva, a rendszer a platformon a legmagasabb támogatott SSL/TLS protokollt használja.

Íme néhány példa az osztály használatára.

Példa a HttpsUrlConnection használatára
// Create an SSL socket factory using supplying the optional parameters identity and protocol
SSLSocketFactory sslSocketFactory = MAMTrustedRootCertsManager.createSSLSocketFactoryForOID(oid, "TLSv1.3");

// Create a URL object for the desired endpoint
URL url = new URL("https://example.com");

// Open a connection using the URL object
HttpsURLConnection httpsURLConnection = (HttpsURLConnection) url.openConnection();

// Set the SSL socket factory for the connection
httpsURLConnection.setSSLSocketFactory(sslSocketFactory);

// Perform any other configuration or operations on the connection as needed
...
Példa az OKHttpClient használatára
// Get the TrustManager instances for an identity from the SDK
TrustManager[] trustManagers = MAMTrustedRootCertsManager.createX509TrustManagersForOID(oid);

// Get SSLContext from the platform
SSLContext sslContext = SSLContext.getInstance("TLSv1.3");

// Initialize the SSLContext with the trust managers from the Intune App SDK
sslContext.init(null, trustManagers, null);  

// Create an OkHttpClient.Builder object
OkHttpClient.Builder builder = new OkHttpClient.Builder();

// Set the SSLSocketFactory and the trust managers from the SDK
builder.sslSocketFactory(sslContext.socketFactory, trustManagers[0] as X509TrustManager).build();

// Build an OkHttpClient object from the builder
OkHttpClient okHttpClient = builder.build();

// Create a Request object for the desired endpoint
Request request = new Request.Builder().url("https://example.com").build();

// Execute the request using the OkHttpClient object and get a Response object
Response response = okHttpClient.newCall(request).execute();

// Perform any other operations on the response as needed
...

MAMCertTrustWebViewClient osztály

Ez az osztály az Android-osztály android.webkit.WebViewClient egyéni implementációját biztosítja, amely lehetővé teszi az SSL-hiba android.net.http.SslError.SSL_UNTRUSTED kezelését a rendszerben WebView. A hiba kezelésekor a osztály megbízható főtanúsítványokat használ, amelyek az Intune-ban vannak konfigurálva, és a MAM szolgáltatástól érkeznek, hogy ellenőrizzék a gazdagép megbízhatóságát a cél URL-címről, amely az SSL-hibát eredményezte a ben WebView. Ha az egyéni implementáció nem kezeli az SSL-hibát, a rendszer meghívja a szuperosztálytól örökölt alapértelmezett viselkedést. Az osztály használatakor létre kell hoznia egy példányt, majd meg kell hívnia WebView.setWebViewClient(WebViewClient) , hogy regisztrálja azt egy WebView példányban.

Íme egy példa az osztály használatára.

Példa a WebView használatára
// Get the MAM implementation of WebViewClient from the Intune App SDK
MAMCertTrustWebViewClient mamCertTrustWebViewClient = new MAMCertTrustWebViewClient();

// Set the MAM WebViewClient from the SDK as the current handler on the instance of WebView
webView.setWebViewClient(mamCertTrustWebViewClient);

// Perform any other operations on WebView
...

Kilépési feltételek

A tesztelés megkönnyítése érdekében tekintse meg a Gyors tesztelés a szabályzat módosításával című témakört.

A mentés ellenőrzése a korlátozásokból való megnyitásra vagy mentésre

Kihagyhatja, ha nem implementálja az alkalmazások és az eszközök vagy felhőbeli tárolóhelyek közötti adatátvitel korlátozására vonatkozó szabályzatot.

Ismerkedjen meg minden olyan forgatókönyvvel, amikor az alkalmazás adatokat menthet a felhőszolgáltatásokba vagy a helyi adatokba, és megnyithat adatokat a felhőszolgáltatásokból vagy a helyi adatokból.

Az egyszerűség kedvéért ezek a tesztek feltételezik, hogy az alkalmazás csak a OneDrive Vállalati verzióba való mentést és az adatoknak az alkalmazáson belüli egyetlen helyről történő megnyitását támogatja. Azonban minden kombinációt ellenőriznie kell: minden támogatott mentési hely minden olyan helyhez, ahol az alkalmazás lehetővé teszi az adatok mentését, és minden támogatott nyílt hely minden olyan helyhez, ahol az alkalmazás lehetővé teszi az adatok megnyitását.

Ezekhez a tesztekhez telepítse az alkalmazást és az Intune Vállalati portált; jelentkezzen be egy felügyelt fiókkal a teszt megkezdése előtt. Továbbá:

  • Állítsa be a felügyelt fiók szabályzatát a következőként:
    • "Szervezeti adatok küldése más alkalmazásoknak" a szabályzattal felügyelt alkalmazásoknak.
    • "Adatok fogadása más alkalmazásokból" a szabályzattal felügyelt alkalmazásokba.
Forgatókönyv Előfeltételek Utaslépcső
Mentés a fájlba, teljes mértékben engedélyezve "Szervezeti adatok másolatainak mentése" szabályzat "Engedélyezés" értékre állítva – Navigáljon arra a helyre, ahová az alkalmazás adatokat menthet a OneDrive Vállalati verzióba.
– Kíséreljen meg menteni egy dokumentumot a OneDrive Vállalati verzióba ugyanarra a felügyelt fiókra, amely az alkalmazásba van bejelentkezve.
- Ellenőrizze, hogy a mentés engedélyezve van-e.
Mentés a fájlba, kivétel – "Szervezeti adatok másolatainak mentése" szabályzat "Letiltás" értékre állítva
– "Másolatok mentésének engedélyezése a felhasználó számára a kijelölt szolgáltatásokba" szabályzat csak a OneDrive Vállalati verzióra van beállítva
– Navigáljon arra a helyre, ahová az alkalmazás adatokat menthet a OneDrive Vállalati verzióba.
– Kíséreljen meg menteni egy dokumentumot a OneDrive Vállalati verzióba ugyanarra a felügyelt fiókra, amely az alkalmazásba van bejelentkezve.
- Ellenőrizze, hogy a mentés engedélyezve van-e.
– Ha az alkalmazás engedélyezi, próbálja meg menteni a fájlt egy másik felhőtárhelyre, és ellenőrizze, hogy le van-e tiltva.
Mentés helye, letiltva "Szervezeti adatok másolatainak mentése" szabályzat "Letiltás" értékre állítva – Navigáljon arra a helyre, ahová az alkalmazás adatokat menthet a OneDrive Vállalati verzióba.
– Kíséreljen meg menteni egy dokumentumot a OneDrive Vállalati verzióba ugyanarra a felügyelt fiókra, amely az alkalmazásba van bejelentkezve.
– Ellenőrizze, hogy a mentés le van-e tiltva.
– Ha az alkalmazás engedélyezi, próbálja meg menteni a fájlt egy másik felhőtárhelyre, és ellenőrizze, hogy le van-e tiltva.
Megnyitás innen: , teljes mértékben engedélyezett "Adatok megnyitása szervezeti dokumentumokba" szabályzat "Engedélyezés" értékre állítva – Navigáljon arra a helyre, ahol az alkalmazás adatokat nyithat meg a OneDrive Vállalati verzióból.
– Nyisson meg egy dokumentumot a OneDrive Vállalati verzióból az alkalmazás tárterületére bejelentkezett felügyelt fiókból.
- Ellenőrizze, hogy a megnyitás engedélyezve van-e.
Megnyitás innen, kivétel – "Adatok megnyitása szervezeti dokumentumokba" szabályzat "Letiltás" értékre állítva
– "A felhasználók megnyithatják az adatokat a kiválasztott szolgáltatásokból" szabályzat csak a "OneDrive Vállalati verzió" értékre van állítva
– Navigáljon arra a helyre, ahol az alkalmazás adatokat nyithat meg a OneDrive Vállalati verzióból.
– Nyisson meg egy dokumentumot a OneDrive Vállalati verzióból az alkalmazás tárterületére bejelentkezett felügyelt fiókból.
- Ellenőrizze, hogy a megnyitás engedélyezve van-e.
– Ha az alkalmazás engedélyezi, próbáljon meg megnyitni egy másik fájlt egy másik felhőtárhelyről, és ellenőrizze, hogy le van-e tiltva.
Megnyitás innen, letiltva "Adatok megnyitása szervezeti dokumentumokba" szabályzat "Letiltás" értékre állítva – Navigáljon arra a helyre, ahol az alkalmazás adatokat nyithat meg a OneDrive Vállalati verzióból.
– Nyisson meg egy dokumentumot a OneDrive Vállalati verzióból az alkalmazás tárterületére bejelentkezett felügyelt fiókból.
- Ellenőrizze, hogy a megnyitás le van-e tiltva.
– Ha az alkalmazás engedélyezi, próbáljon meg megnyitni egy másik fájlt egy másik felhőtárhelyről, és ellenőrizze, hogy le van-e tiltva.

Értesítési korlátozások érvényesítése

Kihagyhatja, ha nem implementálja az értesítéseken belüli tartalom korlátozására vonatkozó szabályzatot.

Ami az alkalmazásvédelmi szabályzatot illeti, az alkalmazás három különböző típusú értesítést aktiválhat:

  1. Olyan értesítések, amelyek nem tartalmaznak fiókadatokat.
  2. Felügyelt fiókhoz tartozó adatokat tartalmazó értesítések.
  3. Nem felügyelt fiókhoz tartozó adatokat tartalmazó értesítések.

Ha az alkalmazás egyszeri identitású, csak az első 2 releváns, mivel a rendszer nem alkalmaz védelmet, ha az egyetlen fiók nincs kezelve.

Az értesítési korlátozások úgy ellenőrizhetők, hogy mindhárom értesítéstípust különböző szabályzatértékekkel aktiválják.

Ezekhez a tesztekhez telepítse az alkalmazást és az Intune Vállalati portált; jelentkezzen be egy felügyelt fiókkal a teszt megkezdése előtt. Ha az alkalmazás többszörös identitású, jelentkezzen be az alkalmazásba egy nem felügyelt fiókkal.

Forgatókönyv Előfeltételek Utaslépcső
Teljes tartalom letiltva A "Szervezeti adatértesítések" szabályzat "Letiltás" értékre van állítva – Aktiválja az alkalmazást egy fiókadatok nélküli értesítés indításához.
– Győződjön meg arról, hogy ez az értesítés nem jelenít meg tartalmat.
– Aktiválja az alkalmazást egy értesítés indításához a felügyelt fiók adataival.
– Győződjön meg arról, hogy ez az értesítés nem jelenít meg tartalmat.
– Aktiválja az alkalmazást egy értesítés indításához a nem felügyelt fiók adataival.
– Győződjön meg arról, hogy ez az értesítés nem jelenít meg tartalmat.
Részleges tartalom blokkolva A "Szervezeti adatértesítések" szabályzat "Szervezeti adatok blokkolása" értékre van állítva – Aktiválja az alkalmazást egy fiókadatok nélküli értesítés indításához.
– Ellenőrizze, hogy ez az értesítés megjeleníti-e a teljes tartalmát.
– Aktiválja az alkalmazást egy értesítés indításához a felügyelt fiók adataival.
– Győződjön meg arról, hogy ez az értesítés újrafedi a felügyelt fiók tartalmát.
– Aktiválja az alkalmazást egy értesítés indításához a nem felügyelt fiók adataival.
– Ellenőrizze, hogy ez az értesítés megjeleníti-e a teljes tartalmát.
Nincs letiltva tartalom A "Szervezeti adatértesítések" szabályzat "Engedélyezés" értékre van állítva

Az adatok biztonsági mentésének és visszaállításának ellenőrzése

Kihagyhatja, ha nem implementálja a biztonsági mentési adatok védelmére vonatkozó szabályzatot.

Ismerkedjen meg újra az alkalmazás által biztonsági mentésre konfigurált tartalommal (fájlok és/vagy kulcs-érték párokkal). Ellenőrizze, hogy csak a várt tartalom szerepel-e a visszaállításban. A visszaállítás további tartalma adatszivárgáshoz vezethet.

Ezekhez a tesztekhez telepítse az alkalmazást és az Intune Vállalati portált; jelentkezzen be egy felügyelt fiókkal a teszt megkezdése előtt. Ha az alkalmazás többszörös identitású, jelentkezzen be az alkalmazásba egy nem felügyelt fiókkal.

Kövesse az Android biztonsági mentés tesztelésére vonatkozó hivatalos utasításait. Ezek az utasítások eltérnek az automatikus biztonsági mentéshez és a kulcs/érték biztonsági mentéséhez, ezért kövesse szorosan.

Egyéni képernyőrögzítés ellenőrzése szabályzat alapján

Kihagyhatja, ha nem implementál egyéni képernyőfelvételi korlátozásokat.

Ha az alkalmazás olyan szolgáltatással rendelkezik, amely megkerüli Windowaz Android -szintű FLAG_SECUREszintjét, ellenőrizze, hogy az alkalmazásvédelmi szabályzat képernyőfelvételi korlátozásai blokkolják-e ezt a funkciót.

Ezekhez a tesztekhez telepítse az alkalmazást és az Intune Vállalati portált; jelentkezzen be egy felügyelt fiókkal a teszt megkezdése előtt.

Forgatókönyv Előfeltételek Utaslépcső
Képernyőfelvétel letiltva A "Képernyőfelvétel és a Google Assistant" szabályzat "Letiltás" értékre van állítva – Keresse meg azt a helyet az alkalmazásban, amely az egyéni FLAG_SECURE kódot használja.
– Próbálja meg használni ezt a funkciót.
– Ellenőrizze, hogy a funkció le van-e tiltva.
Képernyőfelvétel engedélyezve A "Képernyőfelvétel és a Google Assistant" szabályzat "Engedélyezés" értékre van állítva – Keresse meg azt a helyet az alkalmazásban, amely az egyéni FLAG_SECURE kódot használja.
– Próbálja meg használni ezt a funkciót.
– Ellenőrizze, hogy a funkció engedélyezve van-e.

Az App Protection hitelesítésszolgáltató ellenőrzése

Kihagyhatja, ha nem implementálja a támogatási alkalmazásvédelmi hitelesítésszolgáltatót.

Az alkalmazásvédelmi szabályzatok alkalmazás- és tesztfiókhoz való létrehozásának és hozzárendelésének tipikus érvényesítési lépésein kívül alkalmazásvédelmi feltételes hozzáférési szabályzatot is létre kell hoznia és hozzá kell rendelnie a tesztfiókhoz. Részletekért lásd: Alkalmazásalapú feltételes hozzáférési szabályzatok beállítása az Intune-nal .

Tesztelési lépések:

  1. A teszt megkezdése előtt távolítsa el a Microsoft Authenticatort és az Intune Vállalati portált.
  2. Telepítse az alkalmazást.
  3. Jelentkezzen be az alkalmazásba az alkalmazásvédelmi szabályzattal és az alkalmazásalapú feltételes hozzáférési szabályzattal megcélzott tesztfiókjával.
  4. Ellenőrizze, hogy az alkalmazás kéri-e a Céges portál telepítését.
  5. Jelentkezzen be újra.
  6. Ellenőrizze, hogy az alkalmazás kéri-e az eszköz regisztrálását. Kövesse az utasításokat. Ha az alkalmazás itt nem kéri a regisztrációt, először ellenőrizze, hogy a teszteszköz eltávolított-e más SDK-kompatibilis alkalmazásokat, a Céges portált és az Authenticatort. Ha ez továbbra sem jelenik meg, tekintse meg újra a fenti implementálási utasításokat.
  7. A regisztráció után győződjön meg arról, hogy az összes alkalmazásadathoz hozzá tud férni.

Értesítés-fogadók ellenőrzése

Kihagyhatja, ha nem implementálta a Regisztráció az SDK értesítéseihez elemet.

Az érvényesítési lépések attól függenek, hogy az alkalmazás milyen típusú értesítésekre regisztrált. Minden értesítéstípushoz adjon hozzá naplózást, hogy a fogadó megfelelően legyen meghívva.

MAM_ENROLLMENT_RESULT aktiválható egyszerűen úgy, hogy először bejelentkezik az alkalmazásba egy alkalmazásvédelmi szabályzattal megcélzott fiókkal.

REFRESH_APP_CONFIG REFRESH_POLICY és aktiválható úgy, hogy frissíti a megfelelő alkalmazáskonfigurációs szabályzatot és az alkalmazásvédelmi szabályzatot, amely a tesztfiókra irányul, és arra vár, hogy az SDK megkapja a frissített szabályzatot.

Tipp

A folyamat felgyorsításához lásd: Gyors tesztelés a szabályzat módosításával .

MANAGEMENT_REMOVED, WIPE_USER_DATA, WIPE_USER_AUXILIARY_DATA, WIPE_COMPLETED értesítéseket aktiválhat, ha szelektív törlést bocsát ki a Microsoft Intune-ból.

Egyéni témák érvényesítése

Kihagyhatja, ha nem implementál egyéni témákat.

Az egyéni tématámogatás az SDK párbeszédpaneljeinek színeinek vizsgálatával ellenőrizhető. Az ellenőrizendő legegyszerűbb párbeszédpanel a MAM PIN-kód képernyője.

Előfeltételek:

  • Állítsa be a felügyelt fiók szabályzatát a következőként:
    • "PIN-kód a hozzáféréshez" a "Kötelező" értékre.
  • Telepítse az alkalmazást és az Intune Céges portált.

Tesztelési lépések:

  1. Indítsa el az alkalmazást, és jelentkezzen be a tesztfiókkal.
  2. Ellenőrizze, hogy megjelenik-e a MAM PIN-kód képernyője, és hogy a téma az SDK-hoz megadott egyéni téma alapján van-e megadva.

Következő lépések

Ha sorrendben követte ezt az útmutatót, és teljesítette a fenti kilépési feltételeket , gratulálunk, az alkalmazás most már teljesen integrálva van az Intune App SDK-val, és alkalmazásvédelmi szabályzatokat kényszeríthet ki! Ha kihagyta az előző alkalmazás-részvételi szakaszok egyikét, az 5. fázis: Multi-Identity és a 6. fázis: Alkalmazáskonfiguráció szakaszt, és nem biztos abban, hogy az alkalmazásnak támogatnia kell-e ezeket a funkciókat, tekintse át az SDK-integrációval kapcsolatos legfontosabb döntéseket.

Az alkalmazásvédelem mostantól az alkalmazás egyik alapvető forgatókönyve. Az alkalmazás fejlesztése során továbbra is tekintse meg ezt az útmutatót és a függeléket .