Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }