[英]Unable to authenticate users for an app in Fiware Lab KeyRock instance
[英]Obtain Auth-Token from Keyrock Fiware API
我在docker的筆記本電腦上本地運行Keyrock Fiware。 我知道這是http://localhost:8000/sign_up
因為我可以通過瀏覽器訪問http://localhost:8000
和http://localhost:8000/sign_up
,並且它們可以正確響應。
創建API調用時遇到麻煩。 我正在嘗試使用Postman,但在獲取auth令牌時遇到了麻煩,這需要進行一些api調用。
按照本指南,我嘗試創建對http:/localhost:8000/oauth2/tokens
的POST請求
這本身似乎不起作用,我需要添加其他信息,例如
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
但是我不知道其中哪一個是正確的。
簡短答案:
IdM Keyrock API需要對其大多數端點進行身份驗證,因此您實際上應該生成一個令牌。 如何生成令牌比較復雜,需要一些背景知識進行解釋。 如果您使用的是官方的IdM keyrock GE,我完全建議您在Fiware Academy中觀看有關此組件的本教程 。 它解釋了如何使用OAuth2客戶端和IdM密鑰庫生成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令牌。
最后,要生成梯形標記,可以使用梯形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的,請嘗試對ADMIN_USER和ADMIN_PWD使用“ idm”。
希望對您有所幫助。 祝您好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.