2016-12-15 75 views
0
  1. 用户访问应用程序客户端
  2. 的应用客户端重定向用户到授权服务器(通过用户代理/浏览器)
  3. 用户输入凭据(用户名/密码)
  4. 授权服务器确认证书和将AuthorizationCode(在授权代码授权的情况下)或Access Token(在隐式授权的情况下)发送到重定向URI(在我的情况下,指向我的应用程序的自定义Android模式)。 ...

(包括中省略令牌交换,或访问令牌的使用步骤,其他步骤)OAuth:访问令牌后如何获取经过身份验证的用户信息?

如何以及何时应用程序客户端获取有关提供他们的凭证,用户任何信息(如用户ID或名称)??

我为我的授权服务器使用OAuth API安全项目(https://github.com/OAuth-Apis/apis),以及由Swagger代码生成的资源服务器/ API。

一切都很好,令牌请求和响应,授权服务器正在保存访问密钥与有关认证的校长罚款的信息。还有一个端点用于检索有关principal:/ tokenInfo的此信息,但此端点用于Resource Server使用(需要Resource Server凭据)。

所以我的问题仅仅是关于应用程序客户端获取用户信息.... 我可以在我的api中创建一个端点,仅基于访问令牌和/ tokenInfo端点引用获取有关用户/主体的信息,并返回到应用程序客户端,但它的奇怪....我认为有一个标准...

有人可以帮助吗?

回答

2

如果资源服务器未公开任何返回用户信息的API,则客户端应用程序无法获取用户信息。如果存在这样的API,则客户端应用程序可以通过使用访问令牌访问API来获取用户信息。

如果授权服务器支持OpenID Connect,有两种标准的获取用户信息的方式。一种是请求授权服务器发布包含用户信息的ID token。另一种是访问UserInfo Endpoint。有关详细信息,请参阅OpenID Connect Core 1.0

相关问题