メインコンテンツへスキップ
デフォルトでは、Process skill の Input activity を使用してメールサービスからドキュメントのインポートを設定するユーザーは、基本的な IMAP サーバー認証しか利用できません。OAuth 2.0 プロトコルを介して Google および Microsoft のメールサービスによる認証を有効にするには、次の操作が必要です。
  1. Google Cloud Platform および/または Azure portal 上でアプリケーションを登録します。
  2. これらのアプリケーション用のアカウント認証情報(Client ID と Client secret)を生成します。
  3. 生成した認証情報を Consul に設定します。
これらの手順は、Vantage をインストールする前後のどちらでも実行できます。

Google にアプリケーションを登録する

アプリケーションを作成するには、Google アカウントが必要です。

Google Cloud Platform でプロジェクトを作成する

  1. Google Cloud Platform の New Project ページにアクセスします。
  2. プロジェクト名を指定し、Create をクリックします。
プロジェクト名 field が表示されている Google Cloud Platform の New Project ページ
  1. プロジェクトが作成されたことを示す通知が表示されるまで待ちます。
プロジェクト作成完了の確認通知が表示されている Google Cloud Platform の通知

アプリケーションの設定

  1. Google Cloud Console に移動し、該当するプロジェクトを選択します。
Google Cloud Console のプロジェクトセレクタードロップダウン
  1. 画面左側のメニューで APIs & Services > OAuth consent screen を選択します。
APIs & Services と OAuth consent screen オプションが表示された Google Cloud Console のメニュー
  1. External ユーザータイプを選択し、Create をクリックします。
  2. アプリケーション名を指定します。User support email のドロップダウンリストで、自分の Gmail アドレスを選択します。
アプリ名とユーザーサポートメールのフィールドを含む OAuth consent screen のアプリ情報フォーム
  1. ページ下部の Developer contact information セクションで開発者のメールアドレスを指定し、Save and continue をクリックします。
メールアドレスのフィールドを含む Developer contact information セクション
  1. Add or remove scopes をクリックします。右側に Update selected scopes ダイアログが開きます。
  2. 次のテキストをコピーして、ダイアログ下部の Manually add scopes フィールドに貼り付け、Add to table をクリックします:
openid https://www.googleapis.com/auth2/userinfo.email https://www.googleapis.com/auth2/userinfo.profile https://mail.google.com/
スコープを手動で選択することもできます。次のスコープを選択する必要があります。
  • openid
  • https://mail.google.com/
  • ../auth2/userinfo.email
  • ../auth2/userinfo.profile
  1. Update をクリックします。これにより Update selected scopes ダイアログが閉じ、選択したスコープが表示されます。
Update selected scopes dialog showing the required OAuth scopes
  1. 画面下部の Save and continue をクリックします。
  2. Test users ページの設定をスキップして Summary ページに進むために、再度 Save and continue をクリックします。
Summary ページでは、アプリケーション、メールアドレス、および設定された権限に関する情報が表示されます。

アカウントの認証情報の作成

  1. 画面左側のメニューで Credentials を選択します。
  2. + Create credentials をクリックし、OAuth client ID を選択します。
OAuth client ID オプションが表示されている Create credentials ドロップダウンメニュー
  1. Web application タイプを選択します。
Application type ドロップダウンで Web application が選択されている Create OAuth client ID フォーム
  1. Authorized redirect URIs セクションで + Add URI をクリックします。
Add URI ボタンがある Authorized redirect URIs セクション
  1. 表示されるフィールドに、リダイレクト URI を指定します。
https://<Vantage ホスト名>/connectors-tokens-callback.html
Vantage のコールバック URL と CREATE ボタンが入力された Redirect URI フィールド
  1. Create をクリックします。
表示されるポップアップダイアログボックスに、Client IDClient secret の値が表示されます。 Client ID と Client secret の値が表示された OAuth クライアント作成ダイアログ このデータは、Vantage で tokenmanagement サービスを設定する際に必要です。すぐに保存するか、後で APIs & Services > Credentials にアクセスし、作成した OAuth 2.0 クライアント識別子を選択してコピーすることもできます。

公開と検証

アプリケーションの公開状況は、APIs & Services > OAuth consent screen セクションに表示されます。 公開ステータスが Testing で、Publish App ボタンが表示されている OAuth consent screen Testing ステータスのアプリケーションは、テスターのリストに追加されたユーザーだけが利用できます。アプリケーションを公開することで、Google アカウントを持つすべてのユーザーが利用できるようになります。 Publish app をクリックします。https://mail.google.com/ スコープにより、アプリケーションは機密なユーザーデータにアクセスできるようになります。そのため、アプリケーションの検証が必要であるというメッセージが表示されます。 アプリケーションを検証するには、次の情報を提供する必要があります。
  • アプリケーションのプライバシーポリシーへの公式リンク
  • アプリケーションを使用して Google ユーザーデータを取得する目的を示した YouTube 動画
  • 機密なユーザーデータへのアクセスが必要な理由を説明した、Google 宛ての文書
  • Google Search Console で検証済みのすべてのドメインの完全な一覧
Confirm をクリックします。アプリケーションのステータスが In Production に変更されます。 Prepare for verification ボタンも表示され、必要なすべての検証データを提供できるようになります。 ステータスが In Production で、検証に関する警告と Prepare for Verification ボタンが表示されている OAuth consent screen
アプリケーションが検証されるまでは、最大 100 人のユーザーしか利用できません。ユーザー数カウンタは OAuth consent screen セクションの下部にあり、プロジェクトの有効期間中にリセットすることはできません。
ユーザー上限 100 に対して 0 ユーザーが表示されている OAuth ユーザー上限の画面

Microsoft Azure でのアプリケーションの登録

アプリケーションを作成するには、アプリケーションの登録および編集を行う権限を持つ Azure Active Directory テナントが必要です。 Portal settings | Directories + subscriptions ページで正しいディレクトリに切り替えることができます。

アプリケーションの登録

  1. App registrations ページを開きます。
  2. New registration をクリックします。
  3. アプリケーション名を指定し、サポートするアカウントの種類を選択します。
Azure の「Register an application」フォームで、Name フィールドと Supported account types オプションを表示
アプリケーションで Multitenant タイプを選択した場合、そのアプリケーションは任意の Azure AD テナントのユーザーが利用できるようになります。このようなアプリケーションには検証が必要であり、この検証は Microsoft Partner Network の参加者のみが利用できます。参加者でない場合は、Single tenant を選択してください。これにより、アプリは自分の Azure AD テナント内のユーザーにのみ利用可能となります。
  1. Redirect URI セクションで、Web プラットフォームを選択し、リダイレクト URI を指定します。
https://<Vantage ホスト名>/connectors-tokens-callback.html
Web プラットフォームが選択された Azure の Redirect URI セクション
  1. Register をクリックします。

アプリケーションのアクセス許可の設定

  1. API permissions タブに移動します。
API permissions メニューオプションがハイライト表示された Azure ポータルのサイドバー
  1. Add permission をクリックします。
  2. 表示されたダイアログで Microsoft Graph セクションを選択します。
Microsoft Graph オプションがハイライト表示された Request API permissions ダイアログ
  1. Delegated permissions を選択します。
Delegated permissions オプションが選択されている Microsoft Graph permissions ダイアログ
  1. 次のアクセス許可を追加します。
    • email
    • IMAP.AccessAsUser.All
    • offline_access
    • openid
    • profile
  2. Add permissions をクリックします。ダイアログが閉じられ、選択したアクセス許可が表示されます。

クライアント シークレットの作成

  1. Authentication タブに移動します。
Azure portal sidebar showing Authentication menu option highlighted
  1. Implicit grant and hybrid flows セクションで、ID tokens (used for implicit and hybrid flows) を選択します。
Implicit grant and hybrid flows section with ID tokens checkbox
  1. 画面上部の Save をクリックします。
  2. Certificates & secrets タブに移動し、New client secret をクリックします。
Certificates & secrets tab showing New client secret button
  1. 表示されるダイアログ ボックスで、クライアント シークレットの名前と有効期限を指定します。
有効期限の上限は 24 か月です。
  1. Add をクリックします。ダイアログが閉じられ、新しいクライアント シークレットに関する情報が表示されます。
Value をコピーして保存しておくことが重要です。ページを閉じると、この値には再度アクセスできなくなります。この値は、Vantage で tokenmanagement サービスを構成する際に必要となります。
Client secrets list showing the secret Value column highlighted クライアント識別子も必要です。これは Overview タブの Application (client) ID フィールドからコピーできます。識別子の値の上にマウス カーソルを重ねると、コピー用のアイコンが表示されます。 Azure application Overview showing Application (client) ID field highlighted

アプリケーションの検証

アプリケーションを任意の Azure AD テナントのユーザーが利用できるようにするには、検証が必要です。単一の Azure AD テナントのアカウントのみを使用する場合は、検証は不要です。 Microsoft Partner Network の参加者のみが検証を受けることができます。
  1. Branding & properties タブを開きます。
Azure portal sidebar showing Branding & properties menu option highlighted
  1. Publisher domain フィールドにドメインが指定されていることを確認します。必要に応じて、Configure a domain をクリックしてドメインを設定します。
Azure Branding & properties page showing Publisher domain field with Update domain option
ドメイン名の横に表示される警告アイコンは、指定されたドメインを持つアプリケーションを検証できないことを意味します。Update domain をクリックして、Azure Active Directory テナントに関連する別の有効なドメインを指定します。あるいは、新しいドメインを検証します。
  1. Publisher verification セクションで MPN ID を指定し、Verify and save をクリックします。
MPN ID を追加するために必要な権限がない場合は、パブリッシャー検証の要件がすべて満たされていることを確認してください。
検証が成功すると、Publisher display name フィールドの横に適切なアイコンが表示されます。

資格情報を Consul に渡す

すでに Vantage がインストールされている場合、Microsoft や Google のメールサービス認証用に生成されたアカウント資格情報を手動で入力するには、Consul を使用する必要があります。 OAuth 2.0 プロトコルに固有の機能は、TokenManagement サービスに記載されています。
セットアップする前に、kubectl コマンドラインツールがインストールされていること、および Kubernetes クラスターに接続されていることを確認してください。
  1. 次のコマンドを実行して、Consul の Web インターフェースにアクセスします。
kubectl port-forward -n abbyy-infrastructure service/consul-ui 8500:80
Then navigate to http://localhost:8500/ui/dc1/kv/secret/.
  1. 開いた Key/Value タブで、該当する Vantage デプロイメント スコープを選択します。次に、vantage プロジェクトを選択します。
tokenmanagement がハイライトされたサービス一覧を表示している Consul の vantage プロジェクト
  1. tokenmanagement サービスを選択します。
oAuthClientConfiguration セクションを表示している Consul の tokenmanagement サービス
  1. oAuthClientConfiguration セクションに移動します。
google と microsoft のオプションを表示している Consul の oAuthClientConfiguration
  1. ユーザー データを指定したいサービス(google または microsoft)を選択します。
clientId と clientSecret キーを含む google サービスを表示している Consul の oAuthClientConfiguration セクション
  1. clientId キーを選択します。
  2. 先ほど保存した Client ID の値を入力フィールドにコピーして貼り付け、Save をクリックします。
Save ボタン付きの Consul clientId 値エディター
  1. clientSecret キーについても、手順 6 と 7 を繰り返します。
必要に応じて、別のメール サービスに対して手順 5 ~ 8 を繰り返します。
  1. 次のコマンドを実行して、tokenmanagement サービスを再起動します。
kubectl -n abbyy-vantage rollout restart $(kubectl -n abbyy-vantage get deployments -l app.kubernetes.io/component=tokenmanagement -o name)

クライアントシークレットの更新

クライアントシークレットの値はサーバー側でのクライアント識別に使用されるものであり、機密情報に該当します。セキュリティ上の理由から、このデータは定期的に更新する必要があります。Azure Active Directory などの一部のサービスでは、この種のデータの有効期間が制限されています。 新しいクライアントシークレットを作成したら、対応する Consul キーの値も更新する必要があります。
クライアントシークレットを更新すると、ユーザーは Document skill の Input アクティビティでメールサービスへの接続を一から再設定する必要があります。そうしないと、Vantage はメールボックスに接続してメールをインポートできなくなります。

Google でクライアント シークレットを更新する

  1. Google Cloud Console にアクセスし、対象のプロジェクトを選択します。
  2. 左側のメニューで APIs & Services > Credentials を選択します。
  3. OAuth 2.0 Client IDs セクションで、IMAP サーバーへの接続時の認証に使用しているクライアント ID を選択します。
  4. Reset secret をクリックします。
Reset Secret ボタンが表示されている Google Cloud OAuth クライアントの詳細
  1. ポップアップダイアログボックスで Reset をクリックします。これにより Client secret の値が更新され、以前の値が失効します。
  2. 認証情報を含む JSON ファイルをダウンロードします。あるいは、画面右側に表示されている Client secret の値をコピーします。
Download JSON ボタンと Client secret フィールドが表示されている Google Cloud OAuth クライアントの詳細

Microsoft Azure でクライアント シークレットを更新する

  1. App registrations ページを開き、IMAP サーバーによる認証に使用するアプリケーションを選択します。
Azure App registrations page showing Owned applications list with Example App
  1. Certificates & secrets タブを開き、New client secret をクリックします。
  2. 表示されるダイアログ ボックスで、クライアント シークレットの名前と有効期限を指定します。
  3. Add をクリックします。ダイアログが閉じられ、新しいクライアント シークレットに関する情報が表示されます。ページを閉じると再度参照できなくなるため、Value は必ずコピーして保存しておいてください。
  4. 現在のクライアント シークレットの有効期限がまだ切れていない場合は、それを削除して、新しいクライアント シークレットだけでクライアントを識別できるようにすることができます。

Consul でクライアントシークレットを更新する

Passing Credentials to Consul に記載されている手順に従います。ただし、手順 6 と 7(clientId 値のコピー)は実行しないでください。