Flex Gateway新着情報
Governance新着情報
Monitoring API Managerイベント認証拡張機能を使用して、Mule イベントの認証データでクライアント ID プロパティを伝播できます。イベント認証拡張機能を使用してカスタムポリシーを開発および実装するには、次の手順を理解する必要があります。
提供されたユースケースに基づいてユースケースを評価します。
ProTeams は、ユーザーがチームやスポーツ活動を管理できるスポーツ管理アプリケーションです。ProTeams ユーザーは、他のチームとのチャットへの参加、エキシビションや親善試合の開催、トーナメントの日程の確認などのアクションをチームを代表して実行できます。
各チームの Anypoint Platform にはクライアントアプリケーションがあり、クライアント ID 適用ポリシーを使用してサイトへの要求を確認します。プレーヤーにはチーム管理タスクを非表示にするために、マネージャー用とプレーヤー用に別々の ID が作成されています。
チームオーナーとマネージャーは、必要に応じて特定のタスクでプレーヤーの代理を務めることができます。プレーヤーは、練習試合のセットアップやチームメンバーとのチャットメッセージの開始など、チームのタスクを実行することもできます。
すべてのユーザー ID はチームのクライアント ID にマップされているため、任意のユーザー ID で行われるすべてのトランザクションに伝播されます。クライアント ID が Mule イベントの認証データに挿入されると、Mule はクライアントアプリケーションの分析データを生成します。ProTeams はこのアプリケーション分析を使用して、アプリケーション内のチームトランザクションを確認します。
このプレーヤー ID とチームクライアント ID のマッピングを作成するには、チームオーナーが要求の userId
というヘッダーからユーザー ID を取得する新しいカスタムポリシーを開発する必要があります。ユーザー ID は、クエリパラメーターを使用して取得することもできます。その後、ポリシーでマッピングを実行します。
ProTeams はこの例を出発点として使用し、独自のマッピングロジックを追加します。
ProTeams は、最初にカスタムポリシーアーキタイププロジェクトを作成することで、カスタムポリシーを開発します。次に、アーキタイプを実行し、この例に示されている値を置き換えます。
次に、ディレクトリをワークスペースにコピーし、pom.xml
ファイル内の groupId
と artifactId
の値を独自の値と一致させます。
<groupId>_YOUR_GROUP_ID_</groupId>
を ProTeams 組織 ID (この場合は Group2234
) に置き換える。
<artifactId>set-authentication-policy<cd/artifactId>
を必要なアーティファクト ID (この場合は map-to-authentication-policy
) に置き換える。
さらに必要に応じて、バージョンや連動関係などの他の要素を追加または変更できます。
ProTeams はプロジェクトをセットアップした後に、API Manager で設定するポリシーの入力パラメーターを定義することから始めます。
次のコードスニペットは、ポリシー UI の YAML ファイルの例を示しています。
id: Map To Authentication
name: Map To Authentication
description: Maps input user identifier to the associated Client ID, and propagates it via the authentication data
category: Custom
type: custom
resourceLevelSupported: true
encryptionSupported: false
standalone: true
requiredCharacteristics: []
providedCharacteristics: []
configuration:
- propertyName: userIdExpression
name: User Identifier Expression
description: Mule Expression used to extract the user identifier value from API requests
type: expression
defaultValue: "#[attributes.headers['fks_user_id']]"
optional: false
sensitive: false
allowMultiple: false
この例では、YAML ファイルにはどの要求属性からユーザー ID を抽出するかを決定する 1 つの設定プロパティのみが含まれます。この設定プロパティは DataWeave 式項目です。
name
および description
パラメーターは、それぞれプロパティの表示タイトルと説明です。type
パラメーターは項目値が DataWeave 式である必要があることを示し、defaultValue
パラメーターはポリシーを設定するときに API Manager で推奨される項目値を指定します。optional
パラメーターは false
に設定され、この項目が必須であることを示します。
YAML ファイルのセットアップ方法についての詳細は、「YAML 設定ファイル」を参照してください。
ProTeams はポリシーの入力パラメーターを定義した後に、次の手順でポリシーの実装を開始できます。
イベント認証拡張機能は、Mule EE Nexus リポジトリにあります。この例の POM ファイルはリポジトリへの参照をすでに保持しており、releases-ee
というログイン情報の別名で設定されています。必要に応じて、この別名を変更できます。
リポジトリにアクセスするため、ProTeams は Maven 設定ファイルに対応するサーバーを追加する必要があります。
<servers>
<server>
<id>releases-ee</id>
<username>your_username</username>
<password>your_password</password>
</server>
</servers>
Maven settings.xml
ファイルに新しいサーバーを追加したら、ポリシーで特定のアクションを実行するために、ProTeams はイベント認証や HTTP ポリシートランスフォーム拡張機能などの連動関係を pom.xml
ファイルに追加します。
<dependencies>
<dependency>
<groupId>com.mulesoft.anypoint</groupId>
<artifactId>mule-event-authentication-extension</artifactId>
<version>${authenticationExtensionVersion}</version>
<classifier>mule-plugin</classifier>
</dependency>
<dependency>
<groupId>com.mulesoft.anypoint</groupId>
<artifactId>mule-http-policy-transform-extension</artifactId>
<version>${httpPolicyTransformVersion}</version>
<classifier>mule-plugin</classifier>
<exclusions>
<exclusion>
<groupId>org.mule.connectors</groupId>
<artifactId>mule-http-connector</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
Java で独自のコネクタを作成する方法についての詳細は、「Java 用 Mule SDK 入門」を参照してください。
カスタムポリシーを Exchange にアップロードするため、ProTeams は pom.xml
ファイルが組織用に適切に設定されていることを確認する必要があります。
ポリシーを Exchange にアップロードする前に、ProTeams は次のことを確認する必要があります。
一意の ID、および組織の Exchange ログイン情報のユーザー名とパスワードを使用して、Maven settings.xml
ファイルに新しいサーバーが作成されている。
URL が自分の地域と一致する。
警告: 同様のアクションを実行して独自のカスタムポリシーを作成する場合、テンプレートは米国地域に対応する URL を使用していることに注意してください。アカウントがこの地域に属していない場合は、この値を変更します。
リポジトリ ID が Maven 設定の ID と一致する。
name タグを使用して、そのリポジトリの別名を定義できます。
ポリシーを Exchange にアップロードする手順は、次のとおりです。
ポリシー pom.xml
ファイルに移動して distributionManagement` セクションを見つけます
。
<distributionManagement>
<repository>
<id>your_server_id</id>
<name>My Repository</name>
<url>${exchange.url}</url>
<layout>default</layout>
</repository>
</distributionManagement>
サーバー設定を確認したら、次のコマンドを使用して Exchange へのポリシーのアップロードを開始します。
> mvn deploy
これで、ProTeams が開発したカスタムポリシーが Exchange にアップロードされました。
次に、ProTeams はデフォルトポリシーを適用するのと同じ方法でカスタムポリシーを適用します。API Manager に移動すると、使用可能な新しいポリシーが表示され、設定して使用できます。
完全なカスタムポリシーの例を表示するには、Github リポジトリ 「Custom Policies Examples (カスタムポリシーの例)」を参照してください。