인증 허가에 대해 배운 요약

4225 단어 허가인증
어떤 사정으로 인증·인가에 대해 배울 필요가 있었으므로, 배운 것을 정리해 가려고 생각합니다.

전제 지식



우선 전제 지식이 되는 용어의 해설로부터 배워 갔습니다.
이 2개의 기사가 매우 참고가 되어 알기 쉬웠습니다.

용어 설명 & 비유 이야기로 이해가 진행되기 쉬운 것은 이쪽
htps : //에서 v.ぁsss d. jp / 세쿠리 ty / 어서

웹 서비스의 예도 섞여 있으며, 보다 예가 구체적이고 알기 쉬운 것은 이쪽
htps : // 코 m / 타카 히코 카와사키 / ms / f2 0 d25 5% 8F% 아 F

인증(authentication)이란?



인증은 그 사람이 그 사람임을 확인하는 행위입니다.
포인트로서는, 인증과는 어디까지나 확인만에 머물러, 그 사람에게 있는 권한과는 관계가 없습니다.
예를 들어, 회사에 따라서는 사원증과 회사에 입관할 수 있는 자기 카드가 나뉘어 있을 수 있습니다.
직원 증서는 그 사람이 회사 직원임을 증명할 수 있지만,
자기 카드를 집에 잊어버린 경우 입장은 불가능합니다.

인가(authorization)란



인가란 그 사람에게 권한을 부여하는 행위입니다.
앞의 예에서 말하면, 자기 카드를 자신이 아닌 다른 사람이 입수한 경우,
그 사람이 「사원의 ○○씨인가」와는 관계없이 회사에 입관할 수 있어 버립니다.

「사원의 ○○씨이다」와, ○○씨가 소속하는 「회사에 입관할 수 있다」는 각각, 「인증」·「인가」라는 의미에서는 관계는 없습니다.

실제로 만들어 보자



어느 정도 의미를 잡은 곳에서 실제로 만들고 확인하기 위해 오레올레 OAuth 인증을 실시하는 프로바이더와,
프로바이더 서버로 허가된 후에 이용할 수 있는 클라이언트 서버를 만들어 보았습니다
하고 싶은 것은 아래와 같은 이미지


구축의 흐름은 이쪽에 기재하고 있습니다.
두 서버 모두 local로 시작하고 공급자 서버는 300포트, Clients 서버는 3001포트에서 실행 중입니다. 이후의 내용은, 모두 아래 페이지에서 구축한 어플리케이션상에서 동작하는 것을 상정하고 있습니다.
htps : // 코 m / 모에 히코 / ms / 300dc 4d8f70660bcd1

①클라이언트 서버: 인가 서버에 액세스



먼저 Client 서버에 액세스합니다.
http://localhost:3001/users/sign_in


Sign in with Mock을 클릭하면 공급자 서버의 인증을 요청하는 화면으로 이동합니다.
※이번은 「Mock」가 다른 AOuth 인증으로 말하는 곳의 Facebook이라고 생각해 주세요

② 제공자 서버: 인증



아래 페이지로 이동하여 공급자 서버에서 인증을 수행하기 위해 인증을 수행합니다.
http://localhost:3000/users/sign_in


화면은 같습니다만, 이쪽은 프로바이더 서버측의 것입니다.

③ 공급자 서버: 계정에 권한 부여



승인을 요청하는 페이지로 전환합니다.
http://localhost:3000/oauth/authorize?client_id=xxxxx&redirect_uri=http%3A%2F%2Flocalhost%3A3001%2Fusers%2Fauth%2Fmock%2Fcallback&response_type=code&state=xxxxx


인증 후 로그인한 계정에 mock을 사용하여 클라이언트 서버에 액세스할 수 있는 권한을 부여할지 묻는 메시지가 표시됩니다.

④ 제공자 서버 → 클라이언트 서버로 리디렉션



권한을 부여하면 클라이언트 서버로 리디렉션됩니다.
http://localhost:3001/home

클라이언트 서버로 리디렉션되어 콘텐츠가 표시되었습니다.
덧붙여서, 로그인하지 않은 상태에서 이 페이지에 액세스하면, ①의 화면으로 돌아가게 되어 있습니다



이상으로 AOuth 인증 서버를 만들어 보아 인증·인가의 구조를 배워 본 정리는 끝이 됩니다.
의미를 배우는 것은 선인의 기사도 있어, 만들어 보아 제대로 이해하는 것은 꽤 힘들군요··

좋은 웹페이지 즐겨찾기