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.
- iOS Authenticator alkalmazás
- MSAL hitelesítési kódtár 1.0-s vagy újabb verziója
MAM-CA szervizelési folyamata
MAM-megfelelőségi folyamat
Ú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
- Jelentkezzen be a rendszergazdai hitelesítő adataival a következőre: https://portal.azure.com.
- 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.
- 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.
- 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.
- 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.
- 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.
- Engedélyezze a szabályzatot.
- 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.