framework/NextAuth
๐ ๏ธ Azure AD B2C OAuth Provider ๊ฐ์
octo54
2025. 5. 14. 10:59
๋ฐ์ํ
๐ ๏ธ Azure AD B2C OAuth Provider ๊ฐ์
Azure AD B2C๋ Microsoft์ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ID ๊ด๋ฆฌ ์๋น์ค๋ก,
OAuth 2.0 ๋ฐ OpenID Connect(OIDC)๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆํ ์ ์์ต๋๋ค.
NextAuth.js์ ํตํฉํ์ฌ MS ๊ณ์ , ์กฐ์ง ๊ณ์ , ์์
๊ณ์ ๋ฑ์ผ๋ก ์ธ์ฆํ ์ ์์ต๋๋ค.
๐ฆ ๊ธฐ๋ณธ ์ค์ ์์ (pages/api/auth/[...nextauth].ts)
import NextAuth from "next-auth"
import AzureADB2CProvider from "next-auth/providers/azure-ad-b2c"
export default NextAuth({
providers: [
AzureADB2CProvider({
clientId: process.env.AZURE_AD_B2C_CLIENT_ID,
clientSecret: process.env.AZURE_AD_B2C_CLIENT_SECRET,
tenantId: process.env.AZURE_AD_B2C_TENANT_ID,
primaryUserFlow: "B2C_1_sign_in",
authorization: {
params: {
scope: "https://yourtenant.onmicrosoft.com/api/user.read",
},
},
}),
],
})
๐ ํ๊ฒฝ ๋ณ์ ์ค์ (.env)
AZURE_AD_B2C_CLIENT_ID=your-client-id
AZURE_AD_B2C_CLIENT_SECRET=your-client-secret
AZURE_AD_B2C_TENANT_ID=your-tenant-id
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-nextauth-secret
๐ Azure AD B2C ์ ํ๋ฆฌ์ผ์ด์ ์ค์
- Azure ํฌํธ ์ ์
- Azure AD B2C → App registrations → New registration
- Redirect URI:
- http://localhost:3000/api/auth/callback/azure-ad-b2c
- API ๊ถํ ์ถ๊ฐ:
- Microsoft Graph → User.Read, User.ReadBasic.All
๐ ์ฌ์ฉ์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
async function jwt({ token, account }) {
if (account?.provider === "azure-ad-b2c") {
token.accessToken = account.access_token
}
return token
}
์ธ์ ์ ํฌํจ์ํค๊ธฐ
async function session({ session, token }) {
session.accessToken = token.accessToken
return session
}
๐ง๐ป ์ฌ์ฉ์ ์ ๋ณด ํ์ ์์
๋ฐ์ํ
import { useSession } from "next-auth/react"
export default function Profile() {
const { data: session } = useSession()
return (
<>
<p>Signed in as {session?.user?.name}</p>
<p>Access Token: {session?.accessToken}</p>
</>
)
}
โ ๏ธ ์ฃผ์์ฌํญ
- Tenant ID์ User Flow ์ด๋ฆ์ด ์ ํํ์ง ์์ผ๋ฉด ์ธ์ฆ์ด ์คํจํ ์ ์์ต๋๋ค.
- primaryUserFlow๋ Azure AD B2C์์ ์ ์ํ ์ฌ์ฉ์ ํ๋ฆ์ ์ด๋ฆ๊ณผ ์ผ์นํด์ผ ํฉ๋๋ค.
- ๊ถํ(Scope)์ ๋ช ์ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ๋ฉ๋๋ค.
NextAuth Azure AD B2C, Azure OAuth ์ค์ , Microsoft ์ธ์ฆ ๊ตฌํ, Azure Client ID ์ค์ , OAuth2 Next.js ์ฐ๋, ์ฌ์ฉ์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ, MS ๊ณ์ ๋ก๊ทธ์ธ, B2C Tenant ์ค์ , OIDC ์ธ์ฆ ์ฒ๋ฆฌ, SEO ์ต์ ํ 10๊ฐ