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

Better document which oauth handlers are required for only OpenID connect #404

Closed
mitar opened this issue Mar 27, 2020 · 7 comments
Closed
Labels
help wanted We are looking for help on this one.

Comments

@mitar
Copy link
Contributor

mitar commented Mar 27, 2020

Is your feature request related to a problem? Please describe.

I am trying to build an OpenID provider only, I do not really have any resources to which one would delegate access to. So I do not need OAuth provider, just OpenId provider. The issue is that currently documentation/example just says that OAuth handlers have to be registered before OpenId ones, but does not explain which are the minimal list of those which have to be:

https://github.com/ory/fosite-example/blob/21823512273f02b611d1a5912e3699a682b42bc7/authorizationserver/oauth2.go#L57

@aeneasr
Copy link
Member

aeneasr commented Mar 29, 2020

Thank you for opening these issues. Getting to OpenID Connect certification is a bit of work with this library. There are also implications in the datastore that require extra attention. We use fosite primarily for ORY Hydra which I recommend you take a look before starting on implementing OIDC with raw fosite. It will take you about 6 months or probably even more to get everything up and running and tested plus getting rid of bugs and adding extra features (e.g. revoking access for specific oauth2 clients).

Hydra fullfills all OAuth2 & OIDC needs and is OpenID Certified and also supports all the things (e.g. well-known endpoint) you pointed at. I'd really recommend checking the project out first and then deciding again if you want to use raw fosite. Hydra will save you a lot of time!

@mitar
Copy link
Contributor Author

mitar commented Mar 29, 2020

Yes, I am familiar with Hydra, but in my case I am really interested in a pretty limited subset of functionality here, just OpenID provider which would be a broker towards other OpenID providers.

@aeneasr
Copy link
Member

aeneasr commented Mar 29, 2020

You can achieve that with Hydra with less work! We're also working on ORY Kratos which will reduce the work even more! Alternatively I'd recommend checking out https://github.com/dexidp/dex which sounds like the tool you need.

ps: not trying to discourage you from contributions but I think you can solve your issue way easier and with spending less time :)

@mitar
Copy link
Contributor Author

mitar commented Mar 29, 2020

Thanks for the pointers. I will check them.

@mitar
Copy link
Contributor Author

mitar commented Mar 29, 2020

Also, Kratos has some limitations for me.

@mitar
Copy link
Contributor Author

mitar commented Apr 2, 2020

So is OAuth2ResourceOwnerPasswordCredentialsFactory and OAuth2ClientCredentialsGrantFactory used when OpenID Connect is wanted (openid scope)? It seems one can remove those and still have full OpenID Connect compatibility? But OAuth2AuthorizeExplicitFactory and OAuth2AuthorizeImplicitFactory are necessary?

@aeneasr
Copy link
Member

aeneasr commented Apr 10, 2020

I don't think they're necessary! Hydra achieves - for example - OIDC without ROPC Factory

@aeneasr aeneasr added the help wanted We are looking for help on this one. label Apr 13, 2020
@mitar mitar closed this as completed Aug 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted We are looking for help on this one.
Projects
None yet
Development

No branches or pull requests

2 participants