IdentityServer4密码授予

Dar*_*g8r 2 asp.net-core identityserver4 asp.net-core-middleware

我已经站起了Identityserver4实例,一个API项目和一个UI。

工作流程如下:

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

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

可以使用什么适当的中间件集?我应该只使用CookieAuthenticationMiddleware并附加令牌作为索赔吗?我需要从HttpContext.User声明访问声明。我需要使用IdentityMiddleware吗?

lea*_*ege 5

您可以使用密码授予类型来请求标识范围,并使用userinfo端点将其解析为声明(如本示例中所示):

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

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