PublicClientApplication class

このクラスは、パブリック クライアント アプリケーション (デスクトップ、モバイル) のトークンを取得するために使用されます。 パブリック クライアント アプリケーションは、アプリケーション シークレットを安全に格納するために信頼されていないため、ユーザーの名前でのみトークンを要求できます。

Extends

コンストラクター

PublicClientApplication(Configuration)

認証の Configuration オブジェクトの重要な属性は次のとおりです。

  • clientID: アプリケーションのアプリケーション ID。 アプリケーションを取得するには、アプリケーション登録ポータルでアプリケーションを登録します。
  • authority: アプリケーションの機関 URL。

AAD 機関は、 https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}形式です。

  • アプリケーションで 1 つの組織ディレクトリのアカウントがサポートされている場合は、"Enter_the_Tenant_Info_Here" の値をテナント ID またはテナント名 (contoso.microsoft.com など) に置き換えます。
  • アプリケーションで任意の組織ディレクトリのアカウントがサポートされている場合は、"Enter_the_Tenant_Info_Here" の値を組織に置き換えます。
  • アプリケーションで任意の組織ディレクトリのアカウントと個人用Microsoft アカウントがサポートされている場合は、"Enter_the_Tenant_Info_Here" の値を共通の値に置き換えます。
  • Personal Microsoft アカウントのみにサポートを制限するには、"Enter_the_Tenant_Info_Here" 値をコンシューマーに置き換えます。

Azure B2C 機関は、{instance}/{tenant}/{policy} https:// 形式です。 各ポリシーは、独自の権限と見なされます。 クライアント アプリケーションの構築時に、すべての既知の認証を設定する必要があります。

ADFS 機関は、{instance}/adfs https:// 形式です。

メソッド

acquireTokenByDeviceCode(DeviceCodeRequest)

OAuth2.0 デバイス コード フローを使用して、機関からトークンを取得します。 このフローは、ブラウザーにアクセスできない、または入力の制約があるデバイス向けに設計されています。 承認サーバーは、検証コード、エンドユーザー コード、およびエンド ユーザー検証 URI を使用して DeviceCode オブジェクトを発行します。 DeviceCode オブジェクトはコールバックを通じて提供され、エンドユーザーは別のデバイスを使用して検証 URI に移動して資格情報を入力するように指示する必要があります。 クライアントは受信要求を受信できないため、エンド ユーザーが資格情報の入力を完了するまで、承認サーバーを繰り返しポーリングします。

acquireTokenInteractive(InteractiveRequest)

認証コードを要求し、トークンと交換することで、ブラウザーを介して対話形式でトークンを取得します。

acquireTokenSilent(SilentFlowRequest)

キャッシュから取得したトークン、または更新トークンを新しいアクセス トークンと交換して取得したトークンを返します。 ブローカーが有効になっている場合、トークン要求はブローカーによって処理されます。

getAllAccounts()

このアプリケーションのキャッシュされたすべてのアカウントを返します。 ブローカーが有効になっている場合、この要求はブローカーによって処理されます。

signOut(SignOutRequest)

指定されたアカウントに関連付けられているキャッシュアーティファクトを削除します

継承されたメソッド

acquireTokenByCode(AuthorizationCodeRequest, AuthorizationCodePayload)

OAuth2.0 承認コード フローの最初の手順から受信した承認コードを交換してトークンを取得します。

getAuthCodeUrl(AuthorizationCodeUrlRequest) を使用して、OAuth2.0 承認コード フローの最初の手順の URL を作成できます。 AuthorizationCodeUrlRequest と AuthorizationCodeRequest の redirectUri とスコープの値が同じであることを確認します。

acquireTokenByRefreshToken(RefreshTokenRequest)

新しいトークン セットに対して提供された更新トークンを交換してトークンを取得します。

この API は、ADAL から MSAL に移行するシナリオでのみ提供されます。 それ以外の場合は、サイレント シナリオに acquireTokenSilent() を使用することをお勧めします。 acquireTokenSilent()を使用すると、MSAL はトークンのキャッシュと更新を自動的に処理します。

acquireTokenByUsernamePassword(UsernamePasswordRequest)

クライアント アプリケーションのユーザー名とパスワードを資格情報と交換して、パスワード付与を使用してトークンを取得します

最新の OAuth 2.0 セキュリティのベスト カレント プラクティスでは、パスワードの付与が完全に禁止されています。 この推奨事項の詳細については、https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-3.4 Microsoftのドキュメントと推奨事項を次に示します。https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows#usernamepassword

clearCache()

キャッシュをクリアする

getAuthCodeUrl(AuthorizationUrlRequest)

承認要求の URL を作成し、ユーザーが資格情報を入力し、アプリケーションに同意できるようにする。 URL は、アプリケーション オブジェクトで構成された機関の /authorize エンドポイントを対象とします。

ユーザーが資格情報と同意を入力すると、機関は要求で送信されたリダイレクト URI に応答を送信し、承認コードを含める必要があります。このコードを使用して、 acquireTokenByCode(AuthorizationCodeRequest)経由でトークンを取得できます。

getLogger()

ロガー インスタンスを返します。

getTokenCache()

アプリケーションのトークン キャッシュを取得します。

setLogger(Logger)

構成で設定された既定のロガーを新しいロガーに新しい構成に置き換えます

コンストラクターの詳細

PublicClientApplication(Configuration)

認証の Configuration オブジェクトの重要な属性は次のとおりです。

  • clientID: アプリケーションのアプリケーション ID。 アプリケーションを取得するには、アプリケーション登録ポータルでアプリケーションを登録します。
  • authority: アプリケーションの機関 URL。

AAD 機関は、 https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}形式です。

  • アプリケーションで 1 つの組織ディレクトリのアカウントがサポートされている場合は、"Enter_the_Tenant_Info_Here" の値をテナント ID またはテナント名 (contoso.microsoft.com など) に置き換えます。
  • アプリケーションで任意の組織ディレクトリのアカウントがサポートされている場合は、"Enter_the_Tenant_Info_Here" の値を組織に置き換えます。
  • アプリケーションで任意の組織ディレクトリのアカウントと個人用Microsoft アカウントがサポートされている場合は、"Enter_the_Tenant_Info_Here" の値を共通の値に置き換えます。
  • Personal Microsoft アカウントのみにサポートを制限するには、"Enter_the_Tenant_Info_Here" 値をコンシューマーに置き換えます。

Azure B2C 機関は、{instance}/{tenant}/{policy} https:// 形式です。 各ポリシーは、独自の権限と見なされます。 クライアント アプリケーションの構築時に、すべての既知の認証を設定する必要があります。

ADFS 機関は、{instance}/adfs https:// 形式です。

new PublicClientApplication(configuration: Configuration)

パラメーター

configuration
Configuration

メソッドの詳細

acquireTokenByDeviceCode(DeviceCodeRequest)

OAuth2.0 デバイス コード フローを使用して、機関からトークンを取得します。 このフローは、ブラウザーにアクセスできない、または入力の制約があるデバイス向けに設計されています。 承認サーバーは、検証コード、エンドユーザー コード、およびエンド ユーザー検証 URI を使用して DeviceCode オブジェクトを発行します。 DeviceCode オブジェクトはコールバックを通じて提供され、エンドユーザーは別のデバイスを使用して検証 URI に移動して資格情報を入力するように指示する必要があります。 クライアントは受信要求を受信できないため、エンド ユーザーが資格情報の入力を完了するまで、承認サーバーを繰り返しポーリングします。

function acquireTokenByDeviceCode(request: DeviceCodeRequest): Promise<null | AuthenticationResult>

パラメーター

返品

Promise<null | AuthenticationResult>

acquireTokenInteractive(InteractiveRequest)

認証コードを要求し、トークンと交換することで、ブラウザーを介して対話形式でトークンを取得します。

function acquireTokenInteractive(request: InteractiveRequest): Promise<AuthenticationResult>

パラメーター

返品

acquireTokenSilent(SilentFlowRequest)

キャッシュから取得したトークン、または更新トークンを新しいアクセス トークンと交換して取得したトークンを返します。 ブローカーが有効になっている場合、トークン要求はブローカーによって処理されます。

function acquireTokenSilent(request: SilentFlowRequest): Promise<AuthenticationResult>

パラメーター

request
SilentFlowRequest

開発者が提供する SilentFlowRequest

返品

getAllAccounts()

このアプリケーションのキャッシュされたすべてのアカウントを返します。 ブローカーが有効になっている場合、この要求はブローカーによって処理されます。

function getAllAccounts(): Promise<AccountInfo[]>

返品

Promise<AccountInfo[]>

signOut(SignOutRequest)

指定されたアカウントに関連付けられているキャッシュアーティファクトを削除します

function signOut(request: SignOutRequest): Promise<void>

パラメーター

request
SignOutRequest

開発者が提供した SignOutRequest

返品

Promise<void>

継承済みメソッドの詳細

acquireTokenByCode(AuthorizationCodeRequest, AuthorizationCodePayload)

OAuth2.0 承認コード フローの最初の手順から受信した承認コードを交換してトークンを取得します。

getAuthCodeUrl(AuthorizationCodeUrlRequest) を使用して、OAuth2.0 承認コード フローの最初の手順の URL を作成できます。 AuthorizationCodeUrlRequest と AuthorizationCodeRequest の redirectUri とスコープの値が同じであることを確認します。

function acquireTokenByCode(request: AuthorizationCodeRequest, authCodePayLoad?: AuthorizationCodePayload): Promise<AuthenticationResult>

パラメーター

authCodePayLoad
AuthorizationCodePayload

返品

ClientApplication.acquireTokenByCodeから継承

acquireTokenByRefreshToken(RefreshTokenRequest)

新しいトークン セットに対して提供された更新トークンを交換してトークンを取得します。

この API は、ADAL から MSAL に移行するシナリオでのみ提供されます。 それ以外の場合は、サイレント シナリオに acquireTokenSilent() を使用することをお勧めします。 acquireTokenSilent()を使用すると、MSAL はトークンのキャッシュと更新を自動的に処理します。

function acquireTokenByRefreshToken(request: RefreshTokenRequest): Promise<null | AuthenticationResult>

パラメーター

返品

Promise<null | AuthenticationResult>

ClientApplication.acquireTokenByRefreshTokenから継承

acquireTokenByUsernamePassword(UsernamePasswordRequest)

警告

この API は非推奨になりました。

  • Use a more secure flow instead

クライアント アプリケーションのユーザー名とパスワードを資格情報と交換して、パスワード付与を使用してトークンを取得します

最新の OAuth 2.0 セキュリティのベスト カレント プラクティスでは、パスワードの付与が完全に禁止されています。 この推奨事項の詳細については、https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-3.4 Microsoftのドキュメントと推奨事項を次に示します。https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows#usernamepassword

function acquireTokenByUsernamePassword(request: UsernamePasswordRequest): Promise<null | AuthenticationResult>

パラメーター

request
UsernamePasswordRequest

UsenamePasswordRequest

返品

Promise<null | AuthenticationResult>

Inherited FromClientApplication.acquireTokenByUsernamePassword

clearCache()

キャッシュをクリアする

function clearCache()

ClientApplication.clearCacheから継承

getAuthCodeUrl(AuthorizationUrlRequest)

承認要求の URL を作成し、ユーザーが資格情報を入力し、アプリケーションに同意できるようにする。 URL は、アプリケーション オブジェクトで構成された機関の /authorize エンドポイントを対象とします。

ユーザーが資格情報と同意を入力すると、機関は要求で送信されたリダイレクト URI に応答を送信し、承認コードを含める必要があります。このコードを使用して、 acquireTokenByCode(AuthorizationCodeRequest)経由でトークンを取得できます。

function getAuthCodeUrl(request: AuthorizationUrlRequest): Promise<string>

パラメーター

返品

Promise<string>

ClientApplication.getAuthCodeUrlから継承

getLogger()

ロガー インスタンスを返します。

function getLogger(): Logger

返品

ClientApplication.getLoggerから継承

getTokenCache()

アプリケーションのトークン キャッシュを取得します。

function getTokenCache(): TokenCache

返品

ClientApplication.getTokenCacheから継承

setLogger(Logger)

構成で設定された既定のロガーを新しいロガーに新しい構成に置き換えます

function setLogger(logger: Logger)

パラメーター

logger
Logger

Logger インスタンス

ClientApplication.setLoggerから継承