20장. OAuth2 Login과 OIDC를 역할에 맞게 사용한다
브라우저 로그인은 OAuth 2.0 Authorization Code와 OIDC를 사용한다. OIDC는 ID Token과 UserInfo로 최종 사용자 인증 정보를 제공한다. 단순 OAuth access token을 “로그인 증명”으로 임의 해석하지 않는다. OAuth2 Login 공식 문서를 공급자 문서와 함께 본다.
spring:
security:
oauth2:
client:
registration:
corporate:
client-id: ${OIDC_CLIENT_ID}
client-secret: ${OIDC_CLIENT_SECRET}
scope: openid,profile,email
provider:
corporate:
issuer-uri: https://id.example.test
state, nonce, redirect URI 정확 일치, Authorization Code, PKCE 지원을 유지한다. client secret은 프런트에 넣지 않는다. callback URL은 개발·staging·운영을 분리 등록하고 wildcard를 최소화한다.
외부 claim을 내부 권한으로 바로 쓰지 않는다. issuer와 subject 조합을 외부 계정의 안정 식별자로 저장하고, 이메일은 표시·연락 속성으로 취급한다. 공급자 group을 내부 role로 매핑한다면 허용 group, 동기화 지연, 탈퇴 처리, 실패 시 권한 축소를 명시한다.