canonical: https://jentic.com/apis/azure.com/azure-customer-lockbox

# Microsoft Azure Customer Lockbox

Jentic publishes the only available OpenAPI specification for Customer Lockbox, keeping it validated and agent-ready. The Azure Customer Lockbox API exposes 4 operations across 4 paths to review and respond to Microsoft engineer access requests against your subscription's data. When a Microsoft support engineer requires data-plane access during a support case, a Lockbox request is generated and must be approved or denied by an authorised customer. This API lets agents and automation systems list pending requests, fetch a specific request, and update its approval status without manual portal use.

## For AI agents

Review and approve or deny Microsoft engineer data-access requests on Azure subscriptions through 4 operations on the Customer Lockbox resource provider, supporting compliance and audit-trail automation.

## Scope

Does not initiate Lockbox requests, grant standing access, or manage RBAC roles - use for listing and approving or denying Microsoft engineer access requests only.

## Capabilities

- List all pending and historical Customer Lockbox requests on a subscription
- Retrieve full details of a specific Lockbox request including service, support ticket, and justification
- Approve or deny a specific Lockbox request with a status update call
- Enumerate available Microsoft.CustomerLockbox operations for permission and audit review

## Use cases

### Automated Compliance Review of Microsoft Support Access

Surface every pending Customer Lockbox request to a security operations queue so designated approvers respond within the SLA window. Listing the requests on a subscription returns the requested service, support case number, justification, and expiry, which the operator combines with the open ticket record to make an informed decision. Approval or denial is a single UpdateApproval call. This replaces manual portal monitoring for regulated workloads.

Example prompt: List all Customer Lockbox requests on /subscriptions/{id}, filter for requests with status 'Pending', and post a notification to the security team channel for each one

### Audit Trail of Microsoft Engineer Access

Build an audit log of every Microsoft engineer access request and its outcome by polling the requests list endpoint and storing the results. This gives compliance teams a defensible record of who reviewed and approved each request, with the underlying support case and justification, even if the in-portal history is not retained long-term.

Example prompt: Pull all Lockbox requests with status 'Approved' or 'Denied' from the last 90 days and write each record to the compliance log store

### Time-Boxed Automatic Denial

Implement a policy where any Lockbox request that has not been reviewed within a defined window is automatically denied. The agent polls the requests list, identifies any pending entry older than the threshold, and calls UpdateApproval with status 'Denied'. This prevents accidental approvals from idle queues while keeping a clear audit trail.

Example prompt: Find all Lockbox requests on /subscriptions/{id} with status 'Pending' and createdDateTime older than 4 hours, then call UpdateApproval with status 'Denied' for each

### AI Agent Compliance Assistant

An AI agent acting on behalf of a compliance officer can fetch Lockbox requests through Jentic by intent ('list customer lockbox requests'), summarise them in natural language, and execute UpdateApproval based on a verified human decision. Jentic handles the AAD bearer token so the agent never holds an Azure secret directly.

Example prompt: Search Jentic for 'list customer lockbox requests', execute Requests_List on /subscriptions/{id}, summarise each pending request, and on confirmation call Requests_UpdateStatus with the decided approval status

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.CustomerLockbox/requests | List Customer Lockbox requests on a subscription |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.CustomerLockbox/requests/{requestId} | Get a specific Lockbox request |
| POST | /subscriptions/{subscriptionId}/providers/Microsoft.CustomerLockbox/requests/{requestId}/UpdateApproval | Approve or deny a Lockbox request |
| GET | /providers/Microsoft.CustomerLockbox/operations | List available Microsoft.CustomerLockbox operations |

## Key resources

- **Requests** — List, retrieve, and update approval status of Customer Lockbox requests on a subscription
- **Operations** — List Microsoft.CustomerLockbox provider operations available to the caller

## Why Jentic

- **Setup:** Wiring Customer Lockbox by hand means an Azure AD app registration for the OAuth implicit flow against management.azure.com, a Customer Lockbox Approver or Owner RBAC role on the subscription, and polling the requests list for pending items yourself. Through Jentic you install once, import Customer Lockbox from the API Directory, store the Azure AD credential once, and your agent calls it.
- **Permission scoping:** The subscription and request id travel in the URL path (/subscriptions/{subscriptionId}/providers/Microsoft.CustomerLockbox/requests/{requestId}), so a rule can pin the agent to one subscription's Lockbox requests. You choose the operations it may call, so the approve-or-deny UpdateApproval action is not included unless you add it, leaving the agent read-only otherwise.
- **Credential handling:** Your Azure service principal credentials are stored once, encrypted, by your own Jentic One instance and injected as a scoped ARM bearer token at execution time, with the Customer Lockbox Approver role enforced on the underlying identity. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list pending Customer Lockbox requests' or 'approve a Lockbox request', and Jentic returns the matching Requests operation with its input schema so the agent calls the right endpoint without learning the Microsoft.CustomerLockbox path shape.

## Related APIs

- **Authorization Management** — Manage RBAC role assignments that determine who can approve Lockbox requests.
- **Policy Client** — Define Azure Policy rules that complement Lockbox approvals for full data-access governance.
- **Key Vault Management** — Control secret-level access via Key Vault access policies rather than Lockbox subscription-wide approvals.

## FAQ

### Why is there no official OpenAPI spec for Customer Lockbox?

Microsoft Azure does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Customer Lockbox via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Customer Lockbox API use?

It uses Azure Active Directory OAuth 2.0 against https://management.azure.com/ with the user_impersonation scope. The caller must hold an RBAC role with Microsoft.CustomerLockbox/requests/* permissions on the subscription, typically Owner or Customer Lockbox Approver. Jentic stores the service principal in its encrypted vault and issues short-lived bearer tokens to agents.

### Can I approve or deny a Lockbox request through this API?

Yes. POST to /subscriptions/{id}/providers/Microsoft.CustomerLockbox/requests/{requestId}/UpdateApproval with a body containing status ('Approved' or 'Denied') and a reason. The API returns the updated request record.

### What are the rate limits for the Customer Lockbox API?

Azure Resource Manager applies subscription-level read and write throttling (around 1,200 requests per hour for reads and writes). Lockbox requests are low-volume by design, so practical throttling is rare in normal compliance workflows.

### How do I auto-approve Lockbox requests through Jentic?

Run pip install jentic and search for 'approve customer lockbox request'. Jentic returns the Requests_UpdateStatus operation; load its schema and execute it with the subscriptionId, requestId, and a body of { status: 'Approved', reason: '...' }. Pair with Requests_List to identify pending requests first.

### Does this API let me create or trigger a Lockbox request?

No. Lockbox requests are initiated by Microsoft support engineers during an active support case. This API only lets you list, inspect, and respond to those requests - it does not create them.

### Can I limit what my agent is allowed to do with the Customer Lockbox API?

Yes. Because you run Jentic One yourself, your own rules decide which Customer Lockbox operations and credentials the agent may use. You can keep the agent read-only by granting only the list and get operations for requests, so the approve-or-deny UpdateApproval action is excluded unless you add it. Since the subscription and request id travel in the URL path, you can also pin the agent to a single subscription's Lockbox requests.
