次の方法で共有


.NET 用 Azure Active Directory ライブラリ

概要

Azure Active Directory (Azure AD) を使用してユーザーをサインインさせ、保護された Web API にアクセスします。

Azure Active Directory でアプリケーションの開発を開始するには、Microsoft ID プラットフォームを参照してください。

クライアント ライブラリ

OpenID Connect と OAuth 2.0 と Microsoft Authentication Library for .NET (MSAL.NET) を使用して、Azure AD によって保護された Web API へのスコープ付きアクセスを提供します。

NuGet パッケージを Visual Studio パッケージ マネージャー コンソールから直接インストールするか、.NET Core CLI を使ってインストールします。

Visual Studio パッケージ マネージャー

Install-Package Microsoft.Identity.Client

.NET Core CLI

dotnet add package Microsoft.Identity.Client

コードの例

デスクトップ アプリケーション (パブリック クライアント) で Microsoft Graph APIのアクセス トークンを取得します。

/* Include this using directive:
using Microsoft.Identity.Client;
*/

string ClientId = "11111111-1111-1111-1111-111111111111"; // Application (client) ID
string Tenant = "common";
string Instance = "https://login.microsoftonline.com/";

string graphAPIEndpoint = "https://graph.microsoft.com/v1.0/me";
string[] scopes = new string[] { "user.read" };

AuthenticationResult authResult = null;

var app = PublicClientApplicationBuilder.Create(ClientId)
                .WithAuthority($"{Instance}{Tenant}")
                .WithRedirectUri("http://localhost")
                .Build();

var accounts = await app.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();

try
{
    // Always first try to acquire a token silently.
    authResult = await app.AcquireTokenSilent(scopes, firstAccount)
        .ExecuteAsync();
}
catch (MsalUiRequiredException ex)
{
    // If an MsalUiRequiredException occurred when AcquireTokenSilent was called,
    // it indicates you need to call AcquireTokenInteractive to acquire a token.
    System.Diagnostics.Debug.WriteLine($"MsalUiRequiredException: {ex.Message}");

    try
    {
        authResult = await app.AcquireTokenInteractive(scopes)
            .WithAccount(firstAccount)
            .WithPrompt(Prompt.SelectAccount)
            .ExecuteAsync();
    }
    catch (MsalException msalex)
    {
        System.Diagnostics.Debug.WriteLine($"Error acquiring Token:{System.Environment.NewLine}{msalex}");
    }
}
catch (Exception ex)
{
    System.Diagnostics.Debug.WriteLine($"Error acquiring token silently:{System.Environment.NewLine}{ex}");
    return;
}

if (authResult != null)
{
    System.Diagnostics.Debug.WriteLine($"Access token:{System.Environment.NewLine}{authResult.AccessToken}");
}

サンプル

Microsoft ID プラットフォームコード サンプルの完全なコレクションを調べます。