@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 +9 -0
- package/dist/package.json +3 -3
- package/dist/src/agent-client/agentClient.d.ts +4 -0
- package/dist/src/agent-client/agentClient.js +28 -15
- package/dist/src/agent-client/agentClient.js.map +1 -1
- package/dist/src/agent-client/agentResponseHandler.d.ts +2 -0
- package/dist/src/agent-client/agentResponseHandler.js +2 -0
- package/dist/src/agent-client/agentResponseHandler.js.map +1 -1
- package/dist/src/agent-client/createAgentResponseHandler.js +49 -7
- package/dist/src/agent-client/createAgentResponseHandler.js.map +1 -1
- package/dist/src/auth/jwt-middleware.d.ts +6 -0
- package/dist/src/auth/jwt-middleware.js +28 -8
- package/dist/src/auth/jwt-middleware.js.map +1 -1
- package/dist/src/cloudAdapter.d.ts +14 -1
- package/dist/src/cloudAdapter.js +18 -0
- package/dist/src/cloudAdapter.js.map +1 -1
- package/package.json +3 -3
- package/src/agent-client/agentClient.ts +32 -17
- package/src/agent-client/agentResponseHandler.ts +2 -0
- package/src/agent-client/createAgentResponseHandler.ts +63 -7
- package/src/auth/jwt-middleware.ts +40 -9
- package/src/cloudAdapter.ts +22 -1
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.
|
|
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.
|
|
25
|
-
"@microsoft/agents-telemetry": "1.7.0-beta.
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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('
|
|
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(
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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
|
|
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":";;;AAAA,kCAA8D;AAC9D,gEAAwG;AACxG,mCAAmC;AACnC,kEAAmD;
|
|
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
|
|
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
|
|
41
|
-
const
|
|
42
|
-
const
|
|
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
|
|
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
|
|
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":";AAAA;;;GAGG;;;AAEH,gEAA4G;AAE5G,kDAA8C;AAG9C,gDAA4C;AAC5C,mCAAmC;AACnC,8DAAiE;AACjE,gDAAuC;AACvC,kEAAmD;
|
|
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
|
|
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
|
|
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 ===
|
|
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,
|
|
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
|
-
|
|
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
|
|
199
|
-
logger.debug('token verified for ',
|
|
200
|
-
req.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":";AAAA;;;GAGG;;;;;;
|
|
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.
|
package/dist/src/cloudAdapter.js
CHANGED
|
@@ -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.
|
|
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.
|
|
25
|
-
"@microsoft/agents-telemetry": "1.7.0-beta.
|
|
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
|
-
|
|
96
|
-
{
|
|
97
|
-
|
|
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
|
-
|
|
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('
|
|
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(
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
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
|
|
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
|
|
76
|
-
|
|
77
|
-
const connection = adapter.connectionManager.getDefaultConnection()
|
|
78
|
-
const appId = connection?.connectionSettings?.clientId ?? ''
|
|
103
|
+
logger.debug('received delegated agent response')
|
|
79
104
|
|
|
80
|
-
const
|
|
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
|
|
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
|
|
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
|
|
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<
|
|
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
|
|
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]) =>
|
|
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,
|
|
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
|
-
|
|
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
|
|
207
|
-
logger.debug('token verified for ',
|
|
208
|
-
req.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)
|
package/src/cloudAdapter.ts
CHANGED
|
@@ -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.
|