public AccessTokenProvider(
			ITokenSigner tokenSigner,
			IAuthServiceClient authServiceClient
		) {
			m_tokenSigner = tokenSigner;
			m_client = authServiceClient;
		}
        public AuthServiceMock(KeyType keyType = KeyType.RSA)
        {
            m_server = HttpMockFactory.Create(out m_host);

#pragma warning disable 618
            m_publicKeyDataProvider = PublicKeyDataProviderFactory.CreateInternal(new InMemoryPublicKeyDataProvider());
#pragma warning restore 618

            TimeSpan keyLifetime       = TimeSpan.FromDays(365);
            TimeSpan keyRotationPeriod = TimeSpan.FromDays(182);

            switch (keyType)
            {
            case KeyType.ECDSA_P256:
            case KeyType.ECDSA_P384:
            case KeyType.ECDSA_P521: {
                CngAlgorithm curve;
                switch (keyType)
                {
                case KeyType.ECDSA_P521:
                    curve = CngAlgorithm.ECDsaP521;
                    break;

                case KeyType.ECDSA_P384:
                    curve = CngAlgorithm.ECDsaP384;
                    break;

                case KeyType.ECDSA_P256:
                default:
                    curve = CngAlgorithm.ECDsaP256;
                    break;
                }

                m_privateKeyProvider = EcDsaPrivateKeyProvider
                                       .Factory
                                       .Create(
                    m_publicKeyDataProvider,
                    keyLifetime,
                    keyRotationPeriod,
                    curve
                    );
                break;
            }

            case KeyType.RSA:
            default: {
                m_privateKeyProvider = RsaPrivateKeyProvider
                                       .Factory
                                       .Create(
                    m_publicKeyDataProvider,
                    keyLifetime,
                    keyRotationPeriod
                    );
                break;
            }
            }

            m_tokenSigner = new TokenSigner(m_privateKeyProvider);
        }
 public AccessTokenProvider(
     ITokenSigner tokenSigner,
     IAuthServiceClient authServiceClient
     )
 {
     m_tokenSigner = tokenSigner;
     m_client      = authServiceClient;
 }
Example #4
0
        public void OneTimeSetUp()
        {
#pragma warning disable 618
            m_privateKeyProvider = new StaticPrivateKeyProvider(
                keyId: TestKeyId,
                rsaParameters: TestStaticKeyProvider.TestRSAParameters);
#pragma warning restore 618
            m_tokenSigner = new TokenSigner(m_privateKeyProvider);
        }
		public AuthServiceMock( KeyType keyType = KeyType.RSA ) {
			m_server = HttpMockFactory.Create( out m_host );

#pragma warning disable 618
			m_publicKeyDataProvider = PublicKeyDataProviderFactory.CreateInternal( new InMemoryPublicKeyDataProvider() );
#pragma warning restore 618

			TimeSpan keyLifetime = TimeSpan.FromDays( 365 );
			TimeSpan keyRotationPeriod = TimeSpan.FromDays( 182 );

			switch( keyType ) {
				case KeyType.ECDSA_P256:
				case KeyType.ECDSA_P384:
				case KeyType.ECDSA_P521: {
						CngAlgorithm curve;
						switch( keyType ) {
							case KeyType.ECDSA_P521:
								curve = CngAlgorithm.ECDsaP521;
								break;
							case KeyType.ECDSA_P384:
								curve = CngAlgorithm.ECDsaP384;
								break;
							case KeyType.ECDSA_P256:
							default:
								curve = CngAlgorithm.ECDsaP256;
								break;
						}

						m_privateKeyProvider = EcDsaPrivateKeyProvider
							.Factory
							.Create(
								m_publicKeyDataProvider,
								keyLifetime,
								keyRotationPeriod,
								curve
							);
						break;
					}
				case KeyType.RSA:
				default: {
						m_privateKeyProvider = RsaPrivateKeyProvider
							.Factory
							.Create(
								m_publicKeyDataProvider,
								keyLifetime,
								keyRotationPeriod
							);
						break;
					}
			}

			m_tokenSigner = new TokenSigner( m_privateKeyProvider );
		}
		static TestUtilities() {
#pragma warning disable 618
			IPublicKeyDataProvider publicKeyDataProvider = new InMemoryPublicKeyDataProvider();
#pragma warning restore 618

			m_signer = EcDsaTokenSignerFactory
				.Create( publicKeyDataProvider, EcDsaTokenSignerFactory.Curve.P256 );

			IAccessTokenValidator accessTokenValidator = AccessTokenValidatorFactory
				.CreateLocalValidator( publicKeyDataProvider );

			RequestAuthenticator = RequestAuthenticatorFactory.Create( accessTokenValidator );
		}
        static TestUtilities()
        {
#pragma warning disable 618
            IPublicKeyDataProvider publicKeyDataProvider = new InMemoryPublicKeyDataProvider();
#pragma warning restore 618

            m_signer = EcDsaTokenSignerFactory
                       .Create(publicKeyDataProvider, EcDsaTokenSignerFactory.Curve.P256);

            IAccessTokenValidator accessTokenValidator = AccessTokenValidatorFactory
                                                         .CreateLocalValidator(publicKeyDataProvider);

            RequestAuthenticator = RequestAuthenticatorFactory.Create(accessTokenValidator);
        }
		public void SetUp() {
			Mock<IAuthServiceClient> clientMock = new Mock<IAuthServiceClient>();
			clientMock
				.Setup( x => x.ProvisionAccessTokenAsync( It.IsAny<string>(), It.IsAny<IEnumerable<Scope>>() ) )
				.Callback<string, IEnumerable<Scope>>( ( assertion, _ ) => {
					var tokenHandler = new JwtSecurityTokenHandler();
					m_actualAssertion = (JwtSecurityToken)tokenHandler.ReadToken( assertion );
				} )
				.ReturnsAsync( null );

#pragma warning disable 618
			m_publicKeyDataProvider = new InMemoryPublicKeyDataProvider();
#pragma warning restore 618

			m_tokenSigner = RsaTokenSignerFactory.Create( m_publicKeyDataProvider );
			m_accessTokenProvider = new AccessTokenProvider( m_tokenSigner, clientMock.Object );
		}
        /// <summary>
        /// Factory method for creating new <see cref="IAccessTokenProvider"/> instances. <paramref name="httpClient"/> will not be diposed.
        /// </summary>
        /// <returns>A new <see cref="IAccessTokenProvider"/></returns>
        public static IAccessTokenProvider Create(
            ITokenSigner tokenSigner,
            HttpClient httpClient,
            Uri authEndpoint,
            TimeSpan tokenRefreshGracePeriod
            )
        {
            IAuthServiceClient authServiceClient = new AuthServiceClient(
                httpClient,
                authEndpoint
                );

            INonCachingAccessTokenProvider accessTokenProvider =
                new AccessTokenProvider(tokenSigner, authServiceClient);

            return(new CachedAccessTokenProvider(accessTokenProvider, authEndpoint, tokenRefreshGracePeriod));
        }
		/// <summary>
		/// Factory method for creating new <see cref="IAccessTokenProvider"/> instances. <paramref name="httpClient"/> will not be diposed.
		/// </summary>
		/// <returns>A new <see cref="IAccessTokenProvider"/></returns>
		public static IAccessTokenProvider Create(
			ITokenSigner tokenSigner,
			HttpClient httpClient,
			Uri authEndpoint,
			TimeSpan tokenRefreshGracePeriod
		) {

			IAuthServiceClient authServiceClient = new AuthServiceClient(
				httpClient,
				authEndpoint
			);

			INonCachingAccessTokenProvider accessTokenProvider =
				new AccessTokenProvider( tokenSigner, authServiceClient );

			return new CachedAccessTokenProvider( accessTokenProvider, tokenRefreshGracePeriod );
		}
        public void SetUp()
        {
            Mock <IAuthServiceClient> clientMock = new Mock <IAuthServiceClient>();

            clientMock
            .Setup(x => x.ProvisionAccessTokenAsync(It.IsAny <string>(), It.IsAny <IEnumerable <Scope> >()))
            .Callback <string, IEnumerable <Scope> >((assertion, _) => {
                var tokenHandler  = new JwtSecurityTokenHandler();
                m_actualAssertion = ( JwtSecurityToken )tokenHandler.ReadToken(assertion);
            })
            .ReturnsAsync(value: null);

#pragma warning disable 618
            m_publicKeyDataProvider = new InMemoryPublicKeyDataProvider();
#pragma warning restore 618

            m_tokenSigner         = RsaTokenSignerFactory.Create(m_publicKeyDataProvider);
            m_accessTokenProvider = new AccessTokenProvider(m_tokenSigner, clientMock.Object);
        }
Example #12
0
        private void SetUp(out Uri host, out string token, out Guid id)
        {
            string hostStr;
            var    server = HttpMockFactory.Create(out hostStr);

            host = new Uri(hostStr);

#pragma warning disable 618
            IPublicKeyDataProvider publicKeyDataProvider = new InMemoryPublicKeyDataProvider();
#pragma warning restore 618
            ITokenSigner tokenSigner = GetTokenSigner(publicKeyDataProvider);

            token = tokenSigner
                    .SignAsync(new UnsignedToken(
                                   "some issuer",
                                   "some audience",
                                   new List <Claim>(),
                                   DateTime.Now,
                                   DateTime.Now + TimeSpan.FromDays(1)
                                   ))
                    .SafeAsync()
                    .GetAwaiter()
                    .GetResult();

            var jwk = publicKeyDataProvider
                      .GetAllAsync()
                      .SafeAsync()
                      .GetAwaiter()
                      .GetResult()
                      .First();

            id = jwk.Id;

            server
            .Stub(r => r.Get("/.well-known/jwks"))
            .Return(JsonConvert.SerializeObject(new { keys = new object[] { jwk.ToJwkDto() } }))
            .OK();
        }