자 이번 강의에서는
저번에 받은 액세스 토큰을
인증 서버에서 리소스 서버로 넘겨 봅시다
액세스 토큰이 유효하다면 리소스 서버는
성공했다고 응답을 할 것입니다
그러기 위해 먼저
SpringBoot 웹 애플리케이션을
디버그 모드로 열 것입니다
제 애플리케이션은 지금 포트 8080에서
배포되고 있지만 뭔가 이상이 있는 것 같네요
LoginController에서
비밀번호 인코더 PIN을 요구한다고 합니다
LoginController로 갑시다
지금 상황을 보면
PasswordEncoder는 제거해 놓았습니다
그래서 Autowire가 실패하는 겁니다
그러면 이 Autowire는 삭제하겠습니다
이 등록 메서드는 더 이상 필요하지 않습니다
지금으로서는 데이터베이스에
사용자 정보를 저장하지 않을 거기 때문입니다
그러므로 이 메서드는 전혀 필요하지 않습니다
이건 제거하겠습니다
문제는 해결되었습니다
이 과정이 완료되었으면 메인 클래스로 가서
애플리케이션을 디버그 모드로 실행할 수 있습니다
이번에는 애플리케이션이
문제 없이 실행되었으면 좋겠네요
리소스 서버가 포트 8080에서 실행되었습니다
리소스 서버 내부에 있는
myCards API를 호출할 수 있습니다
그러면 과거 GET에 액세스가 가능해집니다
이 GET의 입력 끝에
추가할 게 있습니다
email=happy@example.com을 추가해 줍니다
이 이메일을 가진 사용자의 정보를 가져오려는 겁니다
이걸 직접 호출하면
무슨 일이 일어나는지 봅시다
401 권한 없음 에러가 떴습니다
액세스 토큰을 보내지 않았기 때문입니다
액세스 토큰을 얻기 위해서는
Headers로 가야 합니다
Headers 탭에서 헤더를 생성합니다
이름은 authorization으로 하겠습니다
이 authorization 헤더를 생성한 후에는
Bearer로 시작하는 값을 주어야 합니다
그 다음에는 한 칸 띄우고
그러면 이제 액세스 토큰을 가져올 수 있습니다
다른 탭에서 액세스 토큰을 가져올 수 있지만
이 액세스 토큰은 만료되었을 수 있습니다
그러므로 Send 버튼을 클릭해서
새로운 토큰을 받겠습니다
그리고 방금 받은
이 액세스 토큰을 가져옵니다
이 값을 복사합니다
다른 탭으로 가서
Bearer 뒤에
액세스 토큰 값을 붙여넣습니다
이제 Send를 클릭해서 호출해 보면
이번에는 보이듯이
cards 응답을 성공적으로 받았습니다
제 리소스 서버는 authorization이라는 헤더가 있는
액세스 토큰을 받고 싶어하며
받은 액세스 토큰이 유효한지
직접 확인할 겁니다
그러고 나서야 제대로 응답을 할 겁니다
누군가 어떤 이유에선지 액세스 토큰에 수정을 가한 경우에는
예를 들자면
제가 글자 몇 개를 지워 보겠습니다
그 다음 백엔드 리소스 서버에
요청을 보내 보면
401 에러가 뜹니다
이 액세스 토큰은 유효하지 않기 때문입니다
알맞은 액세스 토큰을 복사해서
Bearer 뒤에 붙여 넣겠습니다
그리고 다시 요청을 보냅니다
이번에는
성공적인 cards 응답이 돌아옵니다
같은 방법으로 myAccount도 호출할 수 있습니다
이번에는 myAccount를 호출해 보겠습니다
Send를 누릅니다
계정 정보를 받았습니다
똑같이 loans도 해 볼게요
loans도 응답을 받을 수 있을 겁니다
역시 성공적으로 응답이 왔습니다
제 setup이 제대로 작동하고 있다는 뜻입니다
이번에는 안 좋은 시나리오를 보도록 합시다
여기를 보면 클라이언트 애플리케이션인
myCards는 실사용자이므로
역할의 이름이 유저여야 합니다
무얼 해 볼 거냐면 Keycloak에서 생성했던
클라이언트의 역할을 삭제해보겠습니다
이 Clients를 클릭하고
eazybankapi를 엽니다
Service account roles 탭으로 갑니다
USER를 선택한 다음 Unassign을 클릭합니다
그러면 eazybankapi 클라이언트에서
이 역할은 제거됩니다
이제 Keycloak 인증 서버로부터
새로 액세스 토큰을 받으려 하면
그 액세스 토큰에게는 USER 역할이 없습니다
테스트를 통해 확인해 보겠습니다
이 값을 복사한 다음 다른 탭으로 이동합니다
그리고 여기 새로운 액세스 토큰을 붙여넣습니다
다음으로 MyCards API를 호출합니다
Send를 눌러 볼게요
보이시듯이 403 Forbidden 에러가 뜨는데
이 API에 접근할 권한이 없다는 뜻입니다
그렇게 해서 안 좋은 시나리오도 시험해 봤습니다
이제 eazybankapi에 다시 USER 역할을 할당해 주겠습니다
이전과 같이
Assign role을 클릭한 다음 eazybankapi를 선택하고
Assign 버튼을 클릭합니다
인증 서버와
리소스 서버
그리고 클라이언트 정보를 어떻게 설정하는지
이해가 꼭 되셨길 바랍니다
그리고 이런 setup을 가지고
저희는 client credentials grant flow를 시험해 보기도 했습니다
두 개의 애플리케이션이
API의 도움을 받아 소통하는 시나리오를 통해서 말입니다
그러면 들어주셔서 감사하며 다음 강의에서 뵙겠습니다
수고하셨습니다