2015-09-16 4 views
0

Я пытаюсь выполнить аутентификацию в офисе Microsoft 365 azure AD. Для этой цели я использую Microsoft ADAL library for Objective-C версии 1.0. Вот пример кода:Office 356 AD Аутентификация с ADAL

ADAuthenticationError *error; 
ADAuthenticationContext *authContext = [ADAuthenticationContext authenticationContextWithAuthority:@"https://login.microsoftonline.com/...." error:&error]; 

[authContext acquireTokenWithResource:@"https://login.microsoftonline.com/..." 
        clientId: @"AAAAAA-AAAA-AAAAA-AAAA-AAAAA"; 
        redirectUri:[NSURL URLWithString:@"https://localhost:11111"]; 
         userId:nil 
     extraQueryParameters:@"client_secret=AAAAABBBBBCCCCC" 
       completionBlock:^(ADAuthenticationResult *result) { 
        if (AD_SUCCEEDED != result.status){ 
         NSLog(@"%@", result.error.errorDetails); 
        } else { 
         NSLog(@"%@", result.accessToken); 
        } 
}]; 

К сожалению, всегда получаю «Ошибка - AADSTS90014: Тело запроса должно содержать следующий параметр:„client_secret или client_assertion“.». Что я делаю неправильно?

ответ

0

ADAL для ObjC работает только для публичных клиентов, которые не используют секреты - и в любом случае добавление его через extraqueryparameters не помогло бы. Как вы зарегистрировали свое приложение в Azure AD? Я подозреваю, что вы, возможно, зарегистрировали его как веб-приложение (которое является конфиденциальным клиентом, требующим клиентских кредитов при запросе токенов), в то время как его необходимо зарегистрировать как родной клиент.

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