FacebookやGoogleなどのIDを利用した「ソーシャル・ログイン」には、ユーザー登録の手間を減らせるメリットがある。そこで、Windows Azure Active Directoryの「アクセス制御サービス(ACS)」を活用して、ECサイトでソーシャル・ログインを実現する方法を具体的に解説する。
これまでの連載では、組織内のユーザーが社内のアイデンティティ管理基盤を利用してクラウド・サービスを利用するためのアイデンティティ連携の基礎と実践を解説してきた。最終回となる今回は、まったく別の視点から社外の利用者(顧客)のアイデンティティ連携について解説する。具体的にはWindows Azure Active Directoryアクセス制御サービスを利用して、FacebookやGoogleなどのソーシャルIDを使ったECサイトへのログイン(ソーシャル・ログイン)を行うための方法について解説する。
今回解説するアイデンティティはこれまで解説した企業内とは違った位置付けなので、まず背景となっている社外向けサイト(特にECサイト)におけるアイデンティティに関する課題について紹介する。
ソーシャル・アイデンティティ連携サービスを展開しているjanrain社は、公式ブログ上でSamsung社の製品サイトの事例を基に社外サイトにおける課題とアイデンティティ連携によるソーシャル・ログインの効果を紹介している。
このブログによると、86%の消費者が会員登録を求めるとサイトから離脱してしまう、という数値が示された上で、会員登録の手間を省くためにソーシャル・ログインを導入したところ、以下の効果があったとしている。
これはソーシャル・ログインに対応することで、ECサイトなどにおけるコンバージョン率の向上やサイト内でのアクティビティの活性化を期待できること、さらにはサイトで販売している製品の売上向上などにつながる可能性があることを示している。
また同様にソーシャルIDを使ってサイトを利用する際、自分が購入しようとしている商品をソーシャル・ネットワーク上の友人に見てもらい意見をもらえる(SNSのタイムラインへのシェア)ことも可能になっている例が多い。これは顧客自身の購買を促すとともに顧客の周囲への認知を得ることができるため、ビジネス上のメリットは大きい。
第1回でも解説したように、Windows Azure Active Directory(以下、WAAD)は「Access Control」、「Directory」、「Graph」、「Authentication Library」という4つの要素で構成されている。今回利用する「アクセス制御サービス」とはこの中の「Access Control」を指し、「Access Control Service」の頭文字をとって「ACS」の略称で呼ばれている。ちなみに以前のAppFabric Access Control時代から機能は進化しており、現在のACSのバージョンは2.0なので、「ACSv2」という略称で呼ばれることも多い。
ACSが持つ機能は多岐にわたるが、今回利用する機能を簡単に説明すると「アイデンティティ・プロバイダとアプリケーション・サービスとの間のアイデンティティ連携を束ねるハブのようなもの」である。下図がACSの機能の概要を表したものだが、さまざまな外部アイデンティティ・プロバイダがサポートするさまざまなアイデンティティ連携プロトコルの違いを吸収し、WS-Federationに対応したアプリケーション・サービスへ橋渡しをしていることが分かる。
ACSのようなサービスを利用する一番のメリットは、アプリケーション・サービス側で個別に外部アイデンティティ・プロバイダとの連携の設定を行う必要がない点である。例えば今後新しい外部アイデンティティ・プロバイダが登場したとしても、基本的にアプリケーション・サービス側では追加の設定やサービス停止の必要はない。ACS側のアイデンティティ・プロバイダ接続設定さえすれば、即時アプリケーション・サービスへのログインに新しいアイデンティティ・プロバイダを利用できるようになる。
今回はWindows Azureで現在プレビュー公開されているWebサイトの機能を使い、クラウド上に簡単にECサイトを立ち上げ、ACS経由でFacebookおよびGoogleのIDでログインできるようにする。
そのためには、大きく分けて以下の作業が必要だ。
では、順番に設定を行っていく。
今回は、FacebookおよびGoogleのID情報を使ってログインをするため、ACSのIDプロバイダ設定にそれら2つのサービスを登録する。GoogleについてはACS側にあらかじめ設定がされているため特に準備作業は不要だが、FacebookについてはACSがFacebookアプリケーションとして動作してID情報を取得するため、Facebook側にアプリケーションとして登録をしておく必要がある。Facebookアプリケーションの作成・登録方法の詳細は右上の関連リンクの記事を参照していただきたい。
FacebookをACSのIDプロバイダとして登録するために必要なアプリケーションIDとアプリケーション・シークレット(OAuthのclient_idおよびclient_secret)を取得するため、Facebookアプリケーションの作成を行う。
まずはFacebookにログインし、画面右上のユーザー・プロファイルの横に表示される歯車のアイコンをクリックし、[アプリを作成]メニューを起動する。これが表示されない場合は先にFacebook開発者の登録を行う。具体的にはFacebook Developersのアプリ・ページを開いて、右上の[Register as a Developer]ボタンをクリックして開発者登録を済ませる。
Facebook Developersページへと画面が遷移するので、画面上部のメニューの[Apps]を開き、[新しいアプリを作成]ボタンをクリックする。
次に表示されるダイアログで、App NameおよびApp Namespaceに任意の値を入れるとアプリケーションが作成される。その次の画面では[連絡先メールアドレス]と[Facebookでログインするウェブサイト]の設定を行う。今回はACSが[Facebookでログインするウェブサイト]に該当するため、ACSのURLを登録する。
ここまでくれば後はACS側にここで取得したアプリケーションID(App ID)とアプリケーション・シークレット(App Secret)を登録するだけだ。Facebookアプリケーションの設定画面の上部にApp IDとApp Secretの値が表示されているので、ACSへその値を登録する。以下、その手順を説明する。
なお、ACS名前空間の作成および管理はWindows Azureの管理ポータルから行う。
左のナビゲーションよりActive Directoryを選択し、左下の[新規]ボタンをクリックすると新しいACS名前空間を作成できる。
作成が完了したACS名前空間を選択し、画面下部の[管理]をクリックしてACSの管理ポータル画面を開く(執筆時点でWindows Azureの管理ポータルとは統合されておらず、別の画面へ遷移する)。左側のナビゲーション・メニューに見えるIDプロバイダがACSから見たID連携元となり、FacebookやGoogleはここに登録する。
では、さっそくFacebookとGoogleを登録する。左側ナビゲーション・メニューの[IDプロバイダー]をクリックすると、あらかじめ登録されているIDプロバイダとしてWindows Live ID(Microsoftアカウント)が表示されるので、[追加]をクリックする。ここで[Facebookアプリケーション]を選択して[次へ]をクリックする。
すると、Facebookアプリケーションに関する情報を設定する画面へ遷移するため、先ほどFacebook上で取得したApp IDおよびApp Secretを設定し、保存する。
これでFacebookをACSのIDプロバイダとして登録できた。同じくGoogleについても登録を行うが、こちらはあらかじめ特に設定をする必要はなく単純に追加するだけでよい。設定が完了するとIDプロバイダのリストには以下のように登録したサービスが表示されるはずだ。
これでACSへのIDプロバイダ登録の作業は終わりなので、次はユーザーが利用するアプリケーションに関する情報をACSに証明書利用者アプリケーションとして登録する。
Copyright© Digital Advantage Corp. All Rights Reserved.