跳至内容
从 NextAuth.js v4 迁移?请阅读 我们的迁移指南.
入门提供商Boxyhq Saml

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。

查看 文档 以获取更多详细信息。

在客户端,您需要将额外的参数 tenantproduct 传递给 signIn 函数。这将允许 BoxyHQL SAML 找出正确的 SAML 配置,并将您的用户带到正确的 SAML 身份提供者以登录。

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 和团队 -2024