개요
일반 보안 서비스 API (GSSAPI) 인증 메커니즘 사용하면 주체 이름을 사용하여 Kerberos 서비스를 인증할 수 있습니다. 이 메커니즘은 MongoDB Enterprise Advanced 에 인증할 때만 사용할 수 있습니다.
코드 자리 표시자
이 페이지의 코드 예제에서는 다음 자리 표시자를 사용합니다.
kerberos_principal
: Kerberos 주체입니다. 샘플 사용자 이름은myuser@KERBEROS.EXAMPLE.COM
입니다.password
: Kerberos 사용자의 비밀번호입니다. 또한keytab
파일에 비밀번호를 저장하여 코드에 비밀번호가 노출되는 것을 방지할 수 있습니다.connection_uri
: 사용자의 연결 문자열 URI입니다.
Kerberos (GSSAPI) 인증 지정
Kerberos 인증 사용하려면 빌드 태그를 gssapi
지정하다 사용하고 컴파일 중에 cgo 지원 지정해야 합니다. cgo
지원 이전에 다른 플랫폼으로 크로스 컴파일하도록 환경 변수를 설정하다 하지 않는 한 기본값 으로 활성화됩니다. gssapi
빌드 태그를 지정하다 사용하려면 다음 명령을 사용하여 코드를 컴파일합니다.
go build -tags gssapi
다음 코드에서는 Credential
구조체를 정의하여 Kerberos에 인증하고 인증 기본 설정을 사용하여 클라이언트를 만드는 방법을 보여 줍니다.
credential := options.Credential{ AuthMechanism: "GSSAPI", Username: "<kerberos_principal>", Password: "<password>", PasswordSet: true, } uri := "<connection_uri>" clientOpts := options.Client().ApplyURI(uri).SetAuth(credential) client, err := mongo.Connect(clientOpts)
keytab
파일에 인증 키를 저장 경우 Credential
구조체의 비밀번호 또는 PasswordSet
필드 생략할 수 있습니다. kinit
바이너리를 사용하여 Kerberos 주체를 인증하기 위한 자격 증명 캐시 초기화할 수 있습니다. kinit
바이너리에 대해 자세히 학습하려면 Oracle 설명서를 참조하세요.
다음 명령은 샘플 사용자 이름에 대한 자격 증명 캐시를 호출하는 방법을 보여줍니다.
kinit myuser@KERBEROS.EXAMPLE.COM
또는 URL로 인코딩된 Kerberos 주체, 암호 및 MongoDB 서버의 내 네트워크 주소인 hostname
를 지정하는 연결 문자열 URI를 사용하여 인증할 수 있습니다.
uri := "mongodb://<kerberos_principal>:<password>@<hostname>/?authMechanism=GSSAPI"
사용자 지정 SERVICE_NAME 및 SERVICE_REALM 필드 설정
Credential
구조체의 AuthMechanismProperties
필드 사용하여 인증 메커니즘 에 더 많은 속성을 지정할 수 있습니다. Kerberos 의 기본값 서비스 이름은 " MongoDB"입니다. 다음 코드는 Credential
구조체를 정의할 때 SERVICE_NAME
및 SERVICE_REALM
필드에 대한 사용자 지정 값을 설정하다 방법을 보여줍니다.
credential := options.Credential{ AuthMechanism: "GSSAPI", Username: "<kerberos_principal>", Password: "<password>", AuthMechanismProperties: map[string]string{ "SERVICE_REALM": "<kerberos_service_realm>", "SERVICE_NAME": "<service_name>", }, }
자세한 속성은 인증 속성에 대한 서버 수동 항목을 참조하세요.
API 문서
이 페이지에서 설명하는 메서드 또는 유형에 대해 자세히 학습 다음 API 설명서를 참조하세요.