TsgcHTTP_JWT_Server

TsgcHTTP_JWT_Server 구성 요소.

소개

TsgcHTTP_JWT_Server 구성 요소를 사용하면 WebSocket 프로토콜을 사용할 때 WebSocket Handshake에서 또는 HTTP 프로토콜을 사용할 때 HTTP Header로 수신된 JWT 토큰을 디코딩하고 검증할 수 있습니다.

 

구성

구성 요소의 JWTOptions 속성에서 다음 속성을 구성할 수 있습니다:

 

서명이 공개 키(RS 및 ES 알고리즘)를 사용하여 검증되는 경우, 알고리즘의 PublicKey 속성에 값을 설정하십시오.

서명이 Secret(HS 알고리즘)을 사용하여 검증되는 경우 Algorithm의 Secret 속성에 값을 설정하십시오.

 

JWT 토큰을 검증하려면 TsgcHTTP_JWT_Server 인스턴스를 WebSocket/HTTP Server의 Authentication.JWT.JWT 속성에 첨부하기만 하면 됩니다.

 


    oServer := TsgcWebSocketHTTPServer.Create(nil);
    oServer.Port := 80;
    oJWT := TsgcHTTP_JWT_Server.Create(nil);
    oJWT.JWTOptions.Algorithms.RS.PublicKey.Text := 'public key here';
    oServer.Authorization.Enabled := True;
    oServer.Authorization.JWT.JWT := oJWT;
    oServer.Active := True;

 

클레임 검증

서명이 검증된 후, 서버는 Payload의 등록된 클레임을 검증합니다. exp, nbf, iat 클레임이 검사됩니다. 이전 버전은 서명만 검증했기 때문에 만료된 토큰도 수락되었습니다. Payload에 존재하지 않는 클레임은 발급자가 주장하지 않은 것이므로 검증되지 않습니다.

 

검사는 JWTOptions.Validations 속성에서 구성합니다:

 

Expiration: exp 클레임이 과거인 경우 토큰을 거부합니다. 기본적으로 활성화되어 있으며, 만료 검사를 비활성화하려면 Validations.Expiration := False로 설정하십시오.

NotBefore: nbf 클레임이 미래인 경우 토큰을 거부합니다. 기본적으로 활성화되어 있습니다.

Issued: iat 클레임이 미래인 경우 토큰을 거부합니다. 기본적으로 활성화되어 있습니다.

Leeway: exp, nbf, iat 클레임을 현재 시각과 비교할 때 허용되는 클럭 스큐의 초 단위 값입니다. 기본값은 60초이며, 여유 없이 클레임을 비교하려면 0으로 설정하십시오.

참조