LDAP 서버
Nexus
와 같은 많은 시스템들이 LDAP 인증을 지원합니다. Casdoor는 또한 bind와 search 작업을 지원하는 간단한 LDAP 서버를 구현합니다.
이 문서는 Casdoor의 LDAP 서버에 연결하고 간단한 로그인 인증을 구현하는 방법에 대해 설명합니다.
LDAP 서버 포트
LDAP 서버는 기본적으로 389
포트에서 수신합니다. conf/app.conf에서 ldapServerPort
값을 수정함으로써 기본 포트를 변경할 수 있습니다.
작동 원리
Casdoor의 LDAP 클라이언트와 유사하게, LDAP 서버의 사용자들은 모두 posixAccount
의 하위 클래스입니다.
서버가 LDAP에 의해 전송된 데이터 세트를 받으면, cn
과 ou
를 파싱할 것입니다. 여기서 cn
은 사용자 이름을 나타내고 ou
는 조직 이름을 나타냅니다. dc
는 중요하지 않습니다.
bind 작업인 경우, 서버는 Casdoor를 사용하여 사용자 이름과 비밀번호를 검증하고 Casdoor에서 사용자에게 권한을 부여합니다.
검색 작업인 경우, 서버는 bind 작업에 의해 클라이언트에게 부여된 권한에 따라 검색 작업이 합법적인지 확인하고 응답을 반환합니다.
우리는 단순 인증만 지원합니다.
바인딩하는 방법
Casdoor LDAP 서버에서는 다음과 같은 형식과 유사한 DN
만 인식합니다: cn=admin,ou=built-in,dc=example,dc=com
.
관리자 사용자의 DN
을 위의 형식으로 설정해 주세요. 그런 다음, 사용자의 비밀번호로 LDAP 서버에 이 DN
을 바인딩하여 Casdoor에 로그인하여 검증할 수 있습니다. 서버 검증이 성공하면, 사용자는 Casdoor에서 권한을 부여받게 됩니다.
검색하는 방법
바인드 작업이 성공적으로 완료되면, 검색 작업을 수행할 수 있습니다. 검색 작업과 바인드 작업 사이에는 약간의 차이가 있습니다.
- 특정 사용자, 예를 들어
built-in
조직의Alice
를 검색하려면, 이와 같은DN
을 사용해야 합니다:ou=built-in,dc=example,dc=com
, 그리고 필터 필드에cn=Alice
를 추가합니다. - 특정 조직의 모든 사용자, 예를 들어
built-in
의 모든 사용자를 검색하려면, 이와 같은DN
을 사용해야 합니다:ou=built-in,dc=example,dc=com
, 그리고 필터 필드에cn=*
를 추가합니다. - 모든 조직의 모든 사용자를 검색하려면 (사용자가 충분한 권한을 가지고 있다고 가정), 이와 같은
DN
을 사용해야 합니다:ou=*,dc=example,dc=com
, 그리고 필터 필드에cn=*
를 추가합니다. - To search for all users in a specific group, you should use a filter query like this:
(memberOf=organization_name/group_name)
in the Filter field.