예제 #1
0
        private static void AssertSingedHttpRequestClaims(IPoPCryptoProvider popCryptoProvider, System.Security.Claims.ClaimsPrincipal claims)
        {
            Assert.AreEqual("GET", claims.FindAll("m").Single().Value);
            Assert.AreEqual("www.contoso.com", claims.FindAll("u").Single().Value);
            Assert.AreEqual("/path1/path2", claims.FindAll("p").Single().Value);

            AssertTsAndJwkClaims(popCryptoProvider, claims);
        }
예제 #2
0
        private static void AssertTsAndJwkClaims(IPoPCryptoProvider popCryptoProvider, System.Security.Claims.ClaimsPrincipal claims)
        {
            long ts = long.Parse(claims.FindAll("ts").Single().Value);

            CoreAssert.IsWithinRange(DateTimeOffset.UtcNow, DateTimeHelpers.UnixTimestampToDateTime(ts), TimeSpan.FromSeconds(5));

            string  jwkClaim    = claims.FindAll("cnf").Single().Value;
            JToken  publicKey   = JToken.Parse(popCryptoProvider.CannonicalPublicKeyJwk);
            JObject jwkInConfig = new JObject(new JProperty(PoPClaimTypes.JWK, publicKey));
            var     jwkInToken  = JObject.Parse(jwkClaim);

            Assert.IsTrue(JObject.DeepEquals(jwkInConfig, jwkInToken));
        }
예제 #3
0
        public UserIdentityServer(System.Security.Claims.ClaimsPrincipal claims)
        {
            NBF       = claims.FindFirst("nbf").Value;
            EXP       = claims.FindFirst("exp").Value;
            ISS       = claims.FindFirst("iss").Value;
            Client_Id = claims.FindFirst("client_id").Value;
            SUB       = claims.FindFirst("sub").Value;
            Auth_Time = claims.FindFirst("auth_time").Value;

            AUD = new List <string>();
            foreach (var claim in claims.FindAll("AUD"))
            {
                AUD.Add(claim.Value);
            }

            Scope = new List <string>();
            foreach (var claim in claims.FindAll("scope"))
            {
                Scope.Add(claim.Value);
            }
        }