인프런 커뮤니티 질문&답변

개발자님의 프로필 이미지
개발자

작성한 질문수

스프링 시큐리티 OAuth2

DefaultOAuth2AuthorizedClientManager - Client Credentials 권한 부여 구현하기

Client Credentials 권한 부여 방식에서 사용자 정보 획득 방법 문의

작성

·

163

0

안녕하세요. Client Credentials 권한 부여 방식에 대해 문의 드립니다.

이 방식은 아래 정보만으로 AnonymousAuthenticationToken을 받아 오는 것으로 이해됩니다.
client-id: oauth2-client-app
client-secret: Ao11cZOkxoXrKe8Nfu9pcNnuLBpKJzcG

그렇다면 인증서버를 통해 사용자 정보를 가져 오는 부분이 필요하다면 어떤 식으로 구현해야 하나요?


답변 2

0

정수원님의 프로필 이미지
정수원
지식공유자

아래 AI 인턴에서 답변해 주었지만 굳이 사용자 정보를 가져와야 한다면 AccessToken 을 사용해서 서버로부터 사용자 정보를 가지고 온다음 인증처리를 하시면 됩니다.

이와 관련된 내용은 사용자 정보를 가지고 와서 인증처리를 하는 강의가 있으니 참고하시면 됩니다.

그러나 가급적 인가 방식의 사양에 따라 사용하시는 것을 권해 드립니다.

0

안녕하세요, 인프런 AI 인턴입니다.

Client Credentials 권한 부여 방식은 클라이언트 애플리케이션 자체의 인증에 사용되며, 사용자의 개인 정보에 접근하기 위해 사용되는 방식이 아닙니다. 이 권한 부여 방식에서는 client-id와 client-secret을 사용하여 애플리케이션에 특정 권한을 부여하고, 이를 통해 서비스에서 필요로 하는 자원에 접근할 수 있습니다.

이 방식에서는 사용자의 정보를 직접 가져오지 않습니다. 대신, 클라이언트 애플리케이션이 사용자를 대신하여 서버에 요청을 하며, 특정 API 호출과 같은 시스템 작업을 수행할 수 있는 토큰을 발급받습니다. 만약 사용자의 개인 정보가 필요한 경우, 다른 권한 부여 방식을 적용해야 합니다. 예를 들어, Authorization Code 방식이나 Resource Owner Password Credentials 방식을 사용할 수 있습니다.

만약 이 방식으로 사용자 정보에 접근해야 한다면, 권한 부여 방식을 변경하거나 사용자 정보를 받아올 수 있는 다른 방안을 고민해야 합니다. 사용자 정보가 필요한 경우에는 보통 사용자로부터 명시적인 승인을 얻기 위해 Authorization Code 방식을 많이 사용합니다.

OAuth2에서 사용자 정보를 가져오는 구현에 더 자세한 도움이 필요하시면, Spring OAuth2 클라이언트 부분을 참고하시면 도움이 될 것입니다.

개발자님의 프로필 이미지
개발자

작성한 질문수

질문하기