intra-mart Accel Platform セットアップガイド 第46版 2024-04-01

11.5. IM-LogicDesigner のメール受信タスクで OAuth2.0 アクセストークン を使用する

IM-LogicDesigner のタスクを利用して、メールサーバからメールを受信できます。
IM-LogicDesigner ではIMAP、POP3を利用したメッセージ操作が可能です。
タスクは以下を参照してください。

11.5.1. アクセストークンの発効

アクセストークンをIMAP、POP3認証で利用するためには、OAuthプロバイダ設定でプロバイダ情報を登録し、外部連携アプリケーションで連携の許可を行って、アクセストークンを発効する必要があります。

11.5.1.1. サービスの設定

11.5.1.1.1. メールサーバに Gmail を利用する場合の設定

OAuth認証に必要な関連サービスの準備を行います。
本項の内容は Google Cloud Platform 管理者 向けの作業です。
11.5.1.1.1.1. プロジェクトを作成する
Google Cloud Platform の管理コンソールから OAuth認証 に必要な情報をプロジェクトとして登録します。
  1. 以下のURLから Google Cloud Platform の管理コンソールに Google Cloud Platform 管理者ユーザ でサインインします。

  2. サイドメニューから「IAM と管理」 - 「プロジェクトを作成」をクリックします。

  3. 以下を入力または選択して「作成」をクリックします。

  • プロジェクト名に任意の名称を入力

  • 場所に任意のフォルダを選択

    ../../../_images/create_project_01.png
  1. 以上でプロジェクトの作成は完了です。
11.5.1.1.1.2. Gmail API を有効にする
作成したプロジェクトで Gmail API を利用できるようにします。
  1. 作成したプロジェクトが選択されていることを確認し、サイドメニューから「API とサービス」 - 「ライブラリ」をクリックします。

    ../../../_images/enable_gmail_api_01.png
  2. API ライブラリから Gmail API をクリックします。

    ../../../_images/enable_gmail_api_02.png
  3. 「有効にする」ボタンをクリックし、 Gmail API を有効にします。

    ../../../_images/enable_gmail_api_03.png
  4. 以上で作成したプロジェクトで Gmail API が利用できます。

11.5.1.1.1.3. 認証情報を作成する
OAuth認証に必要な「OAuth 同意画面」の設定と「OAuth クライアントID」の作成を行います。
  1. サイドメニューから「認証情報」をクリックします。

    ../../../_images/authentication_01.png
  2. 「同意画面を構成」をクリックします。

    ../../../_images/authentication_02.png
  3. 任意の「User Type」を選択し、「作成」をクリックします。

    ../../../_images/authentication_03.png
  4. 以下を入力して「保存して次へ」をクリックします。

    • アプリ情報に任意の名称、メールアドレス、ロゴを入力
    • アプリのドメインに任意のドメイン情報を入力
    • デベロッパーの連絡先情報に任意のメールアドレスを入力
    ../../../_images/authentication_04.png
  5. 「スコープを追加または削除」をクリックし、 Gmail API をスコープに追加します。
    利用用途にあわせてスコープを選択してください。
    ../../../_images/authentication_05.png
  6. スコープを追加したら、「保存して次へ」をクリックします。

  7. 「ADD USERS」をクリックし接続テストを行うユーザを追加し、「保存して次へ」をクリックします。
    ../../../_images/authentication_06.png
  8. 以上で、OAuth 同意画面の設定は完了です。次に OAuth クライアントID を作成します。

  9. サイドメニューから「認証情報」をクリックします。

  10. 「認証情報を作成」をクリックし、「OAuth クライアント ID」を選択します。

    ../../../_images/authentication_07.png
  11. 以下を入力または選択して「作成」をクリックします。

    • アプリケーションの種類に「ウェブアプリケーション」を選択
    • 名前に任意の名称を入力
    • 承認済みの JavaScript 生成元に intra-mart Accel Platform のベースURL を入力
    • 承認済みのリダイレクト URI に ベースURL + /oauth/redirect を入力
    ../../../_images/authentication_08.png
  12. 以上で認証情報の作成が完了です。

    以下の内容は intra-mart Accel Platform システム管理者 が環境構築を行う際に利用します。 「JSONをダウンロード」で情報をダウンロードできます。

    • クライアントID ( client-id として利用します)
    • クライアントシークレット ( client-secret として利用します)
    ../../../_images/authentication_09.png

11.5.1.1.2. メールサーバに Exchange Online を利用する場合の設定

OAuth認証に必要な関連サービスの準備を行います。
本項の内容は Microsoft Azure 管理者 向けの作業です。
11.5.1.1.2.1. アプリケーションを登録する
Microsoft Azure の管理ポータルから OAuth認証 に必要な情報をアプリケーションとして登録します。
  1. 以下のURLから Microsoft Azure の管理ポータルに Microsoft Azure 管理者ユーザ でサインインします。

  2. サイドメニューから「Microsoft Entra ID」をクリックします。

  3. 現在のテナントが「 OAuth認証を利用する組織のテナント」ではない場合は「テナントの切り替え」を行います。

  4. 「概要」のサイドメニュー「管理」の「アプリの登録」をクリックします。

  5. 「新規登録」をクリックします。

  6. 以下を入力または選択して「登録」をクリックします。

    • 名前に任意の名称を入力
    • サポートされているアカウントの種類に「任意の組織ディレクトリ内のアカウント(任意の Microsoft Entra ID テナント - マルチテナント )」を選択
    • リダイレクト URI に「Web」を選択し、 intra-mart Accel Platform の ベースURL + /oauth/redirectを入力
    ../../../_images/register_01.png
  7. 以上でアプリケーションの登録は完了です。

    以下の内容は intra-mart Accel Platform システム管理者 がプロバイダ情報を設定する際に利用します。

    • アプリケーションID ( client-id として利用します)
    • ディレクトリID ( authz-end-pointtoken-end-point のテナントとして利用します)
    ../../../_images/register_02.png
11.5.1.1.2.2. アプリケーションを設定する
Microsoft Azure の管理ポータルから登録したアプリケーションの構成を変更します。
  1. 先程登録したアプリの「管理」の「APIのアクセス許可」をクリックします。

  2. 「アクセス許可の追加」をクリックします。

    ../../../_images/permissions_01.png
  3. 「 Microsoft Graph 」をクリックします。

    ../../../_images/permissions_02.png
  4. 「アプリケーションに必要なアクセス許可の種類」の「委任されたアクセス許可」をクリックします。

    ../../../_images/permissions_03.png
  5. offline_access と、利用用途にあわせ IMAP.AccessAsUser.All または POP.AccessAsUser.All を選択し、「アクセス許可の追加」をクリックします。

    ../../../_images/permissions_04_2.png
    ../../../_images/permissions_04_3.png
    ../../../_images/permissions_04_4.png

    コラム

    「APIアクセス」の「アクセスの有効化」にて「委任されたアクセス許可」におけるメール操作の許可設定についての詳細は Microsoft社 の以下のドキュメントを参照してください。

  6. 「管理」の「証明書とシークレット」をクリックします。

  7. 「クライアント シークレット」の「新しいクライアント シークレット」をクリックします。

    ../../../_images/secret_01.png
  8. intra-mart Accel Platform からアクセスする際に必要なキーを生成します。

    以下を入力または選択して「追加」をクリックします。

    • 説明に任意のキーの説明を入力
    • 有効期間に任意のキーの有効期限を選択
    ../../../_images/secret_02.png

    以下の内容は intra-mart Accel Platform システム管理者 がプロバイダ情報を設定する際に利用します。

    • クライアントシークレット値( client-secret として利用します)

    注意

    キーは設定の保存後に一度のみ表示されます。移動前にキーの表示内容を退避させてください。

    ../../../_images/secret_03.png

    コラム

    有効期限が切れた場合は、上記の手順でキーを再発行する必要があります。
  9. 以上でアプリケーションの設定は完了です。

11.5.1.2. プロバイダ情報を設定する

  1. IM-Juggling プロジェクトの「追加機能」 - 「外部システム連携機能」 - 「 OAuth クライアント 」モジュールを選択します。

    ../../../_images/iap_module_01.png
  2. 「設定ファイル」タブを開き、「 OAuth クライアント 」 - 「メールサーバOAuth2認証設定」を選択して「出力」ボタンをクリックします。

    ../../../_images/iap_module_02.png
  3. 「メールサーバOAuth2認証設定」を利用するサービスにあわせて設定します。

    • Gmail API を利用する場合
      Gmail API を利用する場合は設定ファイルの以下の部分のコメントアウトを外し、各項目の設定を行って保存します。
        <oauth-provider id="Please_input_your_ID">
          <provider-type>extra</provider-type>
          <name message-cd="CAP.Z.IWP.OAUTHCLIENT.GMAIL.XOAUTH.NAME">Gmail API</name>
          <description message-cd="CAP.Z.IWP.OAUTHCLIENT.GMAIL.XOAUTH.DESCRIPTION">It is allow the use of the Gmail API.</description>
          <icon-path>im_oauth_client/images/gmail.png</icon-path>
          <oauth-config>
            <authz-end-point>https://accounts.google.com/o/oauth2/auth</authz-end-point>
            <token-end-point>https://oauth2.googleapis.com/token</token-end-point>
            <client-id>[Please input your application's Client ID]</client-id>
            <client-secret>[Please input your application's Client Secret]</client-secret>
            <scope>https://mail.google.com/</scope>
          </oauth-config>
          <extra-config>
            <parameter name="access_type">offline</parameter>
          </extra-config>
        </oauth-provider>
      
      oauth-provider@id 任意のIDを設定します。
      client-id Google Cloud Platform で作成したプロジェクトの認証情報のクライアントIDを設定します。
      client-secret Google Cloud Platform で作成したプロジェクトの認証情報のクライアントシークレットを設定します。
      scope
      利用用途にあわせて必要に応じて変更します。
      詳しくは Gmail scopes を参照してください。
  • Exchange Online を利用する場合
    Exchange Online を利用する場合は設定ファイルの以下の部分のコメントアウトを外し、各項目の設定を行って保存します。
      <oauth-provider id="Please_input_your_ID">
        <provider-type>standard</provider-type>
        <name message-cd="CAP.Z.IWP.OAUTHCLIENT.EXCHANGE.NAME">Exchange Online Provider</name>
        <description message-cd="CAP.Z.IWP.OAUTHCLIENT.EXCHANGE.DESCRIPTION">It is allow the use of Exchange Online.</description>
        <icon-path>im_oauth_client/images/microsoft_exchange_48.png</icon-path>
        <oauth-config>
          <authz-end-point>https://login.microsoftonline.com/[Please input your tenant]/oauth2/v2.0/authorize</authz-end-point>
          <token-end-point>https://login.microsoftonline.com/[Please input your tenant]/oauth2/v2.0/token</token-end-point>
          <client-id>[Please input your application's Client ID]</client-id>
          <client-secret>[Please input your application's Client Secret]</client-secret>
          <scope>offline_access [Please input your application's scope. See : https://docs.microsoft.com/ja-jp/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth#get-an-access-token]</scope>
        </oauth-config>
      </oauth-provider>
    
    oauth-provider@id 任意のIDを設定します。
    authz-end-point Microsoft Azure で作成したアプリケーションのディレクトリIDを設定します。
    token-end-point Microsoft Azure で作成したアプリケーションのディレクトリIDを設定します。
    client-id Microsoft Azure で作成したアプリケーションのアプリケーションIDを設定します。
    client-secret Microsoft Azure で作成したアプリケーションの認証情報のクライアントシークレット値を設定します。
    scope
    利用用途にあわせて設定します。
    詳しくは アクセス許可のスコープの文字列 を参照してください。
セットアップ時の設定は以上です。

11.5.1.3. 連携許可を行う

メール操作タスクでアクセストークンを利用するには、操作対象となるユーザ毎に、セットアップ後アクセストークンを発行する必要があります。
「外部連携アプリケーション」より、連携の許可を行うことで、アクセストークンが発行されます。
  1. メール操作の対象ユーザで intra-mart Accel Platform にログインしてください。

  2. ユーティリティメニューより、「個人設定」-「外部連携アプリケーション」を選択します。

    ../../../_images/provider_menu.png
  3. プロバイダ情報を設定する」で作成したプロバイダ情報の「許可」をクリックします。

    ../../../_images/provider_01.png
  4. アプリケーションの認証画面に遷移します。サインイン、および許可を行ってください。

    ../../../_images/provider_02.png
  5. 以下の画面が表示されれば連携が完了です。

    ../../../_images/provider_03.png

    コラム

    アクセストークンの期限切れなどで再発行を行う場合は、「解除」で一度連携を解除すると、「許可」がクリックできます。

11.5.1.4. IM-LogicDesigner メール操作タスク(IMAPメッセージの取得)の設定例

以下はIMAPを利用したメール取得の設定例です。
  1. 連携許可を行ったユーザで 「サイトマップ」→「LogicDesigner」→「フロー定義一覧」に遷移します。
    「LogicDesigner」の操作には「LogicDesigner管理者」のロールが必要です。
  2. 「ロジックフロー新規作成」をクリックし、以下のタスクを使用したフローを作成します。
    取得したメッセージを格納する変数も用意します。
    ../../../_images/logic_01.png
    • アクセストークンの取得タスクと、IMAPメッセージの取得タスクに渡す値を入出力設定で定義しています。
    ../../../_images/logic_02.png
    • IMAPメッセージの取得タスクの返却値を格納する変数を変数設定で定義しています。
    ../../../_images/logic_03.png
    • アクセストークンの取得タスクのマッピングで入力値を渡しています。
    ../../../_images/logic_04.png
    • IMAPメッセージの取得タスクのマッピングで、アクセストークンの取得タスクの返却値と、入力値を渡しています。
    ../../../_images/logic_05.png
    • IMAPメッセージの取得タスクからの返却値を、変数操作で変数「temp」にセットしています。
    ../../../_images/logic_06.png
    • 変数「temp」を、変数操作で変数「result」にプッシュしています。
    ../../../_images/logic_07.png
  3. 「デバッグ」をクリックしてデバッグ画面を呼び出します。

  4. 「実行」をクリックして、入力値を設定画面を呼び出し、「実行」します。

    ../../../_images/logic_08.png
    providerId プロバイダ情報を設定する」で設定した id を設定します。
    providerType プロバイダ情報を設定する」で設定した provider-type を設定します。
    authentification true を設定します。
    user 連携許可を行う」でサインインしたユーザを設定します 。
    folder IMAPメッセージの取得タスクfolder から目的に合った値を設定します。
    seen IMAPメッセージの取得タスクseen から目的に合った値を設定します。
    host
    サービスのIMAP設定に合わせて設定します。
    Gmail Check Gmail through other email platforms を参照してください。
    Exchange Online POP3 と IMAP4 を参照してください。
    port
    サービスのIMAP設定に合わせて設定します。
    Gmail Check Gmail through other email platforms を参照してください。
    Exchange Online POP3 と IMAP4 を参照してください。
    ssl
    サービスのIMAP設定に合わせて設定します。
    Gmail Check Gmail through other email platforms を参照してください。
    Exchange Online POP3 と IMAP4 を参照してください。
    starttls
    サービスのIMAP設定に合わせて設定します。
    Gmail Check Gmail through other email platforms を参照してください。
    Exchange Online POP3 と IMAP4 を参照してください。
  5. 終了後、変数「result」にメッセージが格納できれば成功です。

    ../../../_images/logic_09.png