OAuth 인증 코드 흐름

인증 코드 흐름은 타사 애플리케이션이 자격증명을 노출하지 않고도 사용자의 리소스에 액세스할 수 있도록 하기 위해 OAuth 2.0에서 사용되는 보안 프로토콜입니다.

이 흐름에서 클라이언트 애플리케이션은 사용자를 권한 부여 서버로 리디렉션하여 로그인하고 클라이언트의 액세스 요청을 승인합니다. 승인 후 인증 서버는 인증 코드를 클라이언트에 전송하고, 클라이언트는 이를 액세스 토큰 및 선택적으로 새로 고침 토큰과 교환합니다. 그런 다음 이 액세스 토큰은 사용자를 대신하여 리소스 서버에 승인된 요청을 하는 데 사용됩니다.

이 흐름은 일반적으로 사용자가 자신의 자격증명을 직접 공유하지 않고 타사 애플리케이션에 리소스(예: 데이터 또는 서비스)에 대한 액세스 권한을 부여하려는 시나리오에서 사용됩니다.

인증 코드 흐름과 PKCE(코드 교환용 증명 키)를 사용한 인증 코드 흐름의 주요 차이점은 특히 모바일 및 기본 애플리케이션에 대한 특정 공격을 방지하는 데 사용되는 보안 메커니즘에 있습니다.

표준 인증 코드 흐름에서 클라이언트는 사용자가 인증 서버에 인증한 후 인증 코드를 받습니다. 그런 다음 클라이언트는 이 코드를 액세스 토큰으로 교환합니다. 그러나 이 흐름은 인증 코드 가로채기 공격에 취약하며, 공격자가 인증 코드를 가로채서 액세스 토큰을 얻는 데 사용할 수 있습니다.

PKCE를 사용한 권한 부여 코드 흐름은 동적으로 생성된 암호인 코드 검증기를 사용하여 권한 부여 요청을 인증함으로써 보안 계층을 추가합니다. 따라서 특히 모바일 또는 기본 애플리케이션과 같이 클라이언트 비밀을 안전하게 저장하기 어려운 환경에서 더욱 안전하게 사용할 수 있습니다.

인증 코드 흐름을 사용하여 권한 부여 유형을 만들려면:

프로시저

  1. OAuth 연결 생성에서 1~6단계를 완료합니다.
  2. 부여 유형을 인증 코드 흐름 또는 PKCE를 사용한 인증 코드 흐름으로 선택하여 사용자 인증과 토큰 발급자를 분리합니다. 이렇게 하면 민감한 자격증명을 노출하지 않고도 장기 액세스를 위한 새로 고침 토큰을 지원하는 부여 유형이 제공되므로 보안이 강화됩니다. Microsoft 365 Outlook 패키지에서 인증 코드 흐름을 사용할 때 다음 권한을 검토하십시오. 신청 권한 항목을 참조하십시오.
    • Mail.Read
    • Mail.ReadWrite
    • Mail.Send
    • MailboxSettings.Read
    • MailboxSettings.ReadWrite
    • offline_access
    • openid
    • User.Read
    • User.ReadBasic.All
    클라이언트 비밀 게시 인증 방법을 PKCE를 사용한 인증 코드 흐름 부여 유형과 병행하여 사용해야 합니다. 그렇지 않으면 검증 오류가 발생합니다.
  3. OAuth 연결 생성에서 8~18단계를 완료하십시오.