다음을 통해 공유


Microsoft 365용 대용량 전자 메일에 대한 OAuth 인증

OAuth 인증을 사용하여 SMTP 프로토콜에 연결하고 Office 365 사용자의 전자 메일 데이터에 액세스하는 방법을 알아봅니다.

아래에 설명된 대로 SMTP 프로토콜에 대한 OAuth2 지원은 Microsoft 365(웹용 Office 포함) 및 Outlook.com 사용자에게 제공됩니다.

OAuth 2.0 프로토콜에 익숙하지 않은 경우 Microsoft ID 플랫폼 개요에서 OAuth 2.0 프로토콜을 참조하세요. 사용자를 인증하고 보안 API에 액세스하기 위해 OAuth 2.0 프로토콜을 구현하는 MSAL(Microsoft 인증 라이브러리)에 대한 자세한 내용은 MSAL 개요를 참조하세요.

애플리케이션 등록

OAuth를 사용하려면 애플리케이션을 Microsoft Entra 등록해야 합니다.

Microsoft ID 플랫폼 애플리케이션 등록에 나열된 지침에 따라 새 애플리케이션을 만듭니다.

  1. 적어도 클라우드 애플리케이션 관리자로 Microsoft Entra 관리 센터 로그인합니다.

  2. ID>애플리케이션>으로 이동하고앱 등록새 등록을 선택합니다.

    새 등록의 스크린샷

  3. 애플리케이션의 표시 이름을 입력합니다. 애플리케이션 사용자가 앱을 사용할 때(예: 로그인하는 동안) 표시 이름이 표시될 수 있습니다. 언제든지 표시 이름을 변경할 수 있으며 여러 앱 등록에서 동일한 이름을 공유할 수 있습니다. 앱 등록의 표시 이름이 아닌 자동으로 생성된 애플리케이션(클라이언트) ID는 ID 플랫폼 내에서 앱을 고유하게 식별합니다.

    애플리케이션 등록 스크린샷

  4. 등록 후 여러 ID가 생성되며, 이 중 일부는 나중에 OAuth 2.0 토큰을 가져오는 데 필요합니다.

    여러 ID의 스크린샷.

API 권한 추가

  1. 왼쪽 메뉴에서 API 권한을 선택하고 권한 추가를 선택합니다.

    hveoauth api 권한의 스크린샷.

  2. organization 사용하는 API로 이동하고 Office 365 Exchange Online 검색합니다.

    organization 사용하는 API의 스크린샷.

  3. API 권한 요청에서 애플리케이션 권한을 선택하고 Mail.Send를 선택한 다음 권한 추가를 선택합니다.

  4. API 권한을 추가한 후 관리자는 관리자 동의 부여를 선택해야 합니다.

    관리자 동의 부여 스크린샷

레거시 OAuth 타사 애플리케이션이 앱 비밀과 함께 애플리케이션 권한을 사용하므로 위임 권한 및 애플리케이션 권한을 모두 지원합니다.

대리인 권한:

  1. API 권한 탭에서 Office 365 Exchange Online\위임된 권한에서 Mail.Send API 권한을 추가합니다.
  2. API 권한 탭에서 관리자 동의 부여를 선택합니다.
  3. 인증 탭에서 공용 클라이언트 흐름 허용을 사용하도록 설정합니다.
  4. HVE 메일 사용자의 자격 증명을 사용하여 대상 https://outlook.office.com/.default그룹에 대한 토큰을 요청합니다.

애플리케이션 권한:

  1. API 권한 탭에서 Office 365 Exchange Online\애플리케이션 권한에서 Mail.Send API 권한을 추가합니다.
  2. API 권한 탭에서 관리자 동의 부여를 선택합니다.
  3. 인증서 & 비밀 탭에서 새 클라이언트 암호를 추가합니다.
  4. 클라이언트 암호를 사용하여 대상 https://outlook.office.com/.default그룹에 대한 토큰을 요청합니다.

HVE SMTP 프로토콜 교환

SMTP 서버 연결을 인증하려면 클라이언트가 형식의 명령 SASL XOAUTH2 으로 AUTH 응답해야 합니다. SASL XOAUTH2 사용자 이름과 액세스 토큰을 다음 형식으로 함께 인코딩합니다.

base64("user=" + userName + "^Aauth=Bearer " + accessToken + "^A^A") 

^A 컨트롤 + A(%x01)를 나타냅니다.

예를 들어 SASL XOAUTH2 액세스 토큰 EwBAAl3BAAUFFpUAo7J3Ve0bjLBWZWCclRC3EoAA 을 사용하여 액세스 application@contoso.onmicrosoft.com 하는 형식은 다음과 같습니다.

base64("user=application@contoso.onmicrosoft.com^Aauth=Bearer EwBAAl3BAAUFFpUAo7J3Ve0bjLBWZWCclRC3EoAA^A^A") 

인증 성공을 초래하는 샘플 클라이언트-서버 메시지 교환:

[connection begins]

C: auth xoauth2

S: 334

C: dXNlcj1hcHBsaWNhdGlvbkBjb250b3NvLm9ubWljcm9zb2Z0LmNvbQFBdXRoPUJlYXJlciBFd0JBQWwzQkFBVUZGcFVBbzdKM1ZlMGJqTEJXWldDY2xSQzNFb0FBAQE=

S: 235 2.7.0 Authentication successful

[connection continues...]

인증 실패를 초래하는 샘플 클라이언트-서버 메시지 교환:

[connection begins]

C: auth xoauth2

S: 334

C: dXNlcj1hcHBsaWNhdGlvbkBjb250b3NvLm9ubWljcm9zb2Z0LmNvbQFBdXRoPUJlYXJlciBFd0JBQWwzQkFBVUZGcFVBbzdKM1ZlMGJqTEJXWldDY2xSQzNFb0FBAQE=

S: 535 5.7.3 Authentication unsuccessful