redbean88 on Mar 9, 20202020-03-09T00:00:00+09:00
Updated Dec 12, 20212021-12-12T23:43:48+09:00 5 min read
Oauth
회사 방문 과정 | Oauth 인증과정 |
---|
나방문씨가 안내 데스트에서 업무적인 목적으로 김목적씨를 만나러 왔다고 요청 | Request Token의 요청과 발급 |
안내 데스크에서는 김목적씨에게 나방문씨가 방문했다고 연락 | 사용자 인증페이지 호출 |
김목적씨가 안내 데스크로 찾아와 나방문씨의 신원을 확인 | 사용자 로그인 완료 |
김목적씨는 업무 목적과 인적 사항을 안내데스크에서 기록 | 사용자의 권한 요청 및 수락 |
안내 데스크에서 나방문씨에게 방문증을 발급해 준다. | Access Token 발급 |
김목석씨와 나방문씨는 정해진 장소로 이동해 업무를 진행 | Access Token을 이용해 서비스 정보 요청 |
- step01
회사 방문 과정 | Oauth 인증과정 |
---|
나방문씨가 안내 데스트에서 업무적인 목적으로 김목적씨를 만나러 왔다고 요청 | Request Token의 요청과 발급 |
타입 | 내용 | 상세 |
---|
Request | oauth_callback, oauth_consumer_key, oauth_nonce, oauth_signature, oauth_signature_method, oauth_timestamp, oauth_version | Request Token 요청 |
Response | oauth_token , oauth_token_secret | Request Token 요청에 대한 서비스 제공자의 반환 값 |
Access_Token 요청시 oauth_token_secret을 암호화키로 사용하기 때문에, 해당 값을 보관해야 한다.
1
2
3
4
5
6
7
8
| create oauth_signature
1. 요청매개변수 취합 (oauth_signature 제외)
2. 매개변수 정규화
3. Signature Base String 생성
- [GET|POST]+ & + [URL] + & + [정규화된 매개변수]
4. 키생성
- 서비스 제공자에게 발급받은 Consumer secret key 사용
|
- step02
회사 방문 과정 | Oauth 인증과정 |
---|
안내 데스크에서는 김목적씨에게 나방문씨가 방문했다고 연락 | 사용자 인증페이지 호출 |
김목적씨가 안내 데스크로 찾아와 나방문씨의 신원을 확인 | 사용자 로그인 완료 |
김목적씨는 업무 목적과 인적 사항을 안내데스크에서 기록 | 사용자의 권한 요청 및 수락 |
서비스제공자가 정해놓은 사용자 인증페이지 주소에 oauth_token을 매개변수로 전달한다.
ex ) https:\//사용자인증페이지주소?oauth_token=Request Token요청으로 받은 반환값 중 oauth_token
인증 완료 후, oauth_callback 주소로 새로운 oauth_token과 oauth_verifier를 전달
타입 | 내용 | 상세 |
---|
Response | oauth_token(신규), oauth_verifier | 인증 후,서비스제공자가 oauth_callback 주소로 반환하는 값 |
- step03
Access_Token 요청
Access_Token은 방문증과 같다
회사 방문 과정 | Oauth 인증과정 |
---|
안내 데스크에서 나방문씨에게 방문증을 발급해 준다. | Access Token 발급 |
타입 | 내용 | 상세 |
---|
Request | oauth_consumer_key, oauth_nonce, oauth_signature, oauth_signature_method, oauth_timestamp, oauth_version, oauth_verifier, oauth_token | Access_Token 요청 |
Response | oauth_token , oauth_token_secret | Access_Token 요청에 대한 서비스 제공자의 반환 값 |
1
2
3
4
5
6
7
8
9
| create oauth_signature
1. 요청매개변수 취합 (oauth_signature 제외)
2. 매개변수 정규화
3. Signature Base String 생성
- [GET|POST]+ & + [URL] + & + [정규화된 매개변수]
4. 키생성
- 서비스 제공자에게 발급받은 Consumer secret key + & + oauth_token_secret 사용
|
- step04
인증값은 HEAD 부분에 Authorization 필드 값 부분에 사용
타입 | 내용 | 상세 |
---|
Request | oauth_consumer_key, oauth_nonce, oauth_signature, oauth_signature_method, oauth_timestamp, oauth_version, oauth_token | Access_Token을 사용하여 서비스제공자가 제공하는 API 서비스 획득, 값 값은 HTTP 헤더 부분의 Ahthorization 필드를 의 값부분에 해당 매대변수를 작성 |
요청시, 서비스제공자가 realm이라는 매개변수 사용을 요청하는 경우, WWW-Authenticate HTTP 헤더 필드에서 사용하면 된다.
Oauth 2.0
- 웹 애플리케이션이 아닌 애플리케이션 지원 강화
- 암호화가 필요 없음 (HTTPS사용)
- HMAC을 사용하지 않음
- Signature 단순화 정렬과 URL 인코딩이 필요없음
- 보안을 위해 Access_Token의 Life-tiem을 두어 사용 기간을 설정(1.0에서는 해당 기능 부재)
Comments powered by Disqus.