ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

 

๐Ÿ› ๏ธ Authentik OAuth Provider ๊ฐœ์š”

Authentik๋Š” ์˜คํ”ˆ์†Œ์Šค ์ธ์ฆ ์„œ๋ฒ„๋กœ, OAuth 2.0 ๋ฐ **OpenID Connect (OIDC)**๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
NextAuth.js์™€ ์—ฐ๋™ํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ์†์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ“ฆ ๊ธฐ๋ณธ ์„ค์ • ์˜ˆ์‹œ (pages/api/auth/[...nextauth].ts)

import NextAuth from "next-auth"
import AuthentikProvider from "next-auth/providers/authentik"

export default NextAuth({
  providers: [
    AuthentikProvider({
      clientId: process.env.AUTHENTIK_CLIENT_ID,
      clientSecret: process.env.AUTHENTIK_CLIENT_SECRET,
      issuer: process.env.AUTHENTIK_ISSUER,
    }),
  ],
})

๐Ÿ“‘ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • (.env)

AUTHENTIK_CLIENT_ID=your-authentik-client-id
AUTHENTIK_CLIENT_SECRET=your-authentik-client-secret
AUTHENTIK_ISSUER=https://auth.example.com
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-nextauth-secret

๐ŸŒ Authentik ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค์ •

  1. Authentik Admin Panel์— ์ ‘์†
  2. OAuth2 Provider๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ Client ID์™€ Client Secret์„ ๋ฐœ๊ธ‰
  3. Redirect URI ์„ค์ •:
  4. http://localhost:3000/api/auth/callback/authentik
  5. ๊ถŒํ•œ ๋ฒ”์œ„(Scope):
    • openid
    • profile
    • email

๐Ÿ”„ ํ† ํฐ ์„ค์ •

์‚ฌ์šฉ์ž ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ

async function jwt({ token, account }) {
  if (account?.provider === "authentik") {
    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>
    </>
  )
}

โš ๏ธ ์ฃผ์˜์‚ฌํ•ญ

  • Authentik ์ธ์Šคํ„ด์Šค ์„ค์ •์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์œผ๋ฉด ๋กœ๊ทธ์ธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Issuer URL์ด ์ •ํ™•ํžˆ ๋งž์•„์•ผ ์ธ์ฆ์ด ์ •์ƒ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
    ์˜ˆ: https://auth.example.com

 

NextAuth Authentik, Authentik OAuth ์„ค์ •, Next.js ์ธ์ฆ ๊ตฌํ˜„, Authentik Client ID ์„ค์ •, OpenID Connect ์—ฐ๋™, ์‚ฌ์šฉ์ž ์„ธ์…˜ ๊ด€๋ฆฌ, NextAuth ์ธ์ฆ ์ฒ˜๋ฆฌ, Authentik ์‚ฌ์šฉ์ž ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ, OAuth2 ์ธ์ฆ ์ฒ˜๋ฆฌ, SEO ์ตœ์ ํ™” 10๊ฐœ

 

โ€ป ์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค.
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2025/07   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
๊ธ€ ๋ณด๊ด€ํ•จ
๋ฐ˜์‘ํ˜•