【问题标题】:Ionic/Cordova authentication with ACS使用 ACS 的 Ionic/Cordova 身份验证
【发布时间】:2014-12-05 19:27:38
【问题描述】:

背景: 我们设置了一个使用 Azure ACS 和 ADFS 进行身份验证的 WebAPI。

通过浏览器访问任何 WebAPI 资源将通过 ACS 将未经身份验证的用户重定向到 ADFS 登录页面。成功登录后,用户将被重定向以返回 ACS 中设置的 Url 以及安全令牌。这工作得很好。

问题: 我们正在使用 Ionic 框架 (http://ionicframework.com/) 开发一个移动应用程序。我们希望利用与 WebAPI 相同的 ACS 和 ADFS 进行身份验证。在这个过程中我们面临以下问题:

问题 1: 通过移动应用程序(Ionic、Cordova、AngularJS)访问任何 WebAPI 资源会将用户重定向到 ACS,我们得到以下错误。

XMLHttpRequest cannot load https://{domainname}.accesscontrol.windows.net/v2/wsfederation?wa=ws…52fitem&wct=2014-10-10T14%3a24%3a34Z&whr=https%3a%2f%2f{domainname}.com. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. 

因此,我们无法使用移动应用通过 ACS 对任何用户进行身份验证。

问题 2: 在 ACS 中将返回 URL 设置为空会引发以下错误。

ACS90050: No reply address is configured with the relying party principal. 

目前采取的步骤: -> 我们在 WebAPI 上启用了 CORS。

【问题讨论】:

    标签: authentication cors asp.net-web-api ionic-framework acs


    【解决方案1】:

    我们向 Microsoft 提交了请求,以查看是否可以在 ACS 上启用 CORS。我们得到以下回复。

    ACS 不提供 CORS 解决方案,我们曾研究过可能性。不幸的是,答案仍然是:“没有 ACS 不提供 CORS 解决方案”。也就是说,ACS 不允许我们访问标准跨域解决方案的根目录。此外,提供令牌被认为是 HTTPOnly,因为使用 Javascript 操作令牌本质上是危险的。

    如果您希望走这条路,有一个示例可以提供指导,尽管出于安全方面的考虑,不建议这样做。下载在以下位置找到的示例:

    Windows Azure AD 访问控制 (ACS) 代码示例: https://code.msdn.microsoft.com/Windows-Azure-AD-Access-0dcde385

    C#\Webservice\ACS2WindowsPhoneSample 下的示例可能会提供一些指导,但我们无法协助修改示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-05
      • 2018-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-12
      • 1970-01-01
      • 2014-06-06
      相关资源
      最近更新 更多