Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uygulama Koruması: Koşullu Erişim, Intune uygulama koruma ilkesinin uygulandığını onaylayana kadar sunucu belirteçlerine erişimi engeller. Bu özellik, kullanıcı ekleme akışlarınızda değişiklik yapılmasını gerektirir. Müşteri App Protection CA'yı etkinleştirdikten sonra, bu müşterinin kiracısında korunan kaynaklara erişen uygulamalar, bu özelliği desteklemedikleri sürece bir erişim belirteci alamazlar.
Not
Bu kılavuz birkaç ayrı aşamaya ayrılmıştır. 1. Aşama: Entegrasyonu Planlama bölümünü gözden geçirerek başlayın.
6. Aşama: Uygulama Koruması CA desteği
Aşama Hedefleri
- iOS uygulamasında Uygulama Koruması Koşullu Erişimi'ni desteklemek için kullanılabilecek farklı API'ler hakkında bilgi edinin
- Uygulama Koruması Koşullu Erişimi'ni uygulamanıza ve kullanıcılarınıza tümleştirin.
- Yukarıdaki tümleştirmeyi uygulamanız ve kullanıcılarınızla test edin.
Bağımlılıklar
Intune SDK'ya ek olarak, uygulamanızda App Protection CA'yı etkinleştirmek için bu iki bileşene ihtiyacınız vardır.
- iOS Authenticator uygulaması
- MSAL kimlik doğrulama kitaplığı 1.0 veya üzeri
MAM-CA düzeltme akışı
MAM uyumluluk süreci akışı
Yeni API'ler
Yeni API'lerin çoğu IntuneMAMComplianceManager.h içinde bulunabilir. Uygulamanın, aşağıda açıklanan üç davranış farkını bilmesi gerekir.
| Yeni davranış | Açıklama |
|---|---|
| ADAL/MSAL → uygulaması: Belirteç al | Bir uygulama bir belirteç almaya çalıştığında, ERROR_SERVER_PROTECTION_POLICY_REQUIRED almaya hazır olmalıdır. Uygulama, ilk hesap ekleme akışı sırasında veya uygulama yaşam döngüsünün ilerleyen aşamalarında bir belirteci erişirken bu hatayı alabilir. Uygulama bu hatayı aldığında, ona bir erişim belirteci verilmez ve herhangi bir sunucu verisini almak için düzeltilmesi gerekir. |
| Uygulama → Intune SDK'sı: RemediateComplianceForIdentity çağrısı | Bir uygulama ADAL'den bir ERROR_SERVER_PROTECTION_POLICY_REQUIRED aldığında veya MSAL'den MSALErrorServerProtectionPoliciesRequired aldığında, Intune uygulamayı kaydetmesine ve ilkeyi uygulamasına izin vermek için [[IntuneMAMComplianceManager örneği] remediateComplianceForIdentity] öğesini çağırmalıdır. Bu arama sırasında uygulama yeniden başlatılabilir. Uygulamanın yeniden başlatmadan önce durumu kaydetmesi gerekiyorsa, bunu IntuneMAMPolicyDelegate'deki restartApplication temsilci yönteminde yapabilir. remediateComplianceForIdentity, registerAndEnrollAccount ve loginAndEnrollAccount işlevlerinin tümünü sağlar. Bu nedenle, uygulamanın bu eski API'lerden herhangi birini kullanması gerekmez. |
| Intune → App: Temsilci düzeltme bildirimi | Intune ilkeleri alıp uyguladıktan sonra, IntuneMAMComplianceDelegate protokolünü kullanarak sonucu uygulamaya bildirir. Uygulamanın her hatayı nasıl işlemesi gerektiği hakkında bilgi için IntuneComplianceManager.h'deki IntuneMAMComplianceStatus'a bakın. IntuneMAMComplianceCompliant dışındaki tüm durumlarda, kullanıcının geçerli bir erişim belirteci olmaz. Uygulamada zaten yönetilen içerik varsa ve uyumlu duruma giremiyorsa uygulamanın, şirket içeriklerini kaldırmak için seçmeli temizlemeyi çağırması gerekir. Uyumlu bir duruma ulaşamazsak, uygulamanın withErrorMessage ve andErrorTitle tarafından sağlanan hata iletisini ve başlık dizesini yerelleştirilmiş olarak görüntülemesi gerekir. |
IntuneMAMComplianceDelegate'in hasComplianceStatus yöntemi örneği
(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
Uygulamaların MSAL/ADAL yapılandırmalarına istemci özellikleri değişkeni ekleyerek Uygulama Koruma CA'sı desteğini belirtmesi gerekir. Aşağıdaki değerler gereklidir: claims = {"access_token":{"xms_cc":{"values":["protapp"]}}}
MSALPublicClientApplicationConfig Sınıf Başvurusu (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)
MAM SDK uyumluluk düzeltme API'lerinin accountId parametresinin Microsoft EntraMicrosoft Entra nesne kimliğini getirmek için aşağıdaki adımları uygulamanız gerekir:
- İlk olarak, uygulamaya ERROR_SERVER_PROTECTION_POLICY_REQUIRED bildirdiğinde MSAL tarafından geri gönderilen MSALError nesnesi içindeki userInfo[MSALHomeAccountIdKey] öğesinden homeAccountId değerini alın.
- Bu homeAccountId, ObjectId.TenantId biçimindedir. '.' üzerindeki dizeyi bölerek ObjectId değerini ayıklayın ve ardından düzeltme API'sinde accountId parametresi için bu değeri kullanın remediateComplianceForAccountId.
Çıkış ölçütleri
App Protection CA için test kullanıcısını yapılandırma
- Yönetici kimlik bilgilerinizle https://portal.azure.com.
- Tseçin Microsoft Entra IDMicrosoft Entra IDConditional>Access>Create New policy. Yeni bir Koşullu Erişim ilkesi oluşturun.
- Aşağıdaki öğeleri ayarlayarak Koşullu Erişim ilkesini yapılandırın:
- Ad alanını doldurma.
- İlkeyi etkinleştirme.
- İlkeyi bir kullanıcı veya gruba atama.
- Bulut uygulamaları atayın. Tüm bulut uygulamalarınıdahil et'i> seçin. Uyarıda belirtildiği gibi, bu ayarı yanlış yapılandırmamaya dikkat edin. Örneğin, tüm bulut uygulamalarını hariç tutarsanız kendinizi konsola kilitleyebilirsiniz.
- Erişim Denetimleri'niseçerek erişim denetimleri verin, >Erişim> İzniVer Uygulama koruma ilkesi gerektir'i seçin.
- İlkeyi yapılandırmayı bitirdiğinizde, ilkeyi kaydetmek ve uygulamak için Oluştur'u seçin.
- İlkeyi etkinleştirin.
- Ayrıca, kullanıcıların MAM ilkeleri için hedeflendiğinden emin olmanız gerekir.
Test senaryoları
| Test Senaryosu | Nasıl test edilir | Beklenen Sonuç |
|---|---|---|
| MAM-CA her zaman uygulanır | Uygulamanıza kaydolmadan önce kullanıcının hem Uygulama Koruma CA'sı hem de MAM ilkesi için hedeflendiğinden emin olun. | Uygulamanızın yukarıda açıklanan düzeltme durumlarını işlediğini ve uygulamanın bir erişim belirteci alabildiğini doğrulayın. |
| Kullanıcı kaydolduktan sonra MAM-CA uygulandı | Kullanıcının uygulamada zaten oturum açmış olması, ancak Uygulama Koruma CA'sı için hedeflenmemiş olması gerekir. | Konsolda Uygulama Koruma CA'sı için kullanıcıyı hedefleyin ve MAM düzeltmesini doğru şekilde işlediğinizden emin olun |
| MAM-CA uyumsuzluğu | Bir Uygulama Koruma CA ilkesi ayarlayın, ancak bir MAM ilkesi atamayın. | Kullanıcı bir erişim belirteci alamamalıdır. Bu, uygulamanızın IntuneMAMComplianceStatus hata durumlarını nasıl işlediğini test etmek için kullanışlıdır. |
Sonraki adımlar
Yukarıdaki tüm Çıkış Ölçütlerini tamamladıktan sonra, uygulamanız artık Uygulama Koruma CA desteğiyle başarıyla tümleştirilir. Sonraki bölüm olan Aşama 7: Web görünümü özellikleri , uygulamanızın istediği uygulama koruma ilkesi desteğine bağlı olarak gerekli olabilir veya olmayabilir.