Fiware keystone api使用地平线

时间:2016-04-20 08:01:55

标签: json api fiware keystone

使用keystone api创建用户(如Fiware Keystone API Create User中所示)。

我的步骤:

使用以下方式创建项目:

  

curl -s -H“X-Auth-Token:17007fe11124bd71eb60”-H“Content-Type:   application / json“-d'{”tenant“:{”description“:”Project1“,   “name”:“proyecto1”,“enabled”:true}}'   http://localhost:35357/v2.0/tenants -X POST |蟒蛇   -mjson.tool

创建角色:

  

curl -s -H“X-Auth-Token:17007fe11124bd71eb60”-H“Content-Type:   application / json“-d'{”role“:{”name“:”Project1Admin“,   “description”:“project1的角色管理员”}}'   http://localhost:35357/v3/roles | python -mjson.tool

创建用户:

  

curl -s -H“X-Auth-Token:17007fe11124bd71eb60”-H“Content-Type:   application / json“-d'{”user“:{”default_project_id“:   “d0f384973b9f4a57b975fcd9bef10c6e”,“description”:“admin1”,   “enabled”:true,“name”:“admin”,“password”:“admin”,   “email”:“admin@gmail.com”}}'http://localhost:35357/v2.0/users |   python -mjson.tool

最后一步:创建用户角色 - 租户关系:

  

curl -s -H“X-Auth-Token:17007fe11124bd71eb60”   http://localhost:35357/v2.0/tenants/d0f384973b9f4a57b975fcd9bef10c6e/users/admin1/roles/OS-KS/0c10f475076345368724a03ccd1c3403   -X PUT

如果我检查用户:

curl -s -H“X-Auth-Token:17007fe11124bd71eb60”http://localhost:5000/v3/users/admin1 | python -mjson.tool

响应:

{
    "user": {
        "default_project_id": "d0f384973b9f4a57b975fcd9bef10c6e",
        "description": "admin1",
        "domain_id": "default",
        "email": "admin1@gmail.com",
        "enabled": true,
        "id": "admin1",
        "links": {
            "self": "http://localhost:5000/v3/users/admin1"
        },
        "name": "admin1",
        "username": null
    }
}

我认为这很好,但我尝试连接地平线并出现“无效的用户或密码”错误。获取日志的结果如下:

keystone.log

2016-04-20 07:56:03.949 2150 WARNING keystone.common.wsgi [-] Could not find user: admin1@gmail.com
2016-04-20 07:56:03.967 2150 INFO eventlet.wsgi.server [-] 127.0.0.1 - - [20/Apr/2016 07:56:03] "HEAD /v3/OS-TWO-FACTOR/two_factor_auth?user_name=admin1%40gmail.com&domain_name=Default HTTP/1.1" 404 159 0.077033

horizo​​n.log:

[Wed Apr 20 07:59:41.934935 2016] [:error] [pid 5963:tid
140154061260544] Login failed for user "admin1@gmail.com".

任何人都知道为什么这个用户无法与地平线连接?

感谢

1 个答案:

答案 0 :(得分:1)

在KeyRock中,我们使用name字段存储用户电子邮件,并使用username字段存储其用户名。创建用户时,请求中提供的所有属性,但nameusernamedefault_project_iddomain_idenabled属性都已序列化,存储在名为extra的字段中。因此,您的email属性将存储在extra字段中。

注册后,在登录Horizo​​n并提供用户电子邮件时,Horizo​​n会向Keystone发送请求以在name字段中搜索该电子邮件。由于您输入admin1@gmail.com,但您提供的实际名称为admin1,因此登录Horizo​​n将失败。

使用admin1@gmail.com作为名称(而不是电子邮件)再次注册用户可以解决您的问题,但如果您不能,也可以在登录表单的电子邮件字段中输入admin1能够重新创建用户。

希望这能解决您的问题!