【问题标题】:Password Change using the UAA Rest API使用 UAA Rest API 更改密码
【发布时间】:2016-07-20 14:28:23
【问题描述】:

我正在开发一个将 UAA-API 与我的 java 控制器链接的 java 客户端。 我在实现密码更改功能时遇到了问题。即使使用 Postman,我也无法获得预期的结果。

以下是我提出请求的方式: 我的 API 端点是:

https://2bcddc1b-01be-4d79-a2c4-ee583984f538.predix-uaa.run.aws-usw02-pr.ice.predix.io/Users/8f47875b-a1c8-47d4-bdde-79eb178eaed8/password

以下是标题:

Content-Type: application/json
Authorization: Bearer <user-access-token-generated after login>
Pragma: no-cache

每次我提出请求时,它都会给出以下响应:

{
    "error": "access_denied",
    "error_description": "Invalid token does not contain resource id (password)"
}

这是 API:

https://github.com/cloudfoundry/uaa/blob/master/docs/UAA-APIs.rst#change-password-put-users-id-password

【问题讨论】:

  • 您的请求正文中有什么内容?您是否在用户访问令牌上尝试过uaac token decode?用户是否具有更改客户端密码的适当范围?
  • 是的。登录的客户端具有 scim.write 以及 scim.read 权限以及范围,因此我认为权限在这里不是问题。 P.S.:我创建 Java 控制器的唯一原因是避免使用 UAA 客户端。

标签: cloud-foundry cloudfoundry-uaa predix


【解决方案1】:

端点需要 password.write 范围。

访问令牌包含范围。为了使访问令牌包含 password.write 范围,客户端和用户都必须具有 password.write 范围

password.write 是默认用户范围 - 所有用户都有它

在您的情况下,接收令牌的客户端没有密码。写入,因此您访问令牌也不会拥有它。

【讨论】:

  • 谢谢。我意识到我的错误是已写入的 URL。它需要 UAA 用户 ID 而不是用户名。
猜你喜欢
  • 1970-01-01
  • 2018-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
  • 1970-01-01
  • 2017-01-22
相关资源
最近更新 更多