GitHub Automates SSO Authorization for PATs and SSH Keys: A Proxy Operations Audit

A woven authorization hub distributes protected credential paths across an Internet repository network

GitHub announced on September 16, 2026 that GitHub Enterprise Cloud administrators can automate SSO authorization for existing classic personal access tokens and SSH keys across multiple organizations. An enterprise can opt in to credential delegation through an enterprise-installed GitHub App that has the enterprise_credentials:write permission.

The new API can authorize one classic PAT or SSH key for as many as 50 organizations in a request. GitHub says the request identifies the credential by a non-secret token ID or SSH key fingerprint, so the GitHub App does not receive the credential secret. Before granting access, GitHub verifies that the target organizations belong to the enterprise, the credential owner belongs to each organization, and enterprise-level SSO is in use. Existing active authorizations are skipped.

For teams operating proxy test harnesses, data-collection pipelines or regional monitoring repositories, the benefit is faster credential rotation across many organizations. The risk is that automation can make a broad authorization mistake repeatable. Treat the new capability as a privileged control plane, not as a reason to keep long-lived credentials.

Public source note: GitHub, “Automate SSO authorization for classic PATs and SSH keys,” September 16, 2026.

What changed—and what did not

Previously, developers or administrators often authorized a classic PAT or SSH key one organization at a time. That friction could discourage frequent rotation. The new delegated path lets an approved GitHub App perform bulk authorization after the enterprise enables the setting.

The release does not create a token, reveal its secret or remove normal repository permissions. SSO authorization and repository access are different gates. A credential still needs the underlying account and repository permissions, and a proxy network path must still complete DNS, TCP, proxy authentication, TLS and Git or API operations.

Do not label every post-rollout failure as an SSO problem. A 407 points to proxy authentication, a TLS failure belongs to transport validation, and a 403 from the application needs permission and policy context.

Why proxy automation teams should care

Proxy operations commonly span separate repositories for SDKs, browser checks, regional test fixtures, compliance rules and incident tooling. Enterprises may also isolate production, staging and research organizations. Bulk authorization can shorten a rotation window, but it can also grant an automation credential to more organizations than its owner or workflow needs.

Before adoption, inventory:

  • every service account that owns a classic PAT or SSH key;
  • the repositories and organizations each workload actually needs;
  • the proxy route and egress policy used by the automation;
  • the GitHub App installation and permission owner;
  • the credential's token ID or SSH fingerprint, never its secret;
  • rotation, expiry, revocation and incident-response owners;
  • evidence that the workload fails closed when authorization is missing.

Use the proxy credential rotation guide to separate application credentials from proxy credentials and rotate them on independent schedules.

Apply a least-privilege delegation design

Create an explicit allowlist that maps one workload identity to approved organizations. Do not use “all organizations” merely because the API accepts a large batch. Split production and non-production credentials, and avoid sharing a developer's personal token with unattended automation.

The delegating GitHub App has a powerful enterprise permission. Restrict who can install, configure and invoke it. Record request initiator, credential identifier, target organization list, result per organization, timestamp and change ticket. Never place token values, SSH private keys, proxy passwords or session cookies in logs.

Review the GitHub Advanced Security enforcement audit so repository-level administrators cannot silently weaken controls around sensitive automation code.

Test rotation without creating a bypass

Use a staged rehearsal:

  1. Select a non-production credential and two test organizations.
  2. Record the current authorizations by non-secret identifier.
  3. Rotate the PAT or SSH key through the normal credential process.
  4. Invoke delegated authorization only for the approved organization set.
  5. Test an allowed repository operation through the intended proxy route.
  6. Test a denied organization and confirm failure.
  7. Revoke the old credential and confirm it cannot authenticate.
  8. Verify that direct networking is not used as a fallback.
  9. Compare application audit logs, GitHub App activity and proxy connection evidence.

A successful clone is not enough. Include API reads, package or release access, submodules and reusable workflows that the workload genuinely uses. Do not expand permissions just to make an unrelated test pass.

The proxy credential encoding validation helps diagnose special-character and serialization failures without exposing secrets.

Protect pull-request and workflow boundaries

Automation repositories can receive untrusted changes. A pull request should never be able to invoke the delegation API, select arbitrary organizations, read a classic PAT or access an SSH private key. Keep delegation in a protected workflow with reviewed inputs, restricted environments and independent approval where the risk warrants it.

Scan commits, workflow logs and generated artifacts for accidental credentials. The GitHub pull-request secret-blocking guide provides a fail-closed review pattern for proxy usernames, passwords and tokens.

Acceptance checklist

  • Enterprise credential delegation is explicitly enabled and owned.
  • The GitHub App has only required enterprise permissions.
  • Each workload has an organization allowlist.
  • Production and non-production credentials are separate.
  • Authorization uses only a token ID or SSH fingerprint, never a secret.
  • Membership, enterprise ownership and SSO prerequisites are verified.
  • Existing authorization skips are visible in audit evidence.
  • Rotation revokes the previous credential after validation.
  • A denied organization fails closed.
  • The intended proxy path is proven; direct fallback is disabled.
  • Pull requests cannot invoke delegation or change the target list.
  • Logs exclude tokens, private keys, proxy passwords and cookies.
  • Global, North America, Europe and APAC operations follow the same control standard.

FAQ

Does the GitHub App receive the classic PAT or SSH private key?

GitHub says the new API identifies the credential with a non-secret token ID or SSH key fingerprint, so the credential secret is not passed to the App.

Does SSO authorization grant repository permission?

No. It authorizes the credential for the SSO-protected organization. The credential owner and repository permissions still determine accessible resources.

Can one request authorize every organization?

The API supports up to 50 organizations in one request, but operational policy should authorize only the organizations required by the workload.

Should this preserve long-lived classic PATs?

No. The feature can reduce rotation friction, but teams should still prefer short-lived and narrowly scoped credentials where supported.

Compliance note

Use credential delegation only for enterprise accounts, organizations and repositories you are authorized to administer. Maintain change approval, audit retention, least privilege and revocation procedures. Do not use delegated credentials or proxy routing to evade access controls, rate limits, service terms or regional requirements.