UWP WebAuthenticationBroker和SSO

时间:2016-07-14 04:09:44

标签: c# authentication oauth-2.0 single-sign-on uwp

我尝试使用WebAuthenticationBroker执行OAuth代码授予身份验证。一切正常,直到身份验证和获取访问令牌。我还需要能够让多个应用程序执行单点登录。所以预期的行为是

  1. 用户启动应用A并尝试身份验证
  2. WAB导航到授权网址,最终用户输入凭据
  3. WAB返回授权代码作为结果,用于获取访问令牌
  4. 现在,如果没有退出应用程序A,假设用户启动并尝试在应用程序B中进行身份验证,我对SSO的理解使我相信,当从应用程序发出授权代码请求时,WAB不应提示最终用户提供凭据B.然而,WAB确实提示凭证,因此不允许SSO体验。

    其他几点:

    1. 我使用的自定义OAuth服务器符合WAB要求(所有SSL端点都带有可信证书,并允许注册ms-appx://格式的回调URI。
    2. 我正在使用WAB的AuthenticateAsync(WebAuthenticationOptions选项,Uri requestUri)重载
    3. 应用A和应用B都向同一提供商进行身份验证
    4. 注册了各个应用的回调URI(因为应用可以自行执行身份验证)
    5. 基于以下链接,我的理解是,只要满足WAB要求并且重定向URI符合ms-appx格式,SSO就应该跨应用A和应用B工作:

      https://msdn.microsoft.com/en-us/windows/uwp/security/web-authentication-broker

      https://msdn.microsoft.com/en-us/library/windows/apps/xaml/br212068.aspx

      以上链接摘录:

      "使用此方法时,会在来自相同或不同Windows应用商店应用的多个呼叫中保留会话状态或持久性Cookie。"

      我尝试在AuthenticateAsync的第一个参数中使用不同的WebAuthenticationOptions值(应用A中的WebAuthenticationOptions.None / UseHttpPost和应用B中的WebAuthenticationOptions.SilentMode以及其他一些组合),但我根本无法让SSO工作在应用A和应用B之间。

      问题是:

      1. 我是否了解WAB如何支持SSO准确,或者我只是误解了文档?
      2. 是否还有其他要求让WAB SSO正常工作?
      3. 提前致谢。

        PS:不发布任何代码示例,因为这涉及对WebAuthenticationBroker的简单调用。

        PPS:没有找到太多关于WAB& amp; SSO因此发布了一个新问题。

0 个答案:

没有答案