photoprism/dummy-oidcDummy OpenID Connect Server 是一个轻量级的模拟OpenID Connect (OIDC)服务器,旨在简化开发和测试过程。该镜像无需依赖真实的认证服务,即可提供符合OIDC标准的认证流程模拟,帮助开发者快速验证应用程序的OIDC集成功能,降低开发环境配置复杂度。
/.well-known/openid-configuration、/authorize、/token等)通过以下命令快速启动模拟OIDC服务器:
bashdocker run -d -p 8080:8080 --name dummy-oidc-server \ -e PORT=8080 \ -e ISSUER_URL=http://localhost:8080 \ -e SUPPORTED_FLOWS=authorization_code,implicit \ dummy-oidc-server:latest
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
PORT | 服务器监听端口 | 8080 |
ISSUER_URL | OIDC发行者URL(必须与客户端配置一致) | http://localhost:8080 |
SUPPORTED_FLOWS | 支持的OIDC流程,逗号分隔(可选值:authorization_code/implicit/hybrid) | authorization_code |
USER_INFO | 模拟用户信息JSON字符串(如{"sub":"123","name":"Test User","email":"***"}) | {"sub":"1","name":"Default User"} |
JWT_SIGNING_KEY | JWT令牌签名密钥(HS256算法) | 自动生成随机密钥 |
ACCESS_TOKEN_EXPIRY | 访问令牌过期时间(秒) | 3600 |
ID_TOKEN_EXPIRY | ID令牌过期时间(秒) | 3600 |
yamlversion: '3' services: oidc-server: image: dummy-oidc-server:latest ports: - "8080:8080" environment: - PORT=8080 - ISSUER_URL=[***] # 容器间通信时使用服务名 - SUPPORTED_FLOWS=authorization_code,implicit,hybrid - USER_INFO={"sub":"user123","name":"Dev User","email":"***","roles":["admin","user"]} - JWT_SIGNING_KEY=test-signing-key-123 # 自定义签名密钥(测试环境使用) - ACCESS_TOKEN_EXPIRY=1800
启动后,可通过以下URL获取OIDC配置信息(.well-known端点):
http://localhost:8080/.well-known/openid-configuration
响应示例包含OIDC标准元数据,如授权端点、令牌端点、支持的算法等:
json{ "issuer": "http://localhost:8080", "authorization_endpoint": "http://localhost:8080/authorize", "token_endpoint": "http://localhost:8080/token", "userinfo_endpoint": "http://localhost:8080/userinfo", "supported_response_types": ["code", "token", "id_token"], "supported_grant_types": ["authorization_code", "implicit"] }
发起授权请求:客户端重定向到授权端点,携带必要参数
http://localhost:8080/authorize? client_id=test-client& response_type=code& redirect_uri=http://localhost:3000/callback& scope=openid+profile+email& state=abc123
获取授权码:服务器直接返回授权码(无需用户交互,模拟自动通过认证),重定向到客户端回调URL
http://localhost:3000/callback?code=mock-code-123&state=abc123
交换令牌:客户端使用授权码调用令牌端点获取令牌
bashcurl -X POST http://localhost:8080/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=authorization_code&code=mock-code-123&redirect_uri=http://localhost:3000/callback&client_id=test-client"
获取用户信息:使用访问令牌调用用户信息端点
bashcurl http://localhost:8080/userinfo \ -H "Authorization: Bearer <access_token>"
/app/config.json)扩展功能(具体路径以镜像实际支持为准)

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务