我正在研究开发一个使用REST公开服务的应用程序.这些服务将通过浏览器和非浏览器客户端访问.我希望这个软件的安装会由不同的团队拥有和管理.我想让一个系统的用户访问另一个系统的用户.他们不会共享同一个身份存储.如果用户可以对其实例进行身份验证,然后使用令牌向其实例和远程实例发出请求,我希望如此.这似乎是JSON Web Tokens(JWT)的一个很好的用途.每个系统都需要配置为信任由证书签名的其他令牌.
我已经读过这可以使用带有JWT承载令牌的OAuth来完成,但这似乎比需要的开销更多.为什么要为访问令牌交换承载令牌而不是仅仅使用承载令牌?我怀疑OAuth是否适合,无论是因为它不能控制系统是否可以像访问Web上的许多示例一样访问用户的数据,而是用户是否可以访问存储在系统中的数据.
问题的下一部分是确定如何创建这些JWT令牌,看起来像WS-Trust STS这样的东西是合适的.我没有看到任何简单的,只是验证用户和返回令牌.可能有助于延长令牌的到期和令牌的验证是否有用?
在过去,我能够使用带有WS-Security和SAML断言的SOAP来启用此类功能.我想看看是否可以使用REST和JWT令牌完成相同的操作.网上有很多帖子建议不要推销你自己的安全框架,所以我有点犹豫要不要向前推进.我看到微软已经添加了处理程序来处理使用JWT令牌的服务保护,所以看起来他们看到了这种方法的一些价值.
有没有人能够以符合标准且简单的方式了解如何以REST服务完成此类身份联合?