Automation path
- Developer
- GitHub Actions
- zekt-action
- Zekt
Works today. GitHub identity establishes the caller context.
Zekt Gate is the trusted identity boundary between your Microsoft Entra tenant and the Zekt orchestration platform. Your developers authenticate the way they already do — no GitHub identity required at the API edge.
is a premium add-on to
. The core
experience stays GitHub-native.
Zekt authorizes through GitHub. Enterprise developer portals authorize through the corporate directory. Something has to reconcile the two — without either side giving up its identity model.
Works today. GitHub identity establishes the caller context.
A vaguely associated personal GitHub identity is not an enterprise identity boundary.
A validated, attributable request enters the same Zekt service model.
An enterprise application presents an Entra access token. Zekt Gate establishes that the token can be trusted, resolves which Zekt customer it belongs to, and forwards a contextualized request to the existing Zekt APIs.
Establish that the presented identity can be trusted.
Zekt Gate is an ingress and trust layer. Zekt remains the source of truth for every domain behaviour behind it.
Zekt Gate is a premium add-on to Zekt. It is not the kind you switch on from inside it.
Zekt Gate stands between a customer's identity provider and Zekt. Sharing Zekt Core's runtime would put the check and the thing being checked on the same side of the line.
Enterprise ingress is the exposed surface. Keeping it decoupled means a failure there stays there, rather than widening into orchestration or provider workflows.
Gate validates an Entra identity and translates it into a Zekt request context — for Zekt requests and nothing else. It issues no identity of its own and holds no domain logic.
The questions a security reviewer asks before a developer portal is allowed to reach GitHub workflow orchestration with corporate identity.
Customer context is derived from the validated token. A token from one tenant cannot reach another customer by changing a URL segment or a body field.
Signing key rotation in your directory is normal identity-provider behaviour. It requires no action from you and causes no outage here.
Enrollment validates tokens rather than requesting broad directory access. Zekt Gate does not ask to manage your Entra environment.
Delegated user access and service-principal access are distinguished explicitly, and carry different permission models.
The audit record names the enterprise, the tenant, the user, the client application and the orchestration — not merely that a gateway called Zekt.
Every call carries the identity dimensions Zekt bills and audits against, so consumption is attributable to a customer at the point it happens. There is no second billing system to reconcile.
Enrollment establishes which Entra tenant is trusted for which Zekt customer. Each door is held by a different person, so you only need to recognise your own.
PreviewInterface preview with placeholder data. No account, token or directory is connected.
Waiting on your identity administratorYour request is with the person who can approve Zekt Gate in your Entra tenant. Anyone who administers this Zekt customer can pick it up — and the request does have a deadline, so it is worth chasing.
Whoever owns the Zekt relationship
GitHub, via Zekt Core
What this establishesEstablish who you are without Zekt Gate ever handling one of your credentials.
Why Zekt Gate needs itGate delegates and never forwards. It has no password store and no sign-in of its own, so there is exactly one place a Zekt identity can be established — and one place it can be revoked. What comes back to Gate is an assertion of who you are and which Zekt customers you may administer, never a credential.
What this establishesFix which organisation this enrollment belongs to, and confirm you may act for it.
Why Zekt Gate needs itA GitHub login identifies a person; a Zekt customer is an organisation, and one person may administer several. Selecting is not enough — Zekt must assert the authority, because a read-only member must not be able to bind their employer’s directory to a billing relationship. Gate re-checks that authority immediately before it acts, rather than trusting what was true at sign-in.
What this establishesHave the organisation commit before anyone spends their identity administrator’s goodwill.
Why Zekt Gate needs itThe order is deliberate. Connecting a directory carries a recurring charge, and the person who approves it is usually in another team — so the commitment is made by the person who can make it, before a colleague is asked for a favour. Zekt owns the terms and the billing; Gate renders what Zekt sends and holds no price of its own.
Your Entra Global Administrator
Microsoft Entra ID
What this establishesRecord which directory you are claiming, so Gate can prepare the exact request your administrator approves.
Why Zekt Gate needs itA tenant identifier typed into a form proves nothing — anyone can type anyone’s. Naming one is a claim: it reserves nothing, grants nothing, and stays inert until an administrator of that directory proves it. That is also what stops a claim being used to block somebody else’s directory.
00000000-0000-0000-0000-000000000000Where to get itIn the Microsoft Entra admin centre it is shown as Tenant ID on the directory’s overview page. A domain name such as contoso.com is not the same thing. Your identity administrator can read it in seconds if you do not have access yourself.What it commits you toThis is the directory whose sign-ins Zekt will trust for this account, and a directory serves at most one Zekt customer. If you name a different one later, the approval link you already sent stops working and your administrator has to be sent the new one.What this establishesTurn the claim into proof, by the one act that only an administrator of that directory can perform.
Why Zekt Gate needs itThere is no DNS record to publish, no directory query to run and no support ticket to raise: the consent is the proof. Direction is what makes it safe — your directory gains permission to issue tokens naming Zekt Gate, and Gate gains no standing inside your directory. The screen lists two permissions: connecting the directory to Zekt Gate, and “Sign in and read user profile”, which Microsoft requires for any sign-in and which covers the person signing in and nobody else. No reading other users, no groups, no application permissions.
What this establishesConvert the approval into something Gate can check cryptographically rather than take on trust.
Why Zekt Gate needs itYour administrator returns to Gate and signs in with their own directory account. The tenant identifier inside that Microsoft-signed token is the fact the claim was waiting for — it requires no permission of any kind, and it is the moment the mapping stops being inert.
Your developer-portal team
Gate portal, under customer authority
What this establishesName which of your applications may present a token to Zekt.
Why Zekt Gate needs itA trusted directory is not an authorised one. Without this list, anyone at your company who can obtain a token for Zekt Gate can call Zekt — which is most of your company. Gate checks the calling application on every request and refuses one that is not listed, whatever else the token proves.
00000000-0000-0000-0000-000000000000Where to get itIn the Microsoft Entra admin centre under App registrations, on your own application’s overview page. For most customers the first one is their developer portal.What it commits you toThis is the ID of your application — the one that asks. It is not the record of Zekt Gate that consent created in your directory; those are two different objects and they are confused constantly. Until at least one application is registered, every call is refused.What this establishesDecide what each caller may do in Zekt terms, from what your directory says about them.
Why Zekt Gate needs itEntra hands over roles and scopes in your vocabulary; Zekt permissions are Zekt’s. Gate maps one to the other so you do not have to design a permission model — and Gate’s answer and Zekt’s must both be yes. Where either is unsure, the request is denied.
What this establishesLimit which of your Zekt organisations a directory or an application is allowed to act on.
Why Zekt Gate needs itWho is calling and what they are acting on are different questions, and collapsing them is how one division provisions into another division’s estate. A retail developer portal with a valid token and a legitimate Zekt customer still should not be able to target the platform organisation. Every layer can only subtract: where a directory limit and an application limit both apply, a request must satisfy both, and Zekt’s own answer applies on top of that.
What this establishesFinish on evidence rather than on configuration having been saved.
Why Zekt Gate needs itOnboarding is not complete when settings are stored — it is complete when a real token from your directory has produced a real Zekt result. When it does not, Gate shows the chain it checked and where it broke, rather than an unexplained 401. Nearly every enterprise integration failure of this kind is an audience, a scope or a consent mistake, and from the outside all three look identical.
Consent lets your directory issue tokens for Zekt Gate. It gives Zekt Gate no standing inside your directory.
The step-by-step setup guide shows each screen your administrator will see, and how to find or remove Zekt Gate afterwards.
The Door 3 test call renders exactly this — established from the validated token, never from the request body or URL.
The API is shaped around Zekt domain concepts, not around Gate's internals.
POST /v1/orchestrations
Authorization: Bearer <entra-access-token>
Content-Type: application/json
{
"services": [
{
"name": "vm.provision",
"version": "3",
"parameters": {
"environment": "production",
"size": "large"
}
}
]
}