我正在尝试了解OAuth 2.0和OpenID Connect,我有一个重要问题:OpenID Connect端点如何相互通信?
示例:如果是授权代码流,如果授权端点向客户端提供access_token,则此签名将向UserInfo端点发送此令牌以获取用户信息。 那么这里的问题是,UserInfo Endpoint如何验证客户端发出的access_token是否正确?这两个端点之间是否存在通信?
感谢您的回答。
答案 0 :(得分:1)
UserInfo Endpoint必须能够解释从Authorization Endpoint或Token Endpoint发出的访问令牌。
在一个简单的实现中,所有端点都在一台服务器上实现。在这种情况下,只有通过引用存储由授权端点或令牌端点发出的访问令牌的相同数据库表,UserInfo端点才能轻松获取有关访问令牌的信息。
另一方面,如果在授权服务器上实现授权端点和令牌端点,并且在资源服务器上实现UserInfo端点,则资源服务器必须询问授权服务器以获取有关访问令牌的信息。 RFC 7662(OAuth 2.0 Token Introspection)是定义如何从授权服务器获取有关访问令牌的信息的标准。
RFC 7662是令牌自省的标准,但授权/资源服务器的实现者并不一定有强烈的动力来支持该规范。如果您对原因感兴趣,请参阅“4. Introspect Access Token”。 BTW,在授权代码流程中,访问令牌不是从授权端点发出,而是从令牌端点发出。从流中的授权端点发出的是授权代码(不是访问令牌)。