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

时间:2016-03-24 21:39:33

标签: ios adal

我尝试使用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.

我猜我做错了什么,但我无法弄清楚它是什么。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

    NSLog(@"Was here!");

}];

希望这有助于某人。