concept/server
-
OAuth - Refresh Token Grantconcept/server 2020. 11. 3. 13:26
앞서 살펴본 것처럼 액세스 토큰은 일정 기간 동안만 유효하며 프레임이 종료되고 나면 만료된다. 그 이유는 리프레시 토큰이 steal 당하면 해커가 만료(시간이 오래 걸리거나)까지 사용할 수 있거나 서버에서 블랙리스트에 올라 있기 때문에 보안을 확보하기 위해서이다. 클라이언트가 액세스 토큰이 만료될 때마다 사용자에게 인증 및 권한을 요청하면 매우 힘들 것이다. 이를 방지하기 위해 클라이언트 앱은 리프레시 토큰을 사용할 수 있다. 리프레시 토큰은 만료될 때 액세스 토큰을 가져오는 데 사용할 수 있는 토큰이다. 해커가 리프레시 토큰에 대한 액세스 권한을 얻으면 해커가 리소스에 무제한 액세스 권한을 갖기 때문에 이 정보는 기밀로 유지되어야 한다. 권한 부여 서버에 의해 정의된 리프레시 토큰에 대한 설정은 서로 ..
-
OAuth - Resource Owner Credentials Grantconcept/server 2020. 11. 3. 11:29
educative 를 번역, 요약한 자료입니다. Resource Owner Credentials Grant은 Resource owner가 클라이언트를 신뢰하고 클라이언트와 자격 증명을 공유할 준비가 된 경우에 사용된다. Authorization server는 이 권한 부여 유형을 활성화할 때 특별한 주의가 필요하며 다른 흐름을 실행할 수 없을 때만 허용해야 한다. 이러한 흐름은 저장된 자격 증명을 액세스 토큰으로 변환하여 HTTP Basic 또는 Digest 인증과 같은 직접 인증 체계를 사용하여 기존 클라이언트를 OAuth로 마이그레이션하기 위해 도입되었다. 요 방법은 매우 불안하기 때문에 오늘날 이 흐름을 사용해야 하는 경우는 거의 없다. 1단계 : Token Request 2단계 : Token Re..
-
OAuth - Client Credentials Grant Typeconcept/server 2020. 11. 3. 00:19
educative 를 번역, 요약한 자료입니다. 이 grant type은 기계 대 기계 authorization에 사용된다. 여기서는 유저가 관여하지 않는다. 마이크로 서비스 아키텍처를 따르는 애플리케이션이 있다고 가정해보자. 애플리케이션은 작은 부분으로 나뉘고 각 부분은 별도의 서버에 배포된다. 한 내부 서버가 다른 서버의 일부 데이터에 액세스해야 하는 경우, client credentials grant type을 사용할 수 있다. Client Credentials grant type working 1단계 : Token request 여기서는 직접 토큰 요청이 있다. 유저가 관여하지 않기 때문에 클라이언트가 직접 HTTP POST 요청을 Authorization 서버로 전송한다. request quer..
-
OAuth - Implicit Grant Type (암시적 승인 타입)concept/server 2020. 11. 2. 22:30
educative 를 번역, 요약한 자료입니다. Implicit Grant Type 은 백엔드가 없는 single page JavaScript app을 위해서 설계되었다. 이전 포스팅에서는 클라이언트 앱이 client secret, 그리고 Authorization code를 이용해서 액세스 코드를 얻는 방법에 대해서 알아보았다. 백엔드가 없는 자바스크립트 앱의 문제는 client_secret을 저장할 방법이 없다는 것이다. JS 코드에 client_secret을 저장하는 것은 안전하지 않다. 누구나 액세스할 수 있기 때문이다. 따라서 이러한 앱들에게 Implicit Grant type을 사용한다. 이 때, Authorization 서버는 코드를 반환하는 대신 액세스 토큰을 직접 반환한다. 이 type은 ..
-
OAuth - Authorization Code Grant Typeconcept/server 2020. 11. 2. 21:01
educative 번역, 요약한 자료입니다. What is grant type? OAuth 2.0에서 grant type이라는 용어는 애플리케이션이 액세스 토큰을 얻는 방법을 나타낸다. 각 grant type은 웹 앱이든, 네이티브 앱이든, 웹 브라우저를 출시할 능력이 없는 장치든, 서버 대 서버 애플리케이션이든 특정 용도에 최적화된다. Authorization Code grant type 인증 코드 부여 유형은 가장 일반적으로 사용되는 OAuth 2.0 grant type이다. 유저가 승인한 후 인증 서버에서 액세스 토큰을 얻기 위해 웹 앱과 네이티브 앱 모두에서 사용된다. 인증 코드 흐름은 백엔드가 있는 웹 사이트 및 모바일 앱에 가장 적합하다. 이 유형은 액세스 토큰에 대한 authorization..
-
OAuth 2.0 Intro, 용어concept/server 2020. 11. 2. 17:01
educative를 번역한 자료입니다. what is OAuth 2.0? OAuth 2.0은 인증을 위한 업계 표준 프로토콜 OAuth 2.0은 웹 애플리케이션, 데스크탑 애플리케이션, 휴대폰 및 거실 장치에 대한 특정 인증 흐름을 제공하는 동시에 클라이언트 개발자 단순성에 초점을 맞추고 있다. 즉, OAuth는 보안된 리소스에 액세스하기 위해 클라이언트에 권한을 제공!(Authorization) 하는 프로세스를 단순화하는 프로토콜이다. OAuth가 Authentication 이냐, Authorization이냐에 대한 혼란이 있을 수 있다. 정답은 Authorization이다! OpenId Connect 라는 확장자가 있어서 Authentication이 가능하기는 하지만, OAuth는 Authorizat..
-
Cross-site Request Forgery (CSRF)concept/server 2020. 11. 1. 21:36
educative 를 번역, 요약한 자료입니다. What is CSRF? Cross-site Request Forgery의 약자로서, 유저가 브라우저에 로그인된 상태에서 원치 않은 액션을 실행시키도록 브라우저를 속이는 것이다. 해커가 로그인한 유저의 동의없이 실행시키도록 만들 수 있다. CSRF 공격에서 해커는 응답에 접근할 수 없기 때문에 데이터에도 접근할 수가 없다. 또한 해커가 유저에게 은행 웹사이트에서 자금을 이전하거나 민감한 정보를 공유하도록 강요할 수 있기에 파괴적일 수 있다. How does CSRF work? CSRF 공격을 실시하기 위해서는 몇 가지 조건이 충족되어야 한다. Cookie-based session handling : 유저는 이미 웹사이트에 로그인되어 있는 상태로 공격을 당하..
-
Cross-site Scripting Attack (XSS)concept/server 2020. 11. 1. 20:02
educative 를 요약한 자료입니다. What is a Cross-site Scripting attack? xss 공격은 악성 스크립트가 웹사이트에 주입된 공격의 한 종류 유저가 해당 웹사이트에 접속한 경우 악성 스크립트가 실행되고 해커는 유저의 브라우저로부터 기밀 정보를 가지고 간다. 이 공격은 유저가 어떤 정보를 입력하고 그 정보를 데이터베이스에 저장할 수 있는 웹사이트를 대상으로 한다. Types of Cross-site Scripting Attack 1. Stored Cross-site Scripting Attack 해커는 입력하는 칸 (input box)에 악성 코드를 입력하고, 그 코드는 웹 사이트의 데이터베이스에 저장될 것이다. 그리고나서 유저가 이 웹사이트를 열면 악성 스크립트가 담긴 ..