簡體   English   中英

從Keyrock Fiware API獲取Auth-Token

[英]Obtain Auth-Token from Keyrock Fiware API

我在docker的筆記本電腦上本地運行Keyrock Fiware。 我知道這是http://localhost:8000/sign_up因為我可以通過瀏覽器訪問http://localhost:8000http://localhost:8000/sign_up ,並且它們可以正確響應。

創建API調用時遇到麻煩。 我正在嘗試使用Postman,但在獲取auth令牌時遇到了麻煩,這需要進行一些api調用。

按照本指南,我嘗試創建對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但是我不知道其中哪一個是正確的。

簡短答案:

IdM Keyrock API需要對其大多數端點進行身份驗證,因此您實際上應該生成一個令牌。 如何生成令牌比較復雜,需要一些背景知識進行解釋。 如果您使用的是官方的IdM keyrock GE,我完全建議您在Fiware Academy中觀看有關此組件的本教程 它解釋了如何使用OAuth2客戶端和IdM密鑰庫生成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令牌。

GET http:// localhost:5000 / v3 / users

最后,要生成梯形標記,可以使用梯形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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM