ID4 Implementation Overview¶
This project is intended to demonstrate a single implementation of ID4 Authentication for several Client Applications. ID4 will be configured to authenticate the same User Credentials across all Client Applications.
Authentication Flow by UI Technology¶
Each of the Client Application technologies require specific Authentication Flows to ensure security resilience. Here is what has been implemented:
UI Application | Technology | Auth Flow | Spec |
---|---|---|---|
Login UI | Angular | Implicit Flow | OpenID |
User Manager | Angular | Implicit Flow | OpenID |
User Profile UI | Angular | Implicit Flow | OpenID |
User Profile UI | ASP.Net MVC Core | Resource Owner | OAuth2 |
User Profile UI | ASP.Net WebForms | Resource Owner | OAuth2 |
User Profile UI | Xamarin | Hybrid Auth Code | OpenID |
Inspiration and Credits¶
Eric Anderson
Eric created a series on IdentityServer 4 that helped further my understanding beyond the IdentityServer4 documentation’s QuickStarts. If any information on this site is unclear, I recommend you read Eric’s work (https://elanderson.net/2017/05/identity-server-introduction/).
IdentityServer4 Documentation
IdentityServer4’s site of course is an important source of information to get started using ID4. Important sections of the site include Topics, Reference, Endpoints, and QuickStarts which will help you wrap your head around the multitude of topics possible regarding Authorization as a Service (https://identityserver4.readthedocs.io/en/release/index.html).
OpenID Connect Specs
The source is always the best place to get definitive answers (http://openid.net/connect/). The OpenID Connect Working Group is the governing body that defined the OpenID Connect spec on which IdentityServer4 is build. IdentityServer4 has received OpenID Connect certification.
The most important place to start learning the OpenID Connect 1.0 specification is at Core Documentation. Yes it is 86 pages, but that’s short for spec and is well worth the read.
ReadTheDocs.org and Eric Holscher
You may notice that ID4 hosts their documentation on ReadTheDocs.org, as will be all my personal documentation going forward. I appreciate everything MediaWiki is, but now I know about this other option: Plaintext Markup Syntax/Html Parsing Build System using Python, Sphinx, ReStructuredText, and MarkDown. Never thought I would use or write code in Python, but that is about to change, and yes, the ASP.Net Core Team has integrated it with .Net for API Documentation. Easily written and read plain text documentation can now be source-controlled, then Html built and hosted on my or any file system. I can push my docs to Github, and WebHook them to ReadTheDocs.org which will build my reST files into nicely themed and freely Hosted Html. Github also understands reST and thus also nicely themes your reST docs. If you would like to learn more about Sphinx, reStructuredText (reST), and ReadTheDocs.org, visit the following links: Eric Holscher: Sphinx and ReadTheDocs.org for Technical Writers and his matching PyCon 2016 Youtube Video (yes it’s a 2:40:55 minute video, but over an hour is a workshop you can skip), Sphinx - a Python Doc Generator, and theming your reST docs with the ReadTheDocs Theme.