You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: modules/ROOT/pages/af-project-files.adoc
+159-3Lines changed: 159 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -342,6 +342,9 @@ tools:
342
342
name: talent-pool-mcp # Exchange asset ID of MCP server. By default, the groupId for this asset is the same as that in exchange.json.
343
343
allowed: # Allowlist specific tools
344
344
- TalentPoolMcpServer.match_email_to_address
345
+
headersToPropagate:
346
+
- Authorization
347
+
- X-Correlation-Id # Optional. Header names to forward when invoking this tool.
345
348
- mcp:
346
349
ref:
347
350
name: slack-mcp
@@ -358,6 +361,7 @@ The `tools` element has these properties.
358
361
|`mcp.ref` |The reference to the MCP server that is available to this broker. |String |See <<mcp-servers-section,MCP Servers>> |Yes
359
362
|`mcp.connection.ref` |Connection reference. |String |See <<connections-section,Connections>> |No
360
363
|`mcp.allowed` |Filters the list of tools advertised by the MCP server to only those in this list. Mutually exclusive with 'denied'. |Array of strings |Array of tool name strings |No
364
+
|`mcp.headersToPropagate` |The names of the request headers to propagate when the broker invokes this tool. |Array of strings |Array of header name strings |No
361
365
|===
362
366
363
367
[[links-section]]
@@ -376,6 +380,9 @@ links:
376
380
ref:
377
381
name: hr-agent # Exchange asset ID of the linked agent. By default, the groupId for this asset is the same as that in exchange.json.
378
382
namespace: # Optional. If the asset was defined in a different business group, set the corresponding groupId here.
383
+
headersToPropagate:
384
+
- Authorization
385
+
- X-Correlation-Id # Optional. Header names to forward when invoking this agent.
379
386
- agent:
380
387
ref:
381
388
name: badging-agent
@@ -415,6 +422,7 @@ The `links` element has these properties.
415
422
|`links[].agent.ref.name` |Exchange asset ID of the linked agent. This references the `assetId` that the agent has in Anypoint Exchange, not the human-friendly name.|String|Asset ID string (for example, "hr-agent", "crm-agent"). By default, the groupId for this asset is the same as that in exchange.json|Yes
416
423
|`links[].agent.ref.namespace` |Business group ID (groupId) where the asset is defined. Use this when the asset was defined in a different business group than the current one.|String|Group ID string. To find the groupId, look in the `dependencies` section in `exchange.json`|No
417
424
|`links[].agent.connection.ref` |Connection reference.|String|See <<connections-section,Connections>>. This references a connection defined in the `connections` section|No
425
+
|`links[].agent.headersToPropagate` |The names of the request headers to propagate when the broker invokes this agent.|Array of strings|Array of header name strings |No
418
426
|===
419
427
420
428
@@ -779,7 +787,7 @@ The `connections` element has these properties.
779
787
|`spec` |Connection specification. Properties vary by connection kind. |Object |Object with spec properties (See <<spec-section,Spec>>) |Yes
780
788
|`spec.url` |The URL for the connection endpoint. |String |Valid URL string |Yes (for agent and llm), No (for mcp)
781
789
|`spec.authentication` |Authentication configuration for the connection. |Object |Authentication object (See <<authentication-types,Authentication types>>) |No
782
-
|`spec.authentication.kind` |The type of authentication. |String |`basic`, `oauth2-client-credentials`, `apikey-client-credentials`, `apiKey` |Yes (when authentication is specified)
790
+
|`spec.authentication.kind` |The type of authentication. |String |`basic`, `oauth2-client-credentials`, `apikey-client-credentials`, `apiKey`, `in-task-authorization-code`, and `oauth2-obo` |Yes (when authentication is specified)
783
791
|`spec.authentication.username` |The username for basic authentication. |String |Any string value |Yes (for basic auth)
784
792
|`spec.authentication.password` |The password for basic authentication. |String |Any string value |Yes (for basic auth)
785
793
|`spec.authentication.headerName` |The name of the header in which to set the key. If not specified, 'Authorization' is set by default. |String |Any string value |No
@@ -864,7 +872,7 @@ Both agents and MCP servers support the same authentication types with custom he
864
872
[source,yaml]
865
873
----
866
874
authentication:
867
-
Kind: basic
875
+
kind: basic
868
876
username: "username"
869
877
password: "password"
870
878
----
@@ -879,6 +887,18 @@ kind: basic
879
887
headerName: X-API-Authorization # Custom header instead of default "Authorization"
|`apiKey` |The value of the API key. |String |Any string |Yes
985
+
|`headerName` |The name of the header in which to set the key. If not specified, `Authorization` is used. |String |Any string |No
986
+
|===
987
+
988
+
[[in-task-auth]]
989
+
==== In-Task Authorization Code
990
+
991
+
Use `in-task authorization code` when the connection needs secondary credentials obtained during a task using the OAuth 2.0 Authorization Code flow. OAuth2 tokens are extracted from message data and injected into the `Authorization` header for upstream calls. This supports step-up or in-task authentication (for example, when a user must re-authenticate for a sensitive action). For more information about the associated policy, see xref:gateway::policies-outbound-a2a-intask-authorization-code.adoc[].
|`tokenAudience` |Intended recipient of the token (for example, `agent1` or API URL). |String |Any string |No
1025
+
|`bodyEncoding` |Encoding for the token request body. |String |`form`, `json`. Default: `form` |No
1026
+
|`tokenTimeout` |Timeout in seconds for token requests. |Integer |Positive integer. Default: 300 |No
1027
+
|`challengeResponseStatusCode` |HTTP status code returned for auth-required challenge responses. Typically 200 for JSON-RPC compatibility. |Integer |HTTP status code. Default: 200 |No
1028
+
|===
1029
+
1030
+
1031
+
[[obo-credential-injection]]
1032
+
==== OAuth 2.0 OBO Credential Injection
1033
+
1034
+
This authentication type supports OAuth 2.0 Token Exchange and Microsoft Entra ID On-Behalf-Of protocols. For more information about the associated policy, see xref:gateway::policies-outbound-oauth-obo.adoc[].
scope: Read #optional, OAuth 2.0 scope to request. Required for Microsoft Entra OBO (for example, api://downstream-client-id/.default). Optional for OAuth 2.0 Token Exchange (RFC 8693).
1049
+
timeout: 5000 #optional, Timeout for token exchange requests in milliseconds. Default: 10000.
1050
+
----
1051
+
1052
+
Using Microsoft Entra ID On-Behalf-Of:
1053
+
1054
+
[source,yaml]
1055
+
----
1056
+
authentication:
1057
+
kind: oauth2-obo
1058
+
flow: microsoft-entra-obo
1059
+
tokenEndpoint: https://oauth.provider.com/token
1060
+
clientId: clientId
1061
+
clientSecret: clientSecret
1062
+
scope: api://downstream-client-id/.default
1063
+
timeout: 5000 #optional, Timeout for token exchange requests in milliseconds. Default: 10000.
1064
+
----
1065
+
1066
+
The `oauth2-obo` authentication has these properties.
|`targetType` |Parameter type for specifying the target service (audience for logical name, resource for physical URI). Used for OAuth 2.0 Token Exchange. |String |`audience`, `resource`. Default: `audience` |No
1078
+
|`targetValue` |Target audience URI or resource URI for the exchanged token. Required for OAuth 2.0 Token Exchange. |String |Valid URI |Required when using `oauth2-token-exchange` with a target
1079
+
|`scope` |OAuth scope to request. Required for Microsoft Entra OBO (e.g. `api://downstream-client-id/.default`). Optional for OAuth 2.0 Token Exchange. |String |Any string |Required for `microsoft-entra-obo`
1080
+
|`timeout` |Timeout for token exchange requests in milliseconds. |Integer |Positive integer. Default: 10000 |No
* `INSECURE-LOGGING` (For content that can potentially contain sensitive information, such as LLM reasoning, and inputs and outputs from agents and assets defined in `tools` and `links`)
22
22
23
23
[IMPORTANT]
24
-
HTTP wire logging displays HTTP headers and payload in plain text. Avoid leaving it enabled indefinitely or unsupervised, as it can negatively impact API performance.
24
+
`INSECURE-LOGGING` is very likely to contain sensitive information, such as personally identifiable information (PII). Make sure to disable it after troubleshooting is completed.
25
25
26
26
[[enable-message-logging]]
27
27
== Enable Message Logging Policy
28
28
29
-
Use API Manager or manually edit the agentnetwork file to add a message logging policy.
29
+
Edit `agent-network.yaml` to set message logging for MCP servers and agents.
30
30
31
-
=== Using API Manager
32
-
33
-
. In API Manager, select the API, agent, or MCP server instance for which you want to apply the policy.
34
-
. Follow the steps in xref:gateway::flex-managed-message-log.adoc#configure-message-logging-in-connected-mode[Configure Message Logging in Connected Mode] and add these settings:
35
-
+
36
-
* In the Messages field, enter `#[attributes]`.
37
-
* Select the checkboxes for **Before Calling API** and **After Calling API**.
38
-
. Click **Save**.
39
-
40
-
Afterward, you should see a Message Log option for the API, agent, or MCP server.
41
-
42
-
[NOTE]
43
-
If you redeploy the network, this policy is deleted.
44
-
45
-
=== Using the Agent Network File
46
-
47
-
In the `connection` section of the API, agent, or MCP server instance you want to log, add the following inside `policies`:
31
+
Message logging uses the xref:gateway::policies-included-message-logging.adoc[Flex Gateway Message Logging policy]. In the `connection` section of the agent or MCP server instance you want to log, add the following logging policy inside `policies`:
48
32
49
33
[source,yaml]
50
34
----
51
35
52
-
policies: ## add the following inside the policy setting
36
+
policies: ## add the following inside the policy setting
53
37
- ref:
54
38
name: message-logging
55
39
namespace: business_group_UUID
@@ -83,14 +67,6 @@ If Anypoint Monitoring isn't showing traces for agents and MCP servers, check th
83
67
* In API Manager, verify you've enabled the tracing policy for all brokers and agents.
84
68
* In the managed Flex Gateways, verify that you've enabled Distributed Tracing for ingress and egress.
If Agent Visualizer shows disconnected nodes with no edges, delete the `extensions` from the `spec.capabilities` section in `agent-network.yaml`.
89
-
90
-
=== Issue: Null Response from Broker
91
-
92
-
If your agent network broker returns a null response, restart the broker.
93
-
94
70
=== Issue: No Agent Network Commands in Anypoint Code Builder
95
71
96
72
If you installed Anypoint Code Builder successfully, but you don’t see agent network commands in the interface, verify that you have the latest version of the Anypoint Extension Pack. Then, restart VS Code.
0 commit comments