Microsoft Entra ID
💡
微軟已將 Azure AD 更名為 Microsoft Entra ID,有關新名稱的更多資訊請參閱此處。
資源
設定
回呼 URL
https://example.com/api/auth/callback/microsoft-entra-id
環境變數
AUTH_MICROSOFT_ENTRA_ID_ID
AUTH_MICROSOFT_ENTRA_ID_SECRET
AUTH_MICROSOFT_ENTRA_ID_ISSUER
組態
/auth.ts
import NextAuth from "next-auth"
import MicrosoftEntraID from "next-auth/providers/microsoft-entra-id"
const { handlers, auth, signIn, signOut } = NextAuth({
providers: [
MicrosoftEntraID({
clientId: process.env.AUTH_MICROSOFT_ENTRA_ID_ID,
clientSecret: process.env.AUTH_MICROSOFT_ENTRA_ID_SECRET,
issuer: process.env.AUTH_MICROSOFT_ENTRA_ID_ISSUER,
}),
],
})
注意事項
- 僅允許特定的 Active Directory 使用者
- 在 https://entra.microsoft.com/ 中,從左側的選單中選取「身分識別」。
- 接下來,前往左側選單中的「應用程式註冊」,並建立一個新的應用程式。
- 請密切注意「誰可以使用此應用程式或存取此 API?」
- 這可讓您將存取範圍限制為特定類型的使用者帳戶
- 僅您的租用戶、所有微軟租用戶,或所有微軟租用戶和公開微軟帳戶(Skype、Xbox、Outlook.com 等)。
- 當被要求提供重新導向 URL 時,請使用
https://yourapplication.com/api/auth/callback/microsoft-entra-id
,或者用於開發時,請使用https://127.0.0.1:3000/api/auth/callback/microsoft-entra-id
。 - 在您的應用程式註冊建立後,在「用戶端密碼」下建立您的用戶端密碼。
- 現在複製您的
- 應用程式 (用戶端) ID
- 用戶端密碼 (值)
- 發行者
在 .env.local
中建立以下條目
AUTH_MICROSOFT_ENTRA_ID_ID=<copy Application (client) ID here>
AUTH_MICROSOFT_ENTRA_ID_SECRET=<copy generated client secret value here>
AUTH_MICROSOFT_ENTRA_ID_ISSUER=<copy the issuer here>
這會將租用戶預設為使用 common
授權端點。 如需更多詳細資訊,請參閱此處。
- Microsoft Entra 會以 ArrayBuffer 的形式傳回個人資料圖片,而不是單純傳回圖片的 URL,因此我們的供應商會將其轉換為 base64 編碼的圖片字串並改為傳回。請參閱: https://learn.microsoft.com/en-us/graph/api/profilephoto-get?view=graph-rest-1.0&tabs=http#examples。預設圖片大小為 48x48,以避免在工作階段以 JWT 儲存時空間不足。