我在Docker中的笔记本电脑上本地运行Keyrock Fiware。我知道这是有效的,因为我可以通过浏览器访问http://localhost:8000
和http://localhost:8000/sign_up
并且他们回复正确。
我在创建API调用方面遇到了麻烦。我正在尝试使用Postman,但是我在获取auth-token方面遇到了麻烦,这需要进行一些api调用。
关注此guide我正在尝试向http:/localhost:8000/oauth2/tokens
这本身似乎不起作用,我需要添加其他信息,如
grant_type=password&username=YOUR_USERNAME&password=YOUR_PASSWORD
&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET`
我不知道这个信息应该放在我的邮递员请求中。
我有字段Authorization
,Headers
,Body
,而在Headers
我有字段key
,value
和description
但是,我不明白哪一个是正确的。
答案 0 :(得分:4)
简答:
IdM Keyrock API需要对大多数端点进行身份验证,因此您应该实际生成令牌。如何生成令牌更复杂,需要一些背景来解释。 如果您使用的是官方IdM keyrock GE,我建议您在Fiware Academy中关注此组件tutorial。 它解释了如何使用OAuth2客户端和IdM keyrock生成OAuth2令牌。
答案很长:
GE IdM Keyrock由两个项目组成:Horizon和Keystone。两者都是您可以在Github中找到的Openstack项目的分支。当您使用端口8000的服务时,您正在调用Horizon服务,它是前端组件。另一方面,当您将服务用于端口5000时,您正在调用Keystone服务,后者是后端组件。顺便说一下,如果您正在寻找有关此API的更多信息,可以在此处找到它:
棘手的部分是,当keystone处理自己的内部令牌(keystone令牌)时,FIWARE使用OAuth2令牌与其他GE集成。因此,您将在keyrock API中找到OAuth2扩展。因此,根据您要使用的API,您需要哪种令牌:Keystone令牌或OAuth2令牌。
例如,如果您想使用以下服务检索现有用户,则需要一个Keytone令牌。
最后,要生成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。 p>
我希望我能提供帮助。祝你好运!