Microsoft ID プラットフォームの認証ライブラリ

次の表は、いくつかのアプリケーションの種類に対する Microsoft 認証ライブラリのサポートを示しています。 これには、ライブラリ ソース コードへのリンク、アプリのプロジェクトのパッケージを取得する場所、ライブラリでユーザーのサインイン (認証)、保護された Web API へのアクセス (認可)、またはその両方がサポートされるかどうかが含まれます。

Microsoft ID プラットフォームは、認定 OpenID プロバイダとして OpenID Foundation に認定されています。 Microsoft Authentication Library (MSAL) や Microsoft がサポートしている別のライブラリではないライブラリを使用する場合は、認定 OpenID Connect 実装のものを選択します。

OAuth 2.0 または OpenID Connect 1.0 の独自のプロトコルレベル実装を手作業でコーディングする場合は、各標準の仕様におけるセキュリティの考慮事項に細心の注意を払い、Microsoft SDL に見られるような安全なソフトウェア設計と開発の手法に従ってください。

シングルページ アプリケーション (SPA)

シングルページ アプリケーションは、ブラウザー上で完全に実行され、ページ データ (HTML、CSS、JavaScript) を動的に、またはアプリケーションの読み込み時にフェッチします。 Web API を呼び出して、バックエンド データ ソースとやり取りできます。

SPA のコードは完全にブラウザーで実行されるため、シークレットを安全に格納できないパブリック クライアントと見なされます。

言語/フレームワーク プロジェクト
GitHub
Package 取得
started
ユーザーのサインイン Web API へのアクセス 一般提供 (GA) または
パブリック プレビュー1
Angular MSAL Angular v22 msal-angular チュートリアル ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
Angular MSAL Angular3 msal-angular ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
AngularJS MSAL AngularJS3 msal-angularjs ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 パブリック プレビュー
JavaScript MSAL.js v22 msal-browser チュートリアル ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
JavaScript MSAL.js 1.03 msal-core ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
React MSAL React2 msal-react チュートリアル ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA

1Microsoft Azure プレビューの追加利用規約」は、パブリック プレビューのライブラリにも適用されます。

2PCKE のみを使用した認証コード フロー (推奨)。

3暗黙的な許可のフローのみ。

Web アプリケーション

Web アプリケーションでは、HTML、CSS、および JavaScript を生成し、ユーザーの Web ブラウザーに送信してレンダリングするサーバーでコードを実行します。 ユーザーの ID は、ユーザーのブラウザー (フロントエンド) と Web サーバー (バックエンド) の間のセッションとして保持されます。

Web アプリケーションのコードは Web サーバー上で実行されるため、シークレットを安全に格納できる機密クライアントと見なされます。

言語/フレームワーク プロジェクト
GitHub
Package 取得
started
ユーザーのサインイン Web API へのアクセス 一般提供 (GA) または
パブリック プレビュー1
.NET MSAL.NET Microsoft.Identity.Client ライブラリでは、ユーザー サインインの ID トークンを要求できません。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
.NET Microsoft.IdentityModel Microsoft.IdentityModel Library cannot request ID tokens for user sign-in.2 Library cannot request access tokens for protected web APIs.2 GA
ASP.NET Core ASP.NET Core Microsoft.AspNetCore.Authentication クイックスタート ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できません。 GA
ASP.NET Core Microsoft.Identity.Web Microsoft.Identity.Web クイックスタート ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
Java MSAL4J msal4j クイックスタート ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
Spring spring-cloud-azure-starter-active-directory spring-cloud-azure-starter-active-directory チュートリアル ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
Node.js MSAL Node msal-node クイックスタート ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
Python MSAL Python msal クイックスタート ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA

1Microsoft Azure プレビューの追加利用規約」は、パブリック プレビューのライブラリにも適用されます。

2Microsoft.IdentityModel ライブラリはトークンの "検証" のみを行います。ID やアクセス トークンを要求することはできません。

デスクトップ アプリケーション

デスクトップ アプリケーションは通常は、ユーザー インターフェイスを表示するバイナリ (コンパイル済み) コードであり、ユーザーのデスクトップで実行されるように意図されています。

デスクトップ アプリケーションはユーザーのデスクトップで実行されるため、シークレットを安全に保存できないパブリック クライアントと見なされます。

言語/フレームワーク プロジェクト
GitHub
Package 取得
started
ユーザーのサインイン Web API へのアクセス 一般提供 (GA) または
パブリック プレビュー1
Electron MSAL Node.js msal-node ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 パブリック プレビュー
Java MSAL4J msal4j ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
macOS (Swift/Obj-C) iOS および macOS 用の MSAL MSAL チュートリアル ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
UWP MSAL.NET Microsoft.Identity.Client チュートリアル ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
WPF MSAL.NET Microsoft.Identity.Client チュートリアル ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA

1Microsoft Azure プレビューの追加利用規約」は、"パブリック プレビュー" のライブラリにも適用されます。

モバイル アプリケーション

モバイル アプリケーションは通常、ユーザー インターフェイスを表示するバイナリ (コンパイル済み) コードであり、ユーザーのモバイル デバイスで実行されるように意図されています。

モバイル アプリケーションはユーザーのモバイル デバイスで実行されるため、シークレットを安全に保存できないパブリック クライアントと見なされます。

プラットフォーム プロジェクト
GitHub
Package 取得
started
ユーザーのサインイン Web API へのアクセス 一般提供 (GA) または
パブリック プレビュー1
Android (Java) MSAL Android MSAL クイックスタート ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
Android (Kotlin) MSAL Android MSAL ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
iOS (Swift/Obj-C) iOS および macOS 用の MSAL MSAL チュートリアル ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
Xamarin (.NET) MSAL.NET Microsoft.Identity.Client ライブラリでは、ユーザー サインインの ID トークンを要求できます。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA

1Microsoft Azure プレビューの追加利用規約」は、"パブリック プレビュー" のライブラリにも適用されます。

サービス/デーモン

サービスとデーモンは、サーバー間およびその他の無人 (ヘッドレス とも呼ばれます) 通信でよく使用されます。 キーボードの前にユーザーがいて資格情報を入力したりリソースへのアクセスを同意したりすることがないため、これらのアプリケーションでは、Web API のリソースへの認可済みアクセスを要求するときに、ユーザーではなくそれ自身として認証されます。

サーバーで実行されるサービスまたはデーモンは、シークレットを安全に格納できる機密クライアントと見なされます。

言語/フレームワーク プロジェクト
GitHub
Package 取得
started
ユーザーのサインイン Web API へのアクセス 一般提供 (GA) または
パブリック プレビュー1
.NET MSAL.NET Microsoft.Identity.Client クイックスタート ライブラリでは、ユーザー サインインの ID トークンを要求できません。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
Java MSAL4J msal4j ライブラリでは、ユーザー サインインの ID トークンを要求できません。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
Node MSAL Node msal-node クイックスタート ライブラリでは、ユーザー サインインの ID トークンを要求できません。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA
Python MSAL Python msal-python クイックスタート ライブラリでは、ユーザー サインインの ID トークンを要求できません。 ライブラリでは、保護された Web API のアクセス トークンを要求できます。 GA

1Microsoft Azure プレビューの追加利用規約」は、"パブリック プレビュー" のライブラリにも適用されます。

次のステップ

Microsoft Authentication Library の詳細については、「Microsoft Authentication Library (MSAL)の概要」を参照してください。