AD/LDAP 설정#
Enterprise 및 Professional 플랜 에서 사용 가능
개요#
Mattermost는 Microsoft AD/LDAP(공식적으로 Active Directory/LDAP로 알려짐)와 함께 “Same Sign-On”을 제공합니다. 온프레미스 AD/LDAP 배포에서 사용하는 동일한 자격 증명을 선택적 다중 인증 과 함께 Mattermost에서 재사용할 수 있습니다.
AD/LDAP는 조직 네트워크에서 사용자의 인증 및 권한 부여 세부 정보를 저장하는 서비스입니다. AD/LDAP 시스템을 Mattermost와 통합하면 사용자는 새로운 자격 증명을 만들 필요 없이 Mattermost에 로그인할 수 있습니다. 사용자 계정은 AD/LDAP에서 관리되며 변경 사항은 Mattermost와 동기화됩니다.
Mattermost와 AD/LDAP 통합의 이점은 다음과 같습니다:
단일 로그인. 사용자는 AD/LDAP 자격 증명으로 Mattermost에 로그인할 수 있습니다.
중앙 집중식 ID 관리. Mattermost 계정은 이름, 성, 이메일, 사용자 이름과 같은 AD/LDAP의 사용자 정보를 표시할 수 있습니다.
자동 계정 프로비저닝. 사용자가 AD/LDAP 자격 증명으로 처음 로그인할 때 Mattermost 사용자 계정이 자동으로 생성됩니다.
Mattermost의 미리 정의된 역할에 그룹 동기화. AD/LDAP 그룹 동기화를 통해 팀 및 채널 역할을 그룹에 할당합니다.
관리자 관리와의 규정 준수 정렬. AD/LDAP 필터를 사용하여 시스템 콘솔에서 Mattermost에 대한 관리자 액세스를 관리합니다.
설치 전 참고 사항#
중첩된 보안 그룹 이 있는 AD/LDAP를 사용하는 경우, PowerShell 스크립트나 유사한 것을 작성하여 트리를 평탄화하고 단일 보안 그룹으로 집계하여 Mattermost에 매핑해야 합니다.
AD/LDAP 설정을 준비할 때 다음 사항을 강력히 권장합니다:
속성 명명 및 대소문자 구분:
AD/LDAP와 Mattermost 구성 모두에서 속성 이름은 대소문자를 구분 합니다.
AD/LDAP 클레임 규칙의 속성 이름이 Mattermost에서 예상하는 속성 이름과 정확히 일치 하는지 확인하세요. 대소문자 차이는 문제를 일으킬 수 있습니다.
필수 속성:
SAML 어설션에서 사용자 식별을 위해
NameID요소가 필요합니다.모든 필수 속성(예:
Email,Username,FirstName,LastName)이 포함되어 있고 올바르게 매핑되어야 합니다.
NameID 에 대한 안정적인 고유 식별자를 선택하는 방법:
NameID에 안정적이고 고유한 식별자(EmployeeID또는ObjectGUID)를 사용하면 사용자 세부 정보가 시간이 지남에 따라 변경될 수 있는 경우(예:LastName또는Email) 문제를 방지하는 데 도움이 됩니다.AD에서 안정적이고 고유한 속성을 사용할 수 없는 경우, 시간이 지남에 따라 변경될 수 있는 속성을 사용하면 향후 문제가 발생할 수 있습니다.
시작하기#
AD/LDAP를 설정하는 방법은 두 가지가 있습니다:
시스템 콘솔 사용자 인터페이스를 사용하여 AD/LDAP 구성
워크스페이스에 로그인하고 이메일과 비밀번호를 사용하여 새 계정을 만듭니다. 이는 첫 번째로 생성된 사용자로 시스템 관리자 역할이 할당됩니다.
다음으로 AD/LDAP를 구성하고 시스템 관리자 계정을 AD/LDAP 로그인 방식으로 변환하세요.
``config.json`` 편집을 통해 AD/LDAP 구성
AD/LDAP 설정 문서 를 기반으로
config.json을 편집하여 AD/LDAP를 활성화하세요. Mattermost에 로그인할 때 유효한 AD/LDAP 자격 증명으로 로그인하는 첫 번째 사용자에게 시스템 관리자 역할이 할당됩니다.
AD/LDAP 로그인 구성#
이메일 인증을 사용하여 시스템 관리자 계정 생성.
새 워크스페이스를 만들고 이메일과 비밀번호를 사용하여 계정을 생성하세요. 이는 첫 번째로 생성된 계정이므로 시스템 관리자 역할이 자동으로 할당됩니다. 다른 계정에도 이 역할을 할당할 수 있습니다.
AD/LDAP 구성.
시스템 콘솔 > 인증 > AD/LDAP 로 이동하여 구성 설정 문서 를 기반으로 AD/LDAP 설정을 입력하세요.
AD/LDAP 로그인이 활성화되었는지 확인.
AD/LDAP가 활성화된 후 사용자가 AD/LDAP 자격 증명을 사용하여 로그인할 수 있는지 확인하세요.
시스템 관리자 계정을 이메일에서 AD/LDAP 인증으로 전환.
프로필로 이동하여 보안 > 로그인 방식 > AD/LDAP로 전환 을 선택하고 AD/LDAP 자격 증명으로 로그인하여 전환을 완료하세요.
(선택사항) 인증을 AD/LDAP로 제한.
시스템 콘솔 > 인증 > 이메일 로 이동하여 이메일로 로그인 활성화 를 false 로 설정하고 사용자 이름으로 로그인 활성화 를 false 로 설정하세요.
그런 다음 저장 을 선택하여 변경사항을 저장하세요. 이렇게 하면 AD/LDAP가 유일한 로그인 옵션이 됩니다.
(선택사항) 시스템 콘솔에서 `First Name Attribute` 와 `Last Name Attribute` 를 구성한 경우.
시스템 콘솔 > 사이트 구성 > 사용자 및 팀 으로 이동하여 팀원 이름 표시 를 이름과 성 표시 로 설정하세요. 더 나은 사용자 경험을 위해 권장됩니다.
참고
실수로 시스템에서 잠겨버린 경우, mmctl roles 명령을 사용하여 기존 계정을 시스템 관리자로 설정할 수 있습니다.
AD/LDAP 동기화 구성#
AD/LDAP 로그인을 구성하는 것 외에도 AD/LDAP 동기화를 구성할 수 있습니다. 동기화 시 Mattermost는 관련 계정 정보를 위해 AD/LDAP를 쿼리하고 속성 변경(이름, 성, 닉네임)에 따라 Mattermost 계정을 업데이트합니다. AD/LDAP에서 계정이 비활성화되면 사용자는 Mattermost에서 비활성화되고, Mattermost가 업데이트된 속성을 동기화하면 활성 세션이 취소됩니다.
AD/LDAP 동기화는 이메일에 의존합니다. AD/LDAP 서버의 모든 사용자가 이메일 주소를 가지고 있는지 확인하거나, Mattermost에서 계정이 비활성화되어 있는지 확인하세요.
Mattermost가 사용자 인증에 AD/LDAP를 사용하도록 구성된 경우, 다음 사용자 속성 변경은 API를 통해 수행할 수 없습니다: 이름, 성, 직위, 닉네임, 이메일, 프로필 이미지 또는 사용자 이름. LDAP는 이러한 사용자 속성의 권한 있는 소스여야 합니다.
AD/LDAP 로그인과 함께 AD/LDAP 동기화를 구성하려면:
시스템 콘솔 > 인증 > AD/LDAP 로 이동하여 AD/LDAP와 동기화 활성화 를 true 로 설정하세요.
동기화 간격(분) 으로 스크롤하여 Mattermost 계정이 AD/LDAP와 속성을 얼마나 자주 동기화할지 지정하세요. 기본 설정은 60분입니다. 프로필 사진 속성은 사용자가 로그인할 때만 동기화됩니다.
계정을 비활성화한 후 즉시 동기화하려면 시스템 콘솔 > AD/LDAP 의 AD/LDAP 지금 동기화 버튼을 사용하세요.
SAML 문서 를 참조하여 SAML 로그인과 함께 AD/LDAP 동기화를 구성하세요.
참고
동기화가 완료되려면 Mattermost에 최소 한 명의 AD/LDAP 사용자가 있어야 합니다.
시스템 콘솔의 AD/LDAP 설정과의 동기화는 임의의 호스트의 연결성과 가용성을 확인하는 데 사용될 수 있습니다. 이에 대해 우려하는 시스템 관리자는 사용자 지정 관리자 역할을 사용하여 이러한 설정 수정에 대한 액세스를 제한할 수 있습니다. 자세한 내용은 위임된 세분화된 관리 문서를 참조하세요.
필터를 사용하여 AD/LDAP 로그인 구성#
필터를 사용하면 로그인 시 지정된 사용자에게 역할을 할당합니다. AD/LDAP 필터 설정에 접근하려면 시스템 콘솔 > AD/LDAP 로 이동하세요.
사용자 필터#
(선택 사항) 사용자 개체를 검색할 때 사용할 AD/LDAP 필터를 입력하세요. 쿼리로 선택된 사용자만 Mattermost에 접근할 수 있습니다. AD/LDAP의 경우 비활성화된 사용자를 필터링하는 쿼리는 (&(objectCategory=Person)(!(UserAccountControl:1.2.840.113556.1.4.803:=2))) 입니다.
시스템 콘솔 > 인증 > AD/LDAP 로 이동하세요.
사용자 필터 필드를 완성하세요.
저장 을 선택하세요.
사용자가 Mattermost에 접근할 때 조직 로그인에 사용하는 것과 동일한 사용자 이름과 비밀번호로 로그인합니다.
필터는 특정 그룹에 속한 사용자를 제외하는 데에도 사용할 수 있습니다. AD/LDAP의 경우 그룹을 필터링하는 쿼리는 (&(memberof=cn=ACME_ALL,ou=Users,dc=sademo,dc=com)(!(memberof=cn=DEV_OPS,ou=Users,dc=sademo,dc=com))) 입니다.
게스트 필터#
(선택 사항) 활성화되면 Mattermost의 게스트 필터는 AD/LDAP 역할이 게스트이고 Mattermost 워크스페이스에 참여하도록 초대된 외부 사용자를 식별합니다. 이러한 사용자는 기본 멤버 사용자 역할 대신 첫 로그인 시 즉시 게스트 역할이 적용됩니다. 이를 통해 시스템 콘솔에서 수동으로 역할을 할당할 필요가 없어집니다.
이 필터가 제거되거나 변경되면 활성 게스트는 멤버로 승격되지 않고 게스트 역할을 유지합니다. 게스트는 시스템 콘솔 > 사용자 관리 에서 승격할 수 있습니다.
시스템 콘솔 > 인증 > 게스트 액세스 로 이동하여 게스트 액세스를
true로 설정하세요.시스템 콘솔 > 인증 > AD/LDAP 로 이동하세요.
게스트 필터 필드를 완성하세요.
저장 을 선택하세요.
게스트가 처음 로그인할 때는 채널에 추가될 때까지 기본 랜딩 페이지가 표시됩니다.
이 기능에 대한 자세한 내용은 게스트 계정 문서 를 참조하세요.
관리자 필터#
(선택 사항) 시스템 관리자를 지정하는 데 사용할 AD/LDAP 필터를 입력하세요. 쿼리로 선택된 사용자는 시스템 관리자로 Mattermost 워크스페이스에 접근할 수 있습니다. 기본적으로 시스템 관리자는 Mattermost 시스템 콘솔에 완전한 접근 권한을 가집니다. 이 속성으로 식별된 기존 멤버는 다음 로그인 시 멤버에서 시스템 관리자로 승격됩니다.
다음 로그인은 시스템 콘솔 > 세션 길이 에 설정된 세션 길이를 기반으로 합니다. 접근이 즉시 제한되도록 하기 위해 시스템 콘솔 > 사용자 관리 에서 사용자를 수동으로 멤버로 강등하는 것이 좋습니다.
시스템 콘솔 > 인증 > AD/LDAP 로 이동하세요.
관리자 필터 를 true 로 설정하세요.
관리자 필터 필드를 완성하세요.
저장 을 선택하세요.
참고
관리자 필터가 false 로 설정되면 시스템 관리자 역할이 유지됩니다. 하지만 이 필터가 제거되거나 변경되면, 이 필터를 통해 승격된 시스템 관리자는 멤버로 강등되고 시스템 콘솔에 대한 접근 권한을 유지하지 못합니다.
이 필터를 사용하지 않을 때는 시스템 콘솔 > 사용자 관리 를 통해 멤버를 수동으로 승격/강등할 수 있습니다.
여러 도메인이 있는 AD/LDAP 배포 구성#
여러 도메인을 사용하는 조직은 “Forest” 구성을 사용하여 여러 도메인을 통합할 수 있습니다. 자세한 내용은 Forests as Collections of Domain Controllers that Trust Each Other 를 참조하세요.
공통 루트를 공유하지 않는 여러 도메인이 포함된 forest 구성의 경우, 글로벌 카탈로그를 사용하여 모든 도메인을 검색할 수 있습니다. 이를 위해 config.json 을 다음과 같이 업데이트하세요:
LdapPort를 3268로 설정하세요(389 대신)
BaseDN을 “ “로 설정하세요(공백 문자 하나)
추가 세부 정보는 Global Catalog and LDAP Searches 를 참조하세요.
문제 해결/자주 묻는 질문#
다음은 일반적인 오류 메시지와 문제에 대한 자주 묻는 질문과 문제 해결 제안입니다. 로그에서 오류를 확인하는 것이 좋습니다. 로그는 문제가 무엇인지 파악하는 데 도움이 될 수 있습니다.
AD/LDAP를 처음 설정하고 동기화할 때 사용자가 Mattermost에 자동으로 생성되나요?#
아니요, 각 사용자는 첫 로그인 시 생성됩니다.
AD/LDAP 동기화를 시도할 때 상태가 Pending 으로 표시되고 완료되지 않는 이유는 무엇인가요?#
시스템 콘솔 > AD/LDAP 로 이동하여 Enable Synchronization with AD/LDAP 설정이 true 로 설정되어 있는지 확인하세요.
문제가 지속되면 User Filter 필드를 비워두고 동기화를 시도해보세요. 이 경우 동기화가 완료되면 일반 구문이 잘못 형식화된 것입니다. 올바른 구문 형식 설정에 대한 지침은 document 를 참조하세요.
Mattermost에 최소 한 명의 AD/LDAP 사용자가 있어야 동기화가 완료됩니다.
Username Attribute, ID Attribute, Login ID Attribute의 차이점은 무엇인가요?#
비슷해 보이지만 다른 목적을 가진 세 가지 AD/LDAP 속성이 있습니다:
Username Attribute: Mattermost 사용자 인터페이스에서 사용자를 식별하고 멘션하는 데 사용됩니다. 예를 들어, Username Attribute 가
john.smith로 설정된 경우, 사용자가@john을 입력하면 자동 완성 옵션에서@john.smith가 표시되고,@john.smith로 메시지를 게시하면 해당 사용자에게 멘션 알림이 전송됩니다.ID Attribute: Mattermost에서 고유 식별자로 사용됩니다.
ObjectGUID와 같이 변경되지 않는 값을 가진 AD/LDAP 속성이어야 합니다. 사용자의 ID 속성이 변경되면 이전 계정과 연결되지 않은 새로운 Mattermost 계정이 생성됩니다. 사용자가 이미 로그인한 후 이 필드를 변경해야 하는 경우 mattermost ldap idmigrate mmctl tool 를 사용하세요.Login ID Attribute: Mattermost에 로그인하는 데 사용되는 AD/LDAP 서버의 속성입니다. 일반적으로 이 속성은 위의 Username Attribute 필드와 동일하거나 사용자가 쉽게 기억할 수 있는 다른 필드입니다.
사용자를 비활성화하려면 어떻게 해야 하나요?#
AD/LDAP 또는 SAML을 통해 Mattermost에 로그인한 사용자는 수동 또는 자동으로 비활성화하는 방법을 선택할 수 있습니다.
이를 수행하는 세 가지 주요 방법이 있습니다:
사용자 삭제: AD/LDAP 서버에서 사용자가 완전히 제거되면 다음 동기화 시 Mattermost에서 비활성화됩니다.
사용자 필터: user filter 를 설정하여 Mattermost에 접근할 수 있는 AD/LDAP 사용자의 하위 집합만 선택합니다. 선택한 그룹에서 사용자가 제거되면 다음 동기화 시 Mattermost에서 비활성화됩니다.
수동 비활성화: 시스템 콘솔 > 사용자 관리 > 사용자 로 이동하여 사용자의 역할을 선택하고 비활성화 를 선택합니다. 사용자를 수동으로 비활성화하면 다시 로그인하여 스스로 재활성화할 수 있습니다.
AD/LDAP에서 비활성화된 사용자를 필터링하려면 사용자 필터를 다음과 같이 설정해야 합니다:
(&(objectCategory=Person)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))
필터는 특정 그룹에 속한 사용자를 제외하는 데에도 사용할 수 있습니다. AD/LDAP의 경우 그룹을 필터링하는 쿼리는 다음과 같습니다:
(&(memberof=cn=ACME_ALL,ou=Users,dc=sademo,dc=com)
(!(memberof=cn=DEV_OPS,ou=Users,dc=sademo,dc=com)))
위의 옵션 1 또는 2를 통해 Mattermost에서 사용자가 비활성화되면 사용자의 모든 현재 세션이 취소되고 Mattermost에 로그인하거나 접근할 수 없게 됩니다.
여러 AD/LDAP 서버에 연결할 수 있나요?#
현재 여러 AD/LDAP 서버에 연결하는 내장된 방법은 없습니다. Mattermost에 연결하기 전에 포리스트의 인스턴스를 연결해야 합니다. 포럼에서 기능 요청 에 투표하는 것을 고려해보세요.
When trying to log in, I see the error AD/LDAP not available on this server#
이는 구성에 문제가 있다는 것을 나타냅니다. AD/LDAP가 활성화되어 있고 설정이 올바른지 Mattermost 구성 설정을 확인하는 것이 좋습니다.
문제가 계속되면 추가 문제 해결을 위해 지원팀에 문의 하세요.
User not registered on AD/LDAP server 오류가 표시됩니다#
이는 AD/LDAP 서버로 전송된 쿼리가 결과를 반환하지 않았다는 의미입니다. 다음을 확인하는 것이 좋습니다:
사용자 자격 증명이 올바르게 입력되었는지 확인하세요 - *ID Attribute* 로 설정된 필드로 로그인해야 합니다.
사용자 계정이 AD/LDAP 서버에 존재하는지 확인하세요.
AD/LDAP 구성 설정이 올바른지 확인하세요.
문제가 계속되면 추가 문제 해결을 위해 Mattermost 지원팀에 문의 하세요.
AD/LDAP에서 사용자 계정을 업데이트했는데 Mattermost에 더 이상 로그인할 수 없습니다#
사용자가 AD/LDAP 자격 증명으로 Mattermost에 더 이상 로그인할 수 없는 경우 - 예를 들어, An account with that email already exists 오류 메시지가 표시되거나 로그인을 시도할 때 새 Mattermost 계정이 생성되는 경우 - 이는 계정의 ID Attribute 가 변경되었음을 의미합니다.
ID Attribute 로 사용되는 필드의 값을 이전 값으로 변경하여 문제를 해결할 수 있습니다. 현재 ID Attribute 로 가끔 변경되는 필드(예: 사용자 이름, 결혼 시 변경되는 이메일)를 사용 중이라면, GUID와 같이 변경되지 않는 필드를 사용하는 것이 좋습니다.
이를 위해 Login ID Attribute 를 사용자가 로그인에 사용하고 싶은 값(예: 사용자 이름 또는 이메일)으로 설정할 수 있습니다.
참고
현재 값은 대소문자를 구분합니다. ID Attribute 가 사용자 이름으로 설정되어 있고 사용자 이름이 John.Smith 에서 john.smith 로 변경되면 사용자는 로그인에 문제가 발생할 수 있습니다.
로그에 LDAP Result Code 4 "Size Limit Exceeded" 오류가 표시됩니다#
이는 AD/LDAP 서버 구성에 최대 페이지 크기가 설정되어 있고 Mattermost에서 오는 쿼리가 해당 제한을 초과하는 결과 집합을 반환하고 있음을 나타냅니다.
이 문제를 해결하기 위해 Mattermost 구성에서 max page size 를 AD/LDAP 서버의 제한과 일치하도록 설정할 수 있습니다. 이렇게 하면 단일 쿼리에서 모든 결과를 반환하는 대신 최대 페이지 크기를 초과하지 않는 결과 집합 시퀀스를 반환합니다. 최대 페이지 크기는 1500으로 설정하는 것이 좋습니다.
오류가 계속 발생한다면 아직 AD/LDAP 사용자가 Mattermost에 로그인하지 않았을 가능성이 높습니다. 최소한 한 명의 AD/LDAP 사용자가 Mattermost에 로그인했는지 확인하고 동기화를 다시 실행하세요. 이 시점에서 오류가 사라질 것입니다.
로그에 Missing NameID Element 오류가 표시됩니다#
이는 AD/LDAP 서버 구성에 SAML 어설션에 NameID 요소가 포함되어 있지 않음을 나타냅니다. NameID 요소는 SAML 어설션에서 사용자 식별에 필요합니다. NameID 가 사용자의 이메일 주소나 시간이 지나도 변경되지 않는 다른 안정적인 속성과 같은 고유한 사용자 식별자에 매핑되어 있는지 확인하세요.
로그에 Username Attribute is Missing 오류가 표시됩니다#
SAML 어설션의 Username 속성이 누락되었거나 잘못된 이름으로 지정되었습니다. SAML 어설션에 필요한 모든 속성이 포함되어 있는지 확인하세요. 속성 이름은 대소문자를 구분하며 Mattermost가 예상하는 것과 정확히 일치해야 합니다. AD/LDAP의 클레임 규칙을 업데이트하여 LDAP 속성을 예상되는 발신 클레임 유형에 올바르게 매핑하고, 적절한 대소문자를 사용하세요(예: UserName 대신 Username).
Enter ID User Filter가 보안 그룹을 읽을 수 있나요?#
네, 가능하지만 다음 사항을 확인하세요:
사용 중인 서비스 계정에 권한이 올바르게 구성되어 있는지 확인하세요.
각 사용자 객체가 보안 그룹의 직접 구성원인지 확인하세요.
AD/LDAP 동기화 작업이 실패했는지 어떻게 알 수 있나요?#
Mattermost는 시스템 콘솔 > 인증 > AD/LDAP 에서 각 AD/LDAP 동기화 작업의 상태를 제공합니다. 여기에서 업데이트된 사용자 수와 작업 성공 또는 실패 여부를 확인할 수 있습니다.