10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

初版: 2020/4/21
著者: 田畑義之, 株式会社日立製作所 (GitHubアカウント: @y-tabata)

はじめに

Red Hat Single Sign-On (RHSSO)とは、OSSのIAM (Identity and Access Management)製品であるKeycloakのエンタープライズ版です。このたび、2020/4/8にKeycloak 9.0.3をベースとする、RHSSO 7.4.0がリリースされましたので、その注目機能を見ていきましょう。公式のリリースノートはこちらです。
本記事は、あくまで執筆者の見解であり、日立製作所及びRed Hatの公式なドキュメントではありません。

RHSSO 7.4の注目機能

RHSSO 7.4の注目機能として、ここでは3つの機能をご紹介します。

認証機能のグレードアップ

RHSSO 7.4では、認証機能を司る認証フローの部分に大きなリファクタリングが入り、2要素認証やパスワードレス認証等を設定することができるようになりました。中でも特に注目すべきは、**W3C Web Authentication (WebAuthn)**を設定できるようになったことです。WebAuthnとは、W3Cが策定しているWebブラウザを利用した認証方式の標準仕様であり、従来のパスワードやOTPを用いた認証方式よりも強固な認証方式として注目を浴びています。KeycloakにおけるWebAuthnサポートの詳細に関しては、KeycloakにWebAuthnを実装した@tnorimatさんによる解説記事「keycloakのWebAuthnサポート実現までのいきさつ」をご参照ください。WebAuthnの使い方に関しては、本書の後半で解説します。

アカウントサービスの強化

RHSSO 7.3以前より、ユーザが自身でアカウントを管理するための"アカウントサービス"というビルトインのサービスが提供されていましたが、RHSSO 7.4では、そのアカウントサービスのコンソールが、ReactPatternFly 4を採用して生まれ変わりました。以前と比べて、アカウントサービスのコンソールが格段にカスタマイズしやすくなった印象です。RHSSO 7.4では、本機能はまだテクノロジプレビューですが、画面例をWebAuthnの使い方と併せて本書の後半で少しだけ紹介します。

Hostname SPIの実用性向上

Hostname SPIとは、RHSSOが自身のURLの生成方法を実装するためのインタフェースです。Hostname SPIの詳細については「KeycloakのHostname SPI」をご参照ください。RHSSO 7.3以前は、Hostname SPIの実装として、RequestHostnameProviderFixedHostnameProviderが提供されていました。しかし例えば、認可リクエストとトークンリクエストは"外部ネットワーク"から、トークンイントロスペクションと管理コンソールへのアクセスは"内部ネットワーク"から行いたいといったありふれた要件でさえ、RequestHostnameProviderFixedHostnameProviderでは満たせなかったため、独自のSPI実装が必要となるケースが多々ありました。このような使い勝手の悪さを改善するため、RHSSO 7.4ではDefaultHostnameProviderというHostname SPIの実装が提供されています。DefaultHostnameProviderでは、上述した要件のみならず、ブラウザからリクエストされるURLをレルム単位で上書きしたり、パブリックドメインを用いた管理コンソールへのアクセスを抑止したりすることもでき、実用性が大幅に向上しました。

WebAuthnを試してみた

実際にRHSSO 7.4の注目機能の一つであるWebAuthnを使ってみましょう。今回は、通常のユーザ名とパスワードを使った認証に、WebAuthn対応の認証器を使った認証を加えた、2要素認証を設定して試してみます。
WebAuthn対応の認証器ですが、今回はWebAuthnを手軽に試すことのできるGoogle Chrome拡張のVirtual Authenticators Tabを使います。Virtual Authenticators Tabが、認証器の代わりとなって、ユーザの認証成功をRHSSOに伝えてくれます。

事前準備

WebAuthnは、RHSSO 7.4ではテクノロジプレビューの機能ですので、サーバ起動時に、-Dkeycloak.profile=previewというオプションをつけて、テクノロジプレビュー機能を有効にします。
また、今回は動作検証にアカウントサービスを使います。折角ですので、新しいアカウントサービスのコンソールを使うべく、アカウントサービスの新しいテーマであるrh-sso-previewを設定します。
change_theme.png

WebAuthnを含む2要素認証の設定

マニュアルに沿って、WebAuthnを含んだ2要素認証の設定をしていきましょう。
まずは、WebAuthn対応の認証器を登録できるように、Webauthn RegisterをRequired Actionに追加します。
required_action.png

次に、WebAuthn認証を含んだ認証フローを作成します。
webauthn_browser_flow.png

作成した認証フローをBrowser Flowにバインドします。
binding.png

以上で設定は終わりです。

動作確認

実際に動作を確認してみましょう。
今回はアカウントサービスにアクセスし、設定した2要素認証の動作を確認します。
account_service_url.png

新しいアカウントサービスのコンソールが表示されます。ログインボタンを押します。
account_service.png

ログイン画面が表示されます。
account_service_username_password.png

ここで認証器(Virtual Authenticators Tab)の設定をしましょう。F12を押し開発者ツールを起動します。Virtual Authenticators TabをGoogle Chromeに導入済みの場合、Virtual Authenticatorsというタブが表示されます。そのタブを使って認証器(Authenticator)を追加します。
devtools.png

ログイン画面に戻り、ユーザ名とパスワードを入力してログインボタンをクリックします。
account_service_login.png

認証器の登録画面が表示されました。OKボタンをクリックして認証器を登録します。
security_key_registration.png

アカウントサービスにログインできました!登録した認証器を確認してみましょう。Signing Inをクリックします。
account_service_top.png

先ほど登録した認証器が正しく登録されていますね。
signing_in.png

おわりに

本稿では、RHSSO 7.4の注目機能をご紹介しました。また、中でも特筆すべき機能であるWebAuthnの使い方もご紹介しました。RHSSO 7.4には、ここで取り上げた機能以外にも、例えばFinancial-grade API (FAPI)のサポートに関連する機能追加など、数々の機能が取り込まれています。IAM (Identity and Access Management)製品として着実にパワーアップしているRHSSOを、是非この機会に使ってみてはいかがでしょうか。

10
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?