protected virtual ValueTask <IPublicClientApplication> CreateClientCoreAsync(string[] clientCapabilities, bool async, CancellationToken cancellationToken) { var authorityHost = Pipeline.AuthorityHost; var authorityUri = new UriBuilder(authorityHost.Scheme, authorityHost.Host, authorityHost.Port, TenantId ?? Constants.OrganizationsTenantId).Uri; PublicClientApplicationBuilder pubAppBuilder = PublicClientApplicationBuilder .Create(ClientId) .WithAuthority(authorityUri) .WithHttpClientFactory(new HttpPipelineClientFactory(Pipeline.HttpPipeline)) .WithLogging(LogMsal, enablePiiLogging: IsPiiLoggingEnabled); if (!string.IsNullOrEmpty(RedirectUrl)) { pubAppBuilder = pubAppBuilder.WithRedirectUri(RedirectUrl); } if (clientCapabilities.Length > 0) { pubAppBuilder.WithClientCapabilities(clientCapabilities); } if (_beforeBuildClient != null) { _beforeBuildClient(pubAppBuilder); } return(new ValueTask <IPublicClientApplication>(pubAppBuilder.Build())); }
public static IPublicClientApplication CreatePublicClient( string authority = null, string clientId = null, string redirectUri = null, string tenantId = null) { PublicClientApplicationBuilder builder = PublicClientApplicationBuilder.Create(clientId); if (!string.IsNullOrEmpty(authority)) { builder = builder.WithAuthority(authority); } if (!string.IsNullOrEmpty(redirectUri)) { builder = builder.WithRedirectUri(redirectUri); } if (!string.IsNullOrEmpty(tenantId)) { builder = builder.WithTenantId(tenantId); } IPublicClientApplication client = builder.WithLogging( DebugLoggingMethod, LogLevel.Info, enablePiiLogging: false, enableDefaultPlatformLogging: true).Build(); MsalCacheHelper cacheHelper = InitializeCacheHelper(clientId); cacheHelper.RegisterCache(client.UserTokenCache); return(client); }
/// <summary> /// Creates a public client used for generating tokens. /// </summary> /// <param name="cloudInstance">The cloud instance used for authentication.</param> /// <param name="clientId">Identifier of the client requesting the token.</param> /// <param name="redirectUri">The redirect URI for the client.</param> /// <param name="tenantId">Identifier of the tenant requesting the token.</param> /// <returns>An aptly configured public client.</returns> private static IPublicClientApplication CreatePublicClient( AzureCloudInstance cloudInstance, string clientId = null, string redirectUri = null, string tenantId = null) { PublicClientApplicationBuilder builder = PublicClientApplicationBuilder.Create(clientId); builder = builder.WithAuthority(cloudInstance, tenantId); if (!string.IsNullOrEmpty(redirectUri)) { builder = builder.WithRedirectUri(redirectUri); } if (!string.IsNullOrEmpty(tenantId)) { builder = builder.WithTenantId(tenantId); } IPublicClientApplication client = builder.WithLogging((level, message, pii) => { PartnerSession.Instance.DebugMessages.Enqueue($"[MSAL] {level} {message}"); }).Build(); return(client); }
/// <summary> /// Creates a public client used for generating tokens. /// </summary> /// <param name="cloudInstance">The cloud instance used for authentication.</param> /// <param name="clientId">Identifier of the client requesting the token.</param> /// <param name="redirectUri">The redirect URI for the client.</param> /// <param name="tenantId">Identifier of the tenant requesting the token.</param> /// <returns>An aptly configured public client.</returns> private static IPublicClientApplication CreatePublicClient( AzureCloudInstance cloudInstance, string clientId = null, string redirectUri = null, string tenantId = null) { PublicClientApplicationBuilder builder = PublicClientApplicationBuilder.Create(clientId); builder = builder.WithAuthority(cloudInstance, tenantId); if (!string.IsNullOrEmpty(redirectUri)) { builder = builder.WithRedirectUri(redirectUri); } if (!string.IsNullOrEmpty(tenantId)) { builder = builder.WithTenantId(tenantId); } IPublicClientApplication client = builder.WithLogging((level, message, pii) => { MgmtSession.Instance.DebugMessages.Enqueue($"[MSAL] {level} {message}"); }).Build(); if (MgmtSession.Instance.TryGetComponent(ComponentKey.TokenCache, out IMgmtTokenCache tokenCache)) { ServiceClientTracing.Information($"[MSAL] Registering the token cache for client {clientId}"); tokenCache.RegisterCache(client); } return(client); }
protected override ValueTask <IPublicClientApplication> CreateClientAsync(bool async, CancellationToken cancellationToken) { var authorityHost = Pipeline.AuthorityHost; var authorityUri = new UriBuilder(authorityHost.Scheme, authorityHost.Host, authorityHost.Port, TenantId ?? Constants.OrganizationsTenantId).Uri; PublicClientApplicationBuilder pubAppBuilder = PublicClientApplicationBuilder.Create(ClientId).WithAuthority(authorityUri).WithHttpClientFactory(new HttpPipelineClientFactory(Pipeline.HttpPipeline)); if (!string.IsNullOrEmpty(_redirectUrl)) { pubAppBuilder = pubAppBuilder.WithRedirectUri(_redirectUrl); } return(new ValueTask <IPublicClientApplication>(pubAppBuilder.Build())); }
protected override ValueTask <IPublicClientApplication> CreateClientAsync(bool async, CancellationToken cancellationToken) { var authorityHost = Pipeline.AuthorityHost; var authorityUri = new UriBuilder(authorityHost.Scheme, authorityHost.Host, authorityHost.Port, TenantId ?? Constants.OrganizationsTenantId).Uri; PublicClientApplicationBuilder pubAppBuilder = PublicClientApplicationBuilder.Create(ClientId).WithAuthority(authorityUri).WithHttpClientFactory(new HttpPipelineClientFactory(Pipeline.HttpPipeline)).WithLogging(AzureIdentityEventSource.Singleton.LogMsal); if (!string.IsNullOrEmpty(RedirectUrl)) { pubAppBuilder = pubAppBuilder.WithRedirectUri(RedirectUrl); } pubAppBuilder.WithClientCapabilities(new string[] { "CP1" }); return(new ValueTask <IPublicClientApplication>(pubAppBuilder.Build())); }
public MsalPublicClient(HttpPipeline pipeline, string clientId, string tenantId = default, string redirectUrl = default, bool attachSharedCache = false) { PublicClientApplicationBuilder pubAppBuilder = PublicClientApplicationBuilder.Create(clientId).WithHttpClientFactory(new HttpPipelineClientFactory(pipeline)); tenantId ??= Constants.OrganizationsTenantId; pubAppBuilder = pubAppBuilder.WithTenantId(tenantId); if (!string.IsNullOrEmpty(redirectUrl)) { pubAppBuilder = pubAppBuilder.WithRedirectUri(redirectUrl); } _client = pubAppBuilder.Build(); if (attachSharedCache) { _cacheReader = new MsalCacheReader(_client.UserTokenCache, Constants.SharedTokenCacheFilePath, Constants.SharedTokenCacheAccessRetryCount, Constants.SharedTokenCacheAccessRetryDelay); } }
public MsalPublicClient(HttpPipeline pipeline, Uri authorityHost, string clientId, string tenantId = default, string redirectUrl = default, bool attachSharedCache = false) { tenantId ??= Constants.OrganizationsTenantId; var authorityUri = new UriBuilder(authorityHost.Scheme, authorityHost.Host, authorityHost.Port, tenantId).Uri; PublicClientApplicationBuilder pubAppBuilder = PublicClientApplicationBuilder.Create(clientId).WithAuthority(authorityUri).WithHttpClientFactory(new HttpPipelineClientFactory(pipeline)); pubAppBuilder = pubAppBuilder.WithTenantId(tenantId); if (!string.IsNullOrEmpty(redirectUrl)) { pubAppBuilder = pubAppBuilder.WithRedirectUri(redirectUrl); } _client = pubAppBuilder.Build(); _clientId = clientId; _ensureInitAsync = new Lazy <Task>(InitializeAsync); _attachSharedCache = attachSharedCache; }