ニュース
» 2021年05月28日 09時00分 公開

Microsoft MVPが解説「Azure AD」3つの認証フローと使い分け、認証エラーの対処法

MicrosoftのクラウドベースのID管理、認証基盤「Microsoft Azure Active Directory」を使った認証フローの種類は、大きく分けて3つある。それらはどう違うのか。利用が適するシーンと併せて解説する。

[唐澤正和,ヒューマン・データ・ラボラトリ]

 IDと認証を担うクラウドベースの管理基盤が「Microsoft Azure Active Directory」(以下、Azure AD)だ。単純に認証のために使うだけであれば迷うことはないが、トラブルが発生した場合などには、認証フローが最も頭を悩ませるポイントになる。Microsoft MVPの大川貴志氏(内田洋行ITソリューションズ)は、「Microsoft 365 Virtual Marathon 2021 Japanese Track」で、Azure ADによる認証の仕組みや、認証フローの種類と使い分け、適した利用シーンなどについて解説した。

「Azure AD v1」と「Azure AD v2」の違い

 自社開発のWebアプリやSaaS(Software as a Service)アプリに、Microsoft 356のユーザーIDとパスワードでログインしたい。こうした時に、必要となるのがAzure ADによる認証だ。大川氏は、「Azure ADを介することで、Microsoft 356が保有しているID情報を使って、さまざまなアプリケーションの認証を行うことが可能になります。アプリケーション開発者にとっては、ユーザー管理や認証設計が不要となるため、業務ロジックの開発に専念できます。一方で、その認証フローは非常に複雑で、トラブル時にハマりやすい箇所でもあります」と指摘する。

 Azure ADは、どのようなフローで認証を行っているのだろうか。まず、大川氏は、Azure ADの設定のポイントについて紹介した。

 Azure ADには認証エンドポイントとして、「Azure AD v1」と「Azure AD v2」の2つのバージョンがある。v1はAzure ADベースで、組織アカウントのみをサポートする。v2はMicrosoft IDプラットフォームベースで、組織や個人、B2Cアカウントをサポートする。

 大川氏は「ここで注意してほしいのが、v1は非推奨であるという点です。v2の認証エンドポイントを使用するのが基本です」とアドバイスする。

 認証プラットフォームとしては、WebアプリやSPA(シングルページアプリケーション)、モバイルアプリ、Windowsデスクトップアプリをサポートする。特に、SPAでは、認可コードの横取り攻撃を防止する「PKCE」(Proof Key for Code Exchange by OAuth Public Clients)に対応している。

 APIのアクセス許可を取る場合には、Azure ADを介してアクセスできるリソースを設定しておき、ログインやトークン要求時に「スコープ」でこのリソースを指定する。これによって、ユーザーは、Graphリソースや他のAzure ADで保護されたアプリケーションにアクセスできるようになるという。

(出典:SlideShareで公開の資料より)

 Azure ADの設定後、認証エラーが発生した際の対処法として、「認証エラーが発生した場合には、エラーのコードとそれに関わるドキュメントのリンクが記載されたエラーメッセージが表示されます。細かくエラーの内容を返してくれるので、このメッセージをしっかり見れば解決することが多い」とアドバイスした。

Azure ADの3つの認証フローと使い分け、適した利用ケース

 ここまでのAzure ADの認証設定を踏まえた上で、大川氏は、実際にAzure ADで認証を行う際の認証フローの種類とその使い分け、適した利用ケースについて解説した。

 Azure ADを使った認証フローの種類は、「OAuth/Open ID Connect」「資格情報」「On-Behalf-Of」の大きく3つに分けられるという。

Copyright © ITmedia, Inc. All Rights Reserved.

会員登録(無料)

ホワイトペーパーや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます。