2

我已经建立了一个 identityserver4 实例、一个 API 项目和一个 UI。

工作流程如下:

  1. 用户访问 UI。
  2. 用户向 UI 提供用户名和密码。
  3. UI 将凭据发送到 Web 应用程序的背面,该应用程序使用密码授权来使用 IdentityServer4 对用户进行身份验证。
  4. IdentityServer4 返回一个令牌。
  5. 令牌用于识别用户对 UI 的身份以及用户有权访问网站的某些部分。
  6. 当用户需要在站点内做某事时,令牌会通过不记名身份验证传递给 API。

密码授予不可协商,因为这是第一方应用程序,将用户重定向到主站点是没有意义的。

用于此的正确中间件集是什么?我应该只使用 CookieAuthenticationMiddleware 并将令牌作为声明附加吗?我需要从 HttpContext.User 声明中访问声明。我需要使用 IdentityMiddleware 吗?

4

1 回答 1

5

您可以使用密码授权类型请求身份范围,并使用 userinfo 端点将它们解析为声明 - 就像在这个示例中一样:

https://github.com/IdentityServer/IdentityServer4.Samples/tree/dev/Clients/src/ConsoleResourceOwnerFlowUserInfo

是的 - 您可以使用 cookie 中间件来保存这些声明和访问令牌以供以后使用。

于 2016-10-17T17:13:52.083 回答