개요
SCRAM(Salted Challenge Response Authentication Mechanism)은 챌린지-응답 메커니즘을 사용하여 사용자를 인증하는 인증 메커니즘 제품군입니다. SHA-256 알고리즘 사용하여 비밀번호를 해시하는 SCRAM -SHA-256는 MongoDB Server 버전 4.0 이상에서 기본값 인증 메커니즘 입니다. 대신 SHA-1 알고리즘 사용하는 SCRAM -SHA-1는 4.0 이전 MongoDB Server 버전의 기본값 인증 메커니즘 입니다.
SCRAM 사용하여 MongoDB Atlas, MongoDB Enterprise Advanced 및 MongoDB Community Edition 에 인증할 수 있습니다.
팁
SCRAM 메커니즘
SCRAM 인증 메커니즘 제품군에 대해 자세히 학습 Wikipedia의RFC 5802 및 Salted Challenge Response 인증 메커니즘을 참조하세요.
SCRAM 의 MongoDB 구현 에 대한 자세한 내용은 MongoDB Server 매뉴얼의 SCRAM 참조하세요.
코드 자리 표시자
이 페이지의 코드 예제에서는 다음 자리 표시자를 사용합니다.
+srv
: MongoDB Atlas cluster 에 연결하는 경우에만 연결 문자열 접두사에 이 옵션을 포함합니다. 옵션에 대해 자세히+srv
학습 MongoDB Server 매뉴얼의 연결 문자열 형식을 참조하세요.<db_username>
: 인증할 사용자의 MongoDB 사용자 이름 .<db_password>
: 인증할 사용자의 MongoDB 비밀번호입니다.<hostname>
: MongoDB deployment 의 네트워크 주소 .<port>
: MongoDB deployment 의 포트 번호입니다. 이 매개 변수를 생략하면 운전자 기본값 포트 번호(27017
)를 사용합니다. MongoDB Atlas cluster 에 연결할 때는 포트 번호가 필요하지 않습니다.<authenticationDb>
: 사용자의 인증 데이터가 포함된 MongoDB database 입니다. 이 매개변수를 생략하면 운전자 기본값 인admin
을 사용합니다.<authenticationMechanism>
:SCRAM-SHA-1
또는SCRAM-SHA-256
(으)로 설정합니다.
이 페이지의 코드 예제를 사용하려면 이러한 자리 표시자를 원하는 값으로 바꾸세요.
중요
백분율 인코딩
퍼센트 인코딩 을 수행해야 합니다. 사용자 이름과 비밀번호를 MongoDB URI에 포함하기 전에 확인합니다. quote_plus()
urllib.parse 에서 사용할 수 있는 메서드 모듈은 이 작업을 수행하는 한 가지 방법입니다. 예를 들어 quote_plus("and / or")
를 호출하면 and+%2F+or
string 이 반환됩니다.
사용자 이름이나 비밀번호를 인수로 MongoClient
에 전달할 때 퍼센트 인코딩하지 마세요.
애플리케이션에서 SCRAM 인증 사용
SCRAM 사용하여 인증하려면 authMechanism
연결 옵션을 SCRAM-SHA-1
또는 SCRAM-SHA-256
로 설정하다 . MongoClient
생성자에 인수를 전달하거나 연결 문자열 의 매개변수를 통해 이 옵션을 설정하다 수 있습니다.
client = pymongo.MongoClient("mongodb[+srv]://<hostname>:<port>", username="<db_username>", password="<db_password>", authSource="<authenticationDb>", authMechanism="<authenticationMechanism>")
uri = ("mongodb[+srv]://<percent-encoded db_username>:<percent-encoded db_password>" "@<hostname>:<port>/?" "authSource=<authenticationDb>" "&authMechanism=<authenticationMechanism>") client = pymongo.MongoClient(uri)
API 문서
PyMongo에서 애플리케이션을 인증하는 방법에 대해 자세히 알아보려면 다음 API 문서를 참조하세요.