FusionAuth
    • Home
    • Categories
    • Recent
    • Popular
    • Pricing
    • Contact us
    • Docs
    • Login
    1. Home
    2. Popular
    Log in to post
    • All Time
    • Day
    • Week
    • Month
    • All Topics
    • New Topics
    • Watched Topics
    • Unreplied Topics
    • All categories
    • W

      Solved How to Handle Bookmarking FusionAuth Login Pages with Custom Domains and PKCE

      Frequently Asked Questions (FAQ)
      • cloud • • wesley
      2
      0
      Votes
      2
      Posts
      355
      Views

      W

      Currently your deployments do support custom domains and yes this would be compatible with PKCE. You can have something like auth.mycompany.com provisioned and a user can bookmark this type of URL. In fact, I believe that your company already has a few of these types of URLs configured. So your customers would have to bookmark the full login path (something like http://auth.mycompany.com...authorize?client_id....redirect_uir...response_mode) and then they can login to the OAuth2 page that FusionAuth is hosting for login.

      The real issue that you have here is related to PKCE.

      Your app landing page is generating a PKCE challenge and PKCE verifier.

      Your integration is then using these values to call the authorize endpoint uniquely each time

      If a user bookmarks the values/URLs from step two above, they will have issues logging in (due to a PKCE failure)

      All of this is in alignment with the OAuth Specification (the PKCE values should be unique each time that the authorize endpoint is called). The next question then becomes prevention of a user bookmarking the wrong link. To my mind, you could add some information to a customer portal or land page letting the customer know the correct page to bookmark. If the login fails, you may be able to redirect the user to the correct page (your page sees the failure and then determines the login landing page to send the user to) to login as well to recover the customer experience (in the case where the user have bookmarked the wrong link).

      The alternative is to not to use PKCE, which introduces security considerations, especially if you are building on mobile.

    • W

      Solved How to Track Entity Changes in FusionAuth Using the Audit Log API

      Frequently Asked Questions (FAQ)
      • webhook webhooks lambda • • wesley
      2
      0
      Votes
      2
      Posts
      595
      Views

      W

      Yes, you would need something on your end to poll the Audit Log to fetch changes made to the Entities. Currently. there's no way to enter a log into the system logs (fusionauth-app.log) or otherwise control what goes in there. We do have a similar example for Cloudwatch on exporting Login Records to Cloudwatch which should be helpful.

      https://fusionauth.io/docs/operate/monitor/cloudwatch

    • W

      Solved How to Restrict Username/Password Login to a Single ‘Break Glass’ User in FusionAuth

      Frequently Asked Questions (FAQ)
      • oauth • • wesley
      2
      0
      Votes
      2
      Posts
      4.8k
      Views

      W

      Having only one user be able to log in with username/password is relatively straightforward with FusionAuth. You could use a Login Validation Lambda or transactional user.login.success Webhook to check the authentication type on each login, which will tell you if they are logging in via a specific Identity Provider or with a password then stop users from logging in based on that criteria. Then set it up so that only the break glass user is able to login with a password.

      The slightly trickier part here is only having the username/password field show up for that user. The only way to accomplish this with Simple Themes would be to have managed domains setup such that all normal users are directed to IdPs but the break glass user is on a separate domain so they get to see the login page. With managed domains, the login field changes just to email address for the first step. Then it will check the users email address against domains you have setup for specific IdPs and if they match a IdP then a user is directed straight to that IdP. Any user with a domain that does not match gets sent to the regular email/password login page.

      https://fusionauth.io/docs/extend/code/lambdas/login-validation

      https://fusionauth.io/docs/extend/events-and-webhooks/events/user-login-success

      https://fusionauth.io/docs/lifecycle/authenticate-users/identity-providers/#managed-domains

    • W

      Solved Assigning Roles in FusionAuth Based on Identity Provider Login Source

      Frequently Asked Questions (FAQ)
      • webhook webhooks lambda • • wesley
      2
      0
      Votes
      2
      Posts
      343
      Views

      W

      This is a little tricky since a user could log in from either provider at any given time. The JWT populate lambda only has access to the user object and the registration object so you would need something on either of those to reference in the lambda. Each time a user logs in from a Identity Provider, the user in FusionAuth gets updated with the user data from the IdP. So for the JWT populate to work, you would need both providers to have a custom data field that maps to the same user.data field in FusionAuth. Then have the JWT populate Lambda map this user.data to either a custom claim or to the roles claim in the JWT, whatever works to determine the internal role on your side. Essentially this field would get updated or overwritten every time the user logs in and which would means the JWT from that login should have the correct "role".

      https://fusionauth.io/docs/extend/code/lambdas/jwt-populate

      A JWT populate lambda runs whenever a JWT is minted and the reconcile lambda runs whenever a user logs in from an IdP. Which means there is a scenario if a user is logged in on both networks at the same time, it would not be accurate since the JWT from both sessions would be reading from user.data which got updated by the last IdP login. Something like the following feature would also likely be enough to solve this problem for you, we have a similar field on Webhooks but not in JWTs or Lambdas which would detail which IdP used to login.

      https://github.com/FusionAuth/fusionauth-issues/issues/1483

    • W

      Solved Preventing Shared Computer MFA Lockouts in FusionAuth

      Frequently Asked Questions (FAQ)
      • mfa sso • • wesley
      2
      0
      Votes
      2
      Posts
      298
      Views

      W

      It makes sense that this problem is happening. Once we have a SSO session on the computer/browser, then if MFA is required as part of the hosted workflows, FusionAuth will prompt for it based on the existing SSO session.

      To solve this problem, you could opt to not make use of the FusionAuth SSO session. So, if you are using our Advanced themes, you could remove the option for an SSO session by removing the Keep Me Signed In checkbox from the theme. Using our Simple Themes, you would set the SSO Session to a really short duration in Tenant Settings (2 seconds, for instance) thus effectively removing the SSO session. Both of these options would eliminate this problem described above.

      If you still wanted to generate a FusionAuth SSO session, and you wanted to solve this specific problem, you could use Advanced Themes and hardcode a logout link on this MFA page to allow a user to reset the session and login again. This same solution is not possible using Simple Themes, but a feature request could be logged if you wanted to see this logout link included in Simple Themes at a later date.

    • W

      Solved Upgrading FusionAuth Cloud Deployments and Rollback Options

      Frequently Asked Questions (FAQ)
      • cloud • • wesley
      2
      0
      Votes
      2
      Posts
      157
      Views

      W

      To upgrade the FusionAuth deployment, you just need to visit account.fusionauth.io and go to the Hosting tab. From there, each deployment has a drop down button where you can select Upgrade. From there you can upgrade version by version or leapfrog to the latest version, we always recommend testing out the upgrade on dev before rolling it out to production. For your dev instances, there will be downtime of up to 60 minutes but usually I see it takes 20-30 minutes. For production we do a rolling node upgrade since it's a multi-node instance, therefore it should not have much downtime at all(seconds) as traffic just gets routed to nodes 2 & 3 while node 1 is getting upgraded.

      As far as rollbacks and backups, we keep snapshots of the database for your production deployment since its High Availability. Your dev and staging instances do not have backups since they are Basic Cloud. If you want to enable backups and rollbacks, you would need to move the Dev or Staging instance to the next tier of hosting, Business Cloud. For production, we will take a snapshot of the database every time right before you upgrade. These backups are available for up to 30 days. Then we also have 3 days of general rolling backups for your production that we can rollback to. Rolling back is a manual process from our end so that's something you have to contact us to initiate. Something to keep in mind is that it's a complete database rollback, so any logging or changes made since the snapshot will be lost so there is data loss with these rollbacks.

      https://fusionauth.io/docs/get-started/run-in-the-cloud/cloud#upgrading-a-deployment

    • W

      Solved Enabling MFA for All Users or Specific Projects in FusionAuth Essentials Plan

      Frequently Asked Questions (FAQ)
      • mfa • • wesley
      2
      0
      Votes
      2
      Posts
      62
      Views

      W

      With the Essentials plan, you do have MFA available to you on a Tenant level under Tenant>Multi-Factor. To have users set up MFA you either need to set MFA to Required, where users will need to set up MFA to complete a login or you will need to enable the “Self Service Account Management” page so users can visit it to set up MFA. So you can set up MFA for any Tenant to make it available to users.

      https://fusionauth.io/docs/lifecycle/authenticate-users/multi-factor-authentication

      https://fusionauth.io/docs/lifecycle/manage-users/account-management/

      In order to change MFA settings at the Application level for enabling MFA on a project by project basis, you would need to upgrade to the Enterprise plan.

    • W

      Solved Requiring MFA for FusionAuth Admin Portal Access

      Frequently Asked Questions (FAQ)
      • mfa • • wesley
      2
      0
      Votes
      2
      Posts
      82
      Views

      W

      Thanks for the question! If you navigate to Applications > Index View - FusionAuth > Multi-Factor Tab then you can see an option to require MFA for the FusionAuth Admin UI Application. You will likely want to enable application specific trust as well.

    • W

      Solved How to Block Logins Based on IdP Links in FusionAuth Without Storing API Keys in Lambdas

      Frequently Asked Questions (FAQ)
      • webhooks lambda webhook • • wesley
      2
      0
      Votes
      2
      Posts
      112
      Views

      W

      Currently, FusionAuth lambdas cannot call the API without including an API key in the code — there’s no built-in secret manager for this yet (feature request).

      Alternative approaches:

      Webhook filtering (recommended)
      Use the user.login.success webhook to check if the user is linked to an IdP, and reject the login by returning a non-200 response. This avoids storing API keys in lambdas, but adds an extra network call to each login.

      Store link data in user.data
      Push IdP linking info into a custom user.data.links[] field so it’s accessible in most lambdas without needing an API call. You’ll need a process to keep this data current.

    • W

      Solved How to Remove First and Last Name Claims from SAML Responses in FusionAuth

      Frequently Asked Questions (FAQ)
      • saml • • wesley
      2
      0
      Votes
      2
      Posts
      136
      Views

      W

      You can remove claims from the SAML response using a SAML v2 populate lambda. For example:

      samlResponse.assertion.attributes['firstName'] = null; samlResponse.assertion.attributes['lastName'] = null;

      Attach this lambda to your SAML Identity Provider configuration for that application.

      Documentation: SAMLv2 Response Populate Lambda

    • danD

      Solved Want to run FusionAuth and the backend app in Docker

      Q&A
      • docker dns • • dan
      2
      0
      Votes
      2
      Posts
      109
      Views

      danD

      You can create two values for the FusionAuth url:

      internalFusionAuthURL="http://fusionauth:9011" externalFusionAuthURL="http://localhost:9011"

      So basically whenever you are sending the redirect to the browser (pretty much just the authorize and logout URLs) you use externalFusionAuthURL which references localhost.

      When you are communicating with FusionAuth from the application backend (the express app) you use the internalFusionAuthURL which references the docker domain name.

      I tested that out and it seems to work fine.

      Give that a try.

    • N

      How to implement magic link login across devices

      General Discussion
      • • • njanaskie
      2
      0
      Votes
      2
      Posts
      40
      Views

      mark.robustelliM

      @njanaskie You are correct in that magic links are designed to be a one time use. I do not know of any work around for your situation.

      It will be interesting to see if others chime in.

    • danD

      Changing the fusionauth logging format

      Q&A
      • logging json logback • • dan
      3
      0
      Votes
      3
      Posts
      3.0k
      Views

      danD

      Worth re-emphasizing that this voids any warranty you might have from FusionAuth, per the license, exhibit A section 5.1.

      You can't get support from FusionAuth if you modify the software.