Skip to content
Migrating from NextAuth.js v4? Read our migration guide.

Azure AD Provider

⚠️

더 이상 사용되지 않음 - Microsoft는 이 제품을 Microsoft Entra ID로 리브랜딩했으며, 모든 지원 작업은 해당 IdP로 이전될 예정입니다. 여러분도 해당 프로바이더로 마이그레이션하는 것을 권장합니다.

리소스

설정

콜백 URL

https://example.com/api/auth/callback/azure-ad

환경 변수

AUTH_AZURE_AD_ID
AUTH_AZURE_AD_SECRET
AUTH_AZURE_AD_TENANT_ID

설정

/auth.ts
import NextAuth from "next-auth"
import AzureAd from "next-auth/providers/azure-ad"
 
export const { handlers, auth, signIn, signOut } = NextAuth({
  providers: [AzureAd],
})

특정 Active Directory 사용자에게 접근 권한을 부여하는 방법:

  1. https://portal.azure.com/에서 “Azure Active Directory”를 검색하고 조직을 선택합니다.
  2. 왼쪽 메뉴에서 “앱 등록”으로 이동하여 새 앱을 등록합니다.
  3. “이 애플리케이션 또는 API에 접근할 수 있는 사용자” 옵션에 주의하세요.
    • 이 설정을 통해 특정 유형의 사용자 계정에만 접근 권한을 제한할 수 있습니다.
    • 선택 가능한 옵션은 다음과 같습니다:
      • 현재 테넌트만
      • 모든 Azure 테넌트
      • 모든 Azure 테넌트 및 개인 Microsoft 계정(Skype, Xbox, Outlook.com 등)
  4. 리디렉션 URL을 입력할 때는 https://yourapplication.com/api/auth/callback/azure-ad를 사용하거나, 개발 환경에서는 http://localhost:3000/api/auth/callback/azure-ad를 사용합니다.
  5. 앱 등록이 완료되면 “클라이언트 자격 증명”에서 클라이언트 비밀 키를 생성합니다.
  6. “API 권한”을 클릭한 후 “관리자 동의 부여…”를 선택하여 테넌트에 User.Read 접근 권한을 허용합니다.
  7. 다음 정보를 복사합니다:
    • 애플리케이션(클라이언트) ID
    • 디렉터리(테넌트) ID
    • 클라이언트 비밀 키(값)

.env.local 파일에 다음 항목을 추가합니다:

AUTH_AZURE_AD_CLIENT_ID=<여기에 애플리케이션(클라이언트) ID를 붙여넣으세요>
AUTH_AZURE_AD_CLIENT_SECRET=<여기에 생성된 클라이언트 비밀 키 값을 붙여넣으세요>
AUTH_AZURE_AD_TENANT_ID=<여기에 테넌트 ID를 붙여넣으세요>

이 설정은 테넌트가 common 인증 엔드포인트를 사용하도록 기본값으로 설정합니다. 자세한 내용은 여기를 참조하세요.

애플리케이션이 테넌트뿐만 아니라 모든 Microsoft 사용자로부터도 인증 요청을 받도록 하려면 AUTH_AZURE_AD_TENANT_ID에 “common”을 추가합니다. 이렇게 하면 테넌트 인증을 “건너뛰게” 됩니다.

AUTH_AZURE_AD_TENANT_ID=common

Azure AD는 프로필 사진을 URL 대신 ArrayBuffer로 반환합니다. 따라서 프로바이더가 이를 base64로 인코딩된 이미지 문자열로 변환하여 반환합니다. 자세한 내용은 다음을 참조하세요: https://docs.microsoft.com/en-us/graph/api/profilephoto-get?view=graph-rest-1.0#examples. 기본 이미지 크기는 48x48로 설정되어 있으며, 이는 세션이 JWT로 저장될 경우 공간 부족 문제를 방지하기 위함입니다.

pages/api/auth/[...nextauth].js 파일에서 AzureAD 항목을 찾거나 추가합니다:

import AzureADProvider from "next-auth/providers/azure-ad"
 
providers: [
  AzureADProvider({
    clientId: process.env.AZURE_AD_CLIENT_ID,
    clientSecret: process.env.AZURE_AD_CLIENT_SECRET,
    tenantId: process.env.AZURE_AD_TENANT_ID,
  }),
]
Auth.js © Balázs Orbán and Team - 2025