在企业分布式系统中,web门户的用户可以登录到一个站点,然后重定向到联合提供程序。一旦用户登录到facebook帐户,用户就会与信任同一个联邦提供者进行身份验证的企业中的每个服务联合(单点登录)。
我的问题是:同一个系统的API用户如何从相同的奢侈(单点登录)中获益?据我所知,API调用应该是无状态的,因此每个请求都需要单独的身份验证。
如果每个分布式API在客户端调用时,都需要调用联合提供程序,进行身份验证,将声明传递给API,然后处理客户端请求,那么在我看来,似乎有点网络聊天。
为了澄清,API客户端的一个示例场景可能是:
就像我说的,对于每个API来说,就每个请求与联邦提供者交谈似乎有点闲聊。
发布于 2015-08-31 17:58:54
一般而言:
设置所有这些的具体细节将根据您使用的身份验证系统、哪种令牌和哪些API库而有所不同。虽然如果你正在做的事情超出了google/facebook的基本集成,但这可能会让你感到痛苦。
发布于 2015-07-02 14:18:26
不能使用OAuth2协议。已对用户进行身份验证一次后,系统向其发出访问令牌。此令牌将随每个请求一起发送。
Oauth2有几个流。它们主要是针对最终用户的,但是对于服务器到服务器的交互,您可以像Google现在使用的那样使用两条腿的OAuth。
发布于 2015-08-31 20:12:18
根据您实现应用程序的方式,您可以创建一个资源/ API来生成一个令牌,就像@Telastyn所说的(或者您可以使用一个授权服务器--一个不同的应用程序来生成和验证这些令牌),并将它作为一个标头字段传递(通常人们使用授权头),并且您的API检查它的有效性(在同一个应用程序中或在授权应用程序中)。
https://softwareengineering.stackexchange.com/questions/288404
复制相似问题