Okta LDAP 인터페이스로 사용자 인증 및 권한 부여 구성
이 페이지의 내용
참고
MongoDB 8.0 부터 LDAP 인증 및 권한 부여 는 더 이상 사용되지 않습니다. 이 기능 은 사용할 수 있으며 MongoDB 8 의 수명 기간 동안 변경 없이 계속 작동합니다. LDAP 는 향후 주요 출시하다 에서 제거될 예정입니다.
자세한 내용은 LDAP 사용 중단을 참조하세요.
참고
이 가이드 에서는 Atlas 가 Okta 에서 데이터베이스 사용자( Atlas 사용자가 아님)를 인증하고 권한을 부여하도록 활성화 하는 방법을 보여 줍니다. , 타사 LDAP 제공자
LDAP 인증만 활성화하거나 LDAP 인증과 권한 부여를 모두 활성화할 수 있습니다.
LDAP 인증만 활성화하는 경우 개별 사용자를 Atlas에 추가하고 추가하는 각 사용자에게 데이터베이스 액세스 권한을 할당합니다.
LDAP 인증 및 권한 부여를 활성화하는 경우 Atlas에 사용자 그룹을 추가하고 각 그룹에 데이터베이스 액세스 권한을 할당할 수 있습니다. 사용자는 자신이 속한 LDAP 그룹으로부터 데이터베이스 액세스 권한을 상속받습니다.
Atlas는 다음을 지원합니다.
Okta Active Directory 동기화에서 데이터베이스 사용자 인증.
Okta에서 데이터베이스 사용자 인증.
Okta 그룹의 데이터베이스 사용자에게 권한 부여.
제한 사항
LDAP 통합을 활성화하려면
M10
이상의 Atlas 클러스터를 배포해야 합니다. LDAP 통합은 Atlas Enterprise 기능입니다.Atlas는 Okta Active Directory 동기화 그룹의 데이터베이스 사용자에게 권한 부여를 지원하지 않습니다.
Atlas는 데이터베이스 사용자를 위한 싱글 사인온 통합을 지원하지 않습니다. Atlas 관리 웹 인터페이스의 싱글 사인온 통합에 대해 자세히 알아보려면 Configure Federated Authentication(연합 인증 구성)을 참조하세요.
필요한 액세스 권한
LDAP 사용자 또는 그룹을 관리하려면 Atlas에 대한 Organization Owner
또는 Project Owner
액세스 권한이 있어야 합니다.
절차
LDAP 인증을 위한 Okta 구성
다음 절차에서는 Atlas를 통한 인증을 위해 Okta를 구성합니다.
Okta LDAP 인터페이스를 설정합니다.
Okta LDAP 인터페이스 설정에 대한 자세한 내용은 Okta 설명서를 참조하세요.
<okta-instance-id>
을 기록합니다. 구성 프로세스 중 여러 위치에서 이 정보를 제공해야 합니다.인스턴스 이름은 Okta 계정에 로그인할 때 사용하는 URL에 있습니다.
https://<okta-instance-id>.admin.okta.com
바인드 사용자를 생성합니다.
새 Okta 사용자 생성 Atlas 바인드 사용자로 사용합니다. 바인드 사용자는 계정을 쿼리하고 데이터베이스 사용자가 Atlas 데이터베이스에 연결할 때 데이터베이스 사용자의 자격 증명을 인증하는 데 사용하는 Okta 사용자입니다.
중요
바인드 사용자에 대해 자신의 사용자 계정을 사용하지 마세요.
다음 템플릿을 사용하여 바인드 사용자의 전체 고유 이름(DN)을 결정합니다.
uid=<bind-user-email>,dc=<okta-instance-id>,dc=okta,dc=com 예를 들어
<bind-user-email>
가bind@example.com
이고<okta-instance-id>
가mdb-example
인 경우 바인드 사용자의 DN은 다음과 같습니다.uid=bind@example.com,ou=users,dc=mdb-example,dc=okta,dc=com
LDAP 인증을 위한 Atlas 구성
다음 절차에 따라 Atlas는 Okta LDAP 에서 데이터베이스 사용자를 인증할 수 있습니다.
AtlasGo Atlas 에서 프로젝트 의 Advanced 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Security 제목 아래의 Advanced를 클릭합니다.
고급 페이지가 표시됩니다.
LDAP Authentication 옆에 있는 버튼을 On으로 전환합니다.
참고
이 기능을 활성화하면 추가 비용이 발생할 수 있습니다. Advanced Security(고급 보안)를 참조하세요.
AtlasGo Atlas 에서 프로젝트 의 Database Access 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Security 제목 아래의 Database Access를 클릭합니다.
데이터베이스 액세스 페이지가 표시됩니다.
LDAP 사용자를 Atlas에 추가합니다.
참고
LDAP 권한 부여를 활성화하려면 이 단계를 건너뛰 세요.
Okta LDAP 에서 managed 사용자를 Atlas에 추가합니다.
딸깍 하는 소리 Add New Database User.
LDAP User를 클릭합니다.
다음 중 하나를 수행합니다:
User to DN Mapping을 입력하지 않은 경우 LDAP 사용자의 전체 DN을 입력합니다. 다음 템플릿을 따릅니다.
uid=<user-name>,ou=users,dc=<okta-instance-id>,dc=okta,dc=com 예를 들어
<user-name>
이(가)jane@example.com
이고<okta-instance-id>
이(가)mdb-example
인 경우 사용자의 DN은 다음과 같습니다.uid=jane@example.com,ou=users,dc=mdb-example,dc=okta,dc=com User to DN Mapping 을 입력한 경우 매핑에 필요한 사용자 이름 또는 이메일 주소를 입력합니다.
사용자에게 부여할 데이터베이스 액세스 수준을 선택합니다.
Add User를 클릭합니다.
LDAP 권한 부여를 위한 Okta 구성
참고
LDAP인증을 활성화하지 않으려면 이 섹션을건너뛰 세요.
다음 절차에서는 Okta LDAP 데이터베이스 액세스 그룹에 속한 사용자에게 권한을 부여하도록 Atlas를 구성합니다.
중요
권한 부여를 활성화하기 전에 LDAP로 인증을 활성화해야 합니다.
LDAP 권한 부여를 활성화하고 구성하면 LDAP 인증에 대해서만 구성된 데이터베이스 사용자는 더 이상 데이터베이스에 액세스할 수 없습니다.
Okta 데이터베이스 액세스 그룹을 생성합니다.
Atlas LDAP 권한 부여는 LDAP 그룹을 사용하여 사용자가 데이터베이스 작업을 수행할 수 있는 권한이 있는지 여부를 결정합니다.
사용자에게 부여하려는 각 액세스 수준에 대해 별도의 Okta 그룹을 생성합니다. 예를 들어 한 데이터베이스에 대한 읽기 액세스용 그룹 하나와 읽기 및 쓰기 액세스용 그룹 하나 등을 생성할 수 있습니다.
Directory 을 클릭한 다음 Groups 을 클릭하여 Okta Groups 페이지로 이동합니다.
Add Group를 클릭합니다.
그룹 이름을 입력합니다(예:
db-read
.Add Group를 클릭합니다.
바인드 사용자에게 권한을 할당합니다.
바인드 사용자는 특정 Okta 그룹에 대해 사용자에게 권한을 부여하고 LDAP 검색을 수행하려면 Read Only Administrator
권한이 있어야 합니다. 바인드 사용자 Read Only Administrator
권한을 할당하려면 다음을 수행합니다.
Security 을 클릭한 다음 Administrators 을 클릭하여 Okta Administrators 페이지로 이동합니다.
Add Administrator를 클릭합니다.
바인드 사용자를 검색한 다음 Read Only Administrator 역할을 선택합니다.
Add Administrator를 클릭합니다.
LDAP 권한 부여를 위한 Atlas 구성
참고
LDAP인증을 활성화하지 않으려면 이 섹션을건너뛰 세요.
다음 절차에서는 Okta 데이터베이스 액세스 그룹을 Atlas에 추가하고 Atlas에서 데이터베이스 사용자 권한 부여를 활성화합니다.
AtlasGo Atlas 에서 프로젝트 의 Database Access 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Security 제목 아래의 Database Access를 클릭합니다.
데이터베이스 액세스 페이지가 표시됩니다.
데이터베이스 액세스 LDAP 그룹을 Atlas에 추가합니다.
생성한 각 Okta 데이터베이스 그룹을 Atlas에 추가합니다. 추가한 그룹의 구성원은 그룹에 부여된 데이터베이스 조치를 수행할 수 있는 권한이 있습니다.
딸깍 하는 소리 Add New Database User.
LDAP Group을 클릭한 다음 User to DN Mapping을 활성화한 경우에도 데이터베이스 사용자가 포함된 그룹의 전체 DN을 입력합니다 . 다음 템플릿을 따릅니다.
cn=<group-name>,ou=groups,dc=<okta-instance-id>,dc=okta,dc=com 예를 들어
<group-name>
가db-read
이고<okta-instance-id>
가mdb-example
인 경우 바인드 사용자의 DN은 다음과 같습니다.cn=db-read,ou=groups,dc=mdb-example,dc=okta,dc=com
이 그룹의 사용자에게 부여할 데이터베이스 액세스 수준을 선택합니다.
Add User를 클릭합니다.
AtlasGo Atlas 에서 프로젝트 의 Advanced 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Security 제목 아래의 Advanced를 클릭합니다.
고급 페이지가 표시됩니다.
Query Template에 쿼리 템플릿을 입력합니다.
사용자가 작업을 수행하려고 하면 Atlas는 LDAP 쿼리 템플릿을 실행하여 인증된 사용자가 속한 LDAP 그룹을 가져옵니다. Atlas는 쿼리가 작업을 수행할 권한이 있는 그룹을 하나 이상 반환하는 경우 작업을 허용합니다. 쿼리에서 작업을 수행할 권한이 있는 그룹을 반환하지 않는 경우 Atlas는 작업을 허용하지 않습니다.
Atlas는 쿼리를 실행할 때 {USER}
자리 표시자에서 인증된 사용자 이름을 대체합니다. 쿼리는 Server Hostname에 지정된 호스트에 상대적입니다.
쿼리 형식은 RFC4515 을 준수해야 합니다.
사용자가 속한 그룹을 식별하려면 다음 Query Template 을 사용할 수 있습니다.
ou=groups,dc=<okta-instance-id>,dc=okta,dc=com?dn?sub?(&(objectClass=groupofUniqueNames)(uniqueMember={USER}))
참고
다른 쿼리 템플릿도 작동할 수 있습니다. {USER}?memberOf?base
의 기본 템플릿을 사용하면 검색 시간이 길어질 수 있습니다.
다음을 사용하여 클러스터에 연결 mongosh
다음 절차에서는 LDAP 인증(그리고 활성화된 경우 LDAP 권한 부여)이 올바르게 구성되었는지 확인합니다.
참고
LDAP 인증이 활성화된 경우 데이터베이스 사용자는 클라이언트에 대한 연결 문자열에서 다음 매개변수를 재정의해야 합니다.
authSource
필수$external
authenticationMechanism
필수PLAIN
AtlasGo Atlas 에서 프로젝트 의 Clusters 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
아직 표시되지 않은 경우 사이드바에서 Clusters를 클릭합니다.
Clusters(클러스터) 페이지가 표시됩니다.
Atlas에 추가한 사용자 자격 증명을 사용하여 클러스터에 연결합니다.
mongosh
를 사용하여 클러스터에 연결합니다. 연결 string 을 복사하려면 다음을 수행합니다.
Connect를 클릭합니다.
LDAP을 클릭한 다음 Copy를 클릭합니다.
사용자 DN 및 비밀번호와 함께 문자열을 붙여넣고 편집합니다.
참고
User to DN Mapping(DN 매핑에 대한 사용자)가 활성화되지 않은 경우 사용자의 전체 DN으로 클러스터에 연결합니다.
LDAP 연결 문제 해결
참고
Okta에서 바인드 사용자에게 Read Only Administrator
권한이 있어야 LDAP 검색을 수행할 수 있습니다. ldapsearch
를 실행하기 전에 바인드 사용자에게 이러한 권한이 있는지 확인합니다 .
ldapsearch
를 통해 Atlas를 사용하도록 구성한 쿼리 템플릿이 예상한 대로 사용자 DN을 반환하는지 확인하세요. LDAP 인증은 작동하지만 LDAP 권한 부여가 작동하지 않는 경우 쿼리 템플릿이 올바른 사용자 DN을 반환하지 않을 수 있습니다.
다음 ldapsearch
템플릿을 사용합니다.
ldapsearch -H 'ldaps://<okta-instance-id>.ldap.okta.com' -D "<bind-user-dn>" -w "<bind-user-pwd>" -b 'ou=groups,dc=<okta-instance-id>,dc=okta,dc=com' '(&(objectClass=groupofUniqueNames)(uniqueMember=<bind-user-dn or group-dn>))
예를 들어 bind-user-dn
이 uid=jane@example.com,ou=users,dc=mdb-example,dc=okta,dc=com
이고 <okta-instance-id>
가 mdb-example
인 경우 다음 명령을 사용합니다.
ldapsearch -H 'ldaps://mdb-example.ldap.okta.com' -D "uid=jane@example.com,dc=mdb-example,dc=okta,dc=com" -w "REDACTED" -b 'ou=groups,dc=mdb-example,dc=okta,dc=com' '(&(objectClass=groupofUniqueNames)(uniqueMember=uid=jane@example.com,ou=users,dc=mdb-example,dc=okta,dc=com))'
참고
다른 쿼리 템플릿도 작동할 수 있습니다. {USER}?memberOf?base
의 기본 템플릿을 사용하면 검색 시간이 길어질 수 있습니다.