|
|
|
|
@ -32,11 +32,11 @@ const (
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
const ( |
|
|
|
|
// Microsoft requires this scope to access user's profile
|
|
|
|
|
scopeUser = "user.read" |
|
|
|
|
// Microsoft requires this scope to list groups the user is a member of
|
|
|
|
|
// and resolve their ids to groups names.
|
|
|
|
|
scopeGroups = "directory.read.all" |
|
|
|
|
// Microsoft requires the scopes to start with openid
|
|
|
|
|
scopeOpenID = "openid" |
|
|
|
|
// Get the permissions configured on the application registration
|
|
|
|
|
// see https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#the-default-scope
|
|
|
|
|
scopeDefault = "https://graph.microsoft.com/.default" |
|
|
|
|
// Microsoft requires this scope to return a refresh token
|
|
|
|
|
// see https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#offline_access
|
|
|
|
|
scopeOfflineAccess = "offline_access" |
|
|
|
|
@ -62,7 +62,7 @@ type Config struct {
|
|
|
|
|
PromptType string `json:"promptType"` |
|
|
|
|
DomainHint string `json:"domainHint"` |
|
|
|
|
|
|
|
|
|
Scopes []string `json:"scopes"` // defaults to scopeUser (user.read)
|
|
|
|
|
Scopes []string `json:"scopes"` // defaults to scopeOpenID (openid)
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Open returns a strategy for logging in through Microsoft.
|
|
|
|
|
@ -153,11 +153,9 @@ func (c *microsoftConnector) oauth2Config(scopes connector.Scopes) *oauth2.Confi
|
|
|
|
|
if len(c.scopes) > 0 { |
|
|
|
|
microsoftScopes = c.scopes |
|
|
|
|
} else { |
|
|
|
|
microsoftScopes = append(microsoftScopes, scopeUser) |
|
|
|
|
} |
|
|
|
|
if c.groupsRequired(scopes.Groups) { |
|
|
|
|
microsoftScopes = append(microsoftScopes, scopeGroups) |
|
|
|
|
microsoftScopes = append(microsoftScopes, scopeOpenID) |
|
|
|
|
} |
|
|
|
|
microsoftScopes = append(microsoftScopes, scopeDefault) |
|
|
|
|
|
|
|
|
|
if scopes.OfflineAccess { |
|
|
|
|
microsoftScopes = append(microsoftScopes, scopeOfflineAccess) |
|
|
|
|
|