Set up the instance
Run the workload on an OCI compute instance with an instance principal. The instance must reach the metadata service and, over HTTPS, its identity domain:Get and inspect a token
Sign a token exchange request to your identity domain with the instance principal:https://platform.reducto.ai, so configure Reducto with one of the aud values in your token. The iss is Oracle’s global issuer, but the signing keys are published by your tenant’s identity domain.
Configure Reducto
In Studio, open Settings > Workload identity and create a provider with the Oracle Cloud preset:
Reducto fetches
/.well-known/openid-configuration from the identity domain and uses its jwks_uri. If Reducto cannot reach it, use Uploaded JWKS with the keys from https://<identity domain>/admin/v1/SigningCert/jwk, and update them when Oracle rotates its keys.
Add a mapping for the instance and tenancy:
To allow every instance in a compartment, match
ipst_compartment instead of ipst_instance.
These OCI claims are top-level claims, so the mapping matches them directly and the provider needs no attribute transformations.
Call Reducto
SetOCI_IDENTITY_DOMAIN_URL to your identity domain, for example https://idcs-4f2a8c1e9b3d4e7f.identity.oraclecloud.com. The Python example needs pip install reductoai oci requests. The Node.js example needs npm install reductoai oci-common. The cURL example gets the Oracle token with the OCI Python SDK (pip install oci requests), because oci raw-request sends only JSON bodies and the identity domain token endpoint needs a form body.
OCI best practices
- Match
ipst_instancewhen only one instance should have access. Matchipst_compartmentonly when every instance in the compartment should. - Always add
ca_ocidordomain_idto bind the mapping to your tenancy and identity domain. - On OKE, remember that the instance principal is the node. Do not rely on it to separate pods.
- With an uploaded JWKS, update it when Oracle rotates the identity domain’s signing keys.