연동 구성 설정
Entry, Professional, Enterprise, Enterprise Advanced 플랜에서 사용할 수 있습니다.
Product 메뉴에서 System Console(시스템 콘솔)을 선택한 다음 Integrations를 선택하면 다음 연동 구성 옵션을 확인하고 관리할 수 있습니다.
자체 호스팅 Mattermost 배포를 관리하는 시스템 관리자는 아래 표에 설명된 대로 config.json 파일을 직접 편집할 수 있습니다. 아래의 각 구성 값에는 JSON을 인식하는 도구로 config.json 파일의 값에 프로그래밍 방식으로 접근할 수 있는 JSON 경로가 함께 표기되어 있습니다. 예를 들어 EnableIncomingWebhooks 값은 ServiceSettings 아래에 있습니다.
- jq 같은 도구를 사용한다면 다음과 같이 입력합니다.
cat config/config.json | jq '.ServiceSettings.EnableIncomingWebhooks' config.json파일을 직접 다룰 때는ServiceSettings같은 객체를 찾은 다음, 그 객체 안에서EnableIncomingWebhooks키를 찾으세요.
연동 관리
시스템 콘솔에서 Integrations > Integration Management로 이동해 다음 구성 설정에 접근합니다.
인커밍 웹훅 활성화
연동을 개발하는 개발자는 공개 채널과 비공개 채널용 웹훅 URL을 생성할 수 있습니다. 웹훅 생성, 샘플 확인, 직접 만든 연동을 커뮤니티에 알리는 방법은 인커밍 웹훅 개발자 문서를 참고하세요.
True: 인커밍 웹훅이 허용됩니다. 인커밍 웹훅을 관리하려면 Mattermost 제품 메뉴에서 Integrations를 선택하세요. 생성된 웹훅 URL은 외부 애플리케이션이 접근 권한이 있는 공개 채널이나 비공개 채널에 게시물을 작성하는 데 사용할 수 있습니다.
False: Mattermost 제품 메뉴의 Integrations > Incoming Webhooks 섹션이 숨겨지고 모든 인커밍 웹훅이 비활성화됩니다.
보안 참고: 이 기능을 활성화하면 사용자가 다른 사용자를 사칭해 피싱 공격을 시도할 수 있습니다. 이러한 공격에 대응하기 위해 웹훅이 작성한 모든 게시물 옆에는 BOT 태그가 표시됩니다. 위험을 감수하고 활성화하세요.
이 기능의 config.json 설정은 "EnableIncomingWebhooks": true이며 true와 false 옵션을 사용할 수 있습니다. |
아웃고잉 웹훅 활성화
연동을 개발하는 개발자는 공개 채널용 웹훅 토큰을 생성할 수 있습니다. 트리거 단어는 새 메시지 이벤트를 외부 연동으로 발송하는 데 사용됩니다. 보안상의 이유로 아웃고잉 웹훅은 공개 채널에서만 사용할 수 있습니다. 웹훅 생성과 샘플 확인은 아웃고잉 웹훅 개발자 문서를 참고하세요.
True: 아웃고잉 웹훅이 허용됩니다. 아웃고잉 웹훅을 관리하려면 Mattermost 제품 메뉴에서 Integrations를 선택하세요.
False: Mattermost 제품 메뉴의 Integrations > Outgoing Webhooks가 숨겨지고 모든 아웃고잉 웹훅이 비활성화됩니다.
보안 참고: 이 기능을 활성화하면 사용자가 다른 사용자를 사칭해 피싱 공격을 시도할 수 있습니다. 이러한 공격에 대응하기 위해 웹훅이 작성한 모든 게시물 옆에는 BOT 태그가 표시됩니다. 위험을 감수하고 활성화하세요.
이 기능의 config.json 설정은 "EnableOutgoingWebhooks": true이며 true와 false 옵션을 사용할 수 있습니다. |
규모가 큰 배포에서 이 구성 설정을 비활성화하면 다음 영역에서 서버 성능이 개선될 수 있습니다.
- 네트워크 트래픽 감소: 아웃고잉 웹훅은 외부 서비스로 네트워크 요청을 발생시킵니다. 이를 비활성화하면 해당 요청과 관련된 트래픽과 리소스 사용량이 줄어듭니다.
- 서버 부하 감소: 웹훅 이벤트를 처리하고 외부 서비스와의 연결을 관리하는 데 서버 리소스가 사용됩니다. 아웃고잉 웹훅을 비활성화하면 서버 작업량이 줄어들어 다른 중요한 작업에 더 많은 리소스를 배분할 수 있습니다.
- 응답 시간 개선: 아웃고잉 웹훅이 활성화되어 있으면 서버가 외부 서비스의 응답을 기다리므로, 외부 서비스가 느리거나 응답하지 않으면 성능이 저하될 수 있습니다. 비활성화하면 이러한 의존성이 사라져 사용자 요청에 대한 응답 시간이 빨라집니다.
- 메모리 사용량 감소: 웹훅은 요청과 응답 데이터를 처리하고 저장하는 데 메모리를 사용합니다. 비활성화하면 메모리를 확보해 전반적인 서버 성능을 개선할 수 있습니다.
- 오류 처리 단순화: 아웃고잉 웹훅 실패에 대한 오류와 재시도를 관리하면 복잡성과 부하가 늘어납니다. 아웃고잉 웹훅을 비활성화하면 오류 처리가 단순해지고 그에 따르는 처리 부하가 줄어듭니다.
- 다만 아웃고잉 웹훅은 Mattermost를 다른 서비스나 업무 흐름과 연동하는 데 꼭 필요한 경우가 많습니다. 성능 개선과 조직·사용자의 필요 사이에서 균형을 잡는 것이 중요합니다.
맞춤 슬래시 명령 활성화
슬래시 명령은 외부 연동으로 이벤트를 보내고, 외부 연동은 Mattermost로 응답을 되돌려 보냅니다.
True: 사용자가 Main Menu > Integrations > Commands에서 맞춤 슬래시 명령을 만들 수 있습니다.
False: Integrations 사용자 인터페이스에서 슬래시 명령이 숨겨집니다.
이 기능의 config.json 설정은 "EnableCommands": false이며 true와 false 옵션을 사용할 수 있습니다. |
OAuth 2.0 서비스 공급자 활성화
True: Mattermost가 OAuth 2.0 서비스 공급자로 동작해 외부 애플리케이션의 API 요청을 인가할 수 있습니다.
False: Mattermost가 OAuth 2.0 서비스 공급자로 동작하지 않습니다.
이 기능의 config.json 설정은 "EnableOAuthServiceProvider": true이며 true와 false 옵션을 사용할 수 있습니다. |
Cloud 관리자는 이 구성 설정을 변경할 수 없습니다.
동적 클라이언트 등록 활성화
True: 동적 클라이언트 등록(DCR)을 활성화해 애플리케이션이 POST /api/v4/oauth/apps/register 엔드포인트를 통해 관리자의 수동 개입 없이 OAuth 2.0 클라이언트를 프로그래밍 방식으로 등록할 수 있습니다.
False: 동적 클라이언트 등록이 비활성화됩니다. OAuth 2.0 애플리케이션은 시스템 콘솔에서 수동으로 등록해야 합니다.
이 기능의 config.json 설정은 "EnableDynamicClientRegistration": false이며 true와 false 옵션을 사용할 수 있습니다. |
보안 경고: 이 기능을 활성화하면 DCR 엔드포인트(/api/v4/oauth/apps/register)가 인증 없이 공개적으로 접근 가능해집니다. 어떤 사용자나 애플리케이션이든 여러분의 Mattermost 서버에 OAuth 클라이언트를 등록할 수 있습니다. 이 보안 모델을 이해하고 수용하는 경우, 또는 네트워크 수준의 추가 접근 통제가 마련되어 있는 경우에만 이 설정을 활성화하세요.
Cloud 관리자는 이 구성 설정을 변경할 수 없습니다.
DCR 리디렉션 URI 허용 목록
OAuth 동적 클라이언트 등록(DCR)에 허용되는 리디렉션 URI를 쉼표로 구분해 나열한 목록입니다. 이 값을 설정하면 DCR 엔드포인트(POST /api/v4/oauth/apps/register)를 통해 등록하는 OAuth 클라이언트 중 목록의 항목과 일치하는 리디렉션 URI를 가진 클라이언트만 허용됩니다. 비워 두면 모든 리디렉션 URI가 허용됩니다.
시스템 콘솔에서는 URI를 쉼표로 구분해 입력합니다. config.json이나 환경 변수로 이 값을 직접 설정할 때는 URI를 JSON 문자열 배열로 제공하세요(예: ["https://example.com/callback", "https://app.example.com/oauth"]).
이 설정은 동적 클라이언트 등록 활성화가 활성화된 경우에만 적용됩니다.
리디렉션 URI는 URL 구성 요소 단위로 대조됩니다. 패턴에서는 두 가지 와일드카드를 사용할 수 있습니다.
*는/를 제외한 모든 문자와 일치합니다(예: 단일 경로 세그먼트나 호스트 이름의 한 레이블).**는/를 포함한 모든 문자와 일치합니다(예: 여러 세그먼트로 이루어진 경로).
와일드카드는 각 URL 구성 요소 안에서만 적용됩니다. 즉 호스트 와일드카드는 호스트에, 경로 와일드카드는 경로에 대조되며, 한 구성 요소의 와일드카드가 다른 구성 요소를 대신할 수 없습니다. 예를 들어 https://*.example.com/**는 https://app.example.com/callback과 일치하지만 https://attacker.example.net과는 일치하지 않습니다.
쿼리 문자열은 패턴에 명시적으로 포함된 경우에만 대조됩니다. 쿼리 문자열이 없는 패턴(예: https://app.example.com/callback 또는 https://app.example.com/**)은 쿼리 문자열이 없는 리디렉션 URI에만 일치합니다. 쿼리 매개변수가 포함된 리디렉션 URI를 허용하려면 패턴에 쿼리 구성 요소를 포함하세요(예: https://app.example.com/callback?tenant=*). 쿼리 문자열이 있는 경우와 없는 경우를 모두 허용하려면 두 패턴을 함께 추가하세요.
이 기능의 config.json 설정은 "DCRRedirectURIAllowlist": []이며 ["https://example.com/callback", "https://app.example.com/oauth"]와 같은 문자열 배열을 입력합니다. |
Cloud 관리자는 이 구성 설정을 변경할 수 없습니다.
연동 요청 제한 시간
외부 연동 HTTP 요청이 시간 초과되기 전까지 대기할 시간(초)입니다. 맞춤 슬래시 명령, 아웃고잉 웹훅, 인터랙티브 메시지, 인터랙티브 대화 상자가 여기에 포함됩니다. HTTP 응답을 생성하는 데 시간이 걸리는 외부 연동이 있거나 지연으로 인해 응답이 늦어진다면 이 값을 늘리세요.
이 기능의 config.json 설정은 "OutgoingIntegrationRequestsTimeout": 30입니다. |
연동의 사용자 이름 재정의 허용
True: 웹훅, 슬래시 명령, OAuth 2.0 앱을 비롯한 연동이 게시할 때 사용하는 사용자 이름을 변경할 수 있습니다. 사용자 이름이 지정되지 않은 경우, 게시물의 사용자 이름은 False로 설정했을 때와 동일하게 표시됩니다.
False: (기본값) 맞춤 슬래시 명령은 해당 슬래시 명령을 사용한 사용자의 이름으로만 게시할 수 있습니다. OAuth 2.0 앱은 연동을 설정한 사용자의 이름으로만 게시할 수 있습니다. 인커밍 웹훅과 아웃고잉 웹훅의 경우 사용자 이름은 "webhook"입니다. 자세한 내용은 https://developers.mattermost.com/integrate/other-integrations/를 참고하세요.
이 기능의 config.json 설정은 "EnablePostUsernameOverride": false이며 true와 false 옵션을 사용할 수 있습니다. |
연동의 프로필 사진 아이콘 재정의 허용
True: 웹훅, 슬래시 명령을 비롯한 연동이 게시할 때 사용하는 프로필 사진을 변경할 수 있습니다.
False: (기본값) 웹훅, 슬래시 명령, OAuth 2.0 앱은 설정에 사용된 계정의 프로필 사진으로만 게시할 수 있습니다. 자세한 내용은 https://developers.mattermost.com/integrate/other-integrations/를 참고하세요.
이 기능의 config.json 설정은 "EnablePostIconOverride": false이며 true와 false 옵션을 사용할 수 있습니다. |
개인 액세스 토큰 활성화
True: 사용자가 Profile > Security에서 연동용 개인 액세스 토큰을 만들 수 있습니다. 이 토큰은 API 인증에 사용할 수 있으며 계정에 대한 전체 접근 권한을 부여합니다.
누가 개인 액세스 토큰을 만들 수 있는지 관리하거나 토큰 ID로 사용자를 검색하려면 System Console > Users 페이지로 이동하세요.
False: 서버에서 개인 액세스 토큰이 비활성화됩니다.
이 기능의 config.json 설정은 "EnableUserAccessTokens": false이며 true와 false 옵션을 사용할 수 있습니다. |
인커밍 웹훅 채널 잠금 강제
이 설정을 활성화하면 모든 인커밍 웹훅이 지정된 채널에 잠기며 다른 채널에는 메시지를 게시할 수 없습니다. 이를 통해 관리자는 웹훅 보안을 더 강하게 통제하고, 웹훅이 의도한 채널에만 게시하도록 보장할 수 있습니다.
True: 인커밍 웹훅은 반드시 지정된 채널에 잠겨야 합니다. 웹훅을 만들거나 편집할 때 Lock to this channel 옵션이 자동으로 활성화되며 해제할 수 없습니다.
False: (기본값) 인커밍 웹훅 작성자가 Lock to this channel을 선택해 웹훅을 특정 채널에 잠글지, 아니면 작성자가 속한 모든 공개 채널이나 비공개 채널에 게시할 수 있도록 할지 선택할 수 있습니다.
이 기능의 config.json 설정은 "EnforceIncomingWebhookChannelLocking": false이며 true와 false 옵션을 사용할 수 있습니다. |
봇 계정
시스템 콘솔에서 Integrations > Bot Accounts로 이동해 다음 구성 설정에 접근합니다.
봇 계정 생성 활성화
True: (Cloud 배포 기본값) 사용자가 Integrations > Bot Accounts에서 연동용 봇 계정을 만들 수 있습니다. 봇 계정은 로그인에 사용할 수 없다는 점을 제외하면 사용자 계정과 비슷합니다. 자세한 내용은 관련 문서를 참고하세요.
False: (자체 호스팅 배포 기본값) 사용자 인터페이스나 RESTful API로는 봇 계정을 만들 수 없습니다. 플러그인은 여전히 봇 계정을 만들고 관리할 수 있습니다.
이 기능의 config.json 설정은 "EnableBotAccountCreation": false이며 true와 false 옵션을 사용할 수 있습니다. |
소유자 비활성화 시 봇 계정 비활성화
True: 사용자가 비활성화되면 그 사용자가 관리하던 모든 봇 계정이 비활성화됩니다. 봇 계정을 다시 활성화하려면 Integrations > Bot Accounts로 이동하세요.
False: 사용자가 비활성화되어도 그 사용자가 관리하던 모든 봇 계정은 활성 상태로 유지됩니다.
이 기능의 config.json 설정은 "DisableBotsWhenOwnerIsDeactivated": false이며 true와 false 옵션을 사용할 수 있습니다. |
GIF
시스템 콘솔에서 Integrations > GIF로 이동해 다음 구성 설정에 접근합니다.
GIF 선택기 활성화
True: 사용자가 GIPHY 연동을 통해 이모지 선택기에서 GIF를 고를 수 있습니다.
False: 이모지 선택기에서 GIF를 고를 수 없습니다.
이 기능의 config.json 설정은 "EnableGifPicker": true이며 true와 false 옵션을 사용할 수 있습니다. |
GIF 링크 미리보기를 표시하려면 링크 미리보기가 활성화되어 있어야 합니다. 방화벽 뒤에서 접근이 제한된 Mattermost 배포에서는 이 기능이 동작하도록 443 포트를 (모든 요청 유형에 대해) 열어야 합니다.
CORS
다음 구성 설정은 자체 호스팅 배포에만 적용됩니다. 시스템 콘솔에서 Integrations > CORS로 이동해 다음 구성 설정에 접근합니다.
교차 출처 요청 허용 도메인
특정 도메인에서의 HTTP 교차 출처 요청을 허용합니다.
- 모든 도메인에서 CORS를 허용하려면
*를 입력합니다. - 특정 도메인을 입력하거나 여러 도메인을 공백으로 구분해 입력합니다.
- 모든 도메인에서 CORS를 차단하려면
null을 입력합니다. - 비워 두면 이 기능이 비활성화되고 Mattermost의 Site URL이 대신 사용됩니다.
이 설정을 활성화하기 전에 Site URL을 입력했는지 확인해야 저장 후 시스템 콘솔에 접근하지 못하게 되는 상황을 방지할 수 있습니다. 이 설정을 변경한 뒤 시스템 콘솔에 접근할 수 없게 되었다면 config.json 파일에서 Site URL을 설정할 수 있습니다.
이 기능의 config.json 설정은 "AllowCorsFrom": ""이며 문자열을 입력합니다. |
CORS 노출 헤더
요청자가 접근할 수 있는 헤더의 허용 목록입니다.
이 기능의 config.json 설정은 "CorsExposedHeaders": ""이며 문자열을 입력합니다. |
CORS 자격 증명 허용
True: 검증을 통과한 요청에 Access-Control-Allow-Credentials 헤더가 포함됩니다.
False: 요청에 Access-Control-Allow-Credentials 헤더가 포함되지 않습니다.
이 기능의 config.json 설정은 "CorsAllowCredentials": false이며 true와 false 옵션을 사용할 수 있습니다. |
CORS 디버그
True: CORS를 사용하는 연동을 개발할 때 도움이 되도록 로그에 메시지를 출력합니다. 이 메시지에는 구조화된 키-값 쌍 "source": "cors"가 포함됩니다.
False: 디버그 메시지를 로그에 출력하지 않습니다.
이 기능의 config.json 설정은 "CorsDebug": false이며 true와 false 옵션을 사용할 수 있습니다. |
임베딩
다음 구성 설정은 자체 호스팅 배포에만 적용됩니다. 시스템 콘솔에서 Integrations > Embedding으로 이동해 다음 구성 설정에 접근합니다.
프레임 조상(Frame ancestors)
iFrame으로 Mattermost 웹 클라이언트를 임베드할 수 있는 도메인을 공백으로 구분해 입력합니다. 임베딩을 허용하지 않으려면 비워 두세요. 임베딩을 비활성화하려면 비워 두면 되며, 기본값은 비어 있습니다.
이 기능의 config.json 설정은 "FrameAncestors".입니다. |
iFrame으로 Mattermost를 임베드하면 조직의 기존 도구와 업무 흐름에 협업 기능을 매끄럽게 통합할 수 있습니다. 다만 보안을 침해하지 않으면서 iframe과 상위 도메인 간 통신이 가능하도록 올바른 구성이 갖춰져 있는지 확인해야 합니다.