このページでは、OpenID Connect(OIDC)認証プロトコルを使い、Cloudflare Access に SaaS アプリケーションを設定する一般的な手順を説明します。
- Cloudflare One に設定済みの アイデンティティプロバイダー
- SaaS アプリケーションのアカウントに対する管理者権限
SaaS アプリケーションのアカウントで、Redirect URL(コールバック URL とも呼びます)を取得します。これは、ユーザーが Cloudflare Access で認証したあとにリダイレクトされる SaaS 側のエンドポイントです。
一部の SaaS アプリケーションでは、SSO プロバイダーを設定 したあとに Redirect URL が提供されます。
-
Cloudflare ダッシュボード ↗ で、Zero Trust > Access controls > Applications を開きます。
-
Create new application を選択します。
-
SaaS application を選択します。
-
ドロップダウンメニューから Application を選択します。一覧にない場合は、Application 欄にカスタム名を入力し、下に表示されるテキストボックスを選択します。
-
OIDC を選択します。
-
Add application を選択します。
-
Scopes で、ID トークンに含めて Access から送信するユーザー属性を選択します。OIDC のスコープとクレームの設定については、OIDC クレーム を参照してください。
-
Redirect URLs に、SaaS アプリケーションから取得したコールバック URL を入力します。
-
(任意)IdP が対応している場合は Proof of Key Exchange(PKCE) ↗ を有効にします。有効にすると、すべてのログイン試行で PKCE が実行されます。
-
次の値をコピーし、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-configurationIssuer この 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>/tokenAuthorization endpoint ユーザーが Access で認証する URL
https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<client-id>/authorizationKey endpoint Access JWT の検証 に使う現在の公開鍵を返します
https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<client-id>/jwksUser info endpoint すべてのユーザークレームを JSON 形式で返します
https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<client-id>/userinfo -
Access policies で、既存のポリシーを追加するか、新しいポリシーを作成して、アプリケーションに接続できるユーザーを制御します。Access アプリケーションはデフォルトで拒否です。ユーザーは Allow ポリシーに一致してからアクセスが許可されます。
-
ユーザーの認証方法を設定します。
アプリケーションで有効にする アイデンティティプロバイダー を選択します。
(推奨)単一の IdP だけでアクセスを許可する場合は、Apply instant authentication をオンにします。エンドユーザーには Cloudflare Access のログインページ は表示されません。代わりに、Cloudflare はユーザーを SSO ログインへ直接リダイレクトします。
- (任意) Authenticate with Cloudflare One Client をオンにすると、ユーザーは Cloudflare One Client のセッションアイデンティティ でアプリケーションに認証できます。
-
(任意)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 でホストする カスタムブロックページ を表示します。
- Cloudflare default: ログインページ を再読み込みし、Cloudflare Access のロゴの下にブロックメッセージを表示します。既定のメッセージは
- App Launcher customization: App Launcher でのこのアプリケーションの表示方法を設定します。Show application in App Launcher を有効にする場合は、App Launcher URL の入力が必須です。App Launcher URL は SaaS アプリケーションが提供します。Redirect URL のベース URL 部分(
-
Create を選択します。
次に、ユーザーが Cloudflare Access 経由でログインするよう、SaaS アプリケーションを設定します。サードパーティの OIDC SSO プロバイダーの設定手順は、SaaS アプリケーションのドキュメントを参照してください。
シークレットブラウザーウィンドウを開き、SaaS アプリケーションのログイン URL にアクセスします。Cloudflare Access のログイン画面にリダイレクトされ、アイデンティティプロバイダーでのサインインを求められます。
OIDC クレームは、認証成功後に Cloudflare Access が OIDC SaaS アプリケーションと共有するユーザーアイデンティティの属性です。OIDC スコープは、OIDC クレームの集合を定義します。デフォルトでは、Cloudflare Access は openid、email、profile、groups スコープに含まれる 標準クレーム ↗ をすべて渡します(利用可能な場合)。
| スコープ | 説明 |
|---|---|
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 を上書きします。
OIDC Access トークンは、Cloudflare Access 経由で SaaS アプリケーションに接続するユーザーを認可します。Access token lifetime を設定すると、トークンを使って SaaS アプリケーションとの認証を確立できる時間枠を決められます。期限切れになると、ユーザーは Cloudflare Access で再認証する必要があります。セキュリティと利便性のバランスをとるため、短い Access トークン有効期間と、より長い Refresh token lifetime(アプリケーションが対応している場合)を組み合わせることを Cloudflare は推奨しています。Access トークンが期限切れになると、Cloudflare はリフレッシュトークンを使い、ユーザーのアイデンティティを Access ポリシーと照合したうえで新しい Access トークンを取得します。リフレッシュトークンが期限切れになると、ユーザーはアイデンティティプロバイダーに再度ログインする必要があります。リフレッシュトークンの有効期間は グローバルセッション期間 より短くしてください。そうしないと、グローバルセッションが優先されます。
一部の 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 をオンにします。