Update Active Directory Password through DBMS_LDAP call
563164Apr 6 2007 — edited Dec 24 2007I have a need to update a user's password in Microsoft's Active Directory through PL/SQL. I have configured an Oracle Wallet and can successfully bind to the Active Directory (LDAP) over SSL Port 636.
However, when I attempt to change the 'unicodePwd' parameter through the DBMS_LDAP.populate_mod_array statement below:
DBMS_LDAP.populate_mod_array(v_emp_array,DBMS_LDAP.MOD_REPLACE,'unicodePwd',v_emp_vals);
I receive the following error:
ORA-31202: DBMS_LDAP: LDAP client/server error: DSA is unwilling to perform. 0000001F: SvcErr: DSID-031A0FC0, problem 5003 (WILL_NOT_PERFORM), data 0
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: at "SYS.DBMS_LDAP", line 1455
ORA-06512: at "SYS.DBMS_LDAP", line 929
ORA-06512: at line 103
Has anyone experienced this before? Is this a problem on the Active Directory configuration, or is there something that may need to be done to the string being passed into the attribute (i.e., needs to be converted to Unicode?). We are attempting to create the Unicode string through the following routine:
v_emp_vals(1) := UTL_RAW.cast_to_raw(convert(v_random_pwd, 'AL16UTF16', 'US7ASCII'));
, but this does not appear to resolve the issue. Any help!?