代码之家  ›  专栏  ›  技术社区  ›  Fred

“范围”是标准索赔吗?

  •  0
  • Fred  · 技术社区  · 3 年前

    有什么标准吗 scope 在OpenID Connect、JWT或OAuth中声明?

    IdentityServer 4 documentation ,有一个“scope”,它是一个用空格分隔的字符串。

    {
      "client_id": "mobile_app",
      "sub": "123",
      "scope": "read write delete"
    }
    

    但从我的IdentityServer 4实例中,我在访问令牌中得到了一个“scope”声明,它是一个字符串数组。

    {
      // ...
      "client_id": "mobile_app",
      "sub": "123",
      "scope": [ "openid", "profile", "email", "offline_access" ],
      "amr": [ "pwd" ]
    }
    

    OpenID Connect Core 1.0 规范,我不认为“范围”列为索赔。 在 RFC 7519 JSON Web令牌(JWT)规范,我不认为“范围”被列为声明。

    0 回复  |  直到 3 年前
        1
  •  5
  •   Fred    3 年前

    这个 scope 索赔由标准化 Token Exchange RFC。根据规范,它应该是一个JSON字符串,带有空格分隔的作用域标记。

    “scope”声明的值是一个JSON字符串,其中包含与令牌关联的作用域的空格分隔列表。。。

        2
  •  2
  •   Tore Nestenius    3 年前

    大多数提供程序都支持AT+JWT令牌类型,并且在其中指定它应该包括一个范围声明:

    上面写着:

    如果授权请求包括范围参数,则 相应发布的JWT访问令牌必须包括范围声明 定义见[TokenExchange]第4.2节。

    范围声明中的所有单独范围字符串必须具有含义 用于aud声明中指示的资源。