Passing security information to the DRE

When a user submits a search query, that user’s security information is embedded in the query string and passed to the DRE. The DRE uses a security plug-in to validate that the user has permission to see the requested result set. To use the DRE this way, pass the following Windows arguments in the query:

user=<User Name>
pass=<Password>
domain=<Domain Name>
group=<Group Name>

For example:

/qmethod=q&querytext=accountWindowsNTs&user=
     John&pass=111&domain=Global&grou=Admin,Developers

NoteThis example requires that the appropriate user security information has been retrieved from the session before the query is run.

The mandatory variable/value pairs vary according to the type of security implemented. Table C-1 shows the mandatory values for each security type.

Table C-1: Values for security types

Security type

Unmapped

Mapped

Notes

user: Notes user name

group: comma-separated list of groups to which that user belongs

domain: Notes domain name

user: Notes user name

group: comma-separated list of groups to which the user belongs

ODBC

Dependent on the stored function or procedure

N/A

Windows

user: Windows user name

pass: Windows password

domain: Windows domain name

user: Windows user name

domain: Windows domain name

group: comma-separated list of groups to which that user belongs

Exchange

user: Exchange user profile name

domain: Exchange server domain name

N/A

UNIX

N/A

N/A

DRE and security DLLs

Autonomy currently supplies the following security DLL plug-ins:

Unmapped

Mapped

Lotus Notes

Y

Y

ODBC/Oracle

Y

N

Windows

Y

Y

Exchange

Y

Y

UNIX

N

Y

NDS

N

Y

The DLLs act as plug-ins for the DRE. The DRE uses them when instructed to do so in the configuration file. The DRE goes through the following process:

  1. On start-up, the DRE loads the DLLs.

  2. When the DRE receives a query, it looks for the best matching results.

  3. For each result, it calls the security DLL to find out if the requesting user has permission to see that document. If yes, then the document is shown; if no, then the document is not shown. The DRE makes sure that if n results are requested, the user can access the results for that many documents.

NoteBy default, results are calculated by absolute value in the DRE; that is, a number not limited to 100. Generally, results are returned as a percentage, ranging from 0 to 100. However, depending on how a query is sent to the DRE, you may get the absolute value instead; specifically, a value over 100.

The input parameters for the security DLL are:

DRE generic security configuration

Configure the DRE.CFG file the same way for all types of security, with specific values for certain settings. Add a security entry for the DRE database in DRE.CFG. For example:

[Databases]
NUMDBS=1
0=ARCHIVE
[ARCHIVE]
Security=MySecuritySection

Add a Security=security_section entry under the database name, which is “ARCHIVE” in this example. The value of this entry is the name of the security section, in this example [MySecuritySection].

[MySecuritySection]
Library=
Logging=
Type=
DebugDecrypt=
ReferenceField=
CacheMaxSize=
CacheExpiryMinutes=
HideField=

Table C-2 shows the possible values for use in [MySecuritySection].

Table C-2: Values for [MySecuritySection]

Entry

Description

Default

Library

The name of the DLL file to be used. This should be the name of the DLL supplied by Autonomy.

Not specified. No security enabled.

Logging

For troubleshooting, set this value to 1 to write logging information into a file called security.log. Entries in this file show exactly what the DLL is doing. Once the system is configured properly, turn this setting off to avoid slowing it down.

FALSE = 0 = NO

Type

The type of security you are using. Possible values are:

  • AUTONOMY_SECURITY_NOTES

  • MAPPEDAUTONOMY_SECURITY_ODBC

  • AUTONOMY_SECURITY_ORACLE

  • AUTONOMY_SECURITY_NT

  • AUTONOMY_SECURITY_NT_MAPPED

  • AUTONOMY_SECURITY_EXCHANGE

  • AUTONOMY_SECURITY_EXCHANGE_MAPPED

  • AUTONOMY_SECURITY_UNIX_MAPPED

Not specified. No security enabled.

DebugDecrypt

Provides a finer grain of logging. Set to 1 to print the access control list (ACL) against which the DLL matches.This is recommended only for debugging because it is a security risk to have ACL information printed in a plain text file, and the DRE’s performance is hindered. This setting is in effect only when logging is set to 1.This setting is available only for the mapped version of the security plug-ins.

FALSE = 0 = NO

ReferenceField

The field used to store the ACL against which the security entitlement is compared. You can specify alternative fields in this entry. For example, in the mapped version of the security modules, this entry is usually:

ReferenceField=AUTONOMYMETADATA

AUTONOMYMETADATA

CacheMaxSize CacheExpiryMinutes

The unmapped version of the DLLs can cache security information as it becomes available. The next time the same request is made, the results are returned faster.

  • CacheMaxSize – maximum cache size; the default is 1000 bytes.

  • CacheExpiryMinutes – time in minutes after which each cached entry expires; the default is 0 (never expires).

1000

0

HideField

If the value of ReferenceField is set to anything other than the DREREFERENCE, set the value of HideField to 1 so that the field is not shown in the results that the DRE sends back. This is primarily to be used when implementing mapped security, so that the encrypted ACLs are not shown as part of result sets.

NoteThe DREREFERENCE is a unique identifier within each idx file.

FALSE = 0 = NO