Worker への認証なしアクセス

通常、Worker へのアクセスは、認証が必要ですが、認証なしで Worker にアクセスすることもできます。

認証なしとすることで、ウェブブラウザーから Worker にアクセスできるようになります(認証ありだとウェブブラウザーから Worker にアクセスできません)。これにより、ビュー(HTML)を返す通常の Rails アプリケーションを Worker として作ることができます。

ここでは、認証なしで Worker にアクセスできるようにするデプロイ方法を解説します。

ドメイン名

認証ありの場合は、認証情報の中にアクセスする Worker を特定する情報が含まれています。これに対して、認証なしの場合は、アクセスする Worker を特定する情報がありません。

このため、認証なしの場合は、MAGELLAN にアクセスする際のドメイン名を使って Worker を特定します。

認証なし Worker アクセス

ドメイン名は、Worker 毎に自由な名称を付与できますが、以下のルールを守る必要があります。

  • magellanic-clouds.net は固定です。第 3 レベルドメインのみを使って自由に名称を付与することができます。
    • 例: foo.magellanic-clouds.net, bar.magellanic-clouds.net
    • 第 4 レベルドメイン以降は使用できません。
  • MAGELLAN 内でユニークでなければなりません。
  • 使用できる文字の種類は、英数字(a-z, A-Z, 0-9)とハイフン(-)です。
  • 大文字小文字の区別はありません。
  • ドメイン名全体で 253 文字以内(magellanic-clouds.net を含む)です。
    • ピリオド(.)で区切られた名称(ラベル)は 63 文字以内です。

ドメイン名規則

デプロイ手順

認証なしアクセスを実現するためには、Worker のデプロイ時に以下の情報を設定する必要があります。

  • 認証なしで Worker にアクセスすること
  • Worker とドメインの対応付け

認証なしで Worker にアクセスすること

「認証なしで Worker にアクセスすること」は、ステージが管理する authentication 情報に、false を設定することで実現します。authentication 情報は、認証の有無を表わします。

authentication 値 認証有無
true 認証あり
false 認証なし

設定は、magellan-cli stage update コマンドを使います。例えば、ステージ V10 で動作する Worker に認証なしでアクセスする場合は、次のように使います。

$ magellan-cli stage select V10
$ magellan-cli stage update '{"authentication":false}'

Worker とドメインの対応付け

「Worker とドメインの対応付け」は、クライアントバージョンが管理する domain 情報に、ドメイン名を設定することで実現します。

設定は、magellan-cli client_version create コマンドを使います。例えば、ドメイン名 foo.magellanic-clouds.net をステージ V10 で動作する Worker に対応付けたい場合は、次のように使います。

$ magellan-cli stage select V10
$ magellan-cli client_version create V10 -d foo.magellanic-clouds.net

この例では、新たにクライアントバージョンを作成していますが、作成済みのクライアントバージョンにドメイン名を設定する場合は、magellan-cli client_version update を次のように使います。

$ magellan-cli client_version select V10
$ magellan-cli client_version update '{"domain":"foo.magellanic-clouds.net"}'

tips用アイコン

クライアントバージョンの domain 情報には、デフォルト値 nebula-001a-web.magellanic-clouds.net が設定されています。

この状態で、ステージの authenticationfalse にしても認証なしアクセスはできません。

認証なしアクセスは、必ずこのデフォルト値と異なるドメイン名を設定してください。