@microsoft/agents-hosting 1.9.0-beta.3.gb2d23c1c44 → 1.9.0-beta.8.gf58e66b2ee

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@microsoft/agents-hosting",
4
- "version": "1.9.0-beta.3.gb2d23c1c44",
4
+ "version": "1.9.0-beta.8.gf58e66b2ee",
5
5
  "homepage": "https://github.com/microsoft/Agents-for-js",
6
6
  "repository": {
7
7
  "type": "git",
@@ -21,8 +21,8 @@
21
21
  "dependencies": {
22
22
  "@azure/core-auth": "1.10.1",
23
23
  "@azure/msal-node": "5.6.0",
24
- "@microsoft/agents-activity": "1.9.0-beta.3.gb2d23c1c44",
25
- "@microsoft/agents-telemetry": "1.9.0-beta.3.gb2d23c1c44",
24
+ "@microsoft/agents-activity": "1.9.0-beta.8.gf58e66b2ee",
25
+ "@microsoft/agents-telemetry": "1.9.0-beta.8.gf58e66b2ee",
26
26
  "jsonwebtoken": "9.0.3",
27
27
  "jwks-rsa": "4.0.1",
28
28
  "zod": "3.25.75"
@@ -2,6 +2,7 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
+ import { TokenCredential } from '@azure/core-auth';
5
6
  import { TokenResponse } from '../../oauth';
6
7
  import { TurnContext } from '../../turnContext';
7
8
  import { TurnState } from '../turnState';
@@ -9,8 +10,10 @@ import { AuthorizationManager } from './authorizationManager';
9
10
  import { AuthorizationHandlerTokenOptions } from './types';
10
11
  export interface Authorization {
11
12
  getToken(context: TurnContext, authHandlerId: string): Promise<TokenResponse>;
13
+ getTokenAsTokenCredential?(context: TurnContext, authHandlerId: string): TokenCredential;
12
14
  exchangeToken(context: TurnContext, scopes: string[], authHandlerId: string): Promise<TokenResponse>;
13
15
  exchangeToken(context: TurnContext, authHandlerId: string, options?: AuthorizationHandlerTokenOptions): Promise<TokenResponse>;
16
+ exchangeTokenAsTokenCredential?(context: TurnContext, authHandlerId: string, options?: AuthorizationHandlerTokenOptions): TokenCredential;
14
17
  signOut(context: TurnContext, state: TurnState, authHandlerId?: string): Promise<void>;
15
18
  onSignInSuccess(handler: (context: TurnContext, state: TurnState, authHandlerId?: string) => Promise<void>): void;
16
19
  onSignInFailure(handler: (context: TurnContext, state: TurnState, authHandlerId?: string, errorMessage?: string) => Promise<void>): void;
@@ -62,6 +65,28 @@ export declare class UserAuthorization implements Authorization {
62
65
  * @public
63
66
  */
64
67
  getToken(context: TurnContext, authHandlerId: string): Promise<TokenResponse>;
68
+ /**
69
+ * Creates a token credential backed by the current turn's user token.
70
+ *
71
+ * @param context - The context object for the current turn.
72
+ * @param authHandlerId - ID of the auth handler to use.
73
+ * @returns A {@link TokenCredential} that resolves to the current turn's user token.
74
+ * @throws {Error} If the auth handler is not configured.
75
+ *
76
+ * @remarks
77
+ * The returned credential is scoped to this `context` and should only be used during the
78
+ * current turn. Do not cache it or pass it to a client that outlives the turn; create a new
79
+ * credential in each turn instead.
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * const credential = auth.getTokenAsTokenCredential(context, 'microsoft');
84
+ * const client = new SomeAzureClient(endpoint, credential);
85
+ * ```
86
+ *
87
+ * @public
88
+ */
89
+ getTokenAsTokenCredential(context: TurnContext, authHandlerId: string): TokenCredential;
65
90
  /**
66
91
  * @deprecated
67
92
  * Exchanges a token for a new token with different scopes.
@@ -118,6 +143,35 @@ export declare class UserAuthorization implements Authorization {
118
143
  * @public
119
144
  */
120
145
  exchangeToken(context: TurnContext, authHandlerId: string, options?: AuthorizationHandlerTokenOptions): Promise<TokenResponse>;
146
+ /**
147
+ * Creates a token credential that exchanges the user token for requested scopes during the current turn.
148
+ *
149
+ * @param context - The context object for the current turn.
150
+ * @param authHandlerId - ID of the auth handler to use.
151
+ * @param options - Optional token options. If `connection` and `scopes` are NOT provided, the auth handler's
152
+ * configured `obo` options are used. Provide `options` only to override them for a specific credential.
153
+ * @returns A {@link TokenCredential} that exchanges the current turn's user token for the requested scopes.
154
+ * @throws {Error} If the auth handler is not configured.
155
+ *
156
+ * @remarks
157
+ * The returned credential is scoped to this `context` and should only be used during the current turn.
158
+ * Do not cache it or pass it to a client that outlives the turn; create a new credential in each turn instead.
159
+ * Scopes requested from the credential (via `TokenCredential.getToken`) are combined with `options.scopes`,
160
+ * and duplicate scopes are removed.
161
+ *
162
+ * @example
163
+ * ```typescript
164
+ * const credential = auth.exchangeTokenAsTokenCredential(
165
+ * context,
166
+ * 'microsoft',
167
+ * { connection: 'oboConnection', scopes: ['https://graph.microsoft.com/.default'] }
168
+ * );
169
+ * const client = new SomeAzureClient(endpoint, credential);
170
+ * ```
171
+ *
172
+ * @public
173
+ */
174
+ exchangeTokenAsTokenCredential(context: TurnContext, authHandlerId: string, options?: AuthorizationHandlerTokenOptions): TokenCredential;
121
175
  /**
122
176
  * Signs out the current user.
123
177
  *
@@ -5,10 +5,11 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.UserAuthorization = void 0;
8
- const agents_telemetry_1 = require("@microsoft/agents-telemetry");
9
8
  const agents_activity_1 = require("@microsoft/agents-activity");
10
- const turnState_1 = require("../turnState");
9
+ const agents_telemetry_1 = require("@microsoft/agents-telemetry");
10
+ const delegatedTokenCredential_1 = require("../../auth/delegatedTokenCredential");
11
11
  const errorHelper_1 = require("../../errorHelper");
12
+ const turnState_1 = require("../turnState");
12
13
  const logger = (0, agents_telemetry_1.debug)('agents:authorization');
13
14
  /**
14
15
  * Class responsible for managing authorization and OAuth flows.
@@ -62,6 +63,30 @@ class UserAuthorization {
62
63
  const { token } = await handler.token(context);
63
64
  return { token };
64
65
  }
66
+ /**
67
+ * Creates a token credential backed by the current turn's user token.
68
+ *
69
+ * @param context - The context object for the current turn.
70
+ * @param authHandlerId - ID of the auth handler to use.
71
+ * @returns A {@link TokenCredential} that resolves to the current turn's user token.
72
+ * @throws {Error} If the auth handler is not configured.
73
+ *
74
+ * @remarks
75
+ * The returned credential is scoped to this `context` and should only be used during the
76
+ * current turn. Do not cache it or pass it to a client that outlives the turn; create a new
77
+ * credential in each turn instead.
78
+ *
79
+ * @example
80
+ * ```typescript
81
+ * const credential = auth.getTokenAsTokenCredential(context, 'microsoft');
82
+ * const client = new SomeAzureClient(endpoint, credential);
83
+ * ```
84
+ *
85
+ * @public
86
+ */
87
+ getTokenAsTokenCredential(context, authHandlerId) {
88
+ return new delegatedTokenCredential_1.DelegatedTokenCredential(async () => await this.getToken(context, authHandlerId));
89
+ }
65
90
  /**
66
91
  * @internal
67
92
  * Internal implementation of exchangeToken method.
@@ -80,6 +105,42 @@ class UserAuthorization {
80
105
  }
81
106
  throw agents_activity_1.ExceptionHelper.generateException(Error, errorHelper_1.Errors.InvalidExchangeTokenParameters);
82
107
  }
108
+ /**
109
+ * Creates a token credential that exchanges the user token for requested scopes during the current turn.
110
+ *
111
+ * @param context - The context object for the current turn.
112
+ * @param authHandlerId - ID of the auth handler to use.
113
+ * @param options - Optional token options. If `connection` and `scopes` are NOT provided, the auth handler's
114
+ * configured `obo` options are used. Provide `options` only to override them for a specific credential.
115
+ * @returns A {@link TokenCredential} that exchanges the current turn's user token for the requested scopes.
116
+ * @throws {Error} If the auth handler is not configured.
117
+ *
118
+ * @remarks
119
+ * The returned credential is scoped to this `context` and should only be used during the current turn.
120
+ * Do not cache it or pass it to a client that outlives the turn; create a new credential in each turn instead.
121
+ * Scopes requested from the credential (via `TokenCredential.getToken`) are combined with `options.scopes`,
122
+ * and duplicate scopes are removed.
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * const credential = auth.exchangeTokenAsTokenCredential(
127
+ * context,
128
+ * 'microsoft',
129
+ * { connection: 'oboConnection', scopes: ['https://graph.microsoft.com/.default'] }
130
+ * );
131
+ * const client = new SomeAzureClient(endpoint, credential);
132
+ * ```
133
+ *
134
+ * @public
135
+ */
136
+ exchangeTokenAsTokenCredential(context, authHandlerId, options) {
137
+ return new delegatedTokenCredential_1.DelegatedTokenCredential(async (scopes) => {
138
+ var _a;
139
+ const scopeSet = new Set([...scopes, ...((_a = options === null || options === void 0 ? void 0 : options.scopes) !== null && _a !== void 0 ? _a : [])]);
140
+ const mergedScopes = Array.from(scopeSet);
141
+ return await this.exchangeToken(context, authHandlerId, { connection: options === null || options === void 0 ? void 0 : options.connection, scopes: mergedScopes });
142
+ });
143
+ }
83
144
  /**
84
145
  * Signs out the current user.
85
146
  *
@@ -1 +1 @@
1
- {"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../../../src/app/auth/authorization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../../../src/app/auth/authorization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import { AccessToken, GetTokenOptions, TokenCredential } from '@azure/core-auth';
6
+ import { TokenResponse } from '../oauth';
7
+ /**
8
+ * Azure Core Auth {@link TokenCredential} implementation backed by an Agents SDK token provider
9
+ *
10
+ * @remarks
11
+ * This allows Agents SDK-managed tokens (user sign-in, OBO exchange) to be consumed directly by
12
+ * Azure SDK clients that expect a `TokenCredential`.
13
+ */
14
+ export declare class DelegatedTokenCredential implements TokenCredential {
15
+ private provider;
16
+ /**
17
+ * Creates a new instance of DelegatedTokenCredential.
18
+ * @param provider Function invoked to acquire a token for the requested scopes.
19
+ */
20
+ constructor(provider: (scopes: string[], options?: GetTokenOptions) => Promise<TokenResponse | undefined>);
21
+ /**
22
+ * Retrieves an access token for the specified scopes using the configured provider.
23
+ * @param scopes Array of scopes for which to request an access token.
24
+ * @param options Optional parameters for token retrieval.
25
+ * @returns Promise that resolves to an access token.
26
+ * @throws {Error} If the provider returns a null/undefined response or a response without a token.
27
+ */
28
+ getToken(scopes: string | string[], options?: GetTokenOptions): Promise<AccessToken>;
29
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DelegatedTokenCredential = void 0;
8
+ const agents_activity_1 = require("@microsoft/agents-activity");
9
+ const errorHelper_1 = require("../errorHelper");
10
+ /**
11
+ * Default lifetime assumed for a token when the underlying provider does not report an expiration.
12
+ */
13
+ const DEFAULT_TOKEN_LIFETIME_MS = 5 * 60 * 1000;
14
+ /**
15
+ * Azure Core Auth {@link TokenCredential} implementation backed by an Agents SDK token provider
16
+ *
17
+ * @remarks
18
+ * This allows Agents SDK-managed tokens (user sign-in, OBO exchange) to be consumed directly by
19
+ * Azure SDK clients that expect a `TokenCredential`.
20
+ */
21
+ class DelegatedTokenCredential {
22
+ /**
23
+ * Creates a new instance of DelegatedTokenCredential.
24
+ * @param provider Function invoked to acquire a token for the requested scopes.
25
+ */
26
+ constructor(provider) {
27
+ this.provider = provider;
28
+ }
29
+ /**
30
+ * Retrieves an access token for the specified scopes using the configured provider.
31
+ * @param scopes Array of scopes for which to request an access token.
32
+ * @param options Optional parameters for token retrieval.
33
+ * @returns Promise that resolves to an access token.
34
+ * @throws {Error} If the provider returns a null/undefined response or a response without a token.
35
+ */
36
+ async getToken(scopes, options) {
37
+ const requestedScopes = Array.isArray(scopes) ? scopes : [scopes];
38
+ const response = await this.provider(requestedScopes, options);
39
+ if (!(response === null || response === void 0 ? void 0 : response.token)) {
40
+ throw agents_activity_1.ExceptionHelper.generateException(Error, errorHelper_1.Errors.NullTokenResponse);
41
+ }
42
+ return {
43
+ token: response.token,
44
+ expiresOnTimestamp: Date.now() + DEFAULT_TOKEN_LIFETIME_MS
45
+ };
46
+ }
47
+ }
48
+ exports.DelegatedTokenCredential = DelegatedTokenCredential;
49
+ //# sourceMappingURL=delegatedTokenCredential.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegatedTokenCredential.js","sourceRoot":"","sources":["../../../src/auth/delegatedTokenCredential.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,gEAA4D;AAC5D,gDAAuC;AAGvC;;GAEG;AACH,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAE/C;;;;;;GAMG;AACH;IACE;;;OAGG;IACH,YAAqB,QAA6F;wBAA7F,QAAQ;IAAwF,CAAC;IAEtH;;;;;;OAMG;IACI,KAAK,CAAC,QAAQ,CAAE,MAAyB,EAAE,OAAyB;QACzE,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QACjE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;QAC9D,IAAI,EAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CAAA,EAAE,CAAC;YACrB,MAAM,iCAAe,CAAC,iBAAiB,CAAC,KAAK,EAAE,oBAAM,CAAC,iBAAiB,CAAC,CAAA;QAC1E,CAAC;QAED,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,kBAAkB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,yBAAyB;SAC3D,CAAA;IACH,CAAC;CACF"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MsalTokenCredential = void 0;
4
- const msalTokenProvider_1 = require("./msalTokenProvider");
5
4
  const agents_telemetry_1 = require("@microsoft/agents-telemetry");
5
+ const msalTokenProvider_1 = require("./msalTokenProvider");
6
6
  const logger = (0, agents_telemetry_1.debug)('agents:msal');
7
7
  /**
8
8
  * Token credential implementation that uses MSAL (Microsoft Authentication Library) to acquire access tokens.
@@ -1 +1 @@
1
- {"version":3,"file":"msalTokenCredential.js","sourceRoot":"","sources":["../../../../src/auth/msal/msalTokenCredential.ts"],"names":[],"mappings":";;;AAEA,2DAAuD;AACvD,kEAAmD;AAEnD,MAAM,MAAM,GAAG,IAAA,wBAAK,EAAC,aAAa,CAAC,CAAA;AAEnC;;;GAGG;AACH;IACE;;;OAGG;IACH,YAAqB,UAA6B;0BAA7B,UAAU;IAAsB,CAAC;IAEtD;;;;;OAKG;IACI,KAAK,CAAC,QAAQ,CAAE,MAAgB,EAAE,OAAyB;QAChE,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAA;QAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;QAChE,MAAM,KAAK,GAAG,MAAM,IAAI,qCAAiB,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QAClF,OAAO;YACL,KAAK;YACL,kBAAkB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SACvC,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"msalTokenCredential.js","sourceRoot":"","sources":["../../../../src/auth/msal/msalTokenCredential.ts"],"names":[],"mappings":";;;AACA,kEAAmD;AAEnD,2DAAuD;AAEvD,MAAM,MAAM,GAAG,IAAA,wBAAK,EAAC,aAAa,CAAC,CAAA;AAEnC;;;GAGG;AACH;IACE;;;OAGG;IACH,YAAqB,UAA6B;0BAA7B,UAAU;IAAsB,CAAC;IAEtD;;;;;OAKG;IACI,KAAK,CAAC,QAAQ,CAAE,MAAgB,EAAE,OAAyB;QAChE,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAA;QAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;QAChE,MAAM,KAAK,GAAG,MAAM,IAAI,qCAAiB,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QAClF,OAAO;YACL,KAAK;YACL,kBAAkB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SACvC,CAAA;IACH,CAAC;CACF"}
@@ -372,6 +372,13 @@ exports.Errors = {
372
372
  code: -120391,
373
373
  description: 'MSAL HTTP request failed: {message}'
374
374
  },
375
+ /**
376
+ * Error thrown when a delegated token credential's provider returns a response without a usable token.
377
+ */
378
+ NullTokenResponse: {
379
+ code: -120393,
380
+ description: 'The token response provider returned a null response or a response without a token.'
381
+ },
375
382
  /**
376
383
  * Error thrown when an MSAL HTTP response body cannot be parsed as JSON.
377
384
  */
@@ -1 +1 @@
1
- {"version":3,"file":"errorHelper.js","sourceRoot":"","sources":["../../src/errorHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errorHelper.js","sourceRoot":"","sources":["../../src/errorHelper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@microsoft/agents-hosting",
4
- "version": "1.9.0-beta.3.gb2d23c1c44",
4
+ "version": "1.9.0-beta.8.gf58e66b2ee",
5
5
  "homepage": "https://github.com/microsoft/Agents-for-js",
6
6
  "repository": {
7
7
  "type": "git",
@@ -21,8 +21,8 @@
21
21
  "dependencies": {
22
22
  "@azure/core-auth": "1.10.1",
23
23
  "@azure/msal-node": "5.6.0",
24
- "@microsoft/agents-activity": "1.9.0-beta.3.gb2d23c1c44",
25
- "@microsoft/agents-telemetry": "1.9.0-beta.3.gb2d23c1c44",
24
+ "@microsoft/agents-activity": "1.9.0-beta.8.gf58e66b2ee",
25
+ "@microsoft/agents-telemetry": "1.9.0-beta.8.gf58e66b2ee",
26
26
  "jsonwebtoken": "9.0.3",
27
27
  "jwks-rsa": "4.0.1",
28
28
  "zod": "3.25.75"
@@ -3,21 +3,25 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { debug } from '@microsoft/agents-telemetry'
6
+ import { TokenCredential } from '@azure/core-auth'
7
7
  import { ExceptionHelper } from '@microsoft/agents-activity'
8
+ import { debug } from '@microsoft/agents-telemetry'
9
+ import { DelegatedTokenCredential } from '../../auth/delegatedTokenCredential'
10
+ import { Errors } from '../../errorHelper'
8
11
  import { TokenResponse } from '../../oauth'
9
12
  import { TurnContext } from '../../turnContext'
10
13
  import { TurnState } from '../turnState'
11
14
  import { AuthorizationManager } from './authorizationManager'
12
15
  import { AuthorizationHandlerTokenOptions } from './types'
13
- import { Errors } from '../../errorHelper'
14
16
 
15
17
  const logger = debug('agents:authorization')
16
18
 
17
19
  export interface Authorization {
18
20
  getToken(context: TurnContext, authHandlerId: string): Promise<TokenResponse>
21
+ getTokenAsTokenCredential?(context: TurnContext, authHandlerId: string): TokenCredential
19
22
  exchangeToken(context: TurnContext, scopes: string[], authHandlerId: string): Promise<TokenResponse>
20
23
  exchangeToken(context: TurnContext, authHandlerId: string, options?: AuthorizationHandlerTokenOptions): Promise<TokenResponse>
24
+ exchangeTokenAsTokenCredential?(context: TurnContext, authHandlerId: string, options?: AuthorizationHandlerTokenOptions): TokenCredential
21
25
  signOut(context: TurnContext, state: TurnState, authHandlerId?: string): Promise<void>
22
26
  onSignInSuccess(handler: (context: TurnContext, state: TurnState, authHandlerId?: string) => Promise<void>): void
23
27
  onSignInFailure(handler: (context: TurnContext, state: TurnState, authHandlerId?: string, errorMessage?: string) => Promise<void>): void
@@ -75,6 +79,31 @@ export class UserAuthorization implements Authorization {
75
79
  return { token }
76
80
  }
77
81
 
82
+ /**
83
+ * Creates a token credential backed by the current turn's user token.
84
+ *
85
+ * @param context - The context object for the current turn.
86
+ * @param authHandlerId - ID of the auth handler to use.
87
+ * @returns A {@link TokenCredential} that resolves to the current turn's user token.
88
+ * @throws {Error} If the auth handler is not configured.
89
+ *
90
+ * @remarks
91
+ * The returned credential is scoped to this `context` and should only be used during the
92
+ * current turn. Do not cache it or pass it to a client that outlives the turn; create a new
93
+ * credential in each turn instead.
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * const credential = auth.getTokenAsTokenCredential(context, 'microsoft');
98
+ * const client = new SomeAzureClient(endpoint, credential);
99
+ * ```
100
+ *
101
+ * @public
102
+ */
103
+ public getTokenAsTokenCredential (context: TurnContext, authHandlerId: string): TokenCredential {
104
+ return new DelegatedTokenCredential(async () => await this.getToken(context, authHandlerId))
105
+ }
106
+
78
107
  /**
79
108
  * @deprecated
80
109
  * Exchanges a token for a new token with different scopes.
@@ -153,6 +182,42 @@ export class UserAuthorization implements Authorization {
153
182
  throw ExceptionHelper.generateException(Error, Errors.InvalidExchangeTokenParameters)
154
183
  }
155
184
 
185
+ /**
186
+ * Creates a token credential that exchanges the user token for requested scopes during the current turn.
187
+ *
188
+ * @param context - The context object for the current turn.
189
+ * @param authHandlerId - ID of the auth handler to use.
190
+ * @param options - Optional token options. If `connection` and `scopes` are NOT provided, the auth handler's
191
+ * configured `obo` options are used. Provide `options` only to override them for a specific credential.
192
+ * @returns A {@link TokenCredential} that exchanges the current turn's user token for the requested scopes.
193
+ * @throws {Error} If the auth handler is not configured.
194
+ *
195
+ * @remarks
196
+ * The returned credential is scoped to this `context` and should only be used during the current turn.
197
+ * Do not cache it or pass it to a client that outlives the turn; create a new credential in each turn instead.
198
+ * Scopes requested from the credential (via `TokenCredential.getToken`) are combined with `options.scopes`,
199
+ * and duplicate scopes are removed.
200
+ *
201
+ * @example
202
+ * ```typescript
203
+ * const credential = auth.exchangeTokenAsTokenCredential(
204
+ * context,
205
+ * 'microsoft',
206
+ * { connection: 'oboConnection', scopes: ['https://graph.microsoft.com/.default'] }
207
+ * );
208
+ * const client = new SomeAzureClient(endpoint, credential);
209
+ * ```
210
+ *
211
+ * @public
212
+ */
213
+ public exchangeTokenAsTokenCredential (context: TurnContext, authHandlerId: string, options?: AuthorizationHandlerTokenOptions): TokenCredential {
214
+ return new DelegatedTokenCredential(async (scopes) => {
215
+ const scopeSet = new Set([...scopes, ...(options?.scopes ?? [])])
216
+ const mergedScopes = Array.from(scopeSet)
217
+ return await this.exchangeToken(context, authHandlerId, { connection: options?.connection, scopes: mergedScopes })
218
+ })
219
+ }
220
+
156
221
  /**
157
222
  * Signs out the current user.
158
223
  *
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ import { AccessToken, GetTokenOptions, TokenCredential } from '@azure/core-auth'
7
+ import { ExceptionHelper } from '@microsoft/agents-activity'
8
+ import { Errors } from '../errorHelper'
9
+ import { TokenResponse } from '../oauth'
10
+
11
+ /**
12
+ * Default lifetime assumed for a token when the underlying provider does not report an expiration.
13
+ */
14
+ const DEFAULT_TOKEN_LIFETIME_MS = 5 * 60 * 1000
15
+
16
+ /**
17
+ * Azure Core Auth {@link TokenCredential} implementation backed by an Agents SDK token provider
18
+ *
19
+ * @remarks
20
+ * This allows Agents SDK-managed tokens (user sign-in, OBO exchange) to be consumed directly by
21
+ * Azure SDK clients that expect a `TokenCredential`.
22
+ */
23
+ export class DelegatedTokenCredential implements TokenCredential {
24
+ /**
25
+ * Creates a new instance of DelegatedTokenCredential.
26
+ * @param provider Function invoked to acquire a token for the requested scopes.
27
+ */
28
+ constructor (private provider: (scopes: string[], options?: GetTokenOptions) => Promise<TokenResponse | undefined>) {}
29
+
30
+ /**
31
+ * Retrieves an access token for the specified scopes using the configured provider.
32
+ * @param scopes Array of scopes for which to request an access token.
33
+ * @param options Optional parameters for token retrieval.
34
+ * @returns Promise that resolves to an access token.
35
+ * @throws {Error} If the provider returns a null/undefined response or a response without a token.
36
+ */
37
+ public async getToken (scopes: string | string[], options?: GetTokenOptions): Promise<AccessToken> {
38
+ const requestedScopes = Array.isArray(scopes) ? scopes : [scopes]
39
+ const response = await this.provider(requestedScopes, options)
40
+ if (!response?.token) {
41
+ throw ExceptionHelper.generateException(Error, Errors.NullTokenResponse)
42
+ }
43
+
44
+ return {
45
+ token: response.token,
46
+ expiresOnTimestamp: Date.now() + DEFAULT_TOKEN_LIFETIME_MS
47
+ }
48
+ }
49
+ }
@@ -1,7 +1,7 @@
1
1
  import { GetTokenOptions, TokenCredential } from '@azure/core-auth'
2
+ import { debug } from '@microsoft/agents-telemetry'
2
3
  import { AuthConfiguration } from '../authConfiguration'
3
4
  import { MsalTokenProvider } from './msalTokenProvider'
4
- import { debug } from '@microsoft/agents-telemetry'
5
5
 
6
6
  const logger = debug('agents:msal')
7
7
 
@@ -432,6 +432,14 @@ export const Errors: { [key: string]: AgentErrorDefinition } = {
432
432
  description: 'MSAL HTTP request failed: {message}'
433
433
  },
434
434
 
435
+ /**
436
+ * Error thrown when a delegated token credential's provider returns a response without a usable token.
437
+ */
438
+ NullTokenResponse: {
439
+ code: -120393,
440
+ description: 'The token response provider returned a null response or a response without a token.'
441
+ },
442
+
435
443
  /**
436
444
  * Error thrown when an MSAL HTTP response body cannot be parsed as JSON.
437
445
  */