0

У меня есть приложение iOS, которое уже находится в магазине приложений, и я проверяю пользователей своего приложения через свой веб-api. Приложение доступно пользователям, и этот доступ предоставляется вручную. В следующем выпуске я просто хочу контролировать доступ к моему приложению с Azure AD i.e, к приложению получают доступ только пользователи, настроенные в Azure AD.Контроль доступа для приложений iOS с пользователями Azure

Я новичок в Azure AD. Я прошел через несколько документов от Microsoft Azure, начиная с https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-ios-get-started, и все документы/вещи меня смутили, и я только что узнал, что ADAL - это библиотека, которая должна использоваться для аутентификации с Azure AD.

Просьба предложить мне, с чего начать, и что необходимо для выполнения/выполнения. Я проверил https://github.com/Azure-Samples/active-directory-ios и другие родственные библиотеки приложений Azure для объектного c.

Заранее спасибо.

+0

Обновите свой вопрос и перечислите все предметы, которые вас смутили. Пожалуйста, постарайтесь быть как можно более наглядными. –

+0

Вы хотите аутентифицировать доступ к своему приложению или предоставить аутентифицированную идентификацию для своего веб-сервиса? – Paulw11

+0

Спасибо за ваши комментарии. Вопрос, который я опубликовал, - это конечный результат, которого я ожидаю. Путаница в том, что такое мобильный сервер здесь? 1) как я могу реализовать свой конечный результат. 2) Вышеуказанная начальная ссылка показывает создание нового приложения iOS, но как реализовать уже существующее приложение. 3) С кокосовыми стручками проклятые ошибки/исключение растут, поэтому у нас нет другого варианта без стручков какао. 4) Я только что создал приложение в Azure AD (как показано выше, чтобы начать ссылку), какие шаги мне нужно выполнить для моего ожидаемого результата. –

ответ

0

Если вы просто хотите аутентифицироваться против Azure AD, вам не нужен мобильный сервер - только библиотека ADAL и соответствующая конфигурация для собственного приложения в Azure AD.

Во-первых, настроить Azure AD для Native Mobile App:

  1. Войдите на Лазурном Классический портал (https://manage.windowsazure.com)
  2. Выберите нужный каталог из списка всех элементов
  3. Нажмите на Вкладка «Приложения»
  4. Нажмите на кнопку «Добавить» в нижней части страницы
  5. Нажмите, чтобы добавить приложение, в котором работает моя организация
  6. Дайте ему имя, а затем выберите NATIVE Клиентское приложение в качестве типа
  7. Введите действительный URI для перенаправления URI (это может быть что угодно, но он должен быть действительным)
  8. Нажмите на клеща, чтобы создать приложение ,

На данный момент вы создали приложение. Перейдите на вкладку «КОНФИГУРАЦИЯ» и обратите внимание на идентификатор клиента и URL-адрес перенаправления.

Теперь вы можете использовать любые образцы, заменив идентификатор клиента и URI переадресации для библиотеки ADAL. Вот соответствующий код из одного из образцов:

- (void)acquireTokenInteractive:(id)sender 
{ 
    ADTestAppSettings* settings = [ADTestAppSettings settings]; 
    NSString* authority = [settings authority]; 
    NSString* resource = [settings resource]; 
    NSString* clientId = [settings clientId]; 
    NSURL* redirectUri = [settings redirectUri]; 
    ADUserIdentifier* identifier = [self identifier];  
    ADCredentialsType credType = [self credType]; 

    BOOL validateAuthority = _validateAuthority.selectedSegmentIndex == 0; 
    ADAuthenticationError* error = nil; 
    ADAuthenticationContext* context = [[ADAuthenticationContext alloc 
     initWithAuthority:authority 
     validateAuthority:validateAuthority 
     error:&error]; 

    if (!context)  
    { 
     NSString* resultText = [NSString stringWithFormat:@"Failed to create AuthenticationContext:\n%@", error]; 
     [_resultView setText:resultText]; 
     return; 
    } 

    [context setCredentialsType:credType]; 

    if ([self embeddedWebView]) 
    { 
     [context setWebView:_webView]; 
     //[_authView setFrame:self.view.frame]; 

     [UIView animateWithDuration:0.5 animations:^{ 
      [_acquireSettingsView setHidden:YES]; 
      [_authView setHidden:NO]; 
     }]; 
    } 

    __block BOOL fBlockHit = NO; 

    [context acquireTokenWithResource:resource 
          clientId:clientId 
          redirectUri:redirectUri 
         promptBehavior:[self promptBehavior] 
         userIdentifier:identifier 
       extraQueryParameters:nil 
         completionBlock:^(ADAuthenticationResult *result) 
    { 
     if (fBlockHit) 
     { 
      dispatch_async(dispatch_get_main_queue(), ^{ 
       UIAlertController* alert = [UIAlertController 
        alertControllerWithTitle:@"Error!" 
            message:@"Completion block was hit multiple times!" 
          preferredStyle:UIAlertControllerStyleAlert]; 

       [self presentViewController:alert animated:YES completion:nil]; 
      }); 
      return; 
     } 
     fBlockHit = YES; 

     dispatch_async(dispatch_get_main_queue(), ^{ 
      [self updateResultView:result]; 
      [_webView loadHTMLString:@"<html><head></head><body>done!</body></html>" baseURL:nil]; 
      [_authView setHidden:YES]; 
      [self.view setNeedsDisplay]; 
      [[NSNotificationCenter defaultCenter] postNotificationName:ADTestAppCacheChangeNotification object:self]; 
     }); 
    }]; 
} 
+0

Спасибо, Адриан. Все еще я в R & D of Azure и понимаю, что я только что сделал по твоим шагам здесь, мой вопрос в том, что мы не доказываем детали пользователя, которые/как пользователь он будет аутентифицировать. Не могли бы вы привести пример аутентификации пользователя из Azure AD –

+0

Ошибка, которую я получаю: status = AD_FAILED; error = Ошибка с кодом: AD_ERROR_UI_NO_MAIN_VIEW_CONTROLLER Домен: ADAuthenticationErrorDomain ProtocolCode: (null) Подробности: Приложение не имеет текущего ViewController. Внутренняя информация об ошибке: Ошибка Домен = ADAuthenticationErrorDomain Code = 401 "(null)" –

+0

Поскольку вы являетесь внутренним для Azure, обращайтесь непосредственно к команде Azure AD. Вы также можете связаться со мной внутренне, и я укажу вам в правильном направлении. –

Смежные вопросы