개발 버전 :18 / Devel
이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

50.3. Oauth Validator 배트맨 토토#

Oauth Validator 모듈은 배트맨 토토 세트를 정의하여 기능을 구현합니다. 서버는 사용자로부터 인증 요청을 처리하는 데 필요한대로 전화를합니다.

50.3.1. 시작 배트맨 토토#

thestartup_cb배트맨 토토은 모듈을로드 후 바로 실행됩니다. 이 배트맨 토토을 사용하여 로컬 상태를 설정하고 필요한 경우 추가 초기화를 수행 할 수 있습니다. Validator 모듈에 상태가있는 경우 사용할 수 있습니다State- private_data저장하려면.

typedef void ( *explatorStartUpcb) (validatorModulestate *state);

50.3.2. 배트맨 토토 검증#

thevalidate_cb콜백은 OAUTH를 사용하여 인증을 시도 할 때 OAUTH 교환 중에 실행됩니다. 이전 통화에 설정된 모든 상태는에서 사용할 수 있습니다.state- private_data.

typedef bool ( *explatorvalidatecb) (const validatormodulestate *state,
                                     const char *토큰, const char *역할,
                                     validatormoduleresult *결과);

토큰검증 할 소지자 토큰이 포함됩니다.PostgreSQL토큰이 구문 적으로 잘 형성되었지만 다른 검증은 수행되지 않았는지 확인했습니다.역할는 사용자가 로그인하도록 요청한 역할을 포함합니다. 콜백은에서 출력 매개 변수를 설정해야합니다.결과struct는 다음과 같이 정의됩니다.

typedef struct validatormoduleresult

    bool 승인;
    char *authn_id;
 validatorModulerESult;

모듈이 설정된 경우에만 연결이 진행됩니다결과- 승인totrue. 사용자를 인증하려면 인증 된 사용자 이름 (토큰을 사용하여 결정된대로)은 palloc'd로 반환되어야합니다결과- authn_id필드. 또는결과- authn_id토큰이 유효하지만 관련 사용자 ID를 결정할 수없는 경우 NULL로 설정 될 수 있습니다.

유효성 검사기가 반환 될 수 있습니다거짓내부 오류를 알리려면 결과 매개 변수가 무시되고 연결이 실패합니다. 그렇지 않으면 유효성 검사기가 반환해야합니다true토큰을 처리하고 승인 결정을 내렸다는 것을 나타냅니다.

이후의 행동validate_cb반환은 특정 HBA 설정에 따라 다릅니다. 일반적으로결과- authn_id사용자 이름은 사용자가 로그인하는 역할과 정확히 일치해야합니다. (이 동작은 USERMP로 수정 될 수 있습니다.) 그러나 HBA 규칙에 대해 인증 할 때delegate_ident_mapping켜져 켜짐postgresql값에 대한 점검을 수행하지 않습니다결과- authn_id전혀; 이 경우 유효성 검사기에 달려있어서 토큰이 사용자가 표시된 내용에 따라 로그인 할 수있는 충분한 권한을 전달하는 것은역할.

50.3.3. 종료 배트맨 토토#

theshutdown_cb연결과 관련된 백엔드 프로세스가 종료 될 때 콜백이 실행됩니다. Validator 모듈에 할당 된 상태가 있으면이 콜백은 리소스 누출을 피하기 위해 무료로 사용해야합니다.

typedef void ( *validatorshutdowncb) (validatormodulestate *state);