Mattermostにはさまざまな認証方法がありますが、残念ながらOSS版(TeamEdition)の場合だと、現在のバージョンv4.8.0ではEmailによる認証かGitLab経由でSSOするかの2つしか使えません。従って、TeamEditionでSSOしたいとなると必然的にGitLab SSOを利用することになります。

今回はGitLab経由でSSOする場合の設定方法について記述します。公式のドキュメントはこちらです。

GitLabの設定


「Admin Area」から「Application」を選択します。

上図のRedirect URLに下記を設定します。ドメインのところは実際のMattermostのURLかIPにします。

1
2
https://mattermost.example.com/signup/gitlab/complete
https://mattermost.example.com/login/gitlab/complete

Trustedapiにチェックを入れて保存します。

Application IdSecretを控えます。

Mattermostの設定


Mattermostのconfig.jsonを変更します。たぶんconfigというディレクトリ内にあると思います。その中にGitLabSettingsというキーがあるのでそこを編集します。

1
2
3
4
5
6
7
8
9
"GitLabSettings": {
"Enable": true,
"Secret": "496902e0575fcf5e1843f460ce6dfbe33f5d5da002f38521635a296925233c6d",
"Id": "57bcaeb7de1b46b2d55595df22b13ffe47190b140d4706375f16b39f0676e98b",
"Scope": "",
"AuthEndpoint": "https://gitlab.example.com/oauth/authorize",
"TokenEndpoint": "https://gitlab.example.com/oauth/token",
"UserApiEndpoint": "https://gitlab.example.com/api/v4/user"
},

先ほど控えたApplication IdSecretをそれぞれIdSecretに設定します。EndpointはGitLabのドメインに合わせて設定。Scopeは特に必要ないです。

後はMattermostにアクセスするとGitLabでサインインするボタンが表示されているはずです。

アカウント作成させない


GitLab経由でSSOするとなればアカウント作成は許可したくないでしょう。その場合はシステムコンソールの設定から各種設定を無効にすることでGitLab経由でしかサインアップ・サインインできないようにすることが可能です。

余談


おそらく、Mattermostの開発スタンスとしてこの方向(OSS版の認証方式が2つのみ)は変わらないのではないかと思ってます。以前OpenIDか何かの認証方法についてのIssueがGitHubに挙がっていましたが、EnterPrise版を利用してくださいというスタンスだった気がします。また、つい先日SAMLによる認証が実装されたときもEnterPrise版のみでした。まあ、Mattermost社も企業ですし、特にこういう企業が利用しそうな機能で無償版と差をつけていく必要があるんでしょうね。