이번 강의에서는
허가 코드 인증 플로우에 대한
데모를 보여드리겠습니다
여러분이 확실히 이해하실 수 있도록 말이죠
제가 OAuth 2.0의 세부 사항에 대해
설명하는 데 많은 시간을 쏟는 이유는
이 부분이 매우 복잡하기 때문입니다
이것이 제가 자세한 설명을 드리고 싶은 이유입니다
여러분들이 웹 애플리케이션 보안의
전문가가 되시길 바라는 마음에서 말이죠
OAuth 2.0에 대한 지식없이는
웹 애플리케이션 보안에 관한 모든 것을 안다고
주장할 수 없습니다
그렇기에, 주의를 기울여주시기 바랍니다
우리가 이야기를 나눌 인증 유형 플로우에 대해
어느 정도는 파악을 한 상태이시길 바랍니다
따라서, 저는 단순한 허가 코드 인증 유형 플로우의
데모를 보여드리기 위해서
oauth.com/playground이라는 웹사이트에 접속했습니다
중요한 웹사이트에 대해서는 너무 신경쓰지 않으셔도 됩니다
GitHub 리포지터리에서 또 한 번 말씀드리겠습니다
웹사이트 세부 사항은 항상 그곳에서 참고하시면 됩니다
OAuth는 Okta에 의해 연구되고 있는 단체입니다
Okta와 OAuth는 OAuth 2.0를 쉽게 실행할 수 있도록
다양한 단체들을 돕는
상업 제품들을 가지고 있습니다
이러한 Okta와 OAuth의 기성품을 통해
어떠한 단체든지 그들만의
승인 서버를 만들어낼 수 있습니다
OAuth 2.0 사양을 바탕으로 말이죠
이것이 Okta와 OAuth에 대한 간단한 소개였습니다
따라서, 이 웹 페이지에서는
인증 코드라는 선택지가 있습니다
이를 선택하면 인증 코드의 데모가 시작됩니다
하지만 그것을 하기 전에, 클라이언트로 등록을 해야합니다
그리고 인증 코드 플로우를 연습할 사용자도 등록해야합니다
하지만 아시다시피, 승인 서버와
리소스 서버와는 별개로
리소스 소유자이자 엔드 유저인 사람이 있을 것이고
이와 관련된 클라이언트 애플리케이션도 있을 것입니다
그럴 때는 이것을 클릭하면 됩니다
클라이언트와 사용자 등록하기
웹사이트에서 이 버튼을 클릭하자마자
다시 등록하기 버튼을 누르면 됩니다
그 결과, 자동적으로 client_id가 생성됩니다
client_secret, 로그인과 비밀번호를 만들어내는 것이죠
여기서 제가 할 수 있는 것은
이 세부 사항들을 새로운 창에서 여는 것입니다
따라서 이것은 제 로그인 사용자명과 비밀번호입니다
이 client_id와 client_secret를
기억할 필요가 없습니다
이런 세부 사항들은 제 허가 코드 인증 플로우 내에서
자동적으로 사용될 것입니다
'계속하기' 버튼을 눌러보겠습니다
이제, 인증 코드 옵션을 클릭할 수 있습니다
가장 첫 번째 단계에서 볼 수 있는 것은
인증이 시작되기 전에
클라이언트 애플리케이션이 엔드 유저를
인증 서버 페이지로 다시 이동시켜야 합니다
그렇기 때문에 지금 화면에서
인증 서버 페이지로 저를 이동시키고 있는 것입니다
따라서, 이 페이지가 엔드 유저를 다시 이동시키려는 것이지만
이 페이지에게 누군가가 요청을 보낼 때마다
코드로서 답변 유형을 보내고 있기도 합니다
즉, 인증 코드와 client_id가 무엇인지를
기다리고 있다는 것입니다
이 client_id는 인증 서버에게
클라이언트 애플리케이션이 엔드 유저를
인증 서버로 이동시키게끔 합니다
또한 redirect_uri에서, 인증서버가
엔드 유저의 게시물을 성공적인 인증으로 이끌어낼 수 있는
URI 세부 사항에 대해 다루고 있습니다
그리고 여기, 스코프에서 우리는
클라이언트 애플리케이션이 요구하는
접근이나 허가가 어떤 것인지 살펴보고 있습니다
클라이언트 애플리케이션은 사진과 오프라인 접근에 관련된
스코프를 원했지만
앞서 말했듯이, 이것은 CSRF 토큰입니다
따라서 여러분이 지금 무작위로 보내고 있는
CSRF 토큰이 어떤 것인지는 몰라도
승인 서버로부터 성공적인 승인 이후에
답변으로 받게 될 동일한 상태 값은
아무도 여러분의 요청을
방해하지 않았다는 것을 보여줍니다
이 세부 사항들에서 읽어볼 수 있듯이, 첫 단계에서는
승인 서버를 설립하고
사용자를 승인 서버로 이동시킵니다
제가 첫 번째 단계 밑에 '승인하기' 버튼을 누르자마자
승인 서버 페이지로 이동되는 것을
볼 수 있습니다
여기서 저는 리소스 소유자에 대한
사용자명과 비밀번호를 입력해야 합니다
여기 다른 창을 보면 사용자명이 있죠
이것이 사용자명입니다
일단 제가 사용자명, 비밀번호를 입력하겠습니다
이게 비밀번호 세부 사항입니다
이 최종 소비자는 이미 제 인증 서버 내에
등록을 끝마쳤습니다
따라서 이 페이지는 이미 사용자에 대해 인지하고 있습니다
만약 이 인증이 성공적이라면
로그인 버튼을 누른 후
보시다시피 제 허가를 받고자 합니다
그리고 OAuth 2.0 Playground이라는 이름 하에
클라이언트 애플리케이션이 당신의 사진에
접근하고 싶어한다는 안내창이 뜹니다
만약 사진 접근을 허용해도 괜찮다면
'허가하기' 버튼을 누르면 됩니다
버튼을 누르자마자
사이트를 이동시키는 모습을 볼 수 있습니다
그리고 보시다시피, 제가 다른 url로
이동하자마자
제가 처음에 보낸 값과 일치해야 하는 상태값을
일치해야 하는 상태값을
인증 코드 값과 함께 받았습니다
상태값에 오류가 없다고 느끼면
이것을 클릭하고, 일치하면 '계속하기'를 누릅니다
세 번째 단계로 넘어가겠습니다
이 단계에서는
클라이언트 애플리케이션이 POST 요청을 해야 합니다
그리고 이 POST 요청의 일부분으로서
인증 유형으로 인증 코드
client_id와client_secret
그리고 redirect_url,마지막으로 이전 단계에서 받았던
인증 코드를 보내야만 합니다
만약, 다 일치한다면 '이어가기' 버튼을 눌러야 합니다
보시다시피, 인증 서버에게서
액세스 토큰을 받았습니다
이것이 저희가 받은 액세스 토큰입니다
사진, 오프라인 접근과 같은 스코프를 가지고 있습니다
이것이 신규 토큰이며
이 부분은 토큰의 유효 기간
그리고 토큰 유형은 Bearer입니다
다음 강의부터 우리는 신규 토큰이 무엇인지에 대해
이야기를 나누어보겠습니다
현재는 여러분이 허가 코드 인증 유형 플로우에 대해
매우 확실하게 이해가 되셨을 것이라고
생각합니다
또, 이 사이트 내에서 연습을 통해
인증 코드 유형 플로우에 대해 확실히
이해하실 수 있도록 하는 것을 추천합니다
왜냐하면 이 부분이 복잡한 인증 유형 플로우이기 때문입니다
만약 이걸 이해하셨다면
나머지 플로우들을 이해하시는 것은
매우 쉬울 것입니다
감사합니다
다음 강의에서 뵙겠습니다. 수고하셨습니다