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.

Ú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ért és alkalmazott szabályzatokat, az IntuneMAMComplianceDelegate protokoll használatával értesíti az alkalmazást az eredményről. 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éhez tartozó Entra objektumazonosító lekéréséhez a következőket kell tennie:

  • 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 objectId.TenantId formátumú lesz. Bontsa ki az ObjectId értéket a sztring felosztásával a (.) elemen, majd használja ezt az értéket 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>Biztonsági>feltételes hozzáférés>Új szabályzat lehetőséget. Létrehozás 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, válassza a Létrehozás lehetőséget 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

Teszteset 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 Állítson be alkalmazásvédelmi hitelesítésszolgáltatói szabályzatot, 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. fázis: 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.