如何为机器对机器应用程序类型向声明auth0分配的JWT中添加声明?

时间:2019-01-17 08:31:33

标签: openid-connect auth0 oidc

我使用auth0作为OIDC提供程序进行单点登录。

到目前为止,我尝试使用两种应用程序类型登录,一方面是 native 应用程序类型,另一方面是 machine-to-machine 应用程序类型。 / p>

但是,当我登录时,我只会收到一个非常简单的id_token,其中包含以下负载:

{
  "https://example.com/roles": [
    "user"
  ],
  "iss": "https://my.idp.provider.com",
  "sub": "oauth2|someconnection|samlp|somecompany|someusername",
  "aud": "REMOVED",
  "iat": 1547652649,
  "exp": 1547688649
}

我想为此令牌添加一个group声明。如何配置Auth0租户将"group": "admin"添加为声明?我是否需要在身份验证客户端中启用特定的 scope 来接收groups声明?

我已经在auth0中安装并配置了 Authorization Extension ,但这对我的令牌中的声明没有任何影响。我知道授权扩展不支持机器对机器应用程序。因此,我添加了本机应用程序并尝试使用该应用程序登录,但这也没有返回任何其他声明。

1 个答案:

答案 0 :(得分:1)

配置了Authorization扩展后,您可以将自定义声明添加到“规则”中已发布的JWT令牌中。这里有一个示例规则可以完成任务:https://auth0.com/docs/extensions/authorization-extension/v2/rules#add-custom-claims-to-the-issued-token

您还可以使用以下挂钩自定义“客户端凭据”令牌:https://auth0.com/docs/api-auth/tutorials/client-credentials/customize-with-hooks

编辑:OIDC合格应用程序要求您定义名称空间,因为诸如角色和组之类的授权数据不是OIDC声明。