Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zestaw SDK aplikacji usługi Microsoft Intune dla systemu iOS umożliwia włączenie zasad ochrony aplikacji usługi Intune (znanych również jako zasady aplikacji lub zarządzania aplikacjami mobilnymi) do natywnej aplikacji systemu iOS. Aplikacja zarządzana przez usługę Intune jest zintegrowana z zestawem SDK aplikacji usługi Intune. Administratorzy usługi Intune mogą łatwo wdrażać zasady ochrony aplikacji w aplikacji zarządzanej przez usługę Intune, gdy usługa 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 SDK aplikacji usługi Intune.
- 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:
- Wiele tożsamości opisanych w etapie 5: wiele tożsamości.
- Urząd certyfikacji usługi App Protection opisany w etapie 6: obsługa dostępu warunkowego ochrony aplikacji
- Funkcje specyficzne dla widoku internetowego omówione w etapie 7: funkcje widoku sieci Web
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
- Drukarstwo
- Powiadomienia
- Skrypt publikowania kompilacji
Dostosowywanie zachowania aplikacji za pomocą interfejsów API
Zestaw SDK aplikacji usługi Intune zawiera kilka interfejsów API, które można wywołać, aby uzyskać informacje o zasadach ochrony aplikacji usługi Intune wdrożonych w aplikacji. Te dane umożliwiają dostosowanie zachowania aplikacji. Poniższa tabela zawiera informacje o niektórych podstawowych klasach usługi Intune, których używasz.
| Klasa | Opis |
|---|---|
| IntuneMAMPolicyManager.h | Klasa IntuneMAMPolicyManager uwidacznia zasady ochrony aplikacji usługi Intune 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ć usługa 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 danych na podanej tożsamości. Tożsamość może być zarządzana przez usługę Intune lub niezarządzana, a zestaw SDK będzie odpowiednio stosować szyfrowanie. |
Implementowanie dozwolonych kont
Usługa Intune umożliwia administratorom IT określanie kont, które mogą być logowane przez użytkownika. Aplikacje mogą wysyłać zapytania do zestawu SDK aplikacji usługi Intune 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 usługi Intune dla wszystkich plików 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
Usługa Intune umożliwia administratorom IT wybieranie lokalizacji magazynu, z których zarządzana aplikacja może zapisywać dane lub z których danych można otwierać. Aplikacje mogą wysyłać zapytania do zestawu SDK zarządzania aplikacjami mobilnymi usługi Intune o dozwolone lokalizacje 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
nilnie będzie już traktowane jako bieżące konto dla lokalizacji LocalDrive/LocalStorage.nilPrzekazanie 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
nilnie będzie już traktowane jako bieżące konto dla aplikacji z jedną tożsamością.nilPrzekazywanie 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żyjIntuneMAMPolicy'sprimaryUser, aby odwołać się do bieżącego konta, jeśli jest zarządzane, inilodwoł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 SDK zarządzania aplikacjami mobilnymi usługi Intune zapewnia obsługę następujących lokalizacji zapisywania zdefiniowanych w programie IntuneMAMPolicy.h:
-
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,nilnależ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 tylkonilwtedy, 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.nilW 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 SDK zarządzania aplikacjami mobilnymi usługi Intune 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 tylkonilwtedy, gdy ta lokalizacja jest używana. Aby otworzyć dane z biblioteki zdjęć systemu iOS, użyj poleceniaIntuneMAMOpenLocationPhotos. -
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 tylkonilwtedy, gdy ta lokalizacja jest używana. Do otwierania obrazów wykonanych bezpośrednio z aparatu systemu iOS użyj poleceniaIntuneMAMOpenLocationCamera. -
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,nilnależ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.nilW 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 usługi Intune może filtrować UIActivityViewController akcje, aby można było wybierać tylko lokalizacje udziałów zarządzanych przez usługę Intune. 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 SDK aplikacji usługi Intune. Rozszerzenie Akcja jest tylko wycinkiem. Zestaw SDK zaimplementuje zachowanie udostępniania plików. Wykonaj poniższe kroki:
Aplikacja musi mieć co najmniej jeden schematURL zdefiniowany w pliku Info.plist
CFBundleURLTypeswraz ze swoim-intunemamodpowiednikiem. Przykład:<key>CFBundleURLSchemes</key> <array> <string>launch-com.contoso.myapp</string> <string>launch-com.contoso.myapp-intunemam</string> </array>Zarówno aplikacja, jak i rozszerzenie akcji muszą współużytkować co najmniej jedną grupę aplikacji, a grupa aplikacji musi być wymieniona w
AppGroupIdentifierstablicy w obszarze słowników intuneMAMSettings aplikacji i rozszerzenia.Zarówno aplikacja, jak i rozszerzenie akcji muszą mieć możliwość udostępniania pęku kluczy i współużytkować grupę
com.microsoft.intune.mampęku kluczy.Nadaj rozszerzeniu akcji nazwę "Otwórz w", a następnie nazwę aplikacji. W razie potrzeby zlokalizuj plik Info.plist.
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/directoryW obszarze IntuneMAMSettings w pliku Info.plist rozszerzenia dodaj ustawienie logiczne o nazwie
OpenInActionExtensionz wartością TAK.Skonfiguruj element tak
NSExtensionActivationRule, aby obsługiwał pojedynczy plik i wszystkie typy zCFBundleDocumentTypesaplikacji z prefiksemcom.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 usługi 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 usługi 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 usługi Intune.
Jak powinien wyglądać interfejs użytkownika
Stary interfejs użytkownika:
Nowy interfejs użytkownika:
Włączanie docelowej konfiguracji aplikacji dla aplikacji systemu iOS
Konfiguracja docelowa mam (znana również jako konfiguracja aplikacji MAM) umożliwia aplikacji odbieranie danych konfiguracji za pośrednictwem zestawu SDK usługi Intune. Format i warianty tych danych muszą być zdefiniowane i przekazane klientom usługi Intune przez właściciela/dewelopera aplikacji.
Administratorzy usługi Intune mogą kierować i wdrażać dane konfiguracji za pośrednictwem centrum administracyjnego usługi Microsoft Intune i interfejs Graph API usługi Intune. W wersji 7.0.1 zestawu SDK aplikacji usługi Intune 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 usługi 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 Zarządzania aplikacjami mobilnymi usługi Intune przed uzyskaniem dostępu do docelowego interfejsu użytkownika konfiguracji mam. Aby uzyskać więcej informacji, zobacz Odbieranie zasad ochrony aplikacji.
Dołącz
IntuneMAMAppConfigManager.hdo 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ć poleceniastringValueForKeyluballStringsForKey. Zobacz, aby uzyskaćIntuneMAMAppConfig.hszczegół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 mam w temacie How to use Microsoft Intune app configuration policies for iOS/iPadOS (Jak używać zasad konfiguracji aplikacji usługi Microsoft Intune dla systemu iOS/iPadOS).
Telemetria
Domyślnie zestaw SDK aplikacji usługi Intune dla systemu iOS zbiera dane telemetryczne dotyczące następujących typów zdarzeń:
Uruchamianie aplikacji: aby ułatwić usłudze Microsoft Intune poznanie użycia 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 mdm itd.).
Wywołania rejestracji: aby ułatwić usłudze Microsoft Intune poznanie wskaźnika sukcesu i innych metryk wydajności wywołań rejestracji zainicjowanych po stronie klienta.
Akcje usługi Intune: aby pomóc w diagnozowaniu problemów i zapewnianiu funkcjonalności usługi Intune, zbieramy informacje o akcjach zestawu SDK usługi Intune.
Uwaga
Jeśli nie chcesz wysyłać danych telemetrycznych zestawu SDK aplikacji usługi Intune do usługi Microsoft Intune z aplikacji mobilnej, musisz wyłączyć przechwytywanie danych telemetrycznych zestawu SDK aplikacji usługi 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.
Drukarstwo
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.
Blokowanie przechwytywania ekranu
W przypadku aplikacji, które zostały zaktualizowane do wersji 19.7.6 lub nowszej dla programu Xcode 15 i wersji 20.2.1 lub nowszej dla Xcode 16 zestawu SDK, blok przechwytywania ekranu zostanie zastosowany, jeśli skonfigurowano Send Org data to other apps wartość inną niż "Wszystkie aplikacje". Możesz skonfigurować ustawienie zasad konfiguracji aplikacji "com.microsoft.intune.mam.screencapturecontrol = Disabled", jeśli chcesz zezwolić na przechwytywanie ekranu dla urządzeń z systemem iOS.
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 SDK aplikacji usługi Intune dla systemu iOS w witrynie GitHub.
Ważna
Od wersji 17.7.1 zestawu SDK mam usługi Intune 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,v: Ten parametr umożliwia wybranie instalacji, usunięcia lub zweryfikowania patchera struktury MAM usługi Intune dla procesu kompilacji aplikacji. -
path: elementpathpowinien być katalogiem głównym katalogu .app aplikacji. -
resign: Opcjaresignnakazuje 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: Opcjaverbosespowoduje, ż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 SDK aplikacji usługi Microsoft Intune.
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.
Usługa 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 usługa Intune prawidłowo dostarcza zasady konfiguracji aplikacji:
- Skonfiguruj zasady konfiguracji aplikacji przeznaczone dla aplikacji i wdrożone na koncie testowym.
- Jeśli aplikacja obsługuje konfigurację aplikacji dla urządzeń zarządzanych, zobacz zasady konfiguracji aplikacji dla zarządzanych urządzeń z systemem iOS Enterprise.
- Jeśli aplikacja obsługuje konfigurację aplikacji dla aplikacji zarządzanych, zobacz zasady konfiguracji aplikacji dla aplikacji zarządzanych.
- Jeśli aplikacja obsługuje oba typy konfiguracji aplikacji, utwórz oba typy zasad do testowania.
- Zaloguj się do aplikacji przy użyciu konta testowego.
- Nawiguj po aplikacji, aby wykonać poszczególne ścieżki kodu, które wywołują
IntuneMAMAppConfigManagerelementyappConfigForIdentity.- Rejestrowanie wyników wywołań to
appConfigForIdentityprosty 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.
- Rejestrowanie wyników wywołań to
- 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 SDK aplikacji usługi Intune 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.