-
用户访问Application Client
-
Application Client将用户重定向到Authorization Server(通过用户代理/浏览器)
-
用户输入您的凭据(用户名/密码)
-
授权服务器确认凭据并将AuthorizationCode(在授权代码授权的情况下)或访问令牌(在隐式授权的情况下)发送到重定向URI(在我的情况下,指向我的应用程序的自定义Android架构) . ...
(涉及令牌交换或访问令牌的其他步骤使用步骤省略)
How and when 应用程序客户端获取有关提供其凭据的用户的任何信息(如用户ID或名称)?
我正在为我的授权服务器使用OAuth API安全项目(https://github.com/OAuth-Apis/apis),以及由Swagger code-gen生成的资源服务器/ API .
令牌请求和响应以及授权服务器 is saving the Access Keys with info about the Authenticated Principals fine 都可以 . 还有一个 endpoints 用于检索有关principal:/ tokenInfo的此信息,但此 endpoints 用于资源服务器使用(需要资源服务器凭据) .
所以我的问题只是关于Application Client获取用户信息....我可以在我的api中创建一个 endpoints ,仅根据访问令牌和/ tokenInfo endpoints 引用获取有关用户/主体的信息,并返回到Application Client ,但它很奇怪....我认为有一个标准......
有人能帮我吗?
1 回答
如果资源服务器未公开任何返回用户信息的API,则客户端应用程序无法获取用户信息 . 如果存在这样的API,则客户端应用程序可以通过使用访问令牌访问API来获取用户信息 .
如果授权服务器支持 OpenID Connect ,则有两种标准方法可以获取用户信息 . 一种是请求授权服务器发出包含用户信息的 ID token . 另一种是访问 UserInfo Endpoint . 有关详细信息,请参阅 OpenID Connect Core 1.0 .