capehenrytech.com

Friday, 03 July 2009

Home
Friday, 03 July 2009
Main Menu
Home
Blog
News
All Posts
Links
Contact Us
Search
News Feeds
FAQs
Administrator
Login Form





Lost Password?
No account yet? Register
Syndicate
Newsflash

In 2008 we had some lofty goals, and we achieved all of them.  In February we moved the business to Fuquay Varina, North Carolina from Norman, Oklahoma.  For several months we renovated the company office building.  While construction was underway, our CEO was elected to the JA-SIG Central Authentication Service (CAS) Steering Committee.  David was honored with the right to influence a small group of individuals that are responsible for the Single Sign-On (SSO) and authentication system used globally by the higher education community.  In October, our CEO was chosen as a Java Community Process (JCP) member with Sun Microsystems. 

The most important goals for 2008 were to grow the size of the company entity, develop an expert team of executive-level technical types, and secure a large project for us to provide for the public benefit.  This team has been formed and we are driven to provide a feature rich application for the iPhone sometime in the Spring of 2009.

Please contact us for your global IT consulting needs.  We are always looking for new business opportunity.  And, don't forget, we do Java, C++, Cocoa, Objective-C, and the iPhone SDK.  If your data isn't in the clouds, it should be on an iPhone.

 
A CAS Proposal
Written by Administrator   
Thursday, 09 October 2008

The following paper was written by David Whitehurst, an independent contractor. It was prepared for a state government client as a first proposal for the installation of JBoss in promotional test, integration, and production environments. This is not the submittal for approval to the final enterprise solution. This document is closed for editing 7-1-2008.

Introduction

In the world of business today, the internet plays a big role in how you handle data, its administration, and storage. Everyone is concerned about security and that's why it seems like every application we open requires another password. Microsoft has a built-in identity solution called Active Directory. This is used by many companies utilizing a Microsoft LAN/WAN (network) to require domain-level authentication on the network. This network authentication doesn't prevent any application running on this network from waiving its authentication if needed. However, if your network users work with many applications, it's very likely that they are entering a user and password many times a day. It's also common to find that these applications will manage their own user accounts (including passwords).

The level of security implementations with each application may vary. An enterprise security solution should not consist of multiple application authentications. Authentication presents the question, "are you who you say you are?" When a user enters a password correctly, our systems assume the answer is yes, however, many forget that this question may be a lie because the password encryption was compromised, someone else saw the password, or they heard it and used it later, etc. The system or application is happy because the password was correct and therefore it has no further question of identity.

When each application in an enterprise has it's own authentication, it's as if each department, section, individual, etc. responsible for an application believes that it should implement another security solution. This is not a good philosophy. While one department, section, individual, etc. may be a security expert, another may not. Identity management should be a single enterprise service. Service oriented architecture (SOA) should be well understood and well documented. A single identity management system should require that each enterprise user identify herself and the system provide a fail-safe mechanism for this verification.

Problem Identification

Here at the Client Center, there are two specific systems of identification, facility entry and network entry. Each employee at Client must present a badge or be screened by a security guard before entry into a Client facility. All entries and exits are secure. Also the level of scrutiny is higher for those that do not have a badge. Network entry has one entry and exit as well. These entries and exits are maintained by one or more system administrators using Microsoft's Active Directory. This user identification provides a high quality and very secure solution for identity management. What it does not do, however, is provide any assurance that this same username will be using the applications within the network boundary. And, when identity management is implemented at the application level, network identity is lost. Only active directory usernames should be used and/or identified.

Enterprise security should truly separate authentication from authorization. It's very common that web applications require user and password logins. "Why?", you would ask. Very often the response is "because we need to protect this application from outside threat." Let's examine security closely for a moment. The Oxford American dictionary defines security as the state of being free from danger or threat. Security is important because any application hosted on an intranet or the internet is subject to intrusion by unwanted visitors. And when your application is exposed to such threats, you need to protect it. Before you learn how to protect your applications, you should understand the two key concepts that define application security, authentication and authorization.

Authentication

If someone asks you for permission to do something, you first want to know who is asking and you then question yourself to be sure that you have identified this person correctly. In security terms, this person is a principal. A principal is the entity that is requesting access to a secure resource. An application that has secured its resources will first want to identify these principals that request access to these resources. This identification is called authentication. Authentication is the act of proving that the principal is genuine or real. This is normally done by requesting for a password input with computer programs. If the user can provide the correct password, then she must be genuine.

Many different technologies are employed by computer systems to verify identity. Some of these are public key cryptography, Kerberos, Java Cryptography Extension (JCE), Java Authentication and Authorization Service (JAAS), Secure Shell (SSH), Encrypted Key Exchange (EKE), Secure Remote Password Protocol (SRP), Lightweight Directory Access Protocol (LDAP), HTTP authentication methods, etc. These technologies are termed as authentication providers. Client's network presently uses Microsoft Active Directory to prove identity using user/password authentication at network login. Please note that the levels of security between these different providers may vary greatly.

Authorization

Authorization provides access to system resources or methods once the principal has been identified. Authorization is usually based on predefined user roles. Normally, an application only has a few roles. Most commonly this is a user role and an administrative role. There is no standard list of application roles. The application requirements will dictate various actors and what operations they need to perform. And, the roles are derived from these actions and requirements. Authorizing methods are normally employed between public access points and requests that the system user could make. Authorization is the security method that should concern application developers, not authentication. Enterprise development has been slow to realize that authentication and authorization are two distinct and separate operations. Within the boundaries of an enterprise network, authentication should only occur once for users of system resources, intranet activity, business applications, common portals, etc. Operating systems, individual servers, web hosts, service providers, etc. would always require authentication and authorization for access to its resources. This scenario is very different from access and priviledge management of application data. This paper is focused specifically with application-level security.

It's always the case that each application or product owner wants to protect his application. But, within the walls of a secure enterprise network, the application should only be concerned with privilege or authorization to use its services (what's publically exposed).

Proposed Resolution

It is proposed that the Client network at the Client Center in Raleigh, North Carolina implement a Single Sign On (SSO) solution using Yale's Central Authentication Service (CAS) and utilize the network Microsoft Active Directory using LDAP as an authentication means thereby using the existing network access identities. In addition to this, create a single configurable Spring servlet filter to verify authorization against the same Active Directory for any hosted JBoss application that does not manage its own user roles. Microsoft applications hosted on IIS do not have to use the proposed system, however, they can easily migrate to this enterprise system and use one of the Microsoft clients with CAS and quickly migrate. This would result in an inexpensive enterprise solution, proven security, and possibly better application performance over the hosting environment.

The present IIS reverse proxy can be easily replaced for JBoss by using a single SSO service (CAS) and adding a configured servlet filter and authorization role per URL.  Also, CAS is proven for large organizations and clients are provided for Java, Perl, Ruby, .NET, ASP, C#, ColdFusion, etc.  Presently, maintenance and implementation are of utmost importance here because the Technical Services group here in the Century Center should not have to program security solutions to a virtually undocumented single sign on (SSO) service.  Also, cookies are most commonly maintained on a session basis.  The reverse proxy in place on IIS now requires JBoss applications to authenticate repeatedly.  This is overkill.  The proposed system can adjust in-memory cookie timeouts easily.  But, if the authentication system (CAS) is trusting the identity of the application user, the JBoss applications only need to authorize this identified user.

The Central Authentication Service (CAS) is very popular and used by many large organizations to provide SSO.  Also, CAS is very secure and uses SSL. CAS provides a service manager that allows an administrator to just add the service URL for newly deployed application requiring single sign on and a security proxy call. These secured services will be kept in an Oracle database for presentation link reference.

Single Sign On (SSO)

SSO or Single Sign On is a quality method that's being employed in Enterprise development to reduce password compromise and to require that application users only need to log in once within a browser session. The SSO concept is very logical, however, it's always been difficult to implement and standards are slow to evolve. The IT folks at Yale University have developed a very popular solution to this problem called CAS.

What is CAS?

The Central Authentication Service (CAS) is a single server identity management or authentication system that provides an optional in-memory cookie or Single Sign On (SSO) service. CAS provides the ability to securely proxy to protected web applications or services. CAS was originally developed by Yale University and was adopted as a JA-SIG project in December 2004. JA-SIG is a non-profit global consortium consisting of educational institutions and commercial affiliates that promotes solutions to high-level architecture problems. CAS, one of the products they now manage, has now reached final release status and is used to provide a single point of authentication for a federated group of network or internet applications.

Why would do I personally recommend CAS?

I personally recommend its use because it's successful, highly praised, used internationally, well documented, and it's free. A list of happy customers is provided here.

In Production...

• Appian Corporation
• Athabasca University
• Azusa Pacific University
• BCcampus
• Bob Jones University
• California Polytechnic Institute
• California State University, Chico
• Campus Crusade for Christ
• Case Western Reserve University
• Columbia
• Darmstadt University of Technology (Germany)
• Dartmouth College
• Employers Direct
• The Evergreen State College
• Florida State University
• GET-INT
• H-E-B Grocery
• Hong Kong University of Science and Technology
• Indiana University
• Instituto Superior Tecnico (Lisbon, Portugal)
• Karlstad University, Sweden
• La Voz de Galicia, Spain
• Memorial University of Newfoundland
• Nagoya University
• NHMCCD
• Northern Arizona University
• Plymouth State University (used with SunGardHE Luminis)
• Pulaski Technical College
• Roskilde University
• Rotterdam University (Hogeschool Rotterdam)
• The Royal Institute of Technology (KTH)
• Rutgers, The State University of New Jersey
• Sabanci University
• SunGard HE Luminis
• Simon Fraser University (Vancouver, B.C.)
• Sony Online Entertainment
• Suffield Academy
• Tollpost Globe AS
• Universidad de Navarra
• Universita degli Studi di Parma
• Universite de Bourgogne - France
• Université de Bretagne Occidentale (Brest) - France
• Universite de La Rochelle, France
• Universite de Pau et des Pays de l'Adour, France
• University of Nancy 1, France
• Universite Nancy 2, France
• Universite Pantheon Sorbonne
• Universiteit van Amsterdam
• University Duisburg-Essen
• University of Arizona
• University of Bristol, England
• University of California, Berkeley
• University of California Merced
• University of California, Riverside
• University of Connecticut
• University of Crete, Greece
• University of Delaware
• University of Geneva
• University of Hawaii
• Uniwersytet Mikolaja Kopernika (Nicolaus Copernicus University)
• Uniwersytet Warszawski
• University of Illinois at Urbana-Champaign - Graduate School Library and Information Science
• University of Kansas Medical Center
• University of Nebraska-Lincoln (Center on Children, Families, and the Law)
• University of New England, Armidale Australia
• University of New Mexico
• University of Rennes1
• University of Saskatchewan
• University of Scranton
• University of Technology, Sydney
• University of Texas at Arlington
• SRCE - University Computing Centre, University of Zagreb (Croatia) English Version
• Uppsala University
• Valtech
• Virginia Tech
• Yale University

In Development...

• Brigham Young University
• Arizona State University

Conclusion

This document is in draft status and may be changed. A proper conclusion will be written after the proposal has been reviewed and implementation begins. The Client has the right to disapprove these suggestions and may opt to ignore any problems noted in this document.

Last Updated ( Thursday, 09 October 2008 )
 
The AppFuse Primer is available!
Written by Administrator   
Monday, 08 September 2008

The AppFuse Primer is now available on Amazon at http://www.amazon.com/AppFuse-Primer-David-Whitehurst/dp/0974884340/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1220880539&sr=8-1 If you're looking for an excellent book to get you started with AppFuse this is the one.  AppFuse has been around for a while and now you can buy a book to get you started.  AppFuse is an excellent project to get you started doing enterprise level Java projects with a minimum time cost and understanding.  Also, all of the source is available for your customization.

AppFuse Primer

Last Updated ( Monday, 08 September 2008 )
 
Why let market drive your IT choices?
Written by Administrator   
Monday, 08 September 2008

Every company needs IT services and I hope you have a good budget for what they're selling.  The costs of software products for businesses seems almost illegal.  The problem is that every business must either purchase software or write it themselves.  My vote is always for custom software.

For example, I was doing my books by hand and now I just don't have the time to do them using the old double-entry style I knew.  An associate recommended Quickbooks Pro.  Years ago I was a big big fan of Quicken and loved the user interface of the program.  So, I purchased Quickbooks Pro and spent some time trying to organize a download of my bank statements and align things I had been doing by hand electronically.  I'm an engineer turned software developer and I personally don't believe that computers are the answer for everything.  And, In this case, Quickbooks Pro wasn't the answer for me.

For many years I've architected and designed business systems using computer hosts.  Now, I'm considering my enterprise.  Do I listen to my own sales pitch?  Do I create my own accounting system?  The answer is YES!  And, it will be part of a Cape Henry Technologies Inc. service offering when it's complete.  As an employee I try to influence companies to accept change and do what's best for them.  Implementing custom solutions is always a good solution whether you have the resources to do it or not.  Even hiring a company like mine to implement a custom solution is cheaper than purchasing a system like SAP.  Also, Cape Henry Technologies Inc. stands behind open source because it's quality and it's secure. 

 When the source is public, there are no nuts and bolts to decipher.  It either works or it doesn't.  And, we would naturally use the code that works and is truly secure.  Source code is nothing more than a tool to instruct the computer to perform multiple operations.  It's the intelligence behind the communication with these computers that's really important.  That's where we, Cape Henry Technologies Inc. can save you money and provide a custom solution for your business that effectively solves your system needs and then allows you easy customization when change is needed.

We're looking hard to find businesses that need our service and if you're in the market for change (smart change) give us a call.  And, remember that internal development is only as good as the architecture and management direction you have.  Employee developers are expensive yet they can produce excellent business systems assuming excellent leadership.  Cape Henry Technologies Inc. is here to provide that leadership.  We can kick-start your IT organization into an efficient development machine.  We are here to make you a business leader.

Last Updated ( Tuesday, 09 September 2008 )
 
Polls
What's the best Java web framework?
 
Who's Online
© 2009 capehenrytech.com
Joomla! is Free Software released under the GNU/GPL License.