ConfidentialClientApplication class

Cette classe doit être utilisée pour acquérir des jetons pour les applications clientes confidentielles (webApp, webAPI). Les applications clientes confidentielles configurent les secrets d’application, les certificats client/assertions, le cas échéant

Extends

Constructeurs

ConfidentialClientApplication(Configuration)

Constructeur pour ConfidentialClientApplication

Les attributs requis dans l’objet Configuration sont les suivants :

  • clientID : ID d’application de votre application. Vous pouvez en obtenir une en inscrivant votre application auprès de notre portail d’inscription d’application
  • autorité : URL de l’autorité pour votre application.
  • informations d’identification du client : doit définir la clé secrète client, le certificat ou l’assertion pour les clients confidentiels. Vous pouvez obtenir une clé secrète client à partir du portail d’inscription d’application.

Dans Azure AD, l’autorité est une URL indiquant le formulaire https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}. Si votre application prend en charge les comptes dans un annuaire organisationnel, remplacez la valeur « Enter_the_Tenant_Info_Here » par l’ID de locataire ou le nom du locataire (par exemple, contoso.microsoft.com). Si votre application prend en charge les comptes dans un annuaire organisationnel, remplacez la valeur « Enter_the_Tenant_Info_Here » par les organisations. Si votre application prend en charge les comptes dans n’importe quel annuaire organisationnel et comptes de Microsoft personnels, remplacez la valeur « Enter_the_Tenant_Info_Here » par la valeur commune. Pour restreindre la prise en charge des comptes personnels Microsoft uniquement, remplacez la valeur « Enter_the_Tenant_Info_Here » par les consommateurs.

Dans Azure B2C, l’autorité est de la forme https://{instance}/tfp/{tenant}/{policyName}/ La fonctionnalité B2C complète sera disponible dans cette bibliothèque dans les versions ultérieures.

Méthodes

acquireTokenByClientCredential(ClientCredentialRequest)

Acquiert des jetons à partir de l’autorité de l’application (et non pour un utilisateur final).

acquireTokenOnBehalfOf(OnBehalfOfRequest)

Acquiert des jetons auprès de l’autorité de l’application.

Utilisé dans les scénarios où l’application actuelle est un service de niveau intermédiaire appelé avec un jeton représentant un utilisateur final. L’application actuelle peut utiliser le jeton (oboAssertion) pour demander un autre jeton pour accéder à l’API web en aval, au nom de cet utilisateur.

L’application de niveau intermédiaire actuelle n’a aucune interaction utilisateur pour obtenir le consentement. Découvrez comment obtenir le consentement pour votre application de niveau intermédiaire à partir de cet article. 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)

Ce point d’extensibilité fonctionne uniquement pour le flux client_credential, c’est-à-dire acquireTokenByClientCredential et est destiné à Kit de développement logiciel (SDK) Azure pour améliorer la prise en charge de l’identité managée.

Méthodes héritées

acquireTokenByCode(AuthorizationCodeRequest, AuthorizationCodePayload)

Acquiert un jeton en échangeant le code d’autorisation reçu à partir de la première étape du flux de code d’autorisation OAuth2.0.

getAuthCodeUrl(AuthorizationCodeUrlRequest) peut être utilisé pour créer l’URL de la première étape du flux de code d’autorisation OAuth2.0. Vérifiez que les valeurs de redirectUri et d’étendues dans AuthorizationCodeUrlRequest et AuthorizationCodeRequest sont identiques.

acquireTokenByRefreshToken(RefreshTokenRequest)

Acquiert un jeton en échangeant le jeton d’actualisation fourni pour un nouvel ensemble de jetons.

Cette API est fournie uniquement pour les scénarios où vous souhaitez migrer de la bibliothèque ADAL vers MSAL. Sinon, il est recommandé d’utiliser acquireTokenSilent() pour les scénarios silencieux. Lors de l’utilisation acquireTokenSilent(), MSAL gère automatiquement la mise en cache et l’actualisation des jetons.

acquireTokenByUsernamePassword(UsernamePasswordRequest)

Acquiert des jetons avec l’octroi de mot de passe en échangeant le nom d’utilisateur et le mot de passe des applications clientes pour les informations d’identification

La dernière pratique actuelle de sécurité OAuth 2.0 interdit entièrement l’octroi de mot de passe. Pour plus d'informations sur cette recommandation, consultez la https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-3.4 documentation et les recommandations de Microsoft :https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows#usernamepassword

acquireTokenSilent(SilentFlowRequest)

Acquiert un jeton en mode silencieux lorsqu’un utilisateur spécifie le compte pour lequel le jeton est demandé.

Cette API s’attend à ce que l’utilisateur fournisse un objet de compte et examine le cache pour récupérer le jeton s’il est présent. Il existe également une valeur booléenne « forceRefresh » facultative que l’utilisateur peut envoyer pour contourner le cache pour access_token et id_token. Si le refresh_token a expiré ou n’est pas trouvé, une erreur est levée et les instructions sont destinées à l’utilisateur à appeler une API d’acquisition de jeton interactive (par exemple : acquireTokenByCode()).

clearCache()

Effacer le cache

getAuthCodeUrl(AuthorizationUrlRequest)

Crée l’URL de la demande d’autorisation, permettant à l’utilisateur d’entrer les informations d’identification et de donner son consentement à l’application. L’URL cible le point de terminaison /authorize de l’autorité configurée dans l’objet d’application.

Une fois que l’utilisateur entre ses informations d’identification et son consentement, l’autorité envoie une réponse à l’URI de redirection envoyé dans la demande et doit contenir un code d’autorisation, qui peut ensuite être utilisé pour acquérir des jetons via acquireTokenByCode(AuthorizationCodeRequest).

getLogger()

Retourne l’instance de l’enregistreur d’événements

getTokenCache()

Obtient le cache de jetons de l’application.

setLogger(Logger)

Remplace le jeu d’événements par défaut dans les configurations par le nouvel enregistreur d’événements par de nouvelles configurations

Détails du constructeur

ConfidentialClientApplication(Configuration)

Constructeur pour ConfidentialClientApplication

Les attributs requis dans l’objet Configuration sont les suivants :

  • clientID : ID d’application de votre application. Vous pouvez en obtenir une en inscrivant votre application auprès de notre portail d’inscription d’application
  • autorité : URL de l’autorité pour votre application.
  • informations d’identification du client : doit définir la clé secrète client, le certificat ou l’assertion pour les clients confidentiels. Vous pouvez obtenir une clé secrète client à partir du portail d’inscription d’application.

Dans Azure AD, l’autorité est une URL indiquant le formulaire https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}. Si votre application prend en charge les comptes dans un annuaire organisationnel, remplacez la valeur « Enter_the_Tenant_Info_Here » par l’ID de locataire ou le nom du locataire (par exemple, contoso.microsoft.com). Si votre application prend en charge les comptes dans un annuaire organisationnel, remplacez la valeur « Enter_the_Tenant_Info_Here » par les organisations. Si votre application prend en charge les comptes dans n’importe quel annuaire organisationnel et comptes de Microsoft personnels, remplacez la valeur « Enter_the_Tenant_Info_Here » par la valeur commune. Pour restreindre la prise en charge des comptes personnels Microsoft uniquement, remplacez la valeur « Enter_the_Tenant_Info_Here » par les consommateurs.

Dans Azure B2C, l’autorité est de la forme https://{instance}/tfp/{tenant}/{policyName}/ La fonctionnalité B2C complète sera disponible dans cette bibliothèque dans les versions ultérieures.

new ConfidentialClientApplication(configuration: Configuration)

Paramètres

configuration
Configuration

Détails de la méthode

acquireTokenByClientCredential(ClientCredentialRequest)

Acquiert des jetons à partir de l’autorité de l’application (et non pour un utilisateur final).

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

Paramètres

Retours

Promise<null | AuthenticationResult>

acquireTokenOnBehalfOf(OnBehalfOfRequest)

Acquiert des jetons auprès de l’autorité de l’application.

Utilisé dans les scénarios où l’application actuelle est un service de niveau intermédiaire appelé avec un jeton représentant un utilisateur final. L’application actuelle peut utiliser le jeton (oboAssertion) pour demander un autre jeton pour accéder à l’API web en aval, au nom de cet utilisateur.

L’application de niveau intermédiaire actuelle n’a aucune interaction utilisateur pour obtenir le consentement. Découvrez comment obtenir le consentement pour votre application de niveau intermédiaire à partir de cet article. 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>

Paramètres

Retours

Promise<null | AuthenticationResult>

SetAppTokenProvider(IAppTokenProvider)

Ce point d’extensibilité fonctionne uniquement pour le flux client_credential, c’est-à-dire acquireTokenByClientCredential et est destiné à Kit de développement logiciel (SDK) Azure pour améliorer la prise en charge de l’identité managée.

function SetAppTokenProvider(provider: IAppTokenProvider)

Paramètres

Détails de la méthode héritée

acquireTokenByCode(AuthorizationCodeRequest, AuthorizationCodePayload)

Acquiert un jeton en échangeant le code d’autorisation reçu à partir de la première étape du flux de code d’autorisation OAuth2.0.

getAuthCodeUrl(AuthorizationCodeUrlRequest) peut être utilisé pour créer l’URL de la première étape du flux de code d’autorisation OAuth2.0. Vérifiez que les valeurs de redirectUri et d’étendues dans AuthorizationCodeUrlRequest et AuthorizationCodeRequest sont identiques.

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

Paramètres

authCodePayLoad
AuthorizationCodePayload

Retours

Hérité deClientApplication.acquireTokenByCode

acquireTokenByRefreshToken(RefreshTokenRequest)

Acquiert un jeton en échangeant le jeton d’actualisation fourni pour un nouvel ensemble de jetons.

Cette API est fournie uniquement pour les scénarios où vous souhaitez migrer de la bibliothèque ADAL vers MSAL. Sinon, il est recommandé d’utiliser acquireTokenSilent() pour les scénarios silencieux. Lors de l’utilisation acquireTokenSilent(), MSAL gère automatiquement la mise en cache et l’actualisation des jetons.

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

Paramètres

Retours

Promise<null | AuthenticationResult>

Hérité deClientApplication.acquireTokenByRefreshToken

acquireTokenByUsernamePassword(UsernamePasswordRequest)

Avertissement

Cette API est à présent déconseillée.

  • Use a more secure flow instead

Acquiert des jetons avec l’octroi de mot de passe en échangeant le nom d’utilisateur et le mot de passe des applications clientes pour les informations d’identification

La dernière pratique actuelle de sécurité OAuth 2.0 interdit entièrement l’octroi de mot de passe. Pour plus d'informations sur cette recommandation, consultez la https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-3.4 documentation et les recommandations de Microsoft :https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows#usernamepassword

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

Paramètres

request
UsernamePasswordRequest

UsenamePasswordRequest

Retours

Promise<null | AuthenticationResult>

Hérité deClientApplication.acquireTokenByUsernamePassword

acquireTokenSilent(SilentFlowRequest)

Acquiert un jeton en mode silencieux lorsqu’un utilisateur spécifie le compte pour lequel le jeton est demandé.

Cette API s’attend à ce que l’utilisateur fournisse un objet de compte et examine le cache pour récupérer le jeton s’il est présent. Il existe également une valeur booléenne « forceRefresh » facultative que l’utilisateur peut envoyer pour contourner le cache pour access_token et id_token. Si le refresh_token a expiré ou n’est pas trouvé, une erreur est levée et les instructions sont destinées à l’utilisateur à appeler une API d’acquisition de jeton interactive (par exemple : acquireTokenByCode()).

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

Paramètres

Retours

Hérité deClientApplication.acquireTokenSilent

clearCache()

Effacer le cache

function clearCache()

Hérité deClientApplication.clearCache

getAuthCodeUrl(AuthorizationUrlRequest)

Crée l’URL de la demande d’autorisation, permettant à l’utilisateur d’entrer les informations d’identification et de donner son consentement à l’application. L’URL cible le point de terminaison /authorize de l’autorité configurée dans l’objet d’application.

Une fois que l’utilisateur entre ses informations d’identification et son consentement, l’autorité envoie une réponse à l’URI de redirection envoyé dans la demande et doit contenir un code d’autorisation, qui peut ensuite être utilisé pour acquérir des jetons via acquireTokenByCode(AuthorizationCodeRequest).

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

Paramètres

Retours

Promise<string>

Hérité deClientApplication.getAuthCodeUrl

getLogger()

Retourne l’instance de l’enregistreur d’événements

function getLogger(): Logger

Retours

Hérité deClientApplication.getLogger

getTokenCache()

Obtient le cache de jetons de l’application.

function getTokenCache(): TokenCache

Retours

Hérité deClientApplication.getTokenCache

setLogger(Logger)

Remplace le jeu d’événements par défaut dans les configurations par le nouvel enregistreur d’événements par de nouvelles configurations

function setLogger(logger: Logger)

Paramètres

logger
Logger

Instance d’enregistreur d’événements

Hérité deClientApplication.setLogger