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クライアントの作成
まず、clientId
とclientSecret
を取得するために、SailPoint管理コンソールでクライアントを作成する必要があります。このガイドに従うか、以下の主な手順に従ってください。
- 付与タイプが
AUTHORIZATION_TOKEN
とREFRESH_TOKEN
のOAuthクライアント()を作成します。 - リダイレクト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
配列にコピー&ペーストして、このプロバイダーを有効にすることができます。
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
エンドポイントはより多くのフィールドを返しますが、デフォルトではUserテーブルは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
}