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


Intune iOS-hez készült App SDK – App Protection CA-támogatás (nem kötelező)

Az App Protection feltételes hozzáférése letiltja a kiszolgálói jogkivonatokhoz való hozzáférést, amíg Intune meg nem erősítette az alkalmazásvédelmi szabályzat alkalmazását. Ehhez a funkcióhoz módosítani kell a felhasználói folyamatokat. Miután az ügyfél engedélyezte az App Protection hitelesítésszolgáltatót, az ügyfél bérlőjében lévő, védett erőforrásokhoz hozzáférő alkalmazások csak akkor szerezhetnek be hozzáférési jogkivonatot, ha támogatják ezt a funkciót.

Megjegyzés:

Ez az útmutató több különböző szakaszra oszlik. Először tekintse át az 1. fázis: Az integráció megtervezése című szakaszt.

6. szakasz: App Protection CA-támogatás

Szakasz Goals

  • Megismerheti azokat az API-kat, amelyek az Alkalmazásvédelem feltételes hozzáférésének támogatásához használhatók az iOS-alkalmazásokban
  • Alkalmazásvédelmi feltételes hozzáférés integrálása az alkalmazáshoz és a felhasználókhoz.
  • Tesztelje a fenti integrációt az alkalmazással és a felhasználókkal.

Függőségek

A Intune SDK mellett ez a két összetevő is szükséges ahhoz, hogy engedélyezze az App Protection hitelesítésszolgáltatót az alkalmazásban.

  1. iOS Authenticator alkalmazás
  2. MSAL hitelesítési kódtár 1.0-s vagy újabb verziója

MAM-CA szervizelési folyamata

A MAM-CA szervizelési folyamatának ábrája.

MAM-megfelelőségi folyamat

A MAM megfelelőségi folyamatának ábrája.

Új API-k

Az új API-k többsége az IntuneMAMComplianceManager.h fájlban található. Az alkalmazásnak tisztában kell lennie az alábbiakban ismertetett három viselkedésbeli különbségtel.

Új viselkedés Leírás
App → ADAL/MSAL: Token beszerzése Amikor egy alkalmazás jogkivonatot próbál beszerezni, fel kell készülnie egy ERROR_SERVER_PROTECTION_POLICY_REQUIRED fogadására. Az alkalmazás ezt a hibaüzenetet kaphatja a kezdeti fiók hozzáadása során, vagy amikor az alkalmazás életciklusának egy későbbi szakaszában hozzáfér egy jogkivonathoz. Amikor az alkalmazás ezt a hibaüzenetet kapja, nem kap hozzáférési jogkivonatot, és a kiszolgálói adatok lekéréséhez szervizelésre van szükség.
App → Intune SDK: Call remediateComplianceForIdentity Amikor egy alkalmazás ERROR_SERVER_PROTECTION_POLICY_REQUIRED kap az ADAL-tól, vagy MSALErrorServerProtectionPoliciesRequired az MSAL-től, meg kell hívnia az [[IntuneMAMComplianceManager instance] remediateComplianceForIdentity] metódust, hogy Intune regisztrálja az alkalmazást, és alkalmazza a szabályzatot. Előfordulhat, hogy a hívás során az alkalmazás újraindul. Ha az alkalmazásnak az újraindítás előtt mentenie kell az állapotot, ezt a restartApplication delegate metódusban teheti meg az IntuneMAMPolicyDelegate-ben.

a remediateComplianceForIdentity a registerAndEnrollAccount és a loginAndEnrollAccount összes funkcióját biztosítja. Ezért az alkalmazásnak nem kell ezeket a régebbi API-kat használnia.
Intune → alkalmazás: Szervizelési értesítés delegálása Miután Intune lekérte és alkalmazta a szabályzatokat, az IntuneMAMComplianceDelegate protokoll használatával értesíti az eredmény alkalmazását. Az intuneComplianceManager.h intuneMAMComplianceStatus című témakörben olvashat arról, hogy az alkalmazás hogyan kezelje az egyes hibákat. Az IntuneMAMComplianceCompliant kivételével a felhasználónak nem lesz érvényes hozzáférési jogkivonata.

Ha az alkalmazás már rendelkezik felügyelt tartalommal, és nem tud megfelelő állapotot megadni, az alkalmazásnak szelektív törlést kell meghívnia a vállalati tartalom eltávolításához.

Ha nem tudjuk elérni a megfelelő állapotot, az alkalmazásnak honosítottan kell megjelenítenie a withErrorMessage és az AndErrorTitle által megadott hibaüzenetet és címsztringet.

Példa az IntuneMAMComplianceDelegate hasComplianceStatus metódusára

(void) accountId:(NSString*_Nonnull) accountId hasComplianceStatus:(IntuneMAMComplianceStatus) status withErrorMessage:(NSString*_Nonnull) errMsg andErrorTitle:(NSString*_Nonnull) errTitle
{
    switch(status)
    {
        case IntuneMAMComplianceCompliant:
        {
            /*
            Handle successful compliance
            */
            break;
        }
        case IntuneMAMComplianceNotCompliant:
        case IntuneMAMComplianceNetworkFailure:
        case IntuneMAMComplianceUserCancelled:
        case IntuneMAMComplianceServiceFailure:
        {
            UIAlertController* alert = [UIAlertController alertControllerWithTitle:errTitle
            message:errMsg
            preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
            handler:^(UIAlertAction * action) {exit(0);}];
            [alert addAction:defaultAction];
            dispatch_async(dispatch_get_main_queue(), ^{
            [self presentViewController:alert animated:YES completion:nil];
            });
            break;
        }
        case IntuneMAMComplianceInteractionRequired:
        {
            [[IntuneMAMComplianceManager instance] remediateComplianceForAccountId:accountId silent:NO];
            break;
        }
    }
}
func accountId(_ accountId: String, hasComplianceStatus status: IntuneMAMComplianceStatus, withErrorMessage errMsg: String, andErrorTitle errTitle: String) {
        switch status {
        case .compliant:
           //Handle successful compliance
        case .notCompliant, .networkFailure,.serviceFailure,.userCancelled:
            DispatchQueue.main.async {
              let alert = UIAlertController(title: errTitle, message: errMsg, preferredStyle: .alert)
                alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { action in
                    exit(0)
                })) 
                self.present(alert, animated: true, completion: nil) 
            }
        case .interactionRequired:
            IntuneMAMComplianceManager.instance().remediateCompliance(forAccountId: accountId, silent: false)
   }

MSAL/ADAL

Az alkalmazásoknak jelezniük kell az App Protection hitelesítésszolgáltató támogatását azáltal, hogy hozzáadják az ügyfélképesség-változót az MSAL-/ADAL-konfigurációjukhoz. A következő értékek megadása kötelező: claims = {"access_token":{"xms_cc":{"values":["protapp"]}}}

MSALPublicClientApplicationConfig osztályhivatkozás (azuread.github.io)

    MSALAADAuthority *authority = [[MSALAADAuthority alloc] initWithURL:[[NSURL alloc] initWithString:IntuneMAMSettings.aadAuthorityUriOverride] error:&msalError];
    MSALPublicClientApplicationConfig *config = [[MSALPublicClientApplicationConfig alloc]
                                                 initWithClientId:IntuneMAMSettings.aadClientIdOverride
                                                 redirectUri:IntuneMAMSettings.aadRedirectUriOverride
                                                 authority:authority];

    /*
     IF YOU'RE IMPLEMENTING CA IN YOUR APP, PLEASE PAY ATTENTION TO THE FOLLOWING...
    */
    // This is needed for CA!
    // This line adds an option to the MSAL token request so that MSAL knows that CA may be active
    // Without this, MSAL won't know that CA could be activated
    // In the event that CA is activated and this line isn't in place, the auth flow will fail

    config.clientApplicationCapabilities = @[@"protapp"];
guard let authorityURL = URL(string: kAuthority) else {
            print("Unable to create authority URL")
            return
        }
         let authority = try MSALAADAuthority(url: authorityURL)
         let msalConfiguration = MSALPublicClientApplicationConfig(clientId: kClientID,redirectUri: kRedirectUri,
                                                                  authority: authority)
        msalConfiguration.clientApplicationCapabilities = ["ProtApp"]
        self.applicationContext = try MSALPublicClientApplication(configuration: msalConfiguration)

A MAM SDK megfelelőségi javítási API-k accountId paraméterének Microsoft Entra objektumazonosítójának lekéréséhez a következő lépéseket kell végrehajtania:

  • Először kérje le a homeAccountId azonosítót a userInfo[MSALHomeAccountIdKey] objektumból az MSALError objektumból, amelyet az MSAL küldött vissza, amikor ERROR_SERVER_PROTECTION_POLICY_REQUIRED jelent az alkalmazásnak.
  • Ez a homeAccountId formátuma ObjectId.TenantId. Bontsa ki az ObjectId értéket úgy, hogy felosztja a sztringet a (.) elemen, majd ezt az értéket használja a remediation API remediateComplianceForAccountId accountId accountId paraméteréhez.

Kilépési feltételek

Tesztfelhasználó konfigurálása az App Protection hitelesítésszolgáltatóhoz

  1. Jelentkezzen be a rendszergazdai hitelesítő adataival a következőre: https://portal.azure.com.
  2. Válassza a Microsoft Entra ID>Feltételes hozzáférés>Új szabályzat létrehozása lehetőséget. Hozzon létre egy új feltételes hozzáférési szabályzatot.
  3. Konfigurálja a feltételes hozzáférési szabályzatot a következő elemek beállításával:
    • A Név mező kitöltése.
    • A szabályzat engedélyezése.
    • A szabályzat hozzárendelése egy felhasználóhoz vagy csoporthoz.
  4. Felhőalkalmazások hozzárendelése. Válassza aMinden felhőalkalmazásbelefoglalása> lehetőséget. A figyelmeztetések szerint ügyeljen arra, hogy ne konfigurálja helytelenül ezt a beállítást. Ha például az összes felhőalkalmazást kizárta, akkor ki kell zárnia magát a konzolból.
  5. Hozzáférés-vezérlés megadásához válassza a Hozzáférés-vezérlés>hozzáférés> biztosításaalkalmazásvédelmi szabályzatot igényel lehetőséget.
  6. Ha végzett a szabályzat konfigurálásával, kattintson a Létrehozás gombra a szabályzat mentéséhez és alkalmazásához.
  7. Engedélyezze a szabályzatot.
  8. Arról is gondoskodnia kell, hogy a felhasználók a MAM-szabályzatokra legyenek kicélzva.

Tesztelési esetek

Próbaper A tesztelés menete Várt eredmény
A MAM-CA mindig alkalmazva van Az alkalmazásba való regisztráció előtt győződjön meg arról, hogy a felhasználó az App Protection CA- és MAM-szabályzattal is rendelkezik. Ellenőrizze, hogy az alkalmazás kezeli-e a fent leírt szervizelési eseteket, és hogy az alkalmazás le tud-e szerezni egy hozzáférési jogkivonatot.
A felhasználó regisztrációja után alkalmazott MAM-CA A felhasználónak már be kell jelentkeznie az alkalmazásba, de nem az App Protection hitelesítésszolgáltatója számára. Az App Protection hitelesítésszolgáltató felhasználójának megcélzása a konzolon, és annak ellenőrzése, hogy megfelelően kezeli-e a MAM-szervizelést
MAM-CA meg nem felelési Alkalmazásvédelmi feltételes hozzáférési szabályzat beállítása, de ne rendeljen hozzá MAM-szabályzatot. A felhasználó nem szerezhet be hozzáférési jogkivonatot. Ez annak teszteléséhez hasznos, hogyan kezeli az alkalmazás az IntuneMAMComplianceStatus hibaeseteket.

Következő lépések

Miután elvégezte a fenti kilépési feltételeket , az alkalmazás sikeresen integrálva lesz az App Protection hitelesítésszolgáltatói támogatásával. A következő, 7. szakasz: Webnézeti funkciókra lehet szükség az alkalmazás kívánt alkalmazásvédelmi szabályzatának támogatásától függően.