Azure移动服务Active Directory登录未经授权

时间:2014-11-09 09:36:52

标签: ios .net azure azure-mobile-services azure-active-directory

我的设置是Azure移动服务的iOS到.NET后端

我已经按照http://azure.microsoft.com/en-us/documentation/articles/mobile-services-dotnet-backend-ios-adal-sso-authentication/这里的活动目录身份验证指南进行了操作,我试图在IIS上本地托管调试。

我已在web.config中设置了MS_MasterKeyMS_ApplicationKey https://social.msdn.microsoft.com/forums/windowsapps/en-US/23e7163b-dad5-46ae-bf9b-c71ab067e535/microsoftwindowsazuremobileservicesmobileserviceinvalidoperationexception-the-request-could-not?forum=wpdevelop

并且还在web.config中的appSettings中添加了MS_AadClientIDMS_AadTenants键。

我可以访问http://localhost/MobileService/help并输入密码的应用程序密钥并在那里访问帮助。

在iOS上,我正在验证with ADALiOS库,该库成功进行身份验证并返回资源的有效访问令牌。虽然在将其传递给移动服务时,我得到了401未经授权的响应,我假设是由于应用程序密钥以某种方式。结果我将其传递给移动服务客户端。

let payload = ["access_token": result.accessToken]

client.loginWithProvider("aad", token: payload) { user, error in

}

有关缺少的内容以及为何仍然从此登录电话返回401状态的任何想法或建议?

编辑:

请求标头是:

Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
"User-Agent" = "ZUMO/2.0 (lang=objective-c; os=--; os_version=--; arch=iOSSimulator; version=2.0.0.0)";
"X-ZUMO-APPLICATION" = <actual application key here>;
"X-ZUMO-INSTALLATION-ID" = "DB14CBCD-98EA-4014-AD6E-62E0CF02A9D0";
"X-ZUMO-VERSION" = "ZUMO/2.0 (lang=objective-c; os=--; os_version=--; arch=iOSSimulator; version=2.0.0.0)";

我得到的回应是:

<NSHTTPURLResponse: 0x7fa882f81240> { URL: http://localhost/MobileService/login/aad } { status code: 401, headers {
"Content-Length" = 0;
Date = "Sun, 09 Nov 2014 22:39:16 GMT";
Server = "Microsoft-IIS/8.0";
"Www-Authenticate" = "Basic realm=\"Service\"";
"X-Powered-By" = "ASP.NET";
} }

编辑:

从Fiddler到登录/ aad端点进行POST也会立即响应401响应,甚至在标题中有app键或主键,有或没有access_token正文

1 个答案:

答案 0 :(得分:0)

问题在于web.config中的配置。我发现这一点的唯一方法是重做所有内容然后区分变化

我的问题是键MS_AadAudience键值的尾随空格。