Authentication ColdFusion 10 Active Directory身份验证

Authentication ColdFusion 10 Active Directory身份验证,authentication,coldfusion,active-directory,coldfusion-10,Authentication,Coldfusion,Active Directory,Coldfusion 10,当ColdFusion首次与jRun引擎一起发布时,当时许多用户提出的一个问题是,我们如何针对Windows AD环境进行身份验证?当时(如果我没记错的话),Macromedia免费提供了一个cfc,它使用一个或多个Java类文件创建了一个Java对象,这些Java类文件与jRun一起提供(组件的相关功能代码显示在该消息的末尾),并执行了“身份验证过程”我认为我们的小职员不是这些年来唯一使用这些代码的开发人员 我们已经在CF server的6-9版本中使用了该代码。代码运行得很好,但是使用CF

当ColdFusion首次与jRun引擎一起发布时,当时许多用户提出的一个问题是,我们如何针对Windows AD环境进行身份验证?当时(如果我没记错的话),Macromedia免费提供了一个cfc,它使用一个或多个Java类文件创建了一个Java对象,这些Java类文件与jRun一起提供(组件的相关功能代码显示在该消息的末尾),并执行了“身份验证过程”我认为我们的小职员不是这些年来唯一使用这些代码的开发人员

我们已经在CF server的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位。如果有人有任何想法可以分享,我将非常感谢阅读

下面是代码片段

    <!--- 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>

ntauth=createObject(“java”、“jrun.security.ntauth”);
init(arguments.domain);
//authenticateUser在失败时抛出异常,
//所以我们这里没有什么特别的
authenticateUser(arguments.userid,arguments.passwd);
auth=true;

cfldap可用于使用Active Directory进行身份验证。可能还有比这更好的例子:


正如评论中所建议的那样,IIS还能够针对AD进行身份验证。

既然您使用IIS,您可以让它为您处理身份验证吗?请参阅此处给出的答案:您可以使用
coldfusion.security.nAuthentication
而不是
jrun.security.nAuth