カスタムドメインを利用してパブリックポータルを公開する

Stay hungry. Stay foolish. Your time is limited, so don't waste it living someone else's life.

カスタムドメインを利用してパブリックポータルを公開する

はじめに

独自ドメインを利用してパブリックポータルを公開する方法について説明する。今回は、独自ドメインを利用してAnypointPlatformのパブリックポータルの情報を取得するためにMuleアプリケーションにリバースプロキシ機能実装して利用する。

目次

下記の手順で構築する。

  1. Anypoint Platformに独自ドメインを登録する
  2. リバースプロキシを構築する
  3. カスタマーサポートにクッキー同意管理IDを設定する(実際の本番適応のみ)

手順説明

下記の公式ヘルプをベースに説明していく。

MuleSoft公式ヘルプ:独自ドメインの適応方法

1. Anypoint Platformに独自ドメインを登録する

独自ドメインを登録すると、AnypointPlatformのパブリックドメインのリソースパスが一部変更される。また、変更されないリソースのヘッダー項目[Access-Control-Allow-Origin]に独自ドメインが追加される。
前提は、リバースプロキシーはhttpsでアクセスできる必要がある。

アクセストークンを取得する。

独自ドメインを登録するために、APIのクライアント認証をするためのアクセストークンを取得する。

URL: POST https://anypoint.mulesoft.com/
Headers:
  Content-Type: application/x-www-form-urlencoded
Request:
  username: {UserID}
  password: {Password}

CSRFに関するエラーが出る場合は、下記のリンクを参考にしてCSRFのクッキーを削除する。

https://help.mulesoft.com/s/article/CSRF-Protection-execute-from-Postman

カスタムドメインを登録する。

Anypoint Platformに独自ドメインを登録する。
まず、組織ドメインを確認する。

HTTPメソッドのPUTで独自ドメインに更新する。更新した内容を確認する場合はGETでアクセスすることで、更新内容を確認できる。

URL: PUT https://anypoint.mulesoft.com/exchange/api/v2/portals/{domain}/domain
Headers: 
  Authorization: Bearer {Access_Token}
  Content-Type: text/plain
Request:
  {独自ドメイン}

2.リバースプロキシを構築する

サンプルソースは以下のリポジトリに格納した。

サンプルアプリケーション

Muleアプリケーションにリバースプロキシ機能を実装している。
実装内容は以下の通り。

  1. Listnerはhttpsを設定する。
  2. HostをリバースプロキシドメインからAnypointPlatformドメインに変更する。
  3. カスタムヘッダーを設定する。
  4. コンテンツと素材のリクエストパスを分けて設定する。
  5. レスポンスのヘッダーとステータスをリスナーのレスポンスに設定する。

3.カスタマーサポートにクッキー同意管理IDをリクエストする(実際の本番環境のみ)

Anypoint Platformでは機能クッキーを利用しているため独自ドメインを利用する場合は、カスタマーサポートに連絡してクッキー同意管理IDを取得し設定する。

さいごに

いかがだったでしょうか?
公式ヘルプでは、NGNXを使ってリバースプロキシを構築していますが、Muleアプリケーションでも利用できるのでぜひ試してみてください。
一つ補足説明があります。CDNから取得するDIN.woffがCROSエラーで取得できません。ただし、パブリックポータルの見出しで利用されていますが、日本語表記はブラウザの初期設定書体を利用しているため画面レイアウトの崩れ等はありませんでした。
では、