Skip to content

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

汎用 OIDC アプリケーション

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

このページでは、OpenID Connect(OIDC)認証プロトコルを使い、Cloudflare Access に SaaS アプリケーションを設定する一般的な手順を説明します。

前提条件

1. SaaS アプリケーションの URL を取得する

SaaS アプリケーションのアカウントで、Redirect URL(コールバック URL とも呼びます)を取得します。これは、ユーザーが Cloudflare Access で認証したあとにリダイレクトされる SaaS 側のエンドポイントです。

一部の SaaS アプリケーションでは、SSO プロバイダーを設定 したあとに Redirect URL が提供されます。

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

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

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

  3. SaaS application を選択します。

  4. ドロップダウンメニューから Application を選択します。一覧にない場合は、Application 欄にカスタム名を入力し、下に表示されるテキストボックスを選択します。

  5. OIDC を選択します。

  6. Add application を選択します。

  7. Scopes で、ID トークンに含めて Access から送信するユーザー属性を選択します。OIDC のスコープとクレームの設定については、OIDC クレーム を参照してください。

  8. Redirect URLs に、SaaS アプリケーションから取得したコールバック URL を入力します。

  9. (任意)IdP が対応している場合は Proof of Key Exchange(PKCE) を有効にします。有効にすると、すべてのログイン試行で PKCE が実行されます。

  10. 次の値をコピーし、SaaS アプリケーションに入力します。SaaS アプリケーションによって必要な入力値の組み合わせは異なります。

    フィールド 説明
    Client secret Access を SSO プロバイダーとして認可するための認証情報
    Client ID この Access アプリケーションの一意の識別子
    Configuration endpoint SaaS アプリケーションが対応している場合、下記の URL を手入力する代わりに、このエンドポイントで OIDC を設定できます。
    https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<client-id>/.well-known/openid-configuration
    Issuer この OIDC 統合のベース URL
    https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<client-id>
    Token endpoint ユーザーの ID トークンを返します
    https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<client-id>/token
    Authorization endpoint ユーザーが Access で認証する URL
    https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<client-id>/authorization
    Key endpoint Access JWT の検証 に使う現在の公開鍵を返します
    https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<client-id>/jwks
    User info endpoint すべてのユーザークレームを JSON 形式で返します
    https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<client-id>/userinfo
  11. Access policies で、既存のポリシーを追加するか、新しいポリシーを作成して、アプリケーションに接続できるユーザーを制御します。Access アプリケーションはデフォルトで拒否です。ユーザーは Allow ポリシーに一致してからアクセスが許可されます。

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

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

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

    3. (任意) Authenticate with Cloudflare One Client をオンにすると、ユーザーは Cloudflare One Client のセッションアイデンティティ でアプリケーションに認証できます。
  13. (任意)Additional settings を開き、アプリケーションの表示をカスタマイズします。

    • App Launcher customization: App Launcher でのこのアプリケーションの表示方法を設定します。Show application in App Launcher を有効にする場合は、App Launcher URL の入力が必須です。App Launcher URL は SaaS アプリケーションが提供します。Redirect URL のベース URL 部分(https://<INSTANCE-NAME>.example-app.com)と一致することもありますが、別の値になる場合もあります。
    • Custom block pages: アプリケーションへのアクセスを拒否されたときに、ユーザーへ表示する内容を選びます。

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

3. SaaS アプリケーションで SSO を設定する

次に、ユーザーが Cloudflare Access 経由でログインするよう、SaaS アプリケーションを設定します。サードパーティの OIDC SSO プロバイダーの設定手順は、SaaS アプリケーションのドキュメントを参照してください。

4. 統合をテストする

シークレットブラウザーウィンドウを開き、SaaS アプリケーションのログイン URL にアクセスします。Cloudflare Access のログイン画面にリダイレクトされ、アイデンティティプロバイダーでのサインインを求められます。

OIDC クレーム

OIDC クレームは、認証成功後に Cloudflare Access が OIDC SaaS アプリケーションと共有するユーザーアイデンティティの属性です。OIDC スコープは、OIDC クレームの集合を定義します。デフォルトでは、Cloudflare Access は openidemailprofilegroups スコープに含まれる 標準クレーム をすべて渡します(利用可能な場合)。

スコープ 説明
openid ユーザーの一意の識別子を含めます(必須)。
email ユーザーのメールアドレスを含めます。
profile ユーザーの名前と、IdP からのカスタム OIDC クレームをすべて含めます。
groups ユーザーの IdP グループ所属を含めます。

Access アプリケーションでは、Access が SaaS プロバイダーに送信する OIDC スコープとクレームを設定できます。たとえば、SaaS アプリケーションがユーザーのグループ情報を必要としない場合は、groups スコープを削除できます。

グループを絞り込む

Group filter regex に正規表現を入力すると、groups スコープに含めるアイデンティティプロバイダーのグループを定義できます。たとえば、式 (^TEAM-Engineering-.$)|(^TEAM-Product-.$) を入力すると、TEAM-Engineering-A や TEAM-Product-B のような名前のグループだけが SaaS アプリケーションに渡されます。

クレームを追加する

SaaS アプリケーションに送信する ID トークンへ追加の OIDC クレームを載せるには、各クレームで次のフィールドを設定します。

  • Name: OIDC クレーム名
  • Scope: このクレームを含める OIDC スコープを選択します。多くの場合、IdP からのほかのカスタムクレームがすでに含まれる profile を選ぶことを推奨します。
  • IdP claim: この OIDC クレームに対応させるアイデンティティプロバイダーの値です。Zero Trust の IdP 統合で設定した SAML 属性 または OIDC クレーム を選べます。
  • Required: 必須とマークしたクレームを IdP が提供しない場合、Cloudflare は認証リクエストを失敗させ、エラーページを表示します。
  • Add per IdP claim: (任意)SaaS アプリケーションで複数のアイデンティティプロバイダーを有効にしている場合、IdP ごとに異なる属性マッピングを選べます。これらの値は親の IdP claim を上書きします。

詳細設定

Access トークンの有効期間

OIDC Access トークンは、Cloudflare Access 経由で SaaS アプリケーションに接続するユーザーを認可します。Access token lifetime を設定すると、トークンを使って SaaS アプリケーションとの認証を確立できる時間枠を決められます。期限切れになると、ユーザーは Cloudflare Access で再認証する必要があります。セキュリティと利便性のバランスをとるため、短い Access トークン有効期間と、より長い Refresh token lifetime(アプリケーションが対応している場合)を組み合わせることを Cloudflare は推奨しています。Access トークンが期限切れになると、Cloudflare はリフレッシュトークンを使い、ユーザーのアイデンティティを Access ポリシーと照合したうえで新しい Access トークンを取得します。リフレッシュトークンが期限切れになると、ユーザーはアイデンティティプロバイダーに再度ログインする必要があります。リフレッシュトークンの有効期間は グローバルセッション期間 より短くしてください。そうしないと、グローバルセッションが優先されます。

OIDC フロー

一部の SaaS アプリケーションでは、バックエンド認証なしでブラウザーにトークンを渡すよう SSO プロバイダーに求めます。Access for SaaS は次の OIDC フローに対応しています。

  • No additional OIDC flows: (デフォルト)アプリケーションが追加フローを必要としない限り、こちらを推奨します。
  • Hybrid flows: ユーザーを認証する前に ID トークンの情報が必要なアプリケーションで使います。
  • Implicit flows: (非推奨)シークレットを保存できず、PKCE without client secret にも対応していないフロントエンドアプリケーションでよく使われます。

選択したフローに応じて、Cloudflare は認可リクエストでさまざまな response_type 値を許可します。たとえば Implicit flow では、Authorization エンドポイントから ID トークン、Access トークン、またはその両方を返せます。

response_type の値 Default flow Hybrid flow Implicit flow
code
id_token
token

認可リクエストに id_token を含めるには、Return ID Token from Authorization Endpoint をオンにします。token を含めるには、Return Access Token from Authorization Endpoint をオンにします。

役に立ちましたか?