WSO2 JWT 声称 returns 错误的用户
WSO2 JWT claims returns wrong user
环境
集群 API Manager 2.1.0(两名工人,一名经理)和 Identity Server 5.3.0(两名工人)
问题
登录网页时,我以应用程序创建者身份登录。这导致 JWT 声称是应用程序创建者而不是登录用户。
发行思路
我对这个问题的看法是,由于该应用程序是由一个用户创建的,因此它使用应用程序 client_id 作为授权。由于该应用程序链接到创建该应用程序的用户,因此它会以该用户身份登录其他人。因此,当我们取回 JWT 声明时,它包含创建应用程序的用户的信息,而不是登录用户的信息。
我应该查看哪些类型的内容来解决此问题?我相信 JWT 配置可以解决这个问题。我知道 api-manager.xml 或 identity.xml 可能有答案。
如何从访问令牌中获取正确的 JWT 声明?
JWT 样本
{
"sub": "12345678",
"http://wso2.org/claims/applicationtier": "Unlimited",
"http://wso2.org/claims/client_id": "bzuM29gewg5gxazegXiNfkwsgz",
"http://wso2.org/claims/keytype": "SANDBOX",
"http://wso2.org/claims/version": "1.0.1",
"iss": "wso2.org/products/am",
"http://wso2.org/claims/applicationname": "CellPhones",
"http://wso2.org/claims/enduser": "null",
"http://wso2.org/claims/enduserTenantId": "null",
"http://ourdomain.com/claims/client_rest_of_name": "Ben",
"http://ourdomain.com/claims/client_surname": "Kenobi",
"http://wso2.org/claims/subscriber": "DOMAIN/benk",
"http://wso2.org/claims/tier": "Bronze",
"http://ourdomain.com/claims/client_claim_source": "CLIENT_SUBSCRIBER",
"http://ourdomain.com/claims/client_roles": [
"Full-Time Employee",
"Employee",
"Technology Engineer"
],
"http://wso2.org/claims/applicationid": "8",
"http://wso2.org/claims/usertype": "APPLICATION_USER", <- Client app
"exp": 1493232200,
"email": "user@gmail.com",
"http://wso2.org/claims/apicontext": "/jwt/1.0.1"
}
这是自定义声明的问题。只需要更改代码。
环境
集群 API Manager 2.1.0(两名工人,一名经理)和 Identity Server 5.3.0(两名工人)
问题
登录网页时,我以应用程序创建者身份登录。这导致 JWT 声称是应用程序创建者而不是登录用户。
发行思路
我对这个问题的看法是,由于该应用程序是由一个用户创建的,因此它使用应用程序 client_id 作为授权。由于该应用程序链接到创建该应用程序的用户,因此它会以该用户身份登录其他人。因此,当我们取回 JWT 声明时,它包含创建应用程序的用户的信息,而不是登录用户的信息。
我应该查看哪些类型的内容来解决此问题?我相信 JWT 配置可以解决这个问题。我知道 api-manager.xml 或 identity.xml 可能有答案。
如何从访问令牌中获取正确的 JWT 声明?
JWT 样本
{
"sub": "12345678",
"http://wso2.org/claims/applicationtier": "Unlimited",
"http://wso2.org/claims/client_id": "bzuM29gewg5gxazegXiNfkwsgz",
"http://wso2.org/claims/keytype": "SANDBOX",
"http://wso2.org/claims/version": "1.0.1",
"iss": "wso2.org/products/am",
"http://wso2.org/claims/applicationname": "CellPhones",
"http://wso2.org/claims/enduser": "null",
"http://wso2.org/claims/enduserTenantId": "null",
"http://ourdomain.com/claims/client_rest_of_name": "Ben",
"http://ourdomain.com/claims/client_surname": "Kenobi",
"http://wso2.org/claims/subscriber": "DOMAIN/benk",
"http://wso2.org/claims/tier": "Bronze",
"http://ourdomain.com/claims/client_claim_source": "CLIENT_SUBSCRIBER",
"http://ourdomain.com/claims/client_roles": [
"Full-Time Employee",
"Employee",
"Technology Engineer"
],
"http://wso2.org/claims/applicationid": "8",
"http://wso2.org/claims/usertype": "APPLICATION_USER", <- Client app
"exp": 1493232200,
"email": "user@gmail.com",
"http://wso2.org/claims/apicontext": "/jwt/1.0.1"
}
这是自定义声明的问题。只需要更改代码。