OAuth2 Delphi WebSockets

· 기능

OAuth2는 타사 애플리케이션이 HTTP 프로토콜을 사용해 제한된 리소스에 접근할 수 있도록 해 줘요. RFC 6749는 OAuth2 사양을 정의해요. 4가지 역할이 있어요:


OAuth2 흐름

(A) 클라이언트가 리소스 소유자에게 권한 부여를 요청해요. 권한 부여 요청은 리소스 소유자에게 직접 보내거나(그림 참조), 권한 부여 서버를 중개자로 통해 간접적으로 보내는 것이 더 바람직해요.

(B) 클라이언트가 권한 부여 그랜트를 받는데, 이는 이 사양에서 정의한 4가지 그랜트 유형 중 하나 또는 확장 그랜트 유형을 사용하여 표현된 리소스 소유자의 권한 부여를 나타내는 자격 증명이에요. 권한 부여 그랜트 유형은 클라이언트가 권한 부여를 요청하는 방법과 권한 부여 서버가 지원하는 유형에 따라 결정돼요.

(C) 클라이언트가 권한 부여 서버에 인증하고 권한 부여 그랜트를 제시하여 액세스 토큰을 요청해요.

(D) 권한 부여 서버가 클라이언트를 인증하고 권한 부여 그랜트를 검증한 후, 유효하면 액세스 토큰을 발급해요.

(E) 클라이언트가 리소스 서버에 보호된 리소스를 요청하고, 액세스 토큰을 제시하여 인증해요.

(F) 리소스 서버가 액세스 토큰을 검증하고, 유효하면 요청을 처리해요.

OAuth2 WebSockets

sgcWebSockets는 WebSocket 클라이언트 컴포넌트에서 Bearer 토큰을 지원해요. TsgcWebSocketClient에서 인증과 Token 속성을 활성화하고, 클라이언트가 서버에 연결할 때 전송할 토큰을 설정하기만 하면 돼요.

Client := TsgcWebSocketClient.Create(nil);
Client.Authentication.Enabled := True;
Client.Authentication.Token.Enabled := True;
Client.Authentication.Token.AuthName := 'Bearer';
Client.Authentication.Token.AuthToken := '<your token here>'; 

sgcWebSockets 4.3.4 다음 버전에서는 OAuth2 자격 증명을 자동으로 가져올 수 있는 새로운 OAuth2 컴포넌트가 출시될 예정이에요.