In your application.cfc or application.cfm file check for the existance of a client.username, if it doesn't exist redirect to a login form - like:
<cfif not isdefined("client.username")>
<cflocation url="http://#cgi.server_name#/login/login.cfm"/>
</cfif> In your login action page (in a seperate login folder with it's own application.cfm or application.cfc so it doesn't create an endless loop), test the user password by doing a ldap connection to your active directory server. Trap any errors as login failure.
<cftry>
<CFLDAP
ACTION="QUERY"
SERVER="my.ldapserver.local"
PORT="389"
START="ou=users,ou=General,dc=MyCompany,dc=local"
USERNAME="MyDomain\#form.logonName#"
PASSWORD="#form.password#"
NAME="checkPassword"
filter="sAMAccountName=#form.logonName#"
ATTRIBUTES="*"
SCOPE="SubTree"
MAXROWS="1">
<cfset client.username = form.logonName />
<cfcatch type="any">
<cflocation url="login.cfm?msg=Your logon failed please try again"/>
</cfcatch>
</cftry> That's the basic idea, you can limit retries, pull active directory info for the user and put it in client variables, etc to add others features.