Skip to content

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

Okta

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

Okta は、最新のアプリケーションへのユーザー認証を管理・保護するためのクラウドソフトウェアを提供します。開発者はアプリケーション、ウェブサイトの Web サービス、デバイスに ID 制御を組み込めます。Okta を Cloudflare One と統合し、ユーザー ID とグループメンバーシップに基づくルールを作成できます。Cloudflare One は、OIDC(デフォルト)または SAML プロトコルによる Okta 統合に対応します。

さらに、Cloudflare One の ユーザーリスクスコア から得たリスク情報を Okta で使い、SSO レベルのポリシーを作成できます。詳細は リスクスコアを Okta に送信する を参照してください。

前提条件

対応機能

  • SP 開始 SSO: ユーザーが Access アプリケーションにアクセスすると、Access は Okta でのサインインへリダイレクトします。
  • SCIM プロビジョニング: Okta グループを同期し、ユーザーを自動でデプロビジョニングします。SCIM には現在、別の カスタム OIDC アプリケーション が必要です。

Okta を OIDC プロバイダーとして設定する(Okta App Catalog)

Okta Integration Network(OIN)App Catalog で Okta 統合を設定する手順は次のとおりです。

  1. Okta の管理ダッシュボードにログインします。

  2. Applications > Applications を開きます。

  3. Browse App Catalog を選びます。

  4. Cloudflare を検索し、Cloudflare One アプリを選びます。

  5. Add integration を選びます。

  6. Application label にアプリケーション名を入力します(例: Cloudflare Access)。

  7. Team domain に Cloudflare Zero Trust のチーム名を入力します(サブドメインのプレフィックスのみ。.cloudflareaccess.com は含めません)。

    <your-team-name>

    チーム名は、Cloudflare ダッシュボードSettings > Team name and domain > Team name で確認できます。

  8. Sign On タブで Client IDClient secret をコピーし、App IDClient secret に貼り付けます。

  9. Okta の Account URL(-admin を含まない値)をコピーし、Cloudflare の Okta セットアップ欄に貼り付けます。

Okta を OIDC プロバイダーとして設定する(Custom App Integration)

  1. Okta の管理ダッシュボードにログインし、Applications > Applications を開きます。

  2. Create App Integration を選びます。

  3. Sign-in methodOIDC - OpenID Connect を選びます。

    Okta で OIDC アプリケーションを作成する
  4. Application typeWeb Application を選び、Next を選びます。

  5. アプリケーション名を任意で入力します。Sign-in redirect URIs フィールドに次の URL を入力します。

    https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callback

    チーム名は、Cloudflare ダッシュボードSettings > Team name and domain > Team name で確認できます。

  6. 希望する Assignment オプションを選び、Save を選びます。

  7. アプリケーション画面で Sign On タブを開きます。

  8. Token claims までスクロールし、Show legacy configuration > Edit を選びます。

    Okta で Groups claim filter を設定する
  9. Groups claim filterMatches regex に設定し、値を .* にします。

  1. General タブで Client IDClient secret をコピーします。

    Okta で Client credentials を確認する
  1. Cloudflare ダッシュボード で、Zero Trust > Integrations > Identity providers を開きます。

  2. Your identity providersAdd new identity provider を選びます。IdP として Okta を選びます。

  3. 次の情報を入力します。

    • Name: IdP の名前を付けます。
    • App ID: Okta のクライアント ID を入力します。
    • Client secret: Okta のクライアントシークレットを入力します。
    • Okta account URL: Okta ドメイン を入力します。例: https://my-company.okta.com
  4. (任意)Okta API トークンを作成し、Cloudflare ダッシュボードZero Trust > Integrations > Identity providers に入力します(トークンは読み取り専用でも構いません)。Okta テナントのグループが 100 を超える場合に API トークンを使います。ユーザーの OIDC トークンにグループがない、または Okta の 100 グループ上限に達した場合、Cloudflare はこのトークンを認証中に使って、ユーザーの完全なグループメンバーシップを取得します。この設定は Okta 固有で、SCIM の一部ではありません。API トークンは Access ポリシービルダーにグループを追加しません。ポリシービルダーのグループ選択肢は、SCIM でプロビジョニングされたグループから来ます。

  1. (任意)カスタム OIDC クレーム を設定するには:

    1. Okta で カスタム認可サーバー を作成し、groups スコープが有効であることを確認します。
    2. Cloudflare ダッシュボード で、Okta から取得した Authorization Server ID を入力します。
    3. Optional configurations で、ユーザーの ID に追加したいクレームを入力します。
  2. (任意)Proof of Key Exchange(PKCE) を有効にします。PKCE はすべてのログイン試行で実行されます。

  3. Save を選びます。

接続が動いていることを テスト するには、Test を選びます。

ユーザーとグループを同期する

Okta 統合では、SCIM を使って IdP グループを同期し、ユーザーを自動でデプロビジョニングできます。Access と Okta の間で SCIM プロビジョニングを有効にするには、Okta に 2 つのアプリ統合が必要です。

  • ID プロバイダーとして Okta を追加したときに作成した OIDC アプリケーション。Okta App Catalog または Custom App Integration で作成できます。
  • 種類が SCIM 2.0 Test App (Header Auth) の 2 つ目の Okta アプリケーション。技術的には SAML アプリですが、ユーザーとグループ情報を SCIM 経由で送信します。

SCIM が Access と Gateway のポリシー評価に与える影響は異なります。

Access は、認証時にアイデンティティプロバイダーが返す SAML アサーションまたは OIDC トークンから、ユーザーの ID とグループ所属を評価します。SCIM は Access のポリシービルダーに読みやすいグループ名を提供しますが、Access はログイン評価に SCIM のグループ所属を使いません。Enable user deprovisioning をオンにすると、SCIM アプリケーションからユーザーを削除した時点で、そのユーザーのアクティブな Access セッションが取り消されます。グループ所属の変更後にセッションを取り消すよう、SCIM を設定することもできます。Access は、ユーザーが再度認証したときに、更新後のアイデンティティプロバイダーデータを評価します。

Gateway は、User Registry の ID に対してアイデンティティベースのポリシーを評価します。ユーザーまたはグループ所属が変わると、SCIM はこの ID を更新します。ユーザーの再認証を待つ必要はありません。Cloudflare One Client のデバイスプロファイルも、同じ同期済み ID を使います。

1. Cloudflare One で SCIM を有効にする

  1. Cloudflare ダッシュボードZero Trust > Integrations > Identity providers を開きます。

  2. Okta 連携を探し、Edit を選択します。

  3. Enable SCIM をオンにします。

  4. (任意)次の設定を行います。

  1. Regenerate Secret を選択します。SCIM EndpointSCIM Secret をコピーします。これらの値を Okta に入力します。

  2. Save を選択します。

SCIM シークレットに有効期限はありません。ただし、いつでも手動で再生成できます。

2. Okta で SCIM を設定する

  1. Okta の管理ダッシュボードで、Applications > Applications を開きます。

  2. Browse App Catalog を選びます。

  3. SCIM Header Auth を検索し、SCIM 2.0 Test App (Header Auth) を選びます。

  4. Add Integration を選びます。

  5. General Settings タブでアプリケーション名を付け、Next を選びます。

  6. Sign-on Options タブで SAML 2.0 が選ばれていることを確認します。

  7. Credential Details で、Application username formatOkta Username または Email に設定します。この値は SCIM の userName 属性に使われます。

  8. Done を選び、統合を作成します。

  9. Provisioning タブで Configure API Integration を選びます。

  10. Enable API integration を選びます。

  11. Base URL フィールドに、Cloudflare One から取得した SCIM Endpoint を入力します。

  12. API Token フィールドに、Cloudflare One から取得した SCIM Secret を入力します。

    Okta に SCIM の値を入力する
  13. Test API Credentials を選び、資格情報が正しく入力されていることを確認します。Save を選びます。

  14. Provisioning タブで Edit を選び、次を有効にします。

    • Create Users
    • Update User Attributes
    • Deactivate Users
    Okta でプロビジョニング設定を行う
  15. Assignments タブで、Cloudflare Access と同期したいユーザーを追加します。グループを割り当てると、ユーザーをまとめて追加できます。直接のユーザー割り当て、またはアプリに割り当てたグループからの削除により、アプリケーション割り当てからユーザーが外れると、Okta から Cloudflare へデプロビジョニングイベントが送られます。

  16. Push Groups タブで、Cloudflare Access と同期したい Okta グループを追加します。これらのグループは Access のポリシービルダーに表示されます。Okta でメンバーシップが変わると、追加と削除が行われます。

統合を確認するには、Okta SCIM アプリケーションで View Logs を選びます。

Cloudflare One でユーザー ID が更新されたかを確認するには、SCIM プロビジョニングログ を表示します。

API 設定の例

{
	"config": {
		"client_id": "<your client id>",
		"client_secret": "<your client secret>",
		"okta_account": "https://dev-abc123.oktapreview.com"
	},
	"type": "okta",
	"name": "my example idp"
}

トラブルシューティング

Failed to fetch user/group information from the identity

Failed to fetch user/group information from the identity というエラーが出る場合は、Okta の設定を再確認します。

  • Okta テナントのグループが 100 を超える場合は、ID プロバイダー設定に Okta API トークンを含めます。ユーザーの OIDC トークンにグループが含まれない場合、または Okta の 100 グループ上限に達した場合、Cloudflare は認証時に API トークンを使い、ユーザーの完全なグループメンバーシップを取得します。この設定は Okta 固有であり、SCIM の一部ではありません。API トークンは Access ポリシービルダーのグループ選択肢を埋めません。ポリシービルダーの選択肢は、SCIM 経由でプロビジョニングされたグループから来ます。
  • ユーザーの OIDC トークンで Okta が 100 を超えるグループを返す場合、Okta は一部のグループメンバーシップをトークンから省略することがあります。これは Okta のトークンクレーム制限であり、Cloudflare の制限ではありません。必要なグループが省略されると、Cloudflare はそのグループに依存するポリシーを評価できません。これを避けるには、Okta の groups claim filter を絞り、Cloudflare ポリシーで使うグループだけを含めます。詳細は Okta の group functions と dynamic allowlists のドキュメント を参照してください。
  • リクエストが Okta 内の ThreatInsights 機能 によってブロックされている可能性があります。

ポリシービルダーで Okta Groups セレクターが空、またはグループが足りない

Access ポリシービルダーの Okta Groups セレクターは、任意の Okta API トークンではなく、SCIM 経由でプロビジョニングされたグループで埋められます。セレクターにグループがない場合:

  • Okta で SCIM アプリケーションの Push Groups タブを開き、Access ポリシーで使いたいグループをプッシュします。詳細は Okta で SCIM を設定する を参照してください。
  • SCIM 経由でプッシュするグループが、OIDC の groups クレームで返されるグループと一致していることを確認します。
  • Okta API トークンを追加しても、セレクターにグループは追加されません。API トークンは認証時にユーザーのグループメンバーシップを取得するためだけに使われます。

役に立ちましたか?