相关疑难解决方法(0)

Open Id Connect Doubts - Identity Server 4 // 如何将特定用户授予具体范围?

阅读 Open Id 文档后,我有一些疑问。任何帮助都感激不尽。

遵循任何oidc 流程,您都会获得一个 id_token 和一个 access_token。

a) 当您将 access_token 发送到受保护的 api 时,为什么或何时(示例)需要检索有关拥有它的用户的一些声明?也许受保护的 api 想要使用有关经过身份验证的用户的一些数据?

b) 为了获得声明,受保护的 api 需要与 UserEdnpoint 端点通信?它发送access_token?哪些声明包含在返回的 id_token 中?/ 如果它要求更多声明用户具有同意访问权限,会发生什么?

c) 身份服务器 4:您定义要保护的资源。它们可以是“身份资源”和“api 资源”。在定义 ApiResources 时,您可以在细粒度范围内定义。例如:

  Scopes =
        {
            new Scope()
            {
                Name = "weather.api.full_access",
                DisplayName = "Full access to WEATHER API",
            },
            new Scope
            {
                Name = "weather.api.read_only",
                DisplayName = "Read only access to WEATHER API"
            }
        }
Run Code Online (Sandbox Code Playgroud)

您还定义了客户端,以及他们有权访问的范围。您如何指定哪些用户可以访问特定资源?我不知道您将如何映射使用同一客户端的用户的特定权限。

步骤将是:

  1. 授予客户端对两个范围的访问权限:"weather.api.full_access","weather.api.read_only"
  2. 现在......我如何授予,例如“比利”拥有“weather.api.full_access”和“Jhon”拥有“weather.api.read_only”?他们使用的是同一个客户端。

非常感谢!!

openid oauth-2.0 openid-connect identityserver4

4
推荐指数
1
解决办法
2927
查看次数