Azure×EC-CUBEでお手軽ネットショップ構築

第10回[開発合宿]Microsoft Azure ADのアカウント機能を使用した、複数サイトへのシングルサインオン

開発の概要

前回の谷島氏と一緒に開発した、Microsoft Azure Active Directoryのアカウント機能と使用し、EC-CUBEを含む複数サイトにシングルサインオンできるかの検証を実施しました。

今回の目的として、アカウントの一元化により、ログインしたままの状態で各サイト間でシームレスな移動ができる環境の提供を目指すとともに、管理者側にアカウントを一元管理できる環境の提供を目指しました。

使用環境は下記のとおりです。

  • Microsoft Azure
  • WebMatrix…知らなかったけど、これはなかなか便利!
  • Fiddler…パケット内容の確認に使用

開発結果

すべての機能を試すことはできませんでしたが、Microsoft Azure Active Directory が提供する認証機能(OpenID機能)や、APIによるユーザ情報更新機能を使用することにより、今まで各サイトにて別個で管理されていたアカウント情報を一元化できそうなことがわかりました。

これにより、今までは各サイトにて個別に設置され、個別に管理されてきたお客様の認証情報やアカウント情報が、この機能を使用することで一元管理化できるようになり、お客様のWEB上での動きの統合管理や、自社提供サイト間の回遊性を高めることができそうなイメージがわいてきました。

開発のポイント

ドキュメントがなかったため、Fiddlerで通信内容を拾い上げ、同じようなクエリを投げるという作業を繰り返し行いました。ドキュメントが少なく、慣れない機能や難しそうな用語も多く、ちょっと敷居が高い部分がありますが、機能自体は結構実装しやすそうな感じです。

機能を有効に活用すれば、今まで苦労していたアカウント情報の統合管理といった部分で、これまでよりも簡単に、かつ色々なことができそうです。

開発した感想

ドキュメント関係が少なく、仕様調査といった初動の部分では苦労はしましたが、認証依頼と認証結果取得の手順さえわかれば、思っていたよりも簡単な認証結果が取得できることがわかりました。加えて、Windows Azure Active Directoryのアカウントは、アカウントの一括登録や、APIを使用したリアルタイムの更新なども可能とのことで、ユーザアカウント情報の一括登録や、各サイトで実施したアカウント情報更新の吸い上げ/各サイトへの適用などにも対応できそうなイメージがわいてきました。

今後の鍵を握るのは日本語ドキュメントの整備

逆に、残念なのは日本語のドキュメントが少ない点。このあたりをサンプルのルーチン付きでわかりやすくまとめてくれていれば、もっと多くの人に使ってもらえそうなのに、と感じました。

OpenIDの部分で時間を取られるかと思いきや、EC-CUBEに返ってきたあとの処理をあまり考えずに走ったので、逆にこちら側の処理の整理に手を取られてしまいました。

AzureADには多要素認証というもがあり、SMSへのショートメール送信など複数方式による認証を通らないとログインできないというモードもあり、ユーザごとに切り替え可能とのことで、たとえば管理者が社外からアクセスする場合のみSMS認証を求めるなど、いろいろなセキュリティ対応などもできそうです。

最近では開発の第一線から離れており、あまりガリガリとコードを書いておりませんでしたが、ガリガリと仕様を調べたり、コードを書いたりすることができ、なかなか楽しい時間を過ごすことができました。

おすすめ記事

記事・ニュース一覧