SailPoint ISC 提供商
SailPoint Identity Secure Cloud (ISC) 是一个企业级 SaaS 平台,用于身份和安全。要使用此 OAuth 集成,您需要一个 ISC 租户。如果您是 SailPoint 的客户或合作伙伴,请联系您的 SailPoint 账户经理了解更多详细信息。如果您是开发人员,请查看 SailPoint 开发者社区。
💡
此提供商未与任何 Auth.js 包一起发布,因为它是一个企业提供商,我们无法获得租户来测试和确保兼容性。也就是说,我们希望将此类提供商提供给我们的用户,因此我们将在此类文档页面上共享提供商的复制和粘贴版本。以下提供的提供商配置按原样提供,并由拥有 SailPoint 租户访问权限的社区成员提交。
资源
设置
回调 URL
https://example.com/api/auth/callback/sailpoint
创建 OAuth 客户端
首先,您需要在 SailPoint 管理控制台中创建一个客户端,以便获取您的 clientId
和 clientSecret
。您可以按照此 指南,或者按照以下主要步骤进行操作。
- 创建 OAuth 客户端 (),授权类型为:
AUTHORIZATION_TOKEN
和REFRESH_TOKEN
。 - 将重定向 URL 设置为与您的回调 URL 匹配,以匹配上述示例。
- 最后,选择范围
sp:scope:all
。 - 单击“创建”,并记下生成的
clientId
和clientSecret
。
环境变量
AUTH_SAILPOINT_ID=
AUTH_SAILPOINT_SECRET=
AUTH_SAILPOINT_BASE_URL=https://{tenant}.identitynow.com
AUTH_SAILPOINT_BASE_API_URL=https://{tenant}.api.identitynow.com
配置
与其他 Auth.js 提供商不同,此提供商无法从包中导入(有关更多详细信息,请参阅此页面顶部的注释)。但是,您可以将以下对象复制并粘贴到您的 providers
数组中以启用此提供商。
/auth.ts
import NextAuth from "next-auth"
export const { handlers, auth, signIn, signOut } = NextAuth({
providers: [
{
id: "sailpoint",
name: "SailPoint",
type: "oauth",
clientId: process.env.AUTH_SAILPOINT_ID!,
clientSecret: process.env.AUTH_SAILPOINT_SECRET!,
authorization: {
url: `${process.env.AUTH_SAILPOINT_BASE_URL!}/oauth/authorize`,
params: { scope: "sp:scopes:all" },
},
token: `${process.env.AUTH_SAILPOINT_BASE_API_URL!}/oauth/token`,
userinfo: `${process.env.AUTH_SAILPOINT_BASE_API_URL!}/oauth/userinfo`,
profile(profile) {
return {
id: profile.id,
email: profile.email,
name: profile.uid,
image: null,
}
},
style: { brandColor: "#011E69", logo: "sailpoint.svg" },
},
],
})
配置文件
SailPoint userprofile
端点将返回更多字段,但默认情况下 用户表 仅支持 id
、name
、email
和 image
。因此,如果您想使用以下任何字段,并且您正在使用具有 Auth.js 的数据库适配器,请确保修改您正在使用的适配器和数据库中的 User
表模式。然后,您可以从上面的 profile
回调中另外返回这些字段中的任何一个。
SailPoint userprofile
端点响应中可用的字段包括以下内容。
type SailPointProfile = {
tenant: string
id: string
uid: string
email: string
phone: string
workPhone: string
firstname: string
lastname: string
capabilities: string
displayName: string
name: string
}