繁体   English   中英

WSO2 JWT声称返回错误的用户

[英]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声明?

智威汤逊样品

{
  "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"
}

这是自定义声明的问题。 只是不得不更改代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM