デバイスバウンドパスキー」カテゴリーアーカイブ

Roundcubeへパスキー認証(生体認証)のシングルサインオンでアクセスする

オープンソースのWebメールシステムのRoundcube(WebMail)をKeycloakを利用してPasskey認証で運用する構成です。ID/Passwd認証のような第三者によるなりすましを防ぎ、スマートフォン標準の指紋認証(Touch ID)や顔認証(Face ID)の操作を行うことで、ターゲットのRoundcubeへPasskeyを利用した生体認証によるSSOでアクセスを行います。

 

さらに認証機能を持たないデスクトップPCやノートPCなども、クロスデバイス認証によりスマートフォンと認証連携することで、デスクトップPCやノートPCからもPasskey認証でRoundcubeへSSOを行うことが可能です。

 

パスキー認証とは

Passkey認証は、パスワードに代わる新しい認証方法です。スマートフォンなどの生体認証情報(指紋、顔認証、虹彩認証など)を利用して、ウェブサイトにログインする方法です。

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

  1. 安全性が高い: パスワードは推測や漏洩のリスクがありますが、Passkey認証は生体認証情報に基づいているため、より安全です。
  2. 利便性が高い: パスワードを覚える必要がなく、スマートフォンの生体認証機能で簡単にログインできます。
  3. 汎用性が高い: スマートフォン以外のPCなどの様々なデバイスと連携して利用ができます。

 

クロスデバイス認証とは

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

Passkey認証 ✅ クロスデバイス認証 ☑ クロスデバイス認証 ☑

 

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

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

 

 

 

 

 

 

同期パスキーとデバイスバウンドパスキー

FIDO2の拡張規格である 「Passkey 」認証 では、秘密鍵の保存に関して

  1. デバイス間で同期できる同期パスキー( Synced passkeys )
  2. デバイスに依存して保存・利用するデバイスバウンドパスキー( Device bound passkeys )

の2種類をサポートしています。

 

 

 

 

 

 

 

 

相違点

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

 

 

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

機器構成

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

 

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

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

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

 

 

 

 

 

 

 

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 / Rioundcubeの運用

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

 

 

主な機能

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

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

PCでの表示 スマートフォンでの表示

 

 

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

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

パスキー認証 = ① Passkey認証端末 + ② ユーザー

 

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

クロスデバイス認証 = ① PC端末 + ②Passkey認証端末 + ③ ユーザー

 

 

Roundcube検証時のバージョンです(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認証連携のRoundcubeを運用 Powered BLUE 890

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

 

 

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

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

パスキー認証 = ① PC端末 + ②USB認証器 + ③ ユーザー

 

Roundcube検証時のバージョンです(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認証連携のRoundcubeを運用 Powered BLUE 890

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

 

 

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ブラウザでターゲットのRoundcubeへアクセス   ( 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. 認証後にターゲットのRoundcubeへシングルサインオン ( 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 認証後にRoundcube へシングルサインオン

 

 

 

 

 

 

 

 

 

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

 

 

 

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

クロスデバイス認証 = ① PC端末 + ②Passkey認証端末 + ③ ユーザー

 

ペアリング

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

 

 

 

 

 

 

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

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

 

 

 

 

 

 

 

 

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

 

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

 

 

 

 

 

 

 

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

例 今回は、iPad を選択

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

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

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

 

 

 

 

 

 

 

 

 

7.iPad のTouch IDでの認証後に、PCブラウザでターゲットのRoundcubeへSSO

 

 

 

 

 

 

 

 

* 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ブラウザでターゲットのRoundcubeへSSO

 

 

 

SSOでのPasskey認証ステップ

  1. Roundcubeへアクセス
  2. 初回のみ idP / Keycloak へアクセス
  3. Keycloak のPasskey認証後にRoundcubeへログイン

 

 

 

 

 

各種WebへのSSO

一度のidP / KeycloakのPasskey認証で、複数のWebへシングルサインオン

 

 

 

 

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

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

 

 

 

 

 

 

 

 

 

こんな用途

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

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

 

 

お問合せ

 

 

ご質問やご相談など