Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(provider): SailPoint Identity Secure Cloud (ISC) #10723

Merged
merged 27 commits into from May 10, 2024
Merged
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
c5fdf1d
Create sailpoint.ts
mike818148 Apr 25, 2024
9287ddc
add sailpoint provider logo
mike818148 Apr 25, 2024
41d31d7
Update sailpoint.ts
mike818148 Apr 25, 2024
c022cd0
Update 2_bug_provider.yml
mike818148 Apr 25, 2024
1ac29d5
Merge pull request #1 from mike818148/patch-2
mike818148 Apr 25, 2024
cee371d
Merge pull request #2 from mike818148/patch-4
mike818148 Apr 25, 2024
334857e
Merge branch 'main' into main
mike818148 Apr 26, 2024
bb3872f
Merge branch 'main' into main
mike818148 Apr 29, 2024
5953876
Merge branch 'main' into main
mike818148 Apr 30, 2024
fcd6c6b
Merge branch 'nextauthjs:main' into main
mike818148 May 2, 2024
2c3d247
Create sailpoint.mdx
mike818148 May 2, 2024
f08ba83
Delete packages/core/src/providers/sailpoint.ts
mike818148 May 6, 2024
f794961
Update 2_bug_provider.yml
mike818148 May 6, 2024
93f359f
Update sailpoint.mdx
mike818148 May 6, 2024
6103578
Merge branch 'main' into main
mike818148 May 6, 2024
245695e
Update sailpoint.mdx
mike818148 May 6, 2024
4b44000
Update sailpoint.mdx
mike818148 May 6, 2024
ab14b9b
Merge branch 'main' into main
mike818148 May 6, 2024
8c8e51b
Update docs/pages/getting-started/providers/sailpoint.mdx
ndom91 May 7, 2024
f661592
Update docs/pages/getting-started/providers/sailpoint.mdx
ndom91 May 7, 2024
e5673a9
Update docs/pages/getting-started/providers/sailpoint.mdx
ndom91 May 7, 2024
f857b73
Update sailpoint.mdx
mike818148 May 7, 2024
ae4a527
Merge branch 'main' into main
mike818148 May 7, 2024
7336c65
Update sailpoint.mdx
mike818148 May 9, 2024
1e531ab
Merge branch 'main' into main
mike818148 May 9, 2024
51ce1df
Update sailpoint.mdx
mike818148 May 9, 2024
16e0237
Merge branch 'main' into main
ndom91 May 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
176 changes: 176 additions & 0 deletions docs/pages/getting-started/providers/sailpoint.mdx
@@ -0,0 +1,176 @@
import { Callout } from "nextra/components"
import { Code } from "@/components/Code"

<img align="right" src="/img/providers/sailpoint.svg" height="64" width="64" />

# SailPoint Identity Secure Cloud Provider

SailPoint Identity Secure Cloud (ISC) is an enterprise SaaS platform for identity and security. In order to use this OAuth integration, you will need an ISC tenant. If you're a SailPoint customer or partner, please talk to your SailPoint account manager for more details. If you are a developer, you can check out the [SailPoint Developer Community](https://developer.sailpoint.com/discuss/).

## Resources

- [SailPoint Identity Secure Cloud Authentication](https://developer.sailpoint.com/docs/api/authentication#choose-authorization-grant-flow)
- [Managing API Keys and Personal Access Tokens](https://documentation.sailpoint.com/saas/help/common/api_keys.html?h=oauth+client#creating-an-api-key)
- [SailPoint Developer Community](https://developer.sailpoint.com/discuss/)

## Setup

### Callback URL

<Code>
<Code.Next>

```bash
https://example.com/api/auth/callback/identitySecureCloud
```

</Code.Next>
<Code.Svelte>

```bash
https://example.com/auth/callback/identitySecureCloud
```

</Code.Svelte>
</Code>

### Create OAuth Client

Find your Identity Secure Cloud Tenant OAuth Information which can be found at `https://{tenant}.api.identitynow.com/oauth/info`. Create an OAuth Client (following this [guide](https://documentation.sailpoint.com/saas/help/common/api_keys.html?h=oauth+client#creating-an-api-key)) with grant types: `AUTHORIZATION_TOKEN` and `REFRESH_TOKEN`. Redirect URL should match your version of the Callback URL above. Finally, select the scopes `sp:scope:all`. Note down the generated `clientId` and `clientSecret`.

### Environment Variables

```
ISC_BASE_API_URL=https://{tenant}.api.identitynow.com
ISC_BASE_URL=https://{tenant}.identitynow.com
ISC_CLIENT_ID=
ISC_CLIENT_SECRET=
```

### Configuration

<Code>
<Code.Next>

```ts filename="/auth.ts"
import NextAuth from "next-auth"

export const { handlers, auth, signIn, signOut } = NextAuth({
providers: [
{
id: "identitySecureCloud",
name: "Identity Secure Cloud",
type: "oauth",
clientId: process.env.ISC_CLIENT_ID!,
clientSecret: process.env.ISC_CLIENT_SECRET!,
authorization: {
url: `${process.env.ISC_BASE_URL!}/oauth/authorize`,
params: { scope: 'sp:scopes:all' },
},
token: `${process.env.ISC_BASE_API_URL!}/oauth/token`,
userinfo: `${process.env.ISC_BASE_API_URL!}/oauth/userinfo`,
profile(profile: IdentitySecureCloudProfile) {
return {
tenant: profile.tenant,
id: profile.id,
uid: profile.uid,
email: profile.email,
phone: profile.phone,
workPhone: profile.workPhone,
firstname: profile.firstname,
lastname: profile.lastname,
capabilities: profile.capabilities,
displayName: profile.displayName,
name: profile.uid,
}
},
style: { text: "#011E69", bg: "#fff", logo: "sailpoint.svg" },
},
],
})
```

</Code.Next>
<Code.Svelte>

```ts filename="/src/auth.ts"
import { SvelteKitAuth } from "@auth/sveltekit"
import { env } from "$env/dynamic/prviate"

export const { handle, signIn, signOut } = SvelteKitAuth({
providers: [
{
id: "identitySecureCloud",
name: "Identity Secure Cloud",
type: "oauth",
clientId: env.ISC_CLIENT_ID!,
clientSecret: env.ISC_CLIENT_SECRET!,
authorization: {
url: `${env.ISC_BASE_URL!}/oauth/authorize`,
params: { scope: 'sp:scopes:all' },
},
token: `${env.ISC_BASE_API_URL!}/oauth/token`,
userinfo: `${env.ISC_BASE_API_URL!}/oauth/userinfo`,
profile(profile: IdentitySecureCloudProfile) {
return {
tenant: profile.tenant,
id: profile.id,
uid: profile.uid,
email: profile.email,
phone: profile.phone,
workPhone: profile.workPhone,
firstname: profile.firstname,
lastname: profile.lastname,
capabilities: profile.capabilities,
displayName: profile.displayName,
name: profile.uid,
}
},
style: { text: "#011E69", bg: "#fff", logo: "sailpoint.svg" },
},
],
})
```

</Code.Svelte>
<Code.Express>

```ts filename="/src/app.ts"
import { ExpressAuth } from "@auth/express"

app.use("/auth/*", ExpressAuth({ providers: [
{
id: "identitySecureCloud",
name: "Identity Secure Cloud",
type: "oauth",
clientId: process.env.ISC_CLIENT_ID!,
clientSecret: process.env.ISC_CLIENT_SECRET!,
authorization: {
url: `${process.env.ISC_BASE_URL!}/oauth/authorize`,
params: { scope: 'sp:scopes:all' },
},
token: `${process.env.ISC_BASE_API_URL!}/oauth/token`,
userinfo: `${process.env.ISC_BASE_API_URL!}/oauth/userinfo`,
profile(profile: IdentitySecureCloudProfile) {
mike818148 marked this conversation as resolved.
Show resolved Hide resolved
return {
tenant: profile.tenant,
id: profile.id,
uid: profile.uid,
email: profile.email,
phone: profile.phone,
workPhone: profile.workPhone,
firstname: profile.firstname,
lastname: profile.lastname,
capabilities: profile.capabilities,
displayName: profile.displayName,
name: profile.uid,
}
},
style: { text: "#011E69", bg: "#fff", logo: "sailpoint.svg" },
},
] }))
```

</Code.Express>
</Code>
mike818148 marked this conversation as resolved.
Show resolved Hide resolved

26 changes: 26 additions & 0 deletions docs/public/img/providers/sailpoint.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.