private static IOptionsSnapshot <IdentityServiceOptions> CreateOptions()
        {
            var identityServiceOptions = new IdentityServiceOptions();
            var optionsSetup           = new IdentityServiceOptionsDefaultSetup();

            optionsSetup.Configure(identityServiceOptions);

            SigningCredentials signingCredentials = new SigningCredentials(CryptoUtilities.CreateTestKey(), "RS256");

            identityServiceOptions.SigningKeys.Add(signingCredentials);
            identityServiceOptions.Issuer = "http://server.example.com";
            identityServiceOptions.IdTokenOptions.UserClaims.AddSingle(
                IdentityServiceClaimTypes.Subject,
                ClaimTypes.NameIdentifier);

            identityServiceOptions.RefreshTokenOptions.UserClaims.AddSingle(
                IdentityServiceClaimTypes.Subject,
                ClaimTypes.NameIdentifier);

            var mock = new Mock <IOptionsSnapshot <IdentityServiceOptions> >();

            mock.Setup(m => m.Value).Returns(identityServiceOptions);
            mock.Setup(m => m.Get(It.IsAny <string>())).Returns(identityServiceOptions);

            return(mock.Object);
        }
Esempio n. 2
0
        private IOptions <IdentityServiceOptions> GetOptions()
        {
            var IdentityServiceOptions = new IdentityServiceOptions()
            {
                Issuer = "http://www.example.com/issuer"
            };

            IdentityServiceOptions.SigningKeys.Add(new SigningCredentials(CryptoUtilities.CreateTestKey(), "RS256"));

            var optionsSetup = new IdentityServiceOptionsDefaultSetup();

            optionsSetup.Configure(IdentityServiceOptions);

            var mock = new Mock <IOptions <IdentityServiceOptions> >();

            mock.Setup(m => m.Value).Returns(IdentityServiceOptions);

            return(mock.Object);
        }
        private IOptions <IdentityServiceOptions> GetOptions()
        {
            var identityServiceOptions = new IdentityServiceOptions()
            {
                Issuer = "http://www.example.com/issuer"
            };
            var optionsSetup = new IdentityServiceOptionsDefaultSetup();

            optionsSetup.Configure(identityServiceOptions);

            identityServiceOptions.SigningKeys.Add(new SigningCredentials(CryptoUtilities.CreateTestKey(), "RS256"));
            identityServiceOptions.IdTokenOptions.UserClaims.AddSingle("sub", ClaimTypes.NameIdentifier);

            var mock = new Mock <IOptions <IdentityServiceOptions> >();

            mock.Setup(m => m.Value).Returns(identityServiceOptions);

            return(mock.Object);
        }
 private void RunTest(string testFlavor)
 {
     using (StartLog(out var loggerFactory, testFlavor))
     {
         var logger = loggerFactory.CreateLogger(testFlavor);
         for (var i = 0; i < 100; i++)
         {
             var key = CryptoUtilities.CreateTestKey();
             try
             {
                 CryptographyHelpers.GetRSAParameters(new SigningCredentials(key, "RS256"));
             }
             catch (CryptographicException e)
             {
                 LogKeyData(logger, i, key, e);
                 throw;
             }
         }
     }
 }
        public async Task GetCredentialsAsync_ReadsCredentialsFromOptions()
        {
            // Arrange
            var reference = new DateTimeOffset(2000, 01, 01, 00, 00, 00, TimeSpan.Zero);

            var identityServiceOptions = new IdentityServiceOptions();

            identityServiceOptions.SigningKeys.Add(new SigningCredentials(CryptoUtilities.CreateTestKey("RSAKey"), "RS256"));
            identityServiceOptions.SigningKeys.Add(new SigningCredentials(new X509SecurityKey(GetCertificate(reference)), "RS256"));
            var mock = new Mock <IOptionsSnapshot <IdentityServiceOptions> >();

            mock.Setup(m => m.Value).Returns(identityServiceOptions);
            mock.Setup(m => m.Get(It.IsAny <string>())).Returns(identityServiceOptions);
            var source = new DefaultSigningCredentialsSource(mock.Object, new TestTimeStampManager(reference));

            // Act
            var credentials = (await source.GetCredentials()).ToList();

            // Assert
            Assert.Equal(2, credentials.Count);
            var rsaDescriptor = Assert.Single(credentials, c => c.Id == "RSAKey");

            Assert.Equal("RSA", rsaDescriptor.Algorithm);
            Assert.Equal(reference, rsaDescriptor.NotBefore);
            Assert.Equal(reference.AddDays(1), rsaDescriptor.Expires);
            Assert.Equal(identityServiceOptions.SigningKeys[0], rsaDescriptor.Credentials);
            Assert.True(rsaDescriptor.Metadata.ContainsKey("n"));
            Assert.True(rsaDescriptor.Metadata.ContainsKey("e"));

            var certificateDescriptor = Assert.Single(credentials, c => c.Id != "RSAKey");

            Assert.Equal("RSA", certificateDescriptor.Algorithm);
            Assert.Equal(reference, certificateDescriptor.NotBefore);
            Assert.Equal(reference.AddHours(1), certificateDescriptor.Expires);
            Assert.Equal(identityServiceOptions.SigningKeys[1], certificateDescriptor.Credentials);
            Assert.True(certificateDescriptor.Metadata.ContainsKey("n"));
            Assert.True(certificateDescriptor.Metadata.ContainsKey("e"));
        }
 private SigningCredentials CreateRsaCredentials(string id = "Test") =>
 new SigningCredentials(CryptoUtilities.CreateTestKey(id), "RSA");