Ejemplo n.º 1
0
 private async Task <AuthenticationContext> CreateAuthenticationContext(ClaimsPrincipal claimsPrincipal)
 {
     return(new AuthenticationContext(
                _adOptions.AuthEndpointPrefix,
                await _tokenCacheService.GetCacheAsync(claimsPrincipal)
                .ConfigureAwait(false)));
 }
        public override void InitializeServiceClient <T>(ServiceClient <T> client)
        {
            var tokenCache = tokenCacheService.GetCacheAsync(claimsPrincipal).Result;

            var authenticationContext =
                new AuthenticationContext(azureADOptions.Instance + azureADOptions.TenantId, tokenCache);

            var credential = new ClientCredential(
                clientId: azureADOptions.ClientId,
                clientSecret: azureADOptions.ClientSecret);

            var name = claimsPrincipal.FindFirstValue(ClaimTypes.Upn) ??
                       claimsPrincipal.FindFirstValue(ClaimTypes.Email);
            string userObjectId = (claimsPrincipal.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier"))?.Value;
            var    user         = new UserIdentifier(userObjectId, UserIdentifierType.UniqueId);

            var result = authenticationContext.AcquireTokenSilentAsync(
                resource: opcVaultOptions.ResourceId,
                clientCredential: credential,
                userId: user).GetAwaiter().GetResult();

            if (result == null)
            {
                throw new InvalidOperationException("Failed to obtain the JWT token");
            }

            AuthenticationToken = result.AccessToken;
        }
Ejemplo n.º 3
0
        private async Task <AuthenticationContext> CreateAuthenticationContext(ClaimsPrincipal claimsPrincipal)
        {
            Guard.ArgumentNotNull(claimsPrincipal, nameof(claimsPrincipal));

            return(new AuthenticationContext(
                       Constants.AuthEndpointPrefix,
                       await _tokenCacheService.GetCacheAsync(claimsPrincipal)
                       .ConfigureAwait(false)));
        }