Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
outlinh1. true
outlinh1. true
1printablefalse
2stylh1. none
3indent20px

...

Introduction

  • The

...

  • Credential Store (CS

...

  • ) allows sensitive data to be encrypted and stored securely and independently of the application(s) such as YADE and the JobScheduler YADE JITL Jobs that use this data.
  • The advantage of using a CS is that the CS stores sensitive information such as credentials in a standardized, secure and fully encrypted database and sensitive authentication information is not exposed in use. Applications access the CS database by using password, encryption-key file or a combination of both.
  • The CS requires the use of a standard open database format (.kdb or .kdbx ), which allows the use of graphical and API interfaces across the most relevant operating systems.

Scope

This article is in two parts:

  • The first part describes the use of the Credential Store in a relatively simple example file transfer configuration. The configuration described can be used to transfer files from a live server and a download containing the configuration file is available so that users can get a working Credential Store up, running and tested as easily as possible.
  • The second part of the article describes Credential Store configuration elements not covered by the example configuration. In addition, the use of the Credential Store in with the JobScheduler YADE JITL jobs is described

This article does not attempt to provide a step-by-step description of file transfer configuration, which is available elsewhere in this article, for example, in the tutorials for YADE and the JobScheduler.

Anchor
example
example
Example Description

The example presented in this article illustrates the configuration and use of the Credential Store as part of a simple file transfer operation - downloading files from an online server to the user's local file system.

The configuration is stored in an XML settings file and includes the elements specifying the Credential store and the file transfer as a whole. This settings file can be used by both the YADE Client and by the YADE JITL jobs that are provided with the JobScheduler.

The example described in this article is based on the simple file transfer example that is described in detail in The YADE Client Command Line Interface - Tutorial 1 - Getting Started article. This tutorial describes the configuration required to download a number of files from an online server provided by the SOS GmbH and save these files on the user's local file system. Using this server together with the downloaded configuration file means that users can get a working example up and running with a minimum of effort.

In the current example, the Credential Store is to store configuration information for the online server - i.e. for the file transfer source. The principle described can be equally well used for the configuration of multiple file transfer source, target, proxy and jump-host servers and for the other file transfer protocols that can be used by the YADE Client.

The example configuration file can be downloaded here:

Configuration Procedure for the Example

Installing the Credential Store and configuring the KeePass database

KeePass 2, which is just one of the applications available for creating and configuring .kdb or .kdbx databases, has been used in the current article to implement the Credential Store database and is used in the screenshots. The installation and use of KeePass 2 is described on the KeePass Web Site.

Feature Availability

Display feature availability
StartingFromRelease1.12.2

The full range of Credential Store features such as secure, compliant and password-free use of the Credential Store as well as compatibility with KeePass .kdb databases requires the YADE Client in version 1.12.2 or newer.

Database Configuration

Credential Store databases are stored as either .kdb or .kdbx  files on the file system.

The database included with the download files was configured as follows:

  • Path: .\jade_demo\keepass\demo_credential_store.kdbx
  • Master Password: sos

Note that a Master Key file can be used to provide further protection for the database, either instead of or in addition to the Master Password. This is described in the Advanced Configuration section of this article below but has not been configured for the download database.

Anchor
add_entry
add_entry
Adding connection information to the Credential Store

Connection configuration information is stored in the Credential Store as an Entry and Entries can be organized into Groups.

The following fields are available for storing information in a CS Entry:

  • Title: The identifier for the Entry, this could be a string containing, for example, the host name/server name.
  • User name: The user identification of a user account who is authenticated for the operation.
  • Password: Assigned password for a user account or passphrase for a private key.
  • URL: The host name/server name or IP address of the server.
  • Notes: This block can be used to specify additional parameters for the file transfer.
  • File Attachment & String Fields: Files such as PGP or SSH private keys can be stored as attachments.
    • A first file is specified as an attachment .
    • Further files are specified using String field parameter / value pairs.
      YADE will retrieve the contents of an attached file at run-time - intermediate or temporary files are not created when reading attachments.
      Note that Attachments and String Fields are specified in the KeePass GUI via the AdvancedEdit Entry tab.

The following information needs to be specified for the current example:

  • Groups: demo,ftp (optional)
  • Title: demo_on_test.sos-berlin.com
  • User name: demo
  • Password: demo
  • URL: test.sos-berlin.com (Alternatively, the IP address could have been specified here.)

The following screenshot shows that two Groups have been configured for the current example, named "demo" and "ftp", along with the Entry "demo_on_test.sos-berlin.com".

Image Added

The next screenshot shows the configuration of the parameters in the "demo_on_test.sos-berlin.com" Entry:

Image Added

Integrating the Credential Store in a File Transfer Configuration

The use of the Credential Store is specified in YADE Client file transfer configuration files, which are written in XML. We recommend using the SOS XML Editor to edit these files. Instructions for downloading, installing and using the XML Editor are linked from this page.

In the remainder of the current article, it is assumed that readers have made themselves familiar with the organization of the YADE Client file transfer configurations into Profiles and Fragments. This is described in The YADE Client Command Line Interface - Tutorial 1 - Getting Started article mentioned above.

The current example uses the XML configuration from the Getting Started tutorial article above and describes the necessary configuration elements required to move the sensitive information such as user name and password from the XML file to the Credential Store. Users wishing implement the current example should download the tutorial file transfer configuration file linked above and open it in their XML Editor, where they can then add the necessary configuration information.

The information required to use the Credential Store falls into two "areas":

  • Information about the Credential Store itself (location, how to access its contents, etc.).
    This information is configured in the XML file in a CredentialStoreFragment.
  • Information about how the information in the Credential Store (server address, password, etc.) is to be accessed for the file transfer.
    This information is stored as a string in each of the relevant XML ProtocolFragment child elements (Hostname, Account. etc.).

In addition, the ProtocolFragment element has a reference specifying that the Credential Store is to be used.

Specifying the Credential Store

The following list shows the organization of the XML elements required to specify the Credential Store. These elements and their attributes are shown in full in the XML Editor screenshot below. 

  • Fragments
    • ProtocolFragments
      • FTPFragment name="ftp_demo_sos-berlin_cs"
        • ....
        • CredentialStoreFragmentRef ref ="ftp_demo"
    • CredentialStoreFragments
      • CredentialStoreFragment name ="ftp_demo"
        • CSFile file path  %USERPROFILE%\jade_demo....
        • CSAuthentication
          • PasswordAuthentication
            • etc.
        • CSEntryPath
  • Profiles
    • etc.

Addressing the information in the Credential Store

Parameters stored in a Credential Store database Entry can be addressed in the CredentialStoreFragment XML element as follows:

  • The CSEntryPath element is used to specify the base path in the Credential Store database to the Entry.
    In the current example this would be set to:
    • demo/ftp/demo_on_test.sos-berlin.com
      where demo and ftp are (optional) Group names, as already mentioned, and demo_on_test.sos-berlin.com is the Title of the KeePass database Entry.

The Credential Store Entry parameters are addressed using one of the following syntaxes:

  • relative:
    • cs://@parameter_name, where the parameter_name is the name of the relevant parameter specified for the Entry - for example, url and the CSEntryPath element is filled as shown above
  • fully specified:
    • cs://demo/ftp/demo_on_test.sos-berlin.com@parameter_name, and where the CSEntryPath element, which is a required element, is left blank

The following parameters are fully specified in the Credential Store in the current example:

  • Hostname: cs://demo/ftp/demo_on_test.sos-berlin.com@url (where @url specifies the URL element stored in the database )
  • Account: cs://demo/ftp/demo_on_test.sos-berlin.com@user (where @user specifies the User name element stored in the database)
  • Password: cs://demo/ftp/demo_on_test.sos-berlin.com@password (where @password specifies the Password element stored in the database)

Note that a full list of parameters is described in the Adding an Entry to the Credential Store section above.

Configuration in the XML Editor

Info
titleTip

The XML Editor includes up-to-date documentation for elements as can be seen in the screenshot below, which shows the documentation for the Hostname element.

The parts of the XML configuration relevant to the use of the Credential Store are shown in the following screenshot of the configuration for the current example, with parameter values highlighted according to their function:

 Image Added

The Transfer Target Directory

The screenshot above shows a CopyTarget.Directory parameter for a Windows environment:

  • ${USERPROFILE}\jade_demo\transfer_receive

Depending on their operating system, users may find it necessary to modify this attribute before running the example.

XML Listing

The following code block can be opened to show the full XML configuration for the example:

Code Block
languagexml
titleSimple Example Listing
collapsetrue
<?xml version="1.0" encoding="utf-8"?>
<Configurations xsi:noNamespaceSchemaLocation="http://www.sos-berlin.com/schema/jade/JADE_configuration_v1.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Fragments>
    <ProtocolFragments>
      <FTPFragment name="ftp_demo_sos-berlin_cs">
        <BasicConnection>
          <Hostname><![CDATA[cs://demo/ftp/demo_on_test.sos-berlin.com@url]]></Hostname>
        </BasicConnection>
        <BasicAuthentication>
          <Account><![CDATA[cs://demo/ftp/demo_on_test.sos-berlin.com@user]]></Account>
          <Password><![CDATA[cs://demo/ftp/demo_on_test.sos-berlin.com@password]]></Password>
        </BasicAuthentication>
        <CredentialStoreFragmentRef ref="ftp_demo" />
      </FTPFragment>
    </ProtocolFragments>
    <CredentialStoreFragments>
      <CredentialStoreFragment name="ftp_demo">
        <CSFile><![CDATA[%USERPROFILE%\jade_demo\keepass\demo_cred_store.kdbx]]></CSFile>
        <CSAuthentication>
Code Block

                                        

<source>
                                    

</source>

Profile : jade_setting.ini

Code Block

 {{
                                       
    [Keepass_DataBase_WithPassword]
    use_credential_Store = true
    CredentialStore_FileName = R:\backup\sos\java\development\com.sos.VirtualFileSystem\keepassX-test.kdb
    CredentialStore_KeyPath = sos/server/homer.sos
    CredentialStore_password = testing
</source>


<source>
    [ReceiveUsingKeePass]
    include = Keepass_DataBase_WithPassword
    source_CredentialStore_KeyPath = sos/server/homer.sos
    source_include = Keepass_DataBase_WithPassword
    source_Dir = /tmp/test/jade/out
    source_make_Dirs = true
    source_loadClassName = com.sos.VirtualFileSystem.FTP.SOSVfsFtp2
    target_protocol = local
    target_dir = /tmp/test/jade/in
    operation = copy
    file_spec = \.txt$
    transfer_mode = ascii
    source_transfer_mode = ascii
    loadClassName = com.sos.VirtualFileSystem.FTP.SOSVfsFtp2
</source>
}}                                     

<source>
                                            title
                                        
                                    
                                    
                                        
                                            example of jade profile using Credential Store
                                        
                                    
                                    
                                        
                                            title
                                        
                                    
                                
 

An example for a job-xml file:

Code Block
languagehtml/xml
  &lt;job order='no' &gt;
     &lt;params&gt;
       &lt;param name="[[#CredentialStore_ProcessNotesParams|CredentialStore_ProcessNotesParams]]" value="false" /&gt;
       &lt;param name="[[#CredentialStore_OverwriteExportedFile|CredentialStore_OverwriteExportedFile]]" value="true" /&gt;
       &lt;param name="[[#CredentialStore_Permissions4ExportedFile|CredentialStore_Permissions4ExportedFile]]" value="600" /&gt;
       &lt;param name="[[#CredentialStore_DeleteExportedFileOnExit|CredentialStore_DeleteExportedFileOnExit]]" value="true" /&gt;
       &lt;param name="[[#CredentialStore_ExportAttachment|CredentialStore_ExportAttachment]]" value="false" /&gt;
       &lt;param name="[[#CredentialStore_ExportAttachment2FileName|CredentialStore_ExportAttachment2FileName]]" value="" /&gt;
       &lt;param name="[[#CredentialStore_KeyFileName|CredentialStore_KeyFileName]]" value="" /&gt;
       &lt;param name="[[#CredentialStore_password|CredentialStore_password]]" value="" /&gt;
       &lt;param name="[[#CredentialStore_AuthenticationMethod|CredentialStore_AuthenticationMethod]]" value="privatekey" /&gt;
       &lt;param name="[[#CredentialStore_StoreType|CredentialStore_StoreType]]" value="KeePass" /&gt;
       &lt;param name="[[#CredentialStore_KeyPath|CredentialStore_KeyPath]]" value="" /&gt;
       &lt;param name="[[#CredentialStore_FileName|CredentialStore_FileName]]" value="" /&gt;
       &lt;param name="[[#use_credential_Store|use_credential_Store]]" value="false" /&gt;
     &lt;/params&gt;
     &lt;script language="" java_class="" /&gt;
  &lt;/job&gt;
 

Parameter used by SOSCredentialStore

...

 

Name

title

mandatory

default

CredentialStore_ProcessNotesParams

Process additional parameters from "notes" filed

false

false

CredentialStore_OverwriteExportedFile

CredentialStore_OverwriteExportedFile

false

true

CredentialStore_Permissions4ExportedFile

CredentialStore_Permissions4ExportedFile

false

600

CredentialStore_DeleteExportedFileOnExit

Delete Attachment On Exit of Application

false

true

CredentialStore_ExportAttachment

Export attached file to disc

false

false

CredentialStore_ExportAttachment2FileName

Name of the extracted attachment file

false

 

CredentialStore_KeyFileName

Name of the File containing the private Key

false

 

CredentialStore_password

Password for CS

false

 

CredentialStore_AuthenticationMethod

Authentication Method for the CS

true

privatekey

CredentialStore_StoreType

The Type of the crendential store application

false

KeePass

CredentialStore_KeyPath

Path and Key for the credentials

true

 

CredentialStore_FileName

Name of Credential Database

true

 

use_credential_Store

use credential store for authentication

false

false

Parameter <span ih1. "CredentialStore_ProcessNotesParams">CredentialStore_ProcessNotesParams</span>: Process additional parameters from "notes" filed

In "notes" filed of the CS Database extra parameters like DB connection string , Proxy server IP etc. can be defined. These paramters will be processed with the other parameters defined in settings file, JITL parameters, but "IMP" if an paramter with same name is defined in the "notes" section , parameter value in "notes" will have priority.

Code Block
languagebash

                                -dburl=test -verbose=2 -password=12345-2

<source>
                            

</source>

example: of additional parameters in notes section

Code Block

                            example: of additional parameters in notes section
                            
          <PasswordAuthentication>
            <CSPassword><![CDATA[sos]]></CSPassword>
          -dburl=test -verbose=2 -password=12345-2</PasswordAuthentication>
        </CSAuthentication>
        <CSEntryPath />
      </CredentialStoreFragment>
     </CredentialStoreFragments>
  </Fragments>
  <Profiles>
        <Profile profile_id="ftp_server_2_local_cs">
      <Operation>
        <Copy>
   
       <CopySource>
            <CopySourceFragmentRef>
             In the<FTPFragmentRef "notes" propertry of KeePass can be used to store extra parameters i.e. options such as DBref="ftp_demo_sos-berlin_cs" />
            </CopySourceFragmentRef>
            <SourceFileOptions>
              <Selection>
      connetction string , proxy server settings etc.
    <FileSpecSelection>
                  <FileSpec><![CDATA[.*]]></FileSpec>
                  <Directory><![CDATA[./]]></Directory>
                </FileSpecSelection>
              </Selection>
       

Data-Type : SOSOptionBoolean
The default value for this parameter is false.
Use together with parameter:

Alias: CS_ProcessNotesParams

Parameter <span id"CredentialStore_OverwriteExportedFile">CredentialStore_OverwriteExportedFile</span>: CredentialStore_OverwriteExportedFile

At runtime JADE can export the file defined in the attachment filed of the CS DB to the local file system. for example If attached file is an SSH key and JADE want to use the Key file for Data Exchange operation Usally if JADE want to use an SSH key , stored in the CS as attachement JADE has to export attached file into predefined directory i.e. $HOME/.ssh. To avoide any unwanted overwriting of any existing file into $HOME/.ssh folder, "IMP"" set this parameter as "false".
Data-Type : SOSOptionBoolean
The default value for this parameter is true.
Use together with parameter:

Alias: CS_OverwriteExportedFile

Parameter <span ih1. "CredentialStore_Permissions4ExportedFile">CredentialStore_Permissions4ExportedFile</span>: CredentialStore_Permissions4ExportedFile

At runtime JADE can export the file defined in the attachment filed of the CS DB to the local file system. for example If attached file is an SSH key and JADE want to use the Key file for Data Exchange operation Usally if JADE want to use an SSH key , stored in the CS as attachement JADE has to export attached file into predefined directory i.e. $HOME/.ssh and key file should have specific permissions. It could be possible that "application user" calling the JADE have different set of application, to avoide any file permission issue during run time, "IMP" set the required file permission using these parameters

Code Block
languagebash

                                -CredentialStore_Permissions4ExportedFile="600-MAHEND"

<source>
                            

</source>

example: additional parameters in notes section

Code Block

                            example: additional parameters in notes section
                            
                                -CredentialStore_Permissions4ExportedFile="600-MAHEND"
                            
                            
                            
                        
 

Data-Type : SOSOptionString
The default value for this parameter is 600.
Use together with parameter:

Alias: CS_Permissions4ExportedFile

Parameter <span id"CredentialStore_DeleteExportedFileOnExit">CredentialStore_DeleteExportedFileOnExit</span>: Delete Attachment On Exit of Application

At runtime JADE will export the attached file to local file system , once operation is completed , irrespecive of operation's status (successfully or unsucessfully ), by default JADE will delete this file. In special case i.e. for debuging or any other reason if you want that JADE should not delete the file "IMP" set this parameter as FALSE
Data-Type : SOSOptionBoolean
The default value for this parameter is true.
Use together with parameter:

Alias: CS_DeleteExportedFileOnExit

Parameter <span ih1. "CredentialStore_ExportAttachment">CredentialStore_ExportAttachment</span>: Export attached file to disc

If JADE need an file, stored in the CS DB as attachemenr, at runtime JADE can export the file on local filesystem. By default JADE don't export attached file. "IMP" if JADE need "attachment" file at runtime , set this parameter as TRUE
Data-Type : SOSOptionBoolean
The default value for this parameter is false.
Alias: CS_ExportAttachment

Parameter <span id"CredentialStore_ExportAttachment2FileName">CredentialStore_ExportAttachment2FileName</span>: Name of the extracted attachment file

To use the file stored in the CS as attachment, during an operation, JADE has to export the attached file on local filesystem. To define the name of exported file name on local filesystem , use this parameter.

Code Block
languagebash

                                -CredentialStore_ExportAttachment2FileName="archive_server_ras.ppk"

<source>
                            

</source>

example: additional parameters in notes section

Code Block

                            example: additional parameters in notes section
                            
                                -CredentialStore_ExportAttachment2FileName="archive_server_ras.ppk"
                            
                            
                                todo: This is the explanation for this example.
                            
                        
 

Data-Type : SOSOptionOutFileName
Use together with parameter:

Alias: CS_ExportAttachment2FileName

Parameter <span ih1. "CredentialStore_KeyFileName">CredentialStore_KeyFileName</span>: Name of the File containing the private Key

Credential store can be accessed by the JADE using an private key or with password or combination of both. define the path/location of the ssh key file using this parameter.

Code Block
languagebash

                                -CredentialStore_KeyFileName="jade_cs_rsa.ppk"

<source>
                            

</source>

example: additional parameters in notes section

Code Block

                            example: additional parameters in notes section
                            
                                -CredentialStore_KeyFileName="jade_cs_rsa.ppk"
                            
                            
                                todo: This is the explanation for this example.
                            
                        
 

Data-Type : SOSOptionInFileName
Use together with parameter:

Alias: CS_KeyFileName

Parameter <span id"CredentialStore_password">CredentialStore_password</span>: Password for CS

Credential store can be accessed by the JADE using an private key or with password or combination of both. define the CS's access password using this parameter. "IMP" always set strong password for CS.

Code Block
languagebash

                                

<source>
                            

</source>

example: additional parameters in notes section

Code Block

                            example: additional parameters in notes section
                            
                                -CredentialStore_password="55ybr293N!2BButnY4,w"
                            
                            
                                todo: This is the explanation for this example.
                            
                        
 

Data-Type : SOSOptionPassword
Use together with parameter:

Alias: CS_password

Parameter <span ih1. "CredentialStore_AuthenticationMethod">CredentialStore_AuthenticationMethod</span>: Authentication Method for the CS

There are three possible combination of Authentication methods.

Code Block
languagebash

                                
                                
                                
                                
                                


<source>
                            

</source>

example: additional parameters in notes section

Code Block

                            example: additional parameters in notes section
                            
                                -CredentialStoreAuthenticationMethod="password"
                                 --- OR --- 
                                -CredentialStoreAuthenticationMethod="privatekey"
                                 --- OR --- 
                                -CredentialStoreAuthenticationMethod="password+privatekey"
Code Block

                                todo: This is the explanation for this example.
                            
                        
 

Data-Type : SOSOptionString
The default value for this parameter is privatekey.
Use together with parameter:

This parameter is mandatory.
Alias: CS_AuthenticationMethod

Parameter <span id"CredentialStore_StoreType">CredentialStore_StoreType</span>: The Type of the crendential store application

At present only "KeePass" as CS DB is supported and only "KeePass" as valid parameter value is permitted.
Data-Type : SOSOptionString
The default value for this parameter is KeePass.
Use together with parameter:

Alias: CS_StoreType

Parameter <span ih1. "CredentialStore_KeyPath">CredentialStore_KeyPath</span>: Path and Key for the credentials

This Option specifies the path of the Access key for the entry which has to be used for the credentials.
Credential store can be accessed by the JADE using an private key or with password or combination of both. define the path/location of the ssh key file using this parameter.

Code Block
languagebash

                                

<source>
                            

</source>

example: additional parameters in notes section

Code Block

                            example: additional parameters in notes section
                            
                                -CredentialStore_KeyFileName="/ssh/server1/sap-upload"
                            
                            
                                todo: This is the explanation for this example.
                            
                        
 

Data-Type : SOSOptionString
Use together with parameter:

This parameter is mandatory.
Alias: CS_KeyPath

Parameter <span id"CredentialStore_FileName">CredentialStore_FileName</span>: Name of Credential Database

The path and name of the KeePass or KeePassX DB file with the file extension ".kdb".

Code Block
languagebash

                                jade.sh -CredentialStoreFileName="/etc/keystore/sap_jade.kdb" ...

<source>
                            

</source>

Code Block

                                CredentialStoreFileName = /etc/keystore/sap_jade.kdb

<source>
                            

</source>

Code Block
languagejava

                                CSOptions.CredentialStoreFileName.Value("/etc/keystore/sap_jade.kdb");

<source>
                            

</source>

example: additional parameters in notes section

Code Block

                            example: additional parameters in notes section
                            
                                jade.sh -CredentialStoreFileName="/etc/keystore/sap_jade.kdb" ...
                            
                            
                                CredentialStoreFileName = /etc/keystore/sap_jade.kdb
                            
                            
                                CSOptions.CredentialStoreFileName.Value("/etc/keystore/sap_jade.kdb");
                            
                            
                                todo: This is the explanation for this example.
                            
                        
 

Data-Type : SOSOptionInFileName
Use together with parameter:

This parameter is mandatory.
Alias: CS_FileName

Parameter <span id="use_credential_Store">use_credential_Store</span>: use credential store for authentication

If you want to store your access data i.e. user-id , password, SSH key , DB URL in encrypted CS DB, unable this parameter and configure the rest if the CS accordinglly. By default JADE will look for the parameters from settings.ini, command line or from JITL job.
Data-Type : SOSOptionBoolean
The default value for this parameter is false.

</text>

Code Block

      </revision>
   </page>
     </SourceFileOptions>
          </CopySource>
          <CopyTarget>
            <CopyTargetFragmentRef>
              <LocalTarget />
            </CopyTargetFragmentRef>
            <Directory><![CDATA[${USERPROFILE}\jade_demo\transfer_receive]]></Directory>
          </CopyTarget>
        </Copy>
      </Operation>
    </Profile>
  </Profiles>
</Configurations>

 

Running the YADE Client with the Credential Store

The use of the Credential Store is contained within the settings file and is not exposed when calling the YADE Client. For example, on Windows systems, the YADE Client is called for the current example using:

Code Block
languagexml
titleCall on Windows systems
C:\Program Files\sos-berlin.com\jade\client\bin>jade.cmd -settings="%USERPROFILE%\jade_demo\sos-berlin_demo_2_local_cs.xml" -profile="ftp_server_2_local_cs"

After the YADE command has finished execution the number of files transferred can be read from the log file.

Note that the log files neither indicate that a credential store has been use for the transfer nor reveal any passwords. 

Show If
useraa

Download Example

A download is available containing a full XML configuration file for Windows users and .kdbx database: jade_demo.zip

Windows users with the necessary permissions will be able to use these files by unpacking the zip file to a jade_demo folder in their User directory.

Users of other operating systems may have to make minor configuration changes.

Anchor
jitl
jitl
Using the Credential Store with the JobScheduler JITL YADE jobs

Settings XML files such as the sos-berlin_demo_2_local_cs.xml file which was used to configure the example described above can be used for JobScheduler JITL jobs. Here, only two parameters are needed to run the YADE JITL job (settings and profile) as can be seen in the next screenshot.

Note that we recommend that these parameters are set manually using the New button shown in the screenshot below and not using the Wizard button.

Image Added

Note also that while the YADE Client runs under the current user account, the JobScheduler generally runs under a predefined account. This means that while paths in the configuration file can use parameters such as %USERPROFILE% when the configuration file is being used with the YADE Client, it is generally necessary to use absolute paths when the configuration file is to be used for JITL jobs.

Advanced Configuration

Key File Authentication

Key file authentication can be used for the Credential Store either alone or together with the password authentication described in the example above.

This option allows the the Credential Store to be used completely securely, yet without passwords, if required.

Key file authentication has to be configured for the Credential Store and in the XML settings file.

Configuring key file authentication in the Credential Store

KeePass provides a Create Composite Master Key function that is reached with the Files / Master Key... menu item. screen

The Create Composite Master Key function is shown in the following screenshot  (Note that the Show expert options checkbox has to be selected first.):

Note also that the Master Password checkbox should not be selected if key file authentication is to be used without a master password.

Image Added

The entropy of the key generated can be increased as part of the key creation procedure. This is done as part of the key generation procedure in the interface shown in the next screenshot.

Image Added

For the purpose of this article the key has been saved in the jade_demo folder used for the download example.

The next section describes the configuration of the XML settings file to include a reference to this file.

Configuring key file authentication in the XML settings file

Key file authentication is configured in the XML settings file by specifying a KeyFileAuthentication element as a child of the CSAuthentication element in the Credential Store fragment.

The key file element can be added either instead of or alongside a password authentication element as required.

This is shown in the following list:

  • CredentialStoreFragments
    • CredentialStoreFragment name ="ftp_demo"
      • CSFile file path%USERPROFILE% \jade_demo....
      • CSAuthentication
        • PasswordAuthentication
          • .CSPassword myPassword
        • KeyFileAuthentication
          • CSKeyFile %USERPROFILE%\jade_demo\cs_key_file\demo_credential_store.key
      • CSEntryPath

Connection authentication key files

The Credential Store can be used to store RSA and similar connection authentication key files. These are stored in the Credential Store database as attachments.

Configuring authentication key files in the Credential Store

Attachments are added to the Credential Store in KeePass in the File Attachments section of the Advanced tab as shown in the screenshot below. Note that only one attachment can be added for each Credential Store Entry :

Image Added

Configuring authentication key files in the XML settings file

A first attachment for, for example, SSH would be configured in the XML settings file by specifying an AuthenticationFile element in the SSHAuthentication element.

The key file element can be added either instead of or alongside a password authentication element as required.

This following list shows the configured of the SFTP Fragment required to carry out the download from the test.sos-berlin.com SFTP/FTP server that was used for the simple example described above: The AuthenticationFile element that specifies the Attachment in the Credential Store Entry is specified in the same way as the Hostname and other elements described in the example above.

  • SFTPFragment name ="sftp_demo_sos-berlin_cs"
    • BasicConnection
      • Hostname cs://demo/sftp/demo_on_test.sos-berlin.com@attachment
    • SSHAuthentication
      • Account
      • AuthenticationMethodPublicKey
        • AuthenticationFile cs://demo/sftp/demo_on_test.sos-berlin.com@attachment
        • Passphrase myPassPhrase
      • CredentialStoreFragmentRefref="ftp_demo"

Note that this list also shows the use of a Passphrase element for the AuthenticationFile element. This is not required for authentication with the test.sos-berlin.com SFTP server but is provided as an illustration. 

Passphrase elements are stored in the Credential Store as Notes.

Custom Parameters

Custom parameters allow XML ProtocolFragment elements such as StrictHostkeyChecking that do not belong to the standard keepass.GUI fields such as URL to be specified.

Configuring custom parameters in the Credential Store

Custom parameters are set as string name / value pairs. In the KeePass 2 GUI these are set by opening the Edit window for an Entry using the Add function in the String Fields section of the Advanced tab. .This is shown in the next screenshot:

Image Added

Configuring custom parameters in the XML settings file

Custom parameters are configured in the XML settings file by ..

  • SFTPFragment name ="sftp_tokyo_japan.sos-berlin.com"
    • BasicConnection
    • SSHAuthentication
    • CredentialStoreFragmentRef ref="demo_credential_store"
    • StrictHostkeyChecking "false"

Note that custom parameters can only be used to set parameters in ProtocolFragments - they cannot be used to set ProfileFragments parameters such as Recursive.

See Also

References

Support of the features described in this article is subject to the following issues:

Issues implemented with Release 1.12.1:

  • Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyYADE-462
  • Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyYADE-464
  • Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyYADE-481
  • Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyYADE-482
  • Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyYADE-485
  • Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyYADE-487
  • Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyYADE-491

Issues implemented with Release 1.12.2:

  • Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyYADE-493
  • Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyYADE-498
  • Jira
    serverSOS JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId6dc67751-9d67-34cd-985b-194a8cdc9602
    keyYADE-499

 </mediawiki>