UNPKG

@azure/core-rest-pipeline

Version:

Isomorphic client library for making HTTP requests in node.js and browser.

117 lines 4.28 kB
import type { AccessToken, GetTokenOptions, TokenCredential } from "@azure/core-auth"; import type { AzureLogger } from "@azure/logger"; import type { PipelineRequest, PipelineResponse } from "../interfaces.js"; import type { PipelinePolicy } from "../pipeline.js"; /** * The programmatic identifier of the bearerTokenAuthenticationPolicy. */ export declare const bearerTokenAuthenticationPolicyName = "bearerTokenAuthenticationPolicy"; /** * Options sent to the authorizeRequest callback */ export interface AuthorizeRequestOptions { /** * The scopes for which the bearer token applies. */ scopes: string[]; /** * Function that retrieves either a cached access token or a new access token. */ getAccessToken: (scopes: string[], options: GetTokenOptions) => Promise<AccessToken | null>; /** * Request that the policy is trying to fulfill. */ request: PipelineRequest; /** * A logger, if one was sent through the HTTP pipeline. */ logger?: AzureLogger; } /** * Options sent to the authorizeRequestOnChallenge callback */ export interface AuthorizeRequestOnChallengeOptions { /** * The scopes for which the bearer token applies. */ scopes: string[]; /** * Function that retrieves either a cached access token or a new access token. */ getAccessToken: (scopes: string[], options: GetTokenOptions) => Promise<AccessToken | null>; /** * Request that the policy is trying to fulfill. */ request: PipelineRequest; /** * Response containing the challenge. */ response: PipelineResponse; /** * A logger, if one was sent through the HTTP pipeline. */ logger?: AzureLogger; } /** * Options to override the processing of [Continuous Access Evaluation](https://learn.microsoft.com/azure/active-directory/conditional-access/concept-continuous-access-evaluation) challenges. */ export interface ChallengeCallbacks { /** * Allows for the authorization of the main request of this policy before it's sent. */ authorizeRequest?(options: AuthorizeRequestOptions): Promise<void>; /** * Allows to handle authentication challenges and to re-authorize the request. * The response containing the challenge is `options.response`. * If this method returns true, the underlying request will be sent once again. * The request may be modified before being sent. */ authorizeRequestOnChallenge?(options: AuthorizeRequestOnChallengeOptions): Promise<boolean>; } /** * Options to configure the bearerTokenAuthenticationPolicy */ export interface BearerTokenAuthenticationPolicyOptions { /** * The TokenCredential implementation that can supply the bearer token. */ credential?: TokenCredential; /** * The scopes for which the bearer token applies. */ scopes: string | string[]; /** * Allows for the processing of [Continuous Access Evaluation](https://learn.microsoft.com/azure/active-directory/conditional-access/concept-continuous-access-evaluation) challenges. * If provided, it must contain at least the `authorizeRequestOnChallenge` method. * If provided, after a request is sent, if it has a challenge, it can be processed to re-send the original request with the relevant challenge information. */ challengeCallbacks?: ChallengeCallbacks; /** * A logger can be sent for debugging purposes. */ logger?: AzureLogger; } /** * A policy that can request a token from a TokenCredential implementation and * then apply it to the Authorization header of a request as a Bearer token. */ export declare function bearerTokenAuthenticationPolicy(options: BearerTokenAuthenticationPolicyOptions): PipelinePolicy; /** * * Interface to represent a parsed challenge. * * @internal */ interface AuthChallenge { scheme: string; params: Record<string, string>; } /** * Converts: `Bearer a="b", c="d", Pop e="f", g="h"`. * Into: `[ { scheme: 'Bearer', params: { a: 'b', c: 'd' } }, { scheme: 'Pop', params: { e: 'f', g: 'h' } } ]`. * * @internal */ export declare function parseChallenges(challenges: string): AuthChallenge[]; export {}; //# sourceMappingURL=bearerTokenAuthenticationPolicy.d.ts.map