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