SASL은 연결 지향 프로토콜의 인증을 위한 프레임워크입니다. 현재는,포스트그레SQL하나의 SASL 인증 메커니즘인 SCRAM-SHA-256만 구현하지만 앞으로 더 많이 추가될 수 있습니다. 아래 단계에서는 SASL 인증이 일반적으로 수행되는 방법을 보여주고, 다음 하위 섹션에서는 SCRAM-SHA-256에 대한 자세한 내용을 제공합니다.
SASL 인증 메시지 흐름
SASL 인증 교환을 시작하기 위해 서버는 AuthenticationSASL 메시지를 보냅니다. 여기에는 서버가 허용할 수 있는 SASL 인증 메커니즘 목록이 서버의 기본 순서대로 포함되어 있습니다.
클라이언트는 목록에서 지원되는 메커니즘 중 하나를 선택하고 SASLInitialResponse 메시지를 서버에 보냅니다. 메시지에는 선택한 메커니즘의 이름과 선택적인 초기 클라이언트 응답(선택한 메커니즘에서 이를 사용하는 경우)이 포함됩니다.
하나 이상의 서버 도전과 클라이언트 응답 메시지가 뒤따를 것입니다. 각 서버 챌린지는 AuthenticationSASLContinue 메시지로 전송되고, 이어서 SASLResponse 메시지로 클라이언트의 응답이 전송됩니다. 메시지의 세부 사항은 메커니즘에 따라 다릅니다.
마지막으로 인증 교환이 성공적으로 완료되면 서버는 AuthenticationSASLFinal 메시지를 보낸 후 바로 AuthenticationOk 메시지를 보냅니다. AuthenticationSASLFinal에는 선택한 인증 메커니즘에 특정한 콘텐츠를 포함하는 추가 서버-클라이언트 데이터가 포함되어 있습니다. 인증 메커니즘이 완료 시 전송되는 추가 데이터를 사용하지 않는 경우 AuthenticationSASLFinal 메시지가 전송되지 않습니다.
오류 발생 시 서버는 어느 단계에서든 인증을 중단하고 ErrorMessage를 보낼 수 있습니다.
SCRAM-SHA-256(방금 호출됨스크램지금부터)은 현재 유일하게 구현된 SASL 메커니즘입니다. RFC 7677 및 RFC 5802에 자세히 설명되어 있습니다.
SCRAM-SHA-256이 윈 토토에서 사용될 때 서버는 클라이언트가 보내는 사용자 이름을 무시합니다.클라이언트 우선 메시지. 시작 메시지에서 이미 전송된 사용자 이름이 대신 사용됩니다.윈 토토여러 문자 인코딩을 지원하는 반면 SCRAM에서는 사용자 이름으로 utf-8을 사용하도록 지시하므로 윈 토토 사용자 이름을 utf-8로 표현하는 것이 불가능할 수 있습니다.
SCRAM 사양에 따르면 비밀번호도 utf-8에 있으며 다음과 같이 처리됩니다.SASLprep알고리즘.윈 토토11350_11948
채널 바인딩아직 구현되지 않았습니다.
예
서버가 AuthenticationSASL 메시지를 보냅니다. 여기에는 서버가 수락할 수 있는 SASL 인증 메커니즘 목록이 포함되어 있습니다.
클라이언트는 선택한 메커니즘을 나타내는 SASLInitialResponse 메시지를 보내 응답합니다.SCRAM-SHA-256. 초기 클라이언트 응답 필드의 메시지에는 SCRAM이 포함되어 있습니다.클라이언트 우선 메시지.
서버가 SCRAM과 함께 AuthenticationSASLContinue 메시지를 보냅니다.서버 우선 메시지콘텐츠로.
클라이언트가 SCRAM과 함께 SASLResponse 메시지를 보냅니다.클라이언트-최종-메시지콘텐츠로.
서버가 SCRAM과 함께 AuthenticationSASLFinal 메시지를 보냅니다서버-최종-메시지, 바로 뒤에 AuthenticationOk 메시지가 옵니다.