【问题标题】:wso2 Getting token for invalid credentials for password grantwso2 获取用于密码授予的无效凭据的令牌
【发布时间】:2017-05-16 17:21:03
【问题描述】:

我正在使用 WSO2 API Manager 和 WSO2 身份服务器的组合,并使用以下文档进行配置 https://docs.wso2.com/display/CLUSTER44x/Configuring+the+Pre-Packaged+Identity+Server+5.2.0+with+API+Manager+2.0.0

在这种情况下,WSO2 身份服务器充当密钥管理器,API 管理器管理范围。

我已经配置并且它的工作。 我尝试使用密码授权,即使我输入错误的用户名和密码,它也会给我一个不记名令牌。感觉好​​像它只检查我在 url 中传递的客户端 ID。

curl -X POST \
  https://mycustomwsourl.in:9443/oauth2/token \
  -H 'authorization: Basic TnVMb0tGRmJlZ3hqUThNeW5uYzlHWmE1bkpBYTpKSzRINmp5M3V4Zl8wNFZNX25lbDhncnJwMm9h' \
  -H 'content-type: application/x-www-form-urlencoded' \
  -H 'grant_type: password' \
  -H 'password: testuser' \ 
  -H 'scope: SCOPE_EDIT SCOPE_READ SCOPE_REMOVE' \
  -H 'username: testuser'

如果我以不同的方式传递客户端代码,则会引发错误。否则它总是返回不记名令牌。

可能是因为身份服务器没有充当密钥管理器吗?有什么配置吗?

【问题讨论】:

    标签: wso2 wso2esb wso2is wso2-am wso2carbon


    【解决方案1】:

    这很奇怪。它实际上应该发送一条错误消息,因为您将 grant_type 作为错误的标头发送。所有这些数据都应该像这样在 POST 正文中发送。

    curl -k -d "grant_type=password&username=<username>&password=<password>" -H "Authorization: Basic d1U2MkRqbHlEQm5xODdHbEJ3cGxmcXZtQWJBYTprc2RTZG9lZkREUDd3cGFFbGZxdm1qRHVl" -H "Content-Type: application/x-www-form-urlencoded" https://localhost:8243/token
    

    参考:https://docs.wso2.com/display/AM200/Password+Grant

    【讨论】:

    • 让我试试简单的卷曲。我刚刚从我们的应用程序中生成了 curl。代码可能有问题。感谢提示它应该是 POST 正文
    • 8243端口有什么意义?哪个服务监听这个端口?
    • :8243/token 是 apim 中的代理 API,位于身份服务器的 :9443/oauth2/token 前面。您应该始终使用前者。
    • 某种方式无法访问 8243。它是轴\s.xml 中的那个吗?我是否必须更改以下任何内容才能使其正常工作?我有一个自定义域名 8243true
    猜你喜欢
    • 1970-01-01
    • 2020-05-26
    • 2017-04-10
    • 2016-09-28
    • 2015-07-21
    • 2017-08-30
    • 2017-07-09
    • 2018-02-01
    • 2017-04-09
    相关资源
    最近更新 更多