Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Identity Broker Pattern #5

Closed
jaxoncreed opened this issue Aug 16, 2019 · 5 comments
Closed

Identity Broker Pattern #5

jaxoncreed opened this issue Aug 16, 2019 · 5 comments
Labels
can-be-closed? This issue is slated to be closed

Comments

@jaxoncreed
Copy link
Contributor

Consider implementing the identity token pattern for resolving webIds

https://ldapwiki.com/wiki/Identity%20Broker

@jaxoncreed
Copy link
Contributor Author

I'll expand on this a bit by document offline discussions between the Inrupt enterprise team and Justin Richer:

The point of the identity broker is to allow log-in to traditional OIDC systems without needing to modify those systems. Instead a broker sits in between and serves as the official IDP at least in the minds of the resource server. When you log into the traditional OIDC system, you are technically asking it to grant the broker access to your identity rather than the application.

Use case: Alice wants to log into decentphotos.com using her Google identity.

  1. Alice navigates to decentphotos.com and chooses "Log in with Google via Brokernet"
  2. A traditional Solid OIDC request is sent to brokernet.example with the redirect url, client public key, etc. These are stored on brokernet.
  3. Brokernet structures a request to Google's OP with it as the redirect_url in an authorization code grant request
  4. Alice logs into Google
  5. Google redirects back to brokernet with the authorization code which is exchanged for an id_token.
  6. Brokernet uses the information in the Id token to generate a WebID which it hosts on its own Solid storage Pod.
    7 . Brokernet constructs a new token using the original redirect_uri and client public key from decentphotos as well as the new WebID
  7. Brokernet redirects back to decentphotos with the token.

@elf-pavlik
Copy link
Member

This sounds like some UX sugar on top of brokernet.example acting as OP which possibly among other methods of authenticating user #27 supports 'login with google'.
I think User should still be aware that Resource Servers will not really know about them using google account and will just identify them by WebID created by brokernet.example.

I think we could resolve this issue by writing Panel Finding describing this pattern, which parts of the system it affects (OP, app login screen, etc.) as well as some challenges eg. different apps could pick different broker OPs with 'google login' for their login screen and user could endup with multiple WebIDs without intending to have all of them.

@jaxoncreed
Copy link
Contributor Author

This sounds like some UX sugar on top of brokernet.example

Agreed. This would be a possible implementation and would not need to be detailed in the spec.

@elf-pavlik
Copy link
Member

I think this would better fit https://github.com/solid/user-lifecycle-panel since it deals with case where user starts using application but doesn't have IdP (very likely neither WebID or storage). I don't think this affects authentication directly. @kjetilk I think you created User Lifecycle Panel, would you see Use case described in this issue to fit there?

@acoburn acoburn added the can-be-closed? This issue is slated to be closed label Jan 15, 2021
@acoburn
Copy link
Member

acoburn commented Jan 25, 2021

This is a very useful idea but it is somewhat out of scope for the Solid-OIDC specification. This could, however, be revived as a concrete proposal.

@acoburn acoburn closed this as completed Jan 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
can-be-closed? This issue is slated to be closed
Projects
None yet
Development

No branches or pull requests

3 participants