Microsoft Entra ID
💡
Microsoftは、**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/ で、左側のバーメニューから「ID」を選択します。
- 次に、左側のメニューの「アプリの登録」に移動し、新しいアプリを登録します。
- 「誰がアプリケーションを使用したり、このAPIにアクセスしたりできますか?」に細心の注意を払ってください。
- これは、特定の種類のユーザーアカウントへのアクセスをスコープすることができます。
- 自分のテナントのみ、すべてのMicrosoftテナント、またはすべてのMicrosoftテナントとパブリックMicrosoftアカウント(Skype、Xbox、Outlook.comなど)
- リダイレクトURLを聞かれたら、
https://yourapplication.com/api/auth/callback/microsoft-entra-id
を使用します。開発の場合は、http://localhost: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は、画像のURLではなく、ArrayBufferでプロフィール画像を返します。そのため、プロバイダーはbase64エンコードされた画像文字列に変換して、代わりにそれを返します。次を参照してください:https://learn.microsoft.com/en-us/graph/api/profilephoto-get?view=graph-rest-1.0&tabs=http#examples。セッションがJWTとして保存される場合に容量不足になるのを避けるため、デフォルトの画像サイズは48x48です。