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 }); }); }
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 }); }); }
#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); }
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); }
#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); }