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

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認証を実現できます。

 

 

お問合せ

 

 

ご質問やご相談など