SAML認証を利用したidP/KeycloakとWebの連携です。Keycloakでは、標準で SAML2.0とOIDC がSSO認証プロトコルとして利用できます。今回は、SAML認証連携でWebアクセスを試してみます。自社のWebをSSO・シングルサインオンで運用することができます。WildFly 対応版からQuarkus対応版への変更も出来ます
SAML認証の特徴として、ターゲットの Web がLAN内に設置の場合にでも認証が出来るメリットがあります。
【こんな場合に】
- 認証対応のWebを構築運用したい
- Keycloakで認証したい
- ワンタイムパスワード認やSSLクライアント認証など多要素認証で利用したい
- AD連携で認証を行いたい
- 管理者に負担を掛けずに運用したい
- Azure ADなどの高額なidPは利用できない
- セキュリティポリシーにより、SaaSのidPやSPは利用できない
- Keycloak のWildfly からQuarkus へ変更したい
◉構成する idP / SP
idP | Keycloak or Powered BLUE idP for Keycloak |
GUIからのサーバー設定対応 |
SP | SAML対応Web or Powered BLUE Web for SSO / IDaaS |
GUIからのサーバー設定対応 |
◉ idP / Keycloak
一般的なKeycloakを利用できます
Keycloakのアプライアンスを利用することも出来ます
「Powered BLUE idP for Keycloak」
Powered BLUE idP for Keycloak 構成
- OS RedHat 8.x / RockyLinux 8.x 対応
- Keycloak
- GUIでのサーバーやアプリの設定
- アプライアンス
Keycloakの構成やDB設定
GUIからの
- サーバーの設定(Network / Firewall )
- ウィザードによるKeycloakの構成や設定(スタンドアロンやクラスター)
- DB 設定( H2 / MariaDB )
- DB 構成 ( 内蔵もしくは外部サーバーのどちらの構成にも対応 )
- Keycloak のバックアップ、リストア、バージョンアップ
- keycloak へのアクセスポート( 80 / 443 )
- リバースプロキシ内蔵&連携機能
- SSLサーバー証明書の登録
- アクティブモニタ(サービス監視・再起動・管理者への通知)
など対応しており、コマンドラインからのプログラムのインストールや設定は不要です
◉ スタンドアローンやクラスター構成 DBセットアップ
- データベース構成
- スタンドアローンやクラスター構成
- クラスター構成
Keycloakのバックアップ 例
Keycloakのバージョンアップ 例
ver 18.0.1 から ver 19.0.1 へ 変更 ( WildFlyからQuarkus 対応版へ変更)
① リバースプロキシ構成(有・無)
ダイレクトアクセス・モード Client ⇒ ( 443 / Keycloak )
- Keycloakを直接443番ポートで運用します
リバースプロキシ・モード Client ⇒ ( 443 / リバースプロキシ ⇒ 8080 / Keycloak ) 1台で構成
- リバースプロキシ経由でKeycloakへアクセスする運用です
② パス設定 (Quarkusでも任意のパスを指定できます)
https:// idp.keycloak.com / auth /
③ http・https ポート設定
443 / 8080 / 80 /etc
SSLサーバー証明書機能
- 自己証明のSSL証明書の作成機能
- パブリックなSSL証明書のインポート機能
サーバーの簡単運用
- サーバーのモニタリングやサービスの自動再起動
- パッチの自動適用機能
- 管理者への通知機能
* サーバーの自己監視機能により、外部の監視サービスを利用しない運用が可能
◉構成例
- サーバ側ホスト(IdP ) https://idp.example.jp (KEYCLOAK)
- クライアント側ホスト(SP ) https://www.example.jp (SSO クライアント設定)
- ユーザ名 demo (demo@example.jp)
◉ SP / Webアプライアンス
SAML認証に対応のWebサーバーとしては、SAMLやOpenID Connect認証に対応した「Powered BLUE Web for SSO / IDaaS」を利用します。今回はSAML認証のSPとして設定します。
この製品は
- SAML認証及びOIDC認証に対応のWeb機能
- Web/Mail/DNS/ftp(インターネットサーバー機能)
- Let’s Encrypt (フリープラグインで提供)
- WordPress(フリープラグインで提供)
- ひとり情シスでの運用に対応
のアプライアンスです
SAML/SPの設定
- SAML-SPの設定
- Webページの作成
などを行います
- エンドポイント URL IdP との通信に使用するURL。
- エンティティID クライアントの識別ID。
- SAML SP 証明書 IdP のSAML リクエストの署名に使用する公開鍵。
- 認証ルート
仮想サイトでSAML 認証を適用するウェブの絶対パス(ルート相対パス)を設定します。デフォルトは、「/saml」です。認証するパスを追加する場合は、このディレクトリの下層に作成する必要があります。サイト全体を認証する場合は「/」を指定してください。
SAML認証対応のWebページ
一般的なWebコンテンツのアップロードやWordPerssでのWebサイトの構築&SAML認証での運用に対応。Webサイトには「ユーザーアカウント不要」での運用が可能です。
![]() |
![]() |
一般的なWebコンテンツのWebサイト | WordPressのWebサイト |
◉idP・keycloak側の設定
- レルム名 saml-demo
- クライアントID https://www.example.jp/saml/endpoint/metadata
- レルムロール saml-demo-role
- ユーザ名 demo ( demo@example.jp)
レルムの追加
saml-demo
クライアントの追加
「ファイルを選択」をクリックし、ダウンロードして置いたSP メタデータ(このサイトの場合は
www.example.jp_metadata.xml )をインポートします。SP メタデータを使用することで、必要項目の入力を省略できます。
ロールの追加
例 saml-demo-role
ユーザーの追加
例 demo
パスワードの設定
ユーザーにロールの割り当て
idPのメタデータのダウンロード
サーバ側のエンドポイント情報が格納されたIdP メタデータファイルをダウンロードします。「クライアント」メニューの「インストール」の「Mod Auth Mellon files]を選択してzipファイルをダウンロードします。
ダウンロードしたzip ファイルを展開します。以下の3ファイルが含まれています
- client-cert.pem
- idp-metadata.xml
- sp-metadata.xml
◉SP側へのidPメタデータの登録
上記でダウンロード&展開した、Keycloak側の idp-metadata.xml ファイルをインポートします
SP側のSAML認証の適用
SAML認証パスの設定
例 /SAMLに認証を設定
◉動作認証の確認
1)認証が適用された http://www.example.jp/saml/ へアクセスします
2)IdP https://idp.example.jp にリダイレクトされ、認証用の画面が表示されます
3)認証後にターゲットのWebサイトが表示されます
Webページの表示
![]() |
![]() |
一般的なWebコンテンツのWebサイト | WordPressのWebサイト |
◉Keycloakを多要素認証で運用
Keycloakへのアクセスは「ID・パスワード認証」が標準設定です。
Keycloakを「ID・パスワード+SSLクライアント認証」で運用する構成例です
KeycloakをSSLクライアント認証(多要素認証)で運用する
◉各種Web システムへのSSO
一度のKeycloakの認証で、複数のWebシステムへSSOでアクセスできます
◉運用先
- VMware / Hyper-V
- AWS / Azure / FUJITSU Hybrid IT Service FJcloud-O (富士通) / VPS
◉デモサーバー
SAML認証の デモサーバー
終わりに
デモ環境で試してみたい方や詳しい話を聞いてみたい方などは、ムービットの お問い合わせフォーム からご連絡ください。