allow common tenant for microsoft
This commit is contained in:
parent
a042c202a0
commit
e625ed9633
|
@ -10,11 +10,16 @@ import (
|
||||||
githubOAuth2 "golang.org/x/oauth2/github"
|
githubOAuth2 "golang.org/x/oauth2/github"
|
||||||
linkedInOAuth2 "golang.org/x/oauth2/linkedin"
|
linkedInOAuth2 "golang.org/x/oauth2/linkedin"
|
||||||
microsoftOAuth2 "golang.org/x/oauth2/microsoft"
|
microsoftOAuth2 "golang.org/x/oauth2/microsoft"
|
||||||
|
"google.golang.org/appengine/log"
|
||||||
|
|
||||||
"github.com/authorizerdev/authorizer/server/constants"
|
"github.com/authorizerdev/authorizer/server/constants"
|
||||||
"github.com/authorizerdev/authorizer/server/memorystore"
|
"github.com/authorizerdev/authorizer/server/memorystore"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
microsoftCommonTenant = "common"
|
||||||
|
)
|
||||||
|
|
||||||
// OAuthProviders is a struct that contains reference all the OAuth providers
|
// OAuthProviders is a struct that contains reference all the OAuth providers
|
||||||
type OAuthProvider struct {
|
type OAuthProvider struct {
|
||||||
GoogleConfig *oauth2.Config
|
GoogleConfig *oauth2.Config
|
||||||
|
@ -171,12 +176,16 @@ func InitOAuth() error {
|
||||||
microsoftClientSecret = ""
|
microsoftClientSecret = ""
|
||||||
}
|
}
|
||||||
microsoftActiveDirTenantID, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyMicrosoftActiveDirectoryTenantID)
|
microsoftActiveDirTenantID, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyMicrosoftActiveDirectoryTenantID)
|
||||||
if err != nil {
|
if err != nil || microsoftActiveDirTenantID == "" {
|
||||||
microsoftActiveDirTenantID = ""
|
microsoftActiveDirTenantID = microsoftCommonTenant
|
||||||
}
|
}
|
||||||
if microsoftClientID != "" && microsoftClientSecret != "" && microsoftActiveDirTenantID != "" {
|
if microsoftClientID != "" && microsoftClientSecret != "" {
|
||||||
|
if microsoftActiveDirTenantID == microsoftCommonTenant {
|
||||||
|
ctx = oidc.InsecureIssuerURLContext(ctx, fmt.Sprintf("https://login.microsoftonline.com/%s/v2.0", microsoftActiveDirTenantID))
|
||||||
|
}
|
||||||
p, err := oidc.NewProvider(ctx, fmt.Sprintf("https://login.microsoftonline.com/%s/v2.0", microsoftActiveDirTenantID))
|
p, err := oidc.NewProvider(ctx, fmt.Sprintf("https://login.microsoftonline.com/%s/v2.0", microsoftActiveDirTenantID))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
log.Debugf(ctx, "Error while creating OIDC provider for Microsoft: %v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
OIDCProviders.MicrosoftOIDC = p
|
OIDCProviders.MicrosoftOIDC = p
|
||||||
|
|
Loading…
Reference in New Issue
Block a user