A common misconception is that a service can simply present a static client secret to Entra and automatically inherit the same level of security as a human user. In reality, using a non-human identity without proper controls leaves the connection wide open, exposing credentials to anyone who can read the code or the environment. Teams often embed the secret directly into deployment scripts, give the service perpetual rights, and never record what the service actually does once it talks to Entra.
That pattern creates three hidden risks. First, the credential becomes a single point of failure; if an attacker extracts it, they gain unrestricted access. Second, the service runs with standing privileges, meaning it can perform any operation at any time, even after the business need has passed. Third, there is no audit trail that shows which service performed which action, making compliance and forensics impossible.
Organizations recognize that a non-human identity should be scoped, temporary, and observable. The ideal workflow is to issue a token that represents the service, let the token be validated at the moment of access, and then enforce policies such as just‑in‑time approval, command‑level masking, and session recording. Unfortunately, Entra alone does not provide a place to insert those runtime checks. The request still travels straight from the MCP server to Entra, bypassing any gate that could enforce the needed controls.
Why a non-human identity needs a gateway
Even with OIDC or SAML tokens issued by Entra, the enforcement point must sit on the data path between the token‑bearing service and the Entra endpoint. Without that middle layer, the token is merely an authentication artifact; it does not trigger any additional safeguards. The service can still call Entra APIs with full privileges, and the organization loses visibility into the exact operations performed.
Placing a gateway in the path solves the problem. The gateway validates the token, checks group membership, and then applies policy before the request reaches Entra. Because the gateway sits in the data path, it can block disallowed commands, require a human approver for risky actions, mask sensitive fields in responses, and capture a complete session log for later replay.
How hoop.dev enforces control for Entra
hoop.dev acts as an OIDC relying party. When an MCP server presents its non‑human identity token, hoop.dev verifies the token against Entra, extracts the identity claims, and decides whether the request may proceed. The gateway then proxies the connection to Entra, inserting guardrails at the protocol level. Every request is subject to the same set of policies, regardless of which service initiated it.
