月別アーカイブ: 2021年8月

idP ~ KeycloakでSAML認証対応Webを構築運用 / シングルサインオンでWebアクセス(多要素認証にも対応)

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クライアント認証」で運用する構成例です

 

https://www.mubit.co.jp/sub/products/blue/img2/arrow-finger.gif KeycloakをSSLクライアント認証(多要素認証)で運用する

 

 

 

各種Web システムへのSSO

一度のKeycloakの認証で、複数のWebシステムへSSOでアクセスできます

 

 

◉運用先

 

 

 

 

 

  • VMware / Hyper-V
  • AWS / Azure / FUJITSU Hybrid IT Service FJcloud-O (富士通) / VPS

 

 

◉デモサーバー

SAML認証の https://www.mubit.co.jp/sub/products/blue/img2/arrow-finger.gif デモサーバー

 

 

終わりに

デモ環境で試してみたい方や詳しい話を聞いてみたい方などは、ムービットの https://www.mubit.co.jp/sub/products/blue/img2/arrow-finger.gif お問い合わせフォーム からご連絡ください。