Okta Identity Provider
Problem Okta is a popular enterprise Identity Provider (IdP) used for secure access and user identity management. While GoFr already supports OAuth 2.0 and token-based authentication, it lacks native support for integrating directly with Okta as an identity source.
Goal
- Provide out-of-the-box support for validating access tokens issued by Okta using the OpenID Connect protocol.
- Implement this as a middleware under the middleware/auth package.
- Use JWKS (JSON Web Key Set) endpoint from Okta to validate JWT signatures.
- Ensure the middleware can be configured with Okta’s issuer URL, client ID, and accepted audience.
Sure assigning this to you. However we would like you to make it as a separate package that can be plugged in GoFr, because we don't want to bloat the framework. Check out how our datasources like dgraph etc are pluggable. Can use the same concept here also.
I will create a plan of action on my end by this weekend and have a detailed discussion with you about my thoughts on this. Thanks @coolwednesday
@Umang01-hash @coolwednesday
Clarifying something before I start [as a mediocre developer, xD expect similar things a lot].
I will maintain a separate repo for this. GoFr will define the interface [when needed], and my package will implement that
package okta
import "gofr.dev/pkg/gofr"
type Client struct {
}
func (c *Client) Middleware() func(http.Handler) http.Handler {
}
Is that correct thinking so far? If yes, I will share an implementation plan soon. Thanks.
@ARMeeru Yes you are on the right trace. GoFr will define a interface for Okta and your package will implement the same. Now the core thing to think about is easy integration with minial code addition to GoFr and end's user's ease of usability.