Для аутентификации ADAL требуется управляемое устройство - PullRequest
0 голосов
/ 11 сентября 2018

Я установил демонстрационное приложение для аутентификации ADAL.Наша компания запросила приложение InTune: https://itunes.apple.com/us/app/intune-company-portal/id719171358?mt=8

После установки и настройки InTune я установил демонстрационную версию с ADAL, которую я разработал:

  1. добавлен ADAL в качестве библиотеки Pod

  2. добавлен URI перенаправления внутри моего портала Azure (https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps) (один со схемой: // bundle_id, а другой с msauth: // code /схема% 3A% 2F% 2Fbundle_id)

  3. добавлено в info.plist приложения:

    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>msauth</string>
    </array>
    

4.добавлено в info.plist приложения

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLName</key>
        <string>bundle_id</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>schema</string>
        </array>
    </dict>
</array>

добавлено [_authContext setCredentialsType:AD_CREDENTIALS_AUTO]; для использования inTune App Portal для аутентификации брокера.

создайте аутентификацию с помощью:

ADAuthenticationError *error = nil;
 _authContext = [ADAuthenticationContext authenticationContextWithAuthority:@"https://login.microsoftonline.com/common" error:&error];  
[_authContext setCredentialsType:AD_CREDENTIALS_AUTO];

[_authContext acquireTokenWithResource:@"https://graph.microsoft.com"
                          clientId:@"my_client_id"                          // Comes from App Portal
                       redirectUri:[NSURL URLWithString:@"schema://bundle_id"] // Comes from App Portal
                   completionBlock:^(ADAuthenticationResult *result)
{
   NSLog(result.accessToken);
 }];

Приложение будет корректно запрашивать Microsoft аутентификацию для пользователя, которая перенаправляется на микро-аутентификацию на странице компании, но после Аутентификации это результат:

enter image description here

1 Ответ

0 голосов
/ 13 сентября 2018

Чтобы Azure AD определил, что устройство управляется для удовлетворения требований условного доступа, необходимо использовать Brokered Authentication .Это можно сделать, указав AD_CREDENTIALS_AUTO (что вы сделали), добавив msauth к LSApplicationQueriesSchemes (что вы сделали) и сконфигурировав соответствующую схему обратного вызова URI для вашего приложения (что вы также сделали).

В качестве посредника будет использовано приложение Microsoft Authenticator .Если он не установлен (что определяет среда ADALios, проверив, есть ли приложение, отвечающее схеме msauth url), библиотека ADAL по умолчанию отобразит форму входа в веб-представлении в вашем веб-представлении.app.

Поскольку ваше приложение не может определить, является ли устройство управляемым, вы получите результат «проверка подлинности прошла успешно, но ваше устройство не зарегистрировано».

После установки приложения Microsoft Authenticator выувидит, что он открывается в ответ на запрос аутентификации.Это приложение может определять статус регистрации вашего устройства, и вы должны затем вернуться к своему приложению с успешным токеном.

Требование установить приложение для проверки подлинности может быть более явно указано в документации библиотеки, но оноупоминается:

Брокерская аутентификация

Если вашему приложению требуется поддержка условного доступа или аутентификации сертификата (в настоящее время в режиме предварительного просмотра), вы должнынастройте свой AuthenticationContext и redirectURI, чтобы иметь возможность общаться с приложением Azure Authenticator .

...