Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

セルフホストアプリケーションをインターネットに公開する

最終更新 Markdown で表示Agent セットアップ

Cloudflare Access をエンドユーザーとオリジンサーバーのあいだの認証層として追加すると、社内ツールやアプリケーションを安全に公開できます。

このページでは、公開ホスト名を使い、インターネット上の誰からでも Web アプリケーションにアクセスできるようにする方法を説明します。プライベート IP またはプライベートホスト名で公開する場合は、セルフホストのプライベートアプリケーションを追加する を参照してください。

前提条件

1. Access にアプリケーションを追加する

  1. Cloudflare ダッシュボード で、Zero Trust > Access controls > Applications を開きます。

  2. Create new application を選択します。

  3. Self-hosted and private を選択します。

  4. Add public hostname を選択します。

  5. Domain のドロップダウンで、アプリケーションを表すドメインを選びます。ドメインは、Cloudflare アカウント内の有効なゾーンに属している必要があります。同じルートパスを共有するアプリケーションの複数部分を保護するには、ワイルドカード を使えます。

    あるいは、Cloudflare for SaaS のカスタムホスト名 を使う場合は、Switch to custom input を選び、カスタムホスト名を入力します。

  6. Access policies で、既存のポリシーを追加するか、新しいポリシーを作成して、アプリケーションに接続できるユーザーを制御します。Access アプリケーションはデフォルトで拒否です。ユーザーは Allow ポリシーに一致してからアクセスが許可されます。

  7. ユーザーの認証方法を設定します。

    1. アプリケーションで有効にする アイデンティティプロバイダー を選択します。

    2. (推奨)単一の IdP だけでアクセスを許可する場合は、Apply instant authentication をオンにします。エンドユーザーには Cloudflare Access のログインページ は表示されません。代わりに、Cloudflare はユーザーを SSO ログインへ直接リダイレクトします。

    3. (任意) Authenticate with Cloudflare One Client をオンにすると、ユーザーは Cloudflare One Client のセッションアイデンティティ でアプリケーションに認証できます。
  8. (任意)アプリケーション向けに 独立した MFA を設定します。

  9. Session Duration で、ユーザーの アプリケーショントークン の有効期限を選びます。

    Cloudflare は、アプリケーションへのすべての HTTP リクエストで、有効なアプリケーショントークンがあるかを確認します。ユーザーのアプリケーショントークン(およびグローバルトークン)の期限が切れている場合は、IdP での再認証を求めます。詳細は セッション管理 を参照してください。

  10. (任意)Additional settings タブを開き、アプリケーションの体験をカスタマイズします。

    • App Launcher customization: App Launcher でのこのアプリケーションの表示を設定します。
    • Custom block pages: アプリケーションへのアクセスを拒否されたときに、ユーザーへ表示する内容を選びます。

      • Cloudflare default: ログインページ を再読み込みし、Cloudflare Access のロゴの下にブロックメッセージを表示します。既定のメッセージは That account does not have access です。カスタムメッセージを入力することもできます。
      • Redirect URL: 指定した Web サイトへリダイレクトします。
      • Custom page template: Cloudflare One でホストする カスタムブロックページ を表示します。
  11. Create を選択します。

2. オリジンを Cloudflare に接続する

社内アプリケーションを公開するには、Cloudflare Tunnel を設定 します。Access ポリシーに一致するユーザーだけがアクセスを許可されます。

アプリケーションがすでにパブリックに到達できる場合、トンネルは必須ではありません。ただし、その場合は ほかの方法 でオリジン IP を保護する必要があります。

3. Access トークンを検証する

オリジンを保護するには、Cloudflare Access が発行する アプリケーショントークン を検証する必要があります。トークン検証により、ネットワークの設定ミスなどで Cloudflare Access を迂回したリクエストは拒否されます。

1 つの方法は、Cloudflare Tunnel デーモンの cloudflared にトークン検証を任せる設定です。Cloudflare Tunnel の設定で Protect with Access を有効にします。Cloudflare Tunnel による自動検証を使わない場合は、オリジンを手動で設定 し、すべてのリクエストで有効なトークンを確認してください。

ユーザーは、Cloudflare Access で認証したあと、セルフホストアプリケーションに接続できます。

部分的な(CNAME)セットアップ

ドメインが 部分的な(CNAME)セットアップ の場合、Cloudflare は DNS ゾーンを管理しません。トンネルに公開アプリケーションルートを追加したあと、外部プロバイダー側で DNS レコードを手動作成する必要があります。

公開アプリケーションルートを追加する

トンネル設定で、ホスト名を社内サービスに対応づける 公開アプリケーションルートを追加 します。たとえば、ホスト名を app.example.com にし、http://localhost:8080 へ向けます。

DNS プロバイダーで CNAME レコードを作成する

フル DNS セットアップ では、トンネルに公開アプリケーションルートを追加すると、Cloudflare が DNS レコードを自動作成します。部分的な(CNAME)セットアップでは、ドメインをホストしている DNS プロバイダー(権威 DNS プロバイダー)側で CNAME レコードを追加する必要があります。

外部 DNS プロバイダーで、次の値の CNAME レコードを作成します。

  • Name: トンネルで設定したホスト名(例: app.example.com
  • Target: <HOSTNAME>.cdn.cloudflare.net(例: app.example.com.cdn.cloudflare.net

製品の互換性

Access のセルフホストアプリケーションを使う場合、ほとんどの Cloudflare 製品はアプリケーションと互換性があります。

ただし、次の製品はサポートされていません。

ゾーン全体ではなく特定のアプリケーションだけ Zaraz を無効にするには、アプリケーションのドメインにスコープした Configuration Rule を使います。

Google tag gateway はゾーン単位で設定され、特定のホスト名にスコープできません。ホスト名で Access binding cookie を使うには、ゾーン全体で Google tag gateway を無効にします。

役に立ちましたか?