我需要为我们的 Web 应用程序和服务实现 STS-IP 服务器。服务器将需要为以下场景颁发 SAML 令牌:
- 业务合作伙伴提交他们的 SAML 令牌,该令牌将转换为带有我们应用程序所需声明的 SAML 令牌。此令牌用于访问我们的 Web 应用程序和服务。
- 我们面向公众的应用程序需要用户登录(通过表单身份验证),然后使用 SAML 令牌访问我们的 Web 应用程序和服务。
- 我们的客户端(没有 STS 信任)需要向我们的 STS-IP 服务器进行身份验证,获取 SAML 令牌,并使用该令牌来访问我们的 WCF 服务。
在所有 3 个场景中,我们都需要对我们的应用程序和服务使用的 SAML 令牌进行自定义声明。我们的想法是一旦我们识别出用户,我们就会在我们的后端系统中查找他们的授权并附加声明。
在这些场景中,您可以假设后端身份验证存储是自定义实现,身份验证存储在 Active Directory 中,授权存储在数据库中。
所以我的想法是,我们需要使用 Windows Identity Framework 之类的东西创建一个自定义 STS-IP 服务器。但我也一直在读到你不应该这样做,因为这可能需要一些时间。
我可以使用现成的 STS-IP 服务器吗?我所看到的一切都是一个系统到另一个系统之间的映射(SAML 到 SAML 或 AD 到 SAML)。
为什么构建生产就绪的 STS-IP 会“花费很长时间”?我很容易使用 WIF 构建了一个,但我想我不明白这样做的风险。