Skip to content
Customer Identity · available nowBuild your first Test integration.Create a Test project
NamoID
All posts
NamoID Blog

Service Accounts, API Keys and OAuth Client Credentials

Choose machine access by identity, audience, scope, credential custody, rotation, and retirement. Understand the current NamoID Management API boundary.

Give each machine workload an identity with an owner, a defined purpose and limited access. Choose its credential separately from its permissions. Record how the credential rotates and how the workload is retired.

A service account is an identity or account model. An API key is a credential. OAuth client credentials is a grant used by a confidential client to obtain a token. These terms describe different parts of the access design.

Choose the identity before the credential

Consider a nightly job that exports aggregated order totals. It needs a narrow read operation. It should not inherit a developer's personal administrator session.

OptionWhat it representsMain review question
Named service identityA workload or integration accountWho owns its permissions and lifecycle?
API keyA secret accepted by a serviceHow are scope, expiry, rotation and attribution enforced?
OAuth client credentialsClient authentication followed by token issuanceWhich audience and permissions can the token receive?
Workload identityAn identity established through the runtime's trust systemWhich runtime and issuer assertions does the recipient trust?
Delegated user grantAccess authorized in a user's contextWhat happens when that user or consent changes?

Use the agent identity guide when an agent acts through delegated authority. A machine identity alone does not establish permission for every requested action.

Understand the client-credentials boundary

The OAuth client-credentials grant is for confidential clients. A client authenticates to the authorization server and requests permitted access. It does not include an interactive end-user login. Keep its credentials on a protected backend. OAuth client-credentials grant.

The following illustrates a generic token request. Use the provider's registered client-authentication method and approved endpoint.

POST /token HTTP/1.1
Host: issuer.example.test
Authorization: Basic <registered client authentication>
Content-Type: application/x-www-form-urlencoded
 
grant_type=client_credentials&scope=orders.read

This request shape is not a NamoID Management API example. It does not establish that a server accepts arbitrary customer resource audiences.

Bind permission to the receiving service

A signed token needs a recipient and a meaning that the recipient can validate. Check the issuer, signature, audience, expiry, token profile and required permissions. Reject a token intended for another API.

For a synthetic test, issue a token for the order-summary API. Present it to an administrator-export API. The latter should reject it even if both services trust the same signing key. JWT validation guide.

Where supported, mutual TLS can authenticate a client and bind a token to a certificate. The receiving resource must enforce that binding. Certificate management remains an operational responsibility. OAuth mutual TLS.

Keep a machine access register

Download the machine identity register. Include a business owner and an operator who can revoke access during an incident.

Record the service, environment, audience, scopes, credential identifier, expiry and rotation route. Store secret values in the approved secret-management system. Keep them out of the register itself.

Separate Test and Live credentials. A successful test run should not authorize the workload against production data.

Rehearse rotation before the old credential expires

  1. Identify every consumer of the current credential.
  2. Create the replacement through the approved process.
  3. Deploy the replacement to a controlled test consumer.
  4. Verify its expected audience and permissions.
  5. Move the remaining approved consumers.
  6. Revoke or expire the old credential.
  7. Confirm that the old credential fails.
  8. Record the result without storing either secret.

Some systems allow overlapping credentials during a transition. Others require a different deployment plan. Verify the actual behavior before adopting a rotation schedule.

Distinguish revocation from retirement

Revoking a client secret can stop new token requests. Already issued access tokens may need separate invalidation or may remain usable until expiry. The resource's enforcement model determines the result.

When retiring a workload, remove its permissions, credentials, schedules and dependent grants. Confirm that it no longer performs the operation. Preserve a minimal ownership and retirement record under your policy.

Review the NamoID boundary

NamoID's current client-credentials implementation is scoped to its Management API. It uses the resource audience https://api.namoid.in/management and management-specific permissions. Confirm registration, authentication and environment requirements before using it.

That implementation does not establish a general-purpose client-credentials service for arbitrary customer APIs. NamoID engineers can help review your machine-access requirement and the available integration path.

Share the workload, target API and required actions in Slack for an early response. Contact the NamoID team