nextauthjs / next-auth

Authentication for the Web.
https://authjs.dev
ISC License
22.49k stars 2.98k forks source link

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

Closed mike818148 closed 6 days ago

mike818148 commented 3 weeks ago

โ˜•๏ธ Reasoning

A new oauth provider for SailPoint Identity Secure Cloud (ISC). Developers then can utilize SailPoint Identity Secure Cloud (ISC) to authenticate the custom authentication based on OAuth2 standard.

๐Ÿงข Checklist

๐ŸŽซ Affected issues

๐Ÿ“Œ Resources

vercel[bot] commented 3 weeks ago

The latest updates on your projects. Learn more about Vercel for Git โ†—๏ธŽ

Name Status Preview Comments Updated (UTC)
auth-docs โœ… Ready (Inspect) Visit Preview ๐Ÿ’ฌ Add feedback May 10, 2024 1:18pm
1 Ignored Deployment | Name | Status | Preview | Comments | Updated (UTC) | | :--- | :----- | :------ | :------- | :------ | | **next-auth-docs** | โฌœ๏ธ Ignored ([Inspect](https://vercel.com/authjs/next-auth-docs/753UteijLKixrSt2z3TMeQb1pAQV)) | [Visit Preview](https://next-auth-docs-git-fork-mike818148-main-authjs.vercel.app) | | May 10, 2024 1:18pm |
mike818148 commented 2 weeks ago

Hello,

please let me know should I also prepare a test environment for you to conduct some testing, understand it will be hard to allocate a SailPoint IdentityNow tenant for you to test directly. By providing this provider, I believe it will bring some value to the SailPoint Developer community, especially for React developers.

on my side, I already finished some testings on my side.

vercel[bot] commented 2 weeks ago

@mike818148 is attempting to deploy a commit to the authjs Team on Vercel.

A member of the Team first needs to authorize it.

ndom91 commented 2 weeks ago

@mike818148 thanks for the interest in the project.

So if I understand correctly, SailPoint is an enterprise identity/security platform? So a random developer like me wouldn't be able to get OAuth Client credentials probably, right?

ndom91 commented 2 weeks ago

In the mean time, you could also add a docs page at /docs/pages/getting-started/providers/sailpoint.mdx. You can copy the structure of any of the other providers, like Netlify.mdx for example, and just fill in the info yuo've got in the JSDoc of your provider already :pray:

mike818148 commented 2 weeks ago

@mike818148 thanks for the interest in the project.

So if I understand correctly, SailPoint is an enterprise identity/security platform? So a random developer like me wouldn't be able to get OAuth Client credentials probably, right?

Hello @ndom91,

this is correct, SailPoint Identity Secure Cloud(ISC) is an enterprise SaaS platform for identity/security solution. At the moment, random developer may not get an OAuth Client credentials (from a certain tenant) as easy as other OAuth provider, however, I believe this statement is also changing. As per my understanding, SailPoint already have a open developer community which welcome public to join, and it also has a opensource project , and as an active developer community member, there is a way to requst a ISC tenant for demo/developing.

ndom91 commented 2 weeks ago

Hello @ndom91,

this is correct, SailPoint Identity Secure Cloud(ISC) is an enterprise SaaS platform for identity/security solution. At the moment, random developer may not get an OAuth Client credentials (from a certain tenant) as easy as other OAuth provider, however, I believe this statement is also changing. As per my understanding, SailPoint already have a open developer community which welcome public to join, and it also has a opensource project , and as an active developer community member, there is a way to requst a ISC tenant for demo/developing.

Oh okay I see. If you could request a demo tenant for this so we can continuously test it etc. that'd be amazing ๐Ÿ™

If it goes through, you can DM it to me on our discord for example (@ndom91)

mike818148 commented 2 weeks ago

Hello @ndom91, this is correct, SailPoint Identity Secure Cloud(ISC) is an enterprise SaaS platform for identity/security solution. At the moment, random developer may not get an OAuth Client credentials (from a certain tenant) as easy as other OAuth provider, however, I believe this statement is also changing. As per my understanding, SailPoint already have a open developer community which welcome public to join, and it also has a opensource project , and as an active developer community member, there is a way to requst a ISC tenant for demo/developing.

Oh okay I see. If you could request a demo tenant for this so we can continuously test it etc. that'd be amazing ๐Ÿ™

If it goes through, you can DM it to me on our discord for example (@ndom91)

thanks a lot. I already have a tenant, would it be okai, we use this tenant for testing, if yes, I just need your email to register on the tenant. This tenant only contains mock-up data. I will then also share the guide regarding OAuth client setup with you (just to show you where to find it)

mike818148 commented 2 weeks ago

mdx

Hello @ndom91,

just add the file sailpoint.mdx, question here: for the environement variables not sure does this AUTH[Provider]* will also work in my case, may you express more on this, how this is working? Otherwise, I will just document to pass the value directly.

To be honested, I only test this code with NextJS, not yet on other frameworks (Svelte and Express)

In addition, I am preparing a blog for the use cases, once published, will update the sailpoint.mdx with corresponding link.

Thanks and Regards,

ndom91 commented 1 week ago

@mike818148 thanks a lot for converting this to the "just" documentation page version we talked about!

Regarding your question about the environment variables - no, the environment variable auto detection won't work in this case, folks will have to manually pass it. The way you're doing it is fine :+1:

In addition, you asked about referencing your image on discord. You can change it to point to /img/providers/sailpoint.svg already (see line 4 in your mdx file, for example). This will obviously not work in the preview deploy, but as soon as its merged this will work :ok_hand:

Also when the user manually has to pass the env var, they'll be forced to do it in the framework-specific manner (i.e. importing from $env/* in sveltekit), and therefore just pasting in that object as a custom provider should be comaptible with all framework versions of Auth.js

codecov[bot] commented 6 days ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 37.78%. Comparing base (86e354d) to head (16e0237).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #10723 +/- ## ========================================== + Coverage 37.48% 37.78% +0.30% ========================================== Files 173 173 Lines 27026 27026 Branches 1174 1180 +6 ========================================== + Hits 10131 10213 +82 + Misses 16895 16813 -82 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.