HTTP API JWT 권한 부여자 관련 문제 해결
다음은 HTTP API에서 JSON Web Token(JWT) 권한 부여자를 사용할 때 발생할 수 있는 오류 및 문제에 대한 문제 해결 조언을 제공합니다.
문제: 내 API가 401
{"message":"Unauthorized"}
를 반환합니다.
API의 응답에서 www-authenticate
헤더를 확인합니다.
다음 명령은 curl
을 사용하여 $request.header.Authorization
을 ID 소스로 사용하는 JWT 권한 부여자를 통해 API에 요청을 보냅니다.
$
curl -v -H "Authorization:token
" https://api-id
.execute-api.us-west-2.amazonaws.com/route
API의 응답에는 www-authenticate
헤더가 포함됩니다.
... < HTTP/1.1 401 Unauthorized < Date: Wed, 13 May 2020 04:07:30 GMT < Content-Length: 26 < Connection: keep-alive < www-authenticate: Bearer scope="" error="invalid_token" error_description="the token does not have a valid audience" < apigw-requestid: Mc7UVioPPHcEKPA= < * Connection #0 to host api-id.execute-api.us-west-2.amazonaws.com left intact {"message":"Unauthorized"}}
이 경우 www-authenticate
헤더는 유효한 대상에게 토큰이 발급되지 않았음을 나타냅니다. API Gateway에서 요청을 승인하려면 JWT의 aud
또는 client_id
클레임이 권한 부여자에 대해 구성된 대상 항목 중 하나와 일치해야 합니다. API Gateway는 aud
가 존재하지 않는 경우에만 client_id
의 유효성을 검사합니다. aud
와 client_id
가 모두 있는 경우 API Gateway는 aud
의 유효성을 검사합니다.
JWT를 디코딩하고 API에 필요한 발행자, 대상 및 범위와 일치하는지 확인할 수도 있습니다. 웹사이트 jwt.io
JWT 권한 부여자에 대한 자세한 내용은 API Gateway에서 JWT 권한 부여자를 사용하여 HTTP API에 대한 액세스 제어 단원을 참조하세요.