我们有一个使用 REST API 的 Web应用。 REST API基于回送,并使用其内置的基于令牌的身份验证。对于Web App,我们使用基于HTTPS的基于表单的身份验证,因此用户必须输入其用户名和密码,然后我们才能使用这些用户名和密码通过POST /users/login
端点从REST API获取访问令牌。
我们的一位客户要求我们通过 SAML 2.0 和 AD FS 支持单点登录(SSO)身份验证。
我们将Web App配置为服务提供商(AD FS中的依赖方),并设法为其提供SSO支持。变化的部分是Web App与REST API之间的身份验证。现在的想法是将Web App和REST API都配置为相同的依赖方,并将新的POST /users/saml-login
端点添加到REST API,以便Web App可以向该端点发送SAML响应并获得访问权限基于SAML响应中指定的声明的令牌。其他所有内容都应该像以前一样工作。这是我想象的流程:
POST /users/saml-login
)这里是一个问题:以这种方式实现基于SAML的SSO是否可以?您是否发现此方法有任何问题或安全方面的考虑?有其他选择吗?
我在网上阅读了很多文章,并在StackOverflow上阅读了有关如何一起使用SAML和REST API的问题:
他们中没有一个真的帮助我确认或拒绝上述想法。
答案 0 :(得分:1)
这听起来很合理。我想不出任何安全问题。 您只需在应用程序内部重新发布SAML响应以进行处理。然后,只要您对REST API中的SAML响应和断言执行各种安全检查,就不会有任何问题。