公開ポータルのバニティドメイン

このドキュメントには、バニティドメインを使用して組織の公開ポータルをセットアップする手順と必要な NGINX 設定が含まれています。

ドメインを登録する

公開ポータルドメインは、Exchange で登録する必要があります。公開ポータルのドメインを登録する手順は、次のとおりです。

  1. ルート組織で組織の管理者権限を持つ Anypoint Platform ユーザーアカウントからアクセストークンを取得します。

    ACCESS_TOKEN=$(curl https://anypoint.mulesoft.com/accounts/login -XPOST -d "username=YOUR_USERNAME&password=YOUR_PASSWORD" | jq -r ".access_token")
  2. アクセストークンを使用して、カスタムドメインを登録します。

    curl https://anypoint.mulesoft.com/exchange/api/v2/portals/YOUR_ORGANIZATION_DOMAIN/domain -XPUT -d your.custom.domain -H "content-type: text/plain" -H "authorization: bearer $ACCESS_TOKEN"
    この手順に従わないと、ポータルにログインできなかったり、認証が必要なアクションを実行できなくなったりします。

リバースプロキシをセットアップする

リバースプロキシを使用すると、ユーザーは MuleSoft サイトと同様にバニティドメインサイトにアクセスして操作できます。たとえば、​https://anypoint.mulesoft.com/exchange/portals/robo-cop/​ とまったく同じように ​https://developers.robocop.com/path/of/justice/​ にアクセスして操作できます。

これは、特定のドメインへの要求を Anypoint Platform に再転送する リバースプロキシ​を使用して達成できます。次のセクションでは、リバースプロキシを適切に実装するために必要な最小限の NGINX 設定ルールの例を示します。

Apache、コンテンツ配信ネットワーク (CDN) など、NGINX 以外のサーバーでリバースプロキシをセットアップできます。現在の Web サーバーの実装に必要な特定の設定は多少異なる可能性がありますが、ルールは同じ方法で実装する必要があります。

一般的な設定

ポータルのバニティドメイン設定用の基本リバースプロキシをセットアップするには、ルートマッピングとカスタムヘッダーをセットアップします。

ルートマッピング

shared​、​icons​、​exchange/api-console​、および ​node_modules​ の静的リソースルートマッピングをセットアップします。ポータルパスに関係なく、これらのルートはルートレベルにある必要があります。

例:

  • https://developers.robocop.com/shared​ から ​https://anypoint.mulesoft.com/shared​ へのルート。

  • https://developers.robocop.com/icons​ から ​https://anypoint.mulesoft.com/icons​ へのルート。

  • https://developers.robocop.com/node_modules​ から ​https://anypoint.mulesoft.com/node_modules​ へのルート。

  • https://developers.robocop.com/exchange/api-console​ から ​https://anypoint.mulesoft.com/exchange/api-console​ へのルート。

callback​ から ​https://anypoint.mulesoft.com/exchange/portals/YOUR_ORGANIZATION_DOMAIN/callback​ へのルート。

例:

  • https://developers.robocop.com/callback​ から ​https://anypoint.mulesoft.com/exchange/portals/robo-cop/callback​ へのルート。

すべてのポータルトラフィックを Anypoint Platform に転送します。これは、ポータルパスによって異なります。ポータルパスは任意のパスにすることができます。この例のポータルパスは ​path/of/justice/​ です。

例:

  • https://developers.robocop.com/path/of/justice/​ ​(およびこのパスの下位のすべてのルート)​ から ​https://anypoint.mulesoft.com/exchange/portals/robo-cop/​ へのルート。

カスタムヘッダー

上記の各ルートにヘッダーを追加します。

  • X-Forwarded-Path​ は、バニティドメインの公開ポータル URL のベースパスです (​/path/of/justice/​ など)。

    このパスは、スラッシュ (​/​) で開始して終了する任意のパスです。1 つのスラッシュ (​/​) で表されるルートパスにすることもできます。バニティドメインのポータルのベースパスは、anypoint.mulesoft.com ドメインのポータルのベースパスと一致している必要はありません。

  • X-Forwarded-Host​ は、公開ポータルのバニティドメインです (​developers.robocop.com​ など)。

NGINX の使用

location ~ /(shared|node_modules|icons|exchange/api-console) {
    proxy_set_header X-Forwarded-Host $http_host;
    proxy_set_header X-Forwarded-Path ${PUBLIC_PORTAL_PATH};

    proxy_pass ${ANYPOINT_BASE_URL};
}

location /callback {
    proxy_set_header X-Forwarded-Host $http_host;
    proxy_set_header X-Forwarded-Path ${PUBLIC_PORTAL_PATH};

    proxy_pass ${ANYPOINT_BASE_URL}/exchange/portals/${ORGANIZATION_DOMAIN}/callback;
}

location ${PUBLIC_PORTAL_PATH} {
    proxy_set_header X-Forwarded-Host $http_host;
    proxy_set_header X-Forwarded-Path ${PUBLIC_PORTAL_PATH};

    proxy_pass ${ANYPOINT_BASE_URL}/exchange/portals/${ORGANIZATION_DOMAIN}/;
}

次のようにセットアップします。

${PUBLIC_PORTAL_PATH}: Your custom path. Must end with a forward slash "/".
${ANYPOINT_BASE_URL}: Anypoint Platform URL for the desired region.
${ORGANIZATION_DOMAIN}: Your organization's domain in Anypoint Platform.

たとえば、Anypoint Platform ドメインが ​robo-cop​ の ​Robocop​ 組織公開ポータルを ​developers.robocop.com/path/of/justice/​ で実行するとします

${PUBLIC_PORTAL_PATH}: /path/of/justice/
${ANYPOINT_BASE_URL}: https://anypoint.mulesoft.com
${ORGANIZATION_DOMAIN}: robo-cop
サーバーは ​https​ を使用して実行する必要があります。

適切にセットアップすれば、​https://anypoint.mulesoft.com/exchange/portals/robo-cop/​ とまったく同じように ​https://developers.robocop.com/path/of/justice/​ にアクセスして操作できます。

バニティドメインを使用しない Exchange 公開ポータルでは、提供される ​Cookie 同意マネージャー​を使用することができます。

バニティドメインが設定されてサイトが機能するようになったら、カスタマーサポートに連絡して次の情報を提供し、Cookie 同意管理をアクティブ化します。

  • 組織のドメイン (例: robo-cop​)

  • 登録済みドメイン (例: developers.robocop.com​)

カスタマーサポートから、最近登録したバニティドメインの ​COOKIE_CONSENT_ID​ が提供されます。この ​COOKIE_CONSENT_ID​ を他のバニティドメインに転送することはできません。

ドメインを登録したときに取得したトークンを使用して、​COOKIE_CONSENT_ID​ を登録する必要があります。

curl https://anypoint.mulesoft.com/exchange/api/v2/portals/YOUR_ORGANIZATION_DOMAIN/cookieConsentId -XPUT -d COOKIE_CONSENT_ID -H "content-type: text/plain" -H "authorization: bearer $ACCESS_TOKEN"

COOKIE_CONSENT_ID​ を登録したら、バニティドメインを使用してポータルを入力します。ナビゲーションバーに [Cookie Preferences (Cookie 設定)] ボタンが表示されます。

COOKIE_CONSENT_ID​ が登録済みドメインにリンクされます。ドメインを変更する場合、これらの手順を繰り返して、新しいドメインの Cookie 同意管理を設定します。