Azure Active Directoryを使った、Twitterのwebアプリへのシングルサインオンの実装方法をご紹介致します。
「いちいちアカウントとパスワード入れるのめんどくさいなぁ。」そんなことを思った経験はないでしょうか。まぁ最近だったらブラウザにパスワード記憶させればいいし、、、。まぁその通りです。ただし、ブラウザにパスワードを記憶させることができない環境(ゴリゴリにネットワークを閉じた社内の環境など)ではブラウザにパスワードを残すことはできません。そこで役に立つのがシングルサインオンです。
シングルサインオン(SSO)とは、1つのIDとパスワードで認証を行い、複数のWebサービスやクラウドサービスにアクセスする仕組みです。
実はこのシングルサインオンは別に新しいサービスではなく、十数年前からオンプレミス環境では構築されていました。最近はこのシングルサインオンという機能をクラウド上で実装し、オンプレにあるアプリだけではなく、SNSなどのネット上のサービスにも一つのIDでパスワード認証を行えるようになりました。
今回このブログでは、Azure Active DirectoryでTwitterのシングルサインオンを実装する方法をご紹介致します。
シングルサインオンでTwitterにログインする方法
①Azure Active Directoryにユーザの追加
②AADの管理するアプリケーションにTwitterを追加
③ユーザーの資格情報に、Twitterのログイン名とパスワードを追加
④Azure AD アクセス パネルからAADに登録したログイン名でサインインし、Twitterにログインする
以上の方法を行い、実際にシングルサインオンが実現できるのか、実証実験をしてみます。
実験①:規定ブラウザ(Chrome)でログインする
実験方法
Azure AD アクセス パネルに表示されているTwitterのロゴボタンをクリックすることで、シングルサインオンが可能かどうか実験
結果
Azure AD アクセス パネルにはサインインすることができ、正しくTwitterがアプリとして表示されていた。
Twitterのロゴボタンをクリックしシングルサインオンができるか確認した所、ユーザーの資格情報に登録したTwitterの認証情報でログインされず、別のツイッターアカウントでログインされてしまった。
考察
ブラウザにパスワードが保存されログイン維持を実行している場合、シングルサインオンよりもブラウザに残っているキャッシュが優先されてしまうということが分かった。したがって次はプライベートモードでシングルサインオンを試みる。
実験②:シークレットモードでログインしてみる
実験方法
規定ブラウザ(Chrome)をシークレットモードで起動し、Azure AD アクセス パネルからTwitterロゴをクリックしてシングルサインオンが可能かどうか実験
結果
シークレットモードでは、シングルサインオンに必要な拡張機能がインストールできず、シングルサインオンは失敗。
考察
Chromeの拡張機能の一部はシークレットモードでは機能しないということが判明しました。したがってシングルサインオンをTwitterで実装するには、対象のwebサイトのパスワードが保存されていない、ブラウザを使用することが必要である。そこで、実験用のブラウザ(FireFox)をインストールして、実験してみる。
実験③
新しくPCにインストールしたFirefoxで、実験①、②と同じ手順で実証実験を行う。
結果
成功!!
ユーザの資格情報に入力したツイッターアカウントにシングルサインインできました。
しかし、Twitterの仕様だと思うのですが、セキュリティのため、1回目にログインする際に登録した電話番号を入れなくてはいけませんでした。。(結局SSOできてないじゃん。笑)
まとめ
これまでオンプレミスで管理していたシングルサインオンですが、クラウドと統合したAAD環境を作ることで、多くのSNSにシングルサインオンできるということが分かりました。ただし一方で、セキュリティの観点から、初回ログイン時に電話番号を入力するなどの仕様もあり、IDとパスワードだけ知っていればログインするということはできない様です。まぁそれも踏まえ、ほんの数分でADの構築から、シングルサインオンを実現できるAzureは大変魅力的であると感じました。
参考URL
Azure AD アクセス パネル
https://myapps.microsoft.com
開発者のための Azure Active Directory
https://docs.microsoft.com/ja-jp/azure/active-directory/develop/active-directory-developers-guide
Azure Active Directoryで簡単認証~自前でユーザー管理しよう Nativeアプリ 前編~
https://blog.nextscape.net/archives/Date/2015/06/azuread05