コンテンツにスキップ
NextAuth.js v4 からの移行ですか? 移行ガイドをお読みください.

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クライアントの作成

まず、clientIdclientSecretを取得するために、SailPoint管理コンソールでクライアントを作成する必要があります。このガイドに従うか、以下の主な手順に従ってください。

  1. 付与タイプがAUTHORIZATION_TOKENREFRESH_TOKENのOAuthクライアント()を作成します。
  2. リダイレクトURLを上記の例に基づいてコールバックURLと一致するように設定します。
  3. 最後に、スコープsp:scope:allを選択します。
  4. 作成」をクリックし、生成されたclientIdclientSecretをメモしてください。

環境変数

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エンドポイントはより多くのフィールドを返しますが、デフォルトではUserテーブルidnameemailimageのみをサポートしています。したがって、次のいずれかのフィールドを使用したい場合、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
}
Auth.js © Balázs Orbán and Team -2024