Reading Time: 1 minutes

◆ 今回の記事のポイント ◆
・ PaaS型クラウドサービスとの間でSSOを実現する方法について解説

前回、前々回とAzure ADとSaaS型クラウドサービスの関連付けを行い、Azure ADにサインインするだけでクラウドサービスへのアクセスが実現するシングルサインオンの設定について解説をしました。一方、認証基盤をAzure ADに一本化させていこうとすると、自社開発のWebアプリケーションもクラウドサービスで実行させるのであればAzure ADで認証させたいというニーズも出てくることでしょう。そこで、今回はAzure ADとWebアプリケーションの関連付けを行い、PaaS型クラウドサービスとの間でシングルサインオンを実現する方法について解説します。

Webアプリケーションを実装するためのPaaS型クラウドサービスは世の中に色々ありますが、Microsoft Azureを利用すると、Azure ADとの関連付けが非常に簡単にできるので、ここではMicrosoft AzureのWebホスティングサービス(Azure App Service)とAzure ADを関連付けていきます。

Azure App Serviceではアプリを追加すると、Webアプリケーションにアクセスする際に利用する認証サービスを選択できるようになっています。

認証サービスにはAzure ADはもちろん、そのほかにもFacebook、Google、Twitter、Microsoft(マイクロソフトアカウント)が選択できます。Azure ADを利用する場合、Azure App Serviceの認証設定は[認証/承認]から[App Service認証]を有効にし、[要求が認証されない場合に実行するアクション]から[Azure Active Directoryでのログイン]を選択します。さらに、[認証プロバイダー]から[Azure Active Directory]を選択してAzure ADの設定を行います。

[Azure Active Directoryの設定]画面では、[管理モード]から[簡易]を選択し、[新しいADアプリを作成する]を選択して、アプリを作成するように設定します。ここまでの設定を行えば、必要な認証の設定は完了です。

ちなみに、[Azure Active Directoryの設定]画面で[管理モード]の設定を行うと、自動的にAzure ADに「アプリケーション」が作成されます。

Azure ADではセキュリティ上の理由から、どこのアプリケーションだかわからないようなアプリケーションから認証させてくれ!という要求は受け付けず、あらかじめ登録されたアプリケーションからの認証要求だけを受け付けるような仕組みを採用しています。このとき、「あらかじめ登録されたアプリケーション」を登録する仕組みが上図で設定している「アプリケーション(アプリ)」に当たります。そのため、Azure App Serviceからアプリケーションを作成すると、その結果はAzure ADの[アプリの登録]画面から確認できます。

Azure ADの認証機能を利用するアプリケーションは皆、事前にAzure ADにアプリケーションの情報を登録する必要があります。前回紹介したSaaS型クラウドサービスの場合も、[アプリの登録]にクラウドサービスの情報がアプリケーションとして自動的に登録されています。

[Azure Active Directoryの設定]画面の[管理モード]設定の話で少し脱線してしまいましたが、ここまでのAzure App Serviceの設定が完了すればPaaS型クラウドサービスとAzure ADの連携設定は完了です。

あとは実際に提供するWebアプリケーションをAzure App Serviceにアップロードすれば完了です。ここでは、Azure App Serviceの画面から[App Service Editor]を起動し、default.aspという名前のページを作成しておきます。ここではWebページ作成の部分を簡略化するためにQiitaで公開されているサンプルページ(https://qiita.com/Aida1971/items/b7e7d3b0d70fabc9f609)を拝借し、Azure ADでサインインしたユーザーの情報が画面に表示されるページを作って動きを確認してみます。

Webページができたら実際にアクセスしてみましょう。

Azure App Serviceで生成されたURLにアクセスすると、Azure ADのサインイン画面が表示されます。ここで、適当なAzure ADユーザーでサインインすると、以下のような画面が表示されます。この画面で[承諾]をクリックすると、サインインしたユーザーに対してWebアプリケーションに対するアクセス許可が自動的に割り当てられ、Webページへアクセスできるようになります。

SaaS型クラウドサービスをAzure ADと関連付けするときは、だれに対してアクセス許可を与えるかを明確に設定していましたが、PaaS型クラウドサービスの場合はその設定を行っていません。これはOAuth 2.0というプロトコルを使ってクラウドサービスとAzure ADを関連付けしているからです。

無事にアクセスが完了すると、以下のようにサンプルページが表示されます。

サンプルページでは、サインインしたユーザーの情報が表示されています。OAuth 2.0ではSAMLプロトコルと同じようにトークンを使ってWebアプリケーションにアクセスしているため、トークンの中に格納されている情報を取り出してWebページに表示させることができるためです。そのほか、トークン内の情報を活用すれば、サインインしたユーザーの情報に基づいて条件分岐を行い、Webページのパーソナライズを行ったりすることも可能です。

ここまで前回、前々回と合わせて3回にわたって様々なアプリケーション/クラウドサービスをAzure ADと関連付ける方法について見てきました。企業で使用するクラウドサービスの認証機能をAzure ADに集約させれば、ユーザーはAzure ADの認証情報(ユーザー名/パスワード)だけで、どこにでもアクセスできるようになるため、ユーザー名/パスワードの組み合わせをいくつも覚えなければならない地獄から解放されるメリットをもたらします。

筆者紹介
国井 傑 (くにい すぐる)
株式会社ソフィアネットワーク所属。インターネットサービスプロバイダでの業務経験を経て、1997年よりマイクロソフト認定トレーナーとしてインフラ基盤に関わるトレーニング全般を担当。Azure ADを中心としたトレーニングの登壇やトレーニングコースの開発に従事するだけでなく、ブログ等のコミュニティ活動も評価され、2006年からAzure AD/Active Directoryの分野におけるMicrosoft MVPを12年連続で受賞する。
主な著作に『ひと目でわかるAzure Information Protection』 (日経BP)、『徹底攻略MCP問題集 Windows Server 2016』 (インプレスジャパン)、『ひとり情シスのためのWindows Server逆引きデザインパターン』 (エクスナレッジ) など。


▼▼ 過去記事はこちら ▼▼

第6回 Azure ADによるクラウドサービスの管理(1)【MicrosoftのMVP解説!Azure ADの虎の巻】
第7回 Azure ADによるクラウドサービスの管理(2)【MicrosoftのMVP解説!Azure ADの虎の巻】

▼▼ 別シリーズのブログ記事もチェック! ▼▼
【MicrosoftのMVP解説!Active Directoryのハウツー読本】第1回 Active Directoryの必要性


フィードバックフォーム

当サイトで検証してほしいこと、記事にしてほしい題材などありましたら、以下のフィードバックフォームよりお気軽にお知らせください。