Cloudflare Access のログイン方法にパスキーを追加する
Access の保護アプリと App Launcher に、ワンタイム PIN や外部 IdP の代わりに「Passkeys」をログイン方法として足せるようになった。IdP を用意していない個人・小規模構成でも、メール PIN を毎回打たずに済む。
いつ使うか
- 社内ツールや管理画面を Access で守っていて、ログインがワンタイム PIN(メールで届くコード)だけになっている。
- Google / GitHub などの IdP 連携を設定するほどではないが、PIN 入力が面倒。
パスキーは WebAuthn(ブラウザ標準の公開鍵認証)を使う。端末の生体認証・セキュリティキー・パスワードマネージャーに保存したものが使える。認証器は「discoverable credential」と「ユーザー検証(指紋・顔・PIN)」に対応している必要がある。
設定手順
- ダッシュボードの Zero Trust > Integrations > Identity providers で Add an identity provider から Passkeys を追加する。必要なら Automatically prompt on the login page をオンにすると、2 回目以降はログイン画面を開いた時点でブラウザのパスキー選択が出る。
- Access controls > Applications で対象アプリを編集し、Login methods で Passkeys を許可する(「すべての IdP を受け入れる」がオフの場合)。App Launcher は Authentication タブで許可する。
API なら Identity Providers に type: "passkeys" で POST する(トークンには Access: Organizations, Identity Providers, and Groups Write が必要)。
bash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/identity_providers" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{"name":"Passkeys","type":"passkeys","config":{"login_page_auto_prompt":true}}'利用者側の登録
ログイン画面で Sign in with a passkey → Don't have a passkey? Set one up を選び、既存のログイン方法で一度本人確認してから登録する。パスキーしか許可していないアプリでは、登録時にメールで確認コードが届く。以後はメールアドレスの入力もなくサインインできる。ログイン画面の Manage passkeys から追加・名前変更・削除ができる。
注意点
- パスキーで入れても、アクセスの可否は Access ポリシー次第。 登録しただけでは通らない。
- IdP のグループや属性は取れない。 グループ所属などで判定しているポリシーは、パスキーを代替手段として足す前に見直す。
- 端末紛失時は管理者が削除できる(Team & Resources > Users の User identity、または API)。ただし削除しても進行中のセッションは切れないので、別途セッションを失効させる。
- Terraform などで IdP を管理している場合は、
typeがpasskeysの IdP を追加する形になる(プロバイダー側の対応状況は要確認)。
関連
- Cloudflare Access: ログイン・拒否・CLI 承認ページを HTML と Liquid で作り込む
- Cloudflare Access: サービストークンにタグを付け、タグで認可する(Service Token Tag)
出典
- @CFchangelog · 2026-11-08
- Changelog: developers.cloudflare.com
- ドキュメント: developers.cloudflare.com