feat(auth): 관리자 판별을 Keycloak 역할(role)에서 그룹(group) 기반으로 변경

- auth.js: realm_access.roles/resource_access 대신 ID 토큰 claims.groups 사용
  (group-membership 매퍼, full.path=false 대비 앞 슬래시 제거 후 비교)
- config.js: adminRole(ADMIN_ROLE, "admin") → adminGroup(ADMIN_GROUP, "DevOps")
- server.js: 세션 user 주석 roles → groups
- CLAUDE.md: 인증 모델·Kubero Env 문서 갱신

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-02 14:47:34 +09:00
parent ac545651e6
commit b4c9b4a395
4 changed files with 13 additions and 16 deletions

View File

@@ -65,7 +65,7 @@ app.get("/auth/callback", async (req, res) => {
const { id_token, ...user } = u;
req.session.idToken = id_token;
await db.upsertUser(user);
req.session.user = user; // { sabun, name, email, roles, isAdmin }
req.session.user = user; // { sabun, name, email, groups, isAdmin }
res.redirect("/");
} catch (e) {
console.error("oidc callback error", e);