xref: /freebsd/crypto/krb5/src/windows/installer/wix/msi-deployment-guide.txt (revision 7f2fe78b9dd5f51c821d771b63d2e096f6fd49e9)
1*7f2fe78bSCy Schubert
2*7f2fe78bSCy SchubertKerberos for Windows
3*7f2fe78bSCy Schubert
4*7f2fe78bSCy Schubert                         MSI Deployment Guide
5*7f2fe78bSCy Schubert
6*7f2fe78bSCy Schubert----------------------------------------------------------------------
7*7f2fe78bSCy Schubert
8*7f2fe78bSCy Schubert     Contents
9*7f2fe78bSCy Schubert
10*7f2fe78bSCy Schubert     1.    Introduction
11*7f2fe78bSCy Schubert     1.1     Requirements
12*7f2fe78bSCy Schubert     1.2     Authoring a Transform
13*7f2fe78bSCy Schubert     2.	   Configuration Options
14*7f2fe78bSCy Schubert     2.1     Configurable Properties
15*7f2fe78bSCy Schubert     2.1.1     Setting Properties
16*7f2fe78bSCy Schubert     2.1.2     Leash GUI Properties
17*7f2fe78bSCy Schubert     2.1.3     Leash DLL Properties
18*7f2fe78bSCy Schubert     2.1.4     Kerberos IV Properties
19*7f2fe78bSCy Schubert     2.1.5     Kerberos V Properties
20*7f2fe78bSCy Schubert     2.2     Existing Registry Entries
21*7f2fe78bSCy Schubert     2.3     Replacing Configuration Files
22*7f2fe78bSCy Schubert     3.    Network Identity Manager Settings
23*7f2fe78bSCy Schubert     3.1     Common Settings for NetIDMgr
24*7f2fe78bSCy Schubert     3.1.1     General Settings
25*7f2fe78bSCy Schubert     3.1.2     Common Plug-in Settings
26*7f2fe78bSCy Schubert     3.1.3     Settings for the Kerberos 5 Credentials Provider Plug-in
27*7f2fe78bSCy Schubert     3.1.4     Settings for the kerberos 4 Credentials Provider Plug-in
28*7f2fe78bSCy Schubert     4.	   Additional Resources
29*7f2fe78bSCy Schubert     5.	   Upgrades
30*7f2fe78bSCy Schubert     6.	   FAQ
31*7f2fe78bSCy Schubert
32*7f2fe78bSCy Schubert----------------------------------------------------------------------
33*7f2fe78bSCy Schubert
34*7f2fe78bSCy Schubert1.  Introduction
35*7f2fe78bSCy Schubert
36*7f2fe78bSCy Schubert    Beginning with "Kerberos for Windows" version 2.6.5, a MSI installer
37*7f2fe78bSCy Schubert    option is available for those who wish to use "Windows Installer"
38*7f2fe78bSCy Schubert    for installing Kerberos and for organizations that wish to deploy
39*7f2fe78bSCy Schubert    Kerberos through Group Policy.
40*7f2fe78bSCy Schubert
41*7f2fe78bSCy Schubert    This document provides a guide for authoring transforms used to
42*7f2fe78bSCy Schubert    customize the MSI package for a particular organization.  Although
43*7f2fe78bSCy Schubert    many settings can be deployed via transforms, in an Active
44*7f2fe78bSCy Schubert    Directory environment it is advisable to deploy registry settings
45*7f2fe78bSCy Schubert    and configuration files through group policy and/or startup
46*7f2fe78bSCy Schubert    scripts so that machines where "Kerberos for Windows" is already
47*7f2fe78bSCy Schubert    installed will pick up these customizations.
48*7f2fe78bSCy Schubert
49*7f2fe78bSCy Schubert1.1 Requirements
50*7f2fe78bSCy Schubert
51*7f2fe78bSCy Schubert    The information in this document applies to MSI packages
52*7f2fe78bSCy Schubert    distributed with "Kerberos for Windows" releases from 2.6.5 and
53*7f2fe78bSCy Schubert    onwards or MSI packages built from corresponding source
54*7f2fe78bSCy Schubert    releases.  Not all releases support all the configuration options
55*7f2fe78bSCy Schubert    documented here.
56*7f2fe78bSCy Schubert
57*7f2fe78bSCy Schubert    Authoring a "Windows Installer" transform requires additional
58*7f2fe78bSCy Schubert    software for editing the MSI database tables and generating the
59*7f2fe78bSCy Schubert    transform from the modified MSI package.  ORCA.EXE and MSITRAN.EXE
60*7f2fe78bSCy Schubert    which are included in the Windows Platform SDK ("Windows Installer"
61*7f2fe78bSCy Schubert    SDK) can be used for this purpose.
62*7f2fe78bSCy Schubert
63*7f2fe78bSCy Schubert    For reference, the schema for the MSI package is based on
64*7f2fe78bSCy Schubert    SCHEMA.MSI distributed with the Platform SDK.
65*7f2fe78bSCy Schubert
66*7f2fe78bSCy Schubert    For general information about "Windows Installer", refer to :
67*7f2fe78bSCy Schubert
68*7f2fe78bSCy Schubert    http://msdn.microsoft.com/library/en-us/msi/setup/windows_installer_start_page.asp
69*7f2fe78bSCy Schubert
70*7f2fe78bSCy Schubert    For general information about authoring MSI transforms, refer to :
71*7f2fe78bSCy Schubert
72*7f2fe78bSCy Schubert    http://msdn.microsoft.com/library/en-us/msi/setup/transforms.asp
73*7f2fe78bSCy Schubert
74*7f2fe78bSCy Schubert    The remainder of this document assumes some familiarity with
75*7f2fe78bSCy Schubert    authoring transforms.  While the MSDN documentation for Windows
76*7f2fe78bSCy Schubert    Installer is a bit dense, it is recommended that you read through
77*7f2fe78bSCy Schubert    the guide on MSI transforms found at the second link above.  Also
78*7f2fe78bSCy Schubert    MSDN includes a step-by-step example for creating a transform at:
79*7f2fe78bSCy Schubert
80*7f2fe78bSCy Schubert    http://msdn.microsoft.com/library/en-us/msi/setup/a_customization_transform_example.asp
81*7f2fe78bSCy Schubert
82*7f2fe78bSCy Schubert1.2  Authoring a Transform
83*7f2fe78bSCy Schubert
84*7f2fe78bSCy Schubert    Transforms describe a set of modifications to be performed on an
85*7f2fe78bSCy Schubert    existing MSI for the purpose of customizing it.  This is
86*7f2fe78bSCy Schubert    ordinarily done by making a copy of the MSI to be customized,
87*7f2fe78bSCy Schubert    modifying the copy and then using the old and the new MSI to
88*7f2fe78bSCy Schubert    generate a transform.
89*7f2fe78bSCy Schubert
90*7f2fe78bSCy Schubert    E.g:
91*7f2fe78bSCy Schubert       > copy kfw.msi kfw-modified.msi
92*7f2fe78bSCy Schubert
93*7f2fe78bSCy Schubert       (edit the kfw-modified.msi to include the necessary changes)
94*7f2fe78bSCy Schubert
95*7f2fe78bSCy Schubert       > msitran -g kfw.msi kfw-modified.msi kfw-transform.mst
96*7f2fe78bSCy Schubert
97*7f2fe78bSCy Schubert       (generates kfw-transform.mst, which is the transform)
98*7f2fe78bSCy Schubert
99*7f2fe78bSCy Schubert    Transforms have an extension of .mst.  'msitran' is a tool
100*7f2fe78bSCy Schubert    distributed as part of the "Windows Installer" SDK (which in turn is
101*7f2fe78bSCy Schubert    a part of the Windows Platform SDK).
102*7f2fe78bSCy Schubert
103*7f2fe78bSCy Schubert    You can test a transform by :
104*7f2fe78bSCy Schubert
105*7f2fe78bSCy Schubert       > copy kfw.msi kfw-test.msi
106*7f2fe78bSCy Schubert       > msitran -a kfw-transform.mst kfw-test.msi
107*7f2fe78bSCy Schubert
108*7f2fe78bSCy Schubert    and then checking the resulting kfw-test.msi to see if all the
109*7f2fe78bSCy Schubert    changes you have made above to kfw-modified.msi is present in
110*7f2fe78bSCy Schubert    kfw-test.msi.  'msitran' will complain if some modification in the
111*7f2fe78bSCy Schubert    transform can not be successfully applied.
112*7f2fe78bSCy Schubert
113*7f2fe78bSCy Schubert    As mentioned above, you can use a tool like ORCA.EXE to edit the
114*7f2fe78bSCy Schubert    MSI databases directly when editing kfw-modified.msi.  More
115*7f2fe78bSCy Schubert    details are given below.
116*7f2fe78bSCy Schubert
117*7f2fe78bSCy Schubert----------------------------------------------------------------------
118*7f2fe78bSCy Schubert
119*7f2fe78bSCy Schubert2.  Configuration Options
120*7f2fe78bSCy Schubert
121*7f2fe78bSCy Schubert    The logic necessary to implement all of the settings described in
122*7f2fe78bSCy Schubert    the release notes are present in the MSI.  Most of these can be
123*7f2fe78bSCy Schubert    controlled by setting the corresponding properties to the desired
124*7f2fe78bSCy Schubert    value.  Some settings may require modifying existing registry
125*7f2fe78bSCy Schubert    entries (though not recommended) or adding new resources (like
126*7f2fe78bSCy Schubert    files or registry keys).  Instructions for performing these tasks
127*7f2fe78bSCy Schubert    are below.
128*7f2fe78bSCy Schubert
129*7f2fe78bSCy Schubert2.1 Configurable Properties
130*7f2fe78bSCy Schubert
131*7f2fe78bSCy Schubert    Most configurable properties correspond to registry keys or
132*7f2fe78bSCy Schubert    values.  Please refer to the release notes for more information
133*7f2fe78bSCy Schubert    about how these registry settings are used.
134*7f2fe78bSCy Schubert
135*7f2fe78bSCy Schubert    Due to the logic invoked based on the existence of these registry
136*7f2fe78bSCy Schubert    keys or values, they are only set if the associated property is
137*7f2fe78bSCy Schubert    defined to have a non null value.  If the associated property is
138*7f2fe78bSCy Schubert    not defined in the MSI, the registry key or value will not be
139*7f2fe78bSCy Schubert    touched.  By default, the MSI does not contain these properties
140*7f2fe78bSCy Schubert    and hence will not set the registry keys.  You will need to add
141*7f2fe78bSCy Schubert    properties as needed to the MSI.
142*7f2fe78bSCy Schubert
143*7f2fe78bSCy Schubert    When one of the configurable properties is set, the installer will
144*7f2fe78bSCy Schubert    use the property value to set the corresponding setting in the
145*7f2fe78bSCy Schubert    HKEY_LOCAL_MACHINE registry hive.  HKEY_CURRENT_USER hive is not
146*7f2fe78bSCy Schubert    touched by the installer.
147*7f2fe78bSCy Schubert
148*7f2fe78bSCy Schubert    For each property, the associated registry setting is referenced
149*7f2fe78bSCy Schubert    by the same text used in the release notes ('Registry and
150*7f2fe78bSCy Schubert    Environment Settings' section).
151*7f2fe78bSCy Schubert
152*7f2fe78bSCy Schubert    Strings are quoted using single quotes (e.g. 'a string'). An empty
153*7f2fe78bSCy Schubert    string is denoted as ''.  Note that you can't author null values
154*7f2fe78bSCy Schubert    into the 'Property' table.
155*7f2fe78bSCy Schubert
156*7f2fe78bSCy Schubert    Numeric values should be authored as decimal strings.
157*7f2fe78bSCy Schubert
158*7f2fe78bSCy Schubert2.1.1  Setting Properties
159*7f2fe78bSCy Schubert
160*7f2fe78bSCy Schubert    In order to set a property,
161*7f2fe78bSCy Schubert
162*7f2fe78bSCy Schubert    a.  Open the MSI in ORCA.EXE
163*7f2fe78bSCy Schubert
164*7f2fe78bSCy Schubert    b.  Select the 'Property' table from the list of tables on the left.
165*7f2fe78bSCy Schubert
166*7f2fe78bSCy Schubert    c.  Find the property in the list of properties on the right,
167*7f2fe78bSCy Schubert        double click the value and type the new value.
168*7f2fe78bSCy Schubert
169*7f2fe78bSCy Schubert    d.  If the property does not exist in the property list, right
170*7f2fe78bSCy Schubert        click the list and select 'Add Row', type the property name
171*7f2fe78bSCy Schubert        and the desired value.
172*7f2fe78bSCy Schubert
173*7f2fe78bSCy Schubert2.1.2    Leash GUI properties
174*7f2fe78bSCy Schubert
175*7f2fe78bSCy Schubert    LEASHCREATEMISSINGCONFIG
176*7f2fe78bSCy Schubert	Setting: automatic generation of missing configuration files
177*7f2fe78bSCy Schubert	Values : '0' or '1'
178*7f2fe78bSCy Schubert
179*7f2fe78bSCy Schubert    LEASHAUTORENEWTICKETS
180*7f2fe78bSCy Schubert	Setting: automatic ticket renewal
181*7f2fe78bSCy Schubert	Values : '0' or '1'
182*7f2fe78bSCy Schubert
183*7f2fe78bSCy Schubert2.1.3    Leash32 DLL properties
184*7f2fe78bSCy Schubert
185*7f2fe78bSCy Schubert    LEASHLIFETIME
186*7f2fe78bSCy Schubert	Setting: default lifetime (minutes)
187*7f2fe78bSCy Schubert	Values : numeric
188*7f2fe78bSCy Schubert
189*7f2fe78bSCy Schubert    LEASHRENEWTILL
190*7f2fe78bSCy Schubert	Setting: default renew till time (minutes)
191*7f2fe78bSCy Schubert	Values : numeric
192*7f2fe78bSCy Schubert
193*7f2fe78bSCy Schubert    LEASHRENEWABLE
194*7f2fe78bSCy Schubert	Setting: default renewable tickets setting
195*7f2fe78bSCy Schubert	Values : '0' or '1'
196*7f2fe78bSCy Schubert
197*7f2fe78bSCy Schubert    LEASHFORWARDABLE
198*7f2fe78bSCy Schubert	Setting: default forwardable tickets setting
199*7f2fe78bSCy Schubert	Values : '0' or '1'
200*7f2fe78bSCy Schubert
201*7f2fe78bSCy Schubert    LEASHNOADDRESSES
202*7f2fe78bSCy Schubert	Setting: default addressless tickets setting
203*7f2fe78bSCy Schubert	Values : '0' or '1'
204*7f2fe78bSCy Schubert
205*7f2fe78bSCy Schubert    LEASHPROXIABLE
206*7f2fe78bSCy Schubert	Setting: default proxiable tickets setting
207*7f2fe78bSCy Schubert	Values : '0' or '1'
208*7f2fe78bSCy Schubert
209*7f2fe78bSCy Schubert    LEASHPUBLICIP
210*7f2fe78bSCy Schubert	Setting: default public ipv4 address
211*7f2fe78bSCy Schubert	Values : numeric
212*7f2fe78bSCy Schubert
213*7f2fe78bSCy Schubert    LEASHHIDEKINITOPTIONS
214*7f2fe78bSCy Schubert	Setting: hide advanced kinit options in dialog
215*7f2fe78bSCy Schubert	Values : '0' or '1'
216*7f2fe78bSCy Schubert
217*7f2fe78bSCy Schubert    LEASHLIFEMIN
218*7f2fe78bSCy Schubert	Setting: minimum kinit dialog lifetime
219*7f2fe78bSCy Schubert	Values : numeric
220*7f2fe78bSCy Schubert
221*7f2fe78bSCy Schubert    LEASHLIFEMAX
222*7f2fe78bSCy Schubert	Setting: maximum kinit dialog lifetime
223*7f2fe78bSCy Schubert	Values : numeric
224*7f2fe78bSCy Schubert
225*7f2fe78bSCy Schubert    LEASHRENEWMIN
226*7f2fe78bSCy Schubert	Setting: minimum kinit dialog renew till time
227*7f2fe78bSCy Schubert	Values : numeric
228*7f2fe78bSCy Schubert
229*7f2fe78bSCy Schubert    LEASHRENEWMAX
230*7f2fe78bSCy Schubert	Setting: maximum kinit dialog renew till time
231*7f2fe78bSCy Schubert	Values : numeric
232*7f2fe78bSCy Schubert
233*7f2fe78bSCy Schubert    LEASHUPPERCASEREALM
234*7f2fe78bSCy Schubert	Setting: upper case realm
235*7f2fe78bSCy Schubert	Values : '0' or '1'
236*7f2fe78bSCy Schubert
237*7f2fe78bSCy Schubert    LEASHTIMEHOST
238*7f2fe78bSCy Schubert	Setting: timesync host
239*7f2fe78bSCy Schubert	Values : string
240*7f2fe78bSCy Schubert
241*7f2fe78bSCy Schubert    LEASHPRESERVEKINITOPTIONS
242*7f2fe78bSCy Schubert	Setting: Preserve ticket initialization dialog options
243*7f2fe78bSCy Schubert	Values : numeric
244*7f2fe78bSCy Schubert
245*7f2fe78bSCy Schubert2.1.4  Kerberos 5 properties
246*7f2fe78bSCy Schubert
247*7f2fe78bSCy Schubert    KRB5CONFIG
248*7f2fe78bSCy Schubert	Setting: location of krb5.ini
249*7f2fe78bSCy Schubert	Values : string
250*7f2fe78bSCy Schubert
251*7f2fe78bSCy Schubert    KRB5CCNAME
252*7f2fe78bSCy Schubert	Setting: Default credentials cache name
253*7f2fe78bSCy Schubert	Values : string
254*7f2fe78bSCy Schubert
255*7f2fe78bSCy Schubert    KRB5PRESERVEIDENTITY
256*7f2fe78bSCy Schubert	Setting: MSLSA: credential cache client principal identity generation
257*7f2fe78bSCy Schubert	Values : '0' or '1'
258*7f2fe78bSCy Schubert
259*7f2fe78bSCy Schubert2.2 Existing Registry Entries
260*7f2fe78bSCy Schubert
261*7f2fe78bSCy Schubert    You can change existing registry values subject to the
262*7f2fe78bSCy Schubert    restrictions mentioned in the Windows Platform SDK.  Pay special
263*7f2fe78bSCy Schubert    attention to component keypaths and try to only change the 'Value'
264*7f2fe78bSCy Schubert    column in the 'Registry' table.  If you want to add additional
265*7f2fe78bSCy Schubert    registry keys please refer to section 3 (Additional Resources).
266*7f2fe78bSCy Schubert
267*7f2fe78bSCy Schubert2.3 Replacing Configuration Files
268*7f2fe78bSCy Schubert
269*7f2fe78bSCy Schubert    The Kerberos configuration files (krb5.ini, krb.con, krbrealm.con)
270*7f2fe78bSCy Schubert    can be replaced by your own configuration files.  These files are
271*7f2fe78bSCy Schubert    contained in separate MSI components so that you can disable them
272*7f2fe78bSCy Schubert    individually.
273*7f2fe78bSCy Schubert
274*7f2fe78bSCy Schubert    The recommended method for replacing these files is to first
275*7f2fe78bSCy Schubert    disable the components containing the configuration files that you
276*7f2fe78bSCy Schubert    want to replace, and then add new components for the replacement
277*7f2fe78bSCy Schubert    files.  This is outlined below (assuming you are using ORCA.EXE to
278*7f2fe78bSCy Schubert    author the transform).
279*7f2fe78bSCy Schubert
280*7f2fe78bSCy Schubert    Note that transforms are not a good way to add a new file as an
281*7f2fe78bSCy Schubert    embedded stream.  The method outlined here places the file in the
282*7f2fe78bSCy Schubert    same directory as the MSI for deployment.
283*7f2fe78bSCy Schubert
284*7f2fe78bSCy Schubert    The walkthrough below is to add a custom 'krb5.ini' file.
285*7f2fe78bSCy Schubert
286*7f2fe78bSCy Schubert    1) Disable the component that contains the configuration file that
287*7f2fe78bSCy Schubert       you want to replace.
288*7f2fe78bSCy Schubert
289*7f2fe78bSCy Schubert       1.1) Locate and select the 'Component' table in the 'Tables'
290*7f2fe78bSCy Schubert            list.
291*7f2fe78bSCy Schubert
292*7f2fe78bSCy Schubert       1.2) In the Component table, locate the component you need to
293*7f2fe78bSCy Schubert            change ( Ctrl-F invokes the 'Find' dialog).  The component
294*7f2fe78bSCy Schubert            names are listed below in section 2.3.1.  For this
295*7f2fe78bSCy Schubert            example, the component name is 'cmf_krb5_ini'.
296*7f2fe78bSCy Schubert
297*7f2fe78bSCy Schubert       1.3) Go to the 'Condition' column of the component.
298*7f2fe78bSCy Schubert
299*7f2fe78bSCy Schubert       1.4) Enter a condition that evaluates to
300*7f2fe78bSCy Schubert            false. I.e. 'DONOTINSTALL'. (Note that an undefined
301*7f2fe78bSCy Schubert            property always evaluates to false).
302*7f2fe78bSCy Schubert
303*7f2fe78bSCy Schubert       Note that you can also use this step to disable other
304*7f2fe78bSCy Schubert       configuration files without providing replacements.
305*7f2fe78bSCy Schubert
306*7f2fe78bSCy Schubert    2) Add a new component containing the new configuration file.
307*7f2fe78bSCy Schubert
308*7f2fe78bSCy Schubert       2.1) Select the 'Component' table in the 'Tables' list.
309*7f2fe78bSCy Schubert
310*7f2fe78bSCy Schubert       2.2) Select 'Tables'->'Add Row' (Ctrl-R).
311*7f2fe78bSCy Schubert
312*7f2fe78bSCy Schubert       2.3) Enter the following :
313*7f2fe78bSCy Schubert
314*7f2fe78bSCy Schubert            Component     : cmf_my_krb5_ini
315*7f2fe78bSCy Schubert	    ComponentId   : {835BAAC6-5E54-BFFE-DBCB2F240711}
316*7f2fe78bSCy Schubert	    Directory_	  : WindowsFolder
317*7f2fe78bSCy Schubert	    Attributes	  : 144
318*7f2fe78bSCy Schubert	    Condition	  :
319*7f2fe78bSCy Schubert	    KeyPath	  : fil_my_krb5_ini
320*7f2fe78bSCy Schubert
321*7f2fe78bSCy Schubert	    Note that the ComponentId is an uppercase GUID.  You can
322*7f2fe78bSCy Schubert	    generate one using GUIDGEN.EXE or UUIDGEN.EXE, both of
323*7f2fe78bSCy Schubert	    which are included in the Platform SDK.
324*7f2fe78bSCy Schubert
325*7f2fe78bSCy Schubert	    The Attributes value of 144 is a sum of
326*7f2fe78bSCy Schubert	    msidbComponentAttributesPermanent (16) and
327*7f2fe78bSCy Schubert	    msidbComponentAttributesNeverOverwrite (128).  This
328*7f2fe78bSCy Schubert	    ensures that local modifications are not overwritten or
329*7f2fe78bSCy Schubert	    lost during an installation or uninstallation.  These are
330*7f2fe78bSCy Schubert	    the same settings used on the default configuration files.
331*7f2fe78bSCy Schubert
332*7f2fe78bSCy Schubert	    'fil_my_krb5_ini' is a key into the 'File' table which we
333*7f2fe78bSCy Schubert	    will fill later.
334*7f2fe78bSCy Schubert
335*7f2fe78bSCy Schubert    3) Add a new feature to hold the new component.
336*7f2fe78bSCy Schubert
337*7f2fe78bSCy Schubert       3.1) Select the 'Feature' table.
338*7f2fe78bSCy Schubert
339*7f2fe78bSCy Schubert       3.2) Add a new row (Ctrl-R or 'Tables'->'Add Row') with the
340*7f2fe78bSCy Schubert            following values:
341*7f2fe78bSCy Schubert
342*7f2fe78bSCy Schubert	    Feature       : fea_my_krb5_ini
343*7f2fe78bSCy Schubert	    Feature_Parent: feaKfwClient
344*7f2fe78bSCy Schubert	    Title	  :
345*7f2fe78bSCy Schubert	    Description	  :
346*7f2fe78bSCy Schubert	    Display	  : 0
347*7f2fe78bSCy Schubert	    Level	  : 30
348*7f2fe78bSCy Schubert	    Directory_	  :
349*7f2fe78bSCy Schubert	    Attributes	  : 8
350*7f2fe78bSCy Schubert
351*7f2fe78bSCy Schubert	    It is important to create the new feature under the
352*7f2fe78bSCy Schubert	    'feaKfwClient' feature, which will ensure that the
353*7f2fe78bSCy Schubert	    configuration file will be installed when the client
354*7f2fe78bSCy Schubert	    binaries are installed.
355*7f2fe78bSCy Schubert
356*7f2fe78bSCy Schubert	    Setting 'Display' to 0 will hide this feature from the
357*7f2fe78bSCy Schubert	    feature selection dialog during an interactive
358*7f2fe78bSCy Schubert	    installation.  A value of 30 for 'Level' allows this
359*7f2fe78bSCy Schubert	    feature to be installed by default (on a 'Typical'
360*7f2fe78bSCy Schubert	    installation).
361*7f2fe78bSCy Schubert
362*7f2fe78bSCy Schubert	    The 'Attributes' value is
363*7f2fe78bSCy Schubert	    msidbFeatureAttributesDisallowAdvertise (8), which is set
364*7f2fe78bSCy Schubert	    on all features in the KfW MSI.  The KfW MSI is not
365*7f2fe78bSCy Schubert	    designed for an advertised installation.
366*7f2fe78bSCy Schubert
367*7f2fe78bSCy Schubert    4) Join the component and the feature.
368*7f2fe78bSCy Schubert
369*7f2fe78bSCy Schubert       4.1) Select the 'FeatureComponents' table.
370*7f2fe78bSCy Schubert
371*7f2fe78bSCy Schubert       4.2) Add a new row with the following values:
372*7f2fe78bSCy Schubert
373*7f2fe78bSCy Schubert	    Feature    : fea_my_krb5_ini
374*7f2fe78bSCy Schubert	    Component  : cmf_my_krb5_ini
375*7f2fe78bSCy Schubert
376*7f2fe78bSCy Schubert    5) Add an entry to the 'File' table.
377*7f2fe78bSCy Schubert
378*7f2fe78bSCy Schubert       5.1) Select the 'File' table.
379*7f2fe78bSCy Schubert
380*7f2fe78bSCy Schubert       5.2) Add a new row with the following values:
381*7f2fe78bSCy Schubert
382*7f2fe78bSCy Schubert	    File        : fil_my_krb5_ini
383*7f2fe78bSCy Schubert	    Component_	: cmf_my_krb5_ini
384*7f2fe78bSCy Schubert	    FileName	: krb5.ini
385*7f2fe78bSCy Schubert	    FileSize	: (enter file size here)
386*7f2fe78bSCy Schubert	    ...
387*7f2fe78bSCy Schubert	    Attributes	: 8192
388*7f2fe78bSCy Schubert	    Sequence	: 1000
389*7f2fe78bSCy Schubert	    (leave other fields blank)
390*7f2fe78bSCy Schubert
391*7f2fe78bSCy Schubert	    The 'Attributes' value is msidbFileAttributesNonCompressed
392*7f2fe78bSCy Schubert	    (8192).  This is because we will be placing this file in
393*7f2fe78bSCy Schubert	    the same directory as the MSI instead of embedding the
394*7f2fe78bSCy Schubert	    file in it.  Transforms do not support updating compressed
395*7f2fe78bSCy Schubert	    sources or adding new cabinet streams.
396*7f2fe78bSCy Schubert
397*7f2fe78bSCy Schubert	    Finally, the 'Sequence' value of 1000 will be used later
398*7f2fe78bSCy Schubert	    to distinguish the file as being in a separate source
399*7f2fe78bSCy Schubert	    location than the other files in the MSI.
400*7f2fe78bSCy Schubert
401*7f2fe78bSCy Schubert    6) Set a media source for the file.
402*7f2fe78bSCy Schubert
403*7f2fe78bSCy Schubert       6.1) Select the 'Media' table.
404*7f2fe78bSCy Schubert
405*7f2fe78bSCy Schubert       6.2) Add a row with the following values :
406*7f2fe78bSCy Schubert
407*7f2fe78bSCy Schubert	    DiskId       : 2
408*7f2fe78bSCy Schubert	    LastSequence : 1000
409*7f2fe78bSCy Schubert	    ...
410*7f2fe78bSCy Schubert	    (leave other fields blank)
411*7f2fe78bSCy Schubert
412*7f2fe78bSCy Schubert	    The sequence number of 1000 designates this as the media
413*7f2fe78bSCy Schubert	    source for the newly added file.
414*7f2fe78bSCy Schubert
415*7f2fe78bSCy Schubert2.3.1 Components for Configuration Files
416*7f2fe78bSCy Schubert
417*7f2fe78bSCy Schubert      krb5.ini : 'cmf_krb5_ini' (ID {C1AF0670-BBF1-4AA6-B2A6-6C8B1584A1F4})
418*7f2fe78bSCy Schubert      krb.con  : 'cmf_krb_con'  (ID {5391A051-CF14-45FF-BF64-CEE78A7A90C2})
419*7f2fe78bSCy Schubert      krbrealm.con: 'cmf_krbrealm_con' (ID {D667B54F-1C98-43FB-87C6-0F0517623B90})
420*7f2fe78bSCy Schubert
421*7f2fe78bSCy Schubert----------------------------------------------------------------------
422*7f2fe78bSCy Schubert
423*7f2fe78bSCy Schubert3.   Network Identity Manager Settings
424*7f2fe78bSCy Schubert
425*7f2fe78bSCy Schubert    Configuration options for Network Identity Manager (NetIDMgr) are
426*7f2fe78bSCy Schubert    stored in the Windows registry.  Each option can exist in the user
427*7f2fe78bSCy Schubert    registry hive or the machine registry hive or both.  The value
428*7f2fe78bSCy Schubert    defined in the user hive always overrides the value defined in the
429*7f2fe78bSCy Schubert    machine registry hive.
430*7f2fe78bSCy Schubert
431*7f2fe78bSCy Schubert    All registry keys used by NetIDMgr exist under the key
432*7f2fe78bSCy Schubert    'Software\MIT\NetIDMgr' under the user and machine hive.
433*7f2fe78bSCy Schubert    Deploying a specific configuration option can be achieved by
434*7f2fe78bSCy Schubert    setting the corresponding registry value either by authoring the
435*7f2fe78bSCy Schubert    keys into the MSI via a transform or by deploying a registry based
436*7f2fe78bSCy Schubert    Group Policy Object.  For deployment purposes, it is advisable to
437*7f2fe78bSCy Schubert    deploy values to the machine hive instead of the user hive.
438*7f2fe78bSCy Schubert    Deploying per user settings via the MSI is not supported at this
439*7f2fe78bSCy Schubert    time.
440*7f2fe78bSCy Schubert
441*7f2fe78bSCy Schubert3.1    Common settings for NetIDMgr
442*7f2fe78bSCy Schubert
443*7f2fe78bSCy Schubert    The following sections describe a partial list of options that can
444*7f2fe78bSCy Schubert    be specified for NetIDMgr.  Each set of options is described as a
445*7f2fe78bSCy Schubert    set of registry values.  Each section is preceded by the registry
446*7f2fe78bSCy Schubert    key under which the values of that section must be specified.
447*7f2fe78bSCy Schubert
448*7f2fe78bSCy Schubert3.1.1    General settings
449*7f2fe78bSCy Schubert
450*7f2fe78bSCy Schubert    Registry key : 'Software\MIT\NetIDMgr\CredWindow'
451*7f2fe78bSCy Schubert    --------------
452*7f2fe78bSCy Schubert
453*7f2fe78bSCy Schubert    Value   : AllowAutoRenew
454*7f2fe78bSCy Schubert    Type    : DWORD (Boolean)
455*7f2fe78bSCy Schubert    Default : 1
456*7f2fe78bSCy Schubert
457*7f2fe78bSCy Schubert        Enables automatic credential renewal.
458*7f2fe78bSCy Schubert
459*7f2fe78bSCy Schubert
460*7f2fe78bSCy Schubert    Value   : AllowCritical
461*7f2fe78bSCy Schubert    Type    : DWORD (Boolean)
462*7f2fe78bSCy Schubert    Default : 1
463*7f2fe78bSCy Schubert
464*7f2fe78bSCy Schubert        Enables critical warning notifications.
465*7f2fe78bSCy Schubert
466*7f2fe78bSCy Schubert
467*7f2fe78bSCy Schubert    Value   : AllowWarn
468*7f2fe78bSCy Schubert    Type    : DWORD (Boolean)
469*7f2fe78bSCy Schubert    Default : 1
470*7f2fe78bSCy Schubert
471*7f2fe78bSCy Schubert        Enables warning notifications.
472*7f2fe78bSCy Schubert
473*7f2fe78bSCy Schubert
474*7f2fe78bSCy Schubert    Value   : AutoDetectNet
475*7f2fe78bSCy Schubert    Type    : DWORD  (0 or 1)
476*7f2fe78bSCy Schubert    Default : 1
477*7f2fe78bSCy Schubert
478*7f2fe78bSCy Schubert        If '1', automatically detects network connectivity changes.
479*7f2fe78bSCy Schubert        Network connectivity change notifications are then sent out to
480*7f2fe78bSCy Schubert        individual plug-ins which can perform actions such as renewing
481*7f2fe78bSCy Schubert        credentials or obtaining new credentials.
482*7f2fe78bSCy Schubert
483*7f2fe78bSCy Schubert
484*7f2fe78bSCy Schubert    Value   : AutoImport
485*7f2fe78bSCy Schubert    Type    : DWORD  (0 or 1)
486*7f2fe78bSCy Schubert    Default : 1
487*7f2fe78bSCy Schubert
488*7f2fe78bSCy Schubert        If '1', imports credentials from the Windows LSA cache when
489*7f2fe78bSCy Schubert        NetIDMgr starts.
490*7f2fe78bSCy Schubert
491*7f2fe78bSCy Schubert
492*7f2fe78bSCy Schubert    Value   : AutoInit
493*7f2fe78bSCy Schubert    Type    : DWORD  (0 or 1)
494*7f2fe78bSCy Schubert    Default : 0
495*7f2fe78bSCy Schubert
496*7f2fe78bSCy Schubert        If this value is '1', shows the new credentials dialog if
497*7f2fe78bSCy Schubert        there are no credentials when NetIDMgr starts.
498*7f2fe78bSCy Schubert
499*7f2fe78bSCy Schubert
500*7f2fe78bSCy Schubert    Value   : AutoStart
501*7f2fe78bSCy Schubert    Type    : DWORD (0 or 1)
502*7f2fe78bSCy Schubert    Default : 0
503*7f2fe78bSCy Schubert
504*7f2fe78bSCy Schubert        Start NetIDMgr when Windows starts
505*7f2fe78bSCy Schubert
506*7f2fe78bSCy Schubert
507*7f2fe78bSCy Schubert    Value   : AutoRenewThreshold
508*7f2fe78bSCy Schubert    Type    : DWORD (seconds)
509*7f2fe78bSCy Schubert    Default : 600
510*7f2fe78bSCy Schubert
511*7f2fe78bSCy Schubert        Specifies the time period before credential expiration that will
512*7f2fe78bSCy Schubert        trigger a credential renewal.  Requires AllowAutoRenew to be enabled.
513*7f2fe78bSCy Schubert
514*7f2fe78bSCy Schubert
515*7f2fe78bSCy Schubert    Value   : CriticalThreshold
516*7f2fe78bSCy Schubert    Type    : DWORD (seconds)
517*7f2fe78bSCy Schubert    Default : 300
518*7f2fe78bSCy Schubert
519*7f2fe78bSCy Schubert        Specifies the time period before credential expiration that will
520*7f2fe78bSCy Schubert        trigger the second and final warning balloon.  Requires AllowCritical
521*7f2fe78bSCy Schubert        to be enabled.
522*7f2fe78bSCy Schubert
523*7f2fe78bSCy Schubert
524*7f2fe78bSCy Schubert    Value   : DefaultAllowAutoRenew
525*7f2fe78bSCy Schubert    Type    : DWORD (Boolean)
526*7f2fe78bSCy Schubert    Default : 1
527*7f2fe78bSCy Schubert
528*7f2fe78bSCy Schubert	Specifies the Default AllowAutoRenew value for new identities.
529*7f2fe78bSCy Schubert
530*7f2fe78bSCy Schubert
531*7f2fe78bSCy Schubert    Value   : DefaultSticky
532*7f2fe78bSCy Schubert    Type    : DWORD  (0 or 1)
533*7f2fe78bSCy Schubert    Default : 1
534*7f2fe78bSCy Schubert
535*7f2fe78bSCy Schubert        If '0', new identities will not be pinned to the display by default.
536*7f2fe78bSCy Schubert        If '1', new identities will be pinned to the display by default.
537*7f2fe78bSCy Schubert
538*7f2fe78bSCy Schubert
539*7f2fe78bSCy Schubert    Value   : DefaultWindowMode
540*7f2fe78bSCy Schubert    Type    : DWORD  (0 or 1)
541*7f2fe78bSCy Schubert    Default : 1
542*7f2fe78bSCy Schubert
543*7f2fe78bSCy Schubert        If '0', Advanced mode is used
544*7f2fe78bSCy Schubert        If '1', Basic mode is used
545*7f2fe78bSCy Schubert
546*7f2fe78bSCy Schubert    Value   : DestroyCredsOnExit
547*7f2fe78bSCy Schubert    Type    : DWORD  (0 or 1)
548*7f2fe78bSCy Schubert    Default : 0
549*7f2fe78bSCy Schubert
550*7f2fe78bSCy Schubert        If '1', all credentials will be destroyed when NetIDMgr exits.
551*7f2fe78bSCy Schubert
552*7f2fe78bSCy Schubert    Value   : KeepRunning
553*7f2fe78bSCy Schubert    Type    : DWORD  (0 or 1)
554*7f2fe78bSCy Schubert    Default : 1
555*7f2fe78bSCy Schubert
556*7f2fe78bSCy Schubert        If '1', when NetIDMgr application is closed, it will continue
557*7f2fe78bSCy Schubert        to run in the Windows System Notification Area (System Tray).
558*7f2fe78bSCy Schubert        The application can be exited by choosing the 'Exit' menu
559*7f2fe78bSCy Schubert        option.  If '0', closing the application will cause it to
560*7f2fe78bSCy Schubert        exit completely.
561*7f2fe78bSCy Schubert
562*7f2fe78bSCy Schubert    Value   : LogToFile
563*7f2fe78bSCy Schubert    Type    : DWORD  (0 or 1)
564*7f2fe78bSCy Schubert    Default : 0
565*7f2fe78bSCy Schubert
566*7f2fe78bSCy Schubert        If '1', debugging information is logged to %TEMP%\nidmdbg.log
567*7f2fe78bSCy Schubert
568*7f2fe78bSCy Schubert
569*7f2fe78bSCy Schubert    Value   : NotificationAction
570*7f2fe78bSCy Schubert    Type    : DWORD  (50008 or 50025)
571*7f2fe78bSCy Schubert    Default : 50025
572*7f2fe78bSCy Schubert
573*7f2fe78bSCy Schubert        If '50025', the default notification icon menu action will be to
574*7f2fe78bSCy Schubert        Show the Network Identity Manager application windows.
575*7f2fe78bSCy Schubert        If '50008', the default notification icon menu action will be to
576*7f2fe78bSCy Schubert        display the Obtain New Credentials dialog.
577*7f2fe78bSCy Schubert
578*7f2fe78bSCy Schubert
579*7f2fe78bSCy Schubert    Value   : RefreshTimeout
580*7f2fe78bSCy Schubert    Type    : DWORD (seconds)
581*7f2fe78bSCy Schubert    Default : 60
582*7f2fe78bSCy Schubert
583*7f2fe78bSCy Schubert        Specifies how often the credential list is refreshed.
584*7f2fe78bSCy Schubert
585*7f2fe78bSCy Schubert
586*7f2fe78bSCy Schubert    Value   : RenewAtHalfLife
587*7f2fe78bSCy Schubert    Type    : DWORD (Boolean)
588*7f2fe78bSCy Schubert    Default : 1
589*7f2fe78bSCy Schubert
590*7f2fe78bSCy Schubert	Enables the use of a half-life algorithm for credential renewals.
591*7f2fe78bSCy Schubert
592*7f2fe78bSCy Schubert
593*7f2fe78bSCy Schubert    Value   : WarnThreshold
594*7f2fe78bSCy Schubert    Type    : DWORD (seconds)
595*7f2fe78bSCy Schubert    Default : 900
596*7f2fe78bSCy Schubert
597*7f2fe78bSCy Schubert        Specifies the time period before credential expiration that will
598*7f2fe78bSCy Schubert        trigger the first warning balloon.  Requires AllowWarn to be enabled.
599*7f2fe78bSCy Schubert
600*7f2fe78bSCy Schubert
601*7f2fe78bSCy Schubert3.1.2    Common Plug-in settings
602*7f2fe78bSCy Schubert
603*7f2fe78bSCy Schubert    Registry key : 'Software\MIT\NetIDMgr\PluginManager\Plugins\<plug-in name>'
604*7f2fe78bSCy Schubert    --------------
605*7f2fe78bSCy Schubert
606*7f2fe78bSCy Schubert    The '<plug-in name>' is one of the following for the standard plug-ins :
607*7f2fe78bSCy Schubert
608*7f2fe78bSCy Schubert    Krb5Cred : Kerberos 5 credentials provider
609*7f2fe78bSCy Schubert    Krb5Ident: Kerberos 5 Identity provider
610*7f2fe78bSCy Schubert
611*7f2fe78bSCy Schubert    Consult the vendors for the plug-in names of other third party
612*7f2fe78bSCy Schubert    plug-ins.  Additionally, the plug-ins configuration panel in the
613*7f2fe78bSCy Schubert    NetIDMgr application provides a list of currently registered
614*7f2fe78bSCy Schubert    plug-ins.
615*7f2fe78bSCy Schubert
616*7f2fe78bSCy Schubert    Value   : Disabled
617*7f2fe78bSCy Schubert    Type    : DWORD (0 or 1)
618*7f2fe78bSCy Schubert    Default : 0
619*7f2fe78bSCy Schubert
620*7f2fe78bSCy Schubert        If '1', the plug-in will not be loaded.
621*7f2fe78bSCy Schubert
622*7f2fe78bSCy Schubert    Value   : NoUnload
623*7f2fe78bSCy Schubert    Type    : DWORD (0 or 1)
624*7f2fe78bSCy Schubert    Default : 0
625*7f2fe78bSCy Schubert
626*7f2fe78bSCy Schubert        If '1', the plug-in will not be unloaded from memory when the
627*7f2fe78bSCy Schubert        NetIDMgr application exits or if the plug-in is stopped.  The
628*7f2fe78bSCy Schubert        plug-in binary will remain loaded until NetIDMgr terminates.
629*7f2fe78bSCy Schubert
630*7f2fe78bSCy Schubert3.1.3    Settings for the Kerberos 5 credentials provider plug-in
631*7f2fe78bSCy Schubert
632*7f2fe78bSCy Schubert    Registry key : 'Software\MIT\NetIDMgr\PluginManager\Plugins\Krb5Cred\Parameters'
633*7f2fe78bSCy Schubert    --------------
634*7f2fe78bSCy Schubert
635*7f2fe78bSCy Schubert    Value   : AutoRenewTickets
636*7f2fe78bSCy Schubert    Type    : DWORD (0 or 1)
637*7f2fe78bSCy Schubert    Default : 1
638*7f2fe78bSCy Schubert
639*7f2fe78bSCy Schubert        If '1', automatically renews expiring tickets.  The thresholds
640*7f2fe78bSCy Schubert        at which renewals happen are controlled in general NetIDMgr
641*7f2fe78bSCy Schubert        settings.
642*7f2fe78bSCy Schubert
643*7f2fe78bSCy Schubert    Value   : CreateMissingConfig
644*7f2fe78bSCy Schubert    Type    : DWORD (0 or 1)
645*7f2fe78bSCy Schubert    Default : 0
646*7f2fe78bSCy Schubert
647*7f2fe78bSCy Schubert        If '1', creates any missing configuration files.
648*7f2fe78bSCy Schubert
649*7f2fe78bSCy Schubert    Value   : MsLsaList
650*7f2fe78bSCy Schubert    Type    : DWORD (0 or 1)
651*7f2fe78bSCy Schubert    Default : 1
652*7f2fe78bSCy Schubert
653*7f2fe78bSCy Schubert        If '1', includes credentials from the MSLSA cache in the
654*7f2fe78bSCy Schubert        credentials listing.
655*7f2fe78bSCy Schubert
656*7f2fe78bSCy Schubert
657*7f2fe78bSCy Schubert    Value   : UseFullRealmList
658*7f2fe78bSCy Schubert    Type    : DWORD (0 or 1)
659*7f2fe78bSCy Schubert    Default : 0
660*7f2fe78bSCy Schubert
661*7f2fe78bSCy Schubert        If '1', uses the full realms list as determined by parsing the
662*7f2fe78bSCy Schubert        krb5.ini configuration file in the new credentials dialog box.
663*7f2fe78bSCy Schubert        If this is '0', only the last recently used list of realms
664*7f2fe78bSCy Schubert        will be used.
665*7f2fe78bSCy Schubert
666*7f2fe78bSCy Schubert
667*7f2fe78bSCy Schubert3.1.3.1    Per-identity settings
668*7f2fe78bSCy Schubert
669*7f2fe78bSCy Schubert    Registry key 1: 'Software\MIT\NetIDMgr\KCDB\Identity\<principal name>\Krb5Cred'
670*7f2fe78bSCy Schubert    Registry key 2: 'Software\MIT\NetIDMgr\PluginManager\Plugins\Krb5Cred\Parameters\Realms\<realm>'
671*7f2fe78bSCy Schubert    Registry key 3: 'Software\MIT\NetIDMgr\PluginManager\Plugins\Krb5Cred\Parameters'
672*7f2fe78bSCy Schubert    --------------
673*7f2fe78bSCy Schubert
674*7f2fe78bSCy Schubert    These settings are generally maintained per-identity.  However, if
675*7f2fe78bSCy Schubert    a particular setting is not specified for an identity or if the
676*7f2fe78bSCy Schubert    identity is new, then the values will be looked up in the
677*7f2fe78bSCy Schubert    per-realm configuration key and in the global parameters key in
678*7f2fe78bSCy Schubert    turn.  Global defaults should be set in the global parameters key
679*7f2fe78bSCy Schubert    (key 3).
680*7f2fe78bSCy Schubert
681*7f2fe78bSCy Schubert    Value   : Addressless
682*7f2fe78bSCy Schubert    Type    : DWORD (boolean)
683*7f2fe78bSCy Schubert    Default : 1
684*7f2fe78bSCy Schubert
685*7f2fe78bSCy Schubert        Determines if addressless tickets will be obtained for new identities.
686*7f2fe78bSCy Schubert
687*7f2fe78bSCy Schubert
688*7f2fe78bSCy Schubert    Value   : DefaultLifetime
689*7f2fe78bSCy Schubert    Type    : DWORD
690*7f2fe78bSCy Schubert    Default : 36000
691*7f2fe78bSCy Schubert
692*7f2fe78bSCy Schubert        Default ticket lifetime, in seconds.
693*7f2fe78bSCy Schubert
694*7f2fe78bSCy Schubert    Value   : DefaultRenewLifetime
695*7f2fe78bSCy Schubert    Type    : DWORD
696*7f2fe78bSCy Schubert    Default : 604800
697*7f2fe78bSCy Schubert
698*7f2fe78bSCy Schubert        Default renewable lifetime, in seconds.
699*7f2fe78bSCy Schubert
700*7f2fe78bSCy Schubert    Value   : FileCCList
701*7f2fe78bSCy Schubert    Type    : SZ
702*7f2fe78bSCy Schubert    Default : <not specified>
703*7f2fe78bSCy Schubert
704*7f2fe78bSCy Schubert        Specifies a comma delimited list of FILE credential caches to monitor
705*7f2fe78bSCy Schubert        for credentials.
706*7f2fe78bSCy Schubert
707*7f2fe78bSCy Schubert    Value   : Forwardable
708*7f2fe78bSCy Schubert    Type    : DWORD (0 or 1)
709*7f2fe78bSCy Schubert    Default : 0
710*7f2fe78bSCy Schubert
711*7f2fe78bSCy Schubert        Obtain forwardable tickets.
712*7f2fe78bSCy Schubert
713*7f2fe78bSCy Schubert    Value   : MaxLifetime
714*7f2fe78bSCy Schubert    Type    : DWORD
715*7f2fe78bSCy Schubert    Default : 86400
716*7f2fe78bSCy Schubert
717*7f2fe78bSCy Schubert        Maximum lifetime, in seconds.  This value is used to set the
718*7f2fe78bSCy Schubert        range of the user interface controls that allow setting the
719*7f2fe78bSCy Schubert        lifetime of a ticket.
720*7f2fe78bSCy Schubert
721*7f2fe78bSCy Schubert    Value   : MaxRenewLifetime
722*7f2fe78bSCy Schubert    Type    : DWORD
723*7f2fe78bSCy Schubert    Default : 2592000
724*7f2fe78bSCy Schubert
725*7f2fe78bSCy Schubert        Maximum renewable lifetime, in seconds.  The value is used to
726*7f2fe78bSCy Schubert        set the range of the user interface controls that allow
727*7f2fe78bSCy Schubert        setting the renewable lifetime of a ticket.
728*7f2fe78bSCy Schubert
729*7f2fe78bSCy Schubert    Value   : MinLifetime
730*7f2fe78bSCy Schubert    Type    : DWORD
731*7f2fe78bSCy Schubert    Default : 60
732*7f2fe78bSCy Schubert
733*7f2fe78bSCy Schubert        Minimum lifetime, in seconds.  This value is used to set the
734*7f2fe78bSCy Schubert        range of the user interface controls that allow setting the
735*7f2fe78bSCy Schubert        lifetime of a ticket.
736*7f2fe78bSCy Schubert
737*7f2fe78bSCy Schubert    Value   : MinRenewLifetime
738*7f2fe78bSCy Schubert    Type    : DWORD
739*7f2fe78bSCy Schubert    Default : 60
740*7f2fe78bSCy Schubert
741*7f2fe78bSCy Schubert        Minimum renewable lifetime, in seconds.  This value is used to
742*7f2fe78bSCy Schubert        set the range of the user interface controls that allow
743*7f2fe78bSCy Schubert        setting the renewable lifetime of a ticket.
744*7f2fe78bSCy Schubert
745*7f2fe78bSCy Schubert    Value   : Proxiable
746*7f2fe78bSCy Schubert    Type    : DWORD (0 or 1)
747*7f2fe78bSCy Schubert    Default : 0
748*7f2fe78bSCy Schubert
749*7f2fe78bSCy Schubert        Obtain proxiable tickets.
750*7f2fe78bSCy Schubert
751*7f2fe78bSCy Schubert    Value   : Renewable
752*7f2fe78bSCy Schubert    Type    : DWORD (0 or 1)
753*7f2fe78bSCy Schubert    Default : 1
754*7f2fe78bSCy Schubert
755*7f2fe78bSCy Schubert        Obtain renewable tickets.
756*7f2fe78bSCy Schubert
757*7f2fe78bSCy Schubert
758*7f2fe78bSCy Schubert----------------------------------------------------------------------
759*7f2fe78bSCy Schubert
760*7f2fe78bSCy Schubert4.   Additional Resources
761*7f2fe78bSCy Schubert
762*7f2fe78bSCy Schubert    If you want to add registry keys or files you need to create new
763*7f2fe78bSCy Schubert    components and features for those.
764*7f2fe78bSCy Schubert
765*7f2fe78bSCy Schubert    Add new features under the 'feaKfwClient' feature and set the
766*7f2fe78bSCy Schubert    'Level' column for those features to equal the 'Level' for their
767*7f2fe78bSCy Schubert    parent features for consistency.  Note that none of the features
768*7f2fe78bSCy Schubert    in the "Kerberos for Windows" MSI package are designed to be
769*7f2fe78bSCy Schubert    installed to run from 'source' or 'advertised'.  It is recommended
770*7f2fe78bSCy Schubert    that you set 'msidbFeatureAttributesFavorLocal' (0),
771*7f2fe78bSCy Schubert    'msidbFeatureAttributesFollowParent' (2) and
772*7f2fe78bSCy Schubert    'msidbFeatureAttributesDisallowAdvertise' (8) attributes for new
773*7f2fe78bSCy Schubert    features.
774*7f2fe78bSCy Schubert
775*7f2fe78bSCy Schubert    If you are creating new components, retain the same component GUID
776*7f2fe78bSCy Schubert    when creating new transforms against new releases of the Kerberos
777*7f2fe78bSCy Schubert    MSI package.
778*7f2fe78bSCy Schubert
779*7f2fe78bSCy Schubert    It is beyond the scope of this document to provide a comprehensive
780*7f2fe78bSCy Schubert    overview of how to add new resources through a transform.  Please
781*7f2fe78bSCy Schubert    refer to the "Windows Installer" documentation for details.  The
782*7f2fe78bSCy Schubert    relevant section is at :
783*7f2fe78bSCy Schubert
784*7f2fe78bSCy Schubert    http://msdn.microsoft.com/library/en-us/msi/setup/using_transforms_to_add_resources.asp
785*7f2fe78bSCy Schubert
786*7f2fe78bSCy Schubert    A sample walkthrough of adding a new configuration file is in
787*7f2fe78bSCy Schubert    section 2.3.
788*7f2fe78bSCy Schubert
789*7f2fe78bSCy Schubert----------------------------------------------------------------------
790*7f2fe78bSCy Schubert
791*7f2fe78bSCy Schubert5.  Upgrades
792*7f2fe78bSCy Schubert
793*7f2fe78bSCy Schubert    The MSI package is designed to uninstall previous versions of
794*7f2fe78bSCy Schubert    "Kerberos for Windows" during installation.  Note that it doesn't
795*7f2fe78bSCy Schubert    directly upgrade an existing installation.  This is intentional
796*7f2fe78bSCy Schubert    and ensures that development releases which do not have strictly
797*7f2fe78bSCy Schubert    increasing version numbers are properly upgraded.
798*7f2fe78bSCy Schubert
799*7f2fe78bSCy Schubert    Versions of Kerberos that are upgraded by the MSI package are :
800*7f2fe78bSCy Schubert
801*7f2fe78bSCy Schubert    1) "Kerberos for Windows" 32-bit i386 MSI package
802*7f2fe78bSCy Schubert
803*7f2fe78bSCy Schubert       Upgrade code {61211594-AAA1-4A98-A299-757326763CC7}
804*7f2fe78bSCy Schubert       Up to current release
805*7f2fe78bSCy Schubert
806*7f2fe78bSCy Schubert    2) "Kerberos for Windows" 64-bit amd64 MSI package
807*7f2fe78bSCy Schubert
808*7f2fe78bSCy Schubert       Upgrade code {6DA9CD86-6028-4852-8C94-452CAC229244}
809*7f2fe78bSCy Schubert       Up to current release
810*7f2fe78bSCy Schubert
811*7f2fe78bSCy Schubert    2) "MIT Project Pismere Kerberos for Windows" MSI package and
812*7f2fe78bSCy Schubert       "MIT SWRT Kerberos for Windows" MSI
813*7f2fe78bSCy Schubert
814*7f2fe78bSCy Schubert       Upgrade code {83977767-388D-4DF8-BB08-3BF2401635BD}
815*7f2fe78bSCy Schubert       All versions
816*7f2fe78bSCy Schubert
817*7f2fe78bSCy Schubert    3) "Kerberos for Windows" NSIS package
818*7f2fe78bSCy Schubert
819*7f2fe78bSCy Schubert       All versions
820*7f2fe78bSCy Schubert
821*7f2fe78bSCy Schubert       Note that versions of the "Kerberos for Windows" NSIS package had
822*7f2fe78bSCy Schubert       a bug where it couldn't be uninstalled properly in unattended
823*7f2fe78bSCy Schubert       mode.  Therefore the MSI package will not try to uninstall an
824*7f2fe78bSCy Schubert       "Kerberos for Windows" NSIS package if running unattended.  This
825*7f2fe78bSCy Schubert       means that group policy based deployments will fail on machines
826*7f2fe78bSCy Schubert       that have the "Kerberos for Windows" NSIS package installed.
827*7f2fe78bSCy Schubert
828*7f2fe78bSCy Schubert       Note that the NSIS package is only available for 32-bit i386.
829*7f2fe78bSCy Schubert       You cannot install both the 32-bit NSIS and 64-bit amd64 MSI
830*7f2fe78bSCy Schubert       packages on the same machine.  To install both 32-bit and 64-bit
831*7f2fe78bSCy Schubert       KFW, you must use the MSI packages of both.
832*7f2fe78bSCy Schubert
833*7f2fe78bSCy Schubert    If you have used a different MSI package to install Kerberos for
834*7f2fe78bSCy Schubert    Windows and wish to upgrade it you can author rows into the
835*7f2fe78bSCy Schubert    'Upgrade' table to have the "Kerberos for Windows" MSI replace these
836*7f2fe78bSCy Schubert    installations for you.
837*7f2fe78bSCy Schubert
838*7f2fe78bSCy Schubert----------------------------------------------------------------------
839*7f2fe78bSCy Schubert
840*7f2fe78bSCy Schubert6.  FAQ
841*7f2fe78bSCy Schubert
842*7f2fe78bSCy Schubert    (Q/A's will be added here as needed)
843*7f2fe78bSCy Schubert
844*7f2fe78bSCy Schubert----------------------------------------------------------------------
845*7f2fe78bSCy Schubert$Id$
846*7f2fe78bSCy Schubert
847