OneLogin으로 SAML 구성하기#

Mattermost용 OneLogin으로 SAML 2.0을 구성하는 단계를 제공합니다.

시작하기 전에#

SAML 연결을 암호화하기 위한 암호화 인증서를 생성해야 합니다.

  1. GitHub의 mattermost/docs 저장소에서 Bash script 를 사용하거나 다른 적절한 방법을 사용할 수 있습니다. 여러 URL/IP에 사용할 수 있는 자체 서명된 x509v3 인증서 생성에 대한 자세한 내용은 generate self-signed certificates 문서를 참조하세요.

  2. 생성된 두 개의 파일을 저장하세요. 이는 개인 키와 공개 키입니다. 시스템 콘솔에서는 각각 서비스 제공자 개인 키서비스 제공자 공개 인증서 로 참조됩니다.

Mattermost SSO용 OneLogin 연결 앱 생성하기#

  1. SAML 테스트 커넥터 앱을 추가하세요.

  1. 관리자로 OneLogin에 로그인하세요.

  2. 앱 > 앱 추가 로 이동하세요.

  3. “SAML Test Connector”를 검색한 다음 SAML Test Connector (Advanced) 를 선택하세요.

OneLogin에서 앱 > 앱 추가로 이동하여 SAML Test Connector를 검색한 다음 목록에서 일치하는 결과를 선택하세요
  1. 표시 이름 필드에 애플리케이션 이름을 입력한 다음 선택적으로 앱 아이콘을 업로드하세요. 아이콘으로 Mattermost 로고를 사용할 수 있으며, 이는 Branding Guidelines 페이지에서 다운로드할 수 있습니다.

표시 이름 필드에 애플리케이션의 표시 이름을 입력하세요. 선택적으로 앱 아이콘을 업로드할 수 있습니다. 포털에서 표시 옵션이 활성화되어 있는지 확인하고 OneLogin 변경사항을 저장하세요.
  1. 포털에서 표시 옵션이 활성화되어 있는지 확인하세요.

  2. 저장 을 선택하세요.

  1. 앱을 구성하세요.

  1. 구성 탭을 선택한 다음 다음 값을 입력하세요:

  • RelayState: 비워두세요

  • Audience: 비워두세요

  • Recipient: https://<your-mattermost-url>/login/sso/saml 여기서 https://<your-mattermost-url> 는 일반적으로 Mattermost Site URL 과 일치해야 합니다.

  • ACS (Consumer) URL Validator: https:\/\/<your-mattermost-url>\/login\/sso\/saml

  • ACS (Consumer) URL: https://<your-mattermost-url>/login/sso/saml

OneLogin에서 구성 탭을 선택하여 필요한 값으로 SSO 통합을 구성하세요.
  1. 시스템 콘솔에서 암호화 활성화 를 선택한 다음 저장 을 선택하세요. 정보 탭으로 리디렉션됩니다. 거기서 구성 탭을 선택하여 SAML 암호화 필드에 접근하세요.

  2. 이전에 생성한 공개 키를 페이지 하단의 SAML 암호화 필드에 붙여넣으세요. 이 필드는 Mattermost에서 암호화가 활성화된 경우에만 OneLogin에 표시됩니다.

Mattermost 시스템 콘솔에서 암호화를 활성화하고 변경사항을 저장하세요. OneLogin으로 돌아가면 구성 탭으로 이동하여 SAML 암호화 필드에 접근하고 생성된 공개 키를 SAML 암호화 필드에 붙여넣으세요. 이 필드는 Mattermost에서 암호화가 활성화될 때까지 OneLogin에 표시되지 않습니다. OneLogin 변경사항을 저장하세요.
  1. 저장 을 선택하세요.

  1. 속성 매개변수를 입력하세요. 다음 속성이 권장됩니다:

이름

ID

UUID

이메일

이메일

이름

이름

이름 ID 값

이메일

사용자 이름

사용자 이름

속성 매개변수는 OneLogin과 Mattermost 간의 속성을 매핑합니다. 구성 가능한 속성에 대한 자세한 정보는 SAML 구성 설정 문서 를 참조하세요.

이메일 속성은 필수입니다.

  1. 매개변수 탭을 선택하세요.

  2. 매개변수 추가 를 선택하세요.

OneLogin에서 매개변수 탭을 선택한 다음 매개변수 추가를 선택하세요. OneLogin과 Mattermost 간의 속성 매개변수를 매핑하세요. 이메일 속성은 필수입니다.
  1. 필드 이름 필드에 Email 과 같은 속성 매개변수를 입력하세요.

  2. SAML 어설션에 포함 확인란을 선택하세요.

  3. 저장 을 선택하세요.

OneLogin에서 매핑하는 각 필드에 대해 SAML 어설션에 포함 플래그가 활성화되어 있는지 확인하세요.
  1. 편집 을 선택하세요.

  2. 필드에서 속성 매개변수에 해당하는 OneLogin 값을 선택하세요.

OneLogin에서 매핑하는 각 필드에 대해 속성 매개변수에 해당하는 OneLogin 값을 선택하세요.
  1. 필요한 다른 속성을 추가하려면 위 단계를 반복하세요. 사용하려는 모든 속성을 추가한 후에는 매개변수 목록이 다음 이미지와 유사하게 표시됩니다:

OneLogin과 Mattermost 간에 매핑된 속성 매개변수 예시.
  1. SSO 정보를 복사하세요.

  1. SSO 탭을 선택하세요.

  2. Issuer URLSAML 2.0 Endpoint (HTTP) 필드의 값을 복사한 후 나중에 사용할 수 있도록 저장하세요.

OneLogin에서 SSO 탭을 선택하고 Issuer URL과 SAML 2.0 Endpoint (HTTP) 값을 편리한 위치에 복사하세요.
  1. X.509 인증서를 보려면 View Details 를 선택하세요.

  2. 드롭다운에서 X.509 PEM 옵션이 선택되어 있는지 확인하세요.

OneLogin의 SSO 탭에서 X.509 인증서에 접근하려면 View Details를 선택하세요. X.509 PEM 옵션이 선택되어 있는지 확인하세요. Download를 선택하고 파일을 편리한 위치에 저장하세요.
  1. DOWNLOAD 를 선택한 후 나중에 사용할 수 있도록 파일을 편리한 위치에 저장하세요.

  1. 모든 변경사항을 저장하세요.

Mattermost용 SAML 로그인 구성#

  1. Mattermost 서버를 시작한 후 시스템 관리자로 Mattermost에 로그인하세요. System Console > Authentication > SAML 로 이동하세요.

  1. Identity Provider Metadata URL 필드에 OneLogin Issuer URL 을 입력하세요.

  2. 메타데이터를 다운로드하려면 Get SAML Metadata from IdP 를 선택하세요.

  1. 서명을 확인하도록 Mattermost를 구성하세요.

  1. Verify Signature 필드에서 True 를 선택하세요.

  2. Service Provider Login URLhttps//<your-mattermost-url>/login/sso/saml 을 입력하세요.

System Console SAML 페이지에서 Verify Signature 옵션을 true로 설정하여 활성화한 후 Mattermost URL을 기반으로 특정 Service Provider Login URL을 입력하세요.
  1. Service Provider Private Key를 사용하여 SAML 요청에 서명하도록 Mattermost를 구성하세요.

  2. 암호화를 활성화하세요.

  1. Enable Encryption 필드에서 True 를 선택하세요.

  2. Service Provider Private Key 필드에 이전에 생성한 개인 키를 업로드하세요.

  3. Service Provider Public Certificate 필드에 이전에 생성한 공개 키를 업로드하세요.

System Console SAML 페이지에서 암호화를 활성화한 후 생성된 개인 키와 공개 키를 모두 업로드하세요.
  1. Mattermost에서 사용자 정보를 업데이트하는 데 사용되는 SAML Assertions에 대한 속성을 설정하세요.

Email Attribute 필드와 Username Attribute 필드는 필수이며, OneLogin에서 SAML Test Connector를 구성할 때 이전에 입력한 값과 일치해야 합니다.

System Console SAML 페이지에서 Mattermost의 사용자 정보를 업데이트하는 데 사용되는 SAML Assertions에 대한 속성을 설정하세요. Email Attribute와 Username Attribute는 모두 필수이며, OneLogin에서 SAML Test Connector를 구성할 때 입력한 값과 일치해야 합니다.
  1. (선택사항) 로그인 버튼 텍스트를 사용자 정의하세요.

  2. 저장 을 선택하세요.

  3. (선택사항) First Name Attribute와 Last Name Attribute를 구성한 경우, System Console > Site Configuration > Users and Teams 로 이동한 후 Teammate Name DisplayShow first and last name 으로 설정하세요. 더 나은 사용자 경험을 위해 권장됩니다.

SAML SSO가 성공적으로 활성화되었는지 확인하려면 프로필 사진을 통해 Profile > Security > Sign-in Method > Switch to SAML SSO 에서 시스템 관리자 계정을 이메일에서 SAML 기반 인증으로 전환한 후 SAML 자격 증명으로 로그인하여 전환을 완료하세요.

마이그레이션이 어떻게 작동하는지 자세히 설명하는 공지사항을 사용자에게 게시하는 것도 권장합니다.

config.json 파일을 편집하여 SAML configuration settings 를 기반으로 SAML을 활성화하여 OneLogin용 SAML을 구성할 수도 있습니다. 변경사항이 적용되려면 Mattermost 서버를 재시작해야 합니다.

AD/LDAP와 SAML 동기화 구성#

SAML 로그인을 구성하는 것 외에도 선택적으로 SAML 계정을 AD/LDAP와 동기화하도록 구성할 수 있습니다. 구성 시:

  • Mattermost는 관련 계정 정보를 위해 AD/LDAP를 조회하고 속성(이름, 성, 닉네임)의 변경 사항에 따라 SAML 계정을 업데이트합니다.

  • AD/LDAP에서 비활성화된 계정은 Mattermost에서 비활성화되며, Mattermost가 속성을 동기화하면 활성 세션이 취소됩니다.

AD/LDAP와 SAML 동기화를 구성하려면:

  1. System Console > Authentication > SAML 2.0 으로 이동한 후 Enable Synchronizing SAML Accounts With AD/LDAPtrue 로 설정하세요.

  2. System Console > Authentication > AD/LDAP 로 이동한 후 Enable Synchronization with AD/LDAPtrue 로 설정하세요.

  3. 동기화 시 게스트 사용자를 무시하려면 System Console > Authentication > SAML 2.0 으로 이동한 후 Ignore Guest Users when Synchronizing with AD/LDAPtrue 로 설정하세요.

  4. Mattermost를 AD/LDAP 서버에 연결하려면 configuration settings documentation 를 기반으로 나머지 AD/LDAP 설정을 구성하세요.

  • AD/LDAP 로그인을 활성화하지 않으려면 System Console > Authentication > AD/LDAP 로 이동한 후 Enable sign-in with AD/LDAPfalse 로 설정하세요.

  1. Mattermost가 SAML 사용자 계정을 AD/LDAP와 동기화하는 빈도를 지정하려면 System Console > Authentication > AD/LDAP 로 이동한 후 Synchronization Interval 을 분 단위로 설정하세요. 기본 설정은 60분입니다. 계정을 비활성화한 후 즉시 동기화하려면 AD/LDAP Synchronize Now 를 선택하세요.

  2. Mattermost가 AD/LDAP 서버에 성공적으로 연결할 수 있는지 확인하려면 System Console > Authentication > AD/LDAP 로 이동한 후 AD/LDAP Test 를 선택하세요.

AD/LDAP와의 동기화가 활성화되면 사용자 속성이 이메일 주소를 기반으로 AD/LDAP와 동기화됩니다. 특정 이메일 주소를 가진 사용자가 AD/LDAP 계정을 가지고 있지 않으면 다음 AD/LDAP 동기화에서 Mattermost에서 비활성화됩니다.

계정을 다시 활성화하려면:

  1. 사용자를 AD/LDAP 서버에 추가하세요.

  2. System Console > Environment > Web Server 로 이동한 후 Purge All Caches 를 선택하여 Mattermost의 모든 캐시를 삭제하세요.

  3. System Console > Authentication > AD/LDAP 로 이동한 후 AD/LDAP Synchronize Now 를 선택하여 AD/LDAP 동기화를 실행하세요.

  4. System Console > Environment > Web Server 로 이동한 후 Purge All Caches 를 다시 선택하여 Mattermost의 모든 캐시를 다시 삭제하세요. 이렇게 하면 Mattermost에서 계정이 다시 활성화됩니다.

참고

사용자가 AD/LDAP에서 비활성화되면 다음 동기화에서 Mattermost에서도 비활성화됩니다. System Console 사용자 목록에서 “Deactivated”로 표시되며, 모든 세션이 만료되고 Mattermost에 다시 로그인할 수 없게 됩니다.

사용자가 SAML에서 비활성화되면 AD/LDAP에서 비활성화될 때까지 세션이 만료되지 않습니다. 하지만 Mattermost에 다시 로그인할 수는 없습니다.

참고

AD/LDAP와의 SAML 동기화는 인증을 제어하기 위한 것이 아니라 이름과 성과 같은 사용자 속성을 AD/LDAP에서 가져오도록 설계되었습니다.

특히 사용자 필터는 Mattermost에 로그인할 수 있는 사용자를 제어하는 데 사용할 수 없으며, 이는 SAML 서비스 제공업체의 그룹 권한으로 제어해야 합니다.

자세한 내용은 AD/LDAP와의 SAML 동기화 기술 설명 을 참조하세요.

AD/LDAP 데이터로 SAML 데이터 덮어쓰기#

또는 AD/LDAP 정보로 SAML 바인딩 데이터를 덮어쓸 수 있습니다. SAML ID 속성으로 사용자를 바인딩하는 방법에 대한 자세한 내용은 이 문서 를 참조하세요.

이 프로세스는 SAML 이메일 주소를 AD/LDAP 이메일 주소 데이터로 덮어쓰거나, 구성된 경우 SAML ID 속성을 AD/LDAP ID 속성으로 덮어씁니다. 사용자의 이메일 주소가 변경될 때 새 사용자가 생성되지 않도록 하기 위해 SAML ID 속성과 함께 이 구성을 사용하는 것을 권장합니다.

이 프로세스에서 기존 사용자 계정이 비활성화되지 않도록 하려면 두 시스템에서 데이터를 내보내고 ID 데이터를 비교하여 SAML ID가 LDAP ID와 일치하는지 확인하세요. Mattermost 내에서 AD/LDAP와 SAML 모두의 ID 속성을 동일한 데이터를 보유하는 필드에 매핑하면 ID가 일치하는지 확인할 수 있습니다.

  1. System Console > Authentication > SAML 2.0 > Id Attribute 로 이동하여 SAML Id Attribute 를 설정하세요.

  2. System Console > Authentication > SAML 2.0 > Override SAML bind data with AD/LDAP informationtrue 로 설정하세요.

  3. System Console > Authentication > SAML 2.0 > Enable Synchronizing SAML Accounts With AD/LDAPtrue 로 설정하세요.

  4. System Console > Authentication > AD/LDAP 로 이동한 후 AD/LDAP Synchronize Now 를 선택하여 AD/LDAP 동기화를 실행하세요.

자주 묻는 질문#

이메일 대신 ID 속성으로 인증을 바인딩하는 방법#

또는 이메일 대신 Id 속성을 사용하여 사용자를 바인딩할 수 있습니다. 시간이 지나도 변경되지 않는 고유한 ID를 선택하는 것을 권장합니다.

Id 속성으로 구성하면 이전 사용자의 정보가 노출되지 않고 새 사용자에게 이메일 주소를 재사용할 수 있습니다. 예를 들어, joe.smith@mattermost.com 이메일 주소를 가진 사용자가 한때 직원이었다면, Joe Smith라는 새 직원이 동일한 이메일을 사용할 수 있습니다. 이 구성은 사용자의 이름이 변경되고 이메일을 업데이트해야 할 때도 유용합니다.

이 프로세스는 이메일 바인딩과의 이전 버전 호환성을 고려하여 설계되었습니다. 다음은 새 계정 생성 및 구성 후 로그인하는 계정에 적용되는 프로세스입니다:

  • SAML로 인증된 사용자는 Id 속성(구성이 되어 있는 경우)을 사용하거나 SAML에서 받은 이메일을 사용하여 SAML 서비스 사용자에 바인딩됩니다.

  • 사용자가 로그인을 시도하고 SAML 서버가 유효한 인증으로 응답하면, 서버는 SAML 인증의 “Id” 필드를 사용하여 사용자를 검색합니다.

  • 해당 ID에 바인딩된 사용자가 이미 존재하는 경우, 해당 사용자로 로그인합니다.

  • 해당 ID에 바인딩된 사용자가 존재하지 않는 경우, 이메일을 기반으로 검색합니다.

  • 이메일에 바인딩된 사용자가 존재하는 경우, 이메일로 로그인하고 인증 데이터를 이메일 대신 ID로 업데이트합니다.

  • ID나 이메일에 바인딩된 사용자가 존재하지 않는 경우, ID로 SAML 계정에 바인딩된 새 Mattermost 계정을 생성하고 사용자가 로그인할 수 있도록 합니다.

참고

기존 계정은 서버에 로그인할 때까지 업데이트되지 않습니다.

Microsoft ADFS를 통한 SAML을 Integrated Windows Authentication(IWA)으로 구성할 수 있나요?#

네. IWA는 브라우저에서 지원되며, 2019년 2분기(mobile apps v1.18 이상)에 iOS 및 Android 모바일 앱에 지원이 추가되었습니다.

하지만 Electron의 제한으로 인해 Mattermost Desktop Apps에서는 IWA가 지원되지 않습니다. 대안으로 Desktop App처럼 Mattermost에 빠르게 접근할 수 있는 브라우저 데스크톱 바로가기를 만들 수 있습니다.

SAML을 통해 로그인하는 사용자를 프로비저닝 및 디프로비저닝할 수 있나요?#

네, 하지만 이는 AD/LDAP에 의존합니다. 현재 SCIM은 지원하지 않습니다. 자세한 내용은 “How do I deactivate users?” 를 참조하세요.

사용자를 한 인증 방법(예: 이메일)에서 SAML로 마이그레이션하려면 어떻게 해야 하나요?#

자세한 내용은 mmctl user migrate-auth 명령 문서를 참조하세요.

SAML은 OAuth 2.0 및 OpenId Connect와 어떻게 다른가요?#

OAuth 2.0은 주로 위임된 권한 부여를 위한 것으로, 앱이 Google 연락처 목록과 같은 리소스에 접근할 수 있는 권한을 부여받습니다. 인증은 다루지 않습니다.

OpenID Connect는 OAuth 2.0을 기반으로 구축되었으며, 인증을 지원하므로 직접적인 SSO가 가능합니다.

SAML은 OpenID Connect와 유사하지만 주로 기업 환경에서 사용됩니다. OpenID Connect는 소비자 웹사이트와 웹/모바일 앱에서 더 일반적입니다.

자세한 내용은 https://hackernoon.com/demystifying-oauth-2-0-and-openid-connect-and-saml-12aa4cf9fdba 에서 확인하세요.