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

KeycloakとOpenID Connect認証対応のリバースプロキシで代理認証 / 既存Webの改修不要でSSO対応

【リバースプロキシ】

ID管理のKeycloakとOIDC認証対応のリバースプロキシ機能の組み合わせで、認証連携を行う場合の構成例です。ターゲットのWebサイトには、OIDC認証に対応のリバースプロキシ経由で既存Webへアクセスさせることが出来ます。

従来から運用のWebアプリは、SSOに対応していないことがほとんどです。その場合にはリバースプロキシを経由することで、既存のWeb側の改修は不要で OpenD Connect 認証機能や代理入力&代理認証によりシングルサインオンでの運用に対応します。

 

 

 

 

  • ID管理 Keycloak ( OpenID Provider / OP )
  • 認証対応のリバースプロキシ(Relying Party / RP)

 

 

【こんな用途に対応】

  • Keycloakの利用でidPの費用を抑えたい
  • SAML / OIDC未対応のWebを改修不要でSSOしたい
  • 自社WebをSaaS対応にしたい
  • メーカー製Webアプリを改修不要でSSOで利用したい
  • ユーザーにWebアプリの ID / パスワードを入力させたくない
  • ユーザーにWebアプリの ID / パスワードを公開したくない
  • ブラウザのみで利用したい
  • Active Directoryで認証したい(社内ADと連携)
  • 既存のWebサイトを多要素認証に対応させたい
  • VPNは負荷が高いので利用は避けたい

 

 

 

 

【Keycloak / OP】

 

 

一般的なKeycloakを利用できます。

 

またKeycloakとしては、 「Powered BLUE for idP 」のKeycloakアプライアンスを利用することも出来ます。

Keycloakアプライアンスの機能

Keycloakのアプライアンスは、GUIからのサーバーの基本設定およびKeycloakの構成(スタンドアロン・クラスター・バックアップ)などの設定に対応しています。

  • サーバーの設定(Network / Firewall )
  • ウィザードによるKeycloakの構成や設定(スタンドアロンやクラスター)
  • DB 設定( H2 / MariaDB )
  • DB 構成   ( 内蔵もしくは外部サーバーのどちらの構成にも対応 )
  • Keycloak のバックアップ、リストア、バージョンアップ
  • keycloak へのアクセスポート( 80 / 443 )
  • リバースプロキシ連携機能
  • SSLクライアント認証
  • SSLサーバー証明書の登録
  • OSなどのパッチ適用
  • アクティブモニタ(サーバーやサービス監視・再起動・管理者への通知)

コマンドラインからのプログラムのインストールや設定は不要

 

構成 例

 

 

 

 

 

 

 

①   リバースプロキシ構成(有・無)

ダイレクトアクセス・モード Client ⇒   ( 443 / Keycloak )

  • Keycloakを直接443番ポートで運用します

 

 

 

 

 

 

 

リバースプロキシ・モード  Client ⇒   ( 443 / リバースプロキシ ⇒ 8080 / Keycloak )  1台で構成

  • リバースプロキシ経由でKeycloakへアクセスする運用です

 

 

 

 

 

 

②  パス設定 (Quarkusでも任意のパスを指定できます)
https:// idp.keycloak.com / auth /

 

③  http・https ポート設定
443 / 8080 / 80  /etc

 

 

スタンドアローンやクラスター構成 DBセットアップ

 

 

 

 

 

 

 

クラスター構成

 

 

 

keycloak バージョン管理

例 ver 18.0.1 から19.0.1 へアップグレード

 

 

 

keycloak バックアップ

 

 

 

 

 

【認証対応のリバースプロキシ(RP)】

リバースプロキシとしては、OIDC認証やSAML認証に対応の Powered BLUE Reverse-Proxy for SSO / iDaaS」を利用することが出来ます。

  • マルチドメイン・マルチサイトでのリバースプロキシでの運用に対応
  • サイト毎にOIDC認証やSAML認証の異なる認証での運用に対応
  • サイト毎に個別のサイト管理者に権限を委譲での運用に対応
  • 代理認証機能
  • ヘッダー認証機能

 

 

【構成例】

今回のOIDC認証連携の構成パターンです

  • Keycloak / OP  ⇔ Reverse-Proxy / RP   ⇔ Web
  • OpenID Connect / OIDCでの認証

 

 

【設定手順の概要】

  1. Keycloak / OP の設定
    • 1.1. レルムの作成
    • 1.2. クライアントの作成
    • 1.3. ロールの作成
    • 1.4. ユーザーの作成とロールの割り当て
    • 1.5. OIDC設定ファイル(json)のダウンロード
  2. リバースプロキシ / RP の設定
    • 2.1. リバースプロキシの仮想サイトの作成
    • 2.2. KeycloakのOIDC設定ファイル(json)のアップロード
    • 2.3. OIDC認証の適用ディレクトの指定
    • 2.4. リバースプロキシの設定

 

【Keycloakの設定】

 

 

【レルムの作成】

名称設定 例 rev-o

作成後 rev-o

 

 

【クライアントの作成】

  • クライアントID 例 oidc-demo-client (名称は適宜付与)
  • クライアントプロトコル 選択 openid-connect
  • アクセスタイプ 選択 confidential
  • 有効なリダイレクトURL  例  https://www.example.jp/oidc/redirect_uri 

* リダイレクトURLは、リバースプロキシ / RP側のOIDCのURLを記載します

 

 

【ロールの追加】

ロールを割り当てられたユーザーのみがアクセスできます

例 oidc-demo-role

 

【ユーザーの作成】

  • ユーザー名 demo
  • メールアカウント demo@example.jp

 

 

【パスワードの設定】

作成したユーザーの「グレデンシャル」を選択してパスワードを設定します

 

 

【ユーザーへロールをアサイン】

例 oidc-demo-role

 

 

 

【OIDCの設定ファイル】

Keycloak からOIDC設定ファイルのダウンロード

例 oidc-demo-client 編集をクリック

例 インストール を選択

 

 

【JSONファイルのダウンロード】

keycloak / OP側 のjson形式の設定ファイルをダウンロードします

 

 

【 RPの設定】

Keycloakアプライアンス    Powered BLUE Reverse-Proxy for SSO / iDaaS」でのOIDCの設定例です

 

 

【リバースプロキシのサイト作成】

リバースプロキシの仮想サイト www.example.jp  を作成します

 

【KeycloakからダウンロードのJSONファイルの読み込み】

 

【データのインポート】

初期設定 」ボタンでデータを保存します

 

 

【OIDCの有効化】

OIDCを有効にする」に ✔ を入れて「保存」ボタンを押して設定を適用します

 

 

【認証ディレクトリ】

OIDC認証を適用するディレクトリを設定します

例 /test にOIDC認証を設定

https://www.example.jp/test   ディレクトリにOIDC認証を設定

 

 

【リバースプロキシを設定】

  • リバース元 https://www.example.jp/test/ (OIDC認証)
  • リバース先 https://www.xyz.com/

変更を適用する」ボタンを押して適用します

client   ⇒ https://www.example.jp/test/ ⇒ https://www.xyz.com/

 

 

 

【アクセス手順】

① https://www.example.jp/test にアクセス

② 初回は、Keycloak へリダイレクトされて認証を求められます

  • アカウント demo@example.jp
  • パスワード xxxxxxxx

③ 認証後にリバースプロキシ先の https://www.xyz.com/ のWebページが表示

 

 

 

【keycloak連携 / SAMLやOIDC認証に非対応のWebを改修不要でSSO化

 

 

KeycloakとSAML認証やOIDC認証(Open ID Connect)に未対応の既存Webへ、リバースプロキシから ユーザー情報 ( ID / パスワード )を代理入力してシングルサインオンで運用する構成。

SAML / OIDC  未対応のWeb

 

 

ID認識型リバースプロキシ

 

 

 

 

 

リバースプロキシは、SAML / OIDC認証に対応の「ID認識型リバースプロキシ」

Powered BLUE ReverseProxy for SSO / IDaaS

で構築運用します。

 

アプライアンスの機能

  • リバースプロキシ機能
  • SAMLやOIDC認証(SP / RP 機能  *1 )
  • バックエンドのWebへユーザー情報の代理入力機能&代理認証機能
  • ヘッダー認証機能
  • SSLクライアント認証
  • GUIから設定や運用

を有しており、任意の場所で自社管理でオールインワンでの運用を行うことが出来ます。

*1  SAML認証時はSP (Service Provider)  OIDC認証時はRP(Relying Party)という名称です

 

 

【代理認証

SAML / OIDC認証対応の「ID認識型リバースプロキシ」から、既存のWebサービスへ「ID / パスワード」を代理入力&代理認証を行います。 *2

  1. ユーザー操作でのWebサービスへの「ID / パスワード」の入力不要
  2. ID / パスワード認証のWebサービスをSSOのメンバーとして構成

*2  SP機能のリバースプロキシと代理入力のリバースプロキシを分離して多段構成での運用にも対応

 

 

【idP連携での既存Webの構成

idPと連携してSAML認証やOIDC認証に未対応のレガシーな既存Webをシングルサインオンのメンバーとして構成。

  • idPとリバースプロキシの認証連携(SAML / OIDC)
  • リバースプロキシとWebでの代理認証
  • 既存のWebシステムは WANやLAN の任意の場所に設置可能

 

 

【SSOに必要な機器】

  1.  idP / Keycloak
  2.  SAML / OIDC認証機能のID認識型リバースプロキシ( ユーザー情報の代理入力機能 )
  3.  既存のWebサービス ( Webの改修は不要 / エージェント不要 )
  4.  ブラウザ(プラグイン不要)

 

 

 

 

 

【Keycloakとの代理認証・SSOでのステップ】

 

 

 

  1. SAML / OIDC認証対応のリバースプロキシへアクセス
  2. 初回のみ idP / Keycloak へアクセス
  3. Keycloak の認証後にリバースプロキシからバックエンドWebへユーザー情報を代理入力
  4. バックエンドのWebへ自動ログイン

 

 

 

 

 

 

 

 

【各種WebへのSSO】

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

 

 

 

 

 

 

 

 

SSLクライアント認証の併用(多要素認証/MFA)

 

 

 

SSLクライアント認証でKeycloak / idPやリバースプロキシへの認証を強化

  1. idPとのSAML / OIDC認証
  2. SSLクライアント認証

 

クライアント証明書 〇 クライアント証明書 ✕

 

 

 

 

 

 

【KeycloakとActive Directory連携でのSSO

 

 

 

Active DirectoryとKeycloakを連携

  1. keycloakとActive Directoryの連携
  2. Keycloakとリバースプロキシは、SAML / OIDC認証
  3. リバースプロキシとWebは代理認証

 

 

【アプライアンスの簡単運用】

情シスの負担軽減での運用に対応

  • サーバーの自己監視やサービスの自動再起動機能
  • パッチのスケジュールアップデート機能
  • 管理者への通知機能

 

 

 

【運用先】

対応の環境

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

 

【お問合せ】

 

 

 

ご質問やご相談など