Replies: 5 comments 1 reply
-
|
I was very excited to see the credential injection pattern introduced in nono, but it seems to be very hard to actually use with the current pattern. +1 for getting some documentation and explanations for this. just for reference: I tried implementing the injected credentials for private gitlab instance and couldn't get it to work easily as all connections get the following: |
Beta Was this translation helpful? Give feedback.
-
|
This would be resolved through TLS interception #650 , now planned work in issue: #779 What you're hitting is the intentional block from when reverse-proxy routes are configured for a host, direct CONNECT's to that host are denied with "CONNECT bypasses L7 filtering". The reason being, the proxy sees opaque TLS bytes and cannot inject credentials, so we can't actually swap the credential out. No saying this justifies the current implementation, I agree its not right and should at least be better documented. I hope to get onto this shortly, as a few folks are keen to see this. |
Beta Was this translation helpful? Give feedback.
-
should be a PR up this week @sahuguet @wurbanski |
Beta Was this translation helpful? Give feedback.
-
|
The If this mode is supported, I would make a few controls explicit:
That keeps the ergonomics of normal SDKs while preserving the main safety property: the agent can request a resource, but it never directly receives or stores the credential used to authorize that request. |
Beta Was this translation helpful? Give feedback.
-
|
This is in review now: #856 |
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
-
TL;DR
HTTP_PROXYset to a local proxy that does credential injection, with zero change in the code of the agentLonger version
The one issue I have with the reverse proxy approach is that the agent to be sandboxed must be aware of the sandboxing.
To the best of my understanding, the agent code MUST be written as
GET http://127.0.0.1:PORT/my-service/...instead ofGET https://my-service.com/.... Am I correct?An approach I have experimented with is to set-up an HTTP proxy (I am using https://www.mitmproxy.org/) and launch Claude code using
HTTP_PROXY=http://localhost:8080 claude.Note
You actually need to provide more env variables to cover upper case, lower case and also no_proxy.
Using this, Claude Code and all the tools and MCPs used by Claude Code do not have to aware of the sandbox.
In my current setting, I am using
nonoto restrict file access and exclude all network connections with the exception of port 8080 of the HTTP proxy.All calls routed to the HTTP proxy can be handled with
According to my reading of the documentation, all network calls (e.g. local tools, MCPs, etc.) inside the nono sandbox must follow the reverse proxy naming convention. This means that I need to change my code to accommodate for that. Am I correct
?
I would prefer to have the luxury of wrapping my agent inside nono, with zero code change.
By forcing my agent to use an HTTP proxy, I think we can achieve that.
Beta Was this translation helpful? Give feedback.
All reactions