@microsoft/agents-hosting 1.1.0-alpha.9.g154c2c8a32 → 1.1.1

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.
Files changed (152) hide show
  1. package/dist/package.json +10 -6
  2. package/dist/src/activityWireCompat.d.ts +1 -1
  3. package/dist/src/activityWireCompat.js +11 -3
  4. package/dist/src/activityWireCompat.js.map +1 -1
  5. package/dist/src/agent-client/agentClient.js +7 -3
  6. package/dist/src/agent-client/agentClient.js.map +1 -1
  7. package/dist/src/agent-client/agentResponseHandler.js +6 -2
  8. package/dist/src/agent-client/agentResponseHandler.js.map +1 -1
  9. package/dist/src/app/agentApplication.d.ts +26 -11
  10. package/dist/src/app/agentApplication.js +90 -79
  11. package/dist/src/app/agentApplication.js.map +1 -1
  12. package/dist/src/app/agentApplicationBuilder.d.ts +2 -2
  13. package/dist/src/app/agentApplicationBuilder.js.map +1 -1
  14. package/dist/src/app/agentApplicationOptions.d.ts +9 -2
  15. package/dist/src/app/appRoute.d.ts +7 -0
  16. package/dist/src/app/{authorization.d.ts → auth/authorization.d.ts} +41 -139
  17. package/dist/src/app/auth/authorization.js +188 -0
  18. package/dist/src/app/auth/authorization.js.map +1 -0
  19. package/dist/src/app/auth/authorizationManager.d.ts +71 -0
  20. package/dist/src/app/auth/authorizationManager.js +170 -0
  21. package/dist/src/app/auth/authorizationManager.js.map +1 -0
  22. package/dist/src/app/auth/handlerStorage.d.ts +36 -0
  23. package/dist/src/app/auth/handlerStorage.js +62 -0
  24. package/dist/src/app/auth/handlerStorage.js.map +1 -0
  25. package/dist/src/app/auth/handlers/agenticAuthorization.d.ts +93 -0
  26. package/dist/src/app/auth/handlers/agenticAuthorization.js +134 -0
  27. package/dist/src/app/auth/handlers/agenticAuthorization.js.map +1 -0
  28. package/dist/src/app/auth/handlers/azureBotAuthorization.d.ts +226 -0
  29. package/dist/src/app/auth/handlers/azureBotAuthorization.js +429 -0
  30. package/dist/src/app/auth/handlers/azureBotAuthorization.js.map +1 -0
  31. package/dist/src/app/auth/handlers/index.d.ts +2 -0
  32. package/dist/src/app/auth/handlers/index.js +19 -0
  33. package/dist/src/app/auth/handlers/index.js.map +1 -0
  34. package/dist/src/app/auth/index.d.ts +2 -0
  35. package/dist/src/app/auth/index.js +19 -0
  36. package/dist/src/app/auth/index.js.map +1 -0
  37. package/dist/src/app/auth/types.d.ts +104 -0
  38. package/dist/src/app/auth/types.js +24 -0
  39. package/dist/src/app/auth/types.js.map +1 -0
  40. package/dist/src/app/index.d.ts +3 -3
  41. package/dist/src/app/index.js +2 -3
  42. package/dist/src/app/index.js.map +1 -1
  43. package/dist/src/app/routeList.d.ts +1 -1
  44. package/dist/src/app/routeList.js +22 -5
  45. package/dist/src/app/routeList.js.map +1 -1
  46. package/dist/src/app/streaming/streamingResponse.js +2 -1
  47. package/dist/src/app/streaming/streamingResponse.js.map +1 -1
  48. package/dist/src/auth/MemoryCache.d.ts +16 -0
  49. package/dist/src/auth/MemoryCache.js +58 -0
  50. package/dist/src/auth/MemoryCache.js.map +1 -0
  51. package/dist/src/auth/authConfiguration.d.ts +44 -2
  52. package/dist/src/auth/authConfiguration.js +209 -53
  53. package/dist/src/auth/authConfiguration.js.map +1 -1
  54. package/dist/src/auth/authConstants.d.ts +11 -0
  55. package/dist/src/auth/authConstants.js +15 -0
  56. package/dist/src/auth/authConstants.js.map +1 -0
  57. package/dist/src/auth/authProvider.d.ts +26 -0
  58. package/dist/src/auth/connections.d.ts +41 -0
  59. package/dist/src/auth/connections.js +7 -0
  60. package/dist/src/auth/connections.js.map +1 -0
  61. package/dist/src/auth/index.d.ts +2 -0
  62. package/dist/src/auth/index.js +2 -0
  63. package/dist/src/auth/index.js.map +1 -1
  64. package/dist/src/auth/jwt-middleware.js +31 -18
  65. package/dist/src/auth/jwt-middleware.js.map +1 -1
  66. package/dist/src/auth/msalConnectionManager.d.ts +64 -0
  67. package/dist/src/auth/msalConnectionManager.js +148 -0
  68. package/dist/src/auth/msalConnectionManager.js.map +1 -0
  69. package/dist/src/auth/msalTokenProvider.d.ts +38 -0
  70. package/dist/src/auth/msalTokenProvider.js +186 -16
  71. package/dist/src/auth/msalTokenProvider.js.map +1 -1
  72. package/dist/src/baseAdapter.d.ts +10 -25
  73. package/dist/src/baseAdapter.js +2 -15
  74. package/dist/src/baseAdapter.js.map +1 -1
  75. package/dist/src/cards/cardFactory.d.ts +2 -1
  76. package/dist/src/cards/cardFactory.js +3 -2
  77. package/dist/src/cards/cardFactory.js.map +1 -1
  78. package/dist/src/cloudAdapter.d.ts +40 -23
  79. package/dist/src/cloudAdapter.js +143 -63
  80. package/dist/src/cloudAdapter.js.map +1 -1
  81. package/dist/src/connector-client/connectorClient.d.ts +15 -0
  82. package/dist/src/connector-client/connectorClient.js +49 -15
  83. package/dist/src/connector-client/connectorClient.js.map +1 -1
  84. package/dist/src/index.d.ts +0 -1
  85. package/dist/src/index.js +0 -1
  86. package/dist/src/index.js.map +1 -1
  87. package/dist/src/oauth/customUserTokenAPI.d.ts +1 -0
  88. package/dist/src/oauth/customUserTokenAPI.js +11 -0
  89. package/dist/src/oauth/customUserTokenAPI.js.map +1 -0
  90. package/dist/src/oauth/index.d.ts +0 -1
  91. package/dist/src/oauth/index.js +0 -1
  92. package/dist/src/oauth/index.js.map +1 -1
  93. package/dist/src/oauth/userTokenClient.d.ts +30 -13
  94. package/dist/src/oauth/userTokenClient.js +62 -26
  95. package/dist/src/oauth/userTokenClient.js.map +1 -1
  96. package/dist/src/oauth/userTokenClient.types.d.ts +19 -6
  97. package/dist/src/transcript/fileTranscriptLogger.d.ts +109 -0
  98. package/dist/src/transcript/fileTranscriptLogger.js +398 -0
  99. package/dist/src/transcript/fileTranscriptLogger.js.map +1 -0
  100. package/dist/src/turnContext.d.ts +7 -1
  101. package/dist/src/turnContext.js +11 -4
  102. package/dist/src/turnContext.js.map +1 -1
  103. package/package.json +10 -6
  104. package/src/activityWireCompat.ts +12 -4
  105. package/src/agent-client/agentClient.ts +9 -3
  106. package/src/agent-client/agentResponseHandler.ts +5 -2
  107. package/src/app/agentApplication.ts +95 -74
  108. package/src/app/agentApplicationBuilder.ts +2 -2
  109. package/src/app/agentApplicationOptions.ts +10 -2
  110. package/src/app/appRoute.ts +8 -0
  111. package/src/app/auth/authorization.ts +261 -0
  112. package/src/app/auth/authorizationManager.ts +213 -0
  113. package/src/app/auth/handlerStorage.ts +61 -0
  114. package/src/app/auth/handlers/agenticAuthorization.ts +183 -0
  115. package/src/app/auth/handlers/azureBotAuthorization.ts +606 -0
  116. package/src/app/auth/handlers/index.ts +2 -0
  117. package/src/app/auth/index.ts +2 -0
  118. package/src/app/auth/types.ts +111 -0
  119. package/src/app/index.ts +3 -3
  120. package/src/app/routeList.ts +24 -5
  121. package/src/app/streaming/streamingResponse.ts +2 -1
  122. package/src/auth/MemoryCache.ts +59 -0
  123. package/src/auth/authConfiguration.ts +245 -52
  124. package/src/auth/authConstants.ts +11 -0
  125. package/src/auth/authProvider.ts +34 -0
  126. package/src/auth/connections.ts +47 -0
  127. package/src/auth/index.ts +2 -0
  128. package/src/auth/jwt-middleware.ts +38 -21
  129. package/src/auth/msalConnectionManager.ts +175 -0
  130. package/src/auth/msalTokenProvider.ts +228 -9
  131. package/src/baseAdapter.ts +10 -29
  132. package/src/cards/cardFactory.ts +3 -2
  133. package/src/cloudAdapter.ts +207 -72
  134. package/src/connector-client/connectorClient.ts +59 -15
  135. package/src/index.ts +0 -1
  136. package/src/oauth/customUserTokenAPI.ts +5 -0
  137. package/src/oauth/index.ts +0 -1
  138. package/src/oauth/userTokenClient.ts +76 -22
  139. package/src/oauth/userTokenClient.types.ts +20 -8
  140. package/src/transcript/fileTranscriptLogger.ts +409 -0
  141. package/src/turnContext.ts +16 -5
  142. package/dist/src/app/authorization.js +0 -387
  143. package/dist/src/app/authorization.js.map +0 -1
  144. package/dist/src/claimsIdentity.d.ts +0 -35
  145. package/dist/src/claimsIdentity.js +0 -43
  146. package/dist/src/claimsIdentity.js.map +0 -1
  147. package/dist/src/oauth/oAuthFlow.d.ts +0 -119
  148. package/dist/src/oauth/oAuthFlow.js +0 -316
  149. package/dist/src/oauth/oAuthFlow.js.map +0 -1
  150. package/src/app/authorization.ts +0 -432
  151. package/src/claimsIdentity.ts +0 -47
  152. package/src/oauth/oAuthFlow.ts +0 -378
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApxGallatinScope = exports.ApxDoDScope = exports.ApxGCCHScope = exports.ApxGCCScope = exports.ApxProductionScope = exports.ApxDevScope = exports.ApxLocalScope = void 0;
4
+ /**
5
+ * Copyright (c) Microsoft Corporation. All rights reserved.
6
+ * Licensed under the MIT License.
7
+ */
8
+ exports.ApxLocalScope = 'c16e153d-5d2b-4c21-b7f4-b05ee5d516f1/.default';
9
+ exports.ApxDevScope = '0d94caae-b412-4943-8a68-83135ad6d35f/.default';
10
+ exports.ApxProductionScope = '5a807f24-c9de-44ee-a3a7-329e88a00ffc/.default';
11
+ exports.ApxGCCScope = 'c9475445-9789-4fef-9ec5-cde4a9bcd446/.default';
12
+ exports.ApxGCCHScope = '6f669b9e-7701-4e2b-b624-82c9207fde26/.default';
13
+ exports.ApxDoDScope = '0a069c81-8c7c-4712-886b-9c542d673ffb/.default';
14
+ exports.ApxGallatinScope = 'bd004c8e-5acf-4c48-8570-4e7d46b2f63b/.default';
15
+ //# sourceMappingURL=authConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authConstants.js","sourceRoot":"","sources":["../../../src/auth/authConstants.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,aAAa,GAAG,+CAA+C,CAAA;AAC/D,QAAA,WAAW,GAAG,+CAA+C,CAAA;AAC7D,QAAA,kBAAkB,GAAG,+CAA+C,CAAA;AACpE,QAAA,WAAW,GAAG,+CAA+C,CAAA;AAC7D,QAAA,YAAY,GAAG,+CAA+C,CAAA;AAC9D,QAAA,WAAW,GAAG,+CAA+C,CAAA;AAC7D,QAAA,gBAAgB,GAAG,+CAA+C,CAAA"}
@@ -14,4 +14,30 @@ export interface AuthProvider {
14
14
  * @returns A promise that resolves to the access token.
15
15
  */
16
16
  getAccessToken: (authConfig: AuthConfiguration, scope: string) => Promise<string>;
17
+ /**
18
+ * Get an access token for the agentic application
19
+ * @param tenantId
20
+ * @param agentAppInstanceId
21
+ * @returns a promise that resolves to the access token.
22
+ */
23
+ getAgenticApplicationToken: (tenantId: string, agentAppInstanceId: string) => Promise<string>;
24
+ /**
25
+ * Get an access token for the agentic instance
26
+ * @param tenantId
27
+ * @param agentAppInstanceId
28
+ * @returns a promise that resolves to the access token.
29
+ */
30
+ getAgenticInstanceToken: (tenantId: string, agentAppInstanceId: string) => Promise<string>;
31
+ /**
32
+ * Get an access token for the agentic user
33
+ * @param tenantId
34
+ * @param agentAppInstanceId
35
+ * @param upn
36
+ * @param scopes
37
+ * @returns a promise that resolves to the access token.
38
+ */
39
+ getAgenticUserToken: (tenantId: string, agentAppInstanceId: string, upn: string, scopes: string[]) => Promise<string>;
40
+ acquireTokenOnBehalfOf(scopes: string[], oboAssertion: string): Promise<string>;
41
+ acquireTokenOnBehalfOf(authConfig: AuthConfiguration, scopes: string[], oboAssertion: string): Promise<string>;
42
+ acquireTokenOnBehalfOf(authConfigOrScopes: AuthConfiguration | string[], scopesOrOboAssertion?: string[] | string, oboAssertion?: string): Promise<string>;
17
43
  }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import { Activity } from '@microsoft/agents-activity';
6
+ import { AuthConfiguration } from './authConfiguration';
7
+ import { AuthProvider } from './authProvider';
8
+ import { JwtPayload } from 'jsonwebtoken';
9
+ export interface Connections {
10
+ /**
11
+ * Get the OAuth connection for the agent.
12
+ * @param name - The connection name. Must match a configured OAuth connection.
13
+ * @returns An AuthProvider instance.
14
+ * @throws {Error} If the connection name is not found.
15
+ */
16
+ getConnection: (name: string) => AuthProvider;
17
+ /**
18
+ * Get the default OAuth connection for the agent.
19
+ * @returns An AuthProvider instance.
20
+ */
21
+ getDefaultConnection: () => AuthProvider;
22
+ /**
23
+ * Get the OAuth token provider for the agent.
24
+ * @param identity - The identity. Usually TurnContext.identity.
25
+ * @param serviceUrl - The service url.
26
+ * @returns An AuthProvider instance.
27
+ */
28
+ getTokenProvider: (identity: JwtPayload, serviceUrl: string) => AuthProvider;
29
+ /**
30
+ * Get the OAuth token provider for the agent.
31
+ * @param identity - The identity. Usually TurnContext.identity.
32
+ * @param activity - The activity.
33
+ * @returns An AuthProvider instance.
34
+ */
35
+ getTokenProviderFromActivity: (identity: JwtPayload, activity: Activity) => AuthProvider;
36
+ /**
37
+ * Get the default connection configuration for the agent.
38
+ * @returns An Auth Configuration.
39
+ */
40
+ getDefaultConnectionConfiguration: () => AuthConfiguration;
41
+ }
@@ -0,0 +1,7 @@
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
+ //# sourceMappingURL=connections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connections.js","sourceRoot":"","sources":["../../../src/auth/connections.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -1,5 +1,7 @@
1
1
  export * from './authConfiguration';
2
+ export * from './authConstants';
2
3
  export * from './authProvider';
3
4
  export * from './msalTokenProvider';
4
5
  export * from './request';
5
6
  export * from './msalTokenCredential';
7
+ export * from './msalConnectionManager';
@@ -15,8 +15,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./authConfiguration"), exports);
18
+ __exportStar(require("./authConstants"), exports);
18
19
  __exportStar(require("./authProvider"), exports);
19
20
  __exportStar(require("./msalTokenProvider"), exports);
20
21
  __exportStar(require("./request"), exports);
21
22
  __exportStar(require("./msalTokenCredential"), exports);
23
+ __exportStar(require("./msalConnectionManager"), exports);
22
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,iDAA8B;AAC9B,sDAAmC;AACnC,4CAAyB;AACzB,wDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,kDAA+B;AAC/B,iDAA8B;AAC9B,sDAAmC;AACnC,4CAAyB;AACzB,wDAAqC;AACrC,0DAAuC"}
@@ -19,16 +19,30 @@ const logger = (0, logger_1.debug)('agents:jwt-middleware');
19
19
  * @returns A promise that resolves to the JWT payload.
20
20
  */
21
21
  const verifyToken = async (raw, config) => {
22
+ const payload = jsonwebtoken_1.default.decode(raw);
23
+ logger.debug('jwt.decode ', JSON.stringify(payload));
24
+ if (!payload) {
25
+ throw new Error('invalid token');
26
+ }
27
+ const audience = payload.aud;
28
+ const matchingEntry = config.connections && config.connections.size > 0
29
+ ? [...config.connections.entries()].find(([_, configuration]) => configuration.clientId === audience)
30
+ : undefined;
31
+ if (!matchingEntry) {
32
+ const err = new Error('Audience mismatch');
33
+ logger.error(err.message, audience);
34
+ throw err;
35
+ }
36
+ const [key, authConfig] = matchingEntry;
37
+ logger.debug(`Audience found at key: ${key}`);
38
+ const jwksUri = payload.iss === 'https://api.botframework.com'
39
+ ? 'https://login.botframework.com/v1/.well-known/keys'
40
+ : `${authConfig.authority}/${authConfig.tenantId}/discovery/v2.0/keys`;
41
+ logger.debug(`fetching keys from ${jwksUri}`);
42
+ const jwksClient = (0, jwks_rsa_1.default)({ jwksUri });
22
43
  const getKey = (header, callback) => {
23
- const payload = jsonwebtoken_1.default.decode(raw);
24
- logger.debug('jwt.decode ', JSON.stringify(payload));
25
- const jwksUri = payload.iss === 'https://api.botframework.com'
26
- ? 'https://login.botframework.com/v1/.well-known/keys'
27
- : `${config.authority}/${config.tenantId}/discovery/v2.0/keys`;
28
- logger.debug(`fetching keys from ${jwksUri}`);
29
- const jwksClient = (0, jwks_rsa_1.default)({ jwksUri });
30
44
  jwksClient.getSigningKey(header.kid, (err, key) => {
31
- if (err != null) {
45
+ if (err) {
32
46
  logger.error('jwksClient.getSigningKey ', JSON.stringify(err));
33
47
  logger.error(JSON.stringify(err));
34
48
  callback(err, undefined);
@@ -38,22 +52,21 @@ const verifyToken = async (raw, config) => {
38
52
  callback(null, signingKey);
39
53
  });
40
54
  };
55
+ const verifyOptions = {
56
+ issuer: authConfig.issuers,
57
+ audience: [authConfig.clientId, 'https://api.botframework.com'],
58
+ ignoreExpiration: false,
59
+ algorithms: ['RS256'],
60
+ clockTolerance: 300
61
+ };
41
62
  return await new Promise((resolve, reject) => {
42
- const verifyOptions = {
43
- issuer: config.issuers,
44
- audience: [config.clientId, 'https://api.botframework.com'],
45
- ignoreExpiration: false,
46
- algorithms: ['RS256'],
47
- clockTolerance: 300
48
- };
49
63
  jsonwebtoken_1.default.verify(raw, getKey, verifyOptions, (err, user) => {
50
- if (err != null) {
64
+ if (err) {
51
65
  logger.error('jwt.verify ', JSON.stringify(err));
52
66
  reject(err);
53
67
  return;
54
68
  }
55
- const tokenClaims = user;
56
- resolve(tokenClaims);
69
+ resolve(user);
57
70
  });
58
71
  });
59
72
  };
@@ -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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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import { Activity } from '@microsoft/agents-activity';
6
+ import { AuthConfiguration } from './authConfiguration';
7
+ import { Connections } from './connections';
8
+ import { MsalTokenProvider } from './msalTokenProvider';
9
+ import { JwtPayload } from 'jsonwebtoken';
10
+ export interface ConnectionMapItem {
11
+ audience?: string;
12
+ serviceUrl: string;
13
+ connection: string;
14
+ }
15
+ export declare class MsalConnectionManager implements Connections {
16
+ private _connections;
17
+ private _connectionsMap;
18
+ private _serviceConnectionConfiguration;
19
+ private static readonly DEFAULT_CONNECTION;
20
+ constructor(connectionsConfigurations?: Map<string, AuthConfiguration>, connectionsMap?: ConnectionMapItem[], configuration?: AuthConfiguration);
21
+ /**
22
+ * Get the OAuth connection for the agent.
23
+ * @param connectionName The name of the connection.
24
+ * @returns The OAuth connection for the agent.
25
+ */
26
+ getConnection(connectionName: string): MsalTokenProvider;
27
+ /**
28
+ * Get the default OAuth connection for the agent.
29
+ * @returns The default OAuth connection for the agent.
30
+ */
31
+ getDefaultConnection(): MsalTokenProvider;
32
+ /**
33
+ * Finds a connection based on a map.
34
+ *
35
+ * @param identity - The identity. Usually TurnContext.identity.
36
+ * @param serviceUrl The service URL.
37
+ * @returns The TokenProvider for the connection.
38
+ *
39
+ * @remarks
40
+ * Example environment variables:
41
+ * connectionsMap__0__connection=seviceConnection
42
+ * connectionsMap__0__serviceUrl=http://*..botframework.com/*
43
+ * connectionsMap__0__audience=optional
44
+ * connectionsMap__1__connection=agentic
45
+ * connectionsMap__1__serviceUrl=agentic
46
+ *
47
+ * ServiceUrl is: A regex to match with, or "*" for any serviceUrl value.
48
+ * Connection is: A name in the 'Connections' list.
49
+ */
50
+ getTokenProvider(identity: JwtPayload, serviceUrl: string): MsalTokenProvider;
51
+ /**
52
+ * Finds a connection based on an activity's blueprint.
53
+ * @param identity - The identity. Usually TurnContext.identity.
54
+ * @param activity The activity.
55
+ * @returns The TokenProvider for the connection.
56
+ */
57
+ getTokenProviderFromActivity(identity: JwtPayload, activity: Activity): MsalTokenProvider;
58
+ /**
59
+ * Get the default connection configuration for the agent.
60
+ * @returns The default connection configuration for the agent.
61
+ */
62
+ getDefaultConnectionConfiguration(): AuthConfiguration;
63
+ private applyConnectionDefaults;
64
+ }
@@ -0,0 +1,148 @@
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.MsalConnectionManager = void 0;
8
+ const agents_activity_1 = require("@microsoft/agents-activity");
9
+ const msalTokenProvider_1 = require("./msalTokenProvider");
10
+ class MsalConnectionManager {
11
+ constructor(connectionsConfigurations = new Map(), connectionsMap = [], configuration = {}) {
12
+ this._connections = new Map();
13
+ this._connectionsMap = connectionsMap.length > 0 ? connectionsMap : (configuration.connectionsMap || []);
14
+ this._serviceConnectionConfiguration = {};
15
+ const providedConnections = connectionsConfigurations.size > 0 ? connectionsConfigurations : (configuration.connections || new Map());
16
+ for (const [name, config] of providedConnections) {
17
+ // Instantiate MsalTokenProvider for each connection
18
+ this._connections.set(name, new msalTokenProvider_1.MsalTokenProvider(config));
19
+ if (name === MsalConnectionManager.DEFAULT_CONNECTION) {
20
+ this._serviceConnectionConfiguration = config;
21
+ }
22
+ }
23
+ }
24
+ /**
25
+ * Get the OAuth connection for the agent.
26
+ * @param connectionName The name of the connection.
27
+ * @returns The OAuth connection for the agent.
28
+ */
29
+ getConnection(connectionName) {
30
+ const conn = this._connections.get(connectionName);
31
+ if (!conn) {
32
+ throw new Error(`Connection not found: ${connectionName}`);
33
+ }
34
+ return this.applyConnectionDefaults(conn);
35
+ }
36
+ /**
37
+ * Get the default OAuth connection for the agent.
38
+ * @returns The default OAuth connection for the agent.
39
+ */
40
+ getDefaultConnection() {
41
+ if (this._connections.size === 0) {
42
+ throw new Error('No connections found for this Agent in the Connections Configuration.');
43
+ }
44
+ // Return the wildcard map item instance.
45
+ for (const item of this._connectionsMap) {
46
+ if (item.serviceUrl === '*' && !item.audience) {
47
+ return this.getConnection(item.connection);
48
+ }
49
+ }
50
+ const conn = this._connections.values().next().value;
51
+ return this.applyConnectionDefaults(conn);
52
+ }
53
+ /**
54
+ * Finds a connection based on a map.
55
+ *
56
+ * @param identity - The identity. Usually TurnContext.identity.
57
+ * @param serviceUrl The service URL.
58
+ * @returns The TokenProvider for the connection.
59
+ *
60
+ * @remarks
61
+ * Example environment variables:
62
+ * connectionsMap__0__connection=seviceConnection
63
+ * connectionsMap__0__serviceUrl=http://*..botframework.com/*
64
+ * connectionsMap__0__audience=optional
65
+ * connectionsMap__1__connection=agentic
66
+ * connectionsMap__1__serviceUrl=agentic
67
+ *
68
+ * ServiceUrl is: A regex to match with, or "*" for any serviceUrl value.
69
+ * Connection is: A name in the 'Connections' list.
70
+ */
71
+ getTokenProvider(identity, serviceUrl) {
72
+ if (!identity) {
73
+ throw new Error('Identity is required to get the token provider.');
74
+ }
75
+ let audience;
76
+ if (Array.isArray(identity === null || identity === void 0 ? void 0 : identity.aud)) {
77
+ audience = identity.aud[0];
78
+ }
79
+ else {
80
+ audience = identity.aud;
81
+ }
82
+ if (!audience || !serviceUrl)
83
+ throw new Error('Audience and Service URL are required to get the token provider.');
84
+ if (this._connectionsMap.length === 0) {
85
+ return this.getDefaultConnection();
86
+ }
87
+ for (const item of this._connectionsMap) {
88
+ let audienceMatch = true;
89
+ // if we have an audience to match against, match it.
90
+ if (item.audience && audience) {
91
+ audienceMatch = item.audience === audience;
92
+ }
93
+ if (audienceMatch) {
94
+ if (item.serviceUrl === '*' || !item.serviceUrl) {
95
+ return this.getConnection(item.connection);
96
+ }
97
+ const regex = new RegExp(item.serviceUrl, 'i');
98
+ if (regex.test(serviceUrl)) {
99
+ return this.getConnection(item.connection);
100
+ }
101
+ }
102
+ }
103
+ throw new Error(`No connection found for audience: ${audience} and serviceUrl: ${serviceUrl}`);
104
+ }
105
+ /**
106
+ * Finds a connection based on an activity's blueprint.
107
+ * @param identity - The identity. Usually TurnContext.identity.
108
+ * @param activity The activity.
109
+ * @returns The TokenProvider for the connection.
110
+ */
111
+ getTokenProviderFromActivity(identity, activity) {
112
+ var _a, _b, _c, _d;
113
+ let connection = this.getTokenProvider(identity, activity.serviceUrl || '');
114
+ // This is for the case where the Agentic BlueprintId is not the same as the AppId
115
+ if (connection &&
116
+ (((_a = activity.recipient) === null || _a === void 0 ? void 0 : _a.role) === agents_activity_1.RoleTypes.AgenticIdentity ||
117
+ ((_b = activity.recipient) === null || _b === void 0 ? void 0 : _b.role) === agents_activity_1.RoleTypes.AgenticUser)) {
118
+ if (((_c = connection.connectionSettings) === null || _c === void 0 ? void 0 : _c.altBlueprintConnectionName) &&
119
+ connection.connectionSettings.altBlueprintConnectionName.trim() !== '') {
120
+ connection = this.getConnection((_d = connection.connectionSettings) === null || _d === void 0 ? void 0 : _d.altBlueprintConnectionName);
121
+ }
122
+ }
123
+ return connection;
124
+ }
125
+ /**
126
+ * Get the default connection configuration for the agent.
127
+ * @returns The default connection configuration for the agent.
128
+ */
129
+ getDefaultConnectionConfiguration() {
130
+ return this._serviceConnectionConfiguration;
131
+ }
132
+ applyConnectionDefaults(conn) {
133
+ var _a, _b;
134
+ var _c, _d;
135
+ if (conn.connectionSettings) {
136
+ (_a = (_c = conn.connectionSettings).authority) !== null && _a !== void 0 ? _a : (_c.authority = 'https://login.microsoftonline.com');
137
+ (_b = (_d = conn.connectionSettings).issuers) !== null && _b !== void 0 ? _b : (_d.issuers = [
138
+ 'https://api.botframework.com',
139
+ `https://sts.windows.net/${conn.connectionSettings.tenantId}/`,
140
+ `${conn.connectionSettings.authority}/${conn.connectionSettings.tenantId}/v2.0`
141
+ ]);
142
+ }
143
+ return conn;
144
+ }
145
+ }
146
+ exports.MsalConnectionManager = MsalConnectionManager;
147
+ MsalConnectionManager.DEFAULT_CONNECTION = 'serviceConnection';
148
+ //# sourceMappingURL=msalConnectionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msalConnectionManager.js","sourceRoot":"","sources":["../../../src/auth/msalConnectionManager.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,15 @@ import { AuthProvider } from './authProvider';
8
8
  * Provides tokens using MSAL.
9
9
  */
10
10
  export declare class MsalTokenProvider implements AuthProvider {
11
+ private readonly _agenticTokenCache;
12
+ readonly connectionSettings?: AuthConfiguration;
13
+ constructor(connectionSettings?: AuthConfiguration);
14
+ /**
15
+ * Gets an access token using the auth configuration from the MsalTokenProvider instance and the provided scope.
16
+ * @param scope The scope for the token.
17
+ * @returns A promise that resolves to the access token.
18
+ */
19
+ getAccessToken(scope: string): Promise<string>;
11
20
  /**
12
21
  * Gets an access token.
13
22
  * @param authConfig The authentication configuration.
@@ -15,7 +24,29 @@ export declare class MsalTokenProvider implements AuthProvider {
15
24
  * @returns A promise that resolves to the access token.
16
25
  */
17
26
  getAccessToken(authConfig: AuthConfiguration, scope: string): Promise<string>;
27
+ acquireTokenOnBehalfOf(scopes: string[], oboAssertion: string): Promise<string>;
18
28
  acquireTokenOnBehalfOf(authConfig: AuthConfiguration, scopes: string[], oboAssertion: string): Promise<string>;
29
+ getAgenticInstanceToken(tenantId: string, agentAppInstanceId: string): Promise<string>;
30
+ /**
31
+ * This method can optionally accept a tenant ID that overrides the tenant ID in the connection settings, if the connection settings authority contains "common".
32
+ * @param tenantId
33
+ * @returns
34
+ */
35
+ private resolveAuthority;
36
+ /**
37
+ * Does a direct HTTP call to acquire a token for agentic scenarios - do not use this directly!
38
+ * This method will be removed once MSAL is updated with the necessary features.
39
+ * (This is required in order to pass additional parameters into the auth call)
40
+ * @param tenantId
41
+ * @param clientId
42
+ * @param clientAssertion
43
+ * @param scopes
44
+ * @param tokenBodyParameters
45
+ * @returns
46
+ */
47
+ private acquireTokenByForAgenticScenarios;
48
+ getAgenticUserToken(tenantId: string, agentAppInstanceId: string, agenticUserId: string, scopes: string[]): Promise<string>;
49
+ getAgenticApplicationToken(tenantId: string, agentAppInstanceId: string): Promise<string>;
19
50
  private readonly sysOptions;
20
51
  /**
21
52
  * Acquires a token using a user-assigned identity.
@@ -45,6 +76,13 @@ export declare class MsalTokenProvider implements AuthProvider {
45
76
  * @returns A promise that resolves to the access token.
46
77
  */
47
78
  private acquireAccessTokenViaFIC;
79
+ /**
80
+ * Acquires a token using a Workload Identity client assertion.
81
+ * @param authConfig The authentication configuration.
82
+ * @param scope The scope for the token.
83
+ * @returns A promise that resolves to the access token.
84
+ */
85
+ private acquireAccessTokenViaWID;
48
86
  /**
49
87
  * Fetches an external token.
50
88
  * @param FICClientId The FIC client ID.