SMTP メールと SAML SSO の設定
セルフホスト版 OpenTickly で、メール(招待、パスワード再設定、メール認証に使います)と SAML シングルサインオンを設定します。
メール(SMTP)はインスタンス全体で一度だけ設定します。シングルサインオン(SAML 2.0)はワークスペースごとに別々に設定します。メール内のリンクや SSO 用のアドレスはサイト URL をもとに作られるので、まずはサイト URL から設定してください。
公開サイト URL を設定する
インスタンス管理者としてサインインし、インスタンス管理 → 設定 を開きます。サイトURL には、ユーザーがブラウザに入力するアドレスを設定します。例:https://time.example.com
Docker 内部のホスト名は使わないでください。/api などのパスも付けません。あとでドメインを変えたときは、メールのリンクがちゃんと開けるか確認し、IdP 側の SSO 設定も更新してください。
メール送信(SMTP)を設定する
インスタンス管理 → 設定 → メール / SMTP で次の項目を入力します。
| 項目 | 内容 |
|---|---|
| 送信者名 | メールに表示される送信者の名前 |
| 送信者メールアドレス | 差出人アドレス。メールサービス側で送信が許可されているものを使います |
| SMTPホスト | メールサーバーのホスト名 |
| SMTPポート | メールサービスが指定するポート。STARTTLS なら 587、TLS なら 465 が一般的 |
| SMTPユーザー名 | メールサーバーのログイン名 |
| SMTPパスワード | パスワード、またはメールサービスが発行するアプリパスワード |
ポート 465 の場合、OpenTickly は最初から TLS で接続します。それ以外のポートでは、サーバーが対応していれば STARTTLS に切り替えます。
保存したら、テストメールを送信 にアドレスを入れてテスト送信します。失敗した場合は、接続できなかったのか、ログイン情報が違うのか、宛先が拒否されたのか、タイムアウトしたのかがエラーに表示されます。メールサービスの設定を見直すべきか、ファイアウォールを確認すべきかの判断に使ってください。
招待、パスワード再設定、メール認証はどれも SMTP がないと動きません。テストメールが届いたら、メール認証 をオンにして、新しいユーザーにメールアドレスの確認を求めることもできます。
SMTP パスワードはスクリーンショット、Issue、git、共有のシェル履歴に残さないでください。漏れてしまったら変更しましょう。
ワークスペースの SAML SSO を設定する
IdP(アイデンティティプロバイダー)とは、チームがふだんログインに使っているサービスのことです。Okta、Microsoft Entra ID、Google Workspace、Keycloak などがこれにあたります。
ワークスペース管理者として ワークスペース設定 → シングルサインオン を開きます。
- 名前と会社のメールドメイン(例:
example.com)を入力します。 - IdP で新しい SAML アプリを作り、OpenTickly に表示されている エンティティID、ACS URL、サインインURL、メタデータURL を貼り付けます。
- OpenTickly に戻り、IdP のメタデータ URL を貼り付けます。IdP がメタデータ URL を出してくれない場合は、サインイン URL、エンティティ ID、X.509 署名証明書を手で入力します。
- SSO をオンにする前に 設定をテスト をクリックします。
- ログインをテスト をクリックし、そのメールドメインのユーザーでサインインします。メールアドレスや名前などが正しく返ってくるか確認してください。
- 保存してから、シングルサインオンを有効にします。
ログイン画面の SSO ボタンを押すと、OpenTickly はメールドメインを見て、どのワークスペースに案内するかを決めます。そのため、1 つのドメインを使えるのは 1 つのワークスペースだけです。IdP からは、メール属性か NameID のどちらかでユーザーのメールアドレスを送るようにしてください。
全員に有効にする前に
自分がログインできなくなる事態を防ぐために:
- テスト中は、別タブで管理者として(パスワードで)ログインしたままにしておきます。
- いきなりチーム全員ではなく、まずテスト用のユーザーで試します。
- IdP に登録したエンティティ ID と ACS URL が、OpenTickly の表示と完全に一致しているか確認します。
- ユーザーと IdP の両方から、HTTPS で OpenTickly にアクセスできるか確認します。
- サイト URL、リバースプロキシ、証明書、IdP の設定を変えたら、もう一度テストします。
- 少なくとももう 1 人の管理者が SSO でサインインできるまでは、パスワードでのログインを残しておきます。
デプロイやリバースプロキシについては セルフホスト を、API トークンやスクリプトについては Toggl API 互換性 を参照してください。