QA/FAQ 스크립트에서 /egbim/.../descope_* 하드코딩 경로를 제거하고 window.IDP_SERVICE_URL 또는 앱 기준 상대경로로 통일
검증 방법
.env 변경 후 OIDC 로그인 Issuer가 변경되는지 확인
QA/FAQ 등 프로필/세션 관련 동작이 IDP_SERVICE_URL 기반으로 호출되는지 확인
## 요약
최근 커밋 이후 `.env`에 설정한 `OIDC_ISSUER`(및 관련 값) / `IDP_SERVICE_URL`이 기대대로 반영되지 않고, OIDC 흐름이 **하드코딩된 Descope 경로**로 고정되는 문제가 있습니다.
## 변경점 중심 원인 분석
1) `kngil/bbs/oidc_config.php`
- `Add docker entrypoint and env loader` 커밋(bf86b1d, 2026-02-02)에서 `.env` 로더와 환경변수 기반 설정이 추가되었으나,
- 이후 커밋(6dcc2eb, 2026-02-05)에서 `return` 배열이 **하드코딩 값으로 덮어쓰기** 되었습니다.
- 현재 파일은 **환경변수를 읽지만 실제로는 사용하지 않는 상태**라서 `.env`의 `OIDC_ISSUER`가 무시됩니다.
- 결과적으로 로그인 시 Issuer가 Descope(또는 특정 고정 URL)로 안내됩니다.
2) `IDP_SERVICE_URL` 관련
- `_header.php`에서 `IDP_SERVICE_URL`을 `window.IDP_SERVICE_URL`로 주입하지만,
- 일부 JS 경로(`kngil/js/qa/qa_common.js`, `kngil/js/faq/faq_common.js`)에 **Descope/레거시 경로가 하드코딩**되어 있어,
화면/기능에 따라 `IDP_SERVICE_URL`이 반영되지 않는 것처럼 보일 수 있습니다.
## 재현 방법
1. `.env`에 `OIDC_ISSUER`/`OIDC_CLIENT_ID`/`OIDC_CLIENT_SECRET`/`OIDC_REDIRECT_URL`/`IDP_SERVICE_URL`를 설정
2. 로그인 버튼 클릭 → `/kngil/auth/oidc-login.php`
3. 실제로는 `.env` 값이 아닌 하드코딩된 Issuer로 로그인 흐름이 이동
## 영향 범위
- OIDC 로그인 전체 (Issuer/Client/Redirect/Scopes 모두 고정값으로 동작)
- 일부 화면에서 통합 프로필/세션 관련 동작이 레거시 Descope 경로를 참조
## 해결 제안
1) `kngil/bbs/oidc_config.php`
- `return` 배열을 **환경변수 기반 값으로 복구**
- 예: `issuer => $issuer`, `client_id => $clientId`, `client_secret => $clientSecret`, `redirect_url => $redirectUrl`, `scopes => $scopes`
- 하드코딩된 시크릿 제거(보안 위험)
2) `IDP_SERVICE_URL` 경로 일원화
- QA/FAQ 스크립트에서 `/egbim/.../descope_*` 하드코딩 경로를 제거하고
`window.IDP_SERVICE_URL` 또는 앱 기준 상대경로로 통일
## 검증 방법
- `.env` 변경 후 OIDC 로그인 Issuer가 변경되는지 확인
- QA/FAQ 등 프로필/세션 관련 동작이 `IDP_SERVICE_URL` 기반으로 호출되는지 확인
작업 반영 사항 공유드립니다.
1) OIDC .env 반영 문제 수정
- `kngil/bbs/oidc_config.php`에서 하드코딩된 issuer/client/secret/redirect/scopes를 제거하고 환경변수 기반으로 복구했습니다.
- 결과: `.env`의 `OIDC_ISSUER` 등 값이 실제 로그인 흐름에 반영됩니다.
2) DB 인증 실패 원인/조치
- 배포 워크플로우에서 `source .env`를 수행하던 로직이 `DB_PASS`에 포함된 `>` 문자 때문에 쉘 리다이렉션으로 해석되어 값이 잘리는 문제가 있었습니다.
- 이로 인해 컨테이너 환경변수 `DB_PASS`가 잘못 설정되고 PHP가 그 값을 사용해 인증 실패가 발생했습니다. (psql -W는 직접 입력이라 성공)
- 해결: `.gitea/workflows/deploy.yml`, `.gitea/workflows/deploy-registry.yml`에서 `source .env`를 제거하고 `docker compose --env-file .env`만 사용하도록 변경했습니다.
필요 시 배포 후 컨테이너 환경변수 `DB_PASS` 확인 부탁드립니다.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
요약
최근 커밋 이후
.env에 설정한OIDC_ISSUER(및 관련 값) /IDP_SERVICE_URL이 기대대로 반영되지 않고, OIDC 흐름이 하드코딩된 Descope 경로로 고정되는 문제가 있습니다.변경점 중심 원인 분석
kngil/bbs/oidc_config.phpAdd docker entrypoint and env loader커밋(bf86b1d, 2026-02-02)에서.env로더와 환경변수 기반 설정이 추가되었으나,6dcc2eb, 2026-02-05)에서return배열이 하드코딩 값으로 덮어쓰기 되었습니다..env의OIDC_ISSUER가 무시됩니다.IDP_SERVICE_URL관련_header.php에서IDP_SERVICE_URL을window.IDP_SERVICE_URL로 주입하지만,kngil/js/qa/qa_common.js,kngil/js/faq/faq_common.js)에 Descope/레거시 경로가 하드코딩되어 있어,화면/기능에 따라
IDP_SERVICE_URL이 반영되지 않는 것처럼 보일 수 있습니다.재현 방법
.env에OIDC_ISSUER/OIDC_CLIENT_ID/OIDC_CLIENT_SECRET/OIDC_REDIRECT_URL/IDP_SERVICE_URL를 설정/kngil/auth/oidc-login.php.env값이 아닌 하드코딩된 Issuer로 로그인 흐름이 이동영향 범위
해결 제안
kngil/bbs/oidc_config.phpreturn배열을 환경변수 기반 값으로 복구issuer => $issuer,client_id => $clientId,client_secret => $clientSecret,redirect_url => $redirectUrl,scopes => $scopesIDP_SERVICE_URL경로 일원화/egbim/.../descope_*하드코딩 경로를 제거하고window.IDP_SERVICE_URL또는 앱 기준 상대경로로 통일검증 방법
.env변경 후 OIDC 로그인 Issuer가 변경되는지 확인IDP_SERVICE_URL기반으로 호출되는지 확인작업 반영 사항 공유드립니다.
kngil/bbs/oidc_config.php에서 하드코딩된 issuer/client/secret/redirect/scopes를 제거하고 환경변수 기반으로 복구했습니다..env의OIDC_ISSUER등 값이 실제 로그인 흐름에 반영됩니다.source .env를 수행하던 로직이DB_PASS에 포함된>문자 때문에 쉘 리다이렉션으로 해석되어 값이 잘리는 문제가 있었습니다.DB_PASS가 잘못 설정되고 PHP가 그 값을 사용해 인증 실패가 발생했습니다. (psql -W는 직접 입력이라 성공).gitea/workflows/deploy.yml,.gitea/workflows/deploy-registry.yml에서source .env를 제거하고docker compose --env-file .env만 사용하도록 변경했습니다.필요 시 배포 후 컨테이너 환경변수
DB_PASS확인 부탁드립니다.