密钥斗篷:找不到页面



我正在使用Key斗篷作为Directus的SSO。它们位于同一网络中。

version: '3'
services:
nginx:
image: nginx:latest
container_name: nginx
restart: unless-stopped
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
ports:
- 80:80
networks:
- directus_keycloak
depends_on:
- keycloak
- directus_service
postgres:
container_name: postgres
image: postgres:13.7-alpine
volumes:
- ./db:/var/lib/postgresql/data
networks:
- directus_keycloak
ports:
- ...
environment:
...
redis:
container_name: redis
image: redis:6
networks:
- directus_keycloak
directus_service:
container_name: directus_service
image: directus/directus:latest
ports:
- 8055:8055
volumes:
- ./uploads:/directus/uploads
- ./extensions:/directus/extensions
- ./snapshots:/directus/snapshots
networks:
- directus_keycloak
depends_on:
- redis
- postgres
- keycloak
env_file:
- ./.env
keycloak:
image: quay.io/keycloak/keycloak:legacy
environment:
DB_VENDOR: postgres
DB_ADDR: 'postgres'
DB_PORT: '5432'
DB_DATABASE: '...'
DB_USER: '...'
DB_PASSWORD: '...'
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: ...
PROXY_ADDRESS_FORWARDING: "true"
REDIRECT_SOCKET: "proxy-http"
KEYCLOAK_FRONTEND_URL: http://keycloak.localhost/auth
depends_on:
- postgres
networks:
- directus_keycloak
ports:
- "8080:8080"
networks:
directus_keycloak:
driver: bridge

我可以使用NGINX:访问Directus和Keycloft

http {
upstream keycloak_backend {
least_conn;
server keycloak:8080;
}
upstream directus_backend {
least_conn;
server directus_service:8055;
}
server {
listen 80;
server_name keycloak.localhost;
proxy_set_header X-Forwarded-For $proxy_protocol_addr; 
proxy_set_header X-Forwarded-Proto $scheme; 
proxy_set_header Host $host; 
location / {
proxy_pass http://keycloak_backend;
proxy_set_header   Host $host;
proxy_set_header   X-Real-IP $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header   X-Forwarded-Host $server_name;
}
}
server {
listen 80;
server_name api.localhost;
proxy_set_header X-Forwarded-For $proxy_protocol_addr;
proxy_set_header X-Forwarded-Proto $scheme; 
proxy_set_header Host $host; 
location / {
proxy_pass http://directus_backend;
proxy_set_header   Host $host;
proxy_set_header   X-Real-IP $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header   X-Forwarded-Host $server_name;
}
}
}

但是当我尝试登录到Directus管理面板使用Key斗篷作为提供程序时,我得到了我们很抱歉。。。找不到页面。

有.env文件太

KEY='..'
SECRET='...'
DB_CLIENT='pg'
DB_HOST='postgres'
DB_PORT='5432'
DB_DATABASE='...'
DB_USER='...'
DB_PASSWORD='...'
CACHE_ENABLED=false
CACHE_STORE='redis'
CACHE_REDIS='redis://redis:6379'
ADMIN_EMAIL='admin@example.com'
ADMIN_PASSWORD='...'
AUTH_PROVIDERS="keycloak"
AUTH_KEYCLOAK_DRIVER="openid"
AUTH_KEYCLOAK_CLIENT_ID="..."
AUTH_KEYCLOAK_CLIENT_SECRET="..."
AUTH_KEYCLOAK_ISSUER_URL="http://keycloak:8080/auth/realms/.../.well-known/openid-configuration"
AUTH_KEYCLOAK_PROFILE_URL="http://keycloak:8080/auth/realms/.../.well-known/openid-configuration"
AUTH_KEYCLOAK_ALLOW_PUBLIC_REGISTRATION="true"
AUTH_KEYCLOAK_IDENTIFIER_KEY="email"
AUTH_KEYCLOAK_SCOPE="openid email"

我建议应该有一些方法来设置重定向url在密钥斗篷接口。不过,我发现只有重定向url的设置验证。

有什么解决办法吗?

它是有效的。密钥斗篷领域内的客户端配置有问题,而不是以上的配置

最新更新