[OpenAFS-win32-devel] Proposal for supporting per domain configurations for integrated login
Asanka Herath
asanka@MIT.EDU
Thu, 1 Jul 2004 03:53:11 -0400
Hello,
Attached below is a draft proposal for supporting per domain
configurations for integrated login. The proposed mechanism is meant
to be backwards compatible, so existing configurations would still
work as usual.
Please comment.
-- Asanka
-----------------------------------------------------------------------
OpenAFS for Windows
Proposal for cascading domain configuration registry key sets
-------------------------------------------------------------
1. Introduction.:
Currently the OpenAFS client for Windows stores configuration
information for integrated login in a single set of registry keys.
This set of registry keys determine the overall behavior for the
OpenAFS network provider. Unfortunately this does not address the
needs of organizations which have multiple domains and/or AFS cells
and wish to have different sets of configurations for each domain.
For the purpose of this document, a domain would refer to an Active
Directory (AD) domain, a trusted Kerberos (but non-AD) realm or the
local machine (i.e. local account logins).
This proposal is for a set of registry keys that define cascading
configurations for defining different sets of behaviors for
different domains. Domains are used as the basis for
differentiating configurations because this information is easily
available to the OpenAFS network provider during logon and because
this lends itself to easy administration by AD domain and container
admins.
2. Key and value structure :
The registry keys will be as follows.
[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider]
(NP key)
+
+-Domain (Domains key)
+-AD1.FOO.COM (specific domain key)
+-AD2.BAR.COM
+-LOCALHOST (special localhost key)
There is a Domains key (named 'Domain') under the NP key, under
which there are separate keys for each domain that needs a distinct
configuration set. The name of the key would correspond to the
domain name, except the localhost key which will always be named
'LOCALHOST' and will apply to local accounts on the machine.
Each of NP key, domains key, specific domain key (including localhost
key) may have the following values :
Value: LogonOptions
Type : DWORD (0|1|3)
Default: 1
0 : No integrated login
1 : integrated login
3 : integrated login with high security
Value: FailLoginsSilently
Type : DWORD (1|0)
Default: 0
If true, does not display any visible warnings in the event of an
error during the integrated login process.
Value: LogonScript
Type : REG_SZ or REG_EXPAND_SZ
Default: (null)
A logon script that will be scheduled to be run after the profile
load is complete. If using the REG_EXPAND_SZ type, you can use
any system environment variable as "%varname%" which would be
expanded at the time the network provider is run. Optionally
using a "%s" in the value would result in it being expanded into
the AFS SMB username for the session.
Value: LoginRetryInterval
Type : DWORD
Default: 30
If the OpenAFS client service has not started yet, the network
provider will wait for a maximum of "LoginRetryInterval" seconds
while retrying every "LoginSleepInterval" seconds to check if the
service is up.
Value: LoginSleepInterval
Type : DWORD
Default: 5
See description of LoginRetryInterval.
The meaning of each of these values are as per
openafs/src/doc/txt/winnotes/registry.txt, but their scope is as
described below.
Note that the defaults listed above may not be the defaults that are
specified in the installer. These are the defaults that will be
used by the network provider as per (3) below.
3. Scope
During login to domain X, where X is the domain passed into
NPLogonNotify as lpAuthentInfo->LogonDomainName or the string
'LOCALHOST' if lpAuthentInfo->LogonDomainName equals the name of the
computer, the following keys will be looked up.
1. NP key. ("HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider")
2. Domains key. (NP key\"Domain")
3. Specific domain key. (Domains key\X)
If the specific domain key does not exist, then the domains key will
be ignored. All the configuration information in this case will
come from the NP key.
If the specific domain key exists, then for each of the values
mentioned in (2), they will be looked up in the specific domain key,
domains key and the NP key successively until the value is found.
The first instance of the value found this way will be the effective
for the login session. If no such instance can be found, the
default will be used. To re-iterate, a value in a more specific key
supersedes a value in a less specific key. The exceptions to this
rule are stated below.
3.1 Exceptions to default scope
3.1.1 'FailLoginsSilently'
Historically, the 'FailLoginsSilently' value was in
HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters
key and not in the NP key. Therefore, for backwards compatibility,
the value in the Parameters key will supersede all instances of this
value in other keys. In the absence of this value in the Parameters
key, normal scope rules apply.
3.1.2 'LogonScript'
If a 'LogonScript' is not specified in the specific domain key nor
in the domains key, the value in the NP key will only be checked if
the effective 'LogonOptions' specify a high security integrated
login. If a logon script is specified in the specific domain key or
the domains key, it will be used regardless of the high security
setting. Please be aware of this when setting this value.
--------------------------------------------------------------------end