所以我在使我的Keycloak-Connect示例正常工作時遇到了一些問題。Keycloak - 授權驗證失敗。原因:無效標記(錯誤的ISS)
基本上我有Keycloak明確路線上一個簡單的檢查我的VM
(10.10.10.54:8081)如下。
app.get('/api*', keycloak.protect(), (req, res) => res.status(200).send({
message: 'Hit API Backend!',
}));
我Keycloak服務器是一個單獨的虛擬機(在這個例子中http://keycloak.myexternaldomain.ca/auth/)
我一直在做測試了這一點的調用是。
RESULT=`curl --data "grant_type=password&client_secret=mysecret&client_id=account&username=myusername&password=mypassword" http://keycloak.myexternaldomain.ca/auth/realms/TEST/protocol/openid-connect/token`
這將返回適當的訪問令牌每次,
TOKEN=`echo $RESULT | sed 's/.*access_token":"//g' | sed 's/".*//g'`
爲了解析令牌到變量中。
curl http://10.10.10.54:8081/api -H "Authorization: bearer $TOKEN"
仍然不斷地返回訪問被拒絕,我與Keycloak-Quickstart Node Service一個類似的例子試過這個,看看是否該有一個更詳細的錯誤。我今天準備接收返回的是
Validate grant failed
Grant validation failed. Reason: invalid token (wrong ISS)
但如果我等了一點點它會再給我一個過期的標記錯誤,所以我覺得我在正確的軌道上。
所以很明顯,我從哪裏發出的令牌不匹配它所期望的地方有什麼問題?我可以撥打電話通過捲曲到
curl --data "grant_type=password&token=$TOKEN&client_secret=secret&client_id=account&username=myaccount&password=mypassword" http://keycloak.myexternaldomain.ca/auth/realms/TEST/protocol/openid-connect/token/introspect
我會誤解我應該如何使用Keycloak,或者這是一個設置問題,以尋求從keycloak服務器本身的用戶憑據?
在此先感謝
我在這裏創建了拉取請求:https://github.com/keycloak/keycloak-nodejs-auth-utils/pull/80 – cdupont