summaryrefslogtreecommitdiff
path: root/pkg/web/oidc.go
blob: 707a1b557471668e7d8877a3eb710b18a3a4cf27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package web

import (
	"context"

	"github.com/coreos/go-oidc/v3/oidc"
)

func NewOIDCProvider(ctx context.Context, issuer string, report func(error)) *oidc.Provider {
	provider, err := oidc.NewProvider(ctx, issuer)
	if err == nil {
		return provider
	}

	report(err)

	config := &oidc.ProviderConfig{
		IssuerURL:     issuer,
		AuthURL:       issuer + "/oauth/authorize",
		TokenURL:      issuer + "/oauth/token",
		DeviceAuthURL: "",
		UserInfoURL:   issuer + "/oauth/userinfo",
		JWKSURL:       issuer + "/oauth/disovery/keys",
		Algorithms:    []string{"RS256"},
	}
	return config.NewProvider(ctx)
}