Azure Active Directory 認証ライブラリ

警告

このコンテンツは、以前の Azure AD v1.0 エンドポイント用です。 新しいプロジェクトには Microsoft ID プラットフォームを使用します。

Azure Active Directory 認証ライブラリ (ADAL) v1.0 を使用すると、アプリケーション開発者は、クラウドまたはオンプレミスの Active Directory (AD) に対してユーザーを認証し、API 呼び出しを保護するためのトークンを取得できます。 ADAL の次の機能を利用すると、開発者にとって認証が簡単になります。

  • アクセス トークンと更新トークンを保存する構成可能なトークン キャッシュ
  • アクセス トークンの期限が切れ、更新トークンが利用可能になったときの自動トークン更新
  • 非同期メソッド呼び出しのサポート

Note

Azure AD v2.0 ライブラリ (MSAL) をお探しですか? MSAL ライブラリ ガイドを参照してください。

警告

Azure Active Directory 認証ライブラリ (ADAL) は非推奨です。 Microsoft Authentication Library (MSAL) を使用してください。 ADAL を使用する既存のアプリケーションがある場合は、それらを MSAL に移行してください。

Microsoft がサポートするクライアント ライブラリ

プラットフォーム ライブラリ ダウンロード ソース コード サンプル リファレンス
.NET クライアント、Windows ストア、UWP、Xamarin iOS、Android ADAL .NET v3 NuGet GitHub デスクトップ アプリ
JavaScript ADAL.js GitHub GitHub シングルページ アプリ
iOS、macOS ADAL GitHub GitHub iOS アプリ
Android ADAL Maven GitHub Android アプリ JavaDocs
Node.js ADAL npm GitHub Node.js Web アプリ リファレンス
Java ADAL4J Maven GitHub Java Web アプリ リファレンス
Python ADAL GitHub GitHub Python Web アプリ リファレンス

Microsoft がサポートするサーバー ライブラリ

プラットフォーム ライブラリ ダウンロード ソース コード サンプル リファレンス
.NET OWIN for AzureAD NuGet GitHub MVC アプリ
.NET OWIN for OpenIDConnect NuGet GitHub Web アプリ
.NET OWIN for WS-Federation NuGet GitHub MVC Web アプリ
.NET Identity Protocol Extensions for .NET 4.5 NuGet GitHub
.NET JWT Handler for .NET 4.5 NuGet GitHub
Node.js Azure AD Passport npm GitHub Web API

シナリオ

リモート リソースにアクセスするクライアントで ADAL を使用する 3 つの一般的なシナリオを次に示します。

デバイスで実行しているネイティブ クライアント アプリケーションのユーザーを認証する

このシナリオでは、開発者はリモート リソース (Web API など) にアクセスする必要があるモバイル クライアントまたはデスクトップ アプリケーションを使用しています。 Web API は、匿名の呼び出しを許可しないので、認証されたユーザーのコンテキストで呼び出す必要があります。 Web API は、指定の Azure AD テナントによって発行されたアクセス トークンを信頼するように事前構成されています。 Azure AD は、そのリソースに対するアクセス トークンを発行するように事前構成されています。 クライアントから Web API を呼び出すのに、開発者は Azure AD での認証を容易にするために ADAL を使用します。 ADAL を使用する最も安全な方法は、ユーザーの資格情報を収集するためのユーザー インターフェイスをレンダリング (ブラウザー ウィンドウとしてレンダリング) することです。

ADAL により、ユーザーを認証し、Azure AD からアクセス トークンと更新トークンを取得し、そのアクセス トークンを使用して Web API を呼び出すのが容易になります。

Azure AD に対する認証を使用してこのシナリオを実証するコード サンプルについては、 ネイティブ クライアント WPF アプリケーションと Web APIに関するページをご覧ください。

Web サーバーで実行している機密クライアント アプリケーションを認証する

このシナリオでは、開発者はリモート リソース (Web API など) にアクセスする必要がある、サーバー上で実行されるアプリケーションを使用しています。 Web API は、匿名の呼び出しを許可しないので、承認されたサービスから呼び出す必要があります。 Web API は、指定の Azure AD テナントによって発行されたアクセス トークンを信頼するように事前構成されています。 Azure AD は、クライアントの資格情報 (クライアント ID とシークレット) を持つサービスに対するリソースへのアクセス トークンを発行するように事前構成されています。 ADAL では、Azure AD がWeb API を呼び出すのに使用されるアクセス トークンを返すことで、そのサービスの認証を容易にします。 また、ADAL はアクセス トークンをキャッシュしてその有効期間を管理し、必要に応じて更新します。 このシナリオを実証するコード サンプルについては、デーモン コンソール アプリケーションと Web API に関するページをご覧ください。

ユーザーの代わりにサーバーで実行している機密クライアント アプリケーションを認証する

このシナリオでは、開発者はリモート リソース (Web API など) にアクセスする必要がある、サーバー上で実行される Web アプリケーションを使用しています。 Web API は、匿名の呼び出しを許可しないので、認証されたユーザーに代わって承認されたサービスから呼び出す必要があります。 Web API は、指定の Microsoft Entra テナントによって発行されたアクセス トークンを信頼するように事前構成されています。そして、Microsoft Entra ID は、クライアントの資格情報を持つサービスに対するリソースへのアクセス トークンを発行するように事前構成されています。 ユーザーが Web アプリケーションで認証されると、アプリケーションは Microsoft Entra ID からユーザーの認証コードを取得できます。 その後、Web アプリケーションは、ADAL を使用して、アプリケーションに関連付けられた認証コードとクライアント資格情報を使って、ユーザーの代わりに Microsoft Entra ID からアクセス トークンと更新トークンを取得できます。 アクセス トークンを所有している Web アプリケーションは、トークンの有効期限が切れるまで Web API を呼び出すことができます。 トークンの有効期限が切れたら、Web アプリケーションは ADAL を使用して、以前に取得した更新トークンを使って新しいアクセス トークンを取得できます。 このシナリオを実証するコード サンプルについては、ネイティブ クライアントが Web API を呼び出し、その Web API がさらに別の Web API を呼び出すしくみに関するページをご覧ください。

参照