본문 바로가기
728x90

OAuth2

Proof Key for Code Exchange(PKCE) 프로젝트에서 OAuth 로그인을 구현하기 위해 OAuth 플로우를 찾아보던 중 여러 플로우가 존재하는 것을 알게 되었다. 그 중, 이번 프로젝트에 사용할 방식인 PKCE를 정리해보려 한다. PKCE는 클라이언트가 네이티브 앱이나 SPA일때 추천되는 방식이다. 퍼블릭 클라이언트가 엑세스 토큰을 요청했을 때, 인증 절차만으로는 해결할 수 없는 보안 문제에 노출된다. 이는 네이티브앱과 SPA가 가진 특징 때문이다. 네이티브 앱들은 다음과 같은 문제를 가지고 있다. 1. client secret을 안전하게 저장할 수 없다. 앱을 디컴파일링 하면 클라이언트 암호가 노출된다. 2. Custom URL scheme을 통해 리다이렉트를 캡쳐해 악의적 애플리케이션이 인증 서버에서 인증 코드를 받을 수 있다. SPA는 다.. 2022. 7. 10.
웹 API API(Application Programming Interface)는 애플리케이션과 시스템 간의 경계를 가리키는 용어이다. 프로그램 개발자 입장에서 애플리케이션의 코드는 라이브러리의 함수나 클래스 라이브러리를 이용한다. 따라서 개발자의 입장에서 보면 API는 함수나 클래스의 사양이다. 웹 API가 상정하는 시스템은 웹 서비스이다. 웹 서비스를 이용하는 애플리케이션은 이 둘 사이의 작업을 HTTP를 통해 수행한다. 애플리케이션은 웹 서비스에 HTTP요청을 던지고 응답을 받는다. 이때의 통신 규약이 웹 API이다. SOAP(Simple Object Access Protocol) HTTP를 RPC로 사용하는 시도가 있다. RPC는 프로세스간 통신을 위해 사용하는 IPC(Inter Process Communi.. 2021. 12. 20.
728x90