fix: resolve OAuth compatibility issues for login-flow deployment

- Drop OIDC fork: comment out third_party/oidc mount, use upstream
  v1.16.3 from app store (fixes consent redirect race, PR #631)
- Support client_secret_basic auth: add _extract_basic_auth() helper
  so TS MCP SDK can authenticate at token endpoint (RFC 6749 §2.3.1)
- Multi-issuer JWT validation: accept tokens with internal Docker
  issuer (http://app:80) or public URL (NEXTCLOUD_PUBLIC_ISSUER_URL)
  since AS proxy obtains tokens server-to-server
- Introspection fallback: try token introspection when JWT verification
  fails, supporting both JWT and opaque token types
- Register all tool scopes in DCR: add semantic:read, collectives:read,
  collectives:write to OIDC client allowed_scopes so tokens include
  them and semantic search tools are visible to authenticated clients
- Auto-create Astrolabe OAuth client: new app-hook creates OIDC client
  and stores credentials in config.php so the "Authorize via OAuth"
  button works without manual setup

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Chris Coutinho
2026-03-29 15:05:26 +02:00
co-authored by Claude Opus 4.6
parent 3cf4c777ed
commit fe8799a133
7 changed files with 151 additions and 24 deletions
+8 -6
View File
@@ -120,12 +120,14 @@ jobs:
npm ci
npm run build
- name: Build OIDC app
run: |
cd third_party/oidc
composer install --no-dev --optimize-autoloader
npm ci
npm run build
# OIDC app is now installed from the Nextcloud app store via app-hook
# (third_party/oidc fork no longer mounted — upstream v1.16.3 fixes PR #631)
# - name: Build OIDC app
# run: |
# cd third_party/oidc
# composer install --no-dev --optimize-autoloader
# npm ci
# npm run build
# Start services with the appropriate profile
- name: Run docker compose