シングルサインオンでユーザーの認証情報をまとめて管理

はじめに

こんにちは、Ryo です。本記事では、弊社サービスの GROWI.cloud でマネージドサービスとして提供している Keycloak と 情報共有ツール GROWI との連携方法について、シングルサインオンや SAML の認証フローも交えて解説します。

GROWI をご利用中の方で SAML 認証の設定にお悩みの方や、情報共有ツールをシングルサインオンの機能も込みで導入したいと検討されている方はぜひこの記事をご覧ください。

シングルサインオン (SSO) とは

まずは、SAML について触れる前にシングルサインオンについて解説します。

シングルサインオン (SSO:Single Sign-On) とは1つの ID とパスワードで、シングルサインオンに対応している複数の Web サービスやアプリケーションにログインするための仕組みです。

メールやグループウェア、 SNS などの各サービスで個々に ID とパスワードを登録すると、利用するサービスごとに ID とパスワードの組み合わせを覚えておく必要があり、管理が煩雑化します。「メモに残す」や覚えやすい簡単なパスワードを設定したところで外に情報が漏れやすくなってしまい情報漏洩につながる可能性が増えてしまいます。

シングルサインオンでは、1組の ID とパスワードでサービスにログインできるので、認証情報を管理する負担を軽減してくれます。

シングルサインオンを実現する認証方式は、大きく分けて4つありますが本記事では SAML 認証方式について解説します。

SAML とは

SAML(Security Assertion Markup Language)とは、シングルサインオンを実現するための認証方式です。異なるドメイン間でもユーザー認証を行うための認証情報をやり取りをするルール・プロトコルを指します。

SAML認証ではユーザー・SP (Service Provider)・IdP (Identity Provider)の間で認証の手続きが行われます。

SP

SP (Service Provider)はその名の通り提供されているサービス・システムのことを指します。

この後解説いたします SAML の認証フローでは GROWI がこの SP にあたります。

IdP

サービスやアプリケーションへのアクセスを試みるユーザーの ID やパスワードなどの認証情報を管理し提供する事業者やシステムを IdP と言います。

IdP に認証情報の管理を委ねることで SP はユーザーの認証情報の管理を行う必要がなくなります。

この後解説いたします SAML の認証フローでは GROWI.cloud でマネージドサービスとして提供している Keycloak がこの IdP にあたります。

Keycloak とは

Keycloak は Redhat 社により開発されたオープンソースのアイデンティティ管理ソフトウェアです。 OpenID Connect や SAML などのシングルサインオンのプロトコルに対応し、 IdP として利用できます。

Keycloak が提供している主な機能は公式ドキュメントのServer Admin(日本語版)に機能について記載がありますのでご覧ください。

弊社サービスの GROWI.cloud では、オープンソースであること、Keycloak 自身が複数の認証プロバイダと連携して認証情報の管理ができることを理由に Keycloak を導入し、一部のプランでマネージドサービスとして提供しています。

GROWI.cloud の料金・機能について詳しくはこちらをご覧ください。

Keycloak と連携した GROWI の図解

この章では、 Keycloak を用いて GROWI に SAML 認証でログインするフローについて図を用いて解説します。

認証のフロー

解説

  1. ユーザー A が GROWI にアクセスし、ログインの認証方法として SAML 認証を選択する
  2. GROWI は自身と関連付けられた Keycloak 上の realm でのログイン画面に飛ばす
  3. Keycloak で認証成功すると、認証結果を付加しつつ GROWI の SAML エントリポイントへリダイレクトする
  4. リダイレクトしてきたユーザー A から GROWI が認証結果を受け取ると無事に GROWI にログインできる

認証フローのイメージ

1 Keycloak × 複数 GROWI

1つの Keycloak に対して複数の GROWI を連携できます。

Keycloak に登録してある認証情報でどの GROWI にもログインできるようになるため特に規模の大きな組織においてユーザーの認証情報の管理に最適です。

GROWI.cloud での Keycloak 設定方法

GROWI.cloud ではビジネススタンダードプラン及びビジネスプロプランにて Keycloak をマネージドサービスとして提供しております。

  1. GROWI.cloud で立ち上げた Keycloak にアクセスし Administration Console を選択する
  2. 「GROWI」レルム内でユーザーやロール、グループを作成する
    • レルム(Realm)とは
      • Keycloak におけるレルム(Realm)とはユーザー、ロール、クレデンシャル、グループらをまとめてセットで管理するための範囲を指します。
      • GROWI.cloud で提供される Keycloak はデフォルトで「GROWI」レルムが作成され、そのレルム内での認証情報を設定できます。
  3. Keycloak の設定が完了後、GROWI.cloud の GROWI 詳細ページもしくは、Keycloak 詳細ページに行き対象の GROWI と連携させます
  4. 連携後、GROWI が再起動しますので再度立ち上がれば Keycloak との連携は完了です。

終わりに

ここまでご覧いただきありがとうございます。

今回は、SSO の一種である SAML 認証方式の紹介と、その認証フローの図解を交えながら GROWI と Keycloak の連携方法を解説してみました。

本記事を参考に GROWI と Keycloak を連携し、シングルサインオンを体験してみてください。

参考資料