인증 총 정리 :: 2. 다양한 상황에서의 다양한 인증 (feat. SAML, OAuth 2.0)
웹 (WEB)/공부 2022. 3. 15. 22:10

SAML 인증 SAML은 XML 기반의 표준 데이터 포맷입니다. 인증 정보를 XML 포맷으로 생성하고 암호화한 것이 Assertion인데 이를 이용합니다. User, IDP(Identity Provider), SP(Service Provider) 가 존재하며 다음과 같이 인증이 이루어집니다. (그림) User가 SP로 서비스를 요청하면 SP는 인증된 User인지 체크합니다. 인증되지 않았으면 인증 요청(SAMLRequest)을 생성하여 User에게 전송합니다. SAMLRequest에 의해 User는 IDP로 redirect되고 로그인을 통해 인증을 진행합니다. 인증에 성공하면 IDP는 SAMLAssertion이 포함된 SAMLResponse를 User에 내려줍니다. → 그 과정에서 IDP가 설정한 Ses..

인증 총 정리 :: 1. 내가 생각하는 Auth Flow Best Case (feat. OpenIDC)
웹 (WEB)/공부 2022. 3. 15. 21:59

인증 Best Case 기본 flow (OpenIDC) Best Case라고 생각하는 인증 flow(OpenIDC)를 먼저 설명하겠습니다. 먼저, Auth Service가 타 서비스가 아닌 자사의 서비스일 때는 OAuth 기반의 flow가 필요없이 다음과 같이 시퀀스 다이어그램이 그려집니다. (타 서비스일 경우 OAuth 보기) Client가 id(username)와 password를 입력하여 로그인합니다. 로그인 요청은 BFF → Server → Auth Service로 전해집니다. 전달된 id와 password로 Auth Service에서 인증합니다. 인증에 성공하면 access token, refresh token, id token 를 Server로 전달합니다. Server는 id token 을 d..

인증 방식 :: 기본 인증 원리부터 MSA 인증까지
웹 (WEB)/공부 2021. 7. 22. 08:54

인증 방식 1. API key를 통한 인증 과정 user가 login 정보를 입력한다. Client는 이미 Server에 등록한 API key를 가지고 있다. Client는 user가 입력한 Login 정보를 받아서 API key와 함께 Login API를 요청한다. Server는 API key를 통해 해당 Client가 등록되어있는 지를 검사한다. Sever는 Login 정보를 통해 해당 User가 API를 사용할 수 있는 지를 검사한다. 단점 API key는 모든 Client들이 공통으로 사용하기 때문에 노출되면 전체 API가 노출된다. API key는 시간이 무제한이고 한 번 노출되면 API key 변경 전까지 계속 노출된다. 2. API Token을 통한 인증 과정 user가 login 정보를 입..

Token 저장 위치
웹 (WEB)/공부 2021. 7. 22. 08:34

token은 cookie에 저장할 수도, Web Storage에 저장할 수도, Client 자체에 저장할 수도 있다. Cookie 쿠키는 서버가 보낸 데이터를 최대 4KB까지 저장 가능하다. 클라이언트에서 Credential 속성으로 허용하면 서버에서 접근 가능하다. HTTP Request 시 자동으로 포함되어 서버에 쿠키 정보를 제공 가능하다. HttpOnly 설정을 이용하여 사용자가 제어할 수 없도록 만들 수 있다. Web Storage Session Storage 서버에서 접근할 수 없다. 세션이 종료되면 모두 삭제 된다. 5~10MB의 크기를 갖는다. Local Storage 서버에서 접근할 수 없다. 반 영구적으로 저장할 수 있다. 5~10MB의 크기를 갖는다. Client Side 클라이언트 ..

[eslint] Error: Unexpected token 'export'
웹 (WEB)/에러해결 2020. 11. 21. 21:46

참고 : https://hoilzz.github.io/webpack/11-eslint-prettier/ eslint의 parser가 공식적으로 ES 표준만을 지원하기 때문에, ES6~7 파싱 시 문제가 생긴다. 따라서, .eslintrc.js 파일의 export default를 module.export로 변경하기 export는 ES6 syntax이고, module export는 commonJS syntax이다. babel-eslint 설치 후 .eslintrc.js에 "parser": "babel-eslint",추가하기 두 방법 중 하나를 사용하면 된다.