Keycloakで外部ユーザーストレージに連携してみよう:Keycloak超入門(6)(3/3 ページ)
本連載では、近年注目されている認証プロトコル「OpenID Connect」をサポートするオープンソースのシングルサインオン(SSO)ソフトウェア「Keycloak」の活用方法を解説していきます。Keycloakは、Active Directoryなどの外部ユーザーストレージと連携し、それらで管理されたユーザーによるシングルサインオンを実現できます。
動作確認
設定が完了したら動作確認をしてみましょう。いったん管理コンソールからログアウトし、「Demo」レルムのユーザーアカウントサービス(http://localhost:8080/auth/realms/demo/account)にアクセスします。ログイン画面が表示されたら、ldapaddで登録した「ichiro」というユーザーでログインしてみましょう(画面3)。
認証が成功すると、Keycloakのアカウント編集画面が表示されます(画面4)。
これで、外部ユーザーストレージのユーザーでKeycloakにログインできました。
では、このユーザーがユーザー一覧画面に表示されるかどうかを確認してみます。いったんログアウトして、管理者ユーザーで管理コンソールにログインします。先ほどと同様に、ユーザー一覧画面で「すべてのユーザーを参照」ボタンをクリックします(画面5)。
今度は、画面5のようにログインしたユーザーは表示され、まだログインしていないユーザーは表示されないはずです。
次に、このユーザーの情報を更新してみましょう。ユーザーIDのリンクをクリックして、ユーザーの編集画面を表示します(画面6)。
いずれかのフィールドを適当な値に変更して、「保存」ボタンをクリックします(画面7)。
すると、ユーザーが更新できない旨を示すエラーメッセージが表示されます(画面8)。
これは、「ユーザー フェデレ−ション プロバイダーの追加」ページで設定した「編集モード」が、デフォルトの「READ_ONLY」(読み取り専用)のままだったためです。
では、「編集モード」を「WRITABLE」(書き込み可能)に変更して、再度ユーザーの属性を変更してみましょう(画面9)。
今度はエラーメッセージが表示されることなく、389 Directory Serverに変更が反映されるはずです(図6)。
まとめ
以上のように、既存の外部ユーザーストレージとKeycloakを連携させることはとても簡単です。ソースコードや設定ファイルを修正する必要もありません。さらに、外部ユーザーストレージを認証に利用しているアプリケーションがあれば、データの移行などの手間をかけずに、シングルサインオンを実現できます。
なお、今回は紹介し切れませんでしたが、LDAP内で管理されたユーザーの拡張属性を追加して連携させることや、ユーザーストレージSPIを実装して、RDBMSで管理されたユーザーデータを活用するようなカスタムモジュールを開発することも可能です。
次回は、Keycloakを導入する場合に実用性の高い、リバースプロキシ型の構成を構築する手順について解説します。リバースプロキシ型の構成でKeycloakを導入することで、SAMLやOpenID Connectなどの認証プロトコルに対応していないレガシーなアプリケーションを、シングルサインオンできるようにしてみたいと思います。
筆者紹介
和田 広之(わだ ひろゆき)
野村総合研究所のオープンソースサポートサービス「OpenStandia」で、オープンソースのサポートや製品開発を担当。
- [連載]OSSによるアイデンティティ管理
Twitter: @wadahiro
筆者紹介
相田 洋志(あいだ ひろし)
野村総合研究所のオープンソースサポートサービス「OpenStandia」で、オープンソースの導入支援やプロジェクト推進を担当。
Twitter: @daian183
筆者紹介
田村 広平(たむら こうへい)
野村総合研究所のオープンソースサポートサービス「OpenStandia」で、OpenAMやKeycloakを中心としたOSSの研究開発・テクニカルサポートを担当。
- [連載]OSSによるアイデンティティ管理
- [「第6回OpenAMコンソーシアムセミナー」リポート]認証の最新動向と、OpenAMの適用事例を探る
Twitter: @tamura__246
筆者紹介
上田 直樹(うえだ なおき)
野村総合研究所のオープンソースサポートサービス「OpenStandia」で、OpenAMやKeycloakを中心としたOSSの研究開発・導入支援を担当。
Twitter: @naoki_dx_xb
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- なぜ「シングルサインオン」が必要なのか?
企業でのWebサービスの実現が具体的になるにつれ、パスワード/IDマネジメントが重視されるようになり、「シングル・サインオン」がますます注目を集めている。この連載では、シングル・サインオンの実践ステップなど具体的な考え方を紹介する。また、メタディレクトリやLDAPなど「ディレクトリ統合」をキーワードとしてシングル・サインオンを実現するための技術を分かりやすく解説する。(編集部) - 第1回 もはや企業のID管理で避けては通れない「IDaaS」とは?
これまで社内設置が当たり前だったアイデンティティ(ID)管理/認証システム。でも「クラウド」「モバイル」に代表される激烈な変化に対応できる、と本当に思っていますか? ID管理/シングルサインオンの新たな選択肢「IDaaS」について解説する連載開始! - 強力なSSOを実現するXML認証・認可サービス(SAML)
- OpenIG、OpenDJと連携したOpenAMの新機能
今回は、OpenAMの姉妹製品で既存アプリケーションを改修せずにシングルサインオンを可能にする「OpenIG」と、OpenAMのデフォルトデータストアである「OpenDJ」について解説します。