When an AI‑driven assistant like Copilot runs unattended, relying on a static password leaves no audit trail and can let a bot exfiltrate source code, spin up expensive cloud resources, or trigger data‑destruction without any human ever seeing the request. Using a non-human identity, an OIDC‑issued service token, limits the bot to a tightly scoped set of permissions and makes each action attributable.
Non‑human identity solves the first part of that problem by giving a service account, OIDC token, or SAML‑asserted identity to the automation instead of a shared static password. The token can be tightly scoped to the exact actions the bot needs, and it can be rotated automatically by the identity provider. In theory this reduces the blast radius of a compromised secret and provides a clear audit trail of which service performed which operation.
In practice, however, putting a non‑human identity on the wire does not close the loop. The bot still connects directly to the target system, be it a database, a Kubernetes cluster, or an SSH host, without any gate that can inspect the traffic. There is no place to enforce command‑level policies, mask sensitive fields that appear in responses, or require a human to approve risky actions. The connection remains a black box to security teams, and the logs that are produced live on the target, not in a tamper‑evident store.
Applying non‑human identity to Copilot
The first step is to provision a service identity that represents the Copilot instance. This is done in the identity provider (Okta, Azure AD, Google Workspace, etc.) by creating an application registration that issues short‑lived OIDC tokens. The registration should include group memberships or attribute‑based policies that limit the token to the specific resources Copilot needs, read‑only access to a code repository, write access to a staging database, or the ability to invoke a limited set of Kubernetes commands.
Those tokens are then presented by Copilot when it initiates a connection. The token proves who the caller is, and the gateway can use the token’s claims to decide whether the request is allowed to proceed. This setup satisfies the authentication and identity‑scoping part of the problem, but it still leaves the enforcement gap open.
Why a gateway is required
Only a data‑path component that sits between the Copilot process and the target can observe and control the actual traffic. That component must be able to:
- Record every command and response for later replay.
- Mask fields such as passwords, API keys, or personally identifiable information that appear in query results.
- Block commands that match a deny list or that exceed a risk threshold.
- Pause execution and route the request to a human approver when the operation is classified as high‑risk.
Without this layer, the non‑human identity provides only authentication, not authorization or audit.
