<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

  <atom:link href="https://community.pyramidanalytics.com/rss/category/security_web" rel="self" type="application/rss+xml"/>
  <title>Pyramid Analytics User Community&#32;Security</title>
  <link>https://community.pyramidanalytics.com/category/security_web/</link>
  <description></description>
  <language>en-us</language>
<ttl>240</ttl>
  <item>
          <title>How to Use Nginx to Act as a Load Balancer</title>
          <link>https://community.pyramidanalytics.com/t/p8ypfr9/how-to-use-nginx-to-act-as-a-load-balancer</link>
          <description><![CDATA[<p>The following article explains how to install Nginx as a Load balancer, allowing access to Pyramid&nbsp;using&nbsp;HTTPS and redirect request between multiple web servers.&nbsp;</p>
<p style="text-align:start"><u><strong>Prerequisites</strong></u></p>
<ul>
 <li>You must already have your SSL certificate on your server (chain.pem and privkey.pem / .crt and .rsa files). You can buy an SSL certificate from a reputable&nbsp;source for your Pyramid site or create a self-signed one (not recommended).<br> If you have only pfx file, please refer to the following article on <a href="/t/y4ypf23/convert-pfx-certificate-to-private-key-and-chain-files-for-nginx-https" rel="nofollow noopener noreferrer">how to extract the private key and chains from the pfx file.</a></li>
 <li>Port 443 must be open inwards on both the server (that you Nginx is installed on), firewall and any external firewalls.</li>
</ul>
<p style="text-align:start">1) Install Nginx as follows (we assume the install is being done on Ubuntu but any Linux version that&nbsp;<a href="https://nginx.org/" rel="nofollow noopener noreferrer" target="_blank">Nginx</a>&nbsp;supports can be used.)</p>
<pre class="language-none"><code class="language-none">sudo&nbsp;apt-get&nbsp;update
sudo&nbsp;apt-get&nbsp;install&nbsp;nginx</code></pre>
<p style="text-align:start">2)&nbsp;Create the folder called "certs" and then copy across your two certificate files to this folder.</p>
<pre class="language-none"><code class="language-none">cd&nbsp;/etc/nginx/
sudo&nbsp;mkdir&nbsp;certs</code></pre>
<p style="text-align:start">3) Configure Nginx by running the following commands:</p>
<pre class="language-none"><code class="language-none">sudo&nbsp;unlink&nbsp;/etc/nginx/sites-enabled/default
cd&nbsp;/etc/nginx/sites-available/
sudo&nbsp;nano&nbsp;reverse-proxy.conf</code></pre>
<p style="text-align:start">The last command will open a text file, and the below should be pasted into it.<br> (Edit the names of the "chain.pem" and "privkey.pem" to the names of your certificate files.)<br> If the Pyramid web server is not running on the same server, then change localhost to the name of the server on which the Pyramid web service is running.<br> Update the "yourServername.mycompany.com" to the DNS site name that will be used to browse Pyramid</p>
<pre class="language-none"><code class="language-none">upstream&nbsp;backend{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server&nbsp;&lt;pyramid_server_1&gt;:8181;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server&nbsp;&lt;pyramid_server_2&gt;:8181;
&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;#&nbsp;This&nbsp;server&nbsp;accepts&nbsp;all&nbsp;traffic&nbsp;to&nbsp;port&nbsp;80&nbsp;and&nbsp;passes&nbsp;it&nbsp;to&nbsp;the&nbsp;upstream.
&nbsp;&nbsp;&nbsp;#&nbsp;Notice&nbsp;that&nbsp;the&nbsp;upstream&nbsp;name&nbsp;and&nbsp;the&nbsp;proxy_pass&nbsp;need&nbsp;to&nbsp;match.

&nbsp;&nbsp;&nbsp;server&nbsp;{
&nbsp;&nbsp;listen&nbsp;443&nbsp;ssl;
&nbsp;&nbsp;&nbsp;&nbsp;ssl_certificate&nbsp;/home/master/fullchain.crt;
&nbsp;&nbsp;&nbsp;&nbsp;ssl_certificate_key&nbsp;/home/master/privkey.key;
&nbsp;&nbsp;&nbsp;&nbsp;server_name&nbsp;yourServername.mycompany.com;
&nbsp;&nbsp;&nbsp;&nbsp;access_log&nbsp;/var/log/nginx/nginx.vhost.access.log;
&nbsp;&nbsp;&nbsp;&nbsp;error_log&nbsp;/var/log/nginx/nginx.vhost.error.log;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;location&nbsp;/&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_pass&nbsp;https://backend;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;}</code></pre>
<p style="text-align:start">4) Enable the site&nbsp;</p>
<pre class="language-none"><code class="language-none">sudo&nbsp;ln&nbsp;-s&nbsp;/etc/nginx/sites-available/reverse-proxy.conf&nbsp;/etc/nginx/sites-enabled/reverse-proxy.conf</code></pre>
<p style="text-align:start">5) Test to make sure there are no errors and restart Nginx&nbsp;</p>
<pre class="language-none"><code class="language-none">sudo&nbsp;nginx&nbsp;-t
sudo&nbsp;service&nbsp;nginx&nbsp;restart</code></pre>
<p style="text-align:start">6) Test to see if you can browse to your site using SSL and if relevant that any&nbsp;<a href="https://help.pyramidanalytics.com/Content/Root/AdminClient/data%20sources/Pulse%20Nodes.htm?Highlight=pulse" rel="nofollow noopener noreferrer" target="_blank">Pyramid Pulse servers</a>&nbsp;can connect to your Pyramid instance.&nbsp;</p>]]></description>
          <pubDate>Tue, 06 Jan 2026 14:34:00 +0000</pubDate>
          <guid>https://community.pyramidanalytics.com/t/p8ypfr9/how-to-use-nginx-to-act-as-a-load-balancer</guid>
          <dc:creator>Omri Zach</dc:creator>
        </item>

      <item>
          <title>Extract Private Key and Chain Files from PFX Certificate for Nginx HTTPS</title>
          <link>https://community.pyramidanalytics.com/t/y4ypf23/extract-private-key-and-chain-files-from-pfx-certificate-for-nginx-https</link>
          <description><![CDATA[<p>When using Nginx as a load balancer or a reverse proxy to serve on HTTPS protocol, Nginx expects the SSL certificate to be configured as a private key and chain files.</p>
<p>Please refer to the following commands to extract the key and chain from the certificate:</p>
<p>Create an encrypted key file:</p>
<pre class="language-none"><code class="language-none">openssl&nbsp;pkcs12&nbsp;-in&nbsp;certificate.pfx&nbsp;-nocerts&nbsp;-out&nbsp;privkey.key</code></pre>
<p>Extract the server certificate:<br> &nbsp;</p>
<pre class="language-none"><code class="language-none">openssl&nbsp;pkcs12&nbsp;-in&nbsp;certificate.pfx&nbsp;-clcerts&nbsp;-nokeys&nbsp;-out&nbsp;cert.crt</code></pre>
<p>Extract the CA chain:<br> &nbsp;</p>
<pre class="language-none"><code class="language-none">openssl&nbsp;pkcs12&nbsp;-in&nbsp;certificate.pfx&nbsp;-cacerts&nbsp;-nokeys&nbsp;-out&nbsp;chain.crt</code></pre>
<p>Create a full chain file:<br> &nbsp;</p>
<pre class="language-none"><code class="language-none">cat&nbsp;cert.crt&nbsp;chain.crt&nbsp;&gt;&nbsp;fullchain.crt</code></pre>]]></description>
          <pubDate>Tue, 06 Jan 2026 14:13:32 +0000</pubDate>
          <guid>https://community.pyramidanalytics.com/t/y4ypf23/extract-private-key-and-chain-files-from-pfx-certificate-for-nginx-https</guid>
          <dc:creator>Omri Zach</dc:creator>
        </item>

      <item>
          <title>How to configure Nginx to act as a reverse proxy to support SSL</title>
          <link>https://community.pyramidanalytics.com/t/60ylh92/how-to-configure-nginx-to-act-as-a-reverse-proxy-to-support-ssl</link>
          <description><![CDATA[<p>The following article explains how to install Nginx to act as a proxy allowing access to Pyramid using HTTPS. The configuration setup described will also support WebSocket needed to allow <a href="https://help.pyramidanalytics.com/Content/Root/Guides/installation/Pulse/Pulse%20Installer%20Overview.htm?Highlight=pulse" rel="nofollow noopener noreferrer" target="_blank">Pyramid Pulse</a> connections if required.</p>
<p><u><strong>Prerequisites</strong></u></p>
<ul>
 <li>You must already have your SSL certificate on your server (chain.pem and privkey.pem / .crt and .rsa files). You can buy an SSL certificate from a reputable&nbsp;source for your Pyramid site or create a self-signed one (not recommended).<br> If you have only pfx file, please refer to the following article on <a href="/t/y4ypf23/convert-pfx-certificate-to-private-key-and-chain-files-for-nginx-https" rel="nofollow noopener noreferrer">how to extract the private key and chains from the pfx file.</a></li>
 <li>Port 443 must be open inwards on both the server (that you Nginx is installed on), firewall and any external firewalls.</li>
 <li>You have purchased a public DNS record which is pointing to your Public IP address which in turn is pointing to the server that will have Nginx install on.</li>
</ul>
<p>1) Install Nginx as follows (we assume the install is being done on Ubuntu but any Linux version that <a href="https://nginx.org/" rel="nofollow noopener noreferrer" target="_blank">Nginx</a>&nbsp;supports can be used.)</p>
<pre class="language-none"><code class="language-none">sudo&nbsp;apt-get&nbsp;update
sudo&nbsp;apt-get&nbsp;install&nbsp;nginx</code></pre>
<p>2)&nbsp;Create the folder called "certs" and then copy across your two certificate files to this folder.</p>
<pre class="language-none"><code class="language-none">cd&nbsp;/etc/nginx/
sudo&nbsp;mkdir&nbsp;certs</code></pre>
<p>3) Configure Nginx by running the following commands:</p>
<pre class="language-none"><code class="language-none">sudo&nbsp;unlink&nbsp;/etc/nginx/sites-enabled/default
cd&nbsp;/etc/nginx/sites-available/
sudo&nbsp;nano&nbsp;reverse-proxy.conf</code></pre>
<p>The last command will open a text file, and the below should be pasted into it.<br> (Edit the names of the "chain.pem" and "privkey.pem" to the names of your certificate files.)<br> If the Pyramid web server is not running on the same server, then change localhost to the name of the server on which the Pyramid web service is running.<br> Update the "yourServername.mycompany.com" to the DNS site name that will be used to browse Pyramid</p>
<pre class="language-none"><code class="language-none">server&nbsp;{
&nbsp;&nbsp;listen&nbsp;443&nbsp;ssl;
&nbsp;&nbsp;&nbsp;&nbsp;ssl_certificate&nbsp;/etc/nginx/certs/chain.pem;
&nbsp;&nbsp;&nbsp;&nbsp;ssl_certificate_key&nbsp;/etc/nginx/certs/privkey.pem;
&nbsp;&nbsp;&nbsp;&nbsp;server_name&nbsp;yourServername.mycompany.com;
&nbsp;&nbsp;&nbsp;&nbsp;access_log&nbsp;/var/log/nginx/nginx.vhost.access.log;
&nbsp;&nbsp;&nbsp;&nbsp;error_log&nbsp;/var/log/nginx/nginx.vhost.error.log;
&nbsp;&nbsp;&nbsp;&nbsp;client_max_body_size&nbsp;300M;
&nbsp;&nbsp;&nbsp;&nbsp;location&nbsp;/&nbsp;{
proxy_pass&nbsp;http://localhost:8181;
&nbsp;&nbsp;&nbsp;&nbsp;}
location&nbsp;/events&nbsp;{
proxy_pass&nbsp;http://localhost:8181/events;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_http_version&nbsp;1.1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header&nbsp;Upgrade&nbsp;$http_upgrade;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header&nbsp;Connection&nbsp;"upgrade";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
}</code></pre>
<p>4) Enable the site&nbsp;</p>
<pre class="language-none"><code class="language-none">sudo&nbsp;ln&nbsp;-s&nbsp;/etc/nginx/sites-available/reverse-proxy.conf&nbsp;/etc/nginx/sites-enabled/reverse-proxy.conf</code></pre>
<p>5) Test to make sure there are no errors and restart Nginx&nbsp;</p>
<pre class="language-none"><code class="language-none">service&nbsp;nginx&nbsp;configtest
sudo&nbsp;service&nbsp;nginx&nbsp;restart</code></pre>
<p>6) Test to see if you can browse to your site using SSL and if relevant that any <a href="https://help.pyramidanalytics.com/Content/Root/AdminClient/data%20sources/Pulse%20Nodes.htm?Highlight=pulse" rel="nofollow noopener noreferrer" target="_blank">Pyramid Pulse servers</a> can connect to your Pyramid instance.&nbsp;</p>]]></description>
          <pubDate>Tue, 24 Dec 2024 09:34:00 +0000</pubDate>
          <guid>https://community.pyramidanalytics.com/t/60ylh92/how-to-configure-nginx-to-act-as-a-reverse-proxy-to-support-ssl</guid>
          <dc:creator>Daniel</dc:creator>
        </item>

      <item>
          <title>How to get Console logs and HAR logs from the Chrome browser DevTools</title>
          <link>https://community.pyramidanalytics.com/t/m1hxa41/how-to-get-console-logs-and-har-logs-from-the-chrome-browser-devtools</link>
          <description><![CDATA[<p>To analyze logs in case of an issue with the application (ie. Black Screen), in addition to the logs that the application writes (from the Admin console), we will need to review HAR files and DevTools logs from the chrome browser.</p>
<p>These logs can provide information about the client-side script that runs the application.</p>
<p>First - open the DevTools window of Chrome by pressing F12 or:</p>
<p><img alt="" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/3668e499-42e5-4d86-9483-e5e6cbe4519f/547.png" style="" width="498"></p>
<p>To get the console logs:<br> If it’s a client-side error then it's important to see the console errors as shown.<br> Click on the Console and you will see the errors. Click on "Save as" for each row and save it + send a screenshot showing the console.</p>
<p>&nbsp;<br> <img alt="" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/bc3f3ff0-2f10-4eff-b199-d947a53dc5cd/547.png" style="" width="632"></p>
<p>To generate the HAR file:</p>
<p>1. Open the <strong>Network</strong> tab in the browser Developer Tools.</p>
<p>2. Click the <strong>Clear</strong> button</p>
<p>3. Enable the <strong>Preserve log</strong> and <strong>Disable cache</strong> checkboxes</p>
<p>4. Reproduce the issue. Once&nbsp;the issue occurs, click the <strong>Download / Export HAR</strong> icon (down arrow) to save the HAR file.</p>
<p style="text-align:left"><img alt="" class="fb-img" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/80e5cc3a-051d-4e00-a7ad-a177a4a4963c/h/547.png" style="" width="761"></p>]]></description>
          <pubDate>Mon, 20 Jul 2020 11:02:53 +0000</pubDate>
          <guid>https://community.pyramidanalytics.com/t/m1hxa41/how-to-get-console-logs-and-har-logs-from-the-chrome-browser-devtools</guid>
          <dc:creator>Omri Zach</dc:creator>
        </item>

      <item>
          <title>No proxy account was set for user</title>
          <link>https://community.pyramidanalytics.com/t/y4hxapa/no-proxy-account-was-set-for-user</link>
          <description><![CDATA[<p>To configure your browser for <strong>Windows Integrated Authentication</strong> (automatic login using your Windows credentials), follow the instructions below.</p>
<p>These instructions apply to <strong>Microsoft Edge, Google Chrome, and Mozilla Firefox</strong> on Windows.</p>
<h3>1. Open Windows Internet Options (Microsoft Edge and Google Chrome)</h3>
<p>Microsoft Edge and Google Chrome use Windows security settings for Integrated Windows Authentication. You do not need to open Internet Explorer to configure these settings.</p>
<ol>
 <li>Press <strong>Windows + R</strong> to open the Run dialog.</li>
 <li>Enter the following command and press <strong>Enter</strong>:</li>
</ol>
<pre class="language-text"><code class="language-text">inetcpl.cpl</code></pre>
<p>This opens the <strong>Internet Properties</strong> window.</p>
<h3>2. Add the Pyramid website to the Local intranet or Trusted sites zone</h3>
<ol>
 <li>In Internet Properties, select the <strong>Security</strong> tab.</li>
 <li>Select <strong>Local intranet</strong> (recommended for internal Pyramid websites).</li>
 <li>Click <strong>Sites</strong>, then <strong>Advanced</strong>.</li>
 <li>Enter your Pyramid website address, for example <strong><a rev="auto" rel="nofollow noopener noreferrer" href="https://pyramid.company.com" target="_blank">https://pyramid.company.com</a></strong>, and click <strong>Add</strong>.</li>
 <li>Click <strong>Close</strong>, then <strong>OK</strong>.</li>
</ol>
<p>Alternatively, the website can be added to <strong>Trusted sites</strong> if required by your organization's configuration.</p>
<p><img alt="Windows Internet Properties Security tab showing Trusted sites configuration" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/27e521c2-f2ff-42a0-b78a-d0e34618893d/547.jpg" style=""></p>
<h3>3. Enable automatic login using Windows credentials</h3>
<ol>
 <li>In <strong>Internet Properties &gt; Security</strong>, select the zone where you added the Pyramid website (<strong>Local intranet</strong> or <strong>Trusted sites</strong>).</li>
 <li>Click <strong>Custom level</strong>.</li>
 <li>Scroll to <strong>User Authentication &gt; Logon</strong>.</li>
 <li>Select <strong>Automatic logon with current user name and password</strong>.</li>
 <li>Click <strong>OK</strong> to save the changes.</li>
</ol>
<p><strong>Note:</strong> For the Local intranet zone, the default <strong>Automatic logon only in Intranet zone</strong> setting can also be used.</p>
<p><img alt="Windows security settings showing automatic logon with current username and password" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/437f456b-daa1-4d47-8894-82c51c10a6ca/547.jpg" style=""></p>
<h3>4. Verify Integrated Windows Authentication is enabled</h3>
<ol>
 <li>In <strong>Internet Properties</strong>, select the <strong>Advanced</strong> tab.</li>
 <li>Scroll down to the <strong>Security</strong> section.</li>
 <li>Verify that <strong>Enable Integrated Windows Authentication</strong> is checked.</li>
 <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
 <li>Close and reopen your browser, then try accessing Pyramid again.</li>
</ol>
<p><img alt="Windows Internet Properties Advanced tab showing Enable Integrated Windows Authentication" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/5b0e137e-9b20-453d-9e34-20b1bccf429f/547.jpg" style=""></p>
<h3>5. Mozilla Firefox configuration</h3>
<p>Unlike Microsoft Edge and Google Chrome, Firefox uses its own configuration settings for Integrated Windows Authentication.</p>
<p>If Firefox continues to prompt for credentials, follow these steps:</p>
<ol>
 <li>Open <strong>Mozilla Firefox</strong>.</li>
 <li>Enter <strong>about:config</strong> in the address bar and press Enter.</li>
 <li>If prompted, click <strong>Accept the Risk and Continue</strong>.</li>
 <li>Search for <strong>network.negotiate-auth.trusted-uris</strong>.</li>
 <li>Edit the preference and enter your Pyramid server hostname, for example <strong><a rev="auto" rel="nofollow noopener noreferrer" href="http://pyramid.company.com" target="_blank">pyramid.company.com</a></strong>.</li>
 <li>Search for <strong>network.automatic-ntlm-auth.trusted-uris</strong>.</li>
 <li>Edit this preference and enter the same Pyramid server hostname.</li>
 <li>Save the changes and restart Firefox.</li>
</ol>
<p><strong>Note:</strong> If multiple hostnames are required, separate them with commas. These settings may also be managed centrally by your organization's IT department using Group Policy.</p>
<h3>6. Verify the HTTP Service Principal Name (SPN)</h3>
<p>If users are still prompted for credentials, verify that the correct <strong>HTTP Service Principal Name (SPN)</strong> is registered in Active Directory for the Pyramid website.</p>
<p>SPNs are required for Kerberos authentication and must be associated with the correct account running the HTTP service.</p>
<p>Open Command Prompt on a domain-connected machine and check for an existing SPN:</p>
<pre class="language-bash"><code class="language-bash">setspn&nbsp;-Q&nbsp;HTTP/pyramid.company.com</code></pre>
<p>If the required SPN does not exist, an authorized Active Directory administrator can register it using the following commands:</p>
<pre class="language-bash"><code class="language-bash">setspn&nbsp;-S&nbsp;HTTP/pyramid.company.com&nbsp;ServerName$
setspn&nbsp;-S&nbsp;HTTP/pyramid&nbsp;ServerName$</code></pre>
<p>Replace:</p>
<ul>
 <li><strong><a rev="auto" rel="nofollow noopener noreferrer" href="http://pyramid.company.com" target="_blank">pyramid.company.com</a></strong> with the fully qualified hostname used to access Pyramid.</li>
 <li><strong>pyramid</strong> with the short hostname, if users access Pyramid using that name.</li>
 <li><strong>ServerName$</strong> with the appropriate Active Directory computer account.</li>
</ul>
<p><strong>Important:</strong> If the HTTP service runs under a dedicated Active Directory service account, register the SPN against that account instead of the server computer account.</p>
<p>SPNs must be unique in Active Directory. The <strong>setspn -S</strong> option checks for duplicates before registration. Do not create or modify SPNs without confirming the correct service account.</p>
<h3>7. Additional troubleshooting</h3>
<p>If Windows Authentication still does not work:</p>
<ul>
 <li>Verify that Windows Authentication is correctly configured and enabled in Pyramid.</li>
 <li>Confirm that the client computer is connected to the corporate network or VPN and can communicate with the required Active Directory services.</li>
 <li>Verify that the Pyramid website is listed in the correct Windows security zone, or in Firefox's authentication preferences.</li>
 <li>Check that the HTTP SPN is correctly registered and does not have duplicates.</li>
 <li>Check whether browser policies managed by your IT department override local authentication settings.</li>
 <li>Close and reopen the browser, then test again.</li>
</ul>
<p>If the issue persists, please contact <strong>Pyramid Support</strong> for further assistance.</p>]]></description>
          <pubDate>Sun, 19 Jul 2020 09:33:54 +0000</pubDate>
          <guid>https://community.pyramidanalytics.com/t/y4hxapa/no-proxy-account-was-set-for-user</guid>
          <dc:creator>Daniel</dc:creator>
        </item>

      <item>
          <title>Can&#x27;t log in to pyramid?</title>
          <link>https://community.pyramidanalytics.com/t/364hvh/cant-log-in-to-pyramid</link>
          <description><![CDATA[<p>If you have configured your Pyramid instance to use Active Directory (AD), and hear that users intermittently cannot log in, check the following,</p>
<p>The reason might be that your LDAP address sometimes returns Domain Controllers (DC) that do not work. To check what domain controller is being returned by the LDAP address at the time of the login issue, ping the LDAP address from the Pyramid server(s) to see what IP address is returned. With the IP it is then possible to know which domain controller it is that might not be working correctly.<br> <br>To resolve the problem, use <strong>ONE </strong>of the following three suggested solutions.</p>
<ol>
 <li>The preferred option is to get your LDAP DNS fixed so that it only returns good working domain controllers.<br> &nbsp;</li>
 <li>The next best option is to add an entry to the local Host file of the Pyramid server(s) that points your LDAP address to one good known domain controller* that works.<br> The host entry would look like the example below:<br> <br>If my LDAP address is LDAP://DC=TEST,DC=EXAMPLE,DC=COM<br> And one of the Domain Controllers IP = 172.29.3.211<br> <br>Then you would add the following to the host file:<br> 172.29.3.211 <a rev="auto" rel="nofollow noopener noreferrer" href="http://TEST.EXAMPLE.COM" target="_blank">TEST.EXAMPLE.COM</a><br> <br>the host file can be found at:<br> C:\Windows\System32\drivers\etc</li>
</ol>
<p>* to get a list of domain controllers the below command can be run from the command prompt.</p>
<blockquote>
 <p>nslookup -type=all _ldap._tcp</p>
</blockquote>
<p>&nbsp;</p>
<p>3. The third but unrecommended option is to log in to the Admin&nbsp;console and point Pyramid directly to one of your Domain Controllers without the need to edit the local host file on each Pyramid machine.<br> The disadvantage to this is that if this one domain controller fails there will be no way to login to the Pyramid application in order to update it to another one. Please see below on how you would point to one domain controller:<br> <br>Under Admin&gt;Access&gt;domain settings - the bold text is where the domain controller would be specified followed by the LDAP address.<br> LDAP://TESTDC1.TEST.EXAMPLE.COM/DC=TEST,DC=EXAMPLE,DC=COM<br> <br><strong>Note </strong>that support for configuring a DC in the LDAP path&nbsp;was only introduced in version 2018.05.163.&nbsp;</p>]]></description>
          <pubDate>Thu, 10 Oct 2019 10:49:29 +0000</pubDate>
          <guid>https://community.pyramidanalytics.com/t/364hvh/cant-log-in-to-pyramid</guid>
          <dc:creator>Yakov Shaul</dc:creator>
        </item>

      <item>
          <title>Firewall Settings for Pyramid</title>
          <link>https://community.pyramidanalytics.com/t/k9wbhv/firewall-settings-for-pyramid</link>
          <description><![CDATA[<p>When Pyramid is installed across multiple servers and there are internal firewalls between them, the following ports must be opened between all servers. All ports are TCP.</p>
<ul>
 <li>Pyramid File Server - 12150**</li>
 <li>Pyramid Agent -&nbsp;12190**</li>
 <li>Pyramid Task Engine&nbsp; - 12110</li>
 <li>Pyramid Runtime Engine - 12100,12101</li>
 <li>Pyramid Router Server - 12120</li>
 <li>Pyramid Windows Connector (Windows Cx) -12140,12141&nbsp;</li>
 <li>Pyramid Web Server -&nbsp;8181 *</li>
 <li>Pyramid Web Server (internal communication) - 8282</li>
 <li>Pyramid In-memory Database - 12170</li>
 <li>Internal PostgreSQL Database Repository - 12130</li>
 <li>Augmented Analytics server ("AI") (DS/ML) -&nbsp;12200</li>
 <li>Pyramid NLP (Natural Language Query) -&nbsp;12300</li>
</ul>
<p>All Pyramid services must be able to communicate with each other directly so all the ports must be open between all the servers in the Pyramid install.</p>
<p><strong>NOTE:</strong><br> If the designated port is in use when the service starts up, it will try to use the next available port.<br> This is why you should allow a range of ports and not specific ones.<br> You should allow a range between <strong>12100–12310, PLUS the web server ports</strong>.<br> The ports that are being used can be confirmed by looking at the diagnostic page found at <a rev="auto" rel="nofollow noopener noreferrer" href="http://MyPyramidSite.com/" target="_blank">http://MyPyramidSite.com/</a><strong>Diagnostic</strong><br> &nbsp;</p>
<p>For disabling the port incrementation behavior to prevent a situation when an incremented port is not available,&nbsp;add into the table [dbo].[admin_tbl_settings] in the Pyramid repository a row called "autoAdvancePort" and set its value to false.&nbsp;<strong>This option is available only from version 2020.23.120.</strong></p>
<p><em>* The web servers are accessible through port 8181. In production, reverse proxies are usually setup to communicate with the web servers on this port only. Then, the proxies typically expose ports 80 (HTTP) or 443 (HTTPS) to users. So, port 8181 need only be accessible inside the firewall.</em></p>
<p><em>**The agent and file server are installed on each Pyramid server where one of the other services have been installed.</em></p>]]></description>
          <pubDate>Mon, 04 Feb 2019 08:50:00 +0000</pubDate>
          <guid>https://community.pyramidanalytics.com/t/k9wbhv/firewall-settings-for-pyramid</guid>
          <dc:creator>Daniel</dc:creator>
        </item>

      <item>
          <title>How to create a Pyramid website in IIS after an install.</title>
          <link>https://community.pyramidanalytics.com/t/635fyg/how-to-create-a-pyramid-website-in-iis-after-an-install</link>
          <description><![CDATA[<p>If you have decided to use the IIS option after the Pyramid installation, you can add the site manually.&nbsp;</p>
<p>First, you need to install the following&nbsp;IIS modules :</p>
<p><img alt="" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/76f246c7-e2a5-47bc-bee9-edbcbb7aed9e/547.png" style=""><br> <br>To install "IIS URL Rewrite Module 2" and "Microsoft&nbsp;Application Request Routing 3.0" please download and install them using the links below:<br> Note, that&nbsp;before installing them, you'll need to close IIS first.</p>
<ul>
 <li>Microsoft&nbsp;Application Request Routing 3.0:&nbsp;<br> <a href="https://www.iis.net/downloads/microsoft/application-request-routing" rel="nofollow noopener noreferrer" target="_blank">https://www.iis.net/downloads/microsoft/application-request-routing</a></li>
 <li>IIS URL Rewrite Module 2:&nbsp;<a href="https://www.iis.net/downloads/microsoft/url-rewrite" rel="nofollow noopener noreferrer" target="_blank">https://www.iis.net/downloads/microsoft/url-rewrite</a><br> NOTE: The&nbsp;Application Request Routing&nbsp;should include the&nbsp;IIS URL Rewrite Module, but if it's not, here is the URL to install it.</li>
</ul>
<p>Once the above two IIS&nbsp;add-on's&nbsp;have been downloaded, run the installer and follow the&nbsp;on-screen&nbsp;prompts.<br> <br>Once the above two models have been installed, activate the proxy as shown below:<br> Open IIS &gt;Double click on the server name(1)&gt;Double Click on "Application Request Routing Cache"(2)<br> <img alt="" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/1a1cd028-85d4-4757-9e5a-a8c390569ca3/547.png" style="">&nbsp;<br> Click on "Server Proxy Settings..."(3)</p>
<p><img alt="" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/879a429c-095e-41ba-a9fa-f71d9f951b30/547.jpg" style=""></p>
<p>Then Tick the box "Enable proxy"(4)&gt;Click on Apply(5)<br> <img alt="" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/676a7a91-7098-4d95-bfbd-42a43daf313f/547.jpg" style=""></p>
<p>Secondly, create a new website and point it to the following location:</p>
<p>C:\program files\pyramid 2018\repository\iis</p>
<p><img alt="" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/e45da65b-6b9a-4a55-b9fa-34b106d4f36c/547.jpg" style=""></p>
<p>For the site name call it "pyramid2018", for the Physical path point it to&nbsp;C:\program files\pyramid 2018\repository\iis, for the hostname it can be anything but please note that you must add this to your DNS or local host file.</p>
<p><img alt="" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/f19254d7-00df-4226-9b30-3b8d5a110679/547.jpg" style=""></p>
<p>Then double click on the newly created site &gt;URL Rewite. Double click on the first rule and make sure the Rewrite URL is: http://localhost:8181/{R:1}</p>
<p><img alt="" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/89eb1618-6e33-42e3-befa-89604ba24690/547.jpg" style=""></p>
<p>Once the above steps have been done, please do an IISRESET and then try to access Pyramid 2018 again using the newly created IIS website.</p>
<p>NOTE: Ensure that the relevant ports are open on the firewall: 80 for HTTP and 443 for HTTPS.</p>]]></description>
          <pubDate>Tue, 12 Jun 2018 12:45:00 +0000</pubDate>
          <guid>https://community.pyramidanalytics.com/t/635fyg/how-to-create-a-pyramid-website-in-iis-after-an-install</guid>
          <dc:creator>Yakov Shaul</dc:creator>
        </item>

      <item>
          <title>Browser Settings for Windows Authentication</title>
          <link>https://community.pyramidanalytics.com/t/x1j1ml/browser-settings-for-windows-authentication</link>
          <description><![CDATA[<p>To configure your browser for <strong>Windows Integrated Authentication</strong> (automatic login using your Windows credentials), follow the instructions below.</p>
<p>These instructions apply to <strong>Microsoft Edge, Google Chrome, and Mozilla Firefox</strong> on Windows.</p>
<h3>1. Open Windows Internet Options (Microsoft Edge and Google Chrome)</h3>
<p>Microsoft Edge and Google Chrome use Windows security settings for Integrated Windows Authentication. You do not need to open Internet Explorer to configure these settings.</p>
<ol>
 <li>Press <strong>Windows + R</strong> to open the Run dialog.</li>
 <li>Enter the following command and press <strong>Enter</strong>:</li>
</ol>
<pre class="language-text"><code>inetcpl.cpl</code></pre>
<p>This opens the <strong>Internet Properties</strong> window.</p>
<h3>2. Add the Pyramid website to the Local intranet or Trusted sites zone</h3>
<ol>
 <li>In Internet Properties, select the <strong>Security</strong> tab.</li>
 <li>Select <strong>Local intranet</strong> (recommended for internal Pyramid websites).</li>
 <li>Click <strong>Sites</strong>, then <strong>Advanced</strong>.</li>
 <li>Enter your Pyramid website address, for example <strong><a rev="auto" rel="nofollow noopener noreferrer" href="https://pyramid.company.com" target="_blank">https://pyramid.company.com</a></strong>, and click <strong>Add</strong>.</li>
 <li>Click <strong>Close</strong>, then <strong>OK</strong>.</li>
</ol>
<p>Alternatively, the website can be added to <strong>Trusted sites</strong> if required by your organization's configuration.</p>
<p><img alt="Windows Internet Properties Security tab showing Trusted sites configuration" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/27e521c2-f2ff-42a0-b78a-d0e34618893d/547.jpg"></p>
<h3>3. Enable automatic login using Windows credentials</h3>
<ol>
 <li>In <strong>Internet Properties &gt; Security</strong>, select the zone where you added the Pyramid website (<strong>Local intranet</strong> or <strong>Trusted sites</strong>).</li>
 <li>Click <strong>Custom level</strong>.</li>
 <li>Scroll to <strong>User Authentication &gt; Logon</strong>.</li>
 <li>Select <strong>Automatic logon with current user name and password</strong>.</li>
 <li>Click <strong>OK</strong> to save the changes.</li>
</ol>
<p><strong>Note:</strong> For the Local intranet zone, the default <strong>Automatic logon only in Intranet zone</strong> setting can also be used.</p>
<p><img alt="Windows security settings showing automatic logon with current username and password" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/437f456b-daa1-4d47-8894-82c51c10a6ca/547.jpg"></p>
<h3>4. Verify Integrated Windows Authentication is enabled</h3>
<ol>
 <li>In <strong>Internet Properties</strong>, select the <strong>Advanced</strong> tab.</li>
 <li>Scroll down to the <strong>Security</strong> section.</li>
 <li>Verify that <strong>Enable Integrated Windows Authentication</strong> is checked.</li>
 <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
 <li>Close and reopen your browser, then try accessing Pyramid again.</li>
</ol>
<p><img alt="Windows Internet Properties Advanced tab showing Enable Integrated Windows Authentication" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/5b0e137e-9b20-453d-9e34-20b1bccf429f/547.jpg"></p>
<h3>5. Mozilla Firefox configuration</h3>
<p>Unlike Microsoft Edge and Google Chrome, Firefox uses its own configuration settings for Integrated Windows Authentication.</p>
<p>If Firefox continues to prompt for credentials, follow these steps:</p>
<ol>
 <li>Open <strong>Mozilla Firefox</strong>.</li>
 <li>Enter <strong>about:config</strong> in the address bar and press Enter.</li>
 <li>If prompted, click <strong>Accept the Risk and Continue</strong>.</li>
 <li>Search for <strong>network.negotiate-auth.trusted-uris</strong>.</li>
 <li>Edit the preference and enter your Pyramid server hostname, for example <strong><a rev="auto" rel="nofollow noopener noreferrer" href="http://pyramid.company.com" target="_blank">pyramid.company.com</a></strong>.</li>
 <li>Search for <strong>network.automatic-ntlm-auth.trusted-uris</strong>.</li>
 <li>Edit this preference and enter the same Pyramid server hostname.</li>
 <li>Save the changes and restart Firefox.</li>
</ol>
<p><strong>Note:</strong> If multiple hostnames are required, separate them with commas. These settings may also be managed centrally by your organization's IT department using Group Policy.</p>
<h3>6. Verify the HTTP Service Principal Name (SPN)</h3>
<p>If users are still prompted for credentials, verify that the correct <strong>HTTP Service Principal Name (SPN)</strong> is registered in Active Directory for the Pyramid website.</p>
<p>SPNs are required for Kerberos authentication and must be associated with the correct account running the HTTP service.</p>
<p>Open Command Prompt on a domain-connected machine and check for an existing SPN:</p>
<pre class="language-bash"><code>setspn -Q HTTP/pyramid.company.com</code></pre>
<p>If the required SPN does not exist, an authorized Active Directory administrator can register it using the following commands:</p>
<pre class="language-bash"><code>setspn -S HTTP/pyramid.company.com ServerName$
setspn -S HTTP/pyramid ServerName$</code></pre>
<p>Replace:</p>
<ul>
 <li><strong><a rev="auto" rel="nofollow noopener noreferrer" href="http://pyramid.company.com" target="_blank">pyramid.company.com</a></strong> with the fully qualified hostname used to access Pyramid.</li>
 <li><strong>pyramid</strong> with the short hostname, if users access Pyramid using that name.</li>
 <li><strong>ServerName$</strong> with the appropriate Active Directory computer account.</li>
</ul>
<p><strong>Important:</strong> If the HTTP service runs under a dedicated Active Directory service account, register the SPN against that account instead of the server computer account.</p>
<p>SPNs must be unique in Active Directory. The <strong>setspn -S</strong> option checks for duplicates before registration. Do not create or modify SPNs without confirming the correct service account.</p>
<h3>7. Additional troubleshooting</h3>
<p>If Windows Authentication still does not work:</p>
<ul>
 <li>Verify that Windows Authentication is correctly configured and enabled in Pyramid.</li>
 <li>Confirm that the client computer is connected to the corporate network or VPN and can communicate with the required Active Directory services.</li>
 <li>Verify that the Pyramid website is listed in the correct Windows security zone, or in Firefox's authentication preferences.</li>
 <li>Check that the HTTP SPN is correctly registered and does not have duplicates.</li>
 <li>Check whether browser policies managed by your IT department override local authentication settings.</li>
 <li>Close and reopen the browser, then test again.</li>
</ul>
<p>If the issue persists, please contact <strong>Pyramid Support</strong> for further assistance.</p>]]></description>
          <pubDate>Wed, 02 May 2018 09:00:00 +0000</pubDate>
          <guid>https://community.pyramidanalytics.com/t/x1j1ml/browser-settings-for-windows-authentication</guid>
          <dc:creator>Daniel</dc:creator>
        </item>

      <item>
          <title>How to enable SSL on Pyramid website and forward all HTTP request to HTTPS</title>
          <link>https://community.pyramidanalytics.com/t/y7frj4/how-to-enable-ssl-on-pyramid-website-and-forward-all-http-request-to-https</link>
          <description><![CDATA[<p>To enable HTTPS for the Pyramid website, Pyramid must be installed using the IIS option.</p>
<p>Once Pyramid is installed, configure an HTTPS binding in IIS using the following steps:</p>
<ol>
 <li>Open <strong>Internet Information Services (IIS) Manager</strong>.</li>
 <li>Expand <strong>Sites</strong>, right-click the <strong>Pyramid</strong> website, and select <strong>Edit Bindings</strong> (1).</li>
 <li>Click <strong>Add</strong> (2).</li>
 <li>Set the binding type to <strong>https</strong> (3).</li>
 <li>Enter the required <strong>hostname</strong> (4), if applicable.</li>
 <li>Select the appropriate <strong>SSL certificate</strong> (5).</li>
 <li>Click <strong>OK</strong> to save the binding.</li>
</ol>
<p><img alt="Configuring an HTTPS binding and SSL certificate for the Pyramid website in IIS" src="https://s3-us-west-2.amazonaws.com/media.forumbee.com/i/0a8b549e-74ef-4fb9-a910-da5549ae5e62/547.jpg" style=""></p>
<p>Once the HTTPS binding is configured, open the Pyramid website using its HTTPS address, for example:</p>
<pre class="language-none"><code class="language-none">https://pyramid.example.com</code></pre>
<p>Ensure that the hostname matches the SSL certificate and that TCP port 443 is accessible.</p>
<p><strong>Note:</strong> No changes to Pyramid's <code>web.config</code> file are required solely to add an HTTPS binding in IIS.</p>]]></description>
          <pubDate>Tue, 19 Sep 2017 12:18:00 +0000</pubDate>
          <guid>https://community.pyramidanalytics.com/t/y7frj4/how-to-enable-ssl-on-pyramid-website-and-forward-all-http-request-to-https</guid>
          <dc:creator>Yakov Shaul</dc:creator>
        </item>

      </channel>
</rss>
