CodeSoom / oauth2-in-action

코드숨 OAuth2 in Action 책 스터디 문제 모음집

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OAuth 2 in Action 문제 모음

1장 OAuth 2.0이 무엇이고, 왜 관심을 가져야 할까?

  1. 자격 증명 공유 방법의 위험성은 무엇인가요?
  2. 자격 증명 공유를 안전하게 할 수 있는 방법은 무엇인가요?
  3. 접근 권한 위임 방법은 무엇인가요?
  4. 접근 권한 위임에서 접근 권한을 허용하는 절차에 대해서 설명해 주세요.
  5. OAuth 2.0이 TOFU(Trust On First Use)원칙을 따르는 이유는 무엇인가요?
  6. OAuth 2.0이 HTTP 프로토콜과 독립적으로 정의되지 않는 이유는 무엇인가요?

2장 OAuth 2.0의 기본

  1. OAuth 트랜잭션의 두 가지 중요한 단계는 무엇인가요?
  2. Authorization Grant절차에 대해서 설명해 주세요.
  3. OAuth는 4개의 구성원이 함께 동작합니다. 각 구성원에 대해서 설명해 주세요.
  4. OAuth의 구성 요소 중 액세스 토큰에 대해서 설명해 주세요.
  5. OAuth의 구성 요소 중 Scope에 대해서 설명해 주세요.
  6. 클라이언트가 리프레시 토큰을 사용해야 하는 이유는 무엇인가요?
  7. 인가 그랜트란 무엇인가요?
  8. OAuth의 구성 요소는 서로 간의 통신을 위해 직접적, 간접적인 HTTP 통신을 수행합니다. 두 통신에 차이점에 대해서 설명해 주세요.

3장 간단한 OAuth 클라이언트

  1. 인가 요청에 리다이렉트 URI가 포함되어 있었다면 토큰을 요청할때도 그것과 동일한 URI를 함께 전달해야 하는 이유는 무엇인가요?
  2. state 파라미터를 추가해야 하는 이유는 무엇인가요?
  3. OAuth 클라이언트는 언제든지 액세스 토큰이 작동을 멈출 수 있다고 예상하고, 그에 따른 올바른 대응을 할 수 있어야 하는 이유는 무엇인가요?

4장 간단한 OAuth 리소스 서버

  1. Bearer 토큰을 보내는 3가지 방법은 무엇인가요?

5장 간단한 OAuth 인가 서버

  1. OAuth2.0이 만들어 지면서 클라이언트나 보호된 리소스에 대한 복잡한 내용들이 최대한 인가서버로 포함된 이유는 무엇인가요?
  2. 인가서버가 2개의 엔드포인트를 가져야 하는 이유는 무엇인가요?
  3. client_id는 프론트채널로 전달되어서 공개될 수 있습니다. 그래서 아무나 흉내낼 수 있는데, 이를 방지할 수 있는 방법은 무엇일까요?
  4. 클라이언트의 인가 코드가 확인되면 저장 정보를 즉시 삭제해야 하는 이유는 무엇인가요?
  5. 인가 서버가 클라이언트를 인가하여 토큰을 발급하는 과정을 설명해 주세요.
  6. 리프레시 토큰을 사용하여 새로운 인증 토큰을 발급하는 과정을 설명해 주세요.
  7. 권한 범위를 통해서 권한을 제한하는 과정을 설명해 주세요.

6장 현실 세계의 OAuth 2.0

  1. 암시적 그랜트 타입은 언제 사용하나요?
  2. 암시적 그랜트 타입을 사용하기 전에 고려해야 하는 제한 사항은 무엇인가요?
  3. 암시적 그랜트 타입을 사용해 토큰을 얻는 과정에 대해서 설명해 주세요.
  4. 클라이언트 자격 증명 그랜트 타입은 언제 사용하나요?
  5. 클라이언트 자격 증명 그랜트 타입은 왜 리프레시 토큰이 필요 없나요?
  6. 클라이언트 자격 증명을 사용해 토큰을 얻는 과정에 대해서 설명해 주세요.
  7. 리소스 소유자 자격 증명은 언제 사용하나요?
  8. 리소스 소유자 자격 증명을 사용해 토큰을 얻는 과정에 대해서 설명해 주세요.
  9. 어설션 그랜트 타입 증명을 사용해 토큰을 얻는 과정에 대해서 설명해 주세요.
  10. 올바른 그랜트 타입을 선택하기 위해서 고려해야 하는 것들은 무엇인가요?

7장 일반적인 클라이언트 보안 취약점

  1. CSRF 공격을 피하기 위해 왜 state 파라미터를 사용해야 하나요?
  2. state 파라미터를 올바르게 사용하는 방법은 무엇인가요?
  3. 인가 서버에 rediect_uri를 등록할 때 최대한 구체적으로 작성해야 하는 이유는 무엇인가요?

8장 일반적인 보호된 리소스 보안 취약점

  1. 보호된 리소스에 대해서 어떤 보안 취약점이 있나요?
  2. 특정 엔드 포인트가 XSS 공격에 취약하지 않도록 만들기 위해 리소스 서버가 할 수 있는 것은 무엇이 있을까요?
  3. 암시적 그랜트에서 Same Origin Policy로 인해 요청이 거부될 경우 어떻게 해야하나요?
  4. 액세스 토큰의 유효 기간을 상대적으로 짧게 가져가는 것이 중요한 이유는 무엇인가요?

9장 일반적인 인가 서버 보안 취약점

  1. 인가 코드를 한 번 초과 사용하면 안되는 이유는 무엇인가요?
  2. 인가 코드가 인증된 클라이언트에 발급됐는지 확인해야 하는 이유는 무엇인가요?
  3. 리다이렉트 URI가 완전히 일치하는지 검증해야 하는 이유는 무엇인가요? 하위 도메인이나 하위 디렉토리까지 허용할 경우 어떤 위험에 노출되나요?

10장 일반적인 OAuth 토큰 보안 취약점

  1. Bearer 토큰과 관련된 보안 위험은 어떤 것이 있나요?
  2. 클라이언트에서 토큰 탈취에 대한 대응책은 무엇인가요?
  3. 인가서버에서 토큰 탈취에 대한 예방책은 무엇인가요?
  4. PKCE는 어떤 문제를 해결하기 위해 만들어졌나요? 그리고 그것을 어떻게 해결하나요?

11장 OAuth 토큰

  1. OAuth 스펙에서 토큰에 대해 구체적으로 정의하지 않은 이유는 무엇인가요?
  2. JWT를 쓰면 좋은점은 무엇인가요?
  3. 토큰 인트로스펙션은 JWT의 어떤 단점을 보완하기 위해 만들어졌나요?
  4. 토큰 인트로스펙션 프로토콜의 동작 과정에 대해서 설명해 주세요.
  5. 토큰 인트로스펙션 응답에 반드시 포함되어야 하는 데이터는 무엇인가요?
  6. 토큰 인트로스펙션을 사용하면 네트워크 트래픽이 증가할 수 있습니다. 이에 대한 대응책은 무엇인가요?

12장 클라이언트 동적 등록

  1. 동적 클라이언트 등록이 필요한 상황은 어떤 상황인가요?
  2. 동적 클라이언트 등록 방법은 클라이언트 식별자와 시크릿을 항상 인가 서버가 관리합니다. 그 이유는 무엇인가요?
  3. 동적 OAuth 클라이언트에 대한 보안 고려 사항은 무엇인가요?

13장 OAuth 2.0에서의 사용자 인증

  1. OAuth 2.0이 인증 프로토콜이 아닌 이유는 무엇인가요?
  2. 인가 프로토콜 위에 인증 프로토콜을 구축하여 얻는 이점은 무엇인가요?
  3. 보호된 리소스의 엑세스 토큰을 받았다고 하더라도 그것을 인증의 증거로 간주하면 안되는 이유는 무엇인가요?
  4. OpenID 커넥트란 무엇인가요?

출처

About

코드숨 OAuth2 in Action 책 스터디 문제 모음집