@microsoft/agents-hosting 1.1.0-alpha.5 → 1.1.0-alpha.58

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 (139) hide show
  1. package/dist/package.json +10 -6
  2. package/dist/src/activityWireCompat.js +8 -3
  3. package/dist/src/activityWireCompat.js.map +1 -1
  4. package/dist/src/agent-client/agentClient.js +7 -3
  5. package/dist/src/agent-client/agentClient.js.map +1 -1
  6. package/dist/src/agent-client/agentResponseHandler.js +6 -2
  7. package/dist/src/agent-client/agentResponseHandler.js.map +1 -1
  8. package/dist/src/app/agentApplication.d.ts +26 -11
  9. package/dist/src/app/agentApplication.js +93 -82
  10. package/dist/src/app/agentApplication.js.map +1 -1
  11. package/dist/src/app/agentApplicationBuilder.d.ts +2 -2
  12. package/dist/src/app/agentApplicationBuilder.js.map +1 -1
  13. package/dist/src/app/agentApplicationOptions.d.ts +9 -2
  14. package/dist/src/app/appRoute.d.ts +7 -0
  15. package/dist/src/app/{authorization.d.ts → auth/authorization.d.ts} +33 -139
  16. package/dist/src/app/auth/authorization.js +188 -0
  17. package/dist/src/app/auth/authorization.js.map +1 -0
  18. package/dist/src/app/auth/authorizationManager.d.ts +71 -0
  19. package/dist/src/app/auth/authorizationManager.js +170 -0
  20. package/dist/src/app/auth/authorizationManager.js.map +1 -0
  21. package/dist/src/app/auth/handlerStorage.d.ts +36 -0
  22. package/dist/src/app/auth/handlerStorage.js +62 -0
  23. package/dist/src/app/auth/handlerStorage.js.map +1 -0
  24. package/dist/src/app/auth/handlers/agenticAuthorization.d.ts +97 -0
  25. package/dist/src/app/auth/handlers/agenticAuthorization.js +145 -0
  26. package/dist/src/app/auth/handlers/agenticAuthorization.js.map +1 -0
  27. package/dist/src/app/auth/handlers/azureBotAuthorization.d.ts +222 -0
  28. package/dist/src/app/auth/handlers/azureBotAuthorization.js +428 -0
  29. package/dist/src/app/auth/handlers/azureBotAuthorization.js.map +1 -0
  30. package/dist/src/app/auth/handlers/index.d.ts +2 -0
  31. package/dist/src/app/auth/handlers/index.js +19 -0
  32. package/dist/src/app/auth/handlers/index.js.map +1 -0
  33. package/dist/src/app/auth/index.d.ts +2 -0
  34. package/dist/src/app/auth/index.js +19 -0
  35. package/dist/src/app/auth/index.js.map +1 -0
  36. package/dist/src/app/auth/types.d.ts +104 -0
  37. package/dist/src/app/auth/types.js +24 -0
  38. package/dist/src/app/auth/types.js.map +1 -0
  39. package/dist/src/app/index.d.ts +2 -3
  40. package/dist/src/app/index.js +2 -3
  41. package/dist/src/app/index.js.map +1 -1
  42. package/dist/src/app/routeList.d.ts +1 -1
  43. package/dist/src/app/routeList.js +22 -5
  44. package/dist/src/app/routeList.js.map +1 -1
  45. package/dist/src/app/streaming/streamingResponse.js +2 -1
  46. package/dist/src/app/streaming/streamingResponse.js.map +1 -1
  47. package/dist/src/auth/MemoryCache.d.ts +16 -0
  48. package/dist/src/auth/MemoryCache.js +58 -0
  49. package/dist/src/auth/MemoryCache.js.map +1 -0
  50. package/dist/src/auth/authConfiguration.d.ts +44 -2
  51. package/dist/src/auth/authConfiguration.js +218 -53
  52. package/dist/src/auth/authConfiguration.js.map +1 -1
  53. package/dist/src/auth/authConstants.d.ts +11 -0
  54. package/dist/src/auth/authConstants.js +15 -0
  55. package/dist/src/auth/authConstants.js.map +1 -0
  56. package/dist/src/auth/authProvider.d.ts +23 -0
  57. package/dist/src/auth/connections.d.ts +40 -0
  58. package/dist/src/auth/connections.js +7 -0
  59. package/dist/src/auth/connections.js.map +1 -0
  60. package/dist/src/auth/index.d.ts +2 -0
  61. package/dist/src/auth/index.js +2 -0
  62. package/dist/src/auth/index.js.map +1 -1
  63. package/dist/src/auth/jwt-middleware.js +31 -18
  64. package/dist/src/auth/jwt-middleware.js.map +1 -1
  65. package/dist/src/auth/msalConnectionManager.d.ts +63 -0
  66. package/dist/src/auth/msalConnectionManager.js +124 -0
  67. package/dist/src/auth/msalConnectionManager.js.map +1 -0
  68. package/dist/src/auth/msalTokenProvider.d.ts +31 -0
  69. package/dist/src/auth/msalTokenProvider.js +167 -16
  70. package/dist/src/auth/msalTokenProvider.js.map +1 -1
  71. package/dist/src/baseAdapter.d.ts +10 -25
  72. package/dist/src/baseAdapter.js +2 -15
  73. package/dist/src/baseAdapter.js.map +1 -1
  74. package/dist/src/cloudAdapter.d.ts +40 -23
  75. package/dist/src/cloudAdapter.js +132 -56
  76. package/dist/src/cloudAdapter.js.map +1 -1
  77. package/dist/src/connector-client/connectorClient.d.ts +9 -0
  78. package/dist/src/connector-client/connectorClient.js +39 -9
  79. package/dist/src/connector-client/connectorClient.js.map +1 -1
  80. package/dist/src/index.d.ts +0 -1
  81. package/dist/src/index.js +0 -1
  82. package/dist/src/index.js.map +1 -1
  83. package/dist/src/oauth/index.d.ts +0 -1
  84. package/dist/src/oauth/index.js +0 -1
  85. package/dist/src/oauth/index.js.map +1 -1
  86. package/dist/src/oauth/userTokenClient.d.ts +30 -13
  87. package/dist/src/oauth/userTokenClient.js +64 -26
  88. package/dist/src/oauth/userTokenClient.js.map +1 -1
  89. package/dist/src/oauth/userTokenClient.types.d.ts +19 -6
  90. package/dist/src/turnContext.d.ts +7 -1
  91. package/dist/src/turnContext.js +11 -4
  92. package/dist/src/turnContext.js.map +1 -1
  93. package/package.json +10 -6
  94. package/src/activityWireCompat.ts +8 -3
  95. package/src/agent-client/agentClient.ts +9 -3
  96. package/src/agent-client/agentResponseHandler.ts +5 -2
  97. package/src/app/agentApplication.ts +97 -75
  98. package/src/app/agentApplicationBuilder.ts +2 -2
  99. package/src/app/agentApplicationOptions.ts +10 -2
  100. package/src/app/appRoute.ts +8 -0
  101. package/src/app/auth/authorization.ts +252 -0
  102. package/src/app/auth/authorizationManager.ts +213 -0
  103. package/src/app/auth/handlerStorage.ts +61 -0
  104. package/src/app/auth/handlers/agenticAuthorization.ts +194 -0
  105. package/src/app/auth/handlers/azureBotAuthorization.ts +599 -0
  106. package/src/app/auth/handlers/index.ts +2 -0
  107. package/src/app/auth/index.ts +2 -0
  108. package/src/app/auth/types.ts +111 -0
  109. package/src/app/index.ts +2 -3
  110. package/src/app/routeList.ts +24 -5
  111. package/src/app/streaming/streamingResponse.ts +2 -1
  112. package/src/auth/MemoryCache.ts +59 -0
  113. package/src/auth/authConfiguration.ts +258 -52
  114. package/src/auth/authConstants.ts +11 -0
  115. package/src/auth/authProvider.ts +31 -0
  116. package/src/auth/connections.ts +46 -0
  117. package/src/auth/index.ts +2 -0
  118. package/src/auth/jwt-middleware.ts +38 -21
  119. package/src/auth/msalConnectionManager.ts +150 -0
  120. package/src/auth/msalTokenProvider.ts +209 -9
  121. package/src/baseAdapter.ts +10 -29
  122. package/src/cloudAdapter.ts +192 -67
  123. package/src/connector-client/connectorClient.ts +49 -10
  124. package/src/index.ts +0 -1
  125. package/src/oauth/index.ts +0 -1
  126. package/src/oauth/userTokenClient.ts +79 -23
  127. package/src/oauth/userTokenClient.types.ts +20 -8
  128. package/src/turnContext.ts +16 -5
  129. package/dist/src/app/authorization.js +0 -387
  130. package/dist/src/app/authorization.js.map +0 -1
  131. package/dist/src/claimsIdentity.d.ts +0 -35
  132. package/dist/src/claimsIdentity.js +0 -43
  133. package/dist/src/claimsIdentity.js.map +0 -1
  134. package/dist/src/oauth/oAuthFlow.d.ts +0 -119
  135. package/dist/src/oauth/oAuthFlow.js +0 -316
  136. package/dist/src/oauth/oAuthFlow.js.map +0 -1
  137. package/src/app/authorization.ts +0 -432
  138. package/src/claimsIdentity.ts +0 -47
  139. package/src/oauth/oAuthFlow.ts +0 -378
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ export declare const ApxLocalScope = "c16e153d-5d2b-4c21-b7f4-b05ee5d516f1/.default";
6
+ export declare const ApxDevScope = "0d94caae-b412-4943-8a68-83135ad6d35f/.default";
7
+ export declare const ApxProductionScope = "5a807f24-c9de-44ee-a3a7-329e88a00ffc/.default";
8
+ export declare const ApxGCCScope = "c9475445-9789-4fef-9ec5-cde4a9bcd446/.default";
9
+ export declare const ApxGCCHScope = "6f669b9e-7701-4e2b-b624-82c9207fde26/.default";
10
+ export declare const ApxDoDScope = "0a069c81-8c7c-4712-886b-9c542d673ffb/.default";
11
+ export declare const ApxGallatinScope = "bd004c8e-5acf-4c48-8570-4e7d46b2f63b/.default";
@@ -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,27 @@ 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 agentAppInstanceId
20
+ * @returns a promise that resolves to the access token.
21
+ */
22
+ getAgenticApplicationToken: (agentAppInstanceId: string) => Promise<string>;
23
+ /**
24
+ * Get an access token for the agentic instance
25
+ * @param agentAppInstanceId
26
+ * @returns a promise that resolves to the access token.
27
+ */
28
+ getAgenticInstanceToken: (agentAppInstanceId: string) => Promise<string>;
29
+ /**
30
+ * Get an access token for the agentic user
31
+ * @param agentAppInstanceId
32
+ * @param upn
33
+ * @param scopes
34
+ * @returns a promise that resolves to the access token.
35
+ */
36
+ getAgenticUserToken: (agentAppInstanceId: string, upn: string, scopes: string[]) => Promise<string>;
37
+ acquireTokenOnBehalfOf(scopes: string[], oboAssertion: string): Promise<string>;
38
+ acquireTokenOnBehalfOf(authConfig: AuthConfiguration, scopes: string[], oboAssertion: string): Promise<string>;
39
+ acquireTokenOnBehalfOf(authConfigOrScopes: AuthConfiguration | string[], scopesOrOboAssertion?: string[] | string, oboAssertion?: string): Promise<string>;
17
40
  }
@@ -0,0 +1,40 @@
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
+ export interface Connections {
9
+ /**
10
+ * Get the OAuth connection for the agent.
11
+ * @param name - The connection name. Must match a configured OAuth connection.
12
+ * @returns An AuthProvider instance.
13
+ * @throws {Error} If the connection name is not found.
14
+ */
15
+ getConnection: (name: string) => AuthProvider;
16
+ /**
17
+ * Get the default OAuth connection for the agent.
18
+ * @returns An AuthProvider instance.
19
+ */
20
+ getDefaultConnection: () => AuthProvider;
21
+ /**
22
+ * Get the OAuth token provider for the agent.
23
+ * @param audience - The audience.
24
+ * @param serviceUrl - The service url.
25
+ * @returns An AuthProvider instance.
26
+ */
27
+ getTokenProvider: (audience: string, serviceUrl: string) => AuthProvider;
28
+ /**
29
+ * Get the OAuth token provider for the agent.
30
+ * @param audience - The audience.
31
+ * @param activity - The activity.
32
+ * @returns An AuthProvider instance.
33
+ */
34
+ getTokenProviderFromActivity: (audience: string, activity: Activity) => AuthProvider;
35
+ /**
36
+ * Get the default connection configuration for the agent.
37
+ * @returns An Auth Configuration.
38
+ */
39
+ getDefaultConnectionConfiguration: () => AuthConfiguration;
40
+ }
@@ -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,63 @@
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 { Connections } from './connections';
9
+ import { MsalTokenProvider } from './msalTokenProvider';
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 audience The audience.
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(audience: string, serviceUrl: string): MsalTokenProvider;
51
+ /**
52
+ * Finds a connection based on an activity's blueprint.
53
+ * @param audience The audience.
54
+ * @param activity The activity.
55
+ * @returns The TokenProvider for the connection.
56
+ */
57
+ getTokenProviderFromActivity(audience: string, activity: Activity): AuthProvider;
58
+ /**
59
+ * Get the default connection configuration for the agent.
60
+ * @returns The default connection configuration for the agent.
61
+ */
62
+ getDefaultConnectionConfiguration(): AuthConfiguration;
63
+ }
@@ -0,0 +1,124 @@
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 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
+ return this._connections.values().next().value;
51
+ }
52
+ /**
53
+ * Finds a connection based on a map.
54
+ *
55
+ * @param audience The audience.
56
+ * @param serviceUrl The service URL.
57
+ * @returns The TokenProvider for the connection.
58
+ *
59
+ * @remarks
60
+ * Example environment variables:
61
+ * connectionsMap__0__connection=seviceConnection
62
+ * connectionsMap__0__serviceUrl=http://*..botframework.com/*
63
+ * connectionsMap__0__audience=optional
64
+ * connectionsMap__1__connection=agentic
65
+ * connectionsMap__1__serviceUrl=agentic
66
+ *
67
+ * ServiceUrl is: A regex to match with, or "*" for any serviceUrl value.
68
+ * Connection is: A name in the 'Connections' list.
69
+ */
70
+ getTokenProvider(audience, serviceUrl) {
71
+ if (!audience || !serviceUrl)
72
+ throw new Error('Audience and Service URL are required to get the token provider.');
73
+ if (this._connectionsMap.length === 0) {
74
+ return this.getDefaultConnection();
75
+ }
76
+ for (const item of this._connectionsMap) {
77
+ let audienceMatch = true;
78
+ // if we have an audience to match against, match it.
79
+ if (item.audience && audience) {
80
+ audienceMatch = item.audience === audience;
81
+ }
82
+ if (audienceMatch) {
83
+ if (item.serviceUrl === '*' || !item.serviceUrl) {
84
+ return this.getConnection(item.connection);
85
+ }
86
+ const regex = new RegExp(item.serviceUrl, 'i');
87
+ if (regex.test(serviceUrl)) {
88
+ return this.getConnection(item.connection);
89
+ }
90
+ }
91
+ }
92
+ throw new Error(`No connection found for audience: ${audience} and serviceUrl: ${serviceUrl}`);
93
+ }
94
+ /**
95
+ * Finds a connection based on an activity's blueprint.
96
+ * @param audience The audience.
97
+ * @param activity The activity.
98
+ * @returns The TokenProvider for the connection.
99
+ */
100
+ getTokenProviderFromActivity(audience, activity) {
101
+ var _a, _b, _c, _d;
102
+ let connection = this.getTokenProvider(audience, activity.serviceUrl || '');
103
+ // This is for the case where the Agentic BlueprintId is not the same as the AppId
104
+ if (connection &&
105
+ (((_a = activity.recipient) === null || _a === void 0 ? void 0 : _a.role) === agents_activity_1.RoleTypes.AgenticIdentity ||
106
+ ((_b = activity.recipient) === null || _b === void 0 ? void 0 : _b.role) === agents_activity_1.RoleTypes.AgenticUser)) {
107
+ if (((_c = connection.connectionSettings) === null || _c === void 0 ? void 0 : _c.altBlueprintConnectionName) &&
108
+ connection.connectionSettings.altBlueprintConnectionName.trim() !== '') {
109
+ connection = this.getConnection((_d = connection.connectionSettings) === null || _d === void 0 ? void 0 : _d.altBlueprintConnectionName);
110
+ }
111
+ }
112
+ return connection;
113
+ }
114
+ /**
115
+ * Get the default connection configuration for the agent.
116
+ * @returns The default connection configuration for the agent.
117
+ */
118
+ getDefaultConnectionConfiguration() {
119
+ return this._serviceConnectionConfiguration;
120
+ }
121
+ }
122
+ exports.MsalConnectionManager = MsalConnectionManager;
123
+ MsalConnectionManager.DEFAULT_CONNECTION = 'serviceConnection';
124
+ //# 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,22 @@ 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(agentAppInstanceId: string): Promise<string>;
30
+ /**
31
+ * Does a direct HTTP call to acquire a token for agentic scenarios - do not use this directly!
32
+ * This method will be removed once MSAL is updated with the necessary features.
33
+ * (This is required in order to pass additional parameters into the auth call)
34
+ * @param clientId
35
+ * @param clientAssertion
36
+ * @param scopes
37
+ * @param tokenBodyParameters
38
+ * @returns
39
+ */
40
+ private acquireTokenByForAgenticScenarios;
41
+ getAgenticUserToken(agentAppInstanceId: string, agenticUserId: string, scopes: string[]): Promise<string>;
42
+ getAgenticApplicationToken(agentAppInstanceId: string): Promise<string>;
19
43
  private readonly sysOptions;
20
44
  /**
21
45
  * Acquires a token using a user-assigned identity.
@@ -45,6 +69,13 @@ export declare class MsalTokenProvider implements AuthProvider {
45
69
  * @returns A promise that resolves to the access token.
46
70
  */
47
71
  private acquireAccessTokenViaFIC;
72
+ /**
73
+ * Acquires a token using a Workload Identity client assertion.
74
+ * @param authConfig The authentication configuration.
75
+ * @param scope The scope for the token.
76
+ * @returns A promise that resolves to the access token.
77
+ */
78
+ private acquireAccessTokenViaWID;
48
79
  /**
49
80
  * Fetches an external token.
50
81
  * @param FICClientId The FIC client ID.