ConfidentialClientApplication class

このクラスは、機密クライアント アプリケーション (webApp、webAPI) のトークンを取得するために使用されます。 機密クライアント アプリケーションは、アプリケーション シークレット、クライアント証明書/アサーションを必要に応じて構成します

Extends

コンストラクター

ConfidentialClientApplication(Configuration)

ConfidentialClientApplication のコンストラクター

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

  • clientID: アプリケーションのアプリケーション ID。 アプリケーションを取得するには、アプリケーション登録ポータルでアプリケーションを登録します。
  • authority: アプリケーションの機関 URL。
  • クライアント資格情報: 機密クライアントのクライアント シークレット、証明書、またはアサーションを設定する必要があります。 クライアント シークレットは、アプリケーション登録ポータルから取得できます。

Azure AD では、機関はhttps://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}形式を示す URL です。 アプリケーションで 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 では、権限は https://{instance}/tfp/{tenant}/{policyName}/ 完全な B2C 機能の形式になります。今後のバージョンでは、このライブラリで完全な B2C 機能を使用できるようになります。

メソッド

acquireTokenByClientCredential(ClientCredentialRequest)

(エンド ユーザーではなく) アプリケーションの機関からトークンを取得します。

acquireTokenOnBehalfOf(OnBehalfOfRequest)

アプリケーションの機関からトークンを取得します。

現在のアプリが中間層サービスであり、エンド ユーザーを表すトークンで呼び出されたシナリオで使用されます。 現在のアプリでは、トークン (oboAssertion) を使用して、そのユーザーに代わってダウンストリーム Web API にアクセスするための別のトークンを要求できます。

現在の中間層アプリには、同意を得るためのユーザー操作がありません。 この記事では、中間層アプリの事前の同意を得る方法を参照してください。 https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow#gaining-consent-for-the-middle-tier-application

SetAppTokenProvider(IAppTokenProvider)

この拡張ポイントは、client_credential フロー (acquireTokenByClientCredential) に対してのみ機能し、マネージド ID のサポートを強化するためのAzure SDK向けです。

継承されたメソッド

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

acquireTokenSilent(SilentFlowRequest)

ユーザーがトークンが要求されるアカウントを指定すると、トークンをサイレントで取得します。

この API は、ユーザーがアカウント オブジェクトを提供することを想定し、キャッシュを調んでトークンが存在する場合は取得します。 また、access_tokenとid_tokenのキャッシュをバイパスするためにユーザーが送信できる省略可能な "forceRefresh" ブール値もあります。 refresh_tokenの有効期限が切れているか見つからない場合は、エラーがスローされ、ユーザーが対話型トークン取得 API (例: acquireTokenByCode()) を呼び出すガイダンスが表示されます。

clearCache()

キャッシュをクリアする

getAuthCodeUrl(AuthorizationUrlRequest)

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

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

getLogger()

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

getTokenCache()

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

setLogger(Logger)

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

コンストラクターの詳細

ConfidentialClientApplication(Configuration)

ConfidentialClientApplication のコンストラクター

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

  • clientID: アプリケーションのアプリケーション ID。 アプリケーションを取得するには、アプリケーション登録ポータルでアプリケーションを登録します。
  • authority: アプリケーションの機関 URL。
  • クライアント資格情報: 機密クライアントのクライアント シークレット、証明書、またはアサーションを設定する必要があります。 クライアント シークレットは、アプリケーション登録ポータルから取得できます。

Azure AD では、機関はhttps://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}形式を示す URL です。 アプリケーションで 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 では、権限は https://{instance}/tfp/{tenant}/{policyName}/ 完全な B2C 機能の形式になります。今後のバージョンでは、このライブラリで完全な B2C 機能を使用できるようになります。

new ConfidentialClientApplication(configuration: Configuration)

パラメーター

configuration
Configuration

メソッドの詳細

acquireTokenByClientCredential(ClientCredentialRequest)

(エンド ユーザーではなく) アプリケーションの機関からトークンを取得します。

function acquireTokenByClientCredential(request: ClientCredentialRequest): Promise<null | AuthenticationResult>

パラメーター

返品

Promise<null | AuthenticationResult>

acquireTokenOnBehalfOf(OnBehalfOfRequest)

アプリケーションの機関からトークンを取得します。

現在のアプリが中間層サービスであり、エンド ユーザーを表すトークンで呼び出されたシナリオで使用されます。 現在のアプリでは、トークン (oboAssertion) を使用して、そのユーザーに代わってダウンストリーム Web API にアクセスするための別のトークンを要求できます。

現在の中間層アプリには、同意を得るためのユーザー操作がありません。 この記事では、中間層アプリの事前の同意を得る方法を参照してください。 https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow#gaining-consent-for-the-middle-tier-application

function acquireTokenOnBehalfOf(request: OnBehalfOfRequest): Promise<null | AuthenticationResult>

パラメーター

返品

Promise<null | AuthenticationResult>

SetAppTokenProvider(IAppTokenProvider)

この拡張ポイントは、client_credential フロー (acquireTokenByClientCredential) に対してのみ機能し、マネージド ID のサポートを強化するためのAzure SDK向けです。

function SetAppTokenProvider(provider: IAppTokenProvider)

パラメーター

継承済みメソッドの詳細

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

acquireTokenSilent(SilentFlowRequest)

ユーザーがトークンが要求されるアカウントを指定すると、トークンをサイレントで取得します。

この API は、ユーザーがアカウント オブジェクトを提供することを想定し、キャッシュを調んでトークンが存在する場合は取得します。 また、access_tokenとid_tokenのキャッシュをバイパスするためにユーザーが送信できる省略可能な "forceRefresh" ブール値もあります。 refresh_tokenの有効期限が切れているか見つからない場合は、エラーがスローされ、ユーザーが対話型トークン取得 API (例: acquireTokenByCode()) を呼び出すガイダンスが表示されます。

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

パラメーター

返品

ClientApplication.acquireTokenSilentから継承

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から継承