TsgcWebSocketProxyServer › 속성 › Authentication
프록시에 연결하는 수신 WebSocket 클라이언트에 대한 user/password 인증을 활성화하고 구성합니다.
property Authentication: TsgcWSAuthenticationServer_Options read FAuthentication write SetAuthentication;
Enabled=False
Authentication.Enabled가 True인 경우 프록시는 Proxy에 정의된 업스트림 서버에 대한 일치하는 링크를 열기 전에, 들어오는 모든 다운스트림 연결을 AuthUsers 목록(줄당 user=password 형식)에 대해 인증합니다. 세 가지 내장 스킴이 지원됩니다: Session(클라이언트가 먼저 HTTP GET을 수행하고 session id를 받은 다음 id를 매개변수로 전달하여 WebSocket을 엽니다), URL(사용자 이름과 비밀번호가 WebSocket HandShake의 쿼리 문자열로 전송됨) 및 Basic(HTTP Basic Access Authentication). OnAuthentication 이벤트를 통해 자체 자격 증명 검사를 연결할 수 있습니다. OnUnknownAuthentication은 Bearer/JWT와 같은 비표준 스킴을 처리합니다. 인증은 다운스트림 측에서만 수행됩니다. 프록시는 자격 증명을 업스트림 서버로 자동으로 전달하지 않습니다.
Negotiate(Kerberos / SPNEGO, Windows에서는 NTLM 폴백 포함)는 Authentication.Negotiate 하위 속성에서 구성하며 sgcWebSockets Enterprise Edition이 필요합니다. Negotiate.Enabled(Boolean, 기본값 False)는 이 기능을 켜며 Authentication.Enabled가 필요합니다. Negotiate.ServicePrincipal(String)은 HTTP/host.example.com@EXAMPLE.COM과 같은 선택적 SPN이며, 비어 있으면 keytab의 모든 키 또는 머신 계정이 허용됩니다. Negotiate.Keytab(String, Linux 전용)은 서비스 keytab의 경로이며, 비어 있으면 KRB5_KTNAME 또는 시스템 기본값이 사용됩니다. 결과는 OnNegotiateAuthentication 이벤트로 전달됩니다. Kerberos 및 Negotiate 인증을(를) 참조하십시오.
oProxy := TsgcWebSocketProxyServer.Create(nil);
oProxy.Authentication.Enabled := true;
oProxy.Authentication.Basic.Enabled := true;
oProxy.Authentication.AuthUsers.Add('user=secret');
oProxy.Proxy.Host := 'upstream.example.com';
oProxy.Proxy.Port := 8080;
oProxy.Active := true;