ソーシャル認証でFacebookとのSSOを1分で設定する

OpenAMには、「簡単なことは簡単に、複雑なことも可能に」という設計思想があります。今回はこれが実感できるソーシャル認証という機能を紹介します。


OpenAM 12.0から共通タスクページに「Configure Social Authentication」(ソーシャル認証の設定)という設定項目が追加されました。Facebook、Google、Microsoftまたはそれ以外のOpenID ConnectのOPのアカウントを使用して、OpenAM(およびOpenAMと連携するアプリケーション)へとSSOできるようにする機能です。今回は、それらの中からFacebook認証の動作確認をしてみたいと思います。

OpenAM 12.0をインストールして、ログインすると以下のページが表示されます。

commontaskこの画面の右側の真ん中辺りにある「Configure Facebook Authentication」のボタンをクリックすると、Facebook認証の設定ページが表示されます。

conffbauth2

画面上部の説明にあるFacebookの開発者サイトへのリンク(赤枠部分)をクリックし、Facebookにログインします。ここで新規アプリケーションとしてOpenAMを登録します。この際に入力するSite URLは、OpenAMのURLになります。

fb

アプリケーションを登録すると、FacebookはApp IDとApp Secretを発行するので、その値をOpenAMのFacebook認証の設定画面のClient IDとClient Secretに入力して、「作成」ボタンをクリックします。

conffbauth1

以上で設定は終了です。


では、実際にFacebookのアカウントでOpenAMへとログインできるか試してみましょう。

OpenAMとFacebookにログイン中の場合は、いったん両方からログアウトします。OpenAMのログイン画面にアクセスすると、以下のようなFacebookのロゴが追加されていることが分かります。

login

これをクリックすると、Facebookのログイン画面が表示されます。

fblogin

メールアドレスとパスワードを入力してログインボタンをクリックすると、Facebookの公開プロフィールにOpenAMがアクセスすることの許可を求める画面が表示されます。

fbconsent

OKボタンをクリックすると、Facebookと同時にOpenAMにもSSOできているはずです。この時、OpenAMはFacebookからユーザー情報を取得して、OpenAMにもそのユーザーの情報を登録しています。

endusermenu


このように、Facebookとの連携はApp IDとApp Secretを入力するだけで完了しますが、内部では以下の3つの設定が一括行われています。

  • Facebookとの連携の設定がされたOAuth 2.0/OpenID Connect認証モジュールの作成
  • 上記認証モジュールを含む認証連鎖の作成
  • Facebookの設定がされたソーシャル認証サービスの作成

認証モジュールと認証連鎖の設定は、アクセス制御 > / (最上位のレルム) > 認証 のタブをクリックして確認できます。FacebookSocialAuthenticationという認証モジュールとFacebookSocialAuthenticationServiceという認証連鎖が作成されていることが分かります。

fbAuthChn

ソーシャル認証サービスの設定は、アクセス制御 > / (最上位のレルム) > サービス のタブをクリックして確認できます。こちらにはSocial Authentication Implementationsというサービスが追加されているはずです。

fbserv

ソーシャル認証の設定によって作成された認証モジュールやサービスの設定は、環境に応じて変更することもできます。例えば、属性マッピングの定義を追加したり、カスタムモジュールを追加して独自の処理を実装することもできます。

authmodset

このようにOpenAMは、一般的なサービスとのSSOの設定が簡単できるだけでなく、環境に依存する複雑な拡張も実現できます。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中