zestaw SDK aplikacji Intune dla systemu iOS — funkcje uczestnictwa w aplikacji

Zestaw SDK aplikacji Microsoft Intune dla systemu iOS umożliwia włączenie Intune zasad ochrony aplikacji (znanych również jako zasady aplikacji lub zarządzania aplikacjami mobilnymi) do natywnej aplikacji systemu iOS. Aplikacja zarządzana Intune jest zintegrowana z zestawem Intune App SDK. Intune administratorzy mogą łatwo wdrażać zasady ochrony aplikacji w aplikacji zarządzanej Intune, gdy Intune aktywnie zarządza aplikacją.

Uwaga

Ten przewodnik jest podzielony na kilka odrębnych etapów. Zacznij od zapoznania się z artykułem Planowanie integracji.

Etap 4. Funkcje uczestnictwa w aplikacji

Goals etapów

  • Dowiedz się więcej o różnych funkcjach uczestnictwa aplikacji oferowanych przez zestaw Intune App SDK.
  • Integrowanie funkcji uczestnictwa aplikacji odpowiednich dla aplikacji i użytkowników.
  • Przetestuj integrację tych funkcji.

Co to są "funkcje uczestnictwa w aplikacji"?

Ten proces integracji zestawu SDK próbuje zminimalizować ilość kodu specyficznego dla aplikacji, który deweloperzy muszą napisać. Po pomyślnym ukończeniu poprzednich etapów integracji zestawu SDK aplikacja może teraz wymusić większość ustawień zasad ochrony aplikacji, takich jak szyfrowanie plików, ograniczenia kopiowania/wklejania, blokowanie zrzutów ekranu i ograniczenia transferu danych.

Istnieją jednak pewne ustawienia, które wymagają prawidłowego wymuszania kodu specyficznego dla aplikacji. są one nazywane funkcjami uczestnictwa w aplikacji. Zazwyczaj zestaw SDK nie ma wystarczającego kontekstu dotyczącego kodu aplikacji lub scenariusza użytkownika końcowego, aby automatycznie wymusić te ustawienia, a tym samym zależy od deweloperów, aby odpowiednio wywoływać interfejsy API zestawu SDK.

Funkcje uczestnictwa w aplikacji niekoniecznie są opcjonalne. W zależności od istniejących funkcji aplikacji te funkcje mogą być wymagane.

W kolejnych etapach tego przewodnika opisano kilka ważnych funkcji uczestnictwa w aplikacji:

W pozostałej części tego przewodnika opisano pozostały zestaw funkcji uczestnictwa w aplikacji:

  • Implementowanie dozwolonych kont
  • Implementowanie wymaganego szyfrowania plików
  • Implementowanie kontrolek save-as i open-from
  • Udostępnianie danych za pośrednictwem kontrolki UIActivityViewController
  • Włączanie konfiguracji docelowej (konfiguracja aplikacji APP/MAM) dla aplikacji systemu iOS
  • Telemetria
  • Intencje Siri
  • Klipy aplikacji
  • Drukowanie
  • Powiadomienia
  • Skrypt publikowania kompilacji

Dostosowywanie zachowania aplikacji za pomocą interfejsów API

Zestaw Intune App SDK zawiera kilka interfejsów API, które można wywołać, aby uzyskać informacje o zasadach Intune APLIKACJI wdrożonych w aplikacji. Te dane umożliwiają dostosowanie zachowania aplikacji. Poniższa tabela zawiera informacje na temat niektórych podstawowych klas Intune, których używasz.

Klasa Opis
IntuneMAMPolicyManager.h Klasa IntuneMAMPolicyManager uwidacznia zasady Intune APP wdrożone w aplikacji. W szczególności uwidacznia interfejsy API, które są przydatne do włączania wielu tożsamości.
IntuneMAMPolicy.h Klasa IntuneMAMPolicy uwidacznia niektóre ustawienia zasad zarządzania aplikacjami mobilnymi, które mają zastosowanie do aplikacji. Większość z tych ustawień zasad jest uwidoczniona, aby aplikacja mogła dostosować swój interfejs użytkownika. Większość ustawień zasad jest wymuszana przez zestaw SDK, a nie przez aplikację. Istnieją jednak pewne wyjątki. Deweloperzy aplikacji powinni przejrzeć komentarze w tym nagłówku, aby określić, które interfejsy API mają zastosowanie do scenariuszy aplikacji.
IntuneMAMFileProtectionManager.h Klasa IntuneMAMFileProtectionManager uwidacznia interfejsy API, których aplikacja może używać do jawnego zabezpieczania plików i katalogów na podstawie podanej tożsamości. Tożsamością może zarządzać Intune lub niezarządzana, a zestaw SDK zastosuje odpowiednie zasady zarządzania aplikacjami mobilnymi. Użycie tej klasy jest opcjonalne.
IntuneMAMDataProtectionManager.h Klasa IntuneMAMDataProtectionManager uwidacznia interfejsy API, których aplikacja może używać do zabezpieczania buforów danych na podanej tożsamości. Tożsamością może zarządzać Intune lub niezarządzana, a zestaw SDK będzie odpowiednio stosować szyfrowanie.

Implementowanie dozwolonych kont

Intune pozwala administratorom IT określić, które konta mogą być logowane przez użytkownika. Aplikacje mogą wysyłać zapytania do zestawu Intune App SDK dla określonej listy dozwolonych kont, a następnie upewnić się, że na urządzeniu są zalogowane tylko dozwolone konta.

Aby wykonać zapytanie dotyczące dozwolonych kont, aplikacja powinna sprawdzić allowedAccounts właściwość w obiekcie IntuneMAMEnrollmentManager. Właściwość allowedAccounts to tablica zawierająca dozwolone konta lub zero. Jeśli właściwość jest zerowa, nie określono dozwolonych kont. Aplikacje z obsługą biblioteki MSAL/OneAuth powinny używać allowedAccountIds właściwości w wystąpieniu IntuneMAMEnrollmentManager do wykonywania zapytań o identyfikator obiektu Entra.

Aplikacje mogą również reagować na zmiany właściwości, allowedAccounts obserwując IntuneMAMAllowedAccountsDidChangeNotification powiadomienie. Powiadomienie jest publikowane za każdym razem, gdy właściwość allowedAccounts zmieni wartość.

W przypadku korzystania z interfejsów API dla dozwolonych kont są wymagane następujące wymagania:

  • Porównanie tożsamości musi być bez uwzględniania wielkości liter dla nazwy UPN i OID.
  • Porównanie tożsamości musi obsługiwać zarówno nazwę UPN, jak i OID.
  • Aplikacja musi mieć rejestrowanie w celu zdiagnozowania wszelkich niezgodności między kontem określonym przez administratora a kontem wprowadzonym przez użytkownika.

Implementowanie wymaganego szyfrowania plików

Interfejs isFileEncryptionRequired API zdefiniowany w IntuneMAMPolicy.h programie informuje aplikacje, gdy administrator IT wymaga, aby aplikacje używały szyfrowania Intune na wszystkich plikach zapisanych na dysku. Jeśli isFileEncryptionRequired jest to prawda, to aplikacja jest odpowiedzialna za zapewnienie, że wszystkie pliki zapisane na dysku przez aplikację są szyfrowane przy użyciu interfejsów API w IntuneMAMFile.hsystemach , IntuneMAMFileProtectionManager.hi IntuneMAMFDataProtectionManager.h.

Aplikacje mogą reagować na zmiany w tych zasadach, obserwując powiadomienie zdefiniowane w programie IntuneMAMDataProtectionDidChangeNotificationIntuneMAMFDataProtectionManager.h.

Implementowanie kontrolek save-as i open-from

Intune umożliwia administratorom IT wybieranie lokalizacji magazynu, z których zarządzana aplikacja może zapisywać dane lub z których można otwierać dane. Aplikacje mogą wysyłać zapytania do zestawu SDK zarządzania aplikacjami mobilnymi Intune dla dozwolonych lokalizacji magazynu za pomocą interfejsu API zdefiniowanego isSaveToAllowedForLocation:withAccountId: w programie IntuneMAMPolicy.h. Aplikacje mogą również wykonywać zapytania dotyczące zestawu SDK dla dozwolonych lokalizacji magazynu typu open-from przy użyciu interfejsu API zdefiniowanego isOpenFromAllowedForLocation:withAccountId: również w programie IntuneMAMPolicy.h.

Ponadto aplikacje mogą sprawdzić, czy dane przychodzące z rozszerzenia udziału są dozwolone przez wykonywanie zapytań względem interfejsu API zdefiniowanego canReceiveSharedItemProvider: w programie IntuneMAMPolicy.h. Aplikacje mogą również wysyłać zapytania do interfejsu API w canReceiveSharedFile: celu weryfikowania plików przychodzących z wywołania openURL, zdefiniowanego również w IntuneMAMPolicy.h

Uwaga

Wprowadzono zmiany w zachowaniu wewnętrznym w przypadku zestawu SDK mam w wersji 15.1.0.

  • Konto nil nie będzie już traktowane jako bieżące konto dla lokalizacji LocalDrive/LocalStorage. nil Przekazanie konta będzie traktowane jako konto niezarządzane. Ponieważ aplikacje mogą kontrolować sposób obsługi magazynu piaskownicy, tożsamość może i powinna być skojarzona z tymi lokalizacjami.
  • Konto nil nie będzie już traktowane jako bieżące konto dla aplikacji z jedną tożsamością. nil Przekazywanie konta w aplikacji z jedną tożsamością będzie teraz traktowane dokładnie tak samo, jak gdyby zostało przekazane do aplikacji z wieloma tożsamościami. Jeśli tworzysz aplikację z jedną tożsamością, użyj IntuneMAMPolicy's primaryUser , aby odwołać się do bieżącego konta, jeśli jest zarządzane, i nil odwołać się do bieżącego konta, jeśli jest niezarządzane.

Obsługa scenariuszy zapisywania w

Przed przeniesieniem danych do nowego magazynu w chmurze lub lokalizacji lokalnej aplikacja musi skontaktować się z interfejsem isSaveToAllowedForLocation:withAccountId: API, aby dowiedzieć się, czy administrator IT zezwolił na transfer danych. Ta metoda jest wywoływana na obiekcie IntuneMAMPolicy . Dane edytowane i zapisywane w miejscu nie muszą być sprawdzane za pomocą tego interfejsu API.

Uwaga

Obiekt IntuneMAMPolicy powinien reprezentować zasady właściciela zapisywanych danych. Aby uzyskać IntuneMAMPolicy obiekt określonej tożsamości, wywołaj IntuneMAMPolicyManagermetodę 's policyForAccountId: . Jeśli właściciel jest kontem niezarządzanym bez tożsamości, nil można przekazać go do policyForAccountId:programu . Nawet jeśli zapisywane dane nie są danymi organizacyjnymi, isSaveToAllowedForLocation:withAccountId: nadal powinny być wywoływane. Konto będące właścicielem lokalizacji docelowej może nadal mieć zasady ograniczające przychodzące dane niezarządzane.

Metoda isSaveToAllowedForLocation:withAccountId: przyjmuje dwa argumenty. Pierwszy argument jest wartością wyliczenia typu IntuneMAMSaveLocation zdefiniowanego w IntuneMAMPolicy.h. Drugim argumentem jest nazwa UPN tożsamości będącej właścicielem lokalizacji. Jeśli właściciel nie jest znany, nil może być używany zamiast tego.

Obsługiwane lokalizacje zapisywania

Zestaw Intune MAM SDK zapewnia obsługę następujących lokalizacji zapisywania zdefiniowanych w IntuneMAMPolicy.hprogramie :

  • IntuneMAMSaveLocationOneDriveForBusiness— Ta lokalizacja reprezentuje lokalizacje OneDrive dla Firm. Tożsamość skojarzona z kontem usługi OneDrive powinna zostać przekazana jako drugi argument.
  • IntuneMAMSaveLocationSharePoint— Ta lokalizacja reprezentuje zarówno lokalizacje lokalne programu SharePoint online, jak i Microsoft Entra Hybrydowe nowoczesne uwierzytelnianie programu SharePoint. Tożsamość skojarzona z kontem programu SharePoint powinna zostać przekazana jako drugi argument.
  • IntuneMAMSaveLocationLocalDrive — Ta lokalizacja reprezentuje magazyn app-sandbox, do których może uzyskiwać dostęp tylko aplikacja. Tej lokalizacji nie należy używać do zapisywania za pośrednictwem selektora plików ani zapisywania w plikach za pośrednictwem rozszerzenia udziału. Jeśli tożsamość może być skojarzona z magazynem piaskownicy aplikacji, powinna zostać przekazana jako drugi argument. Jeśli nie ma tożsamości, nil należy przekazać zamiast tego. Na przykład aplikacja może używać oddzielnych kontenerów magazynu app-sandbox dla różnych kont. W takim przypadku jako drugiego argumentu należy użyć konta będącego właścicielem kontenera, do którego uzyskuje się dostęp.
  • IntuneMAMSaveLocationCameraRoll — Ta lokalizacja reprezentuje bibliotekę zdjęć systemu iOS. Ponieważ nie ma konta skojarzonego z biblioteką zdjęć systemu iOS, należy przekazać je jako drugi argument tylko nil wtedy, gdy ta lokalizacja jest używana.
  • IntuneMAMSaveLocationAccountDocument — Ta lokalizacja reprezentuje dowolną lokalizację organizacji, która nie została wcześniej wymieniona, która może być powiązana z kontem zarządzanym. Konto organizacji skojarzone z lokalizacją powinno zostać przekazane jako drugi argument. Na przykład przekazanie zdjęcia do usługi lob w chmurze organizacji powiązanej z kontem organizacji.
  • IntuneMAMSaveLocationOther — Ta lokalizacja reprezentuje dowolną nieorganizacyjną, niewymienną wcześniej lokalizację lub nieznaną lokalizację. Jeśli konto jest skojarzone z lokalizacją, powinno zostać przekazane jako drugi argument. nil W przeciwnym razie należy użyć zamiast tego.
Specjalne zagadnienia dotyczące zapisywania lokalizacji

Lokalizacja powinna być używana IntuneMAMSaveLocationLocalDrive tylko w przypadku magazynu piaskownicy aplikacji, do którego może uzyskiwać dostęp tylko aplikacja. Do sprawdzania, czy plik można zapisać w magazynie urządzeń z systemem iOS za pomocą selektora plików lub innej metody, w której dane będą dostępne w aplikacji Pliki, IntuneMAMSaveLocationOther należy użyć.

Jeśli lokalizacji docelowej nie ma na liście, IntuneMAMSaveLocationAccountDocument należy użyć albo IntuneMAMSaveLocationOther . Jeśli lokalizacja zawiera dane organizacyjne, do których uzyskuje się dostęp przy użyciu konta zarządzanego (tj. Usługa lob w chmurze do przechowywania danych organizacji) IntuneMAMSaveLocationAccountDocument powinna być używana. Jeśli lokalizacja nie zawiera danych organizacji, IntuneMAMSaveLocationOther należy użyć lokalizacji.

Obsługa scenariuszy typu open-from

Przed zaimportowaniem danych z nowego magazynu w chmurze lub lokalizacji lokalnej aplikacja musi sprawdzić przy użyciu interfejsu isOpenFromAllowedForLocation:withAccountId: API, czy administrator IT zezwolił na transfer danych. Ta metoda jest wywoływana na obiekcie IntuneMAMPolicy . Dane otwierane w miejscu nie muszą być sprawdzane przy użyciu tego interfejsu API.

Uwaga

Obiekt IntuneMAMPolicy powinien reprezentować zasady tożsamości odbierające dane. Aby uzyskać IntuneMAMPolicy obiekt określonej tożsamości, wywołaj IntuneMAMPolicyManagermetodę 's policyForAccountId: . Jeśli konto odbierające jest kontem niezarządzanym bez tożsamości, nil można przekazać je do policyForAccountId:programu . Nawet jeśli odbierane dane nie są danymi organizacyjnymi, isOpenFromAllowedForLocation:withAccountId: nadal powinny być wywoływane. Konto będące właścicielem danych może nadal mieć zasady ograniczające miejsca docelowe wychodzących transferów danych.

Metoda isOpenFromAllowedForLocation:withAccountId: przyjmuje dwa argumenty. Pierwszy argument jest wartością wyliczenia typu IntuneMAMOpenLocation zdefiniowanego w IntuneMAMPolicy.h. Drugim argumentem jest nazwa UPN tożsamości będącej właścicielem lokalizacji. Jeśli właściciel nie jest znany, nil może być używany zamiast tego.

Obsługiwane otwarte lokalizacje

Zestaw Intune MAM SDK zapewnia obsługę następujących otwartych lokalizacji zdefiniowanych w programie IntuneMAMPolicy.h:

  • IntuneMAMOpenLocationOneDriveForBusiness— Ta lokalizacja reprezentuje lokalizacje OneDrive dla Firm. Tożsamość skojarzona z kontem usługi OneDrive powinna zostać przekazana jako drugi argument.
  • IntuneMAMOpenLocationSharePoint— Ta lokalizacja reprezentuje zarówno lokalizacje lokalne programu SharePoint online, jak i Microsoft Entra Hybrydowe nowoczesne uwierzytelnianie programu SharePoint. Tożsamość skojarzona z kontem programu SharePoint powinna zostać przekazana jako drugi argument.
  • IntuneMAMOpenLocationCamera - Ta lokalizacja reprezentuje tylko nowe obrazy wykonane przez aparat. Ponieważ nie ma konta skojarzonego z aparatem systemu iOS, należy przekazać je jako drugi argument tylko nil wtedy, gdy ta lokalizacja jest używana. Aby otworzyć dane z biblioteki zdjęć systemu iOS, użyj polecenia IntuneMAMOpenLocationPhotos.
  • IntuneMAMOpenLocationPhotos — Ta lokalizacja reprezentuje tylko istniejące obrazy w bibliotece zdjęć systemu iOS. Ponieważ nie ma konta skojarzonego z biblioteką zdjęć systemu iOS, należy przekazać je jako drugi argument tylko nil wtedy, gdy ta lokalizacja jest używana. Do otwierania obrazów wykonanych bezpośrednio z aparatu systemu iOS użyj polecenia IntuneMAMOpenLocationCamera.
  • IntuneMAMOpenLocationLocalStorage — Ta lokalizacja reprezentuje magazyn app-sandbox, do których może uzyskiwać dostęp tylko aplikacja. Tej lokalizacji nie należy używać do otwierania plików z selektora plików ani obsługi plików przychodzących z pliku openURL. Jeśli tożsamość może być skojarzona z magazynem piaskownicy aplikacji, powinna zostać przekazana jako drugi argument. Jeśli nie ma tożsamości, nil należy przekazać zamiast tego. Na przykład aplikacja może używać oddzielnych kontenerów magazynu app-sandbox dla różnych kont. W takim przypadku jako drugiego argumentu należy użyć konta będącego właścicielem kontenera, do którego uzyskuje się dostęp.
  • IntuneMAMOpenLocationAccountDocument — Ta lokalizacja reprezentuje dowolną lokalizację organizacji, która nie została wcześniej wymieniona, która może być powiązana z kontem zarządzanym. Konto organizacji skojarzone z lokalizacją powinno zostać przekazane jako drugi argument. Na przykład pobranie zdjęcia z usługi lob w chmurze organizacji powiązanej z kontem organizacji.
  • IntuneMAMOpenLocationOther — Ta lokalizacja reprezentuje dowolną lokalizację nieorganizacyjną, niewymienną wcześniej lub nieznaną lokalizację. Jeśli konto jest skojarzone z lokalizacją, powinno zostać przekazane jako drugi argument. nil W przeciwnym razie należy użyć zamiast tego.
Specjalne zagadnienia dotyczące otwartych lokalizacji

Lokalizacja powinna być używana IntuneMAMOpenLocationLocalStorage tylko w przypadku magazynu piaskownicy aplikacji, do którego może uzyskać dostęp aplikacja. Do sprawdzania, czy plik można otworzyć z magazynu urządzeń z systemem iOS za pomocą selektora plików lub innej metody, w której dane są również dostępne w aplikacji Pliki, IntuneMAMOpenLocationOther należy użyć.

Jeśli lokalizacji docelowej nie ma na liście, IntuneMAMOpenLocationAccountDocument należy użyć albo IntuneMAMOpenLocationOther . Jeśli lokalizacja zawiera dane organizacyjne, do których uzyskuje się dostęp przy użyciu konta zarządzanego. Na przykład należy użyć usługi LOB w chmurze do przechowywania danych IntuneMAMOpenLocationAccountDocument organizacyjnych. Jeśli lokalizacja nie zawiera danych organizacji, IntuneMAMSaveLocationOther należy użyć lokalizacji.

Obsługa przychodzących elementów NSItemProviders i plików

Do obsługi NSItemProviders odebranych z rozszerzenia udziału można IntuneMAMPolicyużyć metody 's canReceiveSharedItemProvider: zamiast isOpenFromAllowedForLocation:withAccountId:. Metoda canReceiveSharedItemProvider: przyjmuje obiekt NSItemProvider i zwraca, czy administrator IT może otworzyć go na koncie obiektu IntuneMAMPolicy . Element musi zostać załadowany przed wywołaniem tej metody. Na przykład przez wywołanie polecenia loadItemForTypeIdentifier:options:completionHandler. Tę metodę można również wywołać z procedury obsługi uzupełniania przekazanej do wywołania ładowania NSItemProvider.

Do obsługi plików IntuneMAMPolicyprzychodzących można użyć metody 's canReceiveSharedFile: zamiast isOpenFromAllowedForLocation:withAccountId:. Metoda canReceiveSharedFile: przyjmuje ścieżkę NSString i zwraca, czy administrator IT może otworzyć ją na koncie obiektu IntuneMAMPolicy .

Udostępnianie zablokowanego alertu

Funkcja pomocnika interfejsu użytkownika może być używana w przypadku wywołania interfejsu isSaveToAllowedForLocation:withAccountId: API lub isOpenFromAllowedForLocation:withAccountId: w celu zablokowania akcji zapisywania/otwierania. Jeśli aplikacja chce powiadomić użytkownika, że akcja została zablokowana, może wywołać showSharingBlockedMessage interfejs API zdefiniowany w IntuneMAMUIHelper.h , aby wyświetlić widok alertu z ogólnym komunikatem.

Udostępnianie danych za pośrednictwem kontrolki UIActivityViewController

Począwszy od wersji 8.0.2, zestaw SDK aplikacji Intune może filtrować UIActivityViewController akcje, aby można było wybierać tylko Intune zarządzanych lokalizacji udziałów. To zachowanie będzie kontrolowane przez zasady transferu danych aplikacji.

Akcje "Kopiuj do"

Podczas udostępniania dokumentów za pośrednictwem UIActivityViewController funkcji i system iOS UIDocumentInteractionControllerwyświetla akcje "Kopiuj do" dla każdej aplikacji, która obsługuje otwieranie udostępnionego dokumentu. Aplikacje deklarują obsługiwane typy dokumentów za pośrednictwem CFBundleDocumentTypes ustawienia w pliku Info.plist. Ten typ udostępniania nie będzie już dostępny, jeśli zasady zabraniają udostępniania niezarządzanym aplikacjom. W zamian użytkownik będzie musiał dodać rozszerzenie akcji inne niż interfejs użytkownika do swojej aplikacji i połączyć je z zestawem Intune App SDK. Rozszerzenie Akcja jest tylko wycinkiem. Zestaw SDK zaimplementuje zachowanie udostępniania plików. Wykonaj poniższe kroki:

  1. Aplikacja musi mieć co najmniej jeden schematURL zdefiniowany w pliku Info.plist CFBundleURLTypes wraz ze swoim -intunemam odpowiednikiem. Przykład:

    <key>CFBundleURLSchemes</key>
     <array>
     	<string>launch-com.contoso.myapp</string>
     	<string>launch-com.contoso.myapp-intunemam</string>
     </array>
    
  2. Zarówno aplikacja, jak i rozszerzenie akcji muszą współużytkować co najmniej jedną grupę aplikacji, a grupa aplikacji musi być wymieniona w AppGroupIdentifiers tablicy w obszarze słowników intuneMAMSettings aplikacji i rozszerzenia.

  3. Zarówno aplikacja, jak i rozszerzenie akcji muszą mieć możliwość udostępniania pęku kluczy i współużytkować grupę com.microsoft.intune.mam pęku kluczy.

  4. Nadaj rozszerzeniu akcji nazwę "Otwórz w", a następnie nazwę aplikacji. W razie potrzeby zlokalizuj plik Info.plist.

  5. Podaj ikonę szablonu rozszerzenia zgodnie z opisem w dokumentacji deweloperów firmy Apple. Alternatywnie narzędzie IntuneMAMConfigurator może służyć do generowania tych obrazów z katalogu .app aplikacji. Aby to zrobić, uruchom polecenie:

    IntuneMAMConfigurator -generateOpenInIcons /path/to/app.app -o /path/to/output/directory
    
  6. W obszarze IntuneMAMSettings w pliku Info.plist rozszerzenia dodaj ustawienie logiczne o nazwie OpenInActionExtension z wartością TAK.

  7. Skonfiguruj element tak NSExtensionActivationRule , aby obsługiwał pojedynczy plik i wszystkie typy z CFBundleDocumentTypes aplikacji z prefiksem com.microsoft.intune.mam. Jeśli na przykład aplikacja obsługuje pliki public.text i public.image, reguła aktywacji będzie następująca:

    SUBQUERY (
        extensionItems,
        $extensionItem,
        SUBQUERY (
            $extensionItem.attachments,
            $attachment,
            ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.text" ||
            ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.image").@count == 1
    ).@count == 1
    

Aktualizowanie istniejących rozszerzeń udostępniania i akcji

Jeśli aplikacja zawiera już rozszerzenia Udostępniania lub akcji, należy je NSExtensionActivationRule zmodyfikować, aby zezwolić na typy Intune. Dla każdego typu obsługiwanego przez rozszerzenie dodaj dodatkowy typ z prefiksem com.microsoft.intune.mam. Jeśli na przykład istniejąca reguła aktywacji to:

SUBQUERY (
    extensionItems,
    $extensionItem,
    SUBQUERY (
        $extensionItem.attachments,
        $attachment,
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.data"
    ).@count > 0
).@count > 0

Należy ją zmienić na:

SUBQUERY (
    extensionItems,
    $extensionItem,
    SUBQUERY (
        $extensionItem.attachments,
        $attachment,
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.data" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.url" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.plain-text" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.image" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.data"
    ).@count > 0
).@count > 0

Uwaga

Narzędzie IntuneMAMConfigurator może służyć do dodawania typów Intune do reguły aktywacji. Jeśli istniejąca reguła aktywacji używa wstępnie zdefiniowanych stałych ciągów. Na przykład NSExtensionActivationSupportsFileWithMaxCount, NSExtensionActivationSupportsText itp., składnia predykatu może stać się dość złożona. Narzędzie IntuneMAMConfigurator umożliwia również konwertowanie reguły aktywacji ze stałych ciągów na ciąg predykatu podczas dodawania typów Intune.

Jak powinien wyglądać interfejs użytkownika

Stary interfejs użytkownika:

Udostępnianie danych — stary interfejs użytkownika udostępniania systemu iOS

Nowy interfejs użytkownika:

Udostępnianie danych — nowy interfejs użytkownika udostępniania systemu iOS

Włączanie docelowej konfiguracji aplikacji dla aplikacji systemu iOS

Konfiguracja docelowa zarządzania aplikacjami mobilnymi (znana również jako konfiguracja aplikacji MAM) umożliwia aplikacji odbieranie danych konfiguracji za pośrednictwem zestawu SDK Intune. Format i warianty tych danych muszą być zdefiniowane i przekazane klientom Intune przez właściciela/dewelopera aplikacji.

Intune administratorzy mogą kierować i wdrażać dane konfiguracji za pośrednictwem centrum administracyjnego Microsoft Intune i Intune interfejs Graph API. W wersji 7.0.1 zestawu Intune App SDK dla systemu iOS aplikacje, które uczestniczą w docelowej konfiguracji zarządzania aplikacjami mobilnymi, mogą udostępniać docelowe dane konfiguracji zarządzania aplikacjami mobilnymi za pośrednictwem usługi MAM. Dane konfiguracji aplikacji są wypychane przez usługę MAM bezpośrednio do aplikacji, a nie za pośrednictwem kanału MDM. Zestaw SDK aplikacji Intune udostępnia klasę umożliwiającą dostęp do danych pobranych z tych konsol. Następujące elementy są wymaganiami wstępnymi:

  • Aplikacja musi zostać zarejestrowana w usłudze Intune MAM przed uzyskaniem dostępu do docelowego interfejsu użytkownika konfiguracji zarządzania aplikacjami mobilnymi. Aby uzyskać więcej informacji, zobacz Odbieranie zasad ochrony aplikacji.

  • Dołącz IntuneMAMAppConfigManager.h do pliku źródłowego aplikacji.

  • Wywołaj polecenie [[IntuneMAMAppConfigManager instance] appConfigForAccountId:] , aby uzyskać obiekt konfiguracji aplikacji.

  • Wywołaj odpowiedni selektor obiektu IntuneMAMAppConfig . Jeśli na przykład klucz aplikacji jest ciągiem, należy użyć polecenia stringValueForKey lub allStringsForKey. Zobacz, aby uzyskać IntuneMAMAppConfig.h szczegółowy opis wartości zwracanych i warunków błędów.

Aby uzyskać więcej informacji na temat możliwości interfejs Graph API, zobacz interfejs Graph API Reference (Dokumentacja interfejs Graph API).

Aby uzyskać więcej informacji na temat sposobu tworzenia zasad konfiguracji aplikacji ukierunkowanych na zarządzanie aplikacjami mobilnymi w systemie iOS, zobacz sekcję konfiguracji aplikacji docelowej zarządzania aplikacjami mobilnymi w temacie How to use Microsoft Intune app configuration policies for iOS/iPadOS (Jak używać zasad konfiguracji aplikacji Microsoft Intune dla systemu iOS/iPadOS).

Telemetria

Domyślnie zestaw SDK aplikacji Intune dla systemu iOS zbiera dane telemetryczne dotyczące następujących typów zdarzeń:

  • Uruchamianie aplikacji: aby ułatwić Microsoft Intune dowiedzieć się więcej o użyciu aplikacji z obsługą zarządzania aplikacjami mobilnymi według typu zarządzania (mam z zarządzaniem urządzeniami przenośnymi, zarządzanie aplikacjami mobilnymi bez rejestracji w rozwiązaniu MDM itd.).

  • Wywołania rejestracji: aby ułatwić Microsoft Intune poznanie wskaźnika sukcesu i innych metryk wydajności wywołań rejestracji zainicjowanych po stronie klienta.

  • Intune akcji: Aby pomóc w diagnozowaniu problemów i zapewnianiu Intune funkcjonalności, zbieramy informacje o akcjach zestawu Intune SDK.

Uwaga

Jeśli nie chcesz wysyłać danych telemetrycznych zestawu Intune App SDK do Microsoft Intune z aplikacji mobilnej, musisz wyłączyć przechwytywanie danych telemetrycznych zestawu SDK aplikacji Intune. Ustaw właściwość MAMTelemetryDisabled tak w słowniku IntuneMAMSettings.

Intencje Siri

Jeśli twoja aplikacja integruje się z intencjami Siri lub dokonuje darowizn intencji Siri, zapoznaj się z komentarzami areSiriIntentsAllowedIntuneMAMPolicy.h , aby uzyskać instrukcje dotyczące obsługi tego scenariusza.

Uwaga

W systemie iOS 16 lub nowszym dostępna jest nowa platforma systemowa Intencje aplikacji do tworzenia intencji aplikacji Swift. Aplikacje implementujące intencję aplikacji powinny najpierw sprawdzić areSiriIntentsAllowed właściwość obiektu IntuneMAMPolicy dla użytkownika.

Klipy aplikacji

Jeśli aplikacja zawiera element docelowy klipu aplikacji, upewnij się, że w klipie aplikacji nie są prezentowane żadne zarządzane dane. Klip aplikacji należy uznać za lokalizację niezarządzaną. Integracja zestawu SDK z klipami aplikacji nie jest obecnie obsługiwana.

Drukowanie

Jeśli aplikacja implementuje drukowanie i udostępnia niestandardową akcję drukowania w menu niestandardowym UIPrintInteractionController.isPrintingAvailable() , pamiętaj, aby określić, czy należy dodać akcję drukowania do menu niestandardowego.

Powiadomienia

Jeśli aplikacja otrzymuje powiadomienia, zapoznaj się z komentarzami w notificationPolicyIntuneMAMPolicy.h temacie, aby uzyskać instrukcje dotyczące obsługi tego scenariusza. Zaleca się, aby aplikacje rejestrowały się w IntuneMAMPolicyDidChangeNotification celu ich opisu w IntuneMAMPolicyManager.hprogramie i przekazywały tę wartość do nich UNNotificationServiceExtension za pośrednictwem łańcucha kluczy.

Rozszerzenia internetowe przeglądarki Safari

Jeśli aplikacja ma rozszerzenie internetowe Safari i obsługuje wysyłanie danych między rozszerzeniem a aplikacją nadrzędną, w niektórych scenariuszach aplikacja może wymagać obsługi blokowania danych. Aby zablokować dane, w aplikacji nadrzędnej wywołaj isAppSharingAllowed interfejs API w IntuneMAMPolicy.hprogramie , a następnie zablokuj rozszerzenie internetowe.

Skrypt publikowania kompilacji

Narzędzie wiersza polecenia IntuneMAMFrameworkPatcher nie musi być już uruchamiane jako ostatni krok procesu kompilacji aplikacji. To narzędzie jest jednak dostępne w ramach zestawu Intune App SDK dla systemu iOS w usłudze GitHub.

Ważna

Od wersji 17.7.1 zestawu Intune MAM SDK ten krok nie jest już wymagany. Nie trzeba już uruchamiać narzędzia wiersza polecenia IntuneMAMFrameworkPatcher .

Użycie wiersza polecenia

IntuneMAMFrameworkPatcher -i /path/to/directory_or_binary [-resign] [-verbose]

Parametry:

  • i, , r: vten parametr umożliwia wybranie instalacji, usunięcia lub zweryfikowania Intune programu MAM Framework Patcher dla procesu kompilacji aplikacji.
  • path: element path powinien być katalogiem głównym katalogu .app aplikacji.
  • resign: Opcja resign nakazuje narzędziu rezygnację z plików binarnych, które miały prawidłowy podpis przed poprawką pliku binarnego. Ta opcja powinna być używana, jeśli projekt zawiera zależności platformy lub wtyczki z opcją Osadź i podpisuj , nawet jeśli jest uruchamiana przed ostatecznym podpisaniem aplikacji lub jeśli narzędzie jest uruchamiane po ostatecznym podpisaniu aplikacji.
  • verbose: Opcja verbose spowoduje, że narzędzie wyświetli informacje o każdym pliku binarnym, który został poprawiony.

Inne zastosowania:

  • Usuń poprawkę:

    IntuneMAMFrameworkPatcher -r /path/to/directory_or_binary [-resign] [-verbose]

  • Sprawdź poprawkę:

    IntuneMAMFrameworkPatcher -v /path/to/directory_or_binary [-verbose]

Przykładowy skrypt:

IntuneMAMFrameworkPatcher -i $BUILT_PRODUCTS_DIR/$EXECUTABLE_FOLDER_PATH -resign -verbose

Aby uzyskać więcej informacji na temat rozpoczynania pracy i pobierania zestawu SDK, zobacz Wprowadzenie do zestawu Microsoft Intune App SDK.

Kryteria zakończenia

Weryfikowanie zapisywania w /otwieraniu z ograniczeń

Pomiń, jeśli kontrolki save-as i open-from nie zostały zaimplementowane.

Przeprowadź refamilializację w każdym scenariuszu, w którym aplikacja może zapisywać dane w magazynach w chmurze lub lokalizacjach lokalnych oraz otwierać dane z magazynów w chmurze lub lokalizacji lokalnych.

Dla uproszczenia te testy zakładają, że aplikacja obejmuje tylko obsługę zapisywania i otwierania danych z OneDrive dla Firm z jednej lokalizacji w aplikacji. Należy jednak zweryfikować każdą kombinację: każda obsługiwana lokalizacja zapisu w każdym miejscu aplikacji umożliwia zapisywanie danych, a każda obsługiwana otwarta lokalizacja w każdym miejscu, w które aplikacja umożliwia otwieranie danych.

W przypadku tych testów zainstaluj aplikację, zintegruj ją z zestawem SDK i zaloguj się przy użyciu konta zarządzanego przed rozpoczęciem testu.

Dodatkowo:

  • Ustaw zasady konta zarządzanego jako:
    • "Wyślij dane organizacji do innych aplikacji" do "Aplikacje zarządzane przez zasady".
    • "Odbieranie danych z innych aplikacji" do "Aplikacje zarządzane przez zasady".
Scenariusz Warunki wstępne Kroki
Zapisz w, w pełni dozwolone Zasady "Zapisz kopie danych organizacji" ustawione na wartość "Zezwalaj" — Przejdź do miejsca, w którym aplikacja może zapisywać dane, aby OneDrive dla Firm.
— Spróbuj zapisać dokument w celu OneDrive dla Firm na tym samym koncie zarządzanym zalogowanym do aplikacji.
— Upewnij się, że zapisywanie jest dozwolone.
Zapisz w, wykluczone — Zasady "Zapisz kopie danych organizacji" ustawione na "Blokuj"
— Zasady "Zezwalaj użytkownikowi na zapisywanie kopii w wybranych usługach" są ustawione tylko na wartość "OneDrive dla Firm"
— Przejdź do miejsca, w którym aplikacja może zapisywać dane, aby OneDrive dla Firm.
— Spróbuj zapisać dokument w celu OneDrive dla Firm na tym samym koncie zarządzanym zalogowanym do aplikacji.
— Upewnij się, że zapisywanie jest dozwolone.
— Jeśli aplikacja na to zezwala, spróbuj zapisać plik w innej lokalizacji magazynu w chmurze i potwierdzić, że plik jest zablokowany.
Zapisz w, zablokowane Zasady "Zapisz kopie danych organizacji" ustawione na "Blokuj" — Przejdź do miejsca, w którym aplikacja może zapisywać dane, aby OneDrive dla Firm.
— Spróbuj zapisać dokument w celu OneDrive dla Firm na tym samym koncie zarządzanym zalogowanym do aplikacji.
— Upewnij się, że zapisywanie jest zablokowane.
— Jeśli aplikacja na to zezwala, spróbuj zapisać plik w innej lokalizacji magazynu w chmurze i potwierdzić, że plik jest zablokowany.
Otwórz z, w pełni dozwolone Zasady "Otwórz dane w dokumentach organizacji" ustawione na wartość "Zezwalaj" — Przejdź do miejsca, w którym aplikacja może otwierać dane z OneDrive dla Firm.
— Spróbuj otworzyć dokument z OneDrive dla Firm z tego samego konta zarządzanego zalogowanego do magazynu aplikacji.
— Upewnij się, że otwieranie jest dozwolone.
Otwarte z, wykluczone — Zasady "Otwórz dane w dokumentach organizacji" ustawione na "Blokuj"
— Zasady "Zezwalaj użytkownikom na otwieranie danych z wybranych usług" są ustawione tylko na wartość "OneDrive dla Firm"
— Przejdź do miejsca, w którym aplikacja może otwierać dane z OneDrive dla Firm.
— Spróbuj otworzyć dokument z OneDrive dla Firm z tego samego konta zarządzanego zalogowanego do magazynu aplikacji.
— Upewnij się, że otwieranie jest dozwolone.
— Jeśli aplikacja na to zezwala, spróbuj otworzyć inny plik z innej lokalizacji magazynu w chmurze i potwierdzić, że jest zablokowany.
Otwieranie z, zablokowane Zasady "Otwórz dane w dokumentach organizacji" ustawione na "Blokuj" — Przejdź do miejsca, w którym aplikacja może otwierać dane z OneDrive dla Firm.
— Spróbuj otworzyć dokument z OneDrive dla Firm z tego samego konta zarządzanego zalogowanego do magazynu aplikacji.
— Upewnij się, że otwarte okno jest zablokowane.
— Jeśli aplikacja na to zezwala, spróbuj otworzyć inny plik z innej lokalizacji magazynu w chmurze i potwierdzić, że jest zablokowany.

Weryfikowanie akcji "Kopiuj do"

Pomiń, jeśli nie zaimplementujesz akcji "Kopiuj do".

Dla uproszczenia te testy zakładają, że aplikacja obejmuje tylko obsługę kopiowania danych do aplikacji pakietu Microsoft Office, takich jak Microsoft Word, Excel itp. Należy jednak zweryfikować każdą kombinację: każda obsługiwana lokalizacja kopiowania do każdego miejsca, do które aplikacja zezwala na kopiowanie danych.

W przypadku tych testów zainstaluj aplikację, zintegruj ją z zestawem SDK i zaloguj się przy użyciu konta zarządzanego przed rozpoczęciem testu.

Dodatkowo:

  • Ukończono wszystkie kroki integracji z akcji "Kopiuj do" przy użyciu rozszerzenia akcji dla firmy Microsoft Word i pomyślnie skompiluj i uruchom aplikację.
  • Ustaw zasady konta zarządzanego jako:
    • "Wyślij dane organizacji do innych aplikacji" do "Aplikacje zarządzane przez zasady".
Scenariusz Warunki wstępne Kroki
Wybierz aplikacje do wykluczenia, Brak Zasady "Wyślij dane organizacji do innych aplikacji" ustawione na "Aplikacje zarządzane przez zasady" — Przejdź do miejsca, w którym aplikacja może kopiować dane do firmy Microsoft Word i uruchomić opcję udostępniania tych danych.
— Upewnij się, że opcja "Kopiuj do Word" jest widoczna jako "Otwórz w Word".
— Naciśnij przycisk "Otwórz w Word" i upewnij się, że dokument został skopiowany i wyświetlony pomyślnie, biorąc pod uwagę, Word jest również zalogowany przy użyciu tego samego konta zarządzanego.

Weryfikowanie akcji drukowania

Pomiń, jeśli nie zaimplementujesz drukowania.

Na potrzeby tego testu zainstaluj aplikację, zintegruj ją z zestawem SDK i zaloguj się przy użyciu konta zarządzanego przed rozpoczęciem testu.

Dodatkowo:

  • Ukończono wszystkie kroki integracji z drukowania i kompilowania i uruchamiania aplikacji pomyślnie.
  • Aplikacja już implementuje alerty/elementy akcji, aby obsłużyć przypadek, gdy drukowanie jest niedozwolone od administratora IT aplikacji. W tym teście przy założeniu, że aplikacja wyświetli alert użytkownikom końcowym po zablokowaniu drukowania.
Scenariusz Kroki
Drukowanie danych organizacji, blokuj — Przejdź do miejsca, w którym aplikacja może wyświetlać dane, i uruchom opcję udostępniania tych danych.
- Naciśnij przycisk "Drukuj".
— Upewnij się, że zostanie wyświetlony alert bloku, a drukowanie jest niedozwolone.
Drukowanie danych organizacji, Zezwalaj — Przejdź do miejsca, w którym aplikacja może wyświetlać dane, i uruchom opcję udostępniania tych danych.
- Naciśnij przycisk "Drukuj".
- Potwierdź, że zostanie wyświetlony widok "Drukuj", a następnie możesz wybrać drukarkę i pomyślnie ukończyć akcję.

Weryfikowanie odbierania konfiguracji aplikacji

Pomiń, jeśli nie włączono konfiguracji aplikacji docelowej dla aplikacji systemu iOS.

Intune jest odpowiedzialna za dostarczanie wartości zasad konfiguracji aplikacji do aplikacji. Następnie aplikacja jest odpowiedzialna za używanie tych wartości do zmiany zachowania lub interfejsu użytkownika wewnątrz aplikacji. Kompleksowe testowanie powinno obejmować oba składniki.

Aby sprawdzić, czy Intune prawidłowo dostarcza zasady konfiguracji aplikacji:

  1. Skonfiguruj zasady konfiguracji aplikacji przeznaczone dla aplikacji i wdrożone na koncie testowym.
  2. Zaloguj się do aplikacji przy użyciu konta testowego.
  3. Nawiguj po aplikacji, aby wykonać poszczególne ścieżki kodu, które wywołują IntuneMAMAppConfigManagerelementy appConfigForIdentity.
    • Rejestrowanie wyników wywołań to appConfigForIdentity prosty sposób sprawdzania, które ustawienia są dostarczane. Jednak ponieważ administratorzy mogą wprowadzać dowolne dane dla ustawień konfiguracji aplikacji, należy uważać, aby nie rejestrować żadnych danych użytkownika prywatnego.
  4. Zobacz Weryfikowanie zastosowanych zasad konfiguracji aplikacji.

Ponieważ konfiguracje aplikacji są specyficzne dla aplikacji, tylko ty wiesz, jak sprawdzić, jak aplikacja powinna zmienić zachowanie lub interfejs użytkownika dla każdego ustawienia konfiguracji aplikacji.

Podczas testowania należy wziąć pod uwagę następujące kwestie:

  • Zapewnienie, że wszystkie scenariusze są objęte tworzeniem różnych zasad konfiguracji aplikacji testowych z każdą wartością obsługiwaną przez aplikację.
  • Weryfikowanie logiki rozwiązywania konfliktów aplikacji przez utworzenie wielu zasad konfiguracji aplikacji testowej z różnymi wartościami dla każdego ustawienia.

Następne kroki

Jeśli wykonano ten przewodnik w kolejności i zostały spełnione wszystkie powyższe kryteria zakończenia, gratulacje, aplikacja jest teraz w pełni zintegrowana z zestawem Intune App SDK i może wymuszać zasady ochrony aplikacji! Zapoznaj się z innymi ważnymi funkcjami uczestnictwa w aplikacji, takimi jak etap 5: wiele tożsamości, etap 6: obsługa dostępu warunkowego usługi App Protection i etap 7: funkcje widoku internetowego w celu zintegrowania ich z aplikacją.

Ochrona aplikacji jest teraz podstawowym scenariuszem dla twojej aplikacji. W dalszym ciągu zapoznaj się z tym przewodnikiem i dodatkiem w miarę dalszego opracowywania aplikacji.