Keycloakで外部アイデンティティー・プロバイダーと連携してみよう:Keycloak超入門(5)(3/3 ページ)
本連載では、近年注目されている認証プロトコル「OpenID Connect」をサポートするオープンソースのシングルサインオン(SSO)ソフトウェア「Keycloak」の活用方法を解説していきます。Keycloakは、OAuthやOpenID Connectに対応しており、GoogleやFacebookなどのユーザーを利用したSSOやアクセス制御が簡単に設定できます。
連携アプリの動作を確認する
設定が完了したら動作を確認してみましょう。連携アプリとして、Keycloakのユーザーアカウントサービスを使い、これにGoogleのアカウントで認証後、アクセスできるかどうかを確認します。
いったん管理コンソールからログアウトして、「demo」レルムのユーザーアカウントサービス(http://localhost:8080/auth/realms/demo/account)にアクセスします。ログイン画面の右側にGoogleのボタンが表示されていることが分かると思います(画面18)。
これをクリックすると、Googleのログイン画面(またはGoogleのアカウント選択画面)が表示されます。ログインするアカウントを選択してください(画面19)。
パスワードを入力します(画面20)。
認証が成功すると、以下のようなKeycloakのアカウント編集画面が表示されます(画面21)。
これでKeycloakのユーザーアカウントサービスにもログイン(つまりSSO)できました。今回は、Keycloakと連携したアプリケーションはありませんが、既にKeycloakと連携したアプリケーションがある場合は、それらにも再ログインを要求されることなくアクセスできます。
画面左部分の「Federated Identity」のリンクをクリックすると、Googleからユーザーが連携されたことが分かります(画面22)。
なお、このユーザーはKeycloakのデータベースにも自動的に登録されます。管理コンソールでユーザーを検索すると、確認できます(画面23)。
では、このユーザーが既に存在している場合はどうなるのでしょうか。Googleから連携されてKeycloakに登録されたこのユーザーをいったん削除し、IDがGoogleアカウントのメールアドレスと一致するユーザーをKeycloakに再登録してみます(ユーザーを追加したら、「クレデンシャル」タブでパスワードも設定する必要があります)(画面24)。
この状態で、再度Keycloakのユーザーアカウントサービスにアクセスします。すると、以下のような画面が表示されます(画面25)。
この状態で、「プロフィールの確認」ボタンをクリックすると、アカウント情報の更新画面が表示されます(画面26)。必要に応じて編集し、「送信」ボタンをクリックします。
元の画面に戻るので、今度は「既存のアカウントに追加する」ボタンをクリックします(画面27)。
Googleとアカウントをリンクする旨のメッセージが表示されます。最後にパスワードを入力して、本人であることを確認します(画面28)。
パスワードが正しければ、ログインが完了し、アカウントの編集画面が表示されます(画面29)。
まとめ
以上のように、Keycloakのアイデンティティー・ブローカー機能を使用して、SNS認証を実現するのはとても簡単です。前述の通り、デフォルトで多くのSNSに対応していますが、それでも不十分な場合はカスタマイズして追加することもできます。例えば、以下のように「LINE」による認証も実現することができます(画面30)。
カスタマイズの際、Keycloakのソースコードを直接修正する必要はありません。Keycloakには、カスタマイズを考慮して画面のUIや機能などを拡張するための仕組みが備わっています。
次回は、KeycloakでLDAP(Lightweight Directory Access Protocol)などの外部アイデンティティーストレージに連携する方法を説明します。多くの組織では既にActive DirectoryなどのLDAPサーバで、組織に属するユーザーが管理されているのではないかと思いますが、そのユーザーでSSOを実現するようにKeycloakの設定を行います。
筆者紹介
和田 広之(わだ ひろゆき)
野村総合研究所のオープンソースサポートサービス「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」について解説します。