【问题标题】:OAuth 2.0 Client Credentials get user idOAuth 2.0 客户端凭据获取用户 ID
【发布时间】:2017-12-26 18:29:26
【问题描述】:
我正在使用 Identity Server 3 和以下示例,来自 here. 使用 OAuth 2.0 的客户端凭据。
我覆盖了 AuthorizeAttribute 但当我查看 ClaimsIdentity Name 和 Actor 时为空。这是设计使然吗?我负责填充它们?如果有怎么办?我看到 Claims 有 client_id,但为什么它没有反映在 Name 或 Actor 中?
问:我如何获得来电者的身份?
【问题讨论】:
标签:
c#
oauth-2.0
asp.net-web-api2
identityserver3
【解决方案1】:
我们在 OAuth 中有两个定义,User 和 Client
用户是一个人类参与者,基本上有用户名和密码。
客户端是用户使用的应用程序,具有client_Id和client_secret。
当您使用客户端凭据时,不涉及用户,仅发送 clientId 和 ClientSecret,因此 Actor 和 Name 属性均为空,因为这些属性绑定到用户。在这种情况下,您应该使用有用户参与的 Password、Code 或 Implicit Grant Type。