@microsoft/agents-hosting 1.7.0-beta.10.g0c6864b626 → 1.7.0-beta.11.gb5d3e8c751

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/README.md CHANGED
@@ -28,6 +28,15 @@ exposes framework-agnostic primitives that the
28
28
  Most consumers should keep using `startServer`/`createAgentRequestHandler` from the
29
29
  Express or Fastify packages; reach for these APIs when adapting another framework.
30
30
 
31
+ The agent-response handler authenticates requests once through the supplied
32
+ `CloudAdapter`. That boundary validates the token for any configured host connection;
33
+ the handler then verifies that the caller application matches the delegated agent
34
+ recorded for that conversation. Existing route-level `authorizeJWT` middleware is
35
+ redundant but remains compatible. Anonymous callbacks are supported only outside
36
+ production and emit a registration warning because peer ownership cannot be verified.
37
+ Missing, malformed, or pre-upgrade delegated state fails closed. Pre-upgrade
38
+ conversations must be restarted.
39
+
31
40
  ## Example Usage based on the AgentApplication object
32
41
 
33
42
  ```ts
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.7.0-beta.10.g0c6864b626",
4
+ "version": "1.7.0-beta.11.gb5d3e8c751",
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.1.5",
24
- "@microsoft/agents-activity": "1.7.0-beta.10.g0c6864b626",
25
- "@microsoft/agents-telemetry": "1.7.0-beta.10.g0c6864b626",
24
+ "@microsoft/agents-activity": "1.7.0-beta.11.gb5d3e8c751",
25
+ "@microsoft/agents-telemetry": "1.7.0-beta.11.gb5d3e8c751",
26
26
  "jsonwebtoken": "9.0.3",
27
27
  "jwks-rsa": "4.0.1",
28
28
  "zod": "3.25.75"
@@ -31,6 +31,10 @@ export interface ConversationData {
31
31
  * Reference to the conversation for maintaining context across interactions
32
32
  */
33
33
  conversationReference: ConversationReference;
34
+ /**
35
+ * Client ID of the delegated agent allowed to send responses for this conversation.
36
+ */
37
+ expectedAgentClientId?: string;
34
38
  }
35
39
  /**
36
40
  * Client for communicating with other agents through HTTP requests.
@@ -5,6 +5,7 @@ const auth_1 = require("../auth");
5
5
  const agents_activity_1 = require("@microsoft/agents-activity");
6
6
  const crypto_1 = require("crypto");
7
7
  const agents_telemetry_1 = require("@microsoft/agents-telemetry");
8
+ const turnContext_1 = require("../turnContext");
8
9
  const agents_telemetry_2 = require("@microsoft/agents-telemetry");
9
10
  const observability_1 = require("../observability");
10
11
  const errorHelper_1 = require("../errorHelper");
@@ -53,30 +54,42 @@ class AgentClient {
53
54
  }
54
55
  };
55
56
  activityCopy.conversation.id = (0, crypto_1.randomUUID)();
57
+ const delegatedContext = new turnContext_1.TurnContext(context.adapter, activityCopy, context.identity);
58
+ const delegatedStateKey = { channelId: activityCopy.channelId, conversationId: activityCopy.conversation.id };
56
59
  const conversationDataAccessor = conversationState.createProperty(activityCopy.conversation.id);
57
- const convRef = await conversationDataAccessor.set(context, { conversationReference: activity.getConversationReference(), nameRequested: false }, { channelId: activityCopy.channelId, conversationId: activityCopy.conversation.id });
58
- const stateChanges = JSON.stringify(convRef);
59
- logger.debug('stateChanges: ', stateChanges);
60
+ await conversationDataAccessor.set(delegatedContext, {
61
+ conversationReference: activity.getConversationReference(),
62
+ nameRequested: false,
63
+ expectedAgentClientId: this.agentClientConfig.clientId
64
+ }, delegatedStateKey);
65
+ logger.debug('stored delegated conversation state');
60
66
  const authProvider = new auth_1.MsalTokenProvider(authConfig);
61
67
  const token = await authProvider.getAccessToken(this.agentClientConfig.clientId);
62
- logger.debug('agent request: ', activityCopy);
68
+ logger.debug('sending activity to delegated agent');
63
69
  let authHeader = ''; // Allow anonymous auth.
64
70
  if (token.trim().length > 0) {
65
71
  authHeader = `Bearer ${token}`;
66
72
  }
67
- await conversationState.saveChanges(context, false, { channelId: activityCopy.channelId, conversationId: activityCopy.conversation.id });
68
- const response = await fetch(this.agentClientConfig.endPoint, {
69
- method: 'POST',
70
- headers: {
71
- 'Content-Type': 'application/json',
72
- Authorization: authHeader,
73
- 'x-ms-conversation-id': activityCopy.conversation.id
74
- },
75
- body: JSON.stringify(activityCopy)
76
- });
73
+ await conversationState.saveChanges(delegatedContext, false, delegatedStateKey);
74
+ let response;
75
+ try {
76
+ response = await fetch(this.agentClientConfig.endPoint, {
77
+ method: 'POST',
78
+ headers: {
79
+ 'Content-Type': 'application/json',
80
+ Authorization: authHeader,
81
+ 'x-ms-conversation-id': activityCopy.conversation.id
82
+ },
83
+ body: JSON.stringify(activityCopy)
84
+ });
85
+ }
86
+ catch (error) {
87
+ await conversationState.delete(delegatedContext, delegatedStateKey);
88
+ throw error;
89
+ }
77
90
  record({ httpStatusCode: response.status.toString() });
78
91
  if (!response.ok) {
79
- await conversationDataAccessor.delete(context, { channelId: activityCopy.channelId, conversationId: activityCopy.conversation.id });
92
+ await conversationState.delete(delegatedContext, delegatedStateKey);
80
93
  throw agents_activity_1.ExceptionHelper.generateException(Error, errorHelper_1.Errors.FailedToPostActivityToAgent, undefined, { statusText: response.statusText });
81
94
  }
82
95
  return response.statusText;
@@ -1 +1 @@
1
- {"version":3,"file":"agentClient.js","sourceRoot":"","sources":["../../../src/agent-client/agentClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentClient.js","sourceRoot":"","sources":["../../../src/agent-client/agentClient.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,8 @@ export interface WebApp {
34
34
  * `POST /api/agentresponse/v3/conversations/{conversationId}/activities/{activityId}`
35
35
  *
36
36
  * The function handles:
37
+ * - Authenticating callers with JWT validation
38
+ * - Verifying that the authenticated caller owns the delegated conversation
37
39
  * - Normalizing incoming activity data from the request body
38
40
  * - Retrieving conversation references from conversation state
39
41
  * - Continuing conversations using the stored conversation reference
@@ -19,6 +19,8 @@ const createAgentResponseHandler_1 = require("./createAgentResponseHandler");
19
19
  * `POST /api/agentresponse/v3/conversations/{conversationId}/activities/{activityId}`
20
20
  *
21
21
  * The function handles:
22
+ * - Authenticating callers with JWT validation
23
+ * - Verifying that the authenticated caller owns the delegated conversation
22
24
  * - Normalizing incoming activity data from the request body
23
25
  * - Retrieving conversation references from conversation state
24
26
  * - Continuing conversations using the stored conversation reference
@@ -1 +1 @@
1
- {"version":3,"file":"agentResponseHandler.js","sourceRoot":"","sources":["../../../src/agent-client/agentResponseHandler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAOH,6EAAoG;AAsBpG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACI,MAAM,2BAA2B,GAAG,CACzC,GAAW,EACX,OAAqB,EACrB,KAAsB,EACtB,iBAAoC,EACpC,EAAE;IACF,MAAM,OAAO,GAAG,IAAA,uDAA0B,EAAC,OAAO,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAA;IAC7E,GAAG,CAAC,IAAI,CAAC,sDAAyB,EAAE,KAAK,EAAE,GAAsC,EAAE,GAAgB,EAAE,EAAE;QACrG,MAAM,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE;YACtB,cAAc,EAAE,GAAG,CAAC,MAAO,CAAC,cAAwB;YACpD,UAAU,EAAE,GAAG,CAAC,MAAO,CAAC,UAAoB;SAC7C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAbY,QAAA,2BAA2B,+BAavC"}
1
+ {"version":3,"file":"agentResponseHandler.js","sourceRoot":"","sources":["../../../src/agent-client/agentResponseHandler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAOH,6EAAoG;AAsBpG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACI,MAAM,2BAA2B,GAAG,CACzC,GAAW,EACX,OAAqB,EACrB,KAAsB,EACtB,iBAAoC,EACpC,EAAE;IACF,MAAM,OAAO,GAAG,IAAA,uDAA0B,EAAC,OAAO,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAA;IAC7E,GAAG,CAAC,IAAI,CAAC,sDAAyB,EAAE,KAAK,EAAE,GAAsC,EAAE,GAAgB,EAAE,EAAE;QACrG,MAAM,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE;YACtB,cAAc,EAAE,GAAG,CAAC,MAAO,CAAC,cAAwB;YACpD,UAAU,EAAE,GAAG,CAAC,MAAO,CAAC,UAAoB;SAC7C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAbY,QAAA,2BAA2B,+BAavC"}
@@ -12,6 +12,7 @@ const crypto_1 = require("crypto");
12
12
  const activityWireCompat_1 = require("../activityWireCompat");
13
13
  const errorHelper_1 = require("../errorHelper");
14
14
  const agents_telemetry_1 = require("@microsoft/agents-telemetry");
15
+ const jwt_middleware_1 = require("../auth/jwt-middleware");
15
16
  const logger = (0, agents_telemetry_1.debug)('agents:agent-client');
16
17
  /**
17
18
  * Creates a framework-agnostic handler for the agent response controller endpoint.
@@ -30,26 +31,57 @@ const logger = (0, agents_telemetry_1.debug)('agents:agent-client');
30
31
  * @returns A handler `(req, res, params) => Promise<void>`.
31
32
  */
32
33
  const createAgentResponseHandler = (adapter, agent, conversationState) => {
34
+ var _a;
35
+ const appId = (_a = adapter.getClientId()) !== null && _a !== void 0 ? _a : '';
36
+ const anonymousDevelopment = appId.length === 0 && process.env.NODE_ENV !== 'production';
37
+ if (anonymousDevelopment) {
38
+ emitAgentResponseWarning('The agent-response endpoint is using anonymous authentication outside production. Callback ownership cannot be cryptographically verified; configure a client ID before deployment.');
39
+ }
33
40
  return async (req, res, params) => {
34
- var _a, _b;
41
+ var _a, _b, _c, _d, _e;
42
+ let middlewareError;
43
+ let nextCalled = false;
44
+ await adapter.authorizeRequest(req, res, (err) => {
45
+ nextCalled = true;
46
+ middlewareError = err;
47
+ });
48
+ if (middlewareError) {
49
+ throw middlewareError;
50
+ }
51
+ if (!nextCalled || res.headersSent) {
52
+ return;
53
+ }
35
54
  if (!req.body) {
36
55
  throw agents_activity_1.ExceptionHelper.generateException(TypeError, errorHelper_1.Errors.MissingRequestBody);
37
56
  }
38
57
  const incoming = (0, activityWireCompat_1.normalizeIncomingActivity)(req.body);
39
58
  const activity = agents_activity_1.Activity.fromObject(incoming);
40
- logger.debug('received response: ', activity);
41
- const connection = adapter.connectionManager.getDefaultConnection();
42
- const appId = (_b = (_a = connection === null || connection === void 0 ? void 0 : connection.connectionSettings) === null || _a === void 0 ? void 0 : _a.clientId) !== null && _b !== void 0 ? _b : '';
43
- const myTurnContext = new turnContext_1.TurnContext(adapter, activity, cloudAdapter_1.CloudAdapter.createIdentity(appId));
59
+ logger.debug('received delegated agent response');
60
+ const continuationAudience = (_a = (0, jwt_middleware_1.getAuthorizedAudience)(req)) !== null && _a !== void 0 ? _a : appId;
61
+ const myTurnContext = new turnContext_1.TurnContext(adapter, activity, cloudAdapter_1.CloudAdapter.createIdentity(continuationAudience));
44
62
  const conversationDataAccessor = conversationState.createProperty(params.conversationId);
45
- const conversationRefState = await conversationDataAccessor.get(myTurnContext, undefined, { channelId: activity.channelId, conversationId: params.conversationId });
63
+ const incomingChannelId = activity.channelId;
64
+ const conversationRefState = await conversationDataAccessor.get(myTurnContext, undefined, { channelId: incomingChannelId, conversationId: params.conversationId });
65
+ if (!isDelegatedConversationState(conversationRefState)) {
66
+ res.status(403).send({ 'agent-response-auth-error': 'caller is not authorized for this conversation' });
67
+ return;
68
+ }
69
+ const callerClientId = (_c = (_b = req.user) === null || _b === void 0 ? void 0 : _b.azp) !== null && _c !== void 0 ? _c : (_d = req.user) === null || _d === void 0 ? void 0 : _d.appid;
70
+ const anonymousCaller = anonymousDevelopment && ((_e = req.user) === null || _e === void 0 ? void 0 : _e.name) === 'anonymous';
71
+ const delegatedAgentMatches = anonymousCaller || (typeof callerClientId === 'string' &&
72
+ callerClientId.length > 0 &&
73
+ callerClientId.toLowerCase() === conversationRefState.expectedAgentClientId.toLowerCase());
74
+ if (!delegatedAgentMatches) {
75
+ res.status(403).send({ 'agent-response-auth-error': 'caller is not authorized for this conversation' });
76
+ return;
77
+ }
46
78
  const callback = async (turnContext) => {
47
79
  activity.applyConversationReference(conversationRefState.conversationReference);
48
80
  turnContext.activity.id = params.activityId;
49
81
  let response;
50
82
  let responseContentType;
51
83
  if (activity.type === agents_activity_1.ActivityTypes.EndOfConversation) {
52
- await conversationDataAccessor.delete(turnContext, { channelId: activity.channelId, conversationId: activity.conversation.id });
84
+ await conversationState.delete(myTurnContext, { channelId: incomingChannelId, conversationId: params.conversationId });
53
85
  applyActivityToTurnContext(turnContext, activity);
54
86
  await agent.run(turnContext);
55
87
  response = (0, crypto_1.randomUUID)().replace(/-/g, '');
@@ -70,6 +102,16 @@ const createAgentResponseHandler = (adapter, agent, conversationState) => {
70
102
  };
71
103
  };
72
104
  exports.createAgentResponseHandler = createAgentResponseHandler;
105
+ function isDelegatedConversationState(state) {
106
+ return typeof (state === null || state === void 0 ? void 0 : state.conversationReference) === 'object' &&
107
+ state.conversationReference !== null &&
108
+ typeof state.expectedAgentClientId === 'string' &&
109
+ state.expectedAgentClientId.trim().length > 0;
110
+ }
111
+ function emitAgentResponseWarning(message) {
112
+ console.warn(`[agents:agent-client] ${message}`);
113
+ logger.warn(message);
114
+ }
73
115
  const applyActivityToTurnContext = (turnContext, activity) => {
74
116
  turnContext.activity.channelData = activity.channelData;
75
117
  turnContext.activity.code = activity.code;
@@ -1 +1 @@
1
- {"version":3,"file":"createAgentResponseHandler.js","sourceRoot":"","sources":["../../../src/agent-client/createAgentResponseHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createAgentResponseHandler.js","sourceRoot":"","sources":["../../../src/agent-client/createAgentResponseHandler.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,12 @@ import { AuthConfiguration } from './authConfiguration';
6
6
  import { Request } from './request';
7
7
  import { WebResponse, NextFunction } from '../interfaces/webResponse';
8
8
  import { JwksClient } from 'jwks-rsa';
9
+ /**
10
+ * Gets the configured audience selected while authorizing a request.
11
+ * @param req The authorized request.
12
+ * @returns The matched configured client ID, or `undefined` for anonymous requests.
13
+ */
14
+ export declare function getAuthorizedAudience(req: Request): string | undefined;
9
15
  /**
10
16
  * Clears process-wide JWKS clients.
11
17
  */
@@ -8,6 +8,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
8
8
  };
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.authorizeJWT = void 0;
11
+ exports.getAuthorizedAudience = getAuthorizedAudience;
11
12
  exports.clearJwksClients = clearJwksClients;
12
13
  exports.buildJwksUri = buildJwksUri;
13
14
  exports.getJwksClient = getJwksClient;
@@ -20,6 +21,15 @@ const agents_telemetry_1 = require("@microsoft/agents-telemetry");
20
21
  const logger = (0, agents_telemetry_1.debug)('agents:jwt-middleware');
21
22
  const jwksClients = new Map();
22
23
  const maxJwksClients = 100;
24
+ const authorizedAudience = Symbol('authorizedAudience');
25
+ /**
26
+ * Gets the configured audience selected while authorizing a request.
27
+ * @param req The authorized request.
28
+ * @returns The matched configured client ID, or `undefined` for anonymous requests.
29
+ */
30
+ function getAuthorizedAudience(req) {
31
+ return req[authorizedAudience];
32
+ }
23
33
  /**
24
34
  * Clears process-wide JWKS clients.
25
35
  */
@@ -62,7 +72,7 @@ function getJwksClient(jwksUri) {
62
72
  * Verifies the JWT token.
63
73
  * @param raw The raw JWT token.
64
74
  * @param config The authentication configuration.
65
- * @returns A promise that resolves to the JWT payload.
75
+ * @returns A promise that resolves to the verified payload and matched configured audience.
66
76
  */
67
77
  const verifyToken = async (raw, config) => {
68
78
  const payload = jsonwebtoken_1.default.decode(raw);
@@ -70,13 +80,17 @@ const verifyToken = async (raw, config) => {
70
80
  if (!payload) {
71
81
  throw agents_activity_1.ExceptionHelper.generateException(Error, errorHelper_1.Errors.InvalidJwtToken);
72
82
  }
73
- const audience = payload.aud;
83
+ const audiences = Array.isArray(payload.aud)
84
+ ? payload.aud
85
+ : typeof payload.aud === 'string'
86
+ ? [payload.aud]
87
+ : [];
74
88
  const matchingEntry = config.connections && config.connections.size > 0
75
- ? [...config.connections.entries()].find(([_, configuration]) => configuration.clientId === audience)
89
+ ? [...config.connections.entries()].find(([_, configuration]) => typeof configuration.clientId === 'string' && audiences.includes(configuration.clientId))
76
90
  : undefined;
77
91
  if (!matchingEntry) {
78
92
  const err = agents_activity_1.ExceptionHelper.generateException(Error, errorHelper_1.Errors.JwtAudienceMismatch);
79
- logger.error(err.message, audience);
93
+ logger.error(err.message, audiences);
80
94
  throw err;
81
95
  }
82
96
  const [key, authConfig] = matchingEntry;
@@ -103,7 +117,7 @@ const verifyToken = async (raw, config) => {
103
117
  algorithms: ['RS256'],
104
118
  clockTolerance: 300
105
119
  };
106
- return await new Promise((resolve, reject) => {
120
+ const verifiedPayload = await new Promise((resolve, reject) => {
107
121
  jsonwebtoken_1.default.verify(raw, getKey, verifyOptions, (err, user) => {
108
122
  if (err) {
109
123
  logger.error('jwt.verify ', JSON.stringify(err));
@@ -113,6 +127,10 @@ const verifyToken = async (raw, config) => {
113
127
  resolve(user);
114
128
  });
115
129
  });
130
+ return {
131
+ payload: verifiedPayload,
132
+ audience: authConfig.clientId
133
+ };
116
134
  };
117
135
  /**
118
136
  * Determines whether an `Authorization` header value is present (non-empty).
@@ -195,9 +213,11 @@ const authorizeJWT = (authConfig) => {
195
213
  const token = extractBearerToken(req.headers.authorization);
196
214
  if (token) {
197
215
  try {
198
- const user = await verifyToken(token, authConfig);
199
- logger.debug('token verified for ', user);
200
- req.user = user;
216
+ const verifiedToken = await verifyToken(token, authConfig);
217
+ logger.debug('token verified for ', verifiedToken.payload);
218
+ req.user = verifiedToken.payload;
219
+ const authorizedRequest = req;
220
+ authorizedRequest[authorizedAudience] = verifiedToken.audience;
201
221
  }
202
222
  catch (err) {
203
223
  failed = true;
@@ -1 +1 @@
1
- {"version":3,"file":"jwt-middleware.js","sourceRoot":"","sources":["../../../src/auth/jwt-middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jwt-middleware.js","sourceRoot":"","sources":["../../../src/auth/jwt-middleware.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { AgentHandler } from './activityHandler';
6
6
  import { BaseAdapter } from './baseAdapter';
7
7
  import { TurnContext } from './turnContext';
8
8
  import { Request } from './auth/request';
9
- import { WebResponse } from './interfaces/webResponse';
9
+ import { NextFunction, WebResponse } from './interfaces/webResponse';
10
10
  import { ConnectorClient } from './connector-client/connectorClient';
11
11
  import { AuthConfiguration } from './auth/authConfiguration';
12
12
  import { AuthProvider } from './auth/authProvider';
@@ -68,6 +68,7 @@ export interface CloudAdapterOptions {
68
68
  }
69
69
  export declare class CloudAdapter extends BaseAdapter {
70
70
  protected readonly authConfig: AuthConfiguration;
71
+ private readonly jwtMiddleware;
71
72
  protected _agentName?: string;
72
73
  /**
73
74
  * Client for connecting to the Azure Bot Service
@@ -119,6 +120,18 @@ export declare class CloudAdapter extends BaseAdapter {
119
120
  * @returns The JwtPayload object containing the appId as aud.
120
121
  */
121
122
  static createIdentity(appId: string): JwtPayload;
123
+ /**
124
+ * Authorizes an incoming web request using this adapter's resolved authentication configuration.
125
+ * @param req The incoming request.
126
+ * @param res The outgoing response.
127
+ * @param next Callback invoked after successful authorization.
128
+ */
129
+ authorizeRequest(req: Request, res: WebResponse, next: NextFunction): Promise<void>;
130
+ /**
131
+ * Gets the client ID used by this adapter's default authentication connection.
132
+ * @returns The configured client ID, or `undefined` for anonymous development configuration.
133
+ */
134
+ getClientId(): string | undefined;
122
135
  /**
123
136
  * Sets the agent name for M365 agent header propagation.
124
137
  * @param agentName The human-friendly agent name to set for header propagation.
@@ -25,6 +25,7 @@ const env_1 = require("./utils/env");
25
25
  const agents_telemetry_2 = require("@microsoft/agents-telemetry");
26
26
  const observability_1 = require("./observability");
27
27
  const getProductInfo_1 = require("./getProductInfo");
28
+ const jwt_middleware_1 = require("./auth/jwt-middleware");
28
29
  const logger = (0, agents_telemetry_1.debug)('agents:cloud-adapter');
29
30
  const DEFAULT_CLOUD_ADAPTER_OPTIONS = {
30
31
  emitStackTrace: false,
@@ -181,6 +182,7 @@ class CloudAdapter extends baseAdapter_1.BaseAdapter {
181
182
  constructor(authConfig, authProvider, userTokenClient, options) {
182
183
  super();
183
184
  this.authConfig = authConfig = (0, authConfiguration_1.getAuthConfigWithDefaults)(authConfig);
185
+ this.jwtMiddleware = (0, jwt_middleware_1.authorizeJWT)(authConfig);
184
186
  this.connectionManager = new msalConnectionManager_1.MsalConnectionManager(undefined, undefined, authConfig);
185
187
  this._options = resolveCloudAdapterOptions(options);
186
188
  // Install a CloudAdapter-aware default `onTurnError` that honors
@@ -309,6 +311,22 @@ class CloudAdapter extends baseAdapter_1.BaseAdapter {
309
311
  aud: appId
310
312
  };
311
313
  }
314
+ /**
315
+ * Authorizes an incoming web request using this adapter's resolved authentication configuration.
316
+ * @param req The incoming request.
317
+ * @param res The outgoing response.
318
+ * @param next Callback invoked after successful authorization.
319
+ */
320
+ async authorizeRequest(req, res, next) {
321
+ await this.jwtMiddleware(req, res, next);
322
+ }
323
+ /**
324
+ * Gets the client ID used by this adapter's default authentication connection.
325
+ * @returns The configured client ID, or `undefined` for anonymous development configuration.
326
+ */
327
+ getClientId() {
328
+ return this.authConfig.clientId;
329
+ }
312
330
  /**
313
331
  * Sets the agent name for M365 agent header propagation.
314
332
  * @param agentName The human-friendly agent name to set for header propagation.
@@ -1 +1 @@
1
- {"version":3,"file":"cloudAdapter.js","sourceRoot":"","sources":["../../src/cloudAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloudAdapter.js","sourceRoot":"","sources":["../../src/cloudAdapter.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.7.0-beta.10.g0c6864b626",
4
+ "version": "1.7.0-beta.11.gb5d3e8c751",
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.1.5",
24
- "@microsoft/agents-activity": "1.7.0-beta.10.g0c6864b626",
25
- "@microsoft/agents-telemetry": "1.7.0-beta.10.g0c6864b626",
24
+ "@microsoft/agents-activity": "1.7.0-beta.11.gb5d3e8c751",
25
+ "@microsoft/agents-telemetry": "1.7.0-beta.11.gb5d3e8c751",
26
26
  "jsonwebtoken": "9.0.3",
27
27
  "jwks-rsa": "4.0.1",
28
28
  "zod": "3.25.75"
@@ -40,6 +40,10 @@ export interface ConversationData {
40
40
  * Reference to the conversation for maintaining context across interactions
41
41
  */
42
42
  conversationReference: ConversationReference;
43
+ /**
44
+ * Client ID of the delegated agent allowed to send responses for this conversation.
45
+ */
46
+ expectedAgentClientId?: string;
43
47
  }
44
48
 
45
49
  /**
@@ -91,19 +95,24 @@ export class AgentClient {
91
95
  }
92
96
  activityCopy.conversation!.id = randomUUID()
93
97
 
98
+ const delegatedContext = new TurnContext(context.adapter, activityCopy, context.identity)
99
+ const delegatedStateKey = { channelId: activityCopy.channelId!, conversationId: activityCopy.conversation!.id }
94
100
  const conversationDataAccessor = conversationState.createProperty<ConversationData>(activityCopy.conversation!.id)
95
- const convRef = await conversationDataAccessor.set(context,
96
- { conversationReference: activity.getConversationReference(), nameRequested: false },
97
- { channelId: activityCopy.channelId!, conversationId: activityCopy.conversation!.id }
101
+ await conversationDataAccessor.set(delegatedContext,
102
+ {
103
+ conversationReference: activity.getConversationReference(),
104
+ nameRequested: false,
105
+ expectedAgentClientId: this.agentClientConfig.clientId
106
+ },
107
+ delegatedStateKey
98
108
  )
99
109
 
100
- const stateChanges = JSON.stringify(convRef)
101
- logger.debug('stateChanges: ', stateChanges)
110
+ logger.debug('stored delegated conversation state')
102
111
 
103
112
  const authProvider = new MsalTokenProvider(authConfig)
104
113
  const token = await authProvider.getAccessToken(this.agentClientConfig.clientId)
105
114
 
106
- logger.debug('agent request: ', activityCopy)
115
+ logger.debug('sending activity to delegated agent')
107
116
 
108
117
  let authHeader = '' // Allow anonymous auth.
109
118
 
@@ -111,21 +120,27 @@ export class AgentClient {
111
120
  authHeader = `Bearer ${token}`
112
121
  }
113
122
 
114
- await conversationState.saveChanges(context, false, { channelId: activityCopy.channelId!, conversationId: activityCopy.conversation!.id })
115
- const response = await fetch(this.agentClientConfig.endPoint, {
116
- method: 'POST',
117
- headers: {
118
- 'Content-Type': 'application/json',
119
- Authorization: authHeader,
120
- 'x-ms-conversation-id': activityCopy.conversation!.id
121
- },
122
- body: JSON.stringify(activityCopy)
123
- })
123
+ await conversationState.saveChanges(delegatedContext, false, delegatedStateKey)
124
+ let response: Response
125
+ try {
126
+ response = await fetch(this.agentClientConfig.endPoint, {
127
+ method: 'POST',
128
+ headers: {
129
+ 'Content-Type': 'application/json',
130
+ Authorization: authHeader,
131
+ 'x-ms-conversation-id': activityCopy.conversation!.id
132
+ },
133
+ body: JSON.stringify(activityCopy)
134
+ })
135
+ } catch (error) {
136
+ await conversationState.delete(delegatedContext, delegatedStateKey)
137
+ throw error
138
+ }
124
139
 
125
140
  record({ httpStatusCode: response.status.toString() })
126
141
 
127
142
  if (!response.ok) {
128
- await conversationDataAccessor.delete(context, { channelId: activityCopy.channelId!, conversationId: activityCopy.conversation!.id })
143
+ await conversationState.delete(delegatedContext, delegatedStateKey)
129
144
  throw ExceptionHelper.generateException(Error, Errors.FailedToPostActivityToAgent, undefined, { statusText: response.statusText })
130
145
  }
131
146
  return response.statusText
@@ -43,6 +43,8 @@ export interface WebApp {
43
43
  * `POST /api/agentresponse/v3/conversations/{conversationId}/activities/{activityId}`
44
44
  *
45
45
  * The function handles:
46
+ * - Authenticating callers with JWT validation
47
+ * - Verifying that the authenticated caller owns the delegated conversation
46
48
  * - Normalizing incoming activity data from the request body
47
49
  * - Retrieving conversation references from conversation state
48
50
  * - Continuing conversations using the stored conversation reference
@@ -14,11 +14,18 @@ import { normalizeIncomingActivity } from '../activityWireCompat'
14
14
  import { Errors } from '../errorHelper'
15
15
  import { debug } from '@microsoft/agents-telemetry'
16
16
  import { ConversationState } from '../state'
17
+ import { getAuthorizedAudience } from '../auth/jwt-middleware'
17
18
 
18
19
  const logger = debug('agents:agent-client')
19
20
 
20
21
  interface ConversationReferenceState {
21
22
  conversationReference: ConversationReference
23
+ expectedAgentClientId?: string
24
+ }
25
+
26
+ interface DelegatedConversationState {
27
+ conversationReference: ConversationReference
28
+ expectedAgentClientId: string
22
29
  }
23
30
 
24
31
  /**
@@ -65,21 +72,57 @@ export const createAgentResponseHandler = (
65
72
  agent: ActivityHandler,
66
73
  conversationState: ConversationState
67
74
  ): AgentResponseHandler => {
75
+ const appId = adapter.getClientId() ?? ''
76
+ const anonymousDevelopment = appId.length === 0 && process.env.NODE_ENV !== 'production'
77
+ if (anonymousDevelopment) {
78
+ emitAgentResponseWarning(
79
+ 'The agent-response endpoint is using anonymous authentication outside production. Callback ownership cannot be cryptographically verified; configure a client ID before deployment.'
80
+ )
81
+ }
82
+
68
83
  return async (req: Request, res: WebResponse, params: AgentResponseHandlerParams) => {
84
+ let middlewareError: any
85
+ let nextCalled = false
86
+ await adapter.authorizeRequest(req, res, (err?: any) => {
87
+ nextCalled = true
88
+ middlewareError = err
89
+ })
90
+ if (middlewareError) {
91
+ throw middlewareError
92
+ }
93
+ if (!nextCalled || res.headersSent) {
94
+ return
95
+ }
96
+
69
97
  if (!req.body) {
70
98
  throw ExceptionHelper.generateException(TypeError, Errors.MissingRequestBody)
71
99
  }
72
100
  const incoming = normalizeIncomingActivity(req.body)
73
101
  const activity = Activity.fromObject(incoming)
74
102
 
75
- logger.debug('received response: ', activity)
76
-
77
- const connection = adapter.connectionManager.getDefaultConnection()
78
- const appId = connection?.connectionSettings?.clientId ?? ''
103
+ logger.debug('received delegated agent response')
79
104
 
80
- const myTurnContext = new TurnContext(adapter, activity, CloudAdapter.createIdentity(appId))
105
+ const continuationAudience = getAuthorizedAudience(req) ?? appId
106
+ const myTurnContext = new TurnContext(adapter, activity, CloudAdapter.createIdentity(continuationAudience))
81
107
  const conversationDataAccessor = conversationState.createProperty<ConversationReferenceState>(params.conversationId)
82
- const conversationRefState = await conversationDataAccessor.get(myTurnContext, undefined, { channelId: activity.channelId!, conversationId: params.conversationId })
108
+ const incomingChannelId = activity.channelId!
109
+ const conversationRefState = await conversationDataAccessor.get(myTurnContext, undefined, { channelId: incomingChannelId, conversationId: params.conversationId })
110
+ if (!isDelegatedConversationState(conversationRefState)) {
111
+ res.status(403).send({ 'agent-response-auth-error': 'caller is not authorized for this conversation' })
112
+ return
113
+ }
114
+
115
+ const callerClientId = req.user?.azp ?? req.user?.appid
116
+ const anonymousCaller = anonymousDevelopment && req.user?.name === 'anonymous'
117
+ const delegatedAgentMatches = anonymousCaller || (
118
+ typeof callerClientId === 'string' &&
119
+ callerClientId.length > 0 &&
120
+ callerClientId.toLowerCase() === conversationRefState.expectedAgentClientId.toLowerCase()
121
+ )
122
+ if (!delegatedAgentMatches) {
123
+ res.status(403).send({ 'agent-response-auth-error': 'caller is not authorized for this conversation' })
124
+ return
125
+ }
83
126
 
84
127
  const callback = async (turnContext: TurnContext) => {
85
128
  activity.applyConversationReference(conversationRefState.conversationReference)
@@ -88,7 +131,7 @@ export const createAgentResponseHandler = (
88
131
  let response: unknown
89
132
  let responseContentType: string | undefined
90
133
  if (activity.type === ActivityTypes.EndOfConversation) {
91
- await conversationDataAccessor.delete(turnContext, { channelId: activity.channelId!, conversationId: activity.conversation!.id })
134
+ await conversationState.delete(myTurnContext, { channelId: incomingChannelId, conversationId: params.conversationId })
92
135
 
93
136
  applyActivityToTurnContext(turnContext, activity)
94
137
  await agent.run(turnContext)
@@ -101,6 +144,7 @@ export const createAgentResponseHandler = (
101
144
  } else {
102
145
  response = await turnContext.sendActivity(activity)
103
146
  }
147
+
104
148
  if (responseContentType !== undefined) {
105
149
  res.setHeader('content-type', responseContentType)
106
150
  }
@@ -111,6 +155,18 @@ export const createAgentResponseHandler = (
111
155
  }
112
156
  }
113
157
 
158
+ function isDelegatedConversationState (state: ConversationReferenceState | undefined): state is DelegatedConversationState {
159
+ return typeof state?.conversationReference === 'object' &&
160
+ state.conversationReference !== null &&
161
+ typeof state.expectedAgentClientId === 'string' &&
162
+ state.expectedAgentClientId.trim().length > 0
163
+ }
164
+
165
+ function emitAgentResponseWarning (message: string): void {
166
+ console.warn(`[agents:agent-client] ${message}`)
167
+ logger.warn(message)
168
+ }
169
+
114
170
  const applyActivityToTurnContext = (turnContext: TurnContext, activity: Activity) => {
115
171
  turnContext.activity.channelData = activity.channelData
116
172
  turnContext.activity.code = activity.code
@@ -15,6 +15,25 @@ import { debug } from '@microsoft/agents-telemetry'
15
15
  const logger = debug('agents:jwt-middleware')
16
16
  const jwksClients = new Map<string, JwksClient>()
17
17
  const maxJwksClients = 100
18
+ const authorizedAudience = Symbol('authorizedAudience')
19
+
20
+ interface AuthorizedRequest extends Request {
21
+ [authorizedAudience]?: string
22
+ }
23
+
24
+ interface VerifiedToken {
25
+ payload: JwtPayload
26
+ audience: string
27
+ }
28
+
29
+ /**
30
+ * Gets the configured audience selected while authorizing a request.
31
+ * @param req The authorized request.
32
+ * @returns The matched configured client ID, or `undefined` for anonymous requests.
33
+ */
34
+ export function getAuthorizedAudience (req: Request): string | undefined {
35
+ return (req as AuthorizedRequest)[authorizedAudience]
36
+ }
18
37
 
19
38
  /**
20
39
  * Clears process-wide JWKS clients.
@@ -59,24 +78,30 @@ export function getJwksClient (jwksUri: string): JwksClient {
59
78
  * Verifies the JWT token.
60
79
  * @param raw The raw JWT token.
61
80
  * @param config The authentication configuration.
62
- * @returns A promise that resolves to the JWT payload.
81
+ * @returns A promise that resolves to the verified payload and matched configured audience.
63
82
  */
64
- const verifyToken = async (raw: string, config: AuthConfiguration): Promise<JwtPayload> => {
83
+ const verifyToken = async (raw: string, config: AuthConfiguration): Promise<VerifiedToken> => {
65
84
  const payload = jwt.decode(raw) as JwtPayload
66
85
  logger.debug('jwt.decode ', JSON.stringify(payload))
67
86
 
68
87
  if (!payload) {
69
88
  throw ExceptionHelper.generateException(Error, Errors.InvalidJwtToken)
70
89
  }
71
- const audience = payload.aud
90
+ const audiences = Array.isArray(payload.aud)
91
+ ? payload.aud
92
+ : typeof payload.aud === 'string'
93
+ ? [payload.aud]
94
+ : []
72
95
 
73
96
  const matchingEntry = config.connections && config.connections.size > 0
74
- ? [...config.connections.entries()].find(([_, configuration]) => configuration.clientId === audience)
97
+ ? [...config.connections.entries()].find(([_, configuration]) =>
98
+ typeof configuration.clientId === 'string' && audiences.includes(configuration.clientId)
99
+ )
75
100
  : undefined
76
101
 
77
102
  if (!matchingEntry) {
78
103
  const err = ExceptionHelper.generateException(Error, Errors.JwtAudienceMismatch)
79
- logger.error(err.message, audience)
104
+ logger.error(err.message, audiences)
80
105
  throw err
81
106
  }
82
107
 
@@ -109,7 +134,7 @@ const verifyToken = async (raw: string, config: AuthConfiguration): Promise<JwtP
109
134
  clockTolerance: 300
110
135
  }
111
136
 
112
- return await new Promise((resolve, reject) => {
137
+ const verifiedPayload = await new Promise<JwtPayload>((resolve, reject) => {
113
138
  jwt.verify(raw, getKey, verifyOptions, (err, user) => {
114
139
  if (err) {
115
140
  logger.error('jwt.verify ', JSON.stringify(err))
@@ -119,6 +144,10 @@ const verifyToken = async (raw: string, config: AuthConfiguration): Promise<JwtP
119
144
  resolve(user as JwtPayload)
120
145
  })
121
146
  })
147
+ return {
148
+ payload: verifiedPayload,
149
+ audience: authConfig.clientId!
150
+ }
122
151
  }
123
152
 
124
153
  /**
@@ -203,9 +232,11 @@ export const authorizeJWT = (authConfig: AuthConfiguration) => {
203
232
  const token = extractBearerToken(req.headers.authorization)
204
233
  if (token) {
205
234
  try {
206
- const user = await verifyToken(token, authConfig)
207
- logger.debug('token verified for ', user)
208
- req.user = user
235
+ const verifiedToken = await verifyToken(token, authConfig)
236
+ logger.debug('token verified for ', verifiedToken.payload)
237
+ req.user = verifiedToken.payload
238
+ const authorizedRequest = req as AuthorizedRequest
239
+ authorizedRequest[authorizedAudience] = verifiedToken.audience
209
240
  } catch (err: Error | any) {
210
241
  failed = true
211
242
  logger.error(err)
@@ -7,7 +7,7 @@ import { AgentHandler, INVOKE_RESPONSE_KEY } from './activityHandler'
7
7
  import { BaseAdapter } from './baseAdapter'
8
8
  import { TurnContext } from './turnContext'
9
9
  import { Request } from './auth/request'
10
- import { WebResponse } from './interfaces/webResponse'
10
+ import { NextFunction, WebResponse } from './interfaces/webResponse'
11
11
  import { ConnectorClient } from './connector-client/connectorClient'
12
12
  import { AuthConfiguration, getAuthConfigWithDefaults } from './auth/authConfiguration'
13
13
  import { AuthProvider } from './auth/authProvider'
@@ -32,6 +32,7 @@ import { parseBooleanEnv, suggestClosest } from './utils/env'
32
32
  import { trace } from '@microsoft/agents-telemetry'
33
33
  import { AdapterTraceDefinitions } from './observability'
34
34
  import { applyAgenticHeaders } from './getProductInfo'
35
+ import { authorizeJWT } from './auth/jwt-middleware'
35
36
 
36
37
  const logger = debug('agents:cloud-adapter')
37
38
 
@@ -238,6 +239,7 @@ function truncateActivityForLog (activity: unknown, max = 1024): string {
238
239
 
239
240
  export class CloudAdapter extends BaseAdapter {
240
241
  protected readonly authConfig: AuthConfiguration
242
+ private readonly jwtMiddleware: ReturnType<typeof authorizeJWT>
241
243
  protected _agentName?: string
242
244
 
243
245
  /**
@@ -257,6 +259,7 @@ export class CloudAdapter extends BaseAdapter {
257
259
  constructor (authConfig?: AuthConfiguration, authProvider?: AuthProvider, userTokenClient?: UserTokenClient, options?: CloudAdapterOptions) {
258
260
  super()
259
261
  this.authConfig = authConfig = getAuthConfigWithDefaults(authConfig)
262
+ this.jwtMiddleware = authorizeJWT(authConfig)
260
263
  this.connectionManager = new MsalConnectionManager(undefined, undefined, authConfig)
261
264
  this._options = resolveCloudAdapterOptions(options)
262
265
 
@@ -425,6 +428,24 @@ export class CloudAdapter extends BaseAdapter {
425
428
  } as JwtPayload
426
429
  }
427
430
 
431
+ /**
432
+ * Authorizes an incoming web request using this adapter's resolved authentication configuration.
433
+ * @param req The incoming request.
434
+ * @param res The outgoing response.
435
+ * @param next Callback invoked after successful authorization.
436
+ */
437
+ public async authorizeRequest (req: Request, res: WebResponse, next: NextFunction): Promise<void> {
438
+ await this.jwtMiddleware(req, res, next)
439
+ }
440
+
441
+ /**
442
+ * Gets the client ID used by this adapter's default authentication connection.
443
+ * @returns The configured client ID, or `undefined` for anonymous development configuration.
444
+ */
445
+ public getClientId (): string | undefined {
446
+ return this.authConfig.clientId
447
+ }
448
+
428
449
  /**
429
450
  * Sets the agent name for M365 agent header propagation.
430
451
  * @param agentName The human-friendly agent name to set for header propagation.