ADALiOS 似乎将我的登录重定向到 login.live.com

ADALiOS seems to be redirecting my login to login.live.com

我正在尝试使用 ADALiOS 框架 v1.2.4 获取具有特定资源和 clientId 的令牌。我正在使用托管在 'microsoftonline.com' 上的自定义权限。

我从 VC 中创建了一个身份验证上下文,因此:

ADAuthenticationError *error = nil;
ADAuthenticationContext context = [[ADAuthenticationContext alloc] initWithAuthority:@"https://login.microsoftonline.com/somethingcustom/oauth2/v2.0/authorize?p=some_signin_policy"
    validateAuthority:YES
    tokenCacheStore:nil
    error:&error];
context.parentController = self;

然后我继续这样获得令牌:

[context acquireTokenWithResource:@"someResource"
    clientId:@"someClientId"
    redirectUri:[NSURL URLWithString:@"someAppScheme://moreStuff"]
    completionBlock:^(ADAuthenticationResult *result) {

        NSLog(@"Was here!");

}];

我希望发生的是 UIWebView 会打开并将我重定向到我的自定义权限登录页面,我可以在其中输入我的凭据。确认一下,这就是我在任何旧浏览器中输入自定义权限 URL 时看到的内容。

但是,我看到的是代码将我重定向到 login.live.com,(A) 看起来不同,(B) 无法识别我的登录凭据。

当我打开详细日志记录时,我在日志中看到以下行:

VERBOSE: HTTP Protocol. Additional Information: HTTPProtocol::connection:willSendRequest:. Redirect response: https://login.microsoftonline.com/somethingcustom/oauth2/authorize?response_type=code&client_id=someClientID&resource=someResourceID&redirect_uri=something%3A%2F%2Fsomethingelse&state=bunchOfStuff&x-client-CPU=64&x-client-DM=iPhone&x-client-Ver=1.2.4&x-client-SKU=iOS&x-client-OS=9.2.1&client-request-id=70E51F25-FD3D-4F98-8EDF-04CD19320A98. New request:https://login.live.com/login.srf?wa=wsignin1.0&wtrealm=urn%3afederation%3aMicrosoftOnline&wctx=estsredirect%3d2%26estsrequest%3drQIIAWVQTWsTUQD0ZVfQXFo8iKUHPUQQ4W33vX2bbAqCxdhtpEnoJhF3b-9ru5u-l63Z3TTJj_BQL6U_wWNPpf9ByFG8CIIg_gIvgokHETzMMMwMc5jqbWRhizw1kIV2a9gWji0wgq5w65Aw2oBNwWLYWAVe3LQxJfXJverm44ffTp_9uui9-2J-3MLVi2sAlgB8B-C8cn_Yfnm0ZzvIUwI9P9Y0VRbP9LICPlc2entlkeA1ZZN0Ib_-55wbGxldO9aaeSbkpfEehAOUiYPgjM-Hi6P-cB6kK-jZNMKqPNToNHReTTluauE3S-arMuq7I4Zt3TmJ8uhNgrgTFEzvz8K-O2X_9l_86Wk-QjpqJarrd87Cvk26g_bscBCchIuw6LX2VWeOkq7fJr1WMIr81yoctT8YtVh4knCbQs9dPUYEr0MPSQdSwjyPcCElw1fGtpKzMi_0mL6lVjbWKZ9kERYX61NujFodIe46jEFkYxsSKuRqJKaQNmKXUSFiD6FPBlia4IdZvQM2Kw_MR7eegJ8muLm7lWdaFkk6Pt7d2fmrpcrlbw2&id=. ErrorCode: 0.

我猜我做错了什么,但我不知道是什么。有什么建议吗?

要使用 Azure AD B2C 构建 iOS 应用程序,我建议从本教程开始:https://azure.microsoft.com/en-us/documentation/articles/active-directory-b2c-devquickstarts-ios/。您使用的 ADAL 版本不支持 B2C。

为了自动重定向到自定义权限登录页面而不是常见的 Microsoft 登录页面,我在获取令牌时使用 extraQueryParameters 作为:

[context acquireTokenWithResource:@"someResource"
clientId:@"someClientId"
redirectUri:[NSURL URLWithString:@"someAppScheme://moreStuff"]
extraQueryParameters:@"domain_hint=AzureADDomain.co.uk"
    completionBlock:^(ADAuthenticationResult *result) {

    NSLog(@"Was here!");

}];

希望这对某人有所帮助。