<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>article Securing REST APIs in Talend Runtime in Official Support Articles</title>
    <link>https://community.qlik.com/t5/Official-Support-Articles/Securing-REST-APIs-in-Talend-Runtime/ta-p/2151480</link>
    <description>&lt;P&gt;For almost all services or APIs running in production, the requirement exists to secure access to the service. In the rest of this article, we will look at how to ensure the following security requirements:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Authentication – Determine which individual/system is accessing the service. This involves comparing provided identity information with corresponding data stored about the individual in our system. The provided information is something only the individual can provide, for example, a password.&lt;/LI&gt;
&lt;LI&gt;Authorization – Ensure the individual can only access parts of the services she is allowed to use.&lt;/LI&gt;
&lt;LI&gt;Confidentiality – Ensure the information sent is kept secret. No surveillance by third-parties is possible. Usually, this is achieved by encrypting the information.&lt;/LI&gt;
&lt;LI&gt;Integrity – Confirm the information the service receives matches what&amp;nbsp;was sent. No one is able to tamper with the information unnoticed. This may be achieved by signing the message, but encrypting the information also ensures no "man in the middle" modified the information.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This article shows you how to implement these concepts when running data services or Routes in the Talend Runtime. The focus is on the cloud runtime, but also applies to on-premises environments. Microservices are not handled in this article.&lt;/P&gt;
&lt;P&gt;The attached &lt;STRONG&gt;security.zip&lt;/STRONG&gt; file contains a Talend Studio v7.0 project with a sample service and Route to experiment with. It can be imported into any Talend Studio v7.&lt;I&gt;x&lt;/I&gt;. In addition, it contains sample configuration files for the LDAP login module described later.&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Authentication&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;For REST-based services, in a cloud environment, Talend provides support only for basic authentication, where the user name and password are sent in an HTTP header alongside the request in clear text. Therefore it is mandatory to use HTTPS instead of HTTP as the protocol to ensure that the password is encrypted. Contrary to on-premises, for cloud environments, SAML token and OAuth are not supported. If more sophisticated solutions are required, Talend recommends using an API Gateway to secure and control access to the services and APIs. Talend Help provides information on how to &lt;A href="https://help.qlik.com/talend/en-US/api-designer-user-guide/Cloud/working-with-api-gateways" target="_blank" rel="noopener"&gt;integrate with API Gateways&lt;/A&gt; and examples for &lt;A href="https://help.talend.com/en-US/api-designer-examples/Cloud/api-designer-examples" target="_blank" rel="noopener"&gt;deployment on AWS API Gateway and Azure API Management&lt;/A&gt;.&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Enabling authentication for services and Routes&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;Activating basic authentication for a service or a Route is done in Talend Studio in the corresponding REST component (&lt;STRONG&gt;tRESTRequest&lt;/STRONG&gt; in a data service, or &lt;STRONG&gt;cREST&lt;/STRONG&gt; in a Route). A data service where authentication is enabled is shown below:&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="0EM3p000001zlqF.jpg"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/122937i28668FF2F97F67D8/image-size/large?v=v2&amp;amp;px=999" role="button" title="0EM3p000001zlqF.jpg" alt="0EM3p000001zlqF.jpg" /&gt;&lt;/span&gt;&lt;BR /&gt;Figure 1: Authentication enabled data service&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Validate identity&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;Enforcing authentication information when sending the request to the service is only half the story. The provided identity must be validated and compared to the set of accepted identities. Talend Runtime provides an authentication framework based on &lt;A href="https://docs.oracle.com/javase/8/docs/technotes/guides/security/jaas/JAASRefGuide.html" target="_blank" rel="noopener"&gt;Java Authentication and Authorization Service (JAAS)&lt;/A&gt;, which allows you to plug in different modules targeting a specific backend to validate identity information. Out of the box, Talend Runtime is configured to support a file-based backend, but among others LDAP can also be used to validate. For a complete list of supported backends, see the &lt;A href="https://karaf.apache.org/manual/latest/#_security_framework" target="_blank" rel="noopener"&gt;Apache Karaf documentation&lt;/A&gt;.&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Properties file module&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;The &lt;STRONG&gt;PropertiesLoginModule&lt;/STRONG&gt; login module is the one configured by default in the Talend Runtime. It is based on the &lt;STRONG&gt;${&lt;I&gt;Runtime_Home&lt;/I&gt;}/etc/users.properties&lt;/STRONG&gt; file, which uses the &lt;A href="http://download.oracle.com/javase/6/docs/api/java/util/Properties.html#load(java.io.Reader)" target="_blank" rel="noopener"&gt;properties file format&lt;/A&gt;. Each property represents an identity. The format of the property is as follows:&lt;/P&gt;
&lt;PRE class="ckeditor_codeblock"&gt;user=password[,role][,role]...&lt;/PRE&gt;
&lt;P&gt;Several roles may also be grouped together and the group can be referenced in the user entry:&lt;/P&gt;
&lt;PRE class="ckeditor_codeblock"&gt;_g_\:group=role[,role]...

user=password[,role][,_g_\:group]...&lt;/PRE&gt;
&lt;P&gt;The figure below shows the &lt;STRONG&gt;users.properties&lt;/STRONG&gt; file, which is part of the Talend Runtime installation. In addition to the standard users &lt;STRONG&gt;tadmin&lt;/STRONG&gt;, &lt;STRONG&gt;tesb&lt;/STRONG&gt;, and &lt;STRONG&gt;karaf&lt;/STRONG&gt;, two users &lt;STRONG&gt;alice&lt;/STRONG&gt; and &lt;STRONG&gt;bob&lt;/STRONG&gt; were added.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="0EM3p000001zkwR.jpg"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/124574iA78F09C88BEC8ACB/image-size/large?v=v2&amp;amp;px=999" role="button" title="0EM3p000001zkwR.jpg" alt="0EM3p000001zkwR.jpg" /&gt;&lt;/span&gt;&lt;BR /&gt;Figure 2: Sample users file&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Password Protection&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;Passwords in the properties file are in clear text by default, but can be hashed to ensure protection. To automatically hash passwords after restarting the runtime, open and edit the &lt;STRONG&gt;&amp;lt;&lt;I&gt;Runtime_Home&lt;/I&gt;&amp;gt;/etc/org.apache.karaf.jaas.cfg&lt;/STRONG&gt; file.&lt;/P&gt;
&lt;P&gt;The &lt;STRONG&gt;encryption.enabled&lt;/STRONG&gt; property must be set to &lt;STRONG&gt;true&lt;/STRONG&gt;. Furthermore, the encryption algorithm in the property encryption.algorithm should be set to something like &lt;STRONG&gt;SHA-256&lt;/STRONG&gt;. The configuration file should look like this:&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="0EM3p000001zkx5.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/125176i0D74C3614214647B/image-size/large?v=v2&amp;amp;px=999" role="button" title="0EM3p000001zkx5.png" alt="0EM3p000001zkx5.png" /&gt;&lt;/span&gt;&lt;BR /&gt;Figure 3: org.apache.karaf.jaas.cfg&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;LDAP module&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;The properties file solution is fine to quickly get some identity information defined, for example, when testing, but does not scale well. Furthermore, in many cases, identity information is stored in some LDAP server or Active Directory. Talend runtime provides an LDAP module to validate identity information using the information stored in LDAP or Active Directory.&lt;/P&gt;
&lt;P&gt;The &lt;STRONG&gt;security.zip&lt;/STRONG&gt; file includes the OSGi Blueprint bundle file &lt;STRONG&gt;authentication/LDAP-login-config.xml&lt;/STRONG&gt;, which activates the LDAP login module when deployed into the runtime, and the &lt;STRONG&gt;authentication/org.talend.esb.jaas.ldap.cfg&lt;/STRONG&gt; file to configure the login module and adapt it to the specific environment.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Table 1: LDAP login parameters for authentication&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-bottom: solid #666666 1.5pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;Name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="522" valign="top" style="width: 391.25pt; border-top: solid #999999 1.0pt; border-left: none; border-bottom: solid #666666 1.5pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;Description&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;connection.url&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="522" valign="top" style="width: 391.25pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;The LDAP URL, for example, &lt;STRONG&gt;ldap://ldap-host.example.com:389&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;connection.username&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="522" valign="top" style="width: 391.25pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;Username to connect to LDAP, for example, &lt;STRONG&gt;cn=admin,dc=example,dc=com&lt;/STRONG&gt;. The user requires read access to the part of the Directory Information Tree (DIT) where the user information is stored.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;connection.password&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="522" valign="top" style="width: 391.25pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;User password to connect to LDAP.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;user.base.dn&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="522" valign="top" style="width: 391.25pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;The LDAP base DN used to look up users, for example, &lt;STRONG&gt;ou=users,dc=example,dc=com&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;user.filter&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="522" valign="top" style="width: 391.25pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;The LDAP filter used to locate the user applied to the subtree specified in &lt;STRONG&gt;user.base.dn&lt;/STRONG&gt;, for example, &lt;STRONG&gt;(uid=%u)&lt;/STRONG&gt; where &lt;STRONG&gt;%u&lt;/STRONG&gt; will be replaced by the username.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;user.search.subtree&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="522" valign="top" style="width: 391.25pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;If “true”, the user lookup will be recursive (sub). If “false”, the user lookup will be performed only at the first level (one).&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;authentication&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="522" valign="top" style="width: 391.25pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;Specifies the authentication method used when binding to the LDAP server. The default is &lt;STRONG&gt;simple&lt;/STRONG&gt;, where a username and password is required. To enable &lt;STRONG&gt;anonymous&lt;/STRONG&gt;, set to &lt;STRONG&gt;none &lt;/STRONG&gt;and leave username and password blank.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;TFOOT&gt;&lt;/TFOOT&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;P&gt;Edit the configuration file and adapt the settings to your environment.&lt;STRONG&gt;&lt;FONT color="#339966"&gt; Table 1&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;provides a list of the properties to be configured and their meaning. The configuration file also contains the description for each property. The sample values in &lt;STRONG&gt;&lt;FONT color="#339966"&gt;Table 1&lt;/FONT&gt;&lt;/STRONG&gt; and in the configuration file correspond to the Directory Information Tree (DIT) structure shown in &lt;FONT color="#339966"&gt;&lt;STRONG&gt;Figure 4&lt;/STRONG&gt;&lt;/FONT&gt;.&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="0EM3p000001zkwN.jpg"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/124850iE5E95CC9488DAC65/image-size/large?v=v2&amp;amp;px=999" role="button" title="0EM3p000001zkwN.jpg" alt="0EM3p000001zkwN.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;When finished with editing, copy the configuration file to the directory &lt;STRONG&gt;&amp;lt;&lt;I&gt;Runtime_Home&lt;/I&gt;&amp;gt;/etc&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Deploy the &lt;STRONG&gt;authentication/LDAP-login-config.xml&lt;/STRONG&gt; file into the Talend Runtime. The easiest way to deploy it is to copy the file to the deploy folder of the Talend Runtime, &lt;STRONG&gt;&amp;lt;&lt;I&gt;Runtime_Home&lt;/I&gt;&amp;gt;/deploy&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;H4&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;LDAPS&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;Often the LDAP server or Active Directory requires the use of Secure LDAP (LDAPS) to ensure the communication is encrypted. The LDAP login module also supports LDAPS, but in addition requires a keystore containing the X.509 certificate of the LDAP server. The location of the keystore and required passwords are specified in the OSGi Blueprint bundle file, which contains the specification of the LDAP login module.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;security.zip&lt;/STRONG&gt; includes an extended version of the OSGi Blueprint bundle file &lt;STRONG&gt;ldaps/LDAP-login-config.xml&lt;/STRONG&gt; with an additional section for the keystore, and &lt;STRONG&gt;ldaps/org.talend.esb.jaas.ldap.cfg&lt;/STRONG&gt; with additional properties to configure the keystore-related parameters. &lt;STRONG&gt;&lt;FONT color="#339966"&gt;Table 2&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;provides a list of the additional properties that need to be configured.&lt;/P&gt;
&lt;DIV style="text-align: left;"&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Table 2: LDAP login parameters for LDAPS&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="text-align: left;"&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE class="MsoTable15Grid1Light" style="border-collapse: collapse; border: none;" border="1" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-bottom: solid #666666 1.5pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;Name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="470" valign="top" style="width: 352.3pt; border-top: solid #999999 1.0pt; border-left: none; border-bottom: solid #666666 1.5pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;Description&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;truststore.path&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="470" valign="top" style="width: 352.3pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;Absolute path to a trust store containing required Active Directory certificates, for example, &lt;STRONG&gt;/opt/talend/7.2.1/runtime/etc/keystores/ldaptruststore&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;truststore.password&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="470" valign="top" style="width: 352.3pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;Password for the specified trust store.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Authorization&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;The article &lt;A href="https://community.qlik.com/t5/Official-Support-Articles/Talend-Studio-Authorization-for-REST-service-based-Routes-with/ta-p/2150608" target="_blank" rel="noopener"&gt;Authorization for REST service based routes with HTTP Basic Authentication&lt;/A&gt; describes how to enable authorization for a Route, and how to configure the user properties file. If LDAP is used for identity validation, the user information is stored in the roles for authorization. &lt;STRONG&gt;&lt;FONT color="#339966"&gt;Figure 5&lt;/FONT&gt;&lt;/STRONG&gt; shows a container object &lt;STRONG&gt;groups&lt;/STRONG&gt; and three child objects that represent the different groups or roles. Users belonging to a group are referenced through the &lt;STRONG&gt;member&lt;/STRONG&gt; attribute, where the fully qualified distinguished name of the user is specified.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="0EM3p000001zlNr.jpg"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/124007iDFBFB6D03BF76E48/image-size/large?v=v2&amp;amp;px=999" role="button" title="0EM3p000001zlNr.jpg" alt="0EM3p000001zlNr.jpg" /&gt;&lt;/span&gt;&lt;BR /&gt;Figure 5: Sample LDAP for groups/roles&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;security.zip&lt;/STRONG&gt; includes an extended version of the OSGi Blueprint bundle file &lt;STRONG&gt;authorization/LDAP-login-config.xml&lt;/STRONG&gt; with additional configuration parameters to retrieve roles, and &lt;STRONG&gt;authorization/org.talend.esb.jaas.ldap.cfg&lt;/STRONG&gt; with additional properties to configure the parameters. &lt;FONT color="#339966"&gt;&lt;STRONG&gt;Table 3&lt;/STRONG&gt;&lt;/FONT&gt; &amp;nbsp;provides a list of the additional properties that need to be configured.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Table 3: LDAP login parameters for authorization&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV style="text-align: left;"&gt;
&lt;TABLE class="MsoTable15Grid1Light" style="border-collapse: collapse; border: none;" border="1" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-bottom: solid #666666 1.5pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;Name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="503" valign="top" style="width: 377.1pt; border-top: solid #999999 1.0pt; border-left: none; border-bottom: solid #666666 1.5pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;Description&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;role.base.dn&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="503" valign="top" style="width: 377.1pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;The LDAP base DN used to looking for groups/roles, for example, &lt;STRONG&gt;ou=groups,dc=example,dc=com&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;role.filter&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="503" valign="top" style="width: 377.1pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;The LDAP filter used to look for user’s role, for example, &lt;STRONG&gt;(member=%fqdn)&lt;/STRONG&gt; where &lt;STRONG&gt;%fqdn&lt;/STRONG&gt; will be replaced by the user's full qualified distinguished name&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;role.name.attribute&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="503" valign="top" style="width: 377.1pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;The LDAP role attribute containing the group/role string used by Talend Runtime, for example, &lt;STRONG&gt;cn&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;BLOCKQUOTE class="quote"&gt;Currently, the sample Route provided in article &lt;A href="https://community.qlik.com/t5/Official-Support-Articles/Talend-Studio-Authorization-for-REST-service-based-Routes-with/ta-p/2150608" target="_blank" rel="noopener"&gt;Authorization for REST service based routes with HTTP Basic Authentication&lt;/A&gt; and also included in &lt;STRONG&gt;security.zip&lt;/STRONG&gt; does not work for Talend version 7.1, 7.2, and 7.3.&lt;/BLOCKQUOTE&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;HTTPS for Confidentiality&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;In the default configuration of the Talend Runtime, both HTTP and HTTPS are enabled, and the private key used for HTTPS is a well-known standard key provided by Talend. If you use HTTPS, replacing the key is a must.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Install&amp;nbsp;a keystore somewhere on the server with a secret private key and the corresponding certificate.&lt;/LI&gt;
&lt;LI&gt;Open the file &lt;STRONG&gt;&amp;lt;&lt;I&gt;Runtime_Home&lt;/I&gt;&amp;gt;/etc/org.ops4j.pax.web.cfg&lt;/STRONG&gt; and look for the property &lt;STRONG&gt;org.ops4j.pax.web.sslkeystore&lt;/STRONG&gt;. Replace the entry with the path to your keystore.&lt;/LI&gt;
&lt;LI&gt;Update the properties &lt;STRONG&gt;org.ops4j.pax.web.ssl.password&lt;/STRONG&gt; and &lt;STRONG&gt;org.ops4j.pax.web.ssl.keypassword&lt;/STRONG&gt;&amp;nbsp;with the correct passwords.&lt;/LI&gt;
&lt;LI&gt;If you want to disable access to your services using HTTP, add the following line to the file:&lt;/LI&gt;
&lt;/OL&gt;
&lt;PRE class="ckeditor_codeblock" style="margin-left: 40px;"&gt;org.osgi.service.http.enabled=false&lt;/PRE&gt;
&lt;P style="margin-left: 40px;"&gt;The file should now look like:&lt;/P&gt;
&lt;P style="margin-left: 40px;"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="0EM3p000001zlND.jpg"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/122132i6E5E838BAA33F1DE/image-size/large?v=v2&amp;amp;px=999" role="button" title="0EM3p000001zlND.jpg" alt="0EM3p000001zlND.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style="margin-left: 40px;"&gt;&lt;BR /&gt;The &lt;A href="https://help.talend.com/en-US/esb-container-administration-guide/8.0/server-http-advanced-configuration" target="_blank" rel="noopener"&gt;Server HTTP Configuration&lt;/A&gt; section of the &lt;A href="https://help.talend.com/en-US/esb-container-administration-guide/8.0/introduction-to-talend-runtime-container" target="_blank" rel="noopener"&gt;&lt;I&gt;Talend ESB Container Administration Guide&lt;/I&gt;&lt;/A&gt; provides documentation for the HTTP settings in &lt;STRONG&gt;org.ops4j.pax.web.cfg&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
    <pubDate>Fri, 31 Jul 2026 11:51:16 GMT</pubDate>
    <dc:creator>TalendSolutionExpert</dc:creator>
    <dc:date>2026-07-31T11:51:16Z</dc:date>
    <item>
      <title>Securing REST APIs in Talend Runtime</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/Securing-REST-APIs-in-Talend-Runtime/ta-p/2151480</link>
      <description>&lt;P&gt;For almost all services or APIs running in production, the requirement exists to secure access to the service. In the rest of this article, we will look at how to ensure the following security requirements:&lt;/P&gt;
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Authentication – Determine which individual/system is accessing the service. This involves comparing provided identity information with corresponding data stored about the individual in our system. The provided information is something only the individual can provide, for example, a password.&lt;/LI&gt;
&lt;LI&gt;Authorization – Ensure the individual can only access parts of the services she is allowed to use.&lt;/LI&gt;
&lt;LI&gt;Confidentiality – Ensure the information sent is kept secret. No surveillance by third-parties is possible. Usually, this is achieved by encrypting the information.&lt;/LI&gt;
&lt;LI&gt;Integrity – Confirm the information the service receives matches what&amp;nbsp;was sent. No one is able to tamper with the information unnoticed. This may be achieved by signing the message, but encrypting the information also ensures no "man in the middle" modified the information.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This article shows you how to implement these concepts when running data services or Routes in the Talend Runtime. The focus is on the cloud runtime, but also applies to on-premises environments. Microservices are not handled in this article.&lt;/P&gt;
&lt;P&gt;The attached &lt;STRONG&gt;security.zip&lt;/STRONG&gt; file contains a Talend Studio v7.0 project with a sample service and Route to experiment with. It can be imported into any Talend Studio v7.&lt;I&gt;x&lt;/I&gt;. In addition, it contains sample configuration files for the LDAP login module described later.&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Authentication&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;For REST-based services, in a cloud environment, Talend provides support only for basic authentication, where the user name and password are sent in an HTTP header alongside the request in clear text. Therefore it is mandatory to use HTTPS instead of HTTP as the protocol to ensure that the password is encrypted. Contrary to on-premises, for cloud environments, SAML token and OAuth are not supported. If more sophisticated solutions are required, Talend recommends using an API Gateway to secure and control access to the services and APIs. Talend Help provides information on how to &lt;A href="https://help.qlik.com/talend/en-US/api-designer-user-guide/Cloud/working-with-api-gateways" target="_blank" rel="noopener"&gt;integrate with API Gateways&lt;/A&gt; and examples for &lt;A href="https://help.talend.com/en-US/api-designer-examples/Cloud/api-designer-examples" target="_blank" rel="noopener"&gt;deployment on AWS API Gateway and Azure API Management&lt;/A&gt;.&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Enabling authentication for services and Routes&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;Activating basic authentication for a service or a Route is done in Talend Studio in the corresponding REST component (&lt;STRONG&gt;tRESTRequest&lt;/STRONG&gt; in a data service, or &lt;STRONG&gt;cREST&lt;/STRONG&gt; in a Route). A data service where authentication is enabled is shown below:&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="0EM3p000001zlqF.jpg"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/122937i28668FF2F97F67D8/image-size/large?v=v2&amp;amp;px=999" role="button" title="0EM3p000001zlqF.jpg" alt="0EM3p000001zlqF.jpg" /&gt;&lt;/span&gt;&lt;BR /&gt;Figure 1: Authentication enabled data service&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Validate identity&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;Enforcing authentication information when sending the request to the service is only half the story. The provided identity must be validated and compared to the set of accepted identities. Talend Runtime provides an authentication framework based on &lt;A href="https://docs.oracle.com/javase/8/docs/technotes/guides/security/jaas/JAASRefGuide.html" target="_blank" rel="noopener"&gt;Java Authentication and Authorization Service (JAAS)&lt;/A&gt;, which allows you to plug in different modules targeting a specific backend to validate identity information. Out of the box, Talend Runtime is configured to support a file-based backend, but among others LDAP can also be used to validate. For a complete list of supported backends, see the &lt;A href="https://karaf.apache.org/manual/latest/#_security_framework" target="_blank" rel="noopener"&gt;Apache Karaf documentation&lt;/A&gt;.&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Properties file module&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;The &lt;STRONG&gt;PropertiesLoginModule&lt;/STRONG&gt; login module is the one configured by default in the Talend Runtime. It is based on the &lt;STRONG&gt;${&lt;I&gt;Runtime_Home&lt;/I&gt;}/etc/users.properties&lt;/STRONG&gt; file, which uses the &lt;A href="http://download.oracle.com/javase/6/docs/api/java/util/Properties.html#load(java.io.Reader)" target="_blank" rel="noopener"&gt;properties file format&lt;/A&gt;. Each property represents an identity. The format of the property is as follows:&lt;/P&gt;
&lt;PRE class="ckeditor_codeblock"&gt;user=password[,role][,role]...&lt;/PRE&gt;
&lt;P&gt;Several roles may also be grouped together and the group can be referenced in the user entry:&lt;/P&gt;
&lt;PRE class="ckeditor_codeblock"&gt;_g_\:group=role[,role]...

user=password[,role][,_g_\:group]...&lt;/PRE&gt;
&lt;P&gt;The figure below shows the &lt;STRONG&gt;users.properties&lt;/STRONG&gt; file, which is part of the Talend Runtime installation. In addition to the standard users &lt;STRONG&gt;tadmin&lt;/STRONG&gt;, &lt;STRONG&gt;tesb&lt;/STRONG&gt;, and &lt;STRONG&gt;karaf&lt;/STRONG&gt;, two users &lt;STRONG&gt;alice&lt;/STRONG&gt; and &lt;STRONG&gt;bob&lt;/STRONG&gt; were added.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="0EM3p000001zkwR.jpg"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/124574iA78F09C88BEC8ACB/image-size/large?v=v2&amp;amp;px=999" role="button" title="0EM3p000001zkwR.jpg" alt="0EM3p000001zkwR.jpg" /&gt;&lt;/span&gt;&lt;BR /&gt;Figure 2: Sample users file&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Password Protection&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;Passwords in the properties file are in clear text by default, but can be hashed to ensure protection. To automatically hash passwords after restarting the runtime, open and edit the &lt;STRONG&gt;&amp;lt;&lt;I&gt;Runtime_Home&lt;/I&gt;&amp;gt;/etc/org.apache.karaf.jaas.cfg&lt;/STRONG&gt; file.&lt;/P&gt;
&lt;P&gt;The &lt;STRONG&gt;encryption.enabled&lt;/STRONG&gt; property must be set to &lt;STRONG&gt;true&lt;/STRONG&gt;. Furthermore, the encryption algorithm in the property encryption.algorithm should be set to something like &lt;STRONG&gt;SHA-256&lt;/STRONG&gt;. The configuration file should look like this:&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="0EM3p000001zkx5.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/125176i0D74C3614214647B/image-size/large?v=v2&amp;amp;px=999" role="button" title="0EM3p000001zkx5.png" alt="0EM3p000001zkx5.png" /&gt;&lt;/span&gt;&lt;BR /&gt;Figure 3: org.apache.karaf.jaas.cfg&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;LDAP module&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;P&gt;The properties file solution is fine to quickly get some identity information defined, for example, when testing, but does not scale well. Furthermore, in many cases, identity information is stored in some LDAP server or Active Directory. Talend runtime provides an LDAP module to validate identity information using the information stored in LDAP or Active Directory.&lt;/P&gt;
&lt;P&gt;The &lt;STRONG&gt;security.zip&lt;/STRONG&gt; file includes the OSGi Blueprint bundle file &lt;STRONG&gt;authentication/LDAP-login-config.xml&lt;/STRONG&gt;, which activates the LDAP login module when deployed into the runtime, and the &lt;STRONG&gt;authentication/org.talend.esb.jaas.ldap.cfg&lt;/STRONG&gt; file to configure the login module and adapt it to the specific environment.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Table 1: LDAP login parameters for authentication&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-bottom: solid #666666 1.5pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;Name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="522" valign="top" style="width: 391.25pt; border-top: solid #999999 1.0pt; border-left: none; border-bottom: solid #666666 1.5pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;Description&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;connection.url&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="522" valign="top" style="width: 391.25pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;The LDAP URL, for example, &lt;STRONG&gt;ldap://ldap-host.example.com:389&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;connection.username&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="522" valign="top" style="width: 391.25pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;Username to connect to LDAP, for example, &lt;STRONG&gt;cn=admin,dc=example,dc=com&lt;/STRONG&gt;. The user requires read access to the part of the Directory Information Tree (DIT) where the user information is stored.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;connection.password&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="522" valign="top" style="width: 391.25pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;User password to connect to LDAP.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;user.base.dn&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="522" valign="top" style="width: 391.25pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;The LDAP base DN used to look up users, for example, &lt;STRONG&gt;ou=users,dc=example,dc=com&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;user.filter&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="522" valign="top" style="width: 391.25pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;The LDAP filter used to locate the user applied to the subtree specified in &lt;STRONG&gt;user.base.dn&lt;/STRONG&gt;, for example, &lt;STRONG&gt;(uid=%u)&lt;/STRONG&gt; where &lt;STRONG&gt;%u&lt;/STRONG&gt; will be replaced by the username.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;user.search.subtree&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="522" valign="top" style="width: 391.25pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;If “true”, the user lookup will be recursive (sub). If “false”, the user lookup will be performed only at the first level (one).&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;authentication&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="522" valign="top" style="width: 391.25pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;Specifies the authentication method used when binding to the LDAP server. The default is &lt;STRONG&gt;simple&lt;/STRONG&gt;, where a username and password is required. To enable &lt;STRONG&gt;anonymous&lt;/STRONG&gt;, set to &lt;STRONG&gt;none &lt;/STRONG&gt;and leave username and password blank.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;TFOOT&gt;&lt;/TFOOT&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;P&gt;Edit the configuration file and adapt the settings to your environment.&lt;STRONG&gt;&lt;FONT color="#339966"&gt; Table 1&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;provides a list of the properties to be configured and their meaning. The configuration file also contains the description for each property. The sample values in &lt;STRONG&gt;&lt;FONT color="#339966"&gt;Table 1&lt;/FONT&gt;&lt;/STRONG&gt; and in the configuration file correspond to the Directory Information Tree (DIT) structure shown in &lt;FONT color="#339966"&gt;&lt;STRONG&gt;Figure 4&lt;/STRONG&gt;&lt;/FONT&gt;.&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="0EM3p000001zkwN.jpg"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/124850iE5E95CC9488DAC65/image-size/large?v=v2&amp;amp;px=999" role="button" title="0EM3p000001zkwN.jpg" alt="0EM3p000001zkwN.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;When finished with editing, copy the configuration file to the directory &lt;STRONG&gt;&amp;lt;&lt;I&gt;Runtime_Home&lt;/I&gt;&amp;gt;/etc&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Deploy the &lt;STRONG&gt;authentication/LDAP-login-config.xml&lt;/STRONG&gt; file into the Talend Runtime. The easiest way to deploy it is to copy the file to the deploy folder of the Talend Runtime, &lt;STRONG&gt;&amp;lt;&lt;I&gt;Runtime_Home&lt;/I&gt;&amp;gt;/deploy&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;H4&gt;&lt;STRONG&gt;&lt;FONT color="#339966"&gt;LDAPS&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;Often the LDAP server or Active Directory requires the use of Secure LDAP (LDAPS) to ensure the communication is encrypted. The LDAP login module also supports LDAPS, but in addition requires a keystore containing the X.509 certificate of the LDAP server. The location of the keystore and required passwords are specified in the OSGi Blueprint bundle file, which contains the specification of the LDAP login module.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;security.zip&lt;/STRONG&gt; includes an extended version of the OSGi Blueprint bundle file &lt;STRONG&gt;ldaps/LDAP-login-config.xml&lt;/STRONG&gt; with an additional section for the keystore, and &lt;STRONG&gt;ldaps/org.talend.esb.jaas.ldap.cfg&lt;/STRONG&gt; with additional properties to configure the keystore-related parameters. &lt;STRONG&gt;&lt;FONT color="#339966"&gt;Table 2&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;provides a list of the additional properties that need to be configured.&lt;/P&gt;
&lt;DIV style="text-align: left;"&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Table 2: LDAP login parameters for LDAPS&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="text-align: left;"&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE class="MsoTable15Grid1Light" style="border-collapse: collapse; border: none;" border="1" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-bottom: solid #666666 1.5pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;Name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="470" valign="top" style="width: 352.3pt; border-top: solid #999999 1.0pt; border-left: none; border-bottom: solid #666666 1.5pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;Description&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;truststore.path&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="470" valign="top" style="width: 352.3pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;Absolute path to a trust store containing required Active Directory certificates, for example, &lt;STRONG&gt;/opt/talend/7.2.1/runtime/etc/keystores/ldaptruststore&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;truststore.password&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="470" valign="top" style="width: 352.3pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;Password for the specified trust store.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Authorization&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;The article &lt;A href="https://community.qlik.com/t5/Official-Support-Articles/Talend-Studio-Authorization-for-REST-service-based-Routes-with/ta-p/2150608" target="_blank" rel="noopener"&gt;Authorization for REST service based routes with HTTP Basic Authentication&lt;/A&gt; describes how to enable authorization for a Route, and how to configure the user properties file. If LDAP is used for identity validation, the user information is stored in the roles for authorization. &lt;STRONG&gt;&lt;FONT color="#339966"&gt;Figure 5&lt;/FONT&gt;&lt;/STRONG&gt; shows a container object &lt;STRONG&gt;groups&lt;/STRONG&gt; and three child objects that represent the different groups or roles. Users belonging to a group are referenced through the &lt;STRONG&gt;member&lt;/STRONG&gt; attribute, where the fully qualified distinguished name of the user is specified.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="0EM3p000001zlNr.jpg"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/124007iDFBFB6D03BF76E48/image-size/large?v=v2&amp;amp;px=999" role="button" title="0EM3p000001zlNr.jpg" alt="0EM3p000001zlNr.jpg" /&gt;&lt;/span&gt;&lt;BR /&gt;Figure 5: Sample LDAP for groups/roles&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;security.zip&lt;/STRONG&gt; includes an extended version of the OSGi Blueprint bundle file &lt;STRONG&gt;authorization/LDAP-login-config.xml&lt;/STRONG&gt; with additional configuration parameters to retrieve roles, and &lt;STRONG&gt;authorization/org.talend.esb.jaas.ldap.cfg&lt;/STRONG&gt; with additional properties to configure the parameters. &lt;FONT color="#339966"&gt;&lt;STRONG&gt;Table 3&lt;/STRONG&gt;&lt;/FONT&gt; &amp;nbsp;provides a list of the additional properties that need to be configured.&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;Table 3: LDAP login parameters for authorization&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV style="text-align: left;"&gt;
&lt;TABLE class="MsoTable15Grid1Light" style="border-collapse: collapse; border: none;" border="1" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-bottom: solid #666666 1.5pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;Name&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="503" valign="top" style="width: 377.1pt; border-top: solid #999999 1.0pt; border-left: none; border-bottom: solid #666666 1.5pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;Description&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;role.base.dn&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="503" valign="top" style="width: 377.1pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;The LDAP base DN used to looking for groups/roles, for example, &lt;STRONG&gt;ou=groups,dc=example,dc=com&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;role.filter&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="503" valign="top" style="width: 377.1pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;The LDAP filter used to look for user’s role, for example, &lt;STRONG&gt;(member=%fqdn)&lt;/STRONG&gt; where &lt;STRONG&gt;%fqdn&lt;/STRONG&gt; will be replaced by the user's full qualified distinguished name&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" width="168" valign="top" style="width: 125.9pt; border: solid #999999 1.0pt; border-top: none; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;&lt;STRONG&gt;role.name.attribute&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" width="503" valign="top" style="width: 377.1pt; border-top: none; border-left: none; border-bottom: solid #999999 1.0pt; border-right: solid #999999 1.0pt; padding: 0in 5.4pt 0in 5.4pt;"&gt;
&lt;P&gt;The LDAP role attribute containing the group/role string used by Talend Runtime, for example, &lt;STRONG&gt;cn&lt;/STRONG&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;BLOCKQUOTE class="quote"&gt;Currently, the sample Route provided in article &lt;A href="https://community.qlik.com/t5/Official-Support-Articles/Talend-Studio-Authorization-for-REST-service-based-Routes-with/ta-p/2150608" target="_blank" rel="noopener"&gt;Authorization for REST service based routes with HTTP Basic Authentication&lt;/A&gt; and also included in &lt;STRONG&gt;security.zip&lt;/STRONG&gt; does not work for Talend version 7.1, 7.2, and 7.3.&lt;/BLOCKQUOTE&gt;
&lt;H3&gt;&lt;FONT color="#339966"&gt;&lt;STRONG&gt;HTTPS for Confidentiality&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;
&lt;P&gt;In the default configuration of the Talend Runtime, both HTTP and HTTPS are enabled, and the private key used for HTTPS is a well-known standard key provided by Talend. If you use HTTPS, replacing the key is a must.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Install&amp;nbsp;a keystore somewhere on the server with a secret private key and the corresponding certificate.&lt;/LI&gt;
&lt;LI&gt;Open the file &lt;STRONG&gt;&amp;lt;&lt;I&gt;Runtime_Home&lt;/I&gt;&amp;gt;/etc/org.ops4j.pax.web.cfg&lt;/STRONG&gt; and look for the property &lt;STRONG&gt;org.ops4j.pax.web.sslkeystore&lt;/STRONG&gt;. Replace the entry with the path to your keystore.&lt;/LI&gt;
&lt;LI&gt;Update the properties &lt;STRONG&gt;org.ops4j.pax.web.ssl.password&lt;/STRONG&gt; and &lt;STRONG&gt;org.ops4j.pax.web.ssl.keypassword&lt;/STRONG&gt;&amp;nbsp;with the correct passwords.&lt;/LI&gt;
&lt;LI&gt;If you want to disable access to your services using HTTP, add the following line to the file:&lt;/LI&gt;
&lt;/OL&gt;
&lt;PRE class="ckeditor_codeblock" style="margin-left: 40px;"&gt;org.osgi.service.http.enabled=false&lt;/PRE&gt;
&lt;P style="margin-left: 40px;"&gt;The file should now look like:&lt;/P&gt;
&lt;P style="margin-left: 40px;"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="0EM3p000001zlND.jpg"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/122132i6E5E838BAA33F1DE/image-size/large?v=v2&amp;amp;px=999" role="button" title="0EM3p000001zlND.jpg" alt="0EM3p000001zlND.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style="margin-left: 40px;"&gt;&lt;BR /&gt;The &lt;A href="https://help.talend.com/en-US/esb-container-administration-guide/8.0/server-http-advanced-configuration" target="_blank" rel="noopener"&gt;Server HTTP Configuration&lt;/A&gt; section of the &lt;A href="https://help.talend.com/en-US/esb-container-administration-guide/8.0/introduction-to-talend-runtime-container" target="_blank" rel="noopener"&gt;&lt;I&gt;Talend ESB Container Administration Guide&lt;/I&gt;&lt;/A&gt; provides documentation for the HTTP settings in &lt;STRONG&gt;org.ops4j.pax.web.cfg&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 31 Jul 2026 11:51:16 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/Securing-REST-APIs-in-Talend-Runtime/ta-p/2151480</guid>
      <dc:creator>TalendSolutionExpert</dc:creator>
      <dc:date>2026-07-31T11:51:16Z</dc:date>
    </item>
    <item>
      <title>Re: Securing REST APIs in Talend Runtime</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/Securing-REST-APIs-in-Talend-Runtime/tac-p/2476693#M14422</link>
      <description>&lt;PRE id="tw-target-text" class="tw-data-text tw-text-large tw-ta" dir="ltr" data-placeholder="Traduction" aria-label="Texte traduit" data-ved="2ahUKEwja0dL1vvuHAxWvVqQEHV8RJlEQ3ewLegQIBxAU"&gt;&lt;SPAN class="Y2IQFc"&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;Thank you for this nice article but I cannot find the security.zip file attached to the article in order to test your example on a service or a Route. Could you add it as an attachment please&lt;BR /&gt;&lt;BR /&gt;Best Regards&lt;/SPAN&gt;&lt;/PRE&gt;</description>
      <pubDate>Sun, 18 Aug 2024 16:59:23 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/Securing-REST-APIs-in-Talend-Runtime/tac-p/2476693#M14422</guid>
      <dc:creator>Dave_Simo</dc:creator>
      <dc:date>2024-08-18T16:59:23Z</dc:date>
    </item>
    <item>
      <title>Re: Securing REST APIs in Talend Runtime</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/Securing-REST-APIs-in-Talend-Runtime/tac-p/2476712#M14426</link>
      <description>&lt;P&gt;Hello &lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/274551"&gt;@Dave_Simo&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for letting us know it. The attachment of &lt;SPAN class="Y2IQFc"&gt;security.zip file is available now and feel free to let us know if it works for you.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="Y2IQFc"&gt;Best regards&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="Y2IQFc"&gt;Sabrina&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 19 Aug 2024 02:41:47 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/Securing-REST-APIs-in-Talend-Runtime/tac-p/2476712#M14426</guid>
      <dc:creator>Xiaodi_Shi</dc:creator>
      <dc:date>2024-08-19T02:41:47Z</dc:date>
    </item>
    <item>
      <title>Re: Securing REST APIs in Talend Runtime</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/Securing-REST-APIs-in-Talend-Runtime/tac-p/2476787#M14435</link>
      <description>&lt;P&gt;Hello ,&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Thank you very much for your responsiveness, I managed to import it and do my tests.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Best Regards&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 19 Aug 2024 09:51:02 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/Securing-REST-APIs-in-Talend-Runtime/tac-p/2476787#M14435</guid>
      <dc:creator>Dave_Simo</dc:creator>
      <dc:date>2024-08-19T09:51:02Z</dc:date>
    </item>
    <item>
      <title>Re: Securing REST APIs in Talend Runtime</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/Securing-REST-APIs-in-Talend-Runtime/tac-p/2506320#M15392</link>
      <description>&lt;P&gt;Hello, thank you for this article, it is very interesting.&lt;/P&gt;
&lt;P&gt;I would like to know if this configuration is compatible with Talend Cloud API Services in version 8.0.1 ?&lt;/P&gt;
&lt;P&gt;Regards&lt;/P&gt;</description>
      <pubDate>Tue, 18 Feb 2025 07:57:05 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/Securing-REST-APIs-in-Talend-Runtime/tac-p/2506320#M15392</guid>
      <dc:creator>DoDo69</dc:creator>
      <dc:date>2025-02-18T07:57:05Z</dc:date>
    </item>
    <item>
      <title>Re: Securing REST APIs in Talend Runtime</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/Securing-REST-APIs-in-Talend-Runtime/tac-p/2506500#M15403</link>
      <description>&lt;P&gt;Hello &lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/284098"&gt;@DoDo69&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As the attached &lt;STRONG&gt;security.zip&lt;/STRONG&gt; file contains a Talend Studio v7.0 project and Qlik Talend just forbid import of items from an upper version. It can be imported into Talend Studio V 8.0.1 as well. Feel free to let us know if you get any importing and setting issues for that.&lt;/P&gt;
&lt;P&gt;Best regards&lt;/P&gt;
&lt;P&gt;Sabrina&lt;/P&gt;</description>
      <pubDate>Wed, 19 Feb 2025 03:03:57 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/Securing-REST-APIs-in-Talend-Runtime/tac-p/2506500#M15403</guid>
      <dc:creator>Xiaodi_Shi</dc:creator>
      <dc:date>2025-02-19T03:03:57Z</dc:date>
    </item>
  </channel>
</rss>

