GSSAPI은 RFC 2743에 정의된 보안 토토을 위한 업계 표준 프로토콜입니다.포스트그레SQL지원GSSAPI와케르베로스RFC 1964에 따른 토토.GSSAPI이를 지원하는 시스템에 자동 인증(Single Sign-On)을 제공합니다. 인증 자체는 안전하지만 데이터베이스 연결을 통해 전송된 데이터는 다음과 같은 경우를 제외하고는 암호화되지 않은 상태로 전송됩니다.SSL사용됩니다.
GSSAPI 지원은 다음 경우에 활성화되어야 합니다.포스트그레SQL이 건설되었습니다; 참조16장더 많은 정보를 원하시면.
언제GSSAPI사용케르베로스, 다음 형식의 표준 주체를 사용합니다.. PostgreSQL 서버는 서버에서 사용하는 키탭에 포함된 모든 주체를 허용하지만 다음을 사용하여 클라이언트에서 연결할 때 올바른 주체 세부 정보를 지정하도록 주의해야 합니다.서비스 이름/호스트 이름@영역krbsrvname연결 매개변수. (또한 참조섹션 34.1.2.) 설치 기본값은 기본값에서 변경될 수 있습니다.포스트그레빌드 시 다음을 사용하여./configure --with-krb-srvnam=무엇이든지. 대부분의 환경에서는 이 매개변수를 변경할 필요가 없습니다. 일부 Kerberos 구현에는 서비스 이름이 대문자여야 하는 Microsoft Active Directory와 같은 다른 서비스 이름이 필요할 수 있습니다(포스트그레스).
호스트 이름은 서버 시스템의 정규화된 호스트 이름입니다. 서비스 주체의 영역은 서버 시스템의 기본 영역입니다.
클라이언트 주체는 다른 주체에 매핑될 수 있습니다.PostgreSQL다음을 포함한 데이터베이스 사용자 이름pg_ident.conf. 예를 들어,pgusername@realm다음에 매핑될 수 있음pgususername. 또는 전체를 사용할 수 있습니다.사용자 이름@렐름주체를 역할 이름으로PostgreSQL매핑 없이.
PostgreSQL또한 주체에서 영역을 제거하는 매개변수를 지원합니다. 이 방법은 이전 버전과의 호환성을 위해 지원되며 동일한 사용자 이름을 사용하지만 다른 영역에서 온 여러 사용자를 구별하는 것이 불가능하므로 사용하지 않는 것이 좋습니다. 이를 활성화하려면 다음을 설정하십시오.include_realmto 0. 간단한 단일 영역 설치의 경우 다음 설정과 결합하여 수행합니다.krb_realm매개변수(주 구성원의 영역이 다음에 있는 영역과 정확히 일치하는지 확인합니다.krb_realm매개변수)는 여전히 안전합니다. 그러나 이는 명시적인 매핑을 지정하는 것에 비해 능력이 떨어지는 접근 방식입니다.pg_ident.conf.
다음을 통해 서버 키탭 파일을 읽을 수 있는지 확인하십시오(읽기만 가능하고 쓰기는 불가능함).PostgreSQL서버 계정. (또한 참조PostgreSQL : 문서 : 11 : 18.1. PostgreSQL 토토 사이트 추천 계정.) 키 파일의 위치는 다음으로 지정됩니다.krb_server_keyfile구성 매개변수. 기본값은/usr/local/pgsql/etc/krb5.keytab(또는 다음과 같이 지정된 디렉토리sysconfdir빌드 시). 보안상의 이유로 전용 키탭을 사용하는 것이 좋습니다.포스트그레SQL시스템 키탭 파일에 대한 권한을 여는 대신 서버를 사용하세요.
keytab 파일은 Kerberos 소프트웨어에 의해 생성되었습니다. 자세한 내용은 Kerberos 설명서를 참조하세요. 다음 예는 MIT 호환 Kerberos 5 구현에 대한 것입니다.
kadmin%ank -randkey postgres/server.my.domain.orgkadmin%ktadd -k krb5.keytab postgres/server.my.domain.org
데이터베이스에 연결할 때 요청된 데이터베이스 사용자 이름과 일치하는 주체에 대한 티켓이 있는지 확인하십시오. 예를 들어 데이터베이스 사용자 이름의 경우프레드, 교장fred@EXAMPLE.COM접속할 수 있을 것입니다. 주체도 허용하려면fred/users.example.com@EXAMPLE.COM, 설명된 대로 사용자 이름 맵을 사용합니다.PostgreSQL : 문서 : 11 : 20.2. 토토 핫 이름지도.
다음 구성 옵션이 지원됩니다.GSSAPI:
include_realm0으로 설정하면 인증된 사용자 주체의 영역 이름이 사용자 이름 매핑을 통과하기 전에 제거됩니다. (PostgreSQL : 문서 : 11 : 20.2. 토토 핫 이름지도). 이는 권장되지 않으며 주로 이전 버전과의 호환성을 위해 사용 가능합니다. 다음을 제외하면 다중 영역 환경에서는 안전하지 않기 때문입니다.krb_realm도 사용됩니다. 떠나는 것이 좋습니다.include_realm기본값(1)으로 설정하고 명시적인 매핑을 제공합니다.pg_ident.conf주요 이름을 다음으로 변환하려면PostgreSQL사용자 이름.
지도시스템과 데이터베이스 사용자 이름 간의 매핑을 허용합니다. 보다PostgreSQL : 문서 : 11 : 20.2. 토토 핫 이름지도14534_14591사용자 이름@EXAMPLE.COM(또는 덜 일반적으로,사용자 이름/hostbased@EXAMPLE.COM), 매핑에 사용되는 사용자 이름은사용자 이름@EXAMPLE.COM(또는사용자 이름/hostbased@EXAMPLE.COM, 각각), 그렇지 않은 경우include_realm이 경우 0으로 설정되었습니다.사용자 이름(또는사용자 이름/호스트 기반)은 매핑 시 시스템 사용자 이름으로 표시되는 것입니다.
krb_realm사용자 주체 이름과 일치할 영역을 설정합니다. 이 매개변수가 설정되면 해당 영역의 사용자만 허용됩니다. 설정되지 않은 경우 모든 영역의 사용자는 사용자 이름 매핑이 수행되는 대로 연결할 수 있습니다.