CredentialProvider
[CredentialProvider]
Activate=0x03|{TS+LOGONUI}||0x06|*
AllowCertificate=
AllowToken=0x01|{LOGONUI}||0xFF|*
AutoLogonEnable=1
AutoLogonDisable=1|{LOGONUI}||*|0
BlockGUID=8bf9a910-a8ff-457f-999f-a5ca10b4a885;8FD7E19C-3BF7-489B-A72C-846AB3678C96;E74E57B0-6C6D-44D5-9CDA-FB2DF5ED7435;94596c7e-3744-41ce-893e-bbf09122f76a
CommandLink=<action1>,<text1>,<match1>;<action2>,<text2>,<match2>;...
CommandSelect=<action1>,<text1>,<match1>;<action2>,<text2>,<match2>;...
ComponentEnable=std:1;crt:1;pin:1;unlock:1;change:1
ComponentDisable=
:DependLibrary=
DependService=filter:self
:ImageSizeIcon=
:ImageSizeTile=
InitChangePin=0x03
ModeAllowGeneration2=0
ModeAllowNoNeedPIN=1
ModeAllowNoUPN=0
ModeAlwaysReportResult=1
:ModeCachePollContext=1
ModeConvertUPNtoSAM=0
ModeDirectLoad=0
ModeRequirelogon=0
ModeShowMultipleEmpty=0
ModeSingleCertificate=0
ModeSlimKerberos=0
ModeUnknownUseFirstSid=0
:ModeUnprotectedPin=0
ModeWrapping=0
RememberLastUsed=10
:TileUpdateDelay=99
UpdateRemoteEnable=1
UpdateRemoteBlockSelfFailure=0
UpdateRemoteBlockSelfHasAll=0
UpdateRemoteRegisterAllCert=0
UpdateRemoteTranslateUser=1
UpdateRemoteTranslateUserDomain=0
UpdateRemoteUseAnyCert=0
UpdateRemoteUseLastCert=1|{TS}||0|*
UpdateRemoteUseSingleCert=1|{TS}||0|*
WrappedFieldPosition=std:13,15,0,1,2,,-,-,6:0x00000000;crt:0,-,1,2,3,4,-,-,-:0x00000000;pin:3,4,0,-,-,,-,-,1:0x00000000
Activate
The activate value tells when our credential provider should tell the caller that we want to be auto selected by default. Usually the caller just ignores this, but sometimes this works. We can only suggest, the caller decides.
Values
The value is a bitmask for credential scenario usage.
- 0x01
-
Not CPUS_CREDUI
- 0x02
-
CPUS_CREDUI
- 0x03
-
Using both
- 0x04
-
Not CPUS_CREDUI if last used
- 0x08
-
Block activate if PIN is not needed
Normally we will try to activate for both usages.
[CredentialProvider]
Activate=0x03
AllowCertificate
You can limit the number of certificates that are used by specifying a matching condition.
[CredentialProvider]
AllowCertificate={MatchSomeThing}
Values
See Match for more information.
AllowToken
You can limit the number of tokens that are used. The value is a bitmask of those tokens that are allowed. Default is all token types accepted.
[CredentialProvider]
AllowToken=0x0F
AutoLogonEnable, AutoLogonDisable
It is possible to enable or disable auto logon. Auto logon is possible when single sign-on is active and the token is opened. Usually, you do not want to use auto logon for Windows Logon. Locking the desktop will then auto logon again.
[CredentialProvider]
AutoLogonEnable=1
AutoLogonDisable=1|{LOGONUI}||*|0
BlockGUID
The credential provider will usually replace another credential provider, so the original credential provider needs to be blocked. Each provider is identified by a GUID, so you need to specify the list of GUID:s that should be blocked. Separate them using a semicolon.
[CredentialProvider]
BlockGUID=8bf9a910-a8ff-457f-999f-a5ca10b4a885;8FD7E19C-3BF7-489B-A72C-846AB3678C96;E74E57B0-6C6D-44D5-9CDA-FB2DF5ED7435;94596c7e-3744-41ce-893e-bbf09122f76a
CommandLink
CommandLink controls how to show an extra dialog for CredentialProvider.
[CredentialProvider]
CommandLink=<action>,<text>,<match>;...;<action_N>,<text_N>,<match_N>
CommandSelect
CommandSelect controls how to show the dialog for CredentialProvider.
[CredentialProvider]
CommandSelect=<action>,<text>,<match>;...;<action_N>,<text_N>,<match_N>
ComponentEnable, ComponentDisable
The credential provider has five different purposes and they can be controlled separately.
To allow for conditions we have added a whitelist/blacklist to specify when they should be enabled.
[CredentialProvider]
ComponentEnable=std:1;crt:1;pin:1;unlock:1;change:1
ComponentDisable=
pin is only used by Microsoft Smart Card Providers, so it should only be used with MiniDriver activated.
|
DependLibrary
The parameter is primarily intended for developers and should never be changed. |
Used to load library before CredentialProvider load. Checks Load section for custom libraries.
[CredentialProvider]
DependLibrary=<library1>;<library2>;
DependService
Used to start or wait for service before CredentialProvider load. Default filter:self, wait for own service on load.
[CredentialProvider]
DependService=<type>:<service1>;<type>:<service2>;
Where each <service> tells what to do.
- <type>
-
filter,std,crt,pin,unlock,change
- <name>
-
Wait for service <name>
- <name> start
-
Start service <name>
- <name> wait
-
Wait for service <name> for 10 seconds
- <name> wait <timeout>
-
Wait for service <name> for <timeout> milliseconds
ImageSizeIcon
Used to set image size for Credential Provider generation 2 LogonUI scenario.
[CredentialProvider]
ImageSizeIcon=0x0030
ImageSizeTile
Used to set image size for Credential Provider generation 1 scenarios. Large tile in LogonUI and small tile in CredUI.
[CredentialProvider]
ImageSizeTile=0x00C00030
InitChangePin
This entry forces a PIN change for Credential Provider. It is used together with PinExpire key.
[CredentialProvider]
InitChangePin=0x03
ModeAllowGeneration2
Two different versions, or generations, of credential providers are available. The second generation added the possibility to group credential tiles, only used by Windows Logon. This does not work well with smart cards with multiple certificates, so it should be avoided.
[CredentialProvider]
ModeAllowGeneration2=0
ModeCachePollContext
Parameter used to open an extra session towards first KSP/CSP when polling for certificates. This session will be open until Credential Provider is unloaded. KSP/CSP will normally unload everything when last session is closed, so this behavior will increase performance, since a session will always be open.
ModeSlimKerberos
Our credential provider can remove unnecessary values from the credential information returned, that is, the smart card name or the smart card reader name. This ensures that the caller does not know which smart card or smart card reader was used. This makes the unable to disturb anything they do not know anything about.
[CredentialProvider]
ModeSlimKerberos=0
ModeWrapping
Our credential provider can run in full mode, pass through mode or pass through only mode. The full mode completely replaces an existing provider. In pass through mode the exiting provider is called to create the returned credential blob. In pass through only mode we act as a man in the middle for another credential provider to send information to trace, this mode is only intended for developers.
[CredentialProvider]
ModeWrapping=0
RememberLastUsed
Our credential provider can remember the last used credential and select that credential as default next time our credential provider is used. Reference to credentials is stored in the local configuration, see example below.
[CredentialProvider]
RememberLastUsed=<numberofcredentials>
This value only tells which of our credentials that we consider to be default by those returned from us. Microsoft have their own selection rules to tell which actual credential that will be default.
Example
The references to credentials is stored in the local configuration like this to make sure that the right certificate is prompted when you log on to your computer.
[CredentialProvider]
LastUsed_LOGON=94850533F8F61B56;
LastUsed_CREDUI=972ACC1807EAD617;
Local configuration is by default stored in the Windows registry and not to file. |
TileUpdateDelay
The parameter is primarily intended for developers and should never be changed. |
The TileUpdateDelay parameter is used to delay credential tile update after event is sent to Windows.
[CredentialProvider]
TileUpdateDelay=99
WrappedFieldPosition
When our credential provider is wrapping another credential provider it must know which field is used for which purpose. The values usually never change and it is intended to be used only by the development team. Thus, no documentation is available.
WrappedFieldPosition=std:13,15,0,1,2,,-,-,6:0x00000000;crt:0,-,1,2,3,4,-,-,-:0x00000000;pin:3,4,0,-,-,,-,-,1:0x00000000