Как узнать, принадлежит ли пользователь роли в активном каталоге - с помощью ColdFusion - PullRequest
2 голосов
/ 06 августа 2009

Если я использую интеграционную аутентификацию в IIS, как я могу определить, является ли текущий пользователь частью определенной роли активного каталога, используя ColdFusion.

Это было бы аналогично использованию метода IsInRole () объекта User в .net - как это можно сделать в ColdFusion

Ответы [ 3 ]

6 голосов
/ 06 августа 2009

единственный способ сделать это - использовать cflap и запросить сервер активных каталогов, чтобы получить список групп. после того, как вы получили список, вам нужно будет проанализировать его, чтобы увидеть, принадлежит ли этот пользователь к рассматриваемой группе. ниже приведен код, который я написал с комментариями для людей на работе. значения были изменены, чтобы защитить невинных.

<!--- getting the user login id --->
<cfset variables.thisuser = ListLast(cgi.AUTH_USER, "\")>
<!--- this is the group they must be a memberof --->
<cfset variables.groupname = "CN=<the group to search for>">
<!--- list of all groups that the user belongs to, will be populated later --->
<cfset variables.grouplist = "">

<cftry>
    <cfldap action="query"
        name="myldap"
        attributes="memberOf"
        start="OU=<your ou>,DC=<your dc>,DC=<your dc>"
        scope="subtree"
        filter="(sAMAccountName=#variables.thisuser#)"
        server="<your AD server ip>"
        port="<your AD server port>"
        username="<network login if required>"
        password="<network password if required>">

    <cfset variables.grouplist = myldap.memberOf>

<cfcatch>
    </cfcatch>
</cftry>

<cfif FindNoCase(variables.groupname, variables.grouplist)>

    <cfcookie name="SecurityCookieName" value="">

</cfif>
1 голос
/ 13 августа 2009

В качестве продолжения на сервере SQL есть поставщики ADSI, которые позволяют вам создавать связанный сервер с вашими серверами LDAP.

Оттуда вы можете выполнять запросы ldap к вашему AD, и он возвращается, как и любой другой набор записей.

Мне кажется, немного сложнее выполнить сложный запрос ldap, чем через CF.

1 голос
/ 06 августа 2009

В Coldfusion для проверки роли пользователя вы должны использовать IsUserInRole ()

http://cfquickdocs.com/#IsUserInRole

Редактировать - и на самом деле, я надеюсь, что я правильно понял, я ничего не знаю о IIS или активной директории. Как я понял вопрос, вы хотели проверить роль пользователей в Coldfusion.

Я думаю, вы можете искать что-то более похожее на это: http://vincentcollins.wordpress.com/2008/08/20/active-directory-ldap-authentication/ или это: http://coldfusion.sys -con.com / node / 154225

...