Forum OpenACS Q&A: Re: How to use Active Directory credentials for logging into OpenACS

Thanks Michael (for the valuable info),
So far I have done following things with the server
1. Compiled & built aolserver module nsldap.
2. Modified config.tcl file as per the documentation (mentioned LDAP pool in the file).
3. In Package manager page, "LDAP authentication driver" shows 'Key' as "auth-ldap" (Are these pacakges one and the same? If yes, then I don't need to install auth-ldap separately.)
4. I tried to reinstall the LDAP auth. driver then server threw an exception as below:
----------------------------------------------
Database operation "0or1row" failed (exception ERROR, "ERROR: Binding of auth_authentication to LDAP failed since certain operations are not implemented like: MergeUser.
CONTEXT: SQL statement "SELECT acs_sc_binding__new( $1 , $2 )"
PL/pgSQL function "acs_sc_binding__new" line 16 at perform
")

ERROR: Binding of auth_authentication to LDAP failed since certain operations are not implemented like: MergeUser.
CONTEXT: SQL statement "SELECT acs_sc_binding__new( $1 , $2 )"
PL/pgSQL function "acs_sc_binding__new" line 16 at perform

SQL:
select acs_sc_binding__new(
'auth_authentication',
'LDAP'
);

while executing
"ns_pg_bind 0or1row nsdb0 {
select acs_sc_binding__new(
:contract_name,
:impl_name
..."
("uplevel" body line 1)
invoked from within
"uplevel $ulevel [list ns_pg_bind $type $db $sql]"
("postgresql" arm line 2)
invoked from within
"switch $driverkey {
oracle {
return [uplevel $ulevel [list ns_ora $type $db $sql] $args]
}
..."
invoked from within
"db_exec 0or1row $db $full_statement_name $sql"
invoked from within
"if {[regexp -nocase -- {^\s*select} $test_sql match]} {
# ns_log Debug "PLPGSQL: bypassed anon function"
set selection..."
("uplevel" body line 6)
invoked from within
"uplevel 1 $code_block "
invoked from within
"db_with_handle -dbn $dbn db {
# plsql calls that are simple selects bypass the plpgsql
# mechanism for creating anonymous fun..."
(procedure "db_exec_plsql" line 57)
invoked from within
"db_exec_plsql binding_new {}"
(procedure "acs_sc::impl::binding::new" line 3)
invoked from within
"acs_sc::impl::binding::new -contract_name $impl(contract_name) -impl_name $impl(name)"
("uplevel" body line 6)
invoked from within
"uplevel 1 $transaction_code "
(procedure "db_transaction" line 1)
invoked from within
"db_transaction {
set impl_id [new -contract_name $impl(contract_name) -name $impl(name) -pretty_name $impl(pretty_name) -owner $impl(owner..."
(procedure "acs_sc::impl::new_from_spec" line 10)
invoked from within
"acs_sc::impl::new_from_spec -spec $spec"
(procedure "auth::ldap::after_install" line 13)
invoked from within
"auth::ldap::after_install "
("eval" body line 1)
invoked from within
"eval $command"
(procedure "apm_invoke_callback_proc" line 37)
invoked from within
"apm_invoke_callback_proc -version_id $version_id -type after-install"
(procedure "apm_package_install" line 146)
invoked from within
"apm_package_install -enable=$enable_p -package_path $package_path -callback apm_ns_write_callback -load_data_model -data_model_files $data_model_..."
("foreach" body line 42)
invoked from within
"foreach pkg_info $pkg_install_list {
set spec_file [pkg_info_spec $pkg_info]
set package_path [pkg_info_path $pkg_info]

if { [catch {
ar..."
("uplevel" body line 34)
invoked from within
"uplevel {
ad_page_contract {

Installs the packages.

@author Bryan Quinn (mailto:bquinn@arsdigita.com)
@creation-date Mon Oct 9 00:22:31..."
(procedure "code::tcl::/var/lib/aolserver/service0/packages/acs-admin..." line 2)
invoked from within
"code::tcl::$__adp_stub"
invoked from within
"if { [file exists $__adp_stub.tcl] } {

# ensure that data source preparation procedure exists and is up-to-date
adp_init tcl $__adp_stub
..."
("uplevel" body line 3)
invoked from within
"uplevel {

if { [file exists $__adp_stub.tcl] } {

# ensure that data source preparation procedure exists and is up-to-date
adp_init t..."
(procedure "adp_prepare" line 2)
invoked from within
"adp_prepare "
(procedure "template::adp_parse" line 30)
invoked from within
"template::adp_parse [file root [ad_conn file]] {}"
(procedure "adp_parse_ad_conn_file" line 5)
invoked from within
"$handler"
("uplevel" body line 2)
invoked from within
"uplevel $code"
invoked from within
"ad_try {
$handler
} ad_script_abort val {
# do nothing
}"
invoked from within
"rp_serve_concrete_file [ad_conn file]"
(procedure "rp_serve_abstract_file" line 60)
invoked from within
"rp_serve_abstract_file "$root/$path""
("uplevel" body line 2)
invoked from within
"uplevel $code"
invoked from within
"ad_try {
rp_serve_abstract_file "$root/$path"
set tcl_url2file([ad_conn url]) [ad_conn file]
set tcl_url2path_info..."
-----------------------------------------------------
How Can I enable the MergeUSer operation? or Is there any workaround for this?

Thanks
Ratnakar