WebAuthn」カテゴリーアーカイブ

KeycloakでPasskeyによる生体認証を導入する方法と構成(パスワードレス認証)

パスキーを利用

Keycloakは、WebAuthnに対応したPasskeyをサポートしています。Passkeyは、生体認証だけでなく、セキュリティキーも利用可能な認証方式です。この機能を活かし、指紋認証、顔認証、虹彩認証などの生体認証に加え、USBやNFC型のセキュリティキーを用いた認証もKeycloakと連携することができます。

スマートフォン以外にも、パソコンやタブレット端末でもセキュリティキーによる認証やBluetoothなどによる認証連携が可能です。 普段利用しているスマートフォンの生体認証機能やセキュリティキーをそのまま、Keycloakの認証に利用することができます。生体認証・セキュリティキー認証を利用することで、パスワード管理の手間を省き、不正ログインのリスクを低減をさせるパスワードレス認証での運用が可能です。

 

 

 

 

 

 

 

パスキー認証のメリット

Passkey認証は、パスワードに代わる標準の認証方法です。Webサイトやアプリへのログイン認証にスマートフォンなどの生体認証情報(指紋、顔認証、虹彩認証など)を利用することが出来ます。

従来のパスワード認証と比べて、Passkey認証には以下のような利点があります。

1.高い安全性

  • パスワード漏洩のリスクを排除: Passkey認証は生体認証情報に基づいているため、パスワード漏洩による不正ログインを防止
  • フィッシング詐欺対策: フィッシングサイトで偽の入力画面にパスワードを入力しても、Passkey認証では生体認証が必要となるため、被害を防止

2.抜群の利便性

  • パスワード記憶不要: 面倒なパスワードを覚える必要がなく、スマートフォンの生体認証機能で簡単にログイン
  • シームレスなログイン体験: ワンタップでログインできるため、スムーズかつストレスフリーな認証を実現
  • マルチデバイス対応: スマートフォンだけでなく、パソコンやタブレット端末など、様々なデバイスで利用可能

3.高度なセキュリティ対策

  • 不正アクセス防止: 本人認証を厳格に行うため、不正アクセスを防止
  • なりすまし防止: 生体認証情報に基づいているため、他人に成りすましてログインが困難

 

 

 

 

 

同期パスキーとデバイスバウンドパスキーの2種類

従来の「FIDO2」では、秘密鍵の保存先として 2.デバイスに依存して保存・利用するデバイスバウンドパスキーのみに対応していました。

一方、FIDO2の拡張規格である 「Passkey 」認証 では、1.デバイス間で同期できる同期パスキーと、2.デバイスに依存して保存・利用するデバイスバウンドパスキーの2種類をサポートしています。

Passkey 認証

  1. 同期パスキー( Synced passkeys )
  2. デバイスバウンドパスキー( Device bound passkeys )

 

 

 

 

 

 

 

 

主な相違点

項目 1.  同期パスキー
2.デバイスバウンドパスキー
保存方法 クラウドサービスを利用 特定のデバイス内に保存
利用方法 複数のデバイスで利用可能
1つのデバイスのみ利用可能
メリット 紛失・故障時の復旧が容易 より高い安全性
デメリット セキュリティリスクがやや高い
複数のデバイスで利用できない

 

クロスデバイス認証とは

クロスデバイス認証とは、認証機能のあるスマートフォンのパスキー認証を利用して、認証機能を持たないPCなどのデバイスからターゲットのWebへアクセスさせる機能です。

生体認証機能 ✅ 生体認証機能  生体認証機能 

 

Bluetooth利用時のクロスデバイス認証のフロー

  1. PC端末でパスキー認証のターゲットのWebへブラウザでアクセス
  2. PC端末側のブラウザにQRコードを表示
  3. QRコードをスマートフォンでスキャン
  4. スキャンしたQRコードをスマートフォンでパスキー認証
  5. Bluetooth通信によりスマートフォンとPC間で認証連携
  6. PCのブラウザでターゲットのWebへログイン

 

 

 

 

パスキー対応ネットワーク構成

機器構成

  • Webサーバー
  • Keycloakサーバー
  • クライアントの機器( スマートフォンやPC端末 )
  • ブラウザ( プラグイン不要 )

 

同期パスキーを利用の場合には

  1. iCloudキーチェーン
  2. Googleパスワードマネージャー

などのクラウドサービスと連携

 

 

 

 

 

 

 

 

 

同期パスキーの機器構成  例

A. 同期パスキー登録による、同期パスキーを登録した同じ機器での認証&Webへのアクセス
 iPadでパスキー登録 ⇒ 同一のiPadで認証
 Android Galaxy A23でパスキー登録 ⇒ 同一のAndroid Galaxy A23で認証

 

B. 同期パスキー登録による、異なる機器でのクロスデバイス認証&Webへのアクセス
➡ iPadでパスキー登録  ⇒ Note-PC / Desktop-PC で認証連携
➡ Android Galaxy A23 でパスキー登録  ⇒ Note-PC / Desktop-PC で認証連携

Passkey認証Webへのアクセス検証時のバージョンです(2024年6月)

 

機器 OS 端末やサーバー 備考 動作
iPad (第6世代)
iOS 17.3.1 ・同期パスキーを登録した機器
・Touch ID
Safari 604.1
Galaxy A23

Android 13 ・同期パスキーを登録した機器
・指紋認証
Chrome 125.0.6422.165
Windows ノートPC Windows 11
version 22H2
・クロスデバイス認証の端末
・Bluetooh 4.0(内蔵)
Firefox 126.0.1
Edge 125.0.2535.79
Chrome 125.0.6422.142


Windows PC

Windows 11
version 22H2
・クロスデバイス認証の端末
・TP-link  (Bluetooh 5.0 / USB)
Firefox 126.0.1
Edge 125.0.2535.79
Chrome 125.0.6422.142


Synced Passkeys

・iCloudキーチェーン
・Googleパスワードマネージャー
Keycloak アプライアンス
Keycloak 24.0.5
RockyLinux 9.4
・Keycloakを運用 Powered BLUE for idP
Web アプライアンス
AlmaLinux 9.4 ・Passkey認証連携のWebを運用 Powered BLUE 890

* iOS 17.x 以降でクロスデバイス認証に対応
* Android 13 以降でクロスデバイス認証に対応
* Bluetooth 4.0以降でクロスデバイス認証に対応

 

 

デバイスバウンドパスキーの機器構成 例

C.  デバイスバウンドパスキーによる認証&Webへのアクセス
➡ USB指紋認証器でパスキー登録 ⇒ USB指紋認証器で認証

Passkey認証Webへのアクセス検証時のバージョンです(2024年6月)

 

機器 OS 端末やサーバー 備考 動作
Windows ノートPC


Windows 11
version 22H2
・デバイスバウンドパスキーの端末
・EzFinger2(USB接続の指紋認証器)
Firefox 126.0.1
Edge 125.0.2535.79
Chrome 125.0.6422.142


Windows PC


Windows 11
version 22H2
・デバイスバウンドパスキーの端末
・EzFinger2(USB接続の指紋認証器)
Firefox 126.0.1
Edge 125.0.2535.79
Chrome 125.0.6422.142


Keycloak アプライアンス
Keycloak 24.0.5
RockyLinux 9.4
・Keycloakを運用 Powered BLUE for idP
Web アプライアンス
AlmaLinux 9.4 ・Passkey認証連携のWebを運用 Powered BLUE 890

* 指紋認証器としては、USB接続の「FIDO2対応の製品」が利用できます(Yubiko / 他)

 

 

 

Keycloakの運用

Keycloakを簡単に構築運用できる ➡「Powered BLUE for idP」を利用します

 

 

 

 

Keycloakアプライアンスの主な機能

  •  サーバーの設定(Network / Firewall )
  •  ウィザードによるKeycloakの構成(スタンドアロンやクラスター)
  •  DB設定
  •  Keycloak のバックアップ、リストア、アップグレード
  •  SSLサーバー証明書登録 ( トラストストア対応 )
  •  keycloak へのアクセスポート ( 80 / 443 )
  •  リバースプロキシ構成 ( 80 / 443 )
  •  アクティブモニタ(サービス監視・再起動・管理者への通知)
  •     ベースOS AlmaLinux 9.x / RockyLinux 9.x / RedHat 9.x に対応

 

 

 

Passkey認証に対応のWebの運用

Passkey認証連携のWeb を簡単に構築運用できる ➡「Powered BLUE Web 」を利用します

 

 

主な機能

  •  Web / Mai l / DNS / ftp (インターネットサーバー機能)
  •  送信ドメイン認証 (DKIM / DMARC / SPF)
  •     ベースOS AlmaLinux 9.x / RockyLinux 9.x / RedHat 9.x に対応

Passkey認証連携のWebを構築&運用できます

Passkey認証対応のWebサイト  例

 

 

Keycloakの設定手順

  1. レルムの作成
  2. Webとの連携設定
  3. ロールの作成
  4. ユーザーの作成
  5. ロールのアサイン
  6. 認証フローの作成(Webauthn Passwordless もしくはWebauthn ポリシーの設定)
  7. Bind flow
  8. 認証ポリシーの設定

 

1.レルムの作成

今回は、「passkey-demo」というレルムを作成します

 

 

 

 

 

 

 

(レルムの作成 / 画面のクリックで拡大)

 

2. Webとの連携設定

Webサーバ側のxmlファイルをKeycloakの「Passkey-demo」のレルムに読み込ませます。またKeycloak側のxmlファイルをWeb側に登録して、KeycloakとWebの連携を構成します。

 

3.ロールの作成

今回は、「passkey-demo-role」を作成します

 

 

 

 

 

 

 

(ロールの作成 / 画面のクリックで拡大)

 

4.ユーザーの作成

今回は、ユーザーアカウント「passkey-demo-user」を作成します

 

 

 

 

 

 

 

( ユーザーの作成 / 画面のクリックで拡大)

 

 

5.ロールのアサイン

作成したユーザーアカウント「passkey-demo-user」へロール「passkey-demo-role」をアサインします

 

 

 

 

 

 

 

 

( ロールのアサイン / 画面のクリックで拡大)

 

 

6.認証フローの作成

Passkey認証に際しては、以下のいずれかを利用して

  1. Webauthn Passwordless Authenticator
  2. Webauthn Authenticator

ポリシーを設定して 例「passkey-demo-flow」という名称で保存します

 

今回は、Webauthn Authenticator を利用して設定します

 

 

 

 

 

 

 

( 認証フローの作成 / 画面のクリックで拡大)

 

7.Bind flow

作成した「passkey-demo-flow」ポリシーを、「Browser flow」へバインドします。今回作成の「passkey-demo-flow」がブラウザでのログインに適用されます。

 

8.認証ポリシーの設定

  1. Webauthn Passwordless Authenticator
  2. Webauthn Authenticator

の認証のポリシー(詳細)を設定します

今回は、Webauthn Authenticator を設定します

 

 

 

 

 

 

 

 

 

( 認証ポリシーの設定 / 画面のクリックで拡大)

 

ポリシー項目としては、今回は以下のような設定

項目 設定値 内容
リーディング・パーティエンテイティ URL KeycloakのURL 例 https://keycloak-passkey.xxx.com/
署名アルゴリズム E256 認証に使用する署名アルゴリズム
期待する構成証明伝達 Not Specified
オーセンティケーター・アタッチメント Not Specified
常駐鍵が必要 Not Specified
ユーザー検証要件 Requried
タイムアウト 設定なし
許容可能なAAGUID 指定なし
エクストラオリジンズ 指定なし

 

 

 

A. 同期パスキー設定 / 登録したiPad本体でのアクセス認証

アクセス認証 = ① Passkey認証端末 + ② ユーザー

  1. iPadのsafariブラウザでターゲットのWebへアクセス   ( https://target-web.xyz.com )
  2. Keycloakへリダイレクト  ( https://keycloak-passkey.xxx.com/…….  )
  3. ID / Passwd の入力(Webauthn Passwordless Authenticatorの場合にはパスワード入力不要
  4. 初回はユーザーのTouch IDのPublic Keyの登録
  5. Passkey認証(Touch ID)
  6. 認証後にターゲットのWebへログイン ( https://target-web.xyz.com )

 

1-2-3. keycloakへリダイレクト

ID / Passwd入力

 

 

 

 

 

 

 

 

4. 初回はユーザーのTouch IDのPublic Keyの登録

 

 

 

 

 

 

 

パスキーの保存先を選択

例 同期パスキーの場合は iCloud キーチェーン を選択

 

 

 

 

 

 

 

 

 

 

KeycloakへPublick Keyを保存時のラベル名を設定

例 WebAuthn Authenticator passkey-demo

 

 

 

 

 

 

5-6. Touch ID 認証後にWebへログイン

 

 

 

 

 

 

 

 

* Android Galaxy A23 も同様の操作手順となります

 

 

 

 

 

B. クロスデバイス認証 / PCでのアクセス

アクセス認証 = ① PC + ② Passkey認証端末 + ③ユーザー

 

ペアリング

事前に、PCとiPadをBluetoothでペアリングを行います

 

 

 

 

 

 

Bluetooth を有効( iPad / デスクトップPC / ノートPC )

  • iPadとノートPCをペアリング(ノートPC内蔵のBluetoothを利用
  • iPadとデスクトップPCをペアリング( Bluetooth対応のUSBアダプタを利用

 

 

 

 

 

 

 

 

  1. ペアリングしたPCのブラウザでターゲットのWebへアクセス
  2. Keycloakの認証画面へリダイレクト
  3. 端末の選択
  4. QRコードが表示
  5. QRコードをペアリング登録済のiPadのカメラでスキャン
  6. iPadでのPasskey認証(Touch ID)を行う
  7. iPadで認証後に、ペアリングしたPCのブラウザでターゲットのWebへ

 

1-2. PCのブラウザでターゲットのWebへアクセス / Keycloakの画面にリダイレクト

 

 

 

 

 

 

 

3.パスキー認証時のペアリングの端末を選択

例 今回は、iPad を選択

 

 

 

 

 

 

 

 

 

 

 

4.PC側にQRコードが表示される

 

 

 

 

 

 

 

 

 

 

 

5-6. QRコードをペアリングのiPadのカメラでスキャン

サインインの記号  をクリック

 

 

 

 

 

 

 

 

 

 

7.iPad のTouch IDでの認証後に、PCブラウザでターゲットのWebへログイン

 

 

 

 

 

 

 

* Android Galaxy A23 も同様の操作手順となります

 

 

C. デバイスバウンドパスキー設定でアクセス認証

アクセス認証 = ① PC + ② USB認証器 + ③ユーザー

事前に「FIDO2対応のUSB指紋認証器」をPCに接続して、Windows Helloの機能を利用して、USB指紋認証器に「指紋を登録」しておきます

利用者はFIDO2対応のUSBタイプのセキュリティキー「指紋認証器」をPCへ接続

 

指紋認証器

 

指紋登録

Windows hello を利用しての「指紋認証USB」にpinコードの設定と指紋を登録します

 

1. 最初に「指紋認証USB」にpin コードを設定

 

 

 

 

 

 

 

2. 次に指紋を登録(複数の指の登録可能)

 

 

 

 

 

 

 

ここまでで、事前のUSBへの指紋登録の設定は終了です

 

デバイスバウンドパスキーでアクセスのステップ

  1. USBの指紋認証器を接続した「PCのブラウザ」でターゲットのWebサイトへアクセス
  2. Keycloakの認証画面へリダイレクト
  3. 初回はユーザーの指紋認証のPublic KeyをKeycloakへ登録
  4. 指紋認証後にPCブラウザでターゲットのWebへログイン

 

1-2. USBの指紋認証器を接続した「PCのブラウザ」でターゲットのWebサイトへアクセス

 

 

 

3. 初回はユーザーの指紋認証のPublic KeyをKeycloakへ登録

 

 

 

 

 

 

 

 

 

 

 

 

Keycloakへ登録のPublic Keyのラベル名を設定

例 WebAuthn Authenticator passkey-usb-finger

 

 

 

 

4. 指紋認証後にPCブラウザでターゲットのWebへ

 

 

 

 

Passkey認証導入の環境 / ハードウエア&ソフトウエアは対応済

ユーザー側のデバイスは、Passkeyによる顔認証・指紋認証に対応しています。またPCもBluetooth通信やUSB接続の指紋認証器を接続してPasskeyの利用ができます。

 

 

 

 

 

 

 

 

従来のパスワード認証は漏洩や不正アクセスなどのリスクが依然として存在し、より強固なセキュリティ対策が求められています。

 

こんな用途

  • Webサイトの認証を強化したい
  • Webサイトを生体認証にしたい
  • パスワードレス認証でWebサイトへアクセスをさせたい

などでは、KeycloakとPasskey認証連携に対応のWebを導入することで、WebサイトへのPasskey認証を簡単に実現できます。

 

 

お問合せ