---
schema_version: "1"
id: 0f081f0d923016fb4c590e80e60cdbe40c86bfa82e8e0ccbb8bbe830ef54908e
title: OAuth 対応コネクタまたはモジュールの設定
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-sdk/1.1/oauth-configuring.md
canonical_url: https://docs.mulesoft.com/jp/mule-sdk/1.1/oauth-configuring
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 614258623310150884b5bbc1f9f5b8879d179c5b340bff9eea53524f0361cadf
description: MuleSoft Documentation Site
release: "1.1"
latest: false
---
# OAuth 対応コネクタまたはモジュールの設定

ユーザーが OAuth 対応コネクタやモジュールをどのように使用できるかも重要です。SDK は OAuth プロトコルの複雑さを可能な限り隠しますが、OAuth ダンスなどは隠せません。この問題に対して SDK は、すべての OAuth Module の使用方法を標準化して、ユーザーエクスペリエンスを簡素化することに努めています。

このセクションでは、ユーザーがモジュールを使用するための手順について説明します。

## [](#合成パラメーター)合成パラメーター

接続プロバイダーで明示的に定義されているすべての設定に加えて、SDK はいくつかのパラメーターを追加して、適切な動作を挿入します。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">パラメーター名</th>
<th class="tableblock halign-left valign-top">必須</th>
<th class="tableblock halign-left valign-top">式</th>
<th class="tableblock halign-left valign-top">デフォルト値</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>resourceOwnerId</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">SUPPORTED</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ユーザーは、関連付けられているアクセストークンと更新トークンを所有するテナントの ID を指定することでマルチテナントをサポートできます。認証ダンスを実行すると、この値によって取得されているトークンの ID が提供されます。コンポーネントで新しい接続が必要な場合は、使用するデフォルトのオーナー ID として使用されます。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>consumerKey</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">はい</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">NOT_SUPPORTED</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">サービスプロバイダーに登録されている OAuth ​<code>consumerKey</code>​。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>consumerSecret</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">はい</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">NOT_SUPPORTED</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">サービスプロバイダーに登録されている OAuth ​<code>consumerSecret</code>​。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>authorizationUrl</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">NOT_SUPPORTED</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>`@AuthorizationCode</code>​ アノテーションで提供されている値。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">サービスプロバイダーの認証 URL。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>accessTokenUrl</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">NOT_SUPPORTED</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>@AuthorizationCode</code>​ アノテーションで提供されている値。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">サービスプロバイダーのアクセストークン URL。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>state</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">REQUIRED</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">OAuth ダンスの開始時に送信し、トークンコールバックによってサービスプロバイダーから返される文字列値。ダンスの開始とトークンのコールバックを相関させるために使用します。この属性の最も一般的なユースケースはマルチテナントです。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>scope</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">NOT_SUPPORTED</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>@AuthorizationCode</code>​ アノテーションで提供されている値。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">OAuth ダンス時に要求する OAuth スコープ。指定しない場合、デフォルトのアノテーションの範囲になります。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>listenerConfig</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">はい</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">NOT_SUPPORTED</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アクセストークンコールバックエンドポイントをキャッチするリスナーの作成に使用する ​<code>&lt;http:listener-config /&gt;</code>​ への参照。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>callbackPath</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">はい</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">NOT_SUPPORTED</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アクセストークンコールバックエンドポイントのパス。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>authorizePath</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">はい</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">NOT_SUPPORTED</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">OAuth ダンスをトリガーするローカル HTTP エンドポイントのパス。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>externalCallbackUrl</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">NOT_SUPPORTED</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">コールバックエンドポイントがプロキシの背後にあるか、直接 URL 以外でアクセスする必要がある場合、このパラメーターを使用して OAuth プロバイダーに、コールバックへのアクセスに使用すべき URL を指示します。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>resourceOwnerId</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">YES</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">SUPPORTED</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">各コンポーネントが他を参照しない場合に使用する必要がある ​<code>resourceOwnerId</code>​。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>objectStore</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">NOT_SUPPORTED</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">各リソースオーナー ID のデータの保存に使用するオブジェクトストアへの参照。指定しない場合、Runtime は自動的にデフォルトのオブジェクトストアをプロビジョニングします。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>before</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">NOT_SUPPORTED</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">OAuth ダンスを開始する直前に実行するフローの名前 (​<a href="#before_flow">事前フロー</a>​を参照)。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>after</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">NOT_SUPPORTED</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">なし</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>accessToken</code>​ が受信された直後に実行するフローの名前 (​<a href="#after_flow">事後フロー</a>​を参照)。</p></td>
</tr>
</tbody>
</table>

## [](#式の使用について)式の使用について

上記の表には、式を受け入れる多くの合成パラメーターが示されています。式を使用することで、通常のパラメーターで式を使用するのと同じ効果が得られ、動的なパラメーター設定を可能にします。

## [](#oauth-接続-dsl)OAuth 接続 DSL

生成される DSL は次のようになります。

```xml
<sfdc:config name="salesforce">
    <sfdc:oauth-connection display="PAGE" immediate="FALSE" prompt="CONSENT">
        <sfdc:oauth-authorization-code consumerKey="${sfdc.consumerkey}" consumerSecret="${sfdc.consumersecret}" authorizationUrl="http://..."
accessTokenUrl="http://..."/
localAuthorizationUrl="http://localhost:8080/.." scope="this that and those" resourceOwnerId="#[ownerId]"
before="myBeforeFlow" after="myAfterFlow" />
        <sfdc:oauth-callback-config listenerConfig="myHttpListener" callbackPath="/callback" authorizePath="/authorize" />
        <sfdc:oauth-store-config objectStore="oauthObjectStore" />
</sfdc:config>
```

- 他のすべてのプロバイダーと同様に、通常パラメーターと OAuth パラメーターはすべて接続プロバイダーレベルで示されています。
- 認証コード許可種別に関連したパラメーター (​`consumerKey`​、​`consumerSecret`​、​`authorizationUrl`​、​`accessTokenUrl`​、​`localAuthorizationHost`​、​`localAuthorizationPort`​、​`localAuthorizationPath`​、​`before`​、​`after`​、​`scope`​、​`defaultResourceOwnerId`​) は、​`<oauth-authorization-code>`​ という子要素に配置されます。
- コールバックに関連したパラメーターは、​`<oauth-callback-config>`​ という子要素に配置されます。
- オブジェクトストアに関連したパラメーターは、​`<oauth-store-config>`​ という子要素に配置されます。

## [](#ダンス前後のカスタムロジック)ダンス前後のカスタムロジック

OAuth ダンスを開始する直前やダンスが完了した直後に、エンドユーザーが何らかのランダムロジックを実行する必要が生じることがよくあります。たとえば、指定されたオーナー ID が正常にオンボードされたことを外部システムに通知したり、活動ログを保存したり、といったユースケースです。

認証プロセスは、自動的に作成されるエンドポイントをヒットすることでトリガーされるため、​`<oauth-authorization-code>`​ 子要素には ​`before`​ パラメーターと ​`after`​ パラメーターがあります。

これらの省略可能なパラメーターは、OAuth ダンスの前または後に呼び出す ​`<flow>`​ の名前を指定します。

### [](#before_flow)事前フロー

事前フローは、OAuth ダンスが開始される直前に実行されます。フローに送信されるイベントのペイロードは、​`AuthorizationCodeRequest`​ のインスタンスであり、次のような不変の POJO となります。

```java
public interface AuthCodeRequest {

  /**
   * @return The id of the user being authenticated
   */
  String getResourceOwnerId();

  /**
   * @return The scopes that were requested
   */
  Optional<String> getScopes();

  /**
   * @return The OAuth state that was sent
   */
  Optional<String> getState();

  /**
   * @return The external callback url that the user configured or {@link Optional#empty()} if none was provided
   */
  Optional<String> getExternalCallbackUrl();
}
```

ユーザーは、必要に応じてカスタムロジックをこのフローで自由に実行できます。特に、フロー変数を設定するのに便利です (「​[事後フロー](#after_flow)​」参照)。

### [](#after_flow)事後フロー

事後フローは、アクセストークンを受け取って格納した直後に実行されます。このフローは、事前フローの結果に相当するイベント (事前フローが定義されていない場合は空のイベント) で実行されますが、ペイロードは ​`ConnectionProvider`​ に挿入されたのと同じ ​`AuthorizationCodeState`​ オブジェクトに置換されます。ただし、設定されている変数はそのまま残ります (事前フローが定義されていない場合は空になる)。

## [](#カスタム-objectstore-の設定)カスタム ObjectStore の設定

取得したアクセストークンは ​`ObjectStore`​ に保存されます。デフォルトでは、SDK はトークンをアプリケーションのデフォルトストアに保存しますが、ユーザーは次のようにカスタムオブジェクトストアを定義することもできます。

```xml
<os:object-store name="tokenStore" (1)
   entryTtl="1"
   entryTtlUnit="HOURS"
   maxEntries="100"
   persistent="true"
   expirationInterval="30"
   expirationIntervalUnit="MINUTES" />

<sfdc:config name="salesforce">
    <sfdc:oauth-connection display="PAGE" immediate="FALSE" prompt="CONSENT">
        <sfdc:oauth-authorization-code consumerKey="${sfdc.consumerkey}" consumerSecret="${sfdc.consumersecret}"
        authorizationUrl="http://..." accessTokenUrl="http://..."/
        localAuthorizationUrl="http://localhost:8080/.." />
        <sfdc:oauth-callback-config listenerConfig="myHttpListener" callbackPath="/callback" authorizePath="/authorize" />
        <sfdc:oauth-store-config objectStore="tokenStore" /> (2)
</sfdc:config>
```

<table><tbody><tr><td><i class="conum" data-value="1"></i><b>1</b></td><td>カスタムストアを定義します。</td></tr><tr><td><i class="conum" data-value="2"></i><b>2</b></td><td>モジュールの設定からそのストアを参照します。</td></tr></tbody></table>

## [](#次のステップ)次のステップ

[OAuth 対応コネクタまたはモジュールでの OAuth ダンスの実行](https://docs.mulesoft.com/jp/mule-sdk/1.1/oauth-dance)