当首次使用jRun引擎发布ColdFusion时,许多用户当时的一个问题是我们如何针对Windows AD环境进行身份验证?当时(如果我没记错的话),Macromedia可以免费使用cfc,它使用一个或多个与jRun一起提供的Java类文件创建一个Java对象(组件的相关功能代码出现在末尾)此消息没有归属)并执行了“身份验证过程”。我认为我们的小员工不是多年来唯一使用该代码的开发人员。
我们一直在将该代码用于CF服务器的版本6-9。代码运行良好,但是使用CF 10并取消jRun作为底层Java服务器,代码不再起作用,因为类文件不包含在Tomcat服务器中。还有其他人处于或处于类似情况吗?如果是这样,您是如何影响到CF 10的过渡并继续对Microsoft Active Directory进行身份验证的?
在我们的特定业务环境中,LDAP未配置为进行身份验证,因此针对LDAP进行身份验证不是我们的选项,并且LDAP控制不在我们的小部门范围内(由我们领域之外的中央IT部门处理)影响)。至于我们的本地服务器,我们运行Windows Server 2008 R2,IIS 7.5,JRE 1.7 64位和ColdFusion 10 SE 64位。如果有人有任何想法分享,我将不胜感激阅读。
CODE SNIPPET跟随
<!--- Authenticates the user and outputs true on success and false on failure. --->
<CFFUNCTION NAME="authenticateUser" ACCESS="REMOTE" OUTPUT="yes" STATIC="yes" HINT="Authenticates the user.">
<CFARGUMENT NAME="userid" TYPE="string" REQUIRED="true" />
<CFARGUMENT NAME="passwd" TYPE="string" REQUIRED="true" />
<CFARGUMENT NAME="domain" TYPE="string" REQUIRED="true" />
<CFTRY>
<CFSCRIPT>
ntauth = createObject("java", "jrun.security.NTAuth");
ntauth.init(arguments.domain);
// authenticateUser throws an exception if it fails,
// so we don't have anything specific here
ntauth.authenticateUser(arguments.userid, arguments.passwd);
auth = true;
</CFSCRIPT>
<CFCATCH>
<CFSET auth = false>
</CFCATCH>
</CFTRY>
<CFRETURN AUTH>
</CFFUNCTION>
答案 0 :(得分:2)
cfldap可用于Active Directory身份验证。可能有比这更好的例子:http://www.sixfive.com.au/2005/01/cfldap-and-user-authentication-on-active-directory/
正如评论中所建议的那样,IIS也能够对AD进行身份验证。