コード例 #1
0
 public KeysController(IOptions <ScriptApplicationHostOptions> applicationOptions, ISecretManagerProvider secretManagerProvider, ILoggerFactory loggerFactory, IFileSystem fileSystem)
 {
     _applicationOptions    = applicationOptions;
     _secretManagerProvider = secretManagerProvider;
     _logger     = loggerFactory.CreateLogger(ScriptConstants.LogCategoryKeysController);
     _fileSystem = fileSystem;
 }
コード例 #2
0
 public WebFunctionsManager(IOptionsMonitor <ScriptApplicationHostOptions> applicationHostOptions, IOptions <LanguageWorkerOptions> languageWorkerOptions, ILoggerFactory loggerFactory, HttpClient client, ISecretManagerProvider secretManagerProvider, IFunctionsSyncManager functionsSyncManager)
 {
     _applicationHostOptions = applicationHostOptions;
     _logger                = loggerFactory?.CreateLogger(ScriptConstants.LogCategoryHostGeneral);
     _client                = client;
     _workerConfigs         = languageWorkerOptions.Value.WorkerConfigs;
     _secretManagerProvider = secretManagerProvider;
     _functionsSyncManager  = functionsSyncManager;
 }
コード例 #3
0
 public FunctionsSyncManager(IConfiguration configuration, IHostIdProvider hostIdProvider, IOptionsMonitor <ScriptApplicationHostOptions> applicationHostOptions, IOptions <LanguageWorkerOptions> languageWorkerOptions, ILoggerFactory loggerFactory, HttpClient httpClient, ISecretManagerProvider secretManagerProvider)
 {
     _applicationHostOptions = applicationHostOptions;
     _logger                = loggerFactory?.CreateLogger(ScriptConstants.LogCategoryHostGeneral);
     _workerConfigs         = languageWorkerOptions.Value.WorkerConfigs;
     _httpClient            = httpClient;
     _secretManagerProvider = secretManagerProvider;
     _configuration         = configuration;
     _hostIdProvider        = hostIdProvider;
 }
コード例 #4
0
 public WebFunctionsManager(IOptionsMonitor <ScriptApplicationHostOptions> applicationHostOptions, ILoggerFactory loggerFactory, IHttpClientFactory httpClientFactory, ISecretManagerProvider secretManagerProvider, IFunctionsSyncManager functionsSyncManager, HostNameProvider hostNameProvider, IFunctionMetadataManager functionMetadataManager)
 {
     _applicationHostOptions = applicationHostOptions;
     _logger = loggerFactory?.CreateLogger(ScriptConstants.LogCategoryHostGeneral);
     _client = httpClientFactory.CreateClient();
     _secretManagerProvider   = secretManagerProvider;
     _functionsSyncManager    = functionsSyncManager;
     _hostNameProvider        = hostNameProvider;
     _functionMetadataManager = functionMetadataManager;
 }
コード例 #5
0
 public KeysController(IOptions <ScriptApplicationHostOptions> applicationOptions, ISecretManagerProvider secretManagerProvider, ILoggerFactory loggerFactory, IFileSystem fileSystem, IFunctionsSyncManager functionsSyncManager, IFunctionMetadataManager functionMetadataManager, IScriptHostManager hostManager)
 {
     _applicationOptions    = applicationOptions;
     _secretManagerProvider = secretManagerProvider;
     _logger                  = loggerFactory.CreateLogger(ScriptConstants.LogCategoryKeysController);
     _fileSystem              = fileSystem;
     _functionsSyncManager    = functionsSyncManager;
     _functionMetadataManager = functionMetadataManager;
     _hostManager             = hostManager;
 }
コード例 #6
0
 public AuthenticationLevelHandler(
     IOptionsMonitor <AuthenticationLevelOptions> options,
     ILoggerFactory logger,
     UrlEncoder encoder,
     IDataProtectionProvider dataProtection,
     ISystemClock clock,
     ISecretManagerProvider secretManagerProvider)
     : base(options, logger, encoder, clock)
 {
     _secretManagerProvider = secretManagerProvider;
 }
コード例 #7
0
 public FunctionsSyncManager(IConfiguration configuration, IHostIdProvider hostIdProvider, IOptionsMonitor <ScriptApplicationHostOptions> applicationHostOptions, ILogger <FunctionsSyncManager> logger, HttpClient httpClient, ISecretManagerProvider secretManagerProvider, IScriptWebHostEnvironment webHostEnvironment, IEnvironment environment, HostNameProvider hostNameProvider, IFunctionMetadataProvider functionMetadataProvider)
 {
     _applicationHostOptions = applicationHostOptions;
     _logger                   = logger;
     _httpClient               = httpClient;
     _secretManagerProvider    = secretManagerProvider;
     _configuration            = configuration;
     _hostIdProvider           = hostIdProvider;
     _webHostEnvironment       = webHostEnvironment;
     _environment              = environment;
     _hostNameProvider         = hostNameProvider;
     _functionMetadataProvider = functionMetadataProvider;
 }
コード例 #8
0
 public FunctionsSyncManager(IConfiguration configuration, IHostIdProvider hostIdProvider, IOptionsMonitor <ScriptApplicationHostOptions> applicationHostOptions, IOptions <LanguageWorkerOptions> languageWorkerOptions, ILogger <FunctionsSyncManager> logger, HttpClient httpClient, ISecretManagerProvider secretManagerProvider, IScriptWebHostEnvironment webHostEnvironment, IEnvironment environment, HostNameProvider hostNameProvider)
 {
     _applicationHostOptions = applicationHostOptions;
     _logger                = logger;
     _workerConfigs         = languageWorkerOptions.Value.WorkerConfigs;
     _httpClient            = httpClient;
     _secretManagerProvider = secretManagerProvider;
     _configuration         = configuration;
     _hostIdProvider        = hostIdProvider;
     _webHostEnvironment    = webHostEnvironment;
     _environment           = environment;
     _hostNameProvider      = hostNameProvider;
 }
コード例 #9
0
 public AuthenticationLevelHandler(
     IOptionsMonitor <AuthenticationLevelOptions> options,
     ILoggerFactory logger,
     UrlEncoder encoder,
     IDataProtectionProvider dataProtection,
     ISystemClock clock,
     ISecretManagerProvider secretManagerProvider,
     IEnvironment environment)
     : base(options, logger, encoder, clock)
 {
     _secretManagerProvider = secretManagerProvider;
     _isEasyAuthEnabled     = environment.IsEasyAuthEnabled();
 }
コード例 #10
0
 public DefaultScriptWebHookProvider(ISecretManagerProvider secretManagerProvider, HostNameProvider hostNameProvider)
 {
     _secretManagerProvider = secretManagerProvider;
     _hostNameProvider      = hostNameProvider;
 }
コード例 #11
0
        internal static async Task <(string, AuthorizationLevel)> GetAuthorizationKeyInfoAsync(HttpRequest request, ISecretManagerProvider secretManagerProvider)
        {
            // first see if a key value is specified via headers or query string (header takes precedence)
            string keyValue = null;

            if (request.Headers.TryGetValue(FunctionsKeyHeaderName, out StringValues values))
            {
                keyValue = values.First();
            }
            else if (request.Query.TryGetValue("code", out values))
            {
                keyValue = values.First();
            }

            if (!string.IsNullOrEmpty(keyValue))
            {
                ISecretManager secretManager = secretManagerProvider.Current;

                // see if the key specified is the master key
                HostSecretsInfo hostSecrets = await secretManager.GetHostSecretsAsync().ConfigureAwait(false);

                if (!string.IsNullOrEmpty(hostSecrets.MasterKey) &&
                    Key.SecretValueEquals(keyValue, hostSecrets.MasterKey))
                {
                    return(ScriptConstants.DefaultMasterKeyName, AuthorizationLevel.Admin);
                }

                if (HasMatchingKey(hostSecrets.SystemKeys, keyValue, out string keyName))
                {
                    return(keyName, AuthorizationLevel.System);
                }

                // see if the key specified matches the host function key
                if (HasMatchingKey(hostSecrets.FunctionKeys, keyValue, out keyName))
                {
                    return(keyName, AuthorizationLevel.Function);
                }

                // If there is a function specific key specified try to match against that
                IFunctionExecutionFeature executionFeature = request.HttpContext.Features.Get <IFunctionExecutionFeature>();
                if (executionFeature != null)
                {
                    IDictionary <string, string> functionSecrets = await secretManager.GetFunctionSecretsAsync(executionFeature.Descriptor.Name);

                    if (HasMatchingKey(functionSecrets, keyValue, out keyName))
                    {
                        return(keyName, AuthorizationLevel.Function);
                    }
                }
            }

            return(null, AuthorizationLevel.Anonymous);
        }
コード例 #12
0
        internal static Task <(string, AuthorizationLevel)> GetAuthorizationKeyInfoAsync(HttpRequest request, ISecretManagerProvider secretManagerProvider)
        {
            // first see if a key value is specified via headers or query string (header takes precedence)
            string keyValue = null;

            if (request.Headers.TryGetValue(FunctionsKeyHeaderName, out StringValues values))
            {
                keyValue = values.First();
            }
            else if (request.Query.TryGetValue(FunctionsKeyQueryParamName, out values))
            {
                keyValue = values.First();
            }

            if (!string.IsNullOrEmpty(keyValue))
            {
                ISecretManager secretManager = secretManagerProvider.Current;
                var            functionName  = request.HttpContext.Features.Get <IFunctionExecutionFeature>()?.Descriptor.Name;
                return(secretManager.GetAuthorizationLevelOrNullAsync(keyValue, functionName));
            }

            return(Task.FromResult <(string, AuthorizationLevel)>((null, AuthorizationLevel.Anonymous)));
        }
コード例 #13
0
 public DefaultScriptWebHookProvider(ISecretManagerProvider secretManagerProvider)
 {
     _secretManagerProvider = secretManagerProvider;
 }