Obtain a token from Okta using client credentials:
export TOKEN=$(curl -s -X POST \
$DECK_OKTA_ISSUER/v1/token \
-d "grant_type=client_credentials" \
-d "client_id=$DECK_OKTA_CLIENT_ID" \
-d "client_secret=$DECK_OKTA_CLIENT_SECRET" \
-d "scope=api:access" | jq -r '.access_token')
Send the A2A request with the token:
curl -X POST "$KONNECT_PROXY_URL/a2a" \
--no-progress-meter --fail-with-body \
-H "Content-Type: application/json"\
-H "Authorization: Bearer $TOKEN" \
--json '{
"jsonrpc": "2.0",
"id": "1",
"method": "message/send",
"params": {
"message": {
"kind": "message",
"messageId": "msg-001",
"role": "user",
"parts": [
{
"kind": "text",
"text": "How much is 100 USD in EUR?"
}
]
}
}
}'
curl -X POST "http://localhost:8000/a2a" \
--no-progress-meter --fail-with-body \
-H "Content-Type: application/json"\
-H "Authorization: Bearer $TOKEN" \
--json '{
"jsonrpc": "2.0",
"id": "1",
"method": "message/send",
"params": {
"message": {
"kind": "message",
"messageId": "msg-001",
"role": "user",
"parts": [
{
"kind": "text",
"text": "How much is 100 USD in EUR?"
}
]
}
}
}'
Kong Gateway validates the bearer token via Okta’s JWKS endpoint, then proxies the request to the upstream A2A agent. A successful response contains a completed task with the currency conversion result.