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

Current OIDC implementation requires provider to implement the /.well-known/openid-configuration endpoint #192

Closed
tlawrie opened this issue Feb 6, 2019 · 2 comments

Comments

@tlawrie
Copy link

tlawrie commented Feb 6, 2019

Issue
The current implementation expects the OIDC provider to implement the discovery endpoint, however this is optional in the spec and unfortunately some enterprises do not implement this, such as IBM.

Possible Solution
Add a method for New Manual Provider which returns an object based on additional detail passed to it

// NewManualProvider creates a provider with manually set configurations
func NewManualProvider(ctx context.Context, issuer, authURL, tokenURL, userInfoURL, jwksURL string) *Provider {
	return &Provider{
		issuer:       issuer,
		authURL:      authURL,
		tokenURL:     tokenURL,
		userInfoURL:  userInfoURL,
		remoteKeySet: newRemoteKeySet(ctx, jwksURL, time.Now),
	}
}
@ericchiang
Copy link
Collaborator

The intended workaround is using NewVerifier with NewRemoteKeySet. Does that work?

Creating a provider without discovery doesn't really make sense since oidc.Provider is just used to get to the claims or an IDTokenVerifier.

@tlawrie
Copy link
Author

tlawrie commented Feb 11, 2019

@ericchiang thank you for the suggestion. We shall try this approach.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants