如何在OpenID Connect提供程序令牌端点中检测用户

时间:2018-09-16 13:42:00

标签: java token openid connect

谈论授权码授予类型。在OpenID Connect提供程序的授权端点中,我们向依赖方提供了一个授权代码,然后他们使用此代码向令牌端点发出反向通道请求(不涉及浏览器)。 所以问题是,如何在令牌端点上区分此用户?我猜因为此调用是反向通道请求,因此该调用不存在任何会话。 可以使用哪些方法来识别用户。密钥为authorization_code的HashMap存储在内存中是否可以成为理想的解决方案

1 个答案:

答案 0 :(得分:0)

将其存储在HashMap中是无法扩展的解决方案,因为内部内存不是跨服务器节点共享的。

您必须将其存储在某种形式的持久性存储中

  • SQL数据库
  • NoSQL数据库
  • 键值数据库

请注意,您不仅需要确定为其创建用户的用户,而且还需要确定客户端的身份,因为客户端不需要进行身份验证即可获取代码。还知道您将需要确定给定代码涵盖哪些范围,并检测代码的两次使用,并且在两次使用的情况下,吊销关联的访问令牌。

另一方面,您需要能够轻松地再次忘记代码。它们是短期使用,在ttl之后保留它们没有用。

对于存储您产生的访问令牌,刷新令牌和id令牌,您会有类似的要求,因此有必要构建也可以用于这些目的的东西。