I need to implement an Identity Server for our org and have been trying to get my head around the various options available. Requirement are
- Single IdP, to which other IdPs can link and provide authentication/authorization. Eg, connect to ADFS of another organization or a forms auth database of another org via endpoint?
- Single Sign On (SSO) to users accessing the system
- Should work across organizations - allow other organizations to access restricted resource by trusting their IdPs and tokens issued by them
- Have user and role management via a UI
I have narrowed down on the below three
- Shibboleth - this I understand is SAML 2.0 based only, does not spports JWTs, so might not work with all clients. Not sure if this can link to other providers, like ADFS and get tokens from there
- WSO2- This supports both SAML and JWT. Can link to other providers for federation
- Thinktecture IdentityServer 3.0 - the newest kid in the block, developed as a Katana middleware and highly configurable via code.
Can you tell me which one would be more suitable, pros/cons of each with regards to the requirements? Are there any specific differences that I need to consider (other than first two being OOTB solutions and 3rd one being a nuget package to be configured in code)?