엔터프라이즈 인증 메커니즘
이 페이지의 내용
이 가이드에서는 MongoDB Enterprise Edition에서 사용할 수 있는 각 인증 메커니즘을 사용하여 MongoDB에 연결하기 위한 샘플 코드를 찾을 수 있습니다: Kerberos (GSSAPI/SSPI)
및 LDAP (PLAIN)
.
Kerberos (GSSAPI/SSPI)
참고
Node.js 드라이버는 UNIX에서는 MIT Kerberos 라이브러리를 사용하고 Windows에서는 SSPI API를 사용하여 Kerberos를 지원합니다.
GSSAPI
인증 메커니즘은 사용자 주체를 사용하여 Kerberos 서비스에 인증합니다.
연결 string 에 옵션을 지정하는 동안 다음 작업을 수행하여 이 인증 메커니즘을 지정할 수 있습니다.
authMechanism
매개 변수를GSSAPI
로 설정합니다.mongodb
이외의 값을 사용하는 경우authMechanismProperties
매개 변수에서SERVICE_NAME
값을 설정합니다.사용자 지정 서비스 영역이 필요한 경우
authMechanismProperties
매개 변수에SERVICE_REALM
값을 지정합니다.호스트 이름을 정규화해야 하는 경우
authMechanismProperties
매개변수에CANONICALIZE_HOST_NAME
값을 지정하세요. 이 속성은 다음 값을 사용할 수 있습니다.none
: (기본값) 호스트 이름 정규화를 수행하지 않습니다.forward
: 호스트 이름을 정규화하기 위해 정방향 DNS 조회를 수행합니다.forwardAndReverse
: 정방향 DNS 조회를 수행한 다음 해당 값을 역방향 조회하여 호스트 이름을 정규화합니다.
중요
gssapiServiceName
매개변수는 더 이상 사용되지 않으며 향후 드라이버 버전에서 제거될 수 있습니다. 대신 연결 URI에 authMechanismProperties=SERVICE_NAME:<your service name>
을(를) 사용하세요. 자세한 내용은 authMechanismProperties 매개변수 문서를 참조하세요.
다음 코드 샘플은 GSSAPI
을 사용하여 UNIX용 Kerberos에 인증합니다.
중요
항상 encodeURIComponent
메서드를 사용하여 주체를 URI로 인코딩 하여 올바르게 구문 분석되도록 합니다.
const { MongoClient } = require("mongodb"); // specify the placeholder values for your environment in the following lines const clusterUrl = "<MongoDB cluster URL>"; const principal = encodeURIComponent("<Kerberos principal and realm>"); const serviceRealm = "<Kerberos service realm>"; const canonicalizationSetting = "<canonicalization setting>"; const authMechanismProperties = `SERVICE_REALM:${serviceRealm},CANONICALIZE_HOST_NAME:${canonicalizationSetting}`; const authMechanism = "GSSAPI"; // Connection URI const uri = `mongodb+srv://${principal}@${clusterUrl}/?authMechanism=${authMechanism}&authMechanismProperties=${authMechanismProperties}`; const client = new MongoClient(uri); // Function to connect to the server async function run() { try { // Establish and verify connection await client.db("admin").command({ ping: 1 }); console.log("Connected successfully to server"); } finally { // Ensures that the client will close when you finish/error await client.close(); } } run().catch(console.dir);
참고
드라이버가 GSSAPI RFC-4652 를 통해 인증하기 때문에 이 메서드는 대신 GSSAPI
인증 메커니즘을 Kerberos
참조합니다. SASL 메커니즘.
LDAP (PLAIN)
PLAIN
인증 메커니즘은 사용자 이름과 비밀번호를 사용하여 경량 디렉토리 액세스 프로토콜(LDAP) 서버에 인증합니다.
다음 샘플 코드와 authMechanism
같이 매개 변수를 로 설정하고 PLAIN
LDAP 연결 에 string 사용자 이름 및 비밀번호를 포함하여 이 인증 메커니즘을 지정할 수 있습니다.
const { MongoClient } = require("mongodb"); // specify the placeholder values for your environment in the following lines const clusterUrl = "<MongoDB cluster URL>"; const ldapUsername = "<LDAP username>"; const ldapPassword = "<LDAP password>"; const authMechanism = "PLAIN"; // Connection URI const uri = `mongodb+srv://${ldapUsername}:${ldapPassword}@${clusterUrl}/?authMechanism=${authMechanism}`; const client = new MongoClient(uri); // Function to connect to the server async function run() { try { // Establish and verify connection await client.db("admin").command({ ping: 1 }); console.log("Connected successfully to server"); } finally { // Ensures that the client will close when you finish/error await client.close(); } } run().catch(console.dir);
참고
인증 메커니즘의 이름 PLAIN
은 LDAP
RFC- 에 정의된 PLAIN 단순 인증 및 보안 계층(SASL) 을4616 사용하여 인증하기 때문에 대신 로 지정됩니다. .