<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Topics tagged with security]]></title><description><![CDATA[A list of topics that have been tagged with security]]></description><link>https://fusionauth.io/community/forum/tags/security</link><generator>RSS for Node</generator><lastBuildDate>Sun, 07 Jun 2026 20:28:38 GMT</lastBuildDate><atom:link href="https://fusionauth.io/community/forum/tags/security.rss" rel="self" type="application/rss+xml"/><pubDate>Invalid Date</pubDate><ttl>60</ttl><item><title><![CDATA[How to Restrict FusionAuth Admin Panel Access by IP Address]]></title><description><![CDATA[<p dir="auto">Here’s how you can approach securing access to your FusionAuth instance:</p>

<strong>IP Access Control Lists (ACL)</strong>:<br />
You can define IP Access Control Lists in FusionAuth by navigating to <strong>Settings &gt; IP Access Control</strong> in the Admin UI.

Click the + icon to create a new ACL list.
Add entries for each IP address or range you want to allow or block.
Assign these ACLs to specific tenants or API keys as needed.


<strong>Important Note</strong>:<br />
IP ACLs restrict access to endpoints like <strong>/oauth2/</strong>, <strong>/account/</strong>, <strong>/email/</strong>, <strong>/password/</strong>, <strong>/registration/</strong>, and other user-accessible pages. However, <strong>they do not restrict access to the FusionAuth Admin UI</strong> unless the Admin UI is accessed via SSO.<br />
Documentation: <a href="https://fusionauth.io/docs/apis/ip-acl#overview" rel="nofollow ugc">IP ACL API Overview</a>
<strong>Secure the Admin UI</strong>:<br />
Since IP ACLs do not directly secure the Admin UI, consider the following options:

<strong>Use a Trusted Proxy</strong>:<br />
Place a trusted proxy at the edge of your network to filter incoming traffic before it reaches FusionAuth. The proxy can enforce IP-based restrictions or other security rules. In FusionAuth, configure your proxy under <strong>System &gt; Networking</strong>, where you can specify the proxy’s IP address. If a request doesn’t go through the trusted proxy, FusionAuth will deny access.<br />
Documentation: <a href="https://fusionauth.io/docs/operate/secure-and-monitor/networking" rel="nofollow ugc">FusionAuth Networking</a>
<strong>Login Lambda for Additional Validation</strong>:<br />
Implement a Login Lambda to validate login attempts further. This Lambda allows you to execute custom code during login, such as checking the origin IP or other request details to block unauthorized attempts.<br />
Documentation: <a href="https://fusionauth.io/docs/extend/code/lambdas/" rel="nofollow ugc">Login Lambdas</a>


<strong>Recommended Next Steps</strong>:

Configure IP ACLs for your tenants and API keys to secure application-level access.
Implement a trusted proxy to filter admin panel access based on source IP.
Use a Login Lambda for additional request-level security, if needed.



<p dir="auto">By combining these approaches, you can enhance the security of your FusionAuth deployment and mitigate unauthorized access.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2974/how-to-restrict-fusionauth-admin-panel-access-by-ip-address</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2974/how-to-restrict-fusionauth-admin-panel-access-by-ip-address</guid><dc:creator><![CDATA[wesley]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[How to Restrict FusionAuth Admin Panel Access by IP Address]]></title><description><![CDATA[<p dir="auto">Here’s how you can approach securing access to your FusionAuth instance:</p>

<strong>IP Access Control Lists (ACL)</strong>:<br />
You can define IP Access Control Lists in FusionAuth by navigating to <strong>Settings &gt; IP Access Control</strong> in the Admin UI.

Click the + icon to create a new ACL list.
Add entries for each IP address or range you want to allow or block.
Assign these ACLs to specific tenants or API keys as needed.


<strong>Important Note</strong>:<br />
IP ACLs restrict access to endpoints like <strong>/oauth2/</strong>, <strong>/account/</strong>, <strong>/email/</strong>, <strong>/password/</strong>, <strong>/registration/</strong>, and other user-accessible pages. However, <strong>they do not restrict access to the FusionAuth Admin UI</strong> unless the Admin UI is accessed via SSO.<br />
Documentation: <a href="https://fusionauth.io/docs/apis/ip-acl#overview" rel="nofollow ugc">IP ACL API Overview</a>
<strong>Secure the Admin UI</strong>:<br />
Since IP ACLs do not directly secure the Admin UI, consider the following options:

<strong>Use a Trusted Proxy</strong>:<br />
Place a trusted proxy at the edge of your network to filter incoming traffic before it reaches FusionAuth. The proxy can enforce IP-based restrictions or other security rules. In FusionAuth, configure your proxy under <strong>System &gt; Networking</strong>, where you can specify the proxy’s IP address. If a request doesn’t go through the trusted proxy, FusionAuth will deny access.<br />
Documentation: <a href="https://fusionauth.io/docs/operate/secure-and-monitor/networking" rel="nofollow ugc">FusionAuth Networking</a>
<strong>Login Lambda for Additional Validation</strong>:<br />
Implement a Login Lambda to validate login attempts further. This Lambda allows you to execute custom code during login, such as checking the origin IP or other request details to block unauthorized attempts.<br />
Documentation: <a href="https://fusionauth.io/docs/extend/code/lambdas/" rel="nofollow ugc">Login Lambdas</a>


<strong>Recommended Next Steps</strong>:

Configure IP ACLs for your tenants and API keys to secure application-level access.
Implement a trusted proxy to filter admin panel access based on source IP.
Use a Login Lambda for additional request-level security, if needed.



<p dir="auto">By combining these approaches, you can enhance the security of your FusionAuth deployment and mitigate unauthorized access.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2820/how-to-restrict-fusionauth-admin-panel-access-by-ip-address</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2820/how-to-restrict-fusionauth-admin-panel-access-by-ip-address</guid><dc:creator><![CDATA[wesley]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Registering with an existing email]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/212">@harish_reddy</a> I just want to make sure I understand where you are coming from.  If you user signs up with an email address, you want the same response even if they are already signed up?  Can you please share some images of how you would like the flow to work?  I think this could cause problems and confusion the way I am thinking about it.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2484/registering-with-an-existing-email</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2484/registering-with-an-existing-email</guid><dc:creator><![CDATA[mark.robustelli]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Does fusion auth supports es256k header for secp256k1 curve keys?]]></title><description><![CDATA[<p dir="auto">Hiya <a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2222">@benjamineroommen</a> ,</p>
<p dir="auto">I'm not sure what you mean? Are you talking about the JWT generated for a login event?</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2337/does-fusion-auth-supports-es256k-header-for-secp256k1-curve-keys</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2337/does-fusion-auth-supports-es256k-header-for-secp256k1-curve-keys</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Email verification security hole?]]></title><description><![CDATA[<p dir="auto">If you are using email verification, you can check this user state within your own app. (So, don't allow the attacker to access anything until their email address has been verified.)</p>
<p dir="auto">In version 1.27.0 you can configure a gated login flow when the user is not verified (this is a 'reactor' feature requiring a paid license). This will enforce email verification before we even redirect to your app. You can then also configure FusionAuth to delete users after N number of days if the user has not verified their email address. This can assist with build up of accounts that are not actually in use.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/1156/email-verification-security-hole</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/1156/email-verification-security-hole</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Security and PKCE]]></title><description><![CDATA[<p dir="auto">Hiya,</p>
<p dir="auto">PKCE is great and should be used if supported. This helps prevent authorization code replay attacks, as recommended here: <a href="https://tools.ietf.org/html/draft-ietf-oauth-security-topics-16#page-6" rel="nofollow ugc">https://tools.ietf.org/html/draft-ietf-oauth-security-topics-16#page-6</a></p>
<p dir="auto">Using a proxy and storing the access token on server side rather than javascript solves a different set of security concerns. Because access tokens are typically bearer tokens and are not sender constrained, anyone who gets them has access to whatever they grant access to.</p>
<p dir="auto">This means that if your javascript has access to the token, so does any other javascript running on your page. If you are comfortable with that (you've audited all the javascript in all the libraries, and their dependencies to ensure that there's no security issues) then storing the access token may be ok.</p>
<p dir="auto">Since that level of comfort with javascript libraries is not typical (do you know what is going on in the dependencies of your dependencies? many folks don't), we recommend one of two approaches:</p>

store the access token server side, and use the session to tie the client to the access token (what our blog posts typically do)
store the access token in a secure, httponly cookie, so that it is not accessible to javascript, but is sent to any APIs. That's more fully fleshed out here: <a href="https://fusionauth.io/learn/expert-advice/authentication/spa/oauth-authorization-code-grant-jwts-refresh-tokens-cookies/" rel="nofollow ugc">https://fusionauth.io/learn/expert-advice/authentication/spa/oauth-authorization-code-grant-jwts-refresh-tokens-cookies/</a>

<p dir="auto">Of course, you alone know your security posture and what you're comfortable with, but that's what we recommend.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/504/security-and-pkce</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/504/security-and-pkce</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[FusionAuth support for old releases]]></title><description><![CDATA[<p dir="auto">Officially we don’t require anyone to upgrade. However, generally speaking we don’t back port patches, this means if you need a fix you’ll have to upgrade to get it. There are a lot of good reasons to keep a security product up to date.</p>
<p dir="auto">But when you pay for an edition of FusionAuth that includes support, you can run whatever version you want (more or less).</p>
]]></description><link>https://fusionauth.io/community/forum/topic/405/fusionauth-support-for-old-releases</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/405/fusionauth-support-for-old-releases</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[What kind of security and attack mitigation features does FusionAuth have?]]></title><description><![CDATA[<p dir="auto">We have Breached Password Detection (in the paid edition) as well as brute-force login detection.</p>
<p dir="auto">We have some other related features on the roadmap for 2020.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/324/what-kind-of-security-and-attack-mitigation-features-does-fusionauth-have</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/324/what-kind-of-security-and-attack-mitigation-features-does-fusionauth-have</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Notification of changes to FusionAuth]]></title><description><![CDATA[<p dir="auto">If you'd like APIs to automatically log to the audit log, without additional calls to the Audit Log API, please vote for this issue: <a href="https://github.com/FusionAuth/fusionauth-issues/issues/507" rel="nofollow ugc">https://github.com/FusionAuth/fusionauth-issues/issues/507</a></p>
]]></description><link>https://fusionauth.io/community/forum/topic/217/notification-of-changes-to-fusionauth</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/217/notification-of-changes-to-fusionauth</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[What sort of telemetry can FusionAuth provide for potentially suspicious logins, credential attacks, and other security related events?]]></title><description><![CDATA[<p dir="auto">This may be useful if what you are trying to extract is in ElasticSearch (user data): <a href="https://elastalert.readthedocs.io/en/latest/" rel="nofollow ugc">https://elastalert.readthedocs.io/en/latest/</a></p>
<p dir="auto">Doesn't help with other aspects of the system, but I believe we have some features planned.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/194/what-sort-of-telemetry-can-fusionauth-provide-for-potentially-suspicious-logins-credential-attacks-and-other-security-related-events</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/194/what-sort-of-telemetry-can-fusionauth-provide-for-potentially-suspicious-logins-credential-attacks-and-other-security-related-events</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[How can I protect my elasticsearch instances?]]></title><description><![CDATA[<p dir="auto">There are a few ways to do this.</p>
<p dir="auto">This assumes that you are running elasticsearch on a different server than you are running the fusionauth instances. If they are on the same server, you should be fine, as that is the <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html" rel="nofollow ugc">default configuration</a>.</p>
<p dir="auto">The first is at the network level, using a firewall or something like security groups on AWS. If you are doing this, you can configure the server that elasticsearch is installed on to accept requests only from the server that FusionAuth is installed on.</p>
<p dir="auto">The second is to use basic authentication. That is, set fusionauth-search.servers in the fusionauth.properties file, or the FUSIONAUTH_SEARCH_SERVERS environment variable to include the basic username and password. <a href="https://user:password@example.com" rel="nofollow ugc">https://user:password@example.com</a>. And make sure to set up <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/setting-up-authentication.html" rel="nofollow ugc">elastic to use basic auth</a>, using whatever authentication source you'd like. (You could even go meta and have elasticsearch auth the user against the fusionauth instance 🙂 ).</p>
<p dir="auto"><a href="https://github.com/FusionAuth/fusionauth-issues/issues/531" rel="nofollow ugc">Further discussion here</a>.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/185/how-can-i-protect-my-elasticsearch-instances</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/185/how-can-i-protect-my-elasticsearch-instances</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[How can I protect the FusionAuth admin screens from unauthorized access?]]></title><description><![CDATA[<p dir="auto">The way most of our clients handle this is by using proxy redirect rules. For example, if your service is available at <a href="https://auth.example.com" rel="nofollow ugc">https://auth.example.com</a> then you would redirect <a href="https://auth.example.com/" rel="nofollow ugc">https://auth.example.com/</a> to <a href="https://example.com" rel="nofollow ugc">https://example.com</a> to push the user back into the "user" space of your site. This would mean that if you have a FusionAuth admin, they would need to directly access the UI by navigating to <a href="https://auth.example.com/admin/" rel="nofollow ugc">https://auth.example.com/admin/</a>.</p>
<p dir="auto">If you're already using a load balancer or a similar technology that provides routing rules, these are easy to configure.</p>
<p dir="auto">You can also use managed IP locking (limiting access to a certain set of IP addresses), or some other type of HTTP header on the request to limit access to the FusionAuth admin UI to authorized users and treat all other traffic to anything under /admin for end users as an invalid request. These types of solutions are best handled at the network layer or with a proxy.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/148/how-can-i-protect-the-fusionauth-admin-screens-from-unauthorized-access</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/148/how-can-i-protect-the-fusionauth-admin-screens-from-unauthorized-access</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Is it sefe to get access to GET &#x2F;api&#x2F;jwt&#x2F;refresh?userId={userId} method?]]></title><description><![CDATA[<p dir="auto">Hiya,</p>
<p dir="auto">When you say</p>
<blockquote>
<p dir="auto">Everybody can see authorization key.</p>
</blockquote>
<p dir="auto">Who do you mean? Do you mean anyone with access to the FusionAuth admin console? Or some other set of users?</p>
]]></description><link>https://fusionauth.io/community/forum/topic/101/is-it-sefe-to-get-access-to-get-api-jwt-refresh-userid-userid-method</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/101/is-it-sefe-to-get-access-to-get-api-jwt-refresh-userid-userid-method</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Is there any way to blacklist IPs?]]></title><description><![CDATA[<p dir="auto">Not currently. We've discussed it and haven't ruled it out.</p>
<p dir="auto">However there are so many products, both free and commercial, that do this well.</p>
<p dir="auto">You can always put a firewall on the server that FusionAuth is running or put a proxy in front of it.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/57/is-there-any-way-to-blacklist-ips</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/57/is-there-any-way-to-blacklist-ips</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Invalid Date</pubDate></item></channel></rss>