refactor: 문서 개선 중

This commit is contained in:
donghyeon-ka
2026-09-21 14:30:55 +09:00
parent c93cdea150
commit 805a18f486
1497 changed files with 525837 additions and 59152 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -8,16 +8,16 @@
"audience": [
"Edge 인증 프록시를 운영하는 엔지니어"
],
"summary": "서버 상태가 없어 replica 간 공유 문제가 생기지 않는다. 대신 secret 이 단수라 겹침 구간을 만들 수 없다.",
"summary": "cookie-only 모드는 공유할 server state가 없지만 Redis session store를 켜면 쿠키에는 ticket, 서버에는 session이 남는다. secret 회전은 ticket을 무효화해 Redis session을 고아로 만들 수 있고, refresh가 꺼져 있을 때 TTL로 생성 시각을 역산할 수 있다.",
"alt": "세션이 쿠키에 담기고 replica 는 같은 Secret 만 읽는 구성. Redis 저장소를 켜면 쿠키에 티켓만 남고 서버에 세션이 생긴다.",
"long_description": "oauth2-proxy 는 세션 전체 쿠키에 담고 replica 같은 k8s Secret 을 읽을 뿐이다. 공유할 서버 상태가 없으니 콜백이 다른 replica 로 가도 된다. 대신 --cookie-secret 이 단수라 옛 secret 도 당분간 받아준다가 불가능하고 교체하는 순간 모든 쿠키가 한꺼번에 무효가 된다. Redis 저장소를 켜면 쿠키에는 티켓만 남는데, 티켓 안에 세션 id 가 있으므로 secret 을 바꾸면 어느 Redis 키를 지울지도 모르게 된다.",
"long_description": "cookie-only 모드에서는 세션 전체 쿠키에 있어 replica 같은 secret만 읽으면 된다. Redis session store를 켜면 쿠키에는 ticket만 남고 실제 session은 Redis에 생긴다. secret을 바꾸면 ticket을 풀 수 없어 어느 Redis key를 지울지 알 수 없고 고아 session이 남는다. refresh:disabled에서는 TTL이 생성 시각의 함수라 회전 시각과 비교해 고아를 골라낼 수 있지만 --cookie-refresh를 켜면 이 역산은 성립하지 않는다.",
"source_context": {
"document": "docs/keycloak-session-store/final/document.md",
"document_sha256": "1d44cba1905544d92f1d26ae36a8deb64a3db3914d6b488fd30d6ae7f8cfbabe",
"document_sha256": "28aef96a2bbb94fbb10ade26a71238fee62a5a4d9fa6e7749ae98cfd0a65e560",
"anchor": {
"kind": "heading",
"value": "B-7 · B-7a — 쿠키에 담는 세션, 그리고 그 대가",
"line": 424
"line": 884
}
},
"composition": {
@@ -42,8 +42,8 @@
],
"evidence": [
{
"start_line": 419,
"end_line": 428
"start_line": 863,
"end_line": 867
}
],
"assumption": false
@@ -60,8 +60,8 @@
],
"evidence": [
{
"start_line": 429,
"end_line": 438
"start_line": 923,
"end_line": 932
}
],
"assumption": false
@@ -78,8 +78,8 @@
],
"evidence": [
{
"start_line": 429,
"end_line": 440
"start_line": 923,
"end_line": 932
}
],
"assumption": false
@@ -96,8 +96,8 @@
],
"evidence": [
{
"start_line": 441,
"end_line": 452
"start_line": 935,
"end_line": 946
}
],
"assumption": false
@@ -112,8 +112,8 @@
"kind": "write",
"evidence": [
{
"start_line": 419,
"end_line": 432
"start_line": 919,
"end_line": 925
}
],
"assumption": false
@@ -126,8 +126,8 @@
"kind": "read",
"evidence": [
{
"start_line": 429,
"end_line": 438
"start_line": 923,
"end_line": 932
}
],
"assumption": false
@@ -140,8 +140,8 @@
"kind": "read",
"evidence": [
{
"start_line": 441,
"end_line": 452
"start_line": 935,
"end_line": 946
}
],
"assumption": false
@@ -151,4 +151,4 @@
"metadata": {
"rationale": "쿠키 저장과 Redis 저장을 한 축에 놓았다. 옮기는 순간 지울 수 없는 상태가 생긴다."
}
}
}