1

I'm experiencing an issue by using ODP.NET version 19.3 (latest Oracle Managed DataAccess available) to connect to Oracle 11g using a Secure External Password Store (SEPS), where the Oracle login credentials are stored in a client-side Oracle wallet.

If I switch to a classic login/password connection string, there are no problems with database connection and commands.

Furthermore, I report that all other .net applications that are using classic ODP 11 (un-managed DataAccess) have no problems to connect in SEPS mode; in fact, I'm building the first case of using ODP.NET 19.3 with SEPS and Oracle wallet mode.

In order I have:

  1. created a wallet (with mkstore utils) for our application and put it in a directory of server: ie

    C:\users\%APP_POOL_ID%\wallet

  2. created (for all applications) a sqlnet.ora file and put it in Oracle Home directory of server: ie

    %ORACLE_HOME%\Network\Admin

with the following content:

SQLNET.AUTHENTICATION_SERVICES=(NTS)
NAMES.DIRECTORY_PATH=(TNSNAMES,LDAP,EZCONNECT,HOSTNAME)
names.ldap_conn_timeout = 1
WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=c:\users\%APP_POOL_ID%\wallet)))
SQLNET.WALLET_OVERRIDE = TRUE
DIAG_ADR_ENABLED = off
  1. using the following ConnectionString:

    Data Source=DS_NAME_1; User ID=[USER_ID_1];Proxy User Id=[USER_ID_1];
    

Note: User ID and Proxy User Id are specified with square brackets inside connection string.

This is the exception with stack trace we obtain:

Oracle.ManagedDataAccess.Client.OracleException: ORA-01017: invalid username/password; logon denied

at OracleInternal.ConnectionPool.PoolManager`3.Get(ConnectionString csWithDiffOrNewPwd, Boolean bGetForApp, OracleConnection connRefForCriteria, String affinityInstanceName, Boolean bForceMatch)

at OracleInternal.ConnectionPool.OraclePoolManager.Get(ConnectionString csWithNewPassword, Boolean bGetForApp, OracleConnection connRefForCriteria, String affinityInstanceName, Boolean bForceMatch)

at OracleInternal.ConnectionPool.OracleConnectionDispenser`3.Get(ConnectionString cs, PM conPM, ConnectionString pmCS, SecureString securedPassword, SecureString securedProxyPassword, OracleConnection connRefForCriteria)

at Oracle.ManagedDataAccess.Client.OracleConnection.Open()

and this is a portion of the trace I obtain enabling by <oracle.manageddataaccess.client> config section:

>[...]
>(PRI) (TUN) OracleTuningAgent::Unegister(): Unegistered pool Data Source=DS_NAME_1; User ID=;Proxy User Id=[USER_ID_1];
>[...]

Additionally, in another trace file, it's possible to see the WriteOAuthMessage passes BLANK password to DB:

>(PRI) (TTC) (EXT) TTCAuthenticate.ReadOSessKeyResponse()
>(PRI) (SVC) (ENT) OracleConnectionImpl.CheckForAnyErrorFromDB()
>(PRI) (SVC) (EXT) OracleConnectionImpl.CheckForAnyErrorFromDB()
>(PRI) (TTC) (ENT) TTCAuthenticate.WriteOAuthMessage()
>(PRI) (TTC) (ENT) TTCAuthenticate.WriteOAuthMessage()
>(PRI) (TTC) (ENT) TTCFunction.WriteFunctionHeader()
>(PRI) (TTC) (ENT) TTCMessage.WriteTTCCode()
>(PRI) (TTC) (EXT) TTCMessage.WriteTTCCode()
>(PRI) (TTC) (EXT) TTCFunction.WriteFunctionHeader()
>(PRI) (TTC) (EXT) TTCAuthenticate.WriteOAuthMessage()
>(PRI) (TTC) (EXT) TTCAuthenticate.WriteOAuthMessage()
>(NET) (SND) 00 00 03 80 06 00 00 00   |........|
>(NET) (SND) 00 00                     |..      |
>(NET) (SND) 03 73 00 01 01 06 02 01   |.s......|
>[..user removed..]
>(NET) (SND) 41 55 54 48 5F 50 41 53   |AUTH_PAS|
>(NET) (SND) 53 57 4F 52 44 01 40 40   |SWORD.@@|
>(NET) (SND) 00 00 00 00 00 00 00 00   |........|
>(NET) (SND) 00 00 00 00 00 00 00 00   |........|
>(NET) (SND) 00 00 00 00 00 00 00 00   |........|
>(NET) (SND) 00 00 00 00 00 00 00 00   |........|
>(NET) (SND) 00 00 00 00 00 00 00 00   |........|
>(NET) (SND) 00 00 00 00 00 00 00 00   |........|
>(NET) (SND) 00 00 00 00 00 00 00 00   |........|
>(NET) (SND) 00 00 00 00 00 00 00 00   |........|

I excluded the problem is a really wrong login/password by logging in the server machine with user credentials and test connection to the database via sqlplus command.

Can anyone help me?

Many thanks!

Nicola C.
  • 2,717
  • 3
  • 18
  • 25
  • Check out this thread to make sure this is not a FIPS compliance issue: https://stackoverflow.com/questions/31785650/ora-01005-error-connecting-with-odp-net – Christian Shay Dec 18 '19 at 11:52

0 Answers0