【问题标题】:Proxy Security Service for Web Service requiring Uname/Password in the Request请求中需要 Uname/Password 的 Web 服务的代理安全服务
【发布时间】:2020-01-19 17:59:13
【问题描述】:
我们有一个供应商提供的解决方案,该解决方案需要用户名和密码才能利用作为 Web 服务公开的 API。它们将包含在调用的实际 xml 中。我们显然不喜欢那样。
有没有人知道任何产品、系统等等,我们可以让调用系统使用基于令牌的安全性对其进行身份验证,然后注入用户名密码并将请求转发到产品可访问但外部不可访问的安全区域来电者。当然,通过返回响应。
例如:
【问题讨论】:
标签:
web-services
security
authentication
proxy
inject
【解决方案2】:
身份验证/代理 服务有一个名称 - 安全令牌服务 (STS)。 oAuth 令牌交换工作草案对 STS 及其用途做了很好的总结:
安全令牌服务 (STS) 是一种能够验证
提供给它的安全令牌并在
响应,使客户端能够获得适当的访问权限
异构环境中或跨环境的资源凭据
安全域。
Web 服务客户端已使用 WS-Trust [WS-Trust]
作为与 STS 交互以进行令牌交换的协议。尽管
WS-Trust 使用 XML 和 SOAP,现代 Web 开发的趋势已经
一直致力于 RESTful 模式和 JSON。 OAuth 2.0 授权
框架 [RFC6749] 和 OAuth 2.0 Bearer Tokens [RFC6750] 已经出现
作为授权第三方应用程序访问的流行标准
到 HTTP 和 RESTful 资源。
传统的 OAuth 2.0 交互
涉及资源所有者的某些表示的交换
访问令牌的授权,这已被证明是一个非常
在实践中有用的模式。但是,它的输入和输出是
有点过于受限,无法完全容纳安全令牌
交换框架。
大多数 STS(包括 oAuth 令牌交换草案指定的类型)不处理异构令牌,因为您的用例需要超出 oAuth 到 SAML 或反之亦然。您的用例的解决方案很可能涉及自定义编码的 STS。我们已经为使用各种产品/堆栈/平台/等的客户实施了 STS,可将 oAuth/SAML 转换为任何内容(例如,带有自定义凭证标头的 SOAP)。
我们经常使用 Salesforce 作为平台,它提供了许多有助于此用例的管道。公平地说,类似的管道可用于相当多的平台和堆栈——从三大平台(AWS/GCP/Azure)到具有适当库的 Java/Python/Ruby/Node/Go,再到 Keycloak 等身份和访问管理产品。