인증 총 정리 :: 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 정보를 입..

Refresh Token
웹 (WEB)/공부 2021. 7. 22. 08:36

Refresh token의 장점 본인은 원래 API 요청 시 매번 Access Token을 발급하는 식으로 API를 구성하였는데, 이렇게 구성할 경우 사용자가 많아질 수록 시스템 부하가 증가한다. 따라서 Refresh Token을 발급하는 것이 낫다. 또한, refresh token이 있을 경우 access token의 유효 시간을 짧게 하여 탈취 시 빠르게 무효화 시킬 수 있다. Refresh token의 동작 Access Token을 통해 User가 request를 보내고, 유효 시간이 만료 되었다는 응답을 받는다. User는 Access Token고 함께 Refresh Token을 서버로 보낸다. Refresh Token이 유효하다면 유효시간이 갱신된 Access Token이 새로 발급되어 User..

OAuth 2.0
웹 (WEB)/공부 2021. 7. 22. 08:32

개념 정리 내가 제공하는 서비스를 Client, 다른 서비스를 Resource Server, 두 서비스를 모두 이용하는 사용자를 Resource Owner라고 정의한다. 추가적으로 Resource Server에서 인증을 담당하는 서버를 따로 Authorization Server라고 한다. 이렇게 연합해서 인증체계를 제공하는 것을 federated Identity라고 부른다. 배경 Client가 Resource Server(google, facebook 등)에 있는 Resource Owner의 계정에 접속할 수 있는 방법은 무엇이 있을까? Resource Server에 대한 Resource Owner의 id, pw를 제공받으면 더 좋겠지만 보안 신뢰 문제가 있다. 따라서 oAuth가 나왔다. oAuth를 ..