markbates / goth

Package goth provides a simple, clean, and idiomatic way to write authentication packages for Go web applications.
https://blog.gobuffalo.io/goth-needs-a-new-maintainer-626cd47ca37b
MIT License
5.55k stars 593 forks source link

OpenID Connect generic, specify endpoints? #278

Open poVoq opened 5 years ago

poVoq commented 5 years ago

I am trying to connect my Gitea instance with Mattermost, but it seems like Mattermost does not implement the auto discovery via .well-known

See also: https://docs.mattermost.com/developer/oauth-2-0-applications.html

Is there a way to easily manually specify the endpoints or maybe add Mattermost support to this library?

Thanks!

bentranter commented 5 years ago

@poVoq We currently don't support auto-discovery for the generic OpenIDConnect provider, but because you're using Gitea, maybe the recent addition of the Gitea package that supports custom URLs could help you? See https://github.com/markbates/goth/blob/master/providers/gitea/gitea.go#L52.

If not, we'd definitely welcome a PR to add auto-discovery to the existing OpenID package.

poVoq commented 5 years ago

That change would be for connecting to Gitea.

What I am trying to to is connect to Mattermost from Gitea.

Maybe this is the wrong place to ask, if indeed there is no auto discovery, but the error message I am getting is that Gitea (with goth) attempts to autodiscover the settings from Mattermost, which is not supported. Manually setting the parameters is not possible from within Gitea.

laf0rge commented 5 years ago

At osmocom.org we also run our onw OAuth provider (part of redmine). It would be great if a user could specify arbitrary OAuth endpoints via some kind of configuration file without having to recompile related code.

Having shared identity/authentication between different websites/services is great. However, in terms of privacy I would always argue that there should be one such provider per entity/organization. After all, who wants to inform some few large corporations about every time they authenticate with some website? Having decentralized, organization-local OAuth providers is therefore definitely a good thing. However, with software (such as gitea, goth) making it difficult to impossible to add your own OAuth endpoint, they encourage people to use the few large public OAuth providers :/