【问题标题】:How can I validate a SAML 2.0 Bearer Assertion to return an OAuth2 Bearer token for a web API?如何验证 SAML 2.0 Bearer Assertion 以返回 Web API 的 OAuth2 Bearer 令牌?
【发布时间】:2014-04-04 19:58:59
【问题描述】:

我正在使用的环境使用 Shibboleth 提供单点登录 (SSO) 功能,我们希望更新使用基本身份验证的应用程序,以便能够利用 Shibboleth 身份验证进行 API 调用.根据我的阅读,有specifications in process,但它们似乎没有得到广泛支持。目前我们在其他一些应用程序中使用Microsoft.Owin.Security.OAuth,并希望继续使用该方法。因此,有没有一种方法可以注册和调用/token URI,该 URI 可以与 SAML 2.0 Bearer Assertion 一起正常工作?

【问题讨论】:

    标签: asp.net-web-api oauth-2.0 saml-2.0 owin


    【解决方案1】:

    您可以自定义 Shibboleth IDP,使其生成并返回在您的环境中有效的 OAuth 2.0 Bearer Token。在单点登录期间,令牌将作为 SAML 属性提供给您的 SP。假设您将使用用于 IIS 的 Shibboleth SP 插件来保护您的应用程序,您可以配置 SP 以将带有令牌的 SAML 属性作为 HTTP 标头发送到您的应用程序,然后在您的 API 调用中将其用作令牌。

    Shibboleth 自定义将非常简单(自定义属性生成器的实现)。您需要与您的 Shibboleth 实例共享来自 Microsoft.Owin.Security.OAuth 服务器的加密材料(共享密钥/非对称密钥),以便它能够正确签署令牌。

    Microsoft.Owin.Security.OAuth 服务器和 Shibboleth 都应在您的控制之下,以使此方法安全适用。如果不是这种情况,仍然可以自定义 Shibboleth 以代表您的 asp.net 应用程序请求令牌(例如,使用客户端凭据授予),然后再次将其作为 SAML 属性提供。

    这种方法当然颠覆了您最初的想法,即向 Microsoft.Owin.Security.OAuth 添加对 SAML 令牌的支持。我对 C# 生态系统的了解有限,但似乎this project 已经包含将 SAML 2 Bearer 支持添加到 owin 库的扩展。请参阅 configuration extension 和 example of usage。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-10
      • 2013-11-25
      • 1970-01-01
      • 2014-07-06
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 2014-11-18
      相关资源
      最近更新 更多