Feel free to continue the discussion in the comments section of our blog.[1]
" JWT's are great. That's why they are used extensively in the OpenID Connect spec. The question is what's in that JWT? What are the claims? How do you know that the JWT that you got back in the response relates to the request you sent (i.e. Connect defines the nonce)? How do you know that the access token has not been modified (i.e. Connect defines the at_hash)? How do you know the code has not been modified (i.e. Connect defines the c_hash). How do you securely send the request? How does your client register and obtain tokens?
So yes, the puck is going towards JWT... but that's like saying the puck is going to JSON/REST... If you are using OAuth2 to authenticate a person, and you are using JWT, then you will have to define a lot of details to do so securely. Instead of making up your own recipe (which you probably don't have the time to do...), leverage the best practices defined by the experts at Google and Microsoft. "
[1] https://www.gluu.org/blog/oauth-vs-saml-vs-openid-connect/#c...
If you need a license, just email [email protected] It's not free open source, but it will be very inexpensive. It reduces OpenID Connect to a simple three step process (with three corresponding method calls):
1. Get code 2. Get tokens 3. Get user_info
There are two more supporting methods:
4. Register client 5. Logout
I wrote a sample cgi-bin application (and there is also a sample Flask application) that shows how to use it. https://github.com/GluuFederation/oxd-python/tree/master/dem...
I know several Gov projects using it that are quite happy.
I think the main reason for that is that its not a simple thing to do and there's just not enough expertise out there.
This has lead to our questioning the need for OIDC given that we can generate JWTs as access tokens. If the identity info is embedded in the access token, there is no need for the ID token and (more importantly) micro-services no longer need to check in with the authentication provider to validate bearer tokens.
I do like the discovery aspects of the OIDC protocol that make it easy to distribute public keys.