public Task <IBinding> TryCreateAsync(BindingProviderContext context) { IAccessTokenSettings _accessTokenSettings = new AccessTokenSettings { PublicKey = Environment.GetEnvironmentVariable($"{nameof(AccessTokenSettings)}:{nameof(IAccessTokenSettings.PublicKey)}"), Audience = Environment.GetEnvironmentVariable($"{nameof(AccessTokenSettings)}:{nameof(IAccessTokenSettings.Audience)}"), Issuer = Environment.GetEnvironmentVariable($"{nameof(AccessTokenSettings)}:{nameof(IAccessTokenSettings.Issuer)}"), }; if (string.IsNullOrWhiteSpace(_accessTokenSettings.PublicKey)) { throw new ArgumentNullException($"{nameof(AccessTokenSettings)}:{nameof(IAccessTokenSettings.PublicKey)} setting is not exist or empty."); } if (string.IsNullOrWhiteSpace(_accessTokenSettings.Audience)) { throw new ArgumentNullException($"{nameof(AccessTokenSettings)}:{nameof(IAccessTokenSettings.Audience)} setting is not exist or empty."); } if (string.IsNullOrWhiteSpace(_accessTokenSettings.Issuer)) { throw new ArgumentNullException($"{nameof(AccessTokenSettings)}:{nameof(IAccessTokenSettings.Issuer)} setting is not exist or empty."); } IBinding binding = new AccessTokenBinding(_accessTokenSettings); return(Task.FromResult(binding)); }
public void DecodedAccessTokenShouldBeValid( string publicKey, string issuer, string audience, string accessToken, string expectedUserId, string expectedGivenName, string expectedFamilyName) { var accessTokenSettings = new AccessTokenSettings { PublicKey = publicKey, Issuer = issuer, Audience = audience }; var AccessTokenProvider = new AccessTokenProvider(accessTokenSettings); var httpContext = new DefaultHttpContext(); httpContext.Request.Headers["Authorization"] = $"Bearer {accessToken}"; var accessTokenResult = AccessTokenProvider.ValidateToken(httpContext.Request); Assert.Equal(AccessTokenStatus.Valid, accessTokenResult.Status); Assert.Equal(expectedUserId, accessTokenResult.Principal.GetUserId()); Assert.Equal(expectedGivenName, accessTokenResult.Principal.GetGivenName()); Assert.Equal(expectedFamilyName, accessTokenResult.Principal.GetFamilyName()); }
/// <summary> /// Default constructor /// </summary> /// <param name="httpContextAccessor">Default httpContext accessor</param> /// <param name="logger">The logger</param> /// <param name="accessTokenSettings">The access token settings</param> /// <param name="signingKeysResolver">The resolver for signing keys</param> public AccessTokenHandler( IHttpContextAccessor httpContextAccessor, ILogger <AccessTokenHandler> logger, IOptions <AccessTokenSettings> accessTokenSettings, ISigningKeysResolver signingKeysResolver) { _httpContextAccessor = httpContextAccessor; _logger = logger; _accessTokenSettings = accessTokenSettings.Value; _signingKeysResolver = signingKeysResolver; }
/// <summary> /// Initializes a new instance of the <see cref="AccessTokenProvider"/> class. /// </summary> /// <param name="keyVaultService">The key vault service.</param> /// <param name="accessTokenGenerator">The access token generator.</param> /// <param name="accessTokenSettings">The access token settings.</param> /// <param name="keyVaultSettings">The key vault settings.</param> /// <param name="platformSettings">The platform settings.</param> public AccessTokenProvider( IKeyVaultService keyVaultService, IAccessTokenGenerator accessTokenGenerator, IOptions <AccessTokenSettings> accessTokenSettings, IOptions <KeyVaultSettings> keyVaultSettings, IOptions <PlatformSettings> platformSettings) { _keyVaultService = keyVaultService; _accessTokenGenerator = accessTokenGenerator; _platformSettings = platformSettings.Value; _accessTokenSettings = accessTokenSettings.Value; _keyVaultSettings = keyVaultSettings.Value; }
/// <summary> /// Initializes a new instance of the <see cref="EventsController"/> class /// </summary> public EventsController( IEventsService eventsService, IRegisterService registerService, IOptions <GeneralSettings> settings, ILogger <EventsController> logger, IPDP pdp, IOptions <AccessTokenSettings> accessTokenSettings) { _registerService = registerService; _logger = logger; _eventsService = eventsService; _eventsBaseUri = $"https://platform.{settings.Value.Hostname}"; _authorizationHelper = new AuthorizationHelper(pdp); _accessTokenSettings = accessTokenSettings.Value; }
public AccountsService( UserManager <ApplicationUser> userManager, RoleManager <IdentityRole> roleManager, IOptions <AccessTokenSettings> accessTokenSettings, IOptions <RefreshTokenSettings> refreshTokenSettings, IMapper mapper, IdentityContext context) { this._userManager = userManager; this._roleManager = roleManager; this._accessTokenSettings = accessTokenSettings.Value; this._refreshTokenSettings = refreshTokenSettings.Value; this._mapper = mapper; this._context = context; }
/// <summary> /// Default constructor. /// </summary> /// <param name="logger">The logger</param> /// <param name="accessTokenSettings">Settings for access token</param> /// <param name="signingKeysResolver">The signingkeys resolver</param> public AccessTokenGenerator(ILogger <AccessTokenGenerator> logger, IOptions <AccessTokenSettings> accessTokenSettings, ISigningCredentialsResolver signingKeysResolver = null) { _accessTokenSettings = accessTokenSettings.Value; _signingKeysResolver = signingKeysResolver; _logger = logger; }
/// <summary> /// Default constructor /// </summary> /// <param name="keyVaultSettings">The keyvault settings</param> /// <param name="accessTokenSettings">Settings for access token</param> /// <param name="memoryCache">Memory cache</param> public SigningKeysResolver(IOptions <KeyVaultSettings> keyVaultSettings, IOptions <AccessTokenSettings> accessTokenSettings, IMemoryCache memoryCache) { _accessTokenSettings = accessTokenSettings.Value; _keyVaultSettings = keyVaultSettings.Value; _memoryCache = memoryCache; }
/// <summary> /// Default constructor /// </summary> /// <param name="accessTokenSettings">Access token settings</param> public SigningCredentialsResolver(IOptions <AccessTokenSettings> accessTokenSettings) { _accessTokenSettings = accessTokenSettings.Value; }