在我的项目中,我使用身份服务器4,SPA(Angular)和受保护的API(PHP)。我决定使用参考令牌。我的客户端(SPA)使用隐式流(不使用客户端密钥是否正确?),并在登录后获取访问令牌(调用授权端点)。此后,SPA必须将令牌发送给API,以便API可以询问身份服务器4(自检端点)访问令牌是否正确,并且API可以访问用户的信息。
现在我想知道如何保护通信。由于访问令牌中没有信息,是否需要通过jwt将其发送到API或使用普通JSON发送就足够了?据我了解,API必须使用jwt承载调用自省端点。
此方法安全吗?
答案 0 :(得分:2)
没有这样的要求-使用JWT调用自省的API。如果API设置为可与JWT一起使用,它将仅使用IDS的公钥来验证令牌的签名。如果设置为使用参考令牌,它将调用自省以获取用户信息(这是JWT的有效负载)。 Reference tokens documentation。
您的API需要使用其ID和Secret进行保护,以便您可以调用自省端点。
调用它时,您将发送参考令牌(它仍然是访问令牌,但不是JWT),client_id
和client_secret
。请求的内容类型应为application/x-www-form-urlencoded
,并且应为POST。
自省端点的响应是用户信息。
不需要额外的安全性-客户端ID和Secret是安全性,并且调用是从API到IDS在服务器之间进行的(当然,假设您在https
之后)