fix(auth): Skip issuer validation for management API tokens
Fixes NC PHP app (Astrolabe) OAuth integration by making token validation more lenient for management API access. Problem: - Astrolabe calls Nextcloud OIDC token endpoint via internal URL (http://localhost) - Tokens are issued with iss: http://localhost (internal) - MCP server expects iss: http://localhost:8080 (external) - Token validation failed with "Invalid issuer" Solution: - Add skip_issuer_check parameter to _verify_jwt_signature() - verify_token_for_management_api() now skips both audience and issuer checks - Security maintained: signature still verified, authorization checked by API Also includes related fixes from previous session: - Update test selectors for Vue 3 UI ("Enable Semantic Search") - Fix OIDC discovery URL transformation in OAuthController.php - Add overwrite.cli.url to setup hook for proper external URLs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.5
parent
5e2ef5f35b
commit
804480836e
@@ -4,7 +4,8 @@ set -euox pipefail
|
||||
|
||||
php /var/www/html/occ config:system:set trusted_domains 2 --value=host.docker.internal
|
||||
|
||||
# Do NOT set overwritehost/overwrite.cli.url - let Nextcloud use the request's Host header
|
||||
# This allows:
|
||||
# - Browser requests to localhost:8080 → returns localhost:8080 URLs
|
||||
# - Container requests to app:80 → returns app:80 URLs (for DCR, token exchange, etc.)
|
||||
# Set overwrite.cli.url to the external URL for OIDC discovery
|
||||
# This ensures OAuth flows redirect to the correct external URL
|
||||
# Important: The Astrolabe OAuth controller makes internal HTTP requests to /.well-known/openid-configuration
|
||||
# which needs to return URLs reachable by external browsers (localhost:8080, not localhost:80)
|
||||
php /var/www/html/occ config:system:set overwrite.cli.url --value="http://localhost:8080"
|
||||
|
||||
Reference in New Issue
Block a user