Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Podmíněný přístup služby App Protection blokuje přístup k tokenům serveru, dokud Intune nepotvrdí, že se použily zásady ochrany aplikací. Tato funkce vyžaduje změny v tocích přidávat uživatele. Jakmile zákazník povolí certifikační autoritu App Protection, nebudou aplikace v tenantovi tohoto zákazníka, které přistupují k chráněným prostředkům, moct získat přístupový token, pokud tuto funkci nepodporují.
Poznámka
Tento průvodce je rozdělen do několika odlišných fází. Začněte tím, že si projdete 1. fázi: Plánování integrace.
6. fáze: Podpora certifikační autority pro ochranu aplikací
Cíle fází
- Přečtěte si o různých rozhraních API, která se dají použít k podpoře podmíněného přístupu App Protection v aplikaci pro iOS
- Integrujte podmíněný přístup App Protection do své aplikace a uživatelů.
- Otestujte výše uvedenou integraci s vaší aplikací a uživateli.
Závislosti
Kromě sady Intune SDK potřebujete tyto dvě součásti, abyste ve své aplikaci povolili certifikační autoritu pro ochranu aplikací.
- Aplikace Authenticator pro iOS
- Knihovna ověřování MSAL 1.0 nebo vyšší
Postup nápravy MAM-CA
Postup procesu dodržování předpisů MAM
Nová rozhraní API
Většinu nových rozhraní API najdete v IntuneMAMComplianceManager.h. Aplikace si musí být vědoma tří rozdílů v chování, které jsou vysvětleny níže.
| Nové chování | Popis |
|---|---|
| Aplikace → ADAL/MSAL: Získání tokenu | Když se aplikace pokusí získat token, měla by být připravená na přijetí ERROR_SERVER_PROTECTION_POLICY_REQUIRED. Aplikace může tuto chybu obdržet během počátečního toku přidání účtu nebo při přístupu k tokenu později v životním cyklu aplikace. Když aplikace obdrží tuto chybu, nebude jí udělen přístupový token a je potřeba ji opravit, aby se načetla všechna data serveru. |
| Sada → Intune SDK: Call remediateComplianceForIdentity | Když aplikace obdrží ERROR_SERVER_PROTECTION_POLICY_REQUIRED z ADAL nebo MSALErrorServerProtectionPoliciesRequired z MSAL, měla by volat [[IntuneMAMComplianceManager instance] remediteComplianceForIdentity], aby Intune mohli aplikaci zaregistrovat a použít zásady. Během tohoto hovoru může dojít k restartování aplikace. Pokud aplikace potřebuje před restartováním uložit stav, může tak učinit v restartApplication metodě delegáta v IntuneMAMPolicyDelegate. remediateComplianceForIdentity poskytuje všechny funkce registerAndEnrollAccount a loginAndEnrollAccount. Proto aplikace nemusí používat žádné z těchto starších rozhraní API. |
| Aplikace Intune →: Delegování oznámení o nápravě | Jakmile Intune načte a použije zásady, upozorní aplikaci na výsledek pomocí IntuneMAMComplianceDelegate protokolu. Informace o tom, jak má aplikace zpracovávat jednotlivé chyby, najdete v IntuneMAMComplianceStatus v IntuneComplianceManager.h. Ve všech případech s výjimkou IntuneMAMComplianceCompliant nebude mít uživatel platný přístupový token. Pokud už má aplikace spravovaný obsah a není schopná vstoupit do stavu dodržování předpisů, měla by zavolat selektivní vymazání, aby se odstranil veškerý podnikový obsah. Pokud nemůžeme dosáhnout kompatibilního stavu, měla by aplikace zobrazit lokalizovanou chybovou zprávu a řetězec názvu, které poskytují withErrorMessage a andErrorTitle. |
Příklad metody hasComplianceStatus IntuneMAMComplianceDelegate
(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
Aplikace musí označovat podporu pro certifikační autoritu App Protection přidáním proměnné schopností klienta do konfigurace MSAL/ADAL. Jsou požadovány následující hodnoty: claims = {"access_token":{"xms_cc":{"values":["protapp"]}}}
Referenční informace o třídách MSALPublicClientApplicationConfig (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)
Pokud chcete načíst ID objektu aplikace Microsoft Entra pro parametr accountId rozhraní API pro nápravu dodržování předpisů MAM SDK, musíte provést následující kroky:
- Nejprve získejte homeAccountId z userInfo[MSALHomeAccountIdKey] v rámci objektu MSALError odeslaného zpět MSAL, když hlásí ERROR_SERVER_PROTECTION_POLICY_REQUIRED do aplikace.
- HomeAccountId je ve formátu ObjectId.TenantId. Extrahujte hodnotu ObjectId rozdělením řetězce na '.' a pak použijte tuto hodnotu pro parametr accountId v rozhraní API pro opravy remediteComplianceForAccountId.
Kritéria ukončení
Konfigurace testovacího uživatele pro certifikační autoritu App Protection
- Přihlaste se pomocí přihlašovacích údajů správce na https://portal.azure.comweb .
- Vyberte podmíněný přístup>Microsoft Entra ID>Vytvořit novou zásadu. Vytvořte novou zásadu podmíněného přístupu.
- Nakonfigurujte zásady podmíněného přístupu nastavením následujících položek:
- Vyplnění pole Jméno .
- Povolení zásady.
- Přiřazení zásady uživateli nebo skupině.
- Přiřaďte cloudové aplikace. Vyberte Zahrnout>všechny cloudové aplikace. Jak je uvedeno ve varování, dávejte pozor, abyste toto nastavení nenakonfigurovali špatně. Pokud byste například vyloučili všechny cloudové aplikace, uzamkli byste konzoli.
- Udělte řízení přístupu výběrem možnosti Ovládací prvky> přístupuUdělit přístup>Vyžadovat zásady ochrany aplikací.
- Po dokončení konfigurace zásady vyberte Vytvořit , abyste zásadu uložili a použili.
- Povolte zásadu.
- Musíte se také ujistit, že zásady MAM cílí na uživatele.
Testovací případy
| Testovací případ | Jak testovat | Očekávaný výsledek |
|---|---|---|
| Vždy se používá MAM-CA | Před registrací do aplikace se ujistěte, že na uživatele cílí jak zásady certifikační autority pro ochranu aplikací, tak zásady MAM. | Ověřte, že vaše aplikace zpracovává výše popsané případy nápravy a že aplikace může získat přístupový token. |
| MAM-CA použitá po registraci uživatele | Uživatel by už měl být k aplikaci přihlášený, ale neměl by být cílený do certifikační autority pro ochranu aplikací. | V konzole zaměřte uživatele na certifikační autoritu pro ochranu aplikací a ověřte, že správně řešíte nápravu MAM. |
| Nedodržování předpisů MAM-CA | Nastavte zásadu certifikační autority pro ochranu aplikací, ale nepřiřazujte zásadu MAM. | Uživatel by neměl být schopen získat přístupový token. To je užitečné pro testování, jak vaše aplikace zpracovává chybové případy IntuneMAMComplianceStatus. |
Další kroky
Po splnění všech výše uvedených kritérií ukončení je teď vaše aplikace úspěšně integrovaná s podporou certifikační autority pro ochranu aplikací. Následující část, Fáze 7: Funkce webového zobrazení mohou, ale nemusí být vyžadovány v závislosti na požadované podpoře zásad ochrany aplikací vaší aplikací.