21장. 소셜 계정 연결과 탈퇴를 안전하게 만든다
같은 이메일이라는 이유로 새 OIDC 로그인을 기존 비밀번호 계정에 자동 연결하면 계정 탈취가 될 수 있다. 연결은 기존 계정의 재인증과 새 공급자 인증을 한 세션에서 완료하고, 사용자에게 issuer와 계정 표시명을 보여 준 뒤 확정한다.
기존 계정 step-up
-> 새 provider authorization
-> issuer+subject 중복 검사
-> 연결 확인
-> audit + 보안 알림
마지막 로그인 수단을 해제하지 못하게 하거나 복구 수단 등록을 먼저 요구한다. 공급자 탈퇴 webhook이 있다면 서명 검증, 중복 처리, 순서 뒤바뀜을 견디게 하고, 주기 동기화가 필요해도 GitHub Actions 같은 CI 시스템을 외부 수집 스케줄러로 쓰지 않는다. 승인된 운영 infrastructure에서 처리한다.
Apple, Google, Kakao 등 공급자별 claim과 정책은 변한다. 책의 예시 값보다 현재 공식 문서를 우선하고, provider adapter와 contract test로 차이를 격리한다. 로고와 브랜드 사용 지침도 별도 검토한다.