Active directory/LDAP setup

plans-img Enterprise, Professional 플랜에서 사용 가능

deployment-img Cloudself-hosted 배포판

개요

Active Directory (AD)는 귀하의 조직 네트워크에 있는 사용자들의 인증 및 권한 부여 정보를 저장하는 서비스입니다. AD/LDAP 시스템을 Mattermost와 통합하면 사용자는 새 자격 증명을 만들 필요 없이 Mattermost에 로그인할 수 있습니다. 사용자 계정은 AD/LDAP에서 관리되며 변경 사항은 Mattermost와 동기화됩니다.

AD/LDAP를 Mattermost와 통합하는 이점은 다음과 같습니다:

  • 단일 로그인. 사용자들은 AD/LDAP 자격 증명을 사용하여 Mattermost에 로그인할 수 있습니다.

  • 중앙 집중식 식별 관리. Mattermost 계정에서 AD/LDAP의 사용자 정보(이름, 성, 이메일, 사용자 이름 등)을 표시할 수 있습니다.

  • 자동 계정 프로비저닝. 사용자가 처음으로 AD/LDAP 자격 증명으로 로그인할 때 자동으로 Mattermost 사용자 계정이 생성됩니다.

  • 그룹을 미리 정의된 Mattermost 역할에 동기화. LDAP 그룹 동기화를 통해 팀 및 채널 역할을 그룹에 할당할 수 있습니다.

  • 관리자 관리를 위한 규정 준수 조정. LDAP 필터를 사용하여 시스템 콘솔에서 Mattermost의 관리자 액세스를 관리합니다.

설치 전 주의 사항

Active Directory를 사용하는 경우 중첩된 보안 그룹(nested security groups) 을 사용해야 하는 경우 PowerShell 스크립트나 유사한 도구를 사용하여 트리를 평탄화하고 하나의 보안 그룹으로 매핑해야 합니다.

시작하기

AD/LDAP를 설정하는 두 가지 방법이 있습니다:

  1. 시스템 콘솔 사용자 인터페이스를 사용하여 AD/LDAP 구성하기
    • 워크스페이스에 로그인하고 이메일과 비밀번호를 사용하여 새 계정을 만듭니다. 이것은 처음 생성된 사용자로서 System Admin 역할이 할당됩니다.

    • 다음으로 AD/LDAP을 구성한 다음 시스템 관리자 계정을 AD/LDAP 로그인 방식으로 전환합니다.

  2. ** config.json 을 편집하여 AD/LDAP 구성하기**
    • config.json 을 편집하여 AD/LDAP 설정 문서 에 따라 AD/LDAP을 활성화합니다. Mattermost에 로그인할 때 유효한 AD/LDAP 자격 증명으로 처음으로 로그인하는 사용자에게 시스템 관리자 역할이 할당됩니다.

AD/LDAP 로그인 구성

  1. 이메일 인증을 사용하여 시스템 관리자 계정 만들기
    • 이메일과 비밀번호를 사용하여 새 워크스페이스를 만들고 계정을 생성합니다. 이것은 자동으로 System Administrator 역할이 할당되는 첫 번째 계정이 됩니다. 또한 역할을 다른 계정에 할당할 수 있습니다.

  2. AD/LDAP 구성하기
    • System Console > Authentication > AD/LDAP 로 이동하여 AD/LDAP 설정을 기반으로 AD/LDAP 설정을 입력합니다. (자세한 내용은 구성 설정 문서 참조).

  3. AD/LDAP 로그인이 활성화되었는지 확인하기
    • AD/LDAP을 활성화한 후 사용자가 AD/LDAP 자격 증명을 사용하여 로그인할 수 있는지 확인합니다.

  4. 이메일 인증에서 AD/LDAP 인증으로 시스템 관리자 계정 전환하기
    • Settings > Security > Sign-in Method > Switch to AD/LDAP 로 이동하여 AD/LDAP 자격 증명으로 로그인하고 전환을 완료합니다.

  5. (선택 사항) AD/LDAP 인증으로의 인증 제한하기
    • System Console > Authentication > Email 로 이동하여 Enable sign-in with emailfalse 로, Enable sign-in with usernamefalse 로 설정합니다.

    • 그런 다음 Save 를 선택하여 변경 사항을 저장합니다. 이렇게 하면 Active Directory/LDAP가 유일한 로그인 옵션으로 남습니다.

  6. (선택 사항) 시스템 콘솔에서 `Fi Name Attribute` 와 `Last Name Attribute` 를 구성한 경우
    • System Console > Site Configuration > Users and Teams 로 이동하여 Teammate Name DisplayShow fi and last name 으로 설정합니다. 이는 더 나은 사용자 경험을 위해 권장됩니다.

Note

시스템에서 어떤 식으로든 잠기거나 오류를 범했을 경우, 명령 줄 도구를 사용하여 기존 계정을 시스템 관리자로 설정할 수 있습니다 .

AD/LDAP 동기화 구성

AD/LDAP 로그인을 구성하는 것 외에도 AD/LDAP 동기화를 구성할 수 있습니다. 동기화 시, Mattermost는 AD/LDAP를 쿼리하여 관련 계정 정보를 검색하고 속성(이름, 성, 닉네임, 이메일 등)의 변경에 따라 Mattermost 계정을 업데이트합니다. AD/LDAP에서 계정이 비활성화되면 Mattermost에서 해당 사용자도 비활성화되며, Mattermost가 업데이트된 속성을 동기화한 후 활성 세션이 철회됩니다.

AD/LDAP 동기화는 이메일에 의존합니다. AD/LDAP 서버의 모든 사용자가 이메일 주소를 가지고 있는지 확인하거나, 해당 계정이 Mattermost에서 비활성화되었는지 확인하십시오.

사용자의 인증을 위해 LDAP를 구성한 경우 API를 통해 다음 사용자 속성 변경을 수행할 수 없습니다: 이름, 성, 직책, 닉네임, 이메일, 프로필 이미지 또는 사용자 이름. 이러한 사용자 속성에 대해 LDAP가 권한을 갖도록 설정되어 있어야 합니다.

AD/LDAP 동기화를 구성하려면 다음 단계를 따릅니다:

  1. System Console > Authentication > AD/LDAP 로 이동하여 Enable Synchronization with AD/LDAPtrue 로 설정합니다.

  2. Synchronization Interval (minutes) 로 스크롤하여 Mattermost 계정이 AD/LDAP을 기반으로 하는 속성과 동기화되는 빈도를 지정합니다. 기본 설정은 60분입니다. 프로필 사진 속성은 사용자가 로그인한 후에만 동기화됩니다.
    • 계정을 비활성화한 후 즉시 동기화하려면 System Console > AD/LDAP 에서 AD/LDAP Synchronize Now 버튼을 사용하십시오.

    • SAML 로그인을 통해 AD/LDAP 동기화를 구성하려면 SAML 문서 를 참조하십시오.

Note

  • Mattermost에 적어도 하나의 LDAP 사용자가 존재해야만 동기화가 완료될 수 있습니다.

  • 시스템 콘솔의 AD/LDAP 동기화 설정을 사용하여 임의의 호스트의 연결성과 가용성을 결정할 수 있습니다. 이에 대해 우려하는 시스템 관리자는 사용자 지정 관리자 역할을 사용하여 이러한 설정의 수정 액세스를 제한할 수 있습니다. 자세한 내용은 시스템 관리자 역할 문서 를 참조하십시오.

필터를 사용하여 AD/LDAP 로그인 구성하기

필터를 사용하여 로그인하는 지정된 사용자에게 역할을 할당할 수 있습니다. AD/LDAP 필터 설정에 액세스하려면 System Console > AD/LDAP 으로 이동합니다.

사용자 필터

(선택 사항) 사용자 객체를 검색할 때 사용할 AD/LDAP 필터를 입력합니다. 쿼리에서 선택한 사용자만 Mattermost에 액세스할 수 있습니다. Active Directory의 경우, 비활성화된 사용자를 필터링하는 쿼리는 다음과 같습니다: (&(objectCategory=Person)(!(UserAccountControl:1.2.840.113556.1.4.803:=2))) .

  1. System Console > Authentication > AD/LDAP 로 이동합니다.

  2. 사용자 필터 필드를 작성합니다.

  3. Save 를 선택합니다.

사용자가 조직 로그인에 사용하는 것과 동일한 사용자 이름과 비밀번호로 Mattermost에 액세스합니다.

또한 특정 그룹에 속한 사용자를 제외할 수 있도록 필터를 사용할 수 있습니다. Active Directory의 경우, 그룹을 제외하기 위한 쿼리는 다음과 같습니다: (&(memberof=cn=ACME_ALL,ou=Users,dc=sademo,dc=com)(!(memberof=cn=DEV_OPS,ou=Users,dc=sademo,dc=com))) .

게스트 필터

(선택 사항) Mattermost의 게스트 필터를 활성화하면 AD/LDAP 역할이 게스트인 외부 사용자를 식별하고 Mattermost 워크스페이스에 초대됩니다. 이 사용자들은 첫 로그인 시에 기본 회원 사용자 역할 대신 즉시 게스트 역할이 적용됩니다. 이로써 시스템 콘솔에서 역할을 수동으로 할당할 필요가 없어집니다.

이 필터를 제거하거나 변경하면 활성 게스트는 회원으로 승급되지 않고 게스트 역할을 유지하게 됩니다. 게스트는 시스템 콘솔 > 사용자 관리 에서 승급할 수 있습니다.

  1. 시스템 콘솔 > 인증 > 게스트 액세스 (베타) 로 이동하여 게스트 액세스를 true 로 설정합니다.

  2. 시스템 콘솔 > 인증 > AD/LDAP 로 이동합니다.

  3. 게스트 필터 필드를 완료합니다.

  4. 저장 을 선택합니다.

게스트가 처음으로 로그인할 때 채널에 추가되기 전까지 게스트는 기본 랜딩 페이지에 표시됩니다.

이 기능에 대한 자세한 정보는 게스트 계정 문서 를 참조하세요.

관리자 필터

(선택 사항) 시스템 관리자를 지정하는 데 사용할 AD/LDAP 필터를 입력합니다. 이 쿼리에 의해 선택된 사용자들은 시스템 관리자로서 Mattermost 워크스페이스에 액세스할 수 있습니다. 기본적으로 시스템 관리자는 Mattermost 시스템 콘솔에 대한 완전한 액세스 권한을 갖습니다. 이 속성으로 식별된 기존 회원은 다음 로그인 시에 회원에서 시스템 관리자로 승급됩니다.

다음 로그인은 시스템 콘솔 > 세션 길이 에서 설정된 세션 길이에 따라 기준이 됩니다. 즉시 액세스를 제한하려면 사용자를 수동으로 시스템 콘솔 > 사용자 관리 에서 회원으로 강등시키는 것이 권장됩니다.

  1. 시스템 콘솔 > 인증 > AD/LDAP 로 이동합니다.

  2. 관리자 필터true 로 설정합니다.

  3. 관리자 필터 필드를 완료합니다.

  4. 저장 을 선택합니다.

참고: 관리자 필터가 false 로 설정되면 회원의 역할로서 시스템 관리자 역할이 유지됩니다. 그러나 이 필터가 제거되거나 변경되면 이 필터를 통해 승급된 시스템 관리자는 회원으로 강등되며 시스템 콘솔에 액세스 권한을 유지하지 못합니다.

이 필터를 사용하지 않을 때에는 시스템 콘솔 > 사용자 관리 를 통해 회원을 수동으로 승급/강등시킬 수 있습니다.

여러 도메인을 사용하는 AD/LDAP 배포 구성

여러 도메인을 사용하는 조직은 “포리스트” 구성을 사용하여 여러 도메인을 통합하여 Mattermost와 통합할 수 있습니다. 자세한 정보는 서로 신뢰하는 도메인 컨트롤러 집합인 포리스트 를 참조하세요.

공통 루트를 공유하지 않는 여러 도메인을 포함하는 포리스트 구성의 경우 글로벌 카탈로그를 사용하여 모든 도메인을 검색할 수 있습니다. 이를 위해 config.json 을 다음과 같이 업데이트합니다.

  • LdapPort를 3268로 설정합니다 (389 대신)

  • BaseDN을 ” ” (공백 문자)로 설정합니다

추가 세부 정보는 글로벌 카탈로그 및 LDAP 검색 을 참조하세요.

문제 해결/FAQ

다음은 자주 묻는 질문과 일반적인 오류 메시지 및 문제에 대한 문제 해결 제안입니다. 문제가 무엇인지 파악할 수 있는 오류를 확인하기 위해 로그를 확인하는 것이 권장됩니다.

AD/LDAP 테스트 버튼이 실패하면 연결을 어떻게 문제 해결할 수 있나요?


Mattermost 외부 시스템에서 AD/LDAP 사용자 쿼리를 실행하여 AD/LDAP 연결 설정이 올바른지 확인합니다. LDAP 연결 테스트 예제 를 참조하세요. AD/LDAP 연결이 Mattermost 외부에서 작동하는 것으로 확인되면 다음을 시도해 보세요.

  • 바인 사용자 이름 형식을 확인하기 위해 AD/LDAP 시스템을 확인합니다.

  • 시스템 콘솔의 AD/LDAP 포트연결 보안 설정을 확인합니다 ( AD/LDAP 포트 가 389로 설정된 경우 일반적으로 연결 보안없음 으로 설정합니다. AD/LDAP 포트 가 636으로 설정될 경우 연결 보안TLS 에 링크됩니다).

  • 로그에서 “x509: certificate signed by unknown authority”를 확인하는 경우 중간 SSL 인증서를 설치하거나 LDAP 서버가 완전한 인증서 체인을 보내도록 설정합니다.

이러한 옵션이 작동하지 않으면 라이선스 키와 함께 제공된 이메일 주소를 통해 Mattermost 지원팀에 문의하십시오.

AD/LDAP를 처음 설정하고 동기화할 때, 사용자는 Mattermost에 자동으로 생성되나요?

아니요, 각 사용자는 첫 로그인시에 생성됩니다.

AD/LDAP를 동기화하려고 할 때, 상태가 대기 으로 표시되는 이유가 무엇인가요?

시스템 콘솔 > AD/LDAP 로 이동하여 AD/LDAP 동기화 활성화 설정이 true 로 설정되어 있는지 확인하십시오.

문제가 지속되면 사용자 필터 필드를 비워두고 동기화를 수행해 보십시오. 이러한 시나리오에서 동기화가 완료되면 일반적인 구문이 잘못된 것입니다. 올바른 구문 형식 설정에 대한 안내는 이 문서 를 참조하세요.

또한 Mattermost에서 적어도 하나의 LDAP 사용자가 있어야 동기화가 완료됩니다.

사용자 이름 속성, ID 속성 및 로그인 ID 속성 간의 차이점은 무엇인가요?

다음과 같이 비슷해 보이지만 각각 다른 목적을 가진 세 가지 AD/LDAP 속성이 있습니다.

  1. 사용자 이름 속성: Mattermost 사용자 인터페이스 내에서 사용자를 식별하고 언급하는 데 사용됩니다. 예를 들어, 사용자 이름 속성john.smith 로 설정된 경우, 사용자가 @john 을 입력하면 자동 완성 옵션에서 @john.smith 를 볼 수 있으며 @john.smith 로 메시지를 게시하면 해당 사용자에게 언급 알림이 전송됩니다.

  2. ID 속성: Mattermost에서의 고유 식별자로 사용됩니다. 사용자의 ID 속성이 변경되면 그들의 이전 계정과 관련되지 않은 새로운 Mattermost 계정이 생성됩니다. 사용자가 이미 로그인한 후에 이 필드를 변경해야 하는 경우 mattermost ldap idmigrate mmctl 도구 를 사용하세요.

  3. 로그인 ID 속성: Mattermost에 로그인하는 데 사용되는 AD/LDAP 서버의 속성입니다. 보통 이 속성은 위의 사용자 이름 속성 필드와 동일하거나 사용자가 쉽게 기억할 수 있는 다른 필드입니다.

사용자를 비활성화하는 방법은 무엇인가요?

AD/LDAP 또는 SAML을 통해 사용자가 Mattermost에 로그인한 경우 수동 또는 자동으로 사용자를 비활성화하는 방법을 선택할 수 있습니다.

이를 수행하는 주요 방법은 다음과 같습니다:

  1. 사용자 삭제: 사용자가 AD/LDAP 서버에서 완전히 제거되면 다음 동기화 시에 Mattermost에서 비활성화됩니다.

  2. 사용자 필터: 사용자 필터 를 설정하여 Mattermost에 액세스하려는 AD/LDAP 사용자의 하위 집합만 선택합니다. 선택된 그룹에서 제거된 사용자는 다음 동기화 시에 Mattermost에서 비활성화됩니다.

  3. 수동으로 비활성화하기 : System Console > User Management > Users 로 이동하여 사용자의 역할을 선택하고 비활성화 를 선택합니다. 사용자를 수동으로 비활성화하면, 그들은 다시 로그인하여 스스로 재활성화할 수 있습니다.

Active Directory의 경우, 비활성화된 사용자를 필터링하려면 사용자 필터를 다음과 같이 설정해야 합니다:

(&(objectCategory=Person)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))

필터는 특정 그룹에 속한 사용자를 제외할 수도 있습니다. Active Directory의 경우, 그룹을 필터링하려면 다음 쿼리를 사용합니다:

(&(memberof=cn=ACME_ALL,ou=Users,dc=sademo,dc=com)

(!(memberof=cn=DEV_OPS,ou=Users,dc=sademo,dc=com)))

위 두 가지 방법 중 하나로 Mattermost에서 사용자를 비활성화하면, 해당 사용자의 현재 세션이 모두 취소되어 로그인이 불가능해지고 Mattermost에 접속할 수 없게 됩니다.

여러 개의 Active Directory 서버에 연결할 수 있나요?

현재 여러 AD 서버에 연결하는 내장된 방법은 없습니다. Mattermost에 연결하기 전에 fo 안의 인스턴스를 연결해야 합니다. 우리 포럼에서 기능 요청 을 추천합니다.

로그인 시에 “이 서버에서는 AD/LDAP를 사용할 수 없음” 에러가 나타납니다

이는 구성에 어딘가 문제가 있음을 나타냅니다. Mattermost 구성 설정을 확인하여 AD/LDAP가 활성화되어 있고 설정이 올바른지 확인하는 것을 권장합니다.

문제가 계속되면 지원팀에 문의 하여 추가적인 문제 해결을 받을 수 있습니다.

“사용자가 AD/LDAP 서버에 등록되지 않았음” 에러가 표시됩니다

이는 AD/LDAP 서버로 보내진 쿼리가 결과를 반환하지 않았음을 의미합니다. 다음을 권장합니다:

  1. 사용자 자격 증명이 올바르게 입력되었는지 확인하세요 - ID 속성 으로 설정된 필드로 로그인해야 합니다.

  2. 사용자 계정이 AD/LDAP 서버에 있는지 확인하세요.

  3. AD/LDAP 구성 설정이 올바른지 확인하세요.

문제가 계속되면 Mattermost 지원팀에 문의 하여 추가적인 문제 해결을 받을 수 있습니다.

AD/LDAP에서 사용자 계정을 업데이트했지만 Mattermost에 로그인할 수 없습니다

사용자가 AD/LDAP 자격 증명으로 Mattermost에 로그인할 수 없게 된다면, 예를 들어 “해당 이메일로 계정이 이미 존재합니다” 라는 오류 메시지가 표시되거나 로그인을 시도하면 새로운 Mattermost 계정이 생성된다면, 그 사용자 계정의 ID 속성 이 변경된 것을 의미합니다.

이 문제는 ID 속성 에 사용된 필드의 값을 이전 값으로 변경함으로써 해결할 수 있습니다. 현재 사용 중인 필드가 가끔씩 변경되는 ID 속성 (예: 결혼 시 이메일이 변경되는 경우 등)이라면 GUID와 같이 변경되지 않는 필드를 사용하는 것을 권장합니다.

이를 위해 로그인 ID 속성 설정하기 를 사용자가 로그인 할 때 사용하고자 하는 값 (예: 사용자 이름 또는 이메일)으로 설정할 수 있습니다.

Note

현재 값은 대소문자를 구분합니다. ID 속성 이 사용자 이름으로 설정된 경우에 사용자 이름이 “John.Smith” 에서 “john.smith” 로 변경되면 사용자는 로그인 문제를 겪을 것입니다.

로그 에러로 “LDAP 결과 코드 4 “Size Limit Exceeded”” 가 표시됩니다

이는 AD/LDAP 서버 구성에서 최대 페이지 크기가 설정되어 있고, Mattermost에서 오는 쿼리가 해당 제한을 초과하는 결과 집합을 반환하고 있다는 것을 나타냅니다.

이 문제를 해결하기 위해 Mattermost 구성의 최대 페이지 크기 설정 를 AD/LDAP 서버의 제한과 일치하도록 설정할 수 있습니다. 이렇게 하면 결과 집합이 최대 페이지 크기를 초과하지 않는 시퀀스의 결과 집합이 반환되어 모든 결과를 단일 쿼리로 반환하는 것이 아닙니다. 1500의 최대 페이지 크기 설정을 권장합니다.

오류가 계속되면 아마도 Mattermost에 로그인한 AD/LDAP 사용자가 아직 없을 것입니다. 적어도 한 명의 AD/LDAP 사용자가 Mattermost에 로그인했는지 확인하고 동기화 작업을 다시 실행하세요. 그러면 오류가 사라질 것입니다.

AD/LDAP 사용자 필터는 보안 그룹을 읽을 수 있나요?

네, 가능합니다. 하지만 다음을 확인하세요:

  • 사용 중인 서비스 계정에서 권한이 올바르게 설정되어 있는지 확인합니다.

  • 각 사용자 객체가 보안 그룹의 직접적인 구성원인지 확인합니다.

AD/LDAP 동기화 작업이 실패했는지 어떻게 알 수 있나요?

Mattermost는 System Console > Authentication > AD/LDAP 에서 각 AD/LDAP 동기화 작업의 상태를 제공합니다. 여기서 각 작업이 성공했는지 실패했는지 그리고 업데이트된 사용자 수를 볼 수 있습니다.