providers/boxyhq-saml
BoxyHQSAMLProfile
扩展
Record
<string
,any
>
属性
email: string;
firstName?
optional firstName: string;
id
id: string;
lastName?
optional lastName: string;
default()
default<P>(options): OAuthConfig<P>
在您的页面中添加 BoxyHQ SAML 登录。
BoxyHQ SAML 是一款开源服务,它将 SAML SSO 登录流程作为 OAuth 2.0 流程处理,从而消除了 SAML 协议的所有复杂性。轻松实现应用程序中的企业单点登录。
您可以将 BoxyHQ SAML 部署为单独的服务,也可以使用我们的 NPM 库将其嵌入到您的应用程序中。 查看文档了解更多详细信息
设置
回调 URL
https://example.com/api/auth/callback/boxyhq-saml
配置
对于 OAuth 2.0 流
import { Auth } from "@auth/core"
import BoxyHQ from "@auth/core/providers/boxyhq-saml"
const request = new Request(origin)
const response = await Auth(request, {
providers: [
BoxyHQ({
authorization: { params: { scope: "" } }, // This is needed for OAuth 2.0 flow, otherwise default to openid
clientId: BOXYHQ_SAML_CLIENT_ID,
clientSecret: BOXYHQ_SAML_CLIENT_SECRET,
issuer: BOXYHQ_SAML_ISSUER,
}),
],
})
对于 OIDC 流
import { Auth } from "@auth/core"
import BoxyHQ from "@auth/core/providers/boxyhq-saml"
const request = new Request(origin)
const response = await Auth(request, {
providers: [
BoxyHQ({
clientId: BOXYHQ_SAML_CLIENT_ID,
clientSecret: BOXYHQ_SAML_CLIENT_SECRET,
issuer: BOXYHQ_SAML_ISSUER,
}),
],
})
资源
配置
SAML 登录需要为您的每个租户配置。一种常见方法是使用电子邮件地址的域来确定他们属于哪个租户。您也可以使用来自后端的唯一租户 ID(字符串)来实现此目的,通常是某种帐户或组织 ID。
查看 文档 了解更多详细信息。
在客户端,您需要将额外的参数 tenant
和 product
传递给 signIn
函数。这将允许 BoxyHQL SAML 找出正确的 SAML 配置,并将您的用户带到正确的 SAML 身份提供者以进行登录。
import { signIn } from "auth";
...
// 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 假设 BoxyHQ 提供者基于 OAuth 2 规范。
💡
BoxyHQ 提供商附带 默认配置。要覆盖您的用例的默认值,请查看 自定义内置 OAuth 提供者。
类型参数
类型参数 |
---|
P extends BoxyHQSAMLProfile |
参数
参数 | 类型 |
---|---|
options | OAuthUserConfig <P > |
返回值
OAuthConfig
<P
>