この記事では、MSAL ノードで PublicClientApplication オブジェクトを初期化する方法と、権限を構成する方法について説明します。
Prerequisites
アプリケーションを初期化する前に、まずアプリケーションをMicrosoft Entra 管理センターに登録し、アプリケーションとMicrosoft ID プラットフォームの間に信頼関係を確立する必要があります。
アプリを登録した後、Microsoft Entra 管理センターで見つかる次の値の一部またはすべてが必要になります。
| 価値 | 必須 | 説明 |
|---|---|---|
| アプリケーション (クライアント) ID | 必須 | Microsoft ID プラットフォーム内でアプリケーションを一意に識別する GUID。 |
| 権威 | Optional | アプリケーションの ID プロバイダー URL ( インスタンス) と サインイン対象ユーザー 。 インスタンスとサインイン対象ユーザーが連結されると、権限が構成 されます。 |
| ディレクトリ (テナント) ID | Optional | 組織専用の基幹業務アプリケーションを構築する場合は、ディレクトリ (テナント) ID を指定します(多くの場合、 シングルテナント アプリケーションと呼ばれます)。 |
| リダイレクト URI | Optional | Web アプリを構築する場合、redirectUriは、ID プロバイダー (Microsoft ID プラットフォーム) が発行したセキュリティ トークンを返す場所を指定します。 |
PublicClientApplication オブジェクトの初期化
MSAL ノードを使用するには、 PublicClientApplication オブジェクトをインスタンス化する必要があります。 すべての PublicClientApplication に対して、PKCE(コード交換用証明キー)の使用をサポートしており、強く推奨しています。 使用パターンは PKCE サンプルで示されています。
import * as msal from "@azure/msal-node";
const clientConfig = {
auth: {
clientId: "your_client_id",
authority: "your_authority",
}
};
const pca = new msal.PublicClientApplication(clientConfig);
構成の基本
ノードの構成オプションには、認証フローごとにcommonパラメーターとspecificパラメーターがあります。
-
client_idは、パブリック クライアント アプリケーションを初期化するために必須です -
authority構成中にユーザーが設定しない場合、既定値はhttps://login.microsoftonline.com/common/
構成に関するその他のオプションについては、「MSAL ノードの構成」を参照してください。
権限の構成
既定では、MSAL は common テナントで構成されます。これは、(B2C ではなく) 個人アカウントを許可するマルチテナント アプリケーションおよびアプリケーションに使用されます。
const msalConfig = {
auth: {
clientId: 'your_client_id',
authority: 'https://login.microsoftonline.com/common/'
}
};
アプリケーションの対象が単一テナントである場合は、次のように、テナント ID を含む authority を指定する必要があります。
const msalConfig = {
auth: {
clientId: 'your_client_id',
authority: 'https://login.microsoftonline.com/{your_tenant_id}'
}
};
アプリケーションで "https://login.live.com" や IdentityServer などの OIDC 準拠の別の機関を使用している場合は、 knownAuthorities フィールドに指定し、 protocolMode を "OIDC" に設定する必要があります。
const msalConfig = {
auth: {
clientId: 'your_client_id',
authority: 'https://login.live.com',
knownAuthorities: ["login.live.com"],
protocolMode: "OIDC"
}
};