我正在尝试在Microsoft Office 365 Azure AD中进行身份验证。出于我的目的,我正在使用Microsoft ADAL library for Objective-C 1.0版。以下是示例代码:
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 :(得分:0)
对于ObjC的ADAL仅适用于不使用机密的公共客户端 - 无论如何,通过extraquery参数添加它无济于事。您是如何在Azure AD中注册应用程序的?我怀疑您可能已将其注册为Web应用程序(这是一个机密客户端,在请求令牌时需要客户端信用),而它需要注册为本机客户端。