provisioner/provision_provider.go
func RegisterProvider(name string, factory ProvidersFactory) {
	providersMutex.Lock()
	defer providersMutex.Unlock()
	if _, found := providers[name]; found {
		logger.Get().Critical("Auth provider %s was registered twice", name)
	}
	providers[name] = factory
}
func RegisterProvider(name string, factory ProvidersFactory) {
	providersMutex.Lock()
	defer providersMutex.Unlock()
	if _, found := providers[name]; found {
		logger.Get().Critical("Auth provider %s was registered twice", name)
	}
	providers[name] = factory
}
// RegisterPlugin registers a plugin by name.  This
// is expected to happen during app startup.