ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฐ์ํ
๐ ๏ธ Azure AD OAuth Provider ๊ฐ์
Azure Active Directory(Azure AD)๋ OAuth 2.0 ๋ฐ OpenID Connect(OIDC) ๊ธฐ๋ฐ์ผ๋ก
Microsoft ๊ณ์ ์ ์ฌ์ฉํ์ฌ ์์ ํ๊ฒ ๋ก๊ทธ์ธํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
NextAuth.js์ ํตํฉํ์ฌ ๊ธฐ์
๊ณ์ , ์กฐ์ง ๊ณ์ , ์์
๊ณ์ ๋ฑ์ ํ์ฉํ ์ธ์ฆ์ด ๊ฐ๋ฅํฉ๋๋ค.
๐ฆ ๊ธฐ๋ณธ ์ค์ ์์ (pages/api/auth/[...nextauth].ts)
import NextAuth from "next-auth"
import AzureADProvider from "next-auth/providers/azure-ad"
export default NextAuth({
providers: [
AzureADProvider({
clientId: process.env.AZURE_AD_CLIENT_ID,
clientSecret: process.env.AZURE_AD_CLIENT_SECRET,
tenantId: process.env.AZURE_AD_TENANT_ID,
}),
],
})
๐ ํ๊ฒฝ ๋ณ์ ์ค์ (.env)
AZURE_AD_CLIENT_ID=your-client-id
AZURE_AD_CLIENT_SECRET=your-client-secret
AZURE_AD_TENANT_ID=your-tenant-id
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-nextauth-secret
๐ Azure AD ์ ํ๋ฆฌ์ผ์ด์ ์ค์
- Azure ํฌํธ ์ ์
- Azure Active Directory → App registrations → New registration
- Redirect URI:
- http://localhost:3000/api/auth/callback/azure-ad
- API ๊ถํ ์ถ๊ฐ:
- Microsoft Graph → User.Read, User.ReadBasic.All
- Certificates & Secrets:
- ํด๋ผ์ด์ธํธ ์ํฌ๋ฆฟ ๋ฐ๊ธ
- Token Configuration:
- ID ํ ํฐ, Access ํ ํฐ ๋ฐ๊ธ ํ์ฑํ
๐ ํ ํฐ ์ค์
๋ฐ์ํ
์ฌ์ฉ์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
async function jwt({ token, account }) {
if (account?.provider === "azure-ad") {
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>
</>
)
}
โ ๏ธ ์ฃผ์์ฌํญ
- Azure AD ํ ๋ํธ์ ํด๋ผ์ด์ธํธ ID ์ค์ ์ด ์ ํํ์ง ์์ผ๋ฉด ๋ก๊ทธ์ธ ์ค๋ฅ ๋ฐ์
- ๋ฐ๋์ OAuth 2.0 v2.0 ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ ์ํฌ๋ฆฟ๊ณผ ํ ๋ํธ ID๋ฅผ ํ๊ฒฝ ๋ณ์๋ก ๊ด๋ฆฌํ์ฌ ๋ณด์ ๊ฐํ
๐ ์ถ๊ฐ ๊ถํ ์ค์
Azure AD์์ ๋ค์๊ณผ ๊ฐ์ ๊ถํ์ ์ถ๊ฐ๋ก ์ค์ ํ ์ ์์ต๋๋ค:
- email: ์ด๋ฉ์ผ ์ ๋ณด ์ ๊ทผ
- profile: ์ฌ์ฉ์ ๊ธฐ๋ณธ ์ ๋ณด ์ ๊ทผ
- offline_access: ํ ํฐ ๊ฐฑ์
NextAuth Azure AD, Azure OAuth ์ค์ , Microsoft ์ธ์ฆ ๊ตฌํ, Azure Client ID ์ค์ , OAuth2 Next.js ์ฐ๋, ์ฌ์ฉ์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ, MS ๊ณ์ ๋ก๊ทธ์ธ, AD Tenant ์ค์ , OIDC ์ธ์ฆ ์ฒ๋ฆฌ, SEO ์ต์ ํ 10๊ฐ
'framework > NextAuth' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฆ Box OAuth Provider ์ค์ ์์ (0) | 2025.05.21 |
---|---|
๐ ๏ธ Battle.net OAuth Provider ๊ฐ์ (0) | 2025.05.20 |
๐ ๏ธ Azure AD B2C OAuth Provider ๊ฐ์ (0) | 2025.05.14 |
๐ ๏ธ Authentik OAuth Provider ๊ฐ์ (0) | 2025.05.13 |
๐ Auth0 OAuth Provider ๊ฐ์ (0) | 2025.05.12 |
โป ์ด ํฌ์คํ
์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค.
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
๋งํฌ
TAG
- nextJS
- SEO ์ต์ ํ
- ํ๋ก ํธ์๋๋ฉด์
- PostgreSQL
- NestJS
- ํ์ด์ฌ์๊ณ ๋ฆฌ์ฆ
- fastapi
- kotlin
- gatsbyjs
- AI์ฑ๋ด
- ๋ฐฑ์๋๊ฐ๋ฐ
- ํ๋ก ํธ์๋
- JAX
- REACT
- Prisma
- Ktor
- Next.js
- Docker
- ์น๊ฐ๋ฐ
- llm
- ๋ฅ๋ฌ๋
- SEO์ต์ ํ
- CI/CD
- flax
- App Router
- ๊ฐ๋ฐ๋ธ๋ก๊ทธ
- Python
- seo ์ต์ ํ 10๊ฐ
- rag
- nodejs
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
๊ธ ๋ณด๊ดํจ
๋ฐ์ํ