Azure Active Directory 認証ライブラリAzure Active Directory Authentication Libraries

Azure Active Directory 認証ライブラリ (ADAL) v1.0 を使用すると、アプリケーション開発者は、クラウドまたはオンプレミスの Active Directory (AD) に対してユーザーを認証し、API 呼び出しを保護するためのトークンを取得できます。The Azure Active Directory Authentication Library (ADAL) v1.0 enables application developers to authenticate users to cloud or on-premises Active Directory (AD), and obtain tokens for securing API calls. ADAL の次の機能を利用すると、開発者にとって認証が簡単になります。ADAL makes authentication easier for developers through features such as:

  • アクセス トークンと更新トークンを保存する構成可能なトークン キャッシュConfigurable token cache that stores access tokens and refresh tokens
  • アクセス トークンの期限が切れ、更新トークンが利用可能になったときの自動トークン更新Automatic token refresh when an access token expires and a refresh token is available
  • 非同期メソッド呼び出しのサポートSupport for asynchronous method calls

注意

Azure AD v2.0 ライブラリ (MSAL) をお探しの場合には、Looking for the Azure AD v2.0 libraries (MSAL)? MSAL ライブラリ ガイドを参照してください。Checkout the MSAL library guide.

Microsoft がサポートするクライアント ライブラリMicrosoft-supported Client Libraries

プラットフォームPlatform ライブラリLibrary ダウンロードDownload ソース コードSource Code サンプルSample リファレンスReference
.NET クライアント、Windows ストア、UWP、Xamarin iOS、Android.NET Client, Windows Store, UWP, Xamarin iOS and Android ADAL .NET v3ADAL .NET v3 NuGetNuGet GitHubGitHub デスクトップ アプリDesktop app リファレンスReference
.NET クライアント、Windows ストア、Windows Phone 8.1.NET Client, Windows Store, Windows Phone 8.1 ADAL .NET v2ADAL .NET v2 NuGetNuGet GitHubGitHub デスクトップ アプリDesktop app
JavaScriptJavaScript ADAL.jsADAL.js GitHubGitHub GitHubGitHub シングルページ アプリSingle-page app
iOS、macOSiOS, macOS ADALADAL GitHubGitHub GitHubGitHub iOS アプリiOS app リファレンスReference
AndroidAndroid ADALADAL MavenMaven GitHubGitHub Android アプリAndroid app JavaDocsJavaDocs
Node.jsNode.js ADALADAL npmnpm GitHubGitHub Node.js Web アプリNode.js web app リファレンスReference
JavaJava ADAL4JADAL4J MavenMaven GitHubGitHub Java Web アプリJava web app リファレンスReference
PythonPython ADALADAL GitHubGitHub GitHubGitHub Python Web アプリPython web app リファレンスReference

Microsoft がサポートするサーバー ライブラリMicrosoft-supported Server Libraries

プラットフォームPlatform ライブラリLibrary ダウンロードDownload ソース コードSource Code サンプルSample リファレンスReference
.NET.NET OWIN for AzureADOWIN for AzureAD NuGetNuGet GitHubGitHub MVC アプリMVC App
.NET.NET OWIN for OpenIDConnectOWIN for OpenIDConnect NuGetNuGet GitHubGitHub Web アプリWeb App
.NET.NET OWIN for WS-FederationOWIN for WS-Federation NuGetNuGet GitHubGitHub MVC Web アプリMVC Web App
.NET.NET Identity Protocol Extensions for .NET 4.5Identity Protocol Extensions for .NET 4.5 NuGetNuGet GitHubGitHub
.NET.NET JWT Handler for .NET 4.5JWT Handler for .NET 4.5 NuGetNuGet GitHubGitHub
Node.jsNode.js Azure AD PassportAzure AD Passport npmnpm GitHubGitHub Web APIWeb API

シナリオScenarios

リモート リソースにアクセスするクライアントで ADAL を使用する 3 つの一般的なシナリオを次に示します。Here are three common scenarios for using ADAL in a client that accesses a remote resource:

デバイスで実行しているネイティブ クライアント アプリケーションのユーザーを認証するAuthenticating users of a native client application running on a device

このシナリオでは、開発者はリモート リソース (Web API など) にアクセスする必要があるモバイル クライアントまたはデスクトップ アプリケーションを使用しています。In this scenario, a developer has a mobile client or desktop application that needs to access a remote resource, such as a web API. Web API は、匿名の呼び出しを許可しないので、認証されたユーザーのコンテキストで呼び出す必要があります。The web API does not allow anonymous calls and must be called in the context of an authenticated user. Web API は、指定の Azure AD テナントによって発行されたアクセス トークンを信頼するように事前構成されています。The web API is pre-configured to trust access tokens issued by a specific Azure AD tenant. Azure AD は、そのリソースに対するアクセス トークンを発行するように事前構成されています。Azure AD is pre-configured to issue access tokens for that resource. クライアントから Web API を呼び出すのに、開発者は Azure AD での認証を容易にするために ADAL を使用します。To invoke the web API from the client, the developer uses ADAL to facilitate authentication with Azure AD. ADAL を使用する最も安全な方法は、ユーザーの資格情報を収集するためのユーザー インターフェイスをレンダリング (ブラウザー ウィンドウとしてレンダリング) することです。The most secure way to use ADAL is to have it render the user interface for collecting user credentials (rendered as browser window).

ADAL により、ユーザーを認証し、Azure AD からアクセス トークンと更新トークンを取得し、そのアクセス トークンを使用して Web API を呼び出すのが容易になります。ADAL makes it easy to authenticate the user, obtain an access token and refresh token from Azure AD, and then call the web API using the access token.

Azure AD に対する認証を使用してこのシナリオを実証するコード サンプルについては、 ネイティブ クライアント WPF アプリケーションと Web APIに関するページをご覧ください。For a code sample that demonstrates this scenario using authentication to Azure AD, see Native Client WPF Application to Web API.

Web サーバーで実行している機密クライアント アプリケーションを認証するAuthenticating a confidential client application running on a web server

このシナリオでは、開発者はリモート リソース (Web API など) にアクセスする必要がある、サーバー上で実行されるアプリケーションを使用しています。In this scenario, a developer has an application running on a server that needs to access a remote resource, such as a web API. Web API は、匿名の呼び出しを許可しないので、承認されたサービスから呼び出す必要があります。The web API does not allow anonymous calls, so it must be called from an authorized service. Web API は、指定の Azure AD テナントによって発行されたアクセス トークンを信頼するように事前構成されています。The web API is pre-configured to trust access tokens issued by a specific Azure AD tenant. Azure AD は、クライアントの資格情報 (クライアント ID とシークレット) を持つサービスに対するリソースへのアクセス トークンを発行するように事前構成されています。Azure AD is pre-configured to issue access tokens for that resource to a service with client credentials (client ID and secret). ADAL では、Azure AD がWeb API を呼び出すのに使用されるアクセス トークンを返すことで、そのサービスの認証を容易にします。ADAL facilitates authentication of the service with Azure AD returning an access token that can be used to call the web API. また、ADAL はアクセス トークンをキャッシュしてその有効期間を管理し、必要に応じて更新します。ADAL also handles managing the lifetime of the access token by caching it and renewing it as necessary. このシナリオを実証するコード サンプルについては、デーモン コンソール アプリケーションと Web API に関するページをご覧ください。For a code sample that demonstrates this scenario, see Daemon console Application to Web API.

ユーザーの代わりにサーバーで実行している機密クライアント アプリケーションを認証するAuthenticating a confidential client application running on a server, on behalf of a user

このシナリオでは、開発者はリモート リソース (Web API など) にアクセスする必要がある、サーバー上で実行される Web アプリケーションを使用しています。In this scenario, a developer has a web application running on a server that needs to access a remote resource, such as a web API. Web API は、匿名の呼び出しを許可しないので、認証されたユーザーに代わって承認されたサービスから呼び出す必要があります。The web API does not allow anonymous calls, so it must be called from an authorized service on behalf of an authenticated user. Web API は、指定の Azure AD テナントによって発行されたアクセス トークンを信頼するように事前構成されています。そして、Azure AD は、クライアントの資格情報を持つサービスに対するリソースへのアクセス トークンを発行するように事前構成されています。The web API is pre-configured to trust access tokens issued by a specific Azure AD tenant, and Azure AD is pre-configured to issue access tokens for that resource to a service with client credentials. ユーザーが Web アプリケーションで認証されると、アプリケーションは Azure AD からユーザーの認証コードを取得できます。Once the user is authenticated in the web application, the application can get an authorization code for the user from Azure AD. その後、Web アプリケーションは、ADAL を使用して、アプリケーションに関連付けられた認証コードとクライアント資格情報を使って、ユーザーの代わりに Azure AD からアクセス トークンと更新トークンを取得できます。The web application can then use ADAL to obtain an access token and refresh token on behalf of a user using the authorization code and client credentials associated with the application from Azure AD. アクセス トークンを所有している Web アプリケーションは、トークンの有効期限が切れるまで Web API を呼び出すことができます。Once the web application is in possession of the access token, it can call the web API until the token expires. トークンの有効期限が切れたら、Web アプリケーションは ADAL を使用して、以前に取得した更新トークンを使って新しいアクセス トークンを取得できます。When the token expires, the web application can use ADAL to get a new access token by using the refresh token that was previously received. このシナリオを実証するコード サンプルについては、ネイティブ クライアントが Web API を呼び出し、その Web API がさらに別の Web API を呼び出すしくみに関するページをご覧ください。For a code sample that demonstrates this scenario, see Native client to Web API to Web API.

関連項目See Also