Ejemplo n.º 1
0
        public IHttpActionResult RequestToken()
        {
            var     content      = Request.Content.ReadAsStringAsync().Result;
            dynamic json         = JsonConvert.DeserializeObject(content);
            long    pkSystemUser = json.PKSystemUser.Value;
            string  clientId     = json.ClientId.Value;
            string  publicKey    = json.PublicKey;

            if (!Audiences.Exists(clientId))
            {
                var key = Aparte.Security.Cryptography.SymmetricKey.GenerateSymmetricKey();
                try
                {
                    Audiences.Add(clientId, publicKey, key);
                }
                catch (Exception ex)
                {
                }
            }
            var encryptedToken = ProduceToken(pkSystemUser, clientId, new ApiContext());

            return(Ok <string>(encryptedToken));
        }
Ejemplo n.º 2
0
        private static JWT GetBasicAuthorizationHeader(HttpRequestMessage request)
        {
            var content = request.Headers.Authorization.Parameter;

            if (content == null)
            {
                return(null);
            }

            var jwt            = JWT.ParseFromBase64Url(content);
            var jwtDestination = jwt.Audience;
            var jwtIssuer      = jwt.Issuer;

            if (jwtDestination != KeyFile.AUTHENTICATION_SERVER_NAME)
            {
                return(null);
            }

            if (jwtIssuer != KeyFile.JEDIX_WIN_CLIENT_NAME)
            {
                //using (var dbContext = new ApiDbContext())
                //{
                //    var issuer = dbContext.Clients.Where(a => a.Name == jwtIssuer).FirstOrDefault();
                //    if (issuer == null)
                //        return null;
                //}
            }
            var publicKey = jwt[JWTConstant.CLAIM_PUBLIC_KEY];

            if (!Audiences.Exists(jwtIssuer))
            {
                var key = Security.Cryptography.SymmetricKey.GenerateSymmetricKey();
                Audiences.Add(jwtIssuer, publicKey, key);
            }
            return(jwt);
        }