forked from baron/baron-sso
117 lines
3.4 KiB
JSON
Executable File
117 lines
3.4 KiB
JSON
Executable File
[
|
|
{
|
|
"id": "public-health",
|
|
"description": "공개 헬스체크 (TODO: 도메인 제한)",
|
|
"match": {
|
|
"url": "http://<.*>/health",
|
|
"methods": ["GET"]
|
|
},
|
|
"upstream": {
|
|
"url": "http://baron_backend:3000"
|
|
},
|
|
"authenticators": [{ "handler": "noop" }],
|
|
"authorizer": { "handler": "allow" },
|
|
"mutators": [{ "handler": "noop" }]
|
|
},
|
|
{
|
|
"id": "public-auth",
|
|
"description": "인증/회원가입 등 공개 엔드포인트",
|
|
"match": {
|
|
"url": "http://<.*>/api/v1/auth/<.*>",
|
|
"methods": ["GET", "POST", "OPTIONS"]
|
|
},
|
|
"upstream": {
|
|
"url": "http://baron_backend:3000"
|
|
},
|
|
"authenticators": [{ "handler": "noop" }],
|
|
"authorizer": { "handler": "allow" },
|
|
"mutators": [{ "handler": "noop" }]
|
|
},
|
|
{
|
|
"id": "backend-command",
|
|
"description": "Command 요청은 Backend로 전달 (Audit 강제)",
|
|
"match": {
|
|
"url": "http://<.*>/api/v1/<.*>",
|
|
"methods": ["POST", "PUT", "PATCH", "DELETE"]
|
|
},
|
|
"upstream": {
|
|
"url": "http://baron_backend:3000"
|
|
},
|
|
"authenticators": [{ "handler": "cookie_session" }],
|
|
"authorizer": { "handler": "remote_json" },
|
|
"mutators": [{ "handler": "noop" }]
|
|
},
|
|
{
|
|
"id": "backend-query",
|
|
"description": "Backend Query (admin/dev 포함)",
|
|
"match": {
|
|
"url": "http://<.*>/api/v1/<.*>",
|
|
"methods": ["GET"]
|
|
},
|
|
"upstream": {
|
|
"url": "http://baron_backend:3000"
|
|
},
|
|
"authenticators": [{ "handler": "cookie_session" }],
|
|
"authorizer": { "handler": "remote_json" },
|
|
"mutators": [{ "handler": "noop" }]
|
|
},
|
|
{
|
|
"id": "kratos-public",
|
|
"description": "Kratos Public API를 /kratos로 노출",
|
|
"match": {
|
|
"url": "http://<.*>/kratos/<.*>",
|
|
"methods": ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]
|
|
},
|
|
"upstream": {
|
|
"url": "http://kratos:4433",
|
|
"strip_path": "/kratos"
|
|
},
|
|
"authenticators": [{ "handler": "noop" }],
|
|
"authorizer": { "handler": "allow" },
|
|
"mutators": [{ "handler": "noop" }]
|
|
},
|
|
{
|
|
"id": "hydra-public",
|
|
"description": "Hydra Public API를 /hydra로 노출",
|
|
"match": {
|
|
"url": "http://<.*>/hydra/<.*>",
|
|
"methods": ["GET", "POST", "OPTIONS"]
|
|
},
|
|
"upstream": {
|
|
"url": "http://hydra:4444",
|
|
"strip_path": "/hydra"
|
|
},
|
|
"authenticators": [{ "handler": "noop" }],
|
|
"authorizer": { "handler": "allow" },
|
|
"mutators": [{ "handler": "noop" }]
|
|
},
|
|
{
|
|
"id": "rp-template-browser",
|
|
"description": "RP proxy (browser session). TODO: match.url/upstream.url을 실제 RP로 좁혀야 함.",
|
|
"match": {
|
|
"url": "http://<.*>/rp/<.*>",
|
|
"methods": ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]
|
|
},
|
|
"upstream": {
|
|
"url": "http://rp_upstream:8080"
|
|
},
|
|
"authenticators": [{ "handler": "cookie_session" }],
|
|
"authorizer": { "handler": "allow" },
|
|
"mutators": [{ "handler": "noop" }]
|
|
},
|
|
{
|
|
"id": "rp-template-bearer",
|
|
"description": "RP proxy (bearer). TODO: oauth2_introspection 또는 jwt 활성화 필요.",
|
|
"match": {
|
|
"url": "http://<.*>/rp-api/<.*>",
|
|
"methods": ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]
|
|
},
|
|
"upstream": {
|
|
"url": "http://rp_upstream:8080"
|
|
},
|
|
"authenticators": [{ "handler": "oauth2_introspection" }],
|
|
"authorizer": { "handler": "allow" },
|
|
"mutators": [{ "handler": "noop" }]
|
|
}
|
|
]
|