【问题标题】:Is there any security concern if I sent the security token, issued from a trusted IdP, to javaScript?如果我将从受信任的 IdP 发出的安全令牌发送到 javaScript,是否存在任何安全问题?
【发布时间】:2014-12-09 10:28:50
【问题描述】:

如果我将由受信任的 IdP 颁发的身份令牌发送到 javaScript 代码以便在调用具有身份验证的 Web 方法时使用它,是否有任何问题?

无论令牌是否加密,这样做是否有任何安全问题!

在我的例子中,有一个 Web 应用程序要求 IdP 对用户进行身份验证。我正在使用带有 Ws2007FederationBinding 的 WCF Web 服务来发送安全令牌。当我从服务器调用服务时一切都很好,但现在我如何使用 JavaScript 从客户端使用它呢?

【问题讨论】:

    标签: security authentication claims-based-identity federated-identity


    【解决方案1】:

    我不熟悉 Ws2007FederationBinding。考虑到您需要从客户端进行调用,我认为将该令牌嵌入客户端没有问题。

    我相信当您需要使用外部 API 并且您有某种与您的服务相关联的“身份验证”令牌时也是如此。

    【讨论】:

      【解决方案2】:

      Ws2007FederationBinding 是一个 SOAP 绑定,在信封中带有 SAML 安全令牌。 非常很难从 JavaScript 调用使用此绑定的服务。

      此绑定要求客户端与 STS 对话以获取 SAML 令牌并证明它是该令牌(密钥持有者)对服务(依赖方)的请求者。这涉及在 JavaScript 中难以完成的加密操作。

      解决此问题的“最佳”方法是创建 JavaScript 层与之通信的 RESTful 代理服务,并让此 REST 服务与 SOAP 后端服务通信。在调用 SOAP 服务之前,您应该使用不记名令牌 (JWT) 保护 REST 服务并将其交换为 SAML 令牌。

      您可以使用 .NET 中的 JWT token handler 类在 JWT 和 SAML 之间进行转换。

      【讨论】:

      • 我已经在服务器应用程序中有令牌,我想从 javascript 中再次使用它,而不是让用户再次重新验证。
      • 就像我说的,从 JavaScript 调用安全的 SOAP 服务并不容易。您可能需要不同的令牌才能调用服务,具体取决于令牌所针对的依赖方。如果您不想进行令牌转换,您可以使用未经身份验证的 RESTful 代理服务,该服务将获取 POST 数据中的安全令牌并使用它来调用您的服务。
      猜你喜欢
      • 1970-01-01
      • 2017-01-16
      • 2018-08-01
      • 2016-07-17
      • 2021-11-27
      • 1970-01-01
      • 2012-09-18
      • 1970-01-01
      • 2020-11-23
      相关资源
      最近更新 更多