从Keyrock Fiware API获取Auth-Token

时间:2017-09-07 14:27:02

标签: oauth fiware

我在Docker中的笔记本电脑上本地运行Keyrock Fiware。我知道这是有效的,因为我可以通过浏览器访问http://localhost:8000http://localhost:8000/sign_up并且他们回复正确。

我在创建API调用方面遇到了麻烦。我正在尝试使用Postman,但是我在获取auth-token方面遇到了麻烦,这需要进行一些api调用。

关注此guide我正在尝试向http:/localhost:8000/oauth2/tokens

创建POST请求

这本身似乎不起作用,我需要添加其他信息,如

grant_type=password&username=YOUR_USERNAME&password=YOUR_PAS‌​SWORD
&client_id=YOUR‌​_CLIENT_ID&client_se‌​cret=YOUR_CLIENT_SEC‌​RET` 

我不知道这个信息应该放在我的邮递员请求中。 我有字段AuthorizationHeadersBody,而在Headers我有字段keyvaluedescription但是,我不明白哪一个是正确的。

1 个答案:

答案 0 :(得分:4)

简答:

IdM Keyrock API需要对大多数端点进行身份验证,因此您应该实际生成令牌。如何生成令牌更复杂,需要一些背景来解释。 如果您使用的是官方IdM keyrock GE,我建议您在Fiware Academy中关注此组件tutorial。 它解释了如何使用OAuth2客户端和IdM keyrock生成OAuth2令牌。

答案很长:

GE IdM Keyrock由两个项目组成:Horizo​​n和Keystone。两者都是您可以在Github中找到的Openstack项目的分支。当您使用端口8000的服务时,您正在调用Horizo​​n服务,它是前端组件。另一方面,当您将服务用于端口5000时,您正在调用Keystone服务,后者是后端组件。顺便说一下,如果您正在寻找有关此API的更多信息,可以在此处找到它:

棘手的部分是,当keystone处理自己的内部令牌(keystone令牌)时,FIWARE使用OAuth2令牌与其他GE集成。因此,您将在keyrock API中找到OAuth2扩展。因此,根据您要使用的API,您需要哪种令牌:Keystone令牌或OAuth2令牌。

例如,如果您想使用以下服务检索现有用户,则需要一个Keytone令牌。

  

获取http://localhost:5000/v3/users

最后,要生成keystone令牌,您可以使用keystone API的以下服务:

POST http://[keyrock_host]:5000/v3/auth/tokens 
{ "auth": {
    "identity": {
      "methods": ["password"],
      "password": {
        "user": {
          "name": [ADMIN_USER],
          "domain": { "name": "default" },
          "password": [ADMIN_PWD]
        }
      }
    }
  }
}

如果您从Docker Hub映像安装了Keyrock,甚至从官方源代码存储库安装了,请尝试使用" idm"对于ADMIN_USER和ADMIN_PWD。

我希望我能提供帮助。祝你好运!