public WebRequestManager( IHttpManager httpManager, ISystemUtils systemUtils, EnvironmentMetadata environmentMetadata, AuthenticationParameters authenticationParameters) { _httpManager = httpManager; _systemUtils = systemUtils; _environmentMetadata = environmentMetadata; _authenticationParameters = authenticationParameters; _authenticationParameters.AddScope(OAuth2Scope.OpenId); _authenticationParameters.AddScope(OAuth2Scope.OfflineAccess); _authenticationParameters.AddScope(OAuth2Scope.Profile); }
private async Task <string> AuthenticationCallbackAsync( string authority, string resource, string scope) { var msalConfiguration = new MsalClientConfiguration(); var pca = new PublicClientApplication(msalConfiguration); //var authContext = new AuthenticationContext(authority, keyVaultTokenCache); var authParameters = new AuthenticationParameters { Authority = authority, ClientId = _config.ClientId, }; authParameters.AddScopes(ScopeUtils.Split(scope)); authParameters.AddScope("https://vault.azure.net/.default"); switch (_config.AuthType) { case KeyVaultAuthenticationType.ClientCertificate: var cert = CertificateHelper.FindCertificateByThumbprint(_config.CertThumbprint); authParameters.Certificate = cert; authParameters.AuthorizationType = AuthorizationType.Certificate; // authContext.AcquireTokenAsync(resource, _assertionCert)); break; case KeyVaultAuthenticationType.UserCredential: authParameters.AuthorizationType = AuthorizationType.WindowsIntegratedAuth; //authResult = await authContext.AcquireTokenAsync(resource, _config.ClientId, new UserCredential()); break; default: throw new ArgumentOutOfRangeException(); } var authResult = await pca.AcquireTokenSilentlyAsync(authParameters, CancellationToken.None) .ConfigureAwait(false); return(authResult?.AccessToken); }