【发布时间】:2016-07-21 19:21:19
【问题描述】:
我们想使用 FIWARE IdM,Keystone 和 Horizon。特别是在注册期间,我们希望
- 创建用户
- 将该用户添加到组织中
- 授权用户使用应用程序
我们已经使用 docker hub (https://hub.docker.com/r/fiware/idm/) 上的最新 KeyRock docker 映像安装了 Keystone 和 Horizon。
由于 KeyRock 网络界面创建云组织、西班牙等地区的社区用户,我决定尝试使用 SCIM API 来创建和授权用户:
注意:SCIM API 文档 (http://docs.keyrock.apiary.io/#reference/scim-2.0) 暗示 SCIM 调用在 KeyRock 服务器端口上,但它们在 Keystone 服务器端口上可用。如果 SCIM 文档提到 http://[keystone server]/v3/OS-SCIM/v2/Users/ 而不是 http://keyrock/v3/OS-SCIM/v2/Users/ 会更清楚
假设我们有一个 application_id=app1 的应用程序(SCIM 使用者)。此应用程序是使用 Horizon 前端创建的,或者使用
POST /v3/OS-OAUTH2/consumers
打电话。我不知道创建应用程序的两种方式之间的区别,尽管我还没有尝试过后者。这是一次性操作,因此我们使用 Web 界面来创建应用程序和关联角色。
所以我们有一个应用程序的角色 = role1
我们使用 SCIM 创建一个用户
POST /v3/OS-SCIM/v2/Users/
产生 user_id=user1
当我尝试授权他使用我们的应用程序时
PUT /v3/OS-ROLES/users/user1/applications/app1/roles/role1
我收到以下错误:
{
"error": {
"message": "_check_allowed_to_get_and_assign() got an unexpected keyword argument 'userName'",
"code": 400,
"title": "Bad Request"
}
}
下一步是使用 KeyRock 获取资源所有者令牌
POST [KeyStone server]/oauth2/token
但由于上述错误,这没有实际意义。
使用 user1 登录 KeyRock 用户界面会出现错误: “你没有任何项目的授权。”我认为这是因为 user1 未获得组织的授权。 user1 对其他用户或 KeyRock 用户界面中的管理员不可见,因此我无法分配必要的授权。
有什么想法吗? user1 还需要拥有哪些角色以及如何分配它们才能满足 KeyRock?
【问题讨论】:
-
我罗宾,我们仍在努力为您提供解决方案。
-
我的问题已经一个月了。对解决方法有任何更新或见解吗?
-
现在已经两个月了,我们仍然无法使用 SCIM API 以编程方式创建用户。有人在做这个吗?我们应该放弃 SCIM API 吗?
-
我们希望这周能修复它。
标签: fiware