MCP 서버에 대한 이그레스 JWT 인증
MCP 서버 인증에 Teleport JWT를 사용하는 방법
Teleport는 대상 MCP server에 대한 각 요청과 함께 Teleport 권한(authority)으로 서명된 JWT 토큰을 Teleport-Jwt-Assertion 헤더에 담아 전송합니다. JWT 토큰을 사용하여 인증된 Teleport 사용자와 그 역할 및 트레잇에 대한 정보를 얻을 수 있습니다. 이를 통해 다음을 수행할 수 있습니다: Teleport의 identity/roles/traits를 웹 애플리케이션의 identity/roles/traits에 매핑합니다. Teleport identity를 신뢰하여 사용자를 애플리케이션에 자동으로 로그인시킵니다. JWT 소개 # JSON Web Token(JWT)은 정보를 JSON 객체 형태로 당사자 간에 안전하게 전송하는 방법을 정의하는 개방형 표준입니다. 자세한 설명은 https://jwt.io/introduction/ 를 참조하세요. Teleport JWT는 세 가지 섹션으로 구성됩니다: Header Payload Signature Header # 헤더 예시 { "alg" : "RS256" , "typ" : "JWT" } Payload # 페이로드 예시 { "aud" : [ "http://127.0.0.1:34679" ] , "iss" : "aws" , "nbf" : 1603835795 , "sub" : "alice" , // Teleport user name. "username" : "alice" // Teleport user roles. "roles" : [ "admin" ] , // Teleport user traits. "traits" : { "logins" : [ "root" , "ubuntu" , "ec2-user" ] } , // Teleport identity expiration. "exp" : 1603943800 , } JWT는 Teleport-Jwt-Assertion 헤더와 함께 전송됩니다. Teleport JWT Assertion 예시 eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiaHR0cDovLzEyNy4wLjAuMTozNDY3OSJdLCJleHAiOjE2MDM5NDM4MDAsImlzcyI6ImF3cyIsIm5iZiI6MTYwMzgzNTc5NSwicm9sZXMiOlsiYWRtaW4iXSwic3ViIjoiYmVuYXJlbnQiLCJ1c2VybmFtZSI6ImJlbmFyZW50In0.PZGUyFfhEWl22EDniWRLmKAjb3fL0D4cTmkxEfb-Q30hVMzVhka5WB8AUsPsLPVhTzsQ6Nkk1DnXHdz6oxrqDDfumuRrDnpJpjiXj_l0D3bExrchN61enzBHxSD13VkRIqP1V6l4i8yt8kXDIBWc-QejLTodA_GtczkDfnnpuAfaxIbD7jEwF27KI4kZu7uES9LMu2iCLdV9ZqarA -6 HeDhXPA37OJ3P6eVQzYpgaOBYro5brEiVpuJLr1yA0gncmR4FqmhCpCj-KmHi2vmjmJAuuHId6HZoEZJjC9IAsNlrSA4GH