Microsoft Teams 연동
Entry, Enterprise, Enterprise Advanced 플랜에서 사용할 수 있습니다(Professional에서는 제공되지 않습니다).
Mattermost와 Microsoft Teams가 함께 쓰이는 환경에서 Microsoft Teams의 실시간 채팅 알림을 Mattermost로 전달하여 사일로를 해소하세요.
배포
설정은 Microsoft Teams에서 시작해 Mattermost에서 끝납니다.
Azure에서 OAuth 애플리케이션 설정
관리자 Azure 계정으로 portal.azure.com에 로그인합니다.
App Registrations(앱 등록)로 이동합니다.
페이지 상단에서 New registration(새 등록)을 선택합니다.

다음 값으로 양식을 작성합니다.
- Name:
Mattermost MS Teams - Supported account types:
Default value (Single tenant) - Platform:
Web - Redirect URI:
https://(MM_SITE_URL)/plugins/com.mattermost.msteams-sync/oauth-redirect
- Name:
(MM_SITE_URL)은 사용 중인 Mattermost 서버의 Site URL로 바꿉니다. Register를 선택해 양식을 제출합니다.

이 화면에서 Application (client) ID와 Directory (tenant) ID를 기록해 둡니다. 나중에 Mattermost에서 플러그인을 구성할 때 필요합니다.

왼쪽 창에서 Certificates & secrets(인증서 및 비밀)로 이동합니다.
New client secret을 선택합니다. 설명을 입력하고 Add를 선택합니다. 클라이언트 시크릿이 생성되면 시크릿 ID가 아니라 새 시크릿 값을 복사합니다. 이 값은 나중에 Mattermost 시스템 콘솔에서 사용합니다.

왼쪽 창에서 API permissions(API 사용 권한)로 이동합니다.
Add a permission을 선택한 다음 오른쪽 창에서 Microsoft Graph를 선택합니다.

Delegated permissions(위임된 권한)를 선택하고 아래로 스크롤해 다음 권한을 선택합니다.
Chat.ReadChatMessage.ReadFiles.Read.Alloffline_accessUser.Read
Add permissions를 선택해 양식을 제출합니다.
다음으로 Add a permission > Microsoft Graph > Application permissions를 통해 애플리케이션 권한을 추가합니다.
다음 권한을 선택합니다.
Chat.Read.AllPresence.Read.All
Add permissions를 선택해 양식을 제출합니다.
Grant admin consent for...를 선택해 애플리케이션에 권한을 부여합니다.
종량제 API가 활성화되어 있는지 확인(유료 구독 연결 포함)
채팅 알림을 구독하려면 OAuth 앱을 유료 Azure 구독에 연결해야 합니다. 이 설정을 완료하려면 https://learn.microsoft.com/en-us/graph/metered-api-setup의 안내를 따르세요.
종량제 API를 구성하지 않으면 월간 변경 건수가 낮게 제한되는 Evaluation model(Mattermost에서 구성 가능)을 사용해야 합니다. 속도 제한 때문에 메시지 수신이 중단될 수 있으므로 실제 운영 환경에서는 Evaluation model 구성을 사용하지 않는 것을 강력히 권장합니다. 자세한 내용은 이 Microsoft 문서를 참고하세요.
이것으로 Azure 내부 구성은 모두 끝났습니다.
Mattermost에서 Microsoft Teams 연동 설치 및 구성
이 설치 안내는 v9.8.0 이상을 실행하며 PostgreSQL을 사용하도록 구성된 Mattermost 인스턴스가 이미 있다고 가정합니다. 이 Mattermost 연동은 MySQL 데이터베이스를 지원하지 않습니다.
- 시스템 관리자로 Mattermost 워크스페이스에 로그인합니다.
- Mattermost에서
제품 메뉴를 열고 App Marketplace를 선택합니다.
- MS Teams를 검색하거나 스크롤해 찾은 뒤 Install을 선택합니다.
- 설치가 끝나면 Configure를 선택합니다. 시스템 콘솔로 이동합니다.
- 위에서 Azure에 OAuth 앱을 설정하며 얻은 값으로 Tenant ID, Client ID, Client Secret을 구성합니다.
추가 구성 옵션은 Microsoft Teams 플러그인 구성 설정 문서를 참고하세요.
- Mattermost v9.11.2(ESR) 및 Mattermost Cloud v10부터 이 플러그인의 v2.0이 Mattermost 서버에 기본 포함되어 배포됩니다. Mattermost 배포 버전이 v9.11.2 이전이라면 최신 플러그인 바이너리 릴리스를 내려받아 System Console > Plugin Management를 통해 서버에 업로드하세요.
- 웹훅 시크릿과 암호화 키는 한 번만 표시되므로 복사해 두는 것을 권장합니다.
성능 모니터링
Prometheus와 Grafana를 사용해 이 플러그인에 대한 성능 모니터링과 성능 알림을 설정할 수 있습니다.
- 모니터링을 사용하면 데이터베이스 호출, HTTP 요청, API 지연 시간을 포함해 플러그인의 전반적인 상태를 선제적으로 점검할 수 있습니다.
- 알림을 사용하면 연동이 오프라인이 되는 등 문제가 발생했을 때 이를 감지하고 조치할 수 있습니다.
Mattermost Cloud 배포용 Grafana 대시보드가 GitHub에 공개되어 있으며 출발점으로 활용하기에 좋습니다. 이 대시보드들은 Mattermost Cloud에서 사용하도록 설계되었으며 특정 namespace로 필터링합니다.

자체 호스팅 Mattermost 배포에서는 수정이 필요합니다. 문의 방법은 아래 도움 받기 섹션을 참고하세요.
사용
Microsoft Teams 알림 수신을 시작하려면 연결된 Microsoft Teams 내 협업 제품 문서를 참고하세요.
업그레이드
새 버전이 출시되면 이 연동을 업데이트하는 것을 권장합니다. 일반적으로 업데이트는 매끄럽게 진행되며 Mattermost 사용자 경험을 방해하지 않습니다. 최신 릴리스, 사용 가능한 릴리스, 호환성 고려 사항은 Releases 페이지에서 확인하세요.
자주 묻는 질문
Mattermost의 이메일 주소가 Microsoft Teams의 이메일 주소와 다릅니다. 그래도 연결할 수 있나요?
아니요. 현재는 이메일 주소가 동일한 계정만 연결할 수 있습니다. Mattermost 계정과 일치하는 이메일 주소를 지정하세요.
다른 이메일 주소를 가진 Microsoft Teams 계정에 Mattermost 계정을 연결하는 기능이 워크스페이스에 필요하다면, 피드백을 남길 수 있는 GitHub 이슈가 열려 있습니다.
저장 시와 전송 중 암호화는 어떻게 처리되나요?
Mattermost 구성에 저장된 클라이언트 시크릿은 Microsoft Graph API에 대한 앱 전용(app-only) 접근에 사용됩니다. 사용자가 이 연동을 통해 Microsoft Teams에 연결하면 그 결과로 발급된 액세스 토큰이 암호화되어 Mattermost 데이터베이스에 저장되고, 연결된 사용자를 대신한 접근에 사용됩니다. 연동과 Microsoft Graph API 간의 모든 통신은 TLS를 통해 이루어집니다.
알림이 활성화되면 연결된 사용자가 수신한 채팅과 첨부 파일은 해당 사용자와 연동이 생성한 봇 계정 사이의 다이렉트 메시지 채널에 게시물로 저장됩니다.
데이터베이스나 네트워크 보안 측면에서 고려할 사항이 있나요?
Mattermost 인스턴스에 일반적으로 적용되는 사항 외에 이 연동에만 해당하는 별도 사항은 없습니다.
컴플라이언스 관련 고려 사항(예: GDPR, PCI)이 있나요?
Mattermost 인스턴스에 일반적으로 적용되는 사항 외에 이 연동에만 해당하는 별도 사항은 없습니다.
이 연동은 어떤 구조로 되어 있나요?
이 연동은 Microsoft Graph API의 변경 알림을 구독합니다. 이 변경 알림은 Microsoft Teams 안에서 새로 생성되거나 갱신된 채팅을 Mattermost에 알립니다. 변경 알림을 받으면 연동은 앱 전용 접근(클라이언트 시크릿 기반)과 위임 접근(연결된 사용자 기반)을 함께 사용해 해당 채팅 내용을 가져와 Mattermost에 적절히 표시합니다.
도움 받기
Mattermost 고객은 Mattermost 지원 케이스를 열 수 있습니다. 버그를 신고하려면 Mattermost for Microsoft Teams Notifications 플러그인 저장소에 GitHub 이슈를 등록하세요.
질문, 피드백, 지원이 필요하면 Mattermost 커뮤니티 서버의 공개 Integrations and Apps 채널에 참여하세요.