Kompira Enterprise OAuth2 対応におけるメール送受信の設定方法 # 1. はじめに Kompira Enterprise (以後、KE と呼称) V1.6.6 以降で追加されるメール送受信の OAuth2 対応において、ユーザー側の事前準備として、 利用する OAuth2 プロバイダにKE をアプリケーションとして登録しておく必要があります。本ドキュメントでは、代表的なメールサービスである GMail および、Office365 を対象として、OAuth2 プロバイダへの事前登録方法、および、KE 側での設定方法について説明します。 # 2. 概要 全体の設定の流れは、以下のようになります。 1. 利用するメールサービスに応じた OAuth2 プロバイダに対して、KEアプリケーションの登録を行い、登録時に払い出されるクライアントID、および、クライアントシークレットを記録しておく 2. KE上にOAuth2プロバイダ型オブジェクトを作成し、クライアントIDとクライアントシークレット他、必要な設定項目を入力する。 3. KE上にSMTPサーバ型オブジェクト(メール送信時)、メールチャネル型オブジェクト(メール受信時)を作成し、2で作成したOAuth2プロバイダ型オブジェクトと紐づける 上記の1において、登録方法は各 OAuth2 プロバイダ毎に異なりますが、以降は共通です。 # 3. 設定方法 ## 3.1. OAuth2プロバイダに KE を登録する 各 OAuth2 プロバイダのサイトにログインしての作業となります。 ### 3.1.1. Office365 の場合 Office 365 の場合は、Azure Portal (https://portal.azure.com) サイトから登録を行います。 #### (1) Azure Portal サイトから Azure Active Directory サービスを開く [Azure Portal](https://portal.azure.com/#home) に、会社の自身のアカウントでログインしてから、Azure Active Directory サービスを選択して、左側メニューに表示される「アプリの登録」をクリックします。 ![95fb2240-c6f3-4a2e-b03f-753a9c0320d5-1920x1081r.png](https://image.docbase.io/uploads/15f295b0-a90e-40d8-8c7b-e9c645567a37.png =WxH) #### (2) アプリケーションを新規登録する 「+新規登録」ボタンをクリックして、アプリケーションを新規登録します。 ![8547cd03-68a6-44ae-8e21-10b8abd08d4b-1920x1275r.png](https://image.docbase.io/uploads/b3de9a32-6768-40e4-b192-38835be6757d.png =WxH) アプリケーションの名前を適当に(My Kompira Enterpriseなど)入力します。 サポートされているアカウントの種類には、「この組織ディレクトリのみ含まれるアカウント」を選択します。 リダイレクトURIには、プラットフォームの種類として「Web」を選択し、URLに `https:///.redirect` を入力します。ただし、KompiraサーバがDNS登録されていない場合やスキームが httpsではなく、httpの場合は登録できませんので、代わりに `https://localhost` と入力してください。 上記を入力後、「登録」ボタンをクリックして、アプリケーションを登録します。 登録したアプリケーションの左側メニューの「概要」ボタンをクリックし、表示されているアプリケーション(クライアント)ID を記録しておきます。 ![96ea2e22-f9a6-4c70-b31a-3b0791a61b0b-1920x1049r (2).png](https://image.docbase.io/uploads/5df243a4-3296-4efa-88f7-fb724f4d866e.png =WxH) #### (3) API のアクセス許可設定を行う 再び、Azure Active Directory サービスのアプリ登録の画面に移動すると、(2) で登録したアプリケーションが一覧に含まれているので、それをクリックして登録したアプリの設定画面に移動します。 ![7e0d1c35-5a5a-474f-8e7f-525a3cf13bc7-1920x1104r.png](https://image.docbase.io/uploads/e271001a-4c8a-4d4c-8c47-7171dfd0193c.png =WxH) 左側メニューに表示されている「APIのアクセス許可」をクリックします。 ![ab5fa7a0-a6b5-44b0-a70a-ffeb7de1b1bf-1920x1104r.png](https://image.docbase.io/uploads/9bc70022-2736-4bb0-8748-f24eeb68bc57.png =WxH) 「+アクセス許可の追加」をクリックして、Microsoft API の Microsoft Graph を選択し、委任されたアクセス許可の中から、以下の項目をそれぞれ追加します。 (offline_access を含めることで、リフレッシュトークンが取得できるようになります) - IMAP.AccessAsUser.All - POP.AccessAsUser.All - SMTP.Send - offline_access ![abc9f964-dadf-4521-8b03-6f5d13829398-1920x1104r.png](https://image.docbase.io/uploads/0c69b9ce-1ba4-4a6e-a94d-4e7c0ccdba5f.png =WxH) User.Read は削除します。 ![0fc2c9a0-b0d6-4e95-a12d-f9432e30aeac-1920x1104r.png](https://image.docbase.io/uploads/5b1185d8-f8f2-4706-ae67-5ade237029cf.png =WxH) #### (4) クライアントシークレットを作成する 左側メニューの「証明書とシークレット」をクリックして、クライアントシークレットタブを表示し、「+新しいクライアントシークレット」をクリックして、クライアントシークレットを追加します。 ![2e7a10aa-7ed6-4e25-81cf-8ab0d067b729-1920x1104r.png](https://image.docbase.io/uploads/bcc2c914-26a2-4951-bdfd-a9cea6ae7126.png =WxH) 説明と有効期限を入力して、「追加」ボタンをクリックします。 ![1fdb6295-60d9-4fb8-8bad-bb658e75d785-1920x1104r.png](https://image.docbase.io/uploads/ced119cd-0d4b-41a1-9cb7-7613b3fcc5c5.png =WxH) 作成したクライアントシークレットの値をコピーして、記録しておきます。 (必要なのはシークレットIDではなく、値なので注意してください。また、シークレットの値は、再度、Azure Portal にログインすると取得できなくなってしまうので、この時点で記録しておくようにしてください) #### 【注意】クライアントシークレットの有効期限について Azure Active Directory ではクライアントシークレットの有効期限は最長で2年間となっており、有効期限を過ぎると、Kompira Enterprise 側でのリフレッシュトークンの自動更新に失敗します。これを避けるため、有効期限が過ぎる前に、新しいクライアントシークレットを作成して、Kompira Enterprise のクライアントシークレットの設定を更新するようにしてください。 ### 3.1.2. GMail の場合 GMail の場合は、Google Cloud Platform (https://console.cloud.google.com) サイトから登録を行います。 #### (1) Google Cloud サイトから新規にプロジェクトを作成する [Google Cloud Platform](https://console.cloud.google.com) に、会社の自身のアカウントでログインしてから、組織内で新規にプロジェクトを作成します。 メニューから「APIとサービス」に移動した後、「プロジェクトを作成」ボタンをクリックします。 ![62abcc4f-012e-4462-a300-bb2568ece864-1920x1052r.png](https://image.docbase.io/uploads/c6f9031c-bea6-465c-acae-80e0294a50b1.png =WxH) 適当にプロジェクト名を入力し、組織は自社の組織を選択して、「作成」ボタンをクリックします。 ![02a8c6fd-19e8-4961-aa1d-35bfbb9c1a40-1920x1052r.png](https://image.docbase.io/uploads/4f02d29b-0ecc-4b86-9ee0-57219190867b.png =WxH) #### (2) OAuth 同意画面を作成する 「APIとサービス」メニューの「OAuth同意画面」を選択します。「User Type」 を内部にして、「作成」ボタンをクリックします。 ![21fb6ee7-5a39-4e1d-90df-1a97ae5c93e6-1920x1052r.png](https://image.docbase.io/uploads/ca6e9268-f513-4c35-8d44-93904844ec0d.png =WxH) 適当なアプリ名(Kompira Enterpriseなど)、ユーザーサポートメールに自身のメールアドレスを入力します。 ![bc36e59f-6df6-4989-af13-ec0e80910b8d-1920x1052r.png](https://image.docbase.io/uploads/e0855a6f-a818-44f5-89cc-d7d8243bb637.png =WxH) スクロールダウンして、デベロッパーの連絡先情報として自身のメールアドレスを入力し、「保存して次へ」ボタンをクリックします。 ![3584c372-0dbb-4a47-b9a7-e58b645de843-1920x1052r.png](https://image.docbase.io/uploads/8bc52c54-884e-4826-a514-3b6eb073612c.png =WxH) #### (3) スコープを設定する 「スコープを追加または削除」ボタンをクリックして表示される、入力ダイアログのスコープの手動追加のフィールドに`https://mail.google.com`と入力して、「テーブルに追加」ボタンをクリックしてから、「更新」ボタンをクリックします。 ![caed6857-83c1-4250-b823-97a1e21c2f6c-1920x1052r.png](https://image.docbase.io/uploads/c2bc3515-6f51-4cbb-8fc9-0c2c02d77cc5.png =WxH) スクロールダウンして、Gmailのスコープに `https://mail.google.com` が追加されていることを確認してから、「保存して次へ」をクリックします。 ![dbea388d-33cc-412c-ba18-61b14844acf1-1920x1052r.png](https://image.docbase.io/uploads/8b2ce57a-f5ac-481f-bc2d-9d0d09aa8700.png =WxH) 内容を確認してから、「ダッシュボードに戻る」ボタンをクリックします。 #### (4) 認証情報を作成する 「認証情報」メニューを選択して表示される画面から、「+認証情報を作成」ボタンをクリックし、ドロップダウンメニューの「OAuthクライアントID」を選択します。 ![7d822c11-0e5c-430b-98ab-304fde6140e4-1920x1052r.png](https://image.docbase.io/uploads/e53d4e5d-a187-4406-9313-b922f255a46d.png =WxH) アプリケーションの種類として「ウェブアプリケーション」を選択します。 名前は適当なもの(Kompira Enterpriseなど)を入力します。 承認済みのリダイレクトURIの下にある「+URIを追加」ボタンをクリックして、 URIに `https:///.redirect` を入力します。ただし、KompiraサーバがDNS登録されていない場合やスキームが httpsではなく、httpの場合は登録できませんので、代わりに `https://localhost` と入力してください。 ![3e47e1f2-ea47-4ab8-a2c2-3329ace7a2c5-1920x1241r.png](https://image.docbase.io/uploads/aa01e781-6866-49e5-a844-82141244ce7d.png =WxH) 下部にある「作成」ボタンをクリックすると、「OAuthクライアントを作成しました」というダイアログが表示されるので、クライアントIDとクライアントシークレットを記録しておきます。 ![a5c340cf-023c-4df7-9101-4a72c807b2b7-1920x1241r.png](https://image.docbase.io/uploads/c49d2294-02a9-4b21-b02b-910ae6ac6f86.png =WxH) ## 3.2. KE上にOAuth2プロバイダ型オブジェクトを作成する KE にログインして、メニューバーのファイルシステムから「oauth2_providers」をクリックして OAuth2プロバイダ一覧(/system/oauth2_providers)画面に移動します。 適当なオブジェクト名を入力して、「+」ボタンをクリックすると、OAuth2プロバイダの新規作成画面に遷移します。 ![\_system\_oauth2\_providers\_MyProvider \_ Kompira - Google Chrome 2022\_08\_08 10\_16\_35.png](https://image.docbase.io/uploads/81ae2033-2156-4802-a0d4-96e3ff916191.png =WxH) 3.1でアプリケーションの登録を行った際に記録しておいた、アプリケーションのクライアントIDとクライアントシークレットを入力します。 リダイレクトURLには、OAuth2プロバイダへのアプリケーション登録時に設定したリダイレクトURLを必要に応じて入力します。空にした場合は、デフォルト値である `https:///.redirect` として扱われます。 認証エンドポイント、トークンエンドポイント、および、スコープに入力する値は、利用するOAuth2 プロバイダによって異なり、Office365とGMailではそれぞれ以下のようになります。 #### ■ Office365の場合 | 項目名 | 値 | 備考 | | --- | --- | --- | | 認証エンドポイント | `https://login.microsoftonline.com/<テナントID>/oauth2/v2.0/authorize` | テナントIDは、登録したアプリケーションの概要画面から確認可能 | | トークンエンドポイント | `https://login.microsoftonline.com/<テナントID>/oauth2/v2.0/token` | 同上 | | スコープ | `https://outlook.office.com/IMAP.AccessAsUser.All`, `https://outlook.office.com/POP.AccessAsUser.All`, `https://outlook.office.com/SMTP.Send`, `offline_access` | | | リダイレクトURL | アプリケーション登録時にOAuth2プロバイダに設定したリダイレクトURL | 登録したURLが自Kompiraサーバの場合は空にしてよい | #### ■ GMailの場合 | 項目名 | 値 | 備考 | | --- | --- | --- | | 認証エンドポイント | `https://accounts.google.com/o/oauth2/auth` | OAuth2クライアントIDの画面から「JSONをタウンロード」したファイルに記載されている`auth_uri` | | トークンエンドポイント | `https://oauth2.googleapis.com/token` | 同上の`token_uri` | | スコープ | `https://mail.google.com/` | | | リダイレクトURL | アプリケーション登録時にOAuth2プロバイダに設定したリダイレクトURL | 登録したURLが自Kompiraサーバの場合は空にしてよい | 最後に保存ボタンをクリックして、新規作成したOAuth2プロバイダオブジェクトを保存してください。 ## 3.3. SMTPサーバ型/メールチャネル型オブジェクトを作成する ### 3.3.1. SMTPサーバ型オブジェクトの作成 SMTPサーバ型オブジェクトの場合、以下の項目を設定する必要があります。 | 項目名 | 内容 | 備考 | | --- | --- | --- | | ホスト名 | smtpサーバのホスト名 | GMailは`smtp.gmail.com`、Office365は`smtp.office365.com` | | ユーザー名 | メールサービスのユーザアカウント名 | パスワードは入力不要 | | SSL使用 | SSL接続するかどうか | GMail では SSL/TLS どちらかの使用が必須。TLSとの同時使用は不可 | | TLS使用 | TLS接続するかどうか | GMail では SSL/TLS どちらかの使用が必須。Office365 では TLSの使用が必須。SSLとの同時使用は不可 | | OAuth2使用 | OAuth2接続するかどうか。チェックする | | | OAuth2プロバイダ | メールサービスに対応するプロバイダを選択する | 3.2. で作成したOAuth2プロバイダオブジェクトを設定する | ### 3.3.2. メールチャネル型オブジェクトの作成 メールチャネル型オブジェクトの場合、以下の項目を設定する必要があります。 | 項目名 | 内容 | 備考 | | --- | --- | --- | | ホスト名 | IMAP/POPサーバのホスト名 | GMailは`imap.gmail.com`または`pop.gmail.com`、Office365は`outlook.office365.com` | | ユーザー名 | メールサービスのユーザアカウント名 | パスワードは入力不要 | | SSL | SSL接続するかどうか。チェックする | GMail/Office365 では暗号化接続が必須 | | OAuth2使用 | OAuth2接続するかどうか。チェックする | | | OAuth2プロバイダ | メールサービスに対応するプロバイダを選択する | 3.2. で作成したOAuth2プロバイダオブジェクトを設定する | ### 3.3.3. 承認フローを開始する SMTPサーバ/メールチャネル型オブジェクトの表示画面から、Oauth2使用の欄の右横にある「承認フローを開始」ボタンをクリックして、承認フローを開始します。(このボタンはOAuth2使用時で、かつ、OAuth2プロバイダが選択されている時のみ有効化されます) ![image.png](https://image.docbase.io/uploads/185e9780-6179-4d0d-9ed8-591e33d5f011.png =WxH) ウィンドウがポップアップするので、ログインしてから、メールアクセスの許可を行ってください。ユーザーが承認を行うと、Komipraはトークンエンドポイントにアクセスしてトークンを取得します。取得に成功するとKomipraの画面表示は(SMTPサーバの場合)以下のようになります。メールチャネルの場合も同様に表示されます。 ![\_root\_smtp \_ Kompira - Google Chrome 2022\_08\_08 10\_29\_51.png](https://image.docbase.io/uploads/4c8e58ba-6c37-45d3-a87e-c56c4537a1ad.png =WxH) トークン有効期限が新たに表示されることを確認してください。 取得したトークンは、「トークン消去」ボタンをクリックして削除することも可能です。 #### ※ リダイレクトに失敗した場合 上記手順にて、ユーザーが承認後、リダイレクトに失敗した場合は、ポップアップウィンドウのアドレスバーに表示されているURLをコピーして、Kompiraの画面上に表示されているダイアログのリダイレクトURL入力欄にペーストしてから、「提出」ボタンをクリックしてください。 (リダイレクトURLを https://localhost に設定した場合はリダイレクトに失敗します) ![スクリーンショット (7).png](https://image.docbase.io/uploads/31e1e05a-6374-4358-bbd6-07fa3398968b.png =WxH)