Microsoft ID プラットフォームのコード サンプル
これらのコード サンプルは、Microsoft ID プラットフォームでの認証ライブラリの使用方法を示すために、Microsoft によって構築および管理されています。 一般的な認証と認可のシナリオは、いくつかのアプリケーションの種類、開発言語、およびフレームワークで実装されています。
- Web アプリケーションにユーザーをサインインさせ、保護された Web API への承認されたアクセスを提供します。
- API 操作を実行するためのアクセストークンを要求することで、Web API を保護します。
各コードサンプルには、プロジェクトをビルドする方法 (該当する場合) とサンプル アプリケーションを実行する方法を説明する README.md ファイルが含まれています。 コード内のコメントにより、これらのライブラリをアプリケーション内でどのように使用して ID プラットフォームで認証と認可を行うかを理解することができます。
サンプルとガイド
タブを使用して、アプリケーションの種類または優先の言語/フレームワークごとにサンプルを並べ替えます。
シングルページ アプリケーション
これらのサンプルでは、Microsoft ID プラットフォームを使用してセキュリティ保護されているシングルページ アプリケーションの作成方法を示します。 これらのサンプルでは、MSAL.js のいずれかの種類を使用します。
Web アプリケーション
次のサンプルは、ユーザーがサインインする Web アプリケーションを示しています。 サンプルの中には、Microsoft Graph、またはユーザーの ID を使用してユーザー独自の Web API を呼び出すアプリケーションを示しているものもあります。
Web API
次のサンプルは、Microsoft ID プラットフォームで Web API を保護する方法と、その Web API からダウンストリーム API を呼び出す方法を示しています。
言語/ プラットフォーム |
コード サンプル GitHub 上 |
Auth libraries |
認証フロー |
---|---|---|---|
ASP.NET | Microsoft Graph の呼び出し | MSAL.NET | On-Behalf-Of (OBO) |
ASP.NET Core | ユーザーのサインインと Microsoft Graph の呼び出し | MSAL.NET | On-Behalf-Of (OBO) |
Java | ユーザーのサインイン | MSAL Java | On-Behalf-Of (OBO) |
Node.js | • Node.js Web API の保護 • Azure AD B2C による Node.js Web API の保護 |
MSAL Node | 認可ベアラー |
デスクトップ
次のサンプルは、ユーザーの名前で Microsoft Graph API またはお客様独自の Web API にアクセスするパブリック クライアント デスクトップ アプリケーションを示しています。 "Web Authentication Manager (WAM) を使用するデスクトップ (コンソール)" を除き、これらのすべてのクライアント アプリケーションでは Microsoft Authentication Library (MSAL) が使用されます。
言語/ プラットフォーム |
コード サンプル GitHub 上 |
Auth libraries |
認証フロー |
---|---|---|---|
.NET Core | • Microsoft Graph の呼び出し • トークン キャッシュを使用した Microsoft Graph の呼び出し • カスタム Web UI HTML を使用して Microsoft Graph を呼び出す • カスタム Web ブラウザーを使用した Microsoft Graph の呼び出し • デバイス コード フローを使用したユーザーのサインイン • WinUI デスクトップ アプリケーションで MSAL.NET を使用してユーザーを認証する |
MSAL.NET | • 承認コードと PKCE • デバイス コード |
.NET | 統合 Windows 認証を使用した保護された API の呼び出し | MSAL.NET | 統合 Windows 認証 |
Java | Microsoft Graph の呼び出し | MSAL Java | 統合 Windows 認証 |
Node.js | ユーザーのサインイン | MSAL Node | 認可コードと PKCE |
.NET Core | ユーザー名/パスワードを使用したユーザーのサインインによる Microsoft Graph の呼び出し | MSAL.NET | リソース所有者のパスワード資格情報 |
Python | ユーザーのサインイン | MSAL Python | リソース所有者のパスワード資格情報 |
ユニバーサル Windows プラットフォーム (UWP) | Microsoft Graph の呼び出し | MSAL.NET | Web アカウント マネージャー |
Windows Presentation Foundation (WPF) | ユーザーのサインインと Microsoft Graph の呼び出し | MSAL.NET | 認可コードと PKCE |
Windows Presentation Foundation (WPF) | • ユーザーのサインインと ASP.NET Core Web API の呼び出し • ユーザーのサインインと Microsoft Graph の呼び出し |
MSAL.NET | 認可コードと PKCE |
モバイル
次のサンプルは、Microsoft Graph API にアクセスするパブリック クライアント モバイル アプリケーションを示しています。 これらのクライアント アプリケーションでは、Microsoft Authentication Library (MSAL) が使用されます。
言語/ プラットフォーム |
コード サンプル GitHub 上 |
Auth libraries |
認証フロー |
---|---|---|---|
.NET Core | • MAUI を使用して Microsoft Graph を呼び出す • MAUI とブローカーを使用して Microsoft Graph を呼び出す • MAUI を使用して Active Directory B2C テナントを呼び出す |
MSAL.NET | 認可コードと PKCE |
iOS | • Microsoft Graph ネイティブの呼び出し | MSAL iOS | 認可コードと PKCE |
Java | ユーザーのサインインと Microsoft Graph の呼び出し | MSAL Android | 認可コードと PKCE |
Kotlin | ユーザーのサインインと Microsoft Graph の呼び出し | MSAL Android | 認可コードと PKCE |
Xamarin | • ユーザーのサインインと Microsoft Graph の呼び出し • ブローカーを使用したユーザーのサインインと Microsoft Graph の呼び出し |
MSAL.NET | 認可コードと PKCE |
サービス/デーモン
以下に、アプリケーション独自の ID (ユーザーなしで) で Microsoft Graph API にアクセスするサンプル アプリケーションを示します。
言語/ プラットフォーム |
コード サンプル GitHub 上 |
Auth libraries |
認証フロー |
---|---|---|---|
.NET Core | • Microsoft Graph の呼び出し • Web API の呼び出し • マネージド ID と Azure Key Vault の使用 |
MSAL.NET | クライアント資格情報付与 |
ASP.NET | Microsoft ID プラットフォーム エンドポイントを使用したマルチテナント | MSAL.NET | クライアント資格情報付与 |
Java | • シークレットを使用した Microsoft Graph の呼び出し • 証明書を使用した Microsoft Graph の呼び出し |
MSAL Java | クライアント資格情報付与 |
Node.js | シークレットを使用した Microsoft Graph の呼び出し | MSAL Node | クライアント資格情報付与 |
Python | • シークレットを使用した Microsoft Graph の呼び出し • 証明書を使用した Microsoft Graph の呼び出し |
MSAL Python | クライアント資格情報付与 |
Web API としての Azure Functions
次のサンプルは、HttpTrigger を使用し、Microsoft ID プラットフォームで Web API を公開して Azure Function を保護する方法と、その Web API からダウンストリーム API を呼び出す方法を示しています。
言語/ プラットフォーム |
コード サンプル GitHub 上 |
Auth libraries |
認証フロー |
---|---|---|---|
.NET | Microsoft Entra ID で保護された .NET Azure 関数 Web API | MSAL.NET | Authorization code (承認コード) |
Python | Microsoft Entra ID で保護された Python Azure 関数 Web API | MSAL Python | Authorization code (承認コード) |
ブラウザーレス (ヘッドレス)
次のサンプルは、Web ブラウザーがないデバイスで実行されるパブリック クライアント アプリケーションを示しています。 このアプリは、コマンド ライン ツール、Linux または Mac 上で実行されるアプリ、あるいは IoT アプリケーションにすることもできます。 このサンプルは、別のデバイス (携帯電話など) で対話的にサインインするユーザーの名前で Microsoft Graph API にアクセスするアプリの特徴を示しています。 このクライアント アプリケーションでは、Microsoft Authentication Library (MSAL) を使用します。
言語/ プラットフォーム |
コード サンプル GitHub 上 |
Auth libraries |
認証フロー |
---|---|---|---|
.NET Core | テキスト専用デバイスからの保護された API の呼び出し | MSAL.NET | デバイス コード |
Java | テキスト専用デバイスからのユーザーのサインインと保護された API の呼び出し | MSAL Java | デバイス コード |
Python | Microsoft Graph の呼び出し | MSAL Python | デバイス コード |
Microsoft Teams アプリケーション
次のサンプルは、ユーザーをサインインさせる Microsoft Teams Tab アプリケーションを示しています。 また、Microsoft Authentication Library (MSAL) を使用して、ユーザーの ID で Microsoft Graph API を呼び出す方法についても説明します。
言語/ プラットフォーム |
コード サンプル GitHub 上 |
Auth libraries |
認証フロー |
---|---|---|---|
Node.js | Teams Tab アプリ: シングル サインオン (SSO) と Microsoft Graph の呼び出し | MSAL Node | On-Behalf-Of (OBO) |
マルチテナント SaaS
次のサンプルでは、任意の Microsoft Entra テナントからのサインインを受け入れるようにアプリケーションを構成する方法を示します。 アプリケーションを "マルチテナント" として構成すると、サービスとしてのソフトウェア (SaaS) アプリケーションを多数の組織に提供でき、ユーザーは同意を与えた後でアプリケーションにサインインできるようになります。
言語/ プラットフォーム |
コード サンプル GitHub 上 |
Auth libraries |
認証フロー |
---|---|---|---|
ASP.NET Core | ASP.NET Core MVC Web アプリケーションによる Microsoft Graph API の呼び出し | MSAL.NET | OpenID Connect |
ASP.NET Core | ASP.NET Core MVC Web アプリケーションで ASP.NET Core Web API を呼び出す | MSAL.NET | Authorization code (承認コード) |
Angular | Angular シングルページ アプリケーションで ASP.NET Core Web API を呼び出す | MSAL Angular | Authorization code (承認コード) |
次のステップ
より多くのサンプル コードを詳しく調べる場合は、以下を参照してください。