NewADFSProvider initiates a new ADFSProvider
(p *ProviderData, opts options.Provider)
| 31 | |
| 32 | // NewADFSProvider initiates a new ADFSProvider |
| 33 | func NewADFSProvider(p *ProviderData, opts options.Provider) *ADFSProvider { |
| 34 | p.setProviderDefaults(providerDefaults{ |
| 35 | name: adfsProviderName, |
| 36 | scope: adfsDefaultScope, |
| 37 | }) |
| 38 | |
| 39 | if p.ProtectedResource != nil && p.ProtectedResource.String() != "" { |
| 40 | resource := p.ProtectedResource.String() |
| 41 | if !strings.HasSuffix(resource, "/") { |
| 42 | resource += "/" |
| 43 | } |
| 44 | |
| 45 | if p.Scope != "" && !strings.HasPrefix(p.Scope, resource) { |
| 46 | p.Scope = resource + p.Scope |
| 47 | } |
| 48 | } |
| 49 | |
| 50 | oidcProvider := NewOIDCProvider(p, opts.OIDCConfig) |
| 51 | |
| 52 | return &ADFSProvider{ |
| 53 | OIDCProvider: oidcProvider, |
| 54 | skipScope: ptr.Deref(opts.ADFSConfig.SkipScope, options.DefaultADFSSkipScope), |
| 55 | oidcEnrichFunc: oidcProvider.EnrichSession, |
| 56 | oidcRefreshFunc: oidcProvider.RefreshSession, |
| 57 | } |
| 58 | } |
| 59 | |
| 60 | // GetLoginURL Override to double encode the state parameter. If not query params are lost |
| 61 | // More info here: https://docs.microsoft.com/en-us/powerapps/maker/portals/configure/configure-saml2-settings |