Authentication proves the client is allowed to request access. Authorization determines which tools or resources that client can reach once the session is established. In MCP, the dangerous mistake is to treat successful login as sufficient. Identity teams need both a verified client and a tightly scoped permission model.
Why This Matters for Security Teams
With MCP, the risky assumption is that a valid login means safe tool access. Authentication only answers whether the client is who it claims to be; authorization answers what that client may do once connected. That distinction matters because MCP servers often expose high-value actions, data retrieval, and write operations through a small number of tools. If those permissions are too broad, a compromised client can move from “approved session” to uncontrolled access very quickly.
NHIMG research in The State of MCP Server Security 2025 found that only 18% of MCP server deployments implement any form of access scoping for tool permissions, which shows how often authentication is treated as the finish line. That gap is also visible in agentic guidance from OWASP Agentic AI Top 10, where over-privileged execution paths remain a recurring failure mode. In practice, many security teams discover this only after a client has already reached the wrong tool, rather than through intentional design review.
How It Works in Practice
Authentication and authorization should be split into two separate decisions. First, the MCP client establishes identity through the agreed protocol, such as OAuth-backed login or another verified identity exchange. That step proves the client is legitimate enough to start a session. Second, every tool request should be checked against a permission model that answers whether the specific action is allowed for that client, in that context, at that moment.
This is where implementation discipline matters. A strong design usually includes:
- Client authentication before any tool invocation, so unknown callers never reach the capability layer.
- Per-tool authorization, not blanket session approval, because some tools read data while others modify systems.
- Context-aware checks that consider tenant, environment, workflow, data sensitivity, and time of request.
- Short-lived tokens or scoped grants, so a session cannot silently expand beyond its intended purpose.
- Central policy evaluation, ideally with policy-as-code, so access rules can be reviewed and changed without redeploying the server.
This aligns with the broader identity principle described in Ultimate Guide to NHIs: identity is only useful when it is tied to bounded permission, not just recognition. For tool governance, current guidance suggests pairing strong authentication with explicit authorization checks at the tool boundary, rather than assuming the session itself is trustworthy. Standards such as NIST SP 800-53 Rev 5 Security and Privacy Controls support this split through least privilege, access enforcement, and session control concepts. These controls tend to break down when MCP servers are built as fast-moving internal integrations with shared service accounts and no per-tool policy layer, because authentication is then mistaken for authorization by default.
Common Variations and Edge Cases
Tighter tool authorization often increases operational overhead, requiring teams to balance safer access against developer velocity and integration complexity. That tradeoff is real, especially in environments where one MCP client must reach many services or where tool permissions change frequently.
There is no universal standard for MCP authorization yet, so implementations vary. Some teams map client identity to coarse roles, while others enforce fine-grained, request-time decisions for each tool. Best practice is evolving toward the latter, especially for sensitive tools that can access secrets, production systems, or customer data. The presence of Gemini CLI Breach – Silent Code Execution underscores why a trusted client can still become dangerous if the downstream capability boundary is weak. The practical question is not whether the client passed login, but whether that specific call should be allowed right now.
Edge cases include delegated access, shared MCP gateways, and multi-tenant servers. In those settings, the authorization layer must distinguish the original client, the user behind it, and the target resource. If that separation is missing, privilege can leak across tenants or workflows even when authentication is technically correct.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10, OWASP Agentic AI Top 10 and CSA MAESTRO address the attack and risk surface, while NIST AI RMF and NIST CSF 2.0 set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Non-Human Identity Top 10 | NHI-01 | Separates identity verification from permission scope for non-human clients. |
| OWASP Agentic AI Top 10 | A1 | Agentic systems need request-time control over what an authenticated actor may do. |
| CSA MAESTRO | MA-02 | MAESTRO addresses scoped access and governance for autonomous tool-using systems. |
| NIST AI RMF | AI RMF governance supports accountability and controlled access decisions for AI systems. | |
| NIST CSF 2.0 | PR.AC-4 | Access permissions must be managed separately from identity proofing. |
Establish governance that reviews who can act, what they can reach, and under which context.
Related resources from NHI Mgmt Group
- What is the difference between authenticating an API client and authorising it?
- What is the difference between managed identities and hardcoded secrets for AI agents?
- What is the difference between human identity governance and AI agent governance?
- What is the difference between workload identity and API keys for AI agents?