Ejemplo n.º 1
0
        public override void Configure(IFunctionsHostBuilder builder)
        {
            var config = builder.GetContext().Configuration;
            var azureFunctionSettings = new AzureFunctionSettings();

            config.Bind(azureFunctionSettings);

            builder.Services.AddPnPCore(options =>
            {
                // Disable telemetry because of mixed versions on AppInsights dependencies
                options.DisableTelemetry = true;

                // Configure an authentication provider with certificate (Required for app only)
                var authProvider = new X509CertificateAuthenticationProvider(azureFunctionSettings.ClientId,
                                                                             azureFunctionSettings.TenantId,
                                                                             StoreName.My,
                                                                             StoreLocation.CurrentUser,
                                                                             azureFunctionSettings.CertificateThumbprint);
                // And set it as default
                options.DefaultAuthenticationProvider = authProvider;

                // Add a default configuration with the site configured in app settings
                options.Sites.Add("Default",
                                  new PnP.Core.Services.Builder.Configuration.PnPCoreSiteOptions
                {
                    SiteUrl = azureFunctionSettings.SiteUrl,
                    AuthenticationProvider = authProvider
                });
            });
        }
Ejemplo n.º 2
0
        public override void Configure(IFunctionsHostBuilder builder)
        {
            var config   = builder.GetContext().Configuration;
            var settings = new Settings();

            config.Bind(settings);

            builder.Services.AddPnPCore(options =>
            {
                options.DisableTelemetry = true;

                var authProvider = new X509CertificateAuthenticationProvider(
                    settings.ClientId.ToString(),
                    settings.TenantId.ToString(),
                    StoreName.My,
                    StoreLocation.CurrentUser,
                    settings.CertificateThumbprint);
                options.DefaultAuthenticationProvider = authProvider;

                options.Sites.Add("Default",
                                  new PnPCoreSiteOptions
                {
                    SiteUrl = settings.SiteUrl.ToString(),
                    AuthenticationProvider = authProvider
                });
            });
        }
Ejemplo n.º 3
0
#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously
        public async Task TestX509CertificateConstructorNoDI_NullThumbprint()
#pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously
        {
            var configuration = TestCommon.GetConfigurationSettings();
            var storeName     = configuration.GetValue <StoreName>($"{TestGlobals.CredentialsConfigurationBasePath}:{x509CertificateConfigurationPath}:X509Certificate:StoreName");
            var storeLocation = configuration.GetValue <StoreLocation>($"{TestGlobals.CredentialsConfigurationBasePath}:{x509CertificateConfigurationPath}:X509Certificate:StoreLocation");

            var provider = new X509CertificateAuthenticationProvider(
                AuthGlobals.DefaultClientId,
                AuthGlobals.OrganizationsTenantId,
                storeName,
                storeLocation,
                null);
        }
Ejemplo n.º 4
0
        private static X509CertificateAuthenticationProvider PrepareX509CertificateAuthenticationProvider()
        {
            //if (TestCommon.RunningInGitHubWorkflow()) Assert.Inconclusive("Skipping test because we're running inside a GitHub action and we don't have access to the certificate store");

            var configuration = TestCommon.GetConfigurationSettings();
            var clientId      = configuration.GetValue <string>($"{TestGlobals.CredentialsConfigurationBasePath}:{x509CertificateConfigurationPath}:ClientId");
            var tenantId      = configuration.GetValue <string>($"{TestGlobals.CredentialsConfigurationBasePath}:{x509CertificateConfigurationPath}:TenantId");
            var storeName     = configuration.GetValue <StoreName>($"{TestGlobals.CredentialsConfigurationBasePath}:{x509CertificateConfigurationPath}:X509Certificate:StoreName");
            var storeLocation = configuration.GetValue <StoreLocation>($"{TestGlobals.CredentialsConfigurationBasePath}:{x509CertificateConfigurationPath}:X509Certificate:StoreLocation");
            var thumbprint    = configuration.GetValue <string>($"{TestGlobals.CredentialsConfigurationBasePath}:{x509CertificateConfigurationPath}:X509Certificate:Thumbprint");

            var provider = new X509CertificateAuthenticationProvider(
                clientId,
                tenantId,
                storeName,
                storeLocation,
                thumbprint);

            return(provider);
        }
Ejemplo n.º 5
0
#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously
        public async Task TestX509CertificateConstructorNoDI_NullClientId_NullTenantId()
#pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously
        {
            //if (TestCommon.RunningInGitHubWorkflow()) Assert.Inconclusive("Skipping test because we're running inside a GitHub action and we don't have access to the certificate store");

            var configuration = TestCommon.GetConfigurationSettings();
            var storeName     = configuration.GetValue <StoreName>($"{TestGlobals.CredentialsConfigurationBasePath}:{x509CertificateConfigurationPath}:X509Certificate:StoreName");
            var storeLocation = configuration.GetValue <StoreLocation>($"{TestGlobals.CredentialsConfigurationBasePath}:{x509CertificateConfigurationPath}:X509Certificate:StoreLocation");
            var thumbprint    = configuration.GetValue <string>($"{TestGlobals.CredentialsConfigurationBasePath}:{x509CertificateConfigurationPath}:X509Certificate:Thumbprint");

            var provider = new X509CertificateAuthenticationProvider(
                null,
                null,
                storeName,
                storeLocation,
                thumbprint);

            Assert.IsNotNull(provider);
            Assert.IsNotNull(provider.ClientId);
            Assert.IsNotNull(provider.TenantId);
            Assert.IsNotNull(provider.Certificate);
        }