docs: update authentication and API proxy guidance - #6889
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 01b67b6c-fcd9-4c60-8409-827495c49557
There was a problem hiding this comment.
Pull request overview
Updates authentication documentation to reflect the always-on, five-provider API proxy and current credential flows.
Changes:
- Expands provider and OIDC authentication guidance.
- Documents credential placeholders and known AWS/Anthropic limitations.
- Updates CLI examples and provider configuration references.
Show a summary per file
| File | Description |
|---|---|
docs/authentication-architecture.md |
Updates architecture, providers, and OIDC behavior. |
docs/auth-matrix.md |
Expands the provider authentication matrix. |
docs/api-proxy-sidecar.md |
Revises setup, configuration, and OIDC examples. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Suppressed comments (3)
docs/api-proxy-sidecar.md:800
- As in the Azure example, preserving
ACTIONS_ID_TOKEN_REQUEST_*causespassthroughHostEnvironment()to copy the OIDC request capability into the agent (src/services/agent-environment/env-passthrough.ts:36-65). That conflicts with this guide's credential-isolation model. Isolate these variables from the agent or clearly disclose that the agent currently receives them.
sudo --preserve-env=AWF_AUTH_TYPE,AWF_AUTH_PROVIDER,AWF_AUTH_GCP_WORKLOAD_IDENTITY_PROVIDER,AWF_AUTH_GCP_SERVICE_ACCOUNT,OPENAI_API_TARGET,OPENAI_API_BASE_PATH,ACTIONS_ID_TOKEN_REQUEST_URL,ACTIONS_ID_TOKEN_REQUEST_TOKEN \
docs/api-proxy-sidecar.md:801
- The GCP exchange can initialize in the sidecar, but this command still does not route the agent through the OpenAI adapter.
buildOpenAiCredentialEnv()only addsOPENAI_BASE_URLwhenopenaiApiKeyexists (src/services/credentials/openai-credential-env.ts:20-31); OIDC configuration alone leaves the agent env unchanged. Please implement OIDC-triggered OpenAI routing before documenting this invocation as functional.
awf --openai-api-target aiplatform.googleapis.com \
docs/api-proxy-sidecar.md:856
- This third OIDC example has the same credential-isolation conflict: preserving
ACTIONS_ID_TOKEN_REQUEST_*makes the current agent environment builder forward both values to agent code. Since those values authorize minting a GitHub OIDC JWT, they are not merely harmless routing metadata. Exclude them from the agent or document the exposure.
sudo --preserve-env=AWF_AUTH_TYPE,AWF_AUTH_PROVIDER,AWF_AUTH_ANTHROPIC_FEDERATION_RULE_ID,AWF_AUTH_ANTHROPIC_ORGANIZATION_ID,AWF_AUTH_ANTHROPIC_SERVICE_ACCOUNT_ID,AWF_AUTH_ANTHROPIC_WORKSPACE_ID,ACTIONS_ID_TOKEN_REQUEST_URL,ACTIONS_ID_TOKEN_REQUEST_TOKEN \
- Files reviewed: 3/3 changed files
- Comments generated: 5
- Review effort level: Balanced
* fix: add Anthropic WIF beta headers Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1bc91d4c-0fdf-40ff-94e6-250d18f08563 * fix: apply WIF beta headers unconditionally in _exchangeForAnthropicToken --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Copilot-Session: 1bc91d4c-0fdf-40ff-94e6-250d18f08563
|
✅ Copilot review passed with no inline comments. @lpcox Add the |
✅ Coverage Check PassedOverall Coverage
📁 Per-file Coverage Changes (1 files)
Coverage comparison generated by |
* feat: sign AWS Bedrock requests with SigV4 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 60f8a12a-5b5b-41d6-8cce-35c71f8c2ac5 * fix: reframe rewritten fallback requests Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 60f8a12a-5b5b-41d6-8cce-35c71f8c2ac5 --------- Copilot-Session: 60f8a12a-5b5b-41d6-8cce-35c71f8c2ac5
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 01b67b6c-fcd9-4c60-8409-827495c49557
* fix: isolate Actions OIDC from agent Keep GitHub Actions OIDC request credentials in the API proxy sidecar. Prevent default, env-all, env-file, and explicit environment paths from exposing them to untrusted agent code. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 01b67b6c-fcd9-4c60-8409-827495c49557 * docs: clarify OIDC agent credential boundary * docs: align OIDC isolation with MCP gateway Describe the runner-owned gateway flow generated by gh-aw and add direct regression coverage for env-file credential exclusion. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 01b67b6c-fcd9-4c60-8409-827495c49557 --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Copilot-Session: 01b67b6c-fcd9-4c60-8409-827495c49557
|
✅ Smoke Copilot BYOK AOAI (Entra) completed. Copilot AOAI BYOK (Entra) mode operational. 🔓 |
|
📰 VERDICT: Smoke Docker Sbx has concluded. All systems operational. This is a developing story. 🎤 |
|
📡 Smoke OTel Tracing completed. All tracing scenarios validated. ✅ |
|
✅ Smoke Copilot BYOK completed. Copilot BYOK mode operational. 🔓 |
|
🛡️ Smoke Copilot Network Isolation confirmed the egress allowlist is enforced. ✅ |
|
❌ Contribution Check failed. Please review the logs for details. |
|
✅ Smoke Claude passed |
|
❌ Security Guard failed. Please review the logs for details. |
|
🔌 Smoke Services — All services reachable! ✅ |
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
✅ Smoke Gemini completed. All facets verified. 💎 |
|
✅ Smoke Copilot BYOK AOAI (api-key) completed. Copilot AOAI BYOK (api-key) mode operational. 🔓 |
|
Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded. |
|
✅ Build Test Suite completed successfully! |
|
EGRESS_RESULT allow=pass deny=pass ✅ allowed domain (github.com) reachable: Overall status: PASS cc @lpcox Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
To allow these domains, add them to the network:
allowed:
- defaults
- "example.com"See Network Configuration for more information.
|
|
Smoke Test: Copilot BYOK (Direct Mode) — PASS
Running in direct BYOK mode via
|
Smoke Test: Claude Engine Validation
Overall result: PASS
|
|
Smoke Test: Copilot Engine Validation
Overall: PASS cc @lpcox
|
Smoke Test Results
Overall Status: FAIL
|
|
Smoke Test: GitHub Actions Services Connectivity
Overall: FAIL —
|
|
Merged PRs:
Checks:
Overall: PASS Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
To allow these domains, add them to the network:
allowed:
- defaults
- "registry.npmjs.org"See Network Configuration for more information.
|
|
fix: isolate Actions OIDC from agent container ✅
|
Smoke Test: OTel Tracing — All Scenarios Passed ✅
Overall: PASS — no failures detected.
|
|
Smoke Test Copilot BYOK (Direct)
Running in direct BYOK mode (COPILOT_PROVIDER_API_KEY + COPILOT_PROVIDER_BASE_URL) via api-proxy → Azure OpenAI (Foundry, o4-mini-aw) @lpcox Status: FAIL
|
Chroot Version Comparison Results
Overall: FAILED — Node.js version differs between host and chroot environments. The
|
🏗️ Build Test Suite Results
Overall: 8/8 ecosystems passed — PASS Notes:
|
|
Smoke Test: Docker Sbx — cc @lpcox
Overall: PASS
|
Resolve GHSA-rgw5-rvv9-x895 in the main package dependency tree. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 01b67b6c-fcd9-4c60-8409-827495c49557
Summary
Validation
git diff --checkpasses