Docs Menu
Docs Home
/ / /
Node.js
/ /

엔터프라이즈 인증 메커니즘

이 페이지의 내용

  • Kerberos (GSSAPI/SSPI)
  • LDAP (PLAIN)

이 가이드에서는 MongoDB Enterprise Edition에서 사용할 수 있는 각 인증 메커니즘을 사용하여 MongoDB에 연결하기 위한 샘플 코드를 찾을 수 있습니다: Kerberos (GSSAPI/SSPI)LDAP (PLAIN).

참고

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 메커니즘.

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);

참고

인증 메커니즘의 이름 PLAINLDAP RFC- 에 정의된 PLAIN 단순 인증 및 보안 계층(SASL) 을4616 사용하여 인증하기 때문에 대신 로 지정됩니다. .

돌아가기

인증 메커니즘.

이 페이지의 내용