2017-09-07 1 views
1

내 Keycloak-Connect 샘플을 얻는 데 문제가 있습니다. Keycloak - 허가 확인에 실패했습니다. 이유 : 잘못된 토큰 (잘못된 ISS)

는 기본적으로 나는 다음과 같이 내 VM

(10.10.10.54:8081)에 명시 경로에 Keycloak 간단한 검사를해야합니다.

app.get('/api*', keycloak.protect(), (req, res) => res.status(200).send({ 
    message: 'Hit API Backend!', 
})); 

내 Keycloak 서버

나는이 밖으로을 테스트하기 위해 만들어 왔습니다 통화가 (이 예 http://keycloak.myexternaldomain.ca/auth/에 대한) 별도의 VM에 있습니다.

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 서버 자체에서 사용자 자격 증명을 얻기 위해 전화를 걸 수 있습니까? 내 문제는 내 keycloak.json에 있었다 사전

답변

1

덕분에 ... 난에 대한 인증 된 하나의 대 다른 영역을했다.

이 문제가 생긴다면 keycloak-auth-utils을 수정하여 grant-manager에 더 자세한 오류 로깅을 제공하는 것이 좋습니다.

은 특히 나에게이 문제를 자신을 추적 도왔

else if (token.content.iss !== this.realmUrl) { 
     reject(new Error('invalid token (wrong ISS) Expecting: '+this.realmUrl+' Got: '+token.content.iss); 
} 

else if (token.content.iss !== this.realmUrl) { 
     reject(new Error('invalid token (wrong ISS)')); 
} 

을 변경.

+1

https://github.com/keycloak/keycloak-nodejs-auth-utils/pull/80 여기에서 끌어 오기 요청을 만들었습니다. – cdupont

관련 문제