コンテンツへスキップ
NextAuth.js v4からの移行?こちらをご覧ください 移行ガイド.

BoxyHQ SAML プロバイダー

リソース

設定

BoxyHQ SAMLログインをページに追加します。

BoxyHQ SAMLは、SAML SSOログインフローをOAuth 2.0フローとして処理し、SAMLプロトコルの複雑さをすべて抽象化するオープンソースサービスです。アプリでエンタープライズシングルサインオンを簡単に有効にします。

BoxyHQ SAMLは、個別のサービスとしてデプロイするか、NPMライブラリを使用してアプリに埋め込むことができます。詳細については、ドキュメントをご覧ください

コールバックURL

https://example.com/api/auth/callback/boxyhq-saml

環境変数

AUTH_BOXYHQ_SAML_ID
AUTH_BOXYHQ_SAML_SECRET
AUTH_BOXYHQ_SAML_ISSUER

設定

/auth.ts
import NextAuth from "next-auth"
import BoxyHQ from "next-auth/providers/boxyhq-saml"
 
export const { handlers, auth, signIn, signOut } = NextAuth({
  providers: [
    BoxyHQ({
      authorization: { params: { scope: "" } }, // This is needed for OAuth 2.0 flow, otherwise default to openid
      clientId: AUTH_BOXYHQ_SAML_ID,
      clientSecret: AUTH_BOXYHQ_SAML_SECRET,
      issuer: AUTH_BOXYHQ_SAML_ISSUER,
    }),
  ],
})

SAML

SAMLログインには、テナントごとに設定が必要です。一般的な方法は、メールアドレスのドメインを使用して、ユーザーがどのテナントに属しているかを判断することです。バックエンドからの一意のテナントID(文字列)、通常はアカウントまたは組織IDの一種を使用することもできます。

詳細については、ドキュメントをご覧ください。

クライアント側では、追加のパラメーターtenantproductsignIn関数に渡す必要があります。これにより、BoxyHQ SAMLは適切なSAML設定を判断し、ユーザーを適切なSAML IDプロバイダーに誘導してサインインできます。

import { signIn } from "next-auth/react";
 
// Map your users's email to a tenant and product
const tenant = email.split("@")[1];
const product = 'my_awesome_product';
 
<Button
  onClick={async (event) => {
    event.preventDefault();
 
    signIn("boxyhq-saml", {}, { tenant, product });
  }}
>
Auth.js © Balázs Orbán and Team -2024