I’ve been looking at a number of IDP recently and noticed the large variety of code samples to get you up to speed quickly.
They all follow the same model — a Github repository and a set of instructions that you follow to get the configuration working for your instance. Most of them provide instructions and you have to substitute your tenant / application values e.g.
Auth0 has a neat feature where the sample is pre-populated with the appropriate values for your tenant / application.
I’ve found that it makes a huge difference when there is a working sample to look at. Most of them take about 10 minutes to get working leaving you lots of time to add the business rules etc. That’s where the value is. (And that’s the whole point of “Identity as a service” — friction less authentication).
Obviously, you need a tenant on your IDP of choice. Azure AD has a free level if all you want to do is authentication. Auth0 has a free level for development. Okta has a free level but it’s more a trial and is time-boxed. ADFS requires a Windows server licence or an appropriate Azure subscription to run up a VM. identityserver is open source. Visual Studio has a free Community edition. Plus there’s Visual Code that is free. So jump in!
The majority of the samples use OpenID Connect. Azure AD also has some WS-Federation samples. (But remember — this is by language not by protocol).
It’s also interesting how similar the sample screens are.
Microsoft Azure AD
which then breaks down to the next level e.g. for .NET:
which then breaks down to the next level e.g. for web app:
In tabular form:
Not surprising that Auth0 has so many samples. Their whole approach to date has been developer focused so they've gone out of their way to have as many samples in as many different languages as possible.
For ADFS, you can generally take an Azure AD sample and modify it.
For identityserver, note this only reflects the “official” samples. I haven’t tracked the community ones.
It would be really interesting to see a table which shows a list of languages in use by ranking. I’d imagine it would some be flavour of js, .NET and Java in the lead.
I’ve said before that there is no such thing as the “best” IDP. It depends on which IDP best handles your use case. The table in the linked article shows IDP by functionality. Maybe another way of looking at the IDP choice is by support for the language you are most familiar and comfortable with?
Any errors or omissions? Please comment and I’ll fix them.