subject type을 pairwise 변경 문의
503
작성한 질문수 21
subject_type을 pairwise로 변경 하려고 Spring Authorization Server 공식 문서(현재 1.0.1)와 소스(1.0.1과 강의에 사용된 0.31) 소스를 봐도 subject_type 를 변경하는 API는 찿지 못했는데 Spring Authorization Server 에서는 지원하지 않는 걸까요?
문서를 참조하여 acesss token 과 id token 의 cliams 정보를 커스터마이징한 소스에서 pairwise 유형으로 설정하고 providerConfigurationEndpoint을 커스텀 하여 openid-configuration discovery metadata 의 정보를 변경하면 될까요?
@Bean
public OAuth2TokenGenerator<?> tokenGenerator(JWKSource<SecurityContext> jwkSource) {
JwtEncoder jwtEncoder = new NimbusJwtEncoder(jwkSource);
JwtGenerator jwtGenerator = new JwtGenerator(jwtEncoder);
jwtGenerator.setJwtCustomizer(jwtCustomizer());
OAuth2AccessTokenGenerator accessTokenGenerator = new OAuth2AccessTokenGenerator();
OAuth2RefreshTokenGenerator refreshTokenGenerator = new OAuth2RefreshTokenGenerator();
return new DelegatingOAuth2TokenGenerator(
jwtGenerator, accessTokenGenerator, refreshTokenGenerator);
}
@Bean
public OAuth2TokenCustomizer<JwtEncodingContext> jwtCustomizer() {
return context -> {;
JwtClaimsSet.Builder claims = context.getClaims();
OidcUserResponseDto user = (OidcUserResponseDto)context.getPrincipal().getPrincipal();
claims.subject(user.getEmpId());
claims.claim("dept_id", user.getDeptId());
claims.claim("locale", user.getLocale());
};
}
.........
authorizationServerConfigurer.tokenGenerator(tokenGenerator);
참고 현재 설정된 openid-configuration의 subject_types_supported 정보

답변 1
0
네
일단 메타데이터를 변경하는 API 는 제공하고 있습니다.
@Configuration(proxyBeanMethods = false)
public class AuthorizationServerConfig {
@Bean
@Order(Ordered.HIGHEST_PRECEDENCE)
public SecurityFilterChain authorizationServerSecurityFilterChain(HttpSecurity http) throws Exception {
OAuth2AuthorizationServerConfigurer authorizationServerConfigurer = new OAuth2AuthorizationServerConfigurer();
http.apply(authorizationServerConfigurer);
authorizationServerConfigurer
.authorizationEndpoint(Customizer.withDefaults());
// 메타데이터 커스트마이징
authorizationServerConfigurer.oidc(OidcConfigurer ->
OidcConfigurer.providerConfigurationEndpoint(config ->
config.providerConfigurationCustomizer(providerConfiguration -> providerConfiguration.subjectType("pairwise"))));위 코드처럼 선언하면 메타데이터의 각 항목의 지원하는 값들은 추가 및 변경이 가능합니다.
그리고 말씀하신 것 처럼 실제로 pairwise 타입을 지원하기 위한 클레임 값을 커스트마이징하도록 구현해 주어야 합니다.
http://localhost:19001/iam/.well-known/openid-configuration 로 요청해 보면
로 추가되고

변경된 항목이 보여지고 있습니다.
authorization-server 라이브러리 질문이 있습니다.
0
78
1
loadUser 중 Missing attribute 'preferred_username' in attributes 에러 발생
0
79
2
JWT 조회 에 대한 질문
0
75
1
password grant 방식 에러 응답
0
91
3
FormLoginConfigure에서 생성하는 필터
0
79
2
현업에서 springboot를 3.5.5 를 사용해서 공부중인데...
0
287
2
Jdbc 관련 강의 및 깃헙 문의
0
78
1
OAuth2AuthorizedClient 이해 및 활용 강의 내용 질문
0
209
1
UserInfo 엔드포인트 요청 실습
0
75
1
RFC 문서에서의 AccessToken 발급 방식 궁금한점
0
151
1
강의자료.zip 를 다운로드 받았는데 압축이 풀리지 않습니다. 확인 부탁드려요
0
140
2
OIDC SSO 관련 질문 입니다.
0
131
1
AuthenticationEntryPoint 강의 누락 문의
0
123
1
cors설정방법
0
116
1
jwt decoder 토큰 검증 시 질문
0
222
1
클라이언트에서 userinfo 엔드포인트 호출 시 질문
0
187
2
JOSE 구성요소의 api에 관한 질문
0
141
2
스프링 부트 3버전으로 따라가시는 분들 참고하세요
1
532
1
CustomOAuth2AuthenticationFilter 구현 중 질문
0
146
2
AuthenticationManager 생성시점
0
118
1
FormLogin과 Oauth2Client 둘 중 사용하는 시점
0
128
1
postman userinfo 엔드포인트 질문
0
136
2
강의 수강신청하고 듣기 전입니다 질문있습니다.
0
115
1
인증 코드를 통해 발급 받은 토큰의 관리
0
200
1





