使用 OIDC 和 WSO2 IS 向 JWT ACCESS TOKEN 添加自定义声明
Add custom claims to JWT ACCESS TOKEN using OIDC & WSO2 IS
我有兴趣向我的 WSO2 身份服务器颁发的 JWT 访问令牌(不是我的 ID 令牌)添加自定义声明。我正在关注 OpenID connect implicit flow with WSO2.
我试图通过转到我的 WSO2 IS 控制台并导航到声明 -> 添加 -> 添加本地声明来添加自定义声明。然后我将声明映射到连接的 OpenLDAP 实例中的属性。
上图只是一个示例,我使用的实际声明映射到充当辅助用户存储的 OpenLDAP 实例中的一个属性。
然后我尝试在服务提供商 -> 列表 -> 声明配置下的我的服务提供商中添加声明
但是,我在我的 WSO2 身份服务器授予的访问令牌中没有看到该自定义声明。
对我的 WSO2 身份服务器的调用如下所示:
https://localhost:9443/oauth2/authorize?client_id=MY_CLIENT_ID&redirect_uri=MY_REDIRECT_URI&scope=openid&response_type=token&response_mode=query&nonce=MY_NONCE
输入正确的凭据后,我没有在令牌中看到我的自定义声明。
示例令牌负载:
{
"sub": "SUB_REMOVED",
"aud": "AUD_REMOVED",
"nbf": 1544053330,
"azp": "AZP_REMOVED",
"scope": "openid",
"iss": "https://localhost:9443/oauth2/token",
"groups": [
"TEST LDAP 3/admin",
"Internal/everyone"
],
"exp": 1544056930,
"iat": 1544053330,
"jti": "JTI_REMOVED"
}
我是不是漏掉了一步?谢谢!
当您使用 OIDC 时,WSO2 IS 将发送以 http://wso2.org/oidc/claim
方言映射的声明。
所以你需要用上面的方言创建一个声明,映射到新创建的本地声明。
然后您需要将新创建的声明添加到您请求的范围的允许声明列表中。为此,转到 Manage -> OIDC Scopes -> List
并单击 openid 范围(或您正在使用的任何其他范围)的 Add Claims
操作。现在添加新创建的 openid 声明,单击添加,然后单击完成。
现在用新用户尝试登录流程。
我有兴趣向我的 WSO2 身份服务器颁发的 JWT 访问令牌(不是我的 ID 令牌)添加自定义声明。我正在关注 OpenID connect implicit flow with WSO2.
我试图通过转到我的 WSO2 IS 控制台并导航到声明 -> 添加 -> 添加本地声明来添加自定义声明。然后我将声明映射到连接的 OpenLDAP 实例中的属性。
上图只是一个示例,我使用的实际声明映射到充当辅助用户存储的 OpenLDAP 实例中的一个属性。
然后我尝试在服务提供商 -> 列表 -> 声明配置下的我的服务提供商中添加声明
但是,我在我的 WSO2 身份服务器授予的访问令牌中没有看到该自定义声明。
对我的 WSO2 身份服务器的调用如下所示:
https://localhost:9443/oauth2/authorize?client_id=MY_CLIENT_ID&redirect_uri=MY_REDIRECT_URI&scope=openid&response_type=token&response_mode=query&nonce=MY_NONCE
输入正确的凭据后,我没有在令牌中看到我的自定义声明。
示例令牌负载:
{
"sub": "SUB_REMOVED",
"aud": "AUD_REMOVED",
"nbf": 1544053330,
"azp": "AZP_REMOVED",
"scope": "openid",
"iss": "https://localhost:9443/oauth2/token",
"groups": [
"TEST LDAP 3/admin",
"Internal/everyone"
],
"exp": 1544056930,
"iat": 1544053330,
"jti": "JTI_REMOVED"
}
我是不是漏掉了一步?谢谢!
当您使用 OIDC 时,WSO2 IS 将发送以 http://wso2.org/oidc/claim
方言映射的声明。
所以你需要用上面的方言创建一个声明,映射到新创建的本地声明。
然后您需要将新创建的声明添加到您请求的范围的允许声明列表中。为此,转到 Manage -> OIDC Scopes -> List
并单击 openid 范围(或您正在使用的任何其他范围)的 Add Claims
操作。现在添加新创建的 openid 声明,单击添加,然后单击完成。
现在用新用户尝试登录流程。