【问题标题】:IdentityServer4 Password GrantIdentityServer4 密码授予
【发布时间】:2017-02-26 17:06:03
【问题描述】:

我创建了一个 identityserver4 实例、一个 API 项目和一个 UI。

工作流程如下:

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

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

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

【问题讨论】:

    标签: asp.net-core identityserver4 asp.net-core-middleware


    【解决方案1】:

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

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

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

    【讨论】:

    • 您好,如果客户端是无法存储机密的 Javascript 客户端,我会使用隐式流吗?我面临着类似的情况,因为客户端是第一方 AngularJS 应用程序,因此不需要将用户重定向到单独的登录屏幕。任何想法将不胜感激!
    猜你喜欢
    • 2017-06-17
    • 2014-06-10
    • 2017-10-08
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    • 2021-07-24
    • 2017-01-10
    • 2018-05-06
    相关资源
    最近更新 更多