This article seems to be recommending the use of capabilities, but a question is how you represent a capability, if not as a string or a number like a file descriptor. And how do you send it over a network, if not as a byte sequence?
For capabilities to work they need to be unforgeable. So you need some opaque handle (and a memory/type safe language) and on the wire you need some sort of cryptographic signing.
Seems like you could store an unforgeable hash in an environment variable, though, or put it in a constant in source code. This only works if you treat as a secret. Also, maybe they should expire?