JWT 인증
HTTP 헤더에 제공된 JWT 토큰을 수락하도록 Grafana를 구성할 수 있습니다. 토큰은 다음 중 하나를 사용하여 확인됩니다.
- PEM으로 인코딩된 키 파일
- 로컬 파일의 JSON 웹 키 세트(JWKS)
- 구성된 JWKS 끝점에서 제공하는 JWKS
JWT 활성화
JWT 인증을 사용하려면:
- 기본 구성 파일 에서 JWT를 활성화 합니다 .
- 토큰이 포함된 헤더 이름을 지정하십시오.
[auth.jwt]
# By default, auth.jwt is disabled.
enabled = true
# HTTP header to look into to get a JWT token.
header_name = X-JWT-Assertion
이니
로그인 클레임 구성
사용자를 식별하려면 일부 클레임을 로그인 정보로 선택해야 합니다. Grafana 사용자의 사용자 이름 또는 이메일을 포함하는 클레임을 지정할 수 있습니다.
일반적으로 호출된 주제 클레임 "sub"은 로그인으로 사용되지만 일부 애플리케이션 특정 클레임으로 설정될 수도 있습니다.
# [auth.jwt]
# ...
# Specify a claim to use as a username to sign in.
username_claim = sub
# Specify a claim to use as an email to sign in.
email_claim = sub
# auto-create users if they are not already matched
# auto_sign_up = true
이니
auto_sign_up활성화된 경우 sub클레임이 "외부 인증 ID"로 사용됩니다. 클레임이 있는 name경우 사용자의 전체 이름으로 사용됩니다.
서명 확인
이를 위해 암호화 서명이 사용되도록 JSON 웹 토큰 무결성을 확인해야 합니다. 따라서 모든 토큰은 알려진 암호화 키로 서명해야 합니다.
키의 위치를 지정하는 방법에 대한 다양한 옵션이 있습니다.
https 엔드포인트에서 로드된 JSON 웹 키 세트를 사용하여 토큰 확인
JWKS 끝점에 대한 자세한 내용은 Auth0 문서 를 참조하세요 .
# [auth.jwt]
# ...
jwk_set_url = https://your-auth-provider.example.com/.well-known/jwks.json
# Cache TTL for data loaded from http endpoint.
cache_ttl = 60m
이니
JSON 파일에서 로드된 JSON 웹 키 세트를 사용하여 토큰 확인
JWKS 끝점에서와 동일한 형식으로 설정되지만 디스크에 있는 키입니다.
jwk_set_file = /path/to/jwks.json
이니
PEM 인코딩 파일에서 로드된 단일 키를 사용하여 토큰 확인
PKIX, PKCS #1, PKCS #8 또는 SEC 1 형식의 PEM 인코딩 키 파일입니다.
key_file = /path/to/key.pem
이니
클레임 확인
기본적으로 "exp"및 "nbf"클레임 "iat"만 검증됩니다.
다른 클레임이 실제로 예상한 것과 같은지 확인하고 싶을 수도 있습니다.
# This can be seen as a required "subset" of a JWT Claims Set.
expect_claims = {"iss": "https://your-token-issuer", "your-custom-claim": "foo"}