在我的项目中,我使用身份服务器4,SPA(Angular)和受保护的API(PHP) . 我决定使用引用令牌 . 我的客户端(SPA)使用隐式流程(不使用客户端密钥是正确的吗?)并在登录后获取访问令牌(调用授权 endpoints ) . 之后,SPA必须将令牌发送到API,以便API可以询问身份服务器4(内省 endpoints ),如果访问令牌是正确的并且API可以访问用户的信息 .
现在我想知道,如何确保沟通 . 因为访问令牌中没有信息,是否有必要将他与jwt一起发送给API,还是通过正常的JSON发送就足够了?据我所知,API必须使用jwt bearer调用内省 endpoints .
这种方法是安全的还是我应该做什么?
1 回答
没有这样的要求 - 使用JWT调用内省的API . 如果API设置为与JWT一起使用,它将只使用来自IDS的公钥验证令牌的签名 . 如果设置为使用引用令牌 - 它将调用内省,以获取用户信息(这是JWT的有效负载) . Reference tokens documentation .
您的API需要使用其ID和Secret进行保护,以便您可以调用内省 endpoints .
在调用它时,您发送引用令牌(它仍然是一个访问令牌,但它不是JWT),
client_id
和client_secret
. 请求的内容类型应该是application/x-www-form-urlencoded
,它应该是POST .内省 endpoints 的响应是用户信息 .
不需要额外的安全性 - 客户端ID和密钥是安全性,并且从API到IDS的服务器到服务器的调用(假设您当然落后于
https
)