OpenLiberty / docs

See Open Liberty documentation on https://openliberty.io/docs/
https://openliberty.io/docs/
Other
13 stars 47 forks source link

Authentication in Open Liberty #893

Closed Charlotte-Holt closed 9 months ago

Charlotte-Holt commented 4 years ago

From LC: This is a new concept topic about authentication in Open Liberty. Authentication verifies who the user is. User ID and password (user registry - link to separate topic), SSO (LTPA, OpenID Connect, SAML, JWT, Social login, SPNEGO - link to separate topics because only one or two of them will be relevant to any given reader so they can ignore the ones they're not interested in). Users of apps running on OL can use their social media accounts (using OAuth and Open ID standards) to log into the apps. If multiple options are presented with a form to select which (give example screenshot to illustrate?). Out of the box, apps can be configured to enable users to use Facebook, Twitter, GitHub, LinkedIn, and Google, but others can be added. Once the user has authenticated, show how an app can find out who the person is.

The authentication topic in the KC provides a bit of an intro but it needs more. First introduce the concept of authentication on Open Liberty needs to be introduced first Introduce what JAAS (Java Authentication and Authorization Service) is and how it is used in authentication processes.

A diagram is needed but I don't know whether the one in this topic is a good one to use or not - probably needs updating for the context of microservices - ideally using one of our existing scenarios such as the system properties or the music store.

dmuelle commented 4 years ago

@lauracowen I can't access either of the box notes above- the second appears to be expired and I don't have permission to the first- if another link is available can you share with me? The KC resources are helpful but I need to know what is specific to OL. I'm going to work through the Securing a web application guide, which should help as well.

lauracowen commented 4 years ago

Oops, sorry. The first was to the Intro to Security MP4 video and the second is the slides to that video. You can find them both in here: https://ibm.box.com/s/wokyhx7j1yr8883ehpdcnj2irzvao1xx (intranet only - sorry, the external links now expire quickly). The presentation was given to customers and anyone interested at the end of last year, I think.

lauracowen commented 4 years ago

Worth watching the intro to security video to get a general overview of what liberty security is about. Most of it is relevant to cloud deployments (though it doesn't specifically talk about that).

dmuelle commented 4 years ago

Draft up for review at https://draft-openlibertyio.mybluemix.net/docs/ref/general/#authentication.html

Awaiting links to other docs (SSO topics) currently in development Needs a diagram

dmuelle commented 4 years ago

Added suggested edits from Bruce Tiffany and put in a diagram mock-up. Diagram will need to be cleaned up once the content is approved

Charlotte-Holt commented 4 years ago

@dmuelle Peer review feedback:

I think you did a really nice job introducing what authentication is and framing it in the context of cloud-native microservice development (i.e., what it means for OL users).

dmuelle commented 4 years ago

Thanks for this review @Charlotte-Holt - the issues you've raised are addressed in this PR- https://github.com/OpenLiberty/docs/pull/977 Note that some of the links in the SSO section (OIDC, SPEGNO, Social Login) will need to be updated from the gen doc to the concept topics once they are written

lauracowen commented 4 years ago

NIce! Thank you.

Couple of comments:

dmuelle commented 4 years ago

Thanks @lauracowen - these issues are addressed in this PR- https://github.com/OpenLiberty/docs/pull/981

dmuelle commented 4 years ago

Draft up for review at https://draft-openlibertyio.mybluemix.net/docs/ref/general/#authentication.html

dmuelle commented 4 years ago

Updates per Ajay Reddy review:

lauracowen commented 4 years ago

Other than that, the topic looks great. Thank you.

dmuelle commented 4 years ago
lauracowen commented 4 years ago

Great, thanks. There's not a lot we can do about the javadoc immediately but we can work on that separately. Aside from the diagram, I think this is good to go.

dmuelle commented 4 years ago

@lauracowen the new diagram from design is now on the draft site- let me know if it needs any further tweaking. Otherwise this should be ready to publish with the rest of the security topics?

https://draft-openlibertyio.mybluemix.net/docs/ref/general/#authentication.html

lauracowen commented 4 years ago

Pretty! :) I'm going to assume it's technically correct so if it's now there, I'm happy for this to be queued up with the rest of the security docs. Thanks

dmuelle commented 4 years ago

yup- this is the same one that Bruce et al signed off on in the one liberty slack discussion, just fitted and finished. I'll mark it ready to publish

dmuelle commented 4 years ago

Requested final peer review from @rw2513

Rwalls1 commented 4 years ago

This is a well-written topic, I just have a couple comments:

dmuelle commented 4 years ago

Thanks @Rwalls1 - I've updated the topic to fix that sentence and repair the broken links

https://draft-openlibertyio.mybluemix.net/docs/ref/general/#authentication-open-liberty.html

brutif commented 4 years ago

@dmuelle looks good!

dmuelle commented 4 years ago

New draft URL: https://draft-openlibertyio.mybluemix.net/docs/20.0.0.11/authentication.html

dmuelle commented 4 years ago

issues addressed in new editing pass:

chirp1 commented 4 years ago

Hi David,

Nice job with the topic! I have a few comments:

dmuelle commented 4 years ago

@chirp1 thanks for reviewing. I made the following changes per your review:

https://draft-openlibertyio.mybluemix.net/docs/20.0.0.11/authentication.html

dmuelle commented 4 years ago

comments from @utle in 2746:

https://draft-openlibertyio.mybluemix.net/docs/20.0.0.11/authentication.html

Social Media Login
JSON Web Tokens (JWT)
Lightweight Third Party Authentication (LTPA)
Security Assertion Markup Language (SAML)
Simple and Protected GSS-API Negotiation Mechanism (SPNEGO)

The SSO article have:

Social Media Login
JSON Web Tokens (JWT)
Simple and Protected GSS-API Negotiation Mechanism (SPNEGO)
Security Assertion Markup Language (SAML)
Lightweight Third Party Authentication (LTPA)
dmuelle commented 4 years ago

@utle thanks for reviewing:

chirp1 commented 4 years ago

Hi David, Here are my latest comments:

dmuelle commented 4 years ago

@chirp1 thanks for reviewing. I made the following changes to the draft:

chirp1 commented 4 years ago

Hi!

dmuelle commented 4 years ago

@chirp1 - made the following changes per your review:

https://draft-openlibertyio.mybluemix.net/docs/20.0.0.11/authentication.html

chirp1 commented 3 years ago

@dmuelle Hi David, I spotted another item to comment on:

dmuelle commented 3 years ago

@chirp1 I think although a database could be a web service, in most cases the application communicates with an API, which would in turn communicate with the DB. I've updated the sentence to be more clear:

The application communicates with other services, such as APIs, to complete the user’s request. These services use the JWT to authenticate the user’s identity and authorize access to resources that are permitted for the user’s security role.

dmuelle commented 3 years ago

published at https://www.openliberty.io/docs//latest/authentication.html

draft link: https://draft-openlibertyio.mybluemix.net/docs/latest/authentication.html

brutif commented 3 years ago

It's a tough topic to explain well, and all of you collaborated and did a good job on it. Hooray!!

lauracowen commented 3 years ago

Thanks @brutif - it's nice to get nice feedback :)