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の一種を使用することもできます。
詳細については、ドキュメントをご覧ください。
クライアント側では、追加のパラメーターtenant
とproduct
をsignIn
関数に渡す必要があります。これにより、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 });
}}
>