FusionAuth
    • Home
    • Categories
    • Recent
    • Popular
    • Pricing
    • Contact us
    • Docs
    • Login
    Log in to post
    Load new posts
    • All Topics
    • New Topics
    • Watched Topics
    • Unreplied Topics
    • All categories
    • F

      Unsolved Duplicating an application held in 'Tenant1' to 'Tenant2' stays in 'Tenant1'

      Q&A
      • • • francis.ducharme 0
      3
      0
      Votes
      3
      Posts
      62
      Views

      F

      @mark-robustelli thanks. I've also tried by retrieving the template application and then changing some of its properties as such

      //Use same object for next request (creating application), assign new values appTemplate.jwtConfiguration.accessTokenKeyId = primaryDefaultJwtKeyId; appTemplate.jwtConfiguration.idTokenKeyId = secondaryDefaultJwtKeyId; appTemplate.tenantId = newTenant.id; appTemplate.name = `Portal (${env.toUpperCase()})`; appTemplate.oauthConfiguration.authorizedRedirectURLs = [ `https://frontend.com/*`, `https://backend.com/api/auth/callback` ] delete appTemplate.id; delete appTemplate.oauthConfiguration.clientSecret; delete appTemplate.oauthConfiguration.clientId; //assign new ID to roles... appTemplate.roles.forEach(role => role.id = crypto.randomUUID()); const newApplication = await fusionAuthService.createApplication(appTemplate); async createApplication(applicationRequest) { const client = new FusionAuthClient( this.apiKey, this.url, applicationRequest.tenantId ); try { return (await client.createApplication(null, { application: applicationRequest})).response.application; } catch (err) { this.logError(err); } }

      While this works API and UI wise any user trying to authenticate will receive no successResponse from ExchangeRefreshTokenForAccessTokenAsync and I have no further details in errorReponse either.

      So maybe something else needs to be zapped/modified before using the appTemplate to create the clone ?

    • L

      Unsolved Migration of Fusion Auth hosted (AWS) to GCP

      Q&A
      • • • lambert.torres
      2
      0
      Votes
      2
      Posts
      12
      Views

      mark.robustelliM

      @lambert-torres You can get support for FusionAuth. Please see the pricing page if you are interested. I'm not sure if this is your exact situation, but you might want to look at this blog post as well.

    • W

      Unsolved Using server-side GTM with FusionAuth for Google Ads tracking

      Q&A
      • • • witard91335
      2
      0
      Votes
      2
      Posts
      17
      Views

      mark.robustelliM

      @witard91335 Interesting, how do you see the flow working? What kind of tags are you trying to track though FusionAuth?

    • D

      Unsolved Force logout

      Q&A
      • • • d.chinguun.0301
      3
      0
      Votes
      3
      Posts
      43
      Views

      D

      Hi @mark-robustelli, thanks for your reply. I need an API that logs out a user, but apparently that’s not possible. Is there any way or approach to log someone out.

    • W

      Solved How to Replace Arrays with PATCH in FusionAuth Using application/merge-patch+json

      Frequently Asked Questions (FAQ)
      • api • • wesley
      2
      0
      Votes
      2
      Posts
      51
      Views

      W

      Good question. I believe this is due to how we implemented our PATCH calls. If you are making a straight API call, you can change the Content-Type header to application/merge-patch+json which will instead overwrite the existing array with whatever you have provided. That's the most straightforward way to replace array values. There are other methods detailed in the doc below but those involve removing values one by one instead of just overwriting them. The downside here is that I don't believe Client Libraries usually support the merge-patch header.

      https://fusionauth.io/docs/apis/#the-patch-http-method
    • W

      Solved Custom Registration Fields Missing for Social Logins – Why You Should Listen for registration.update Events

      Frequently Asked Questions (FAQ)
      • idp identity • • wesley
      2
      0
      Votes
      2
      Posts
      23
      Views

      W

      If you believe that you have discovered a bug or issue with FusionAuth, please log an issue below.

      https://github.com/FusionAuth/fusionauth-issues/issues/new/choose

      To note, you will likely want to be listening to the registration.update webhook for changes to the registration object prompted by additional fields the user needs to have completed based on what is a required field for self service registration.

      In the case of a user entering all these fields "manually" (as part of a registration form) we will create the user and the registration at the same time (thus transmitting all information, including all required registration fields, as part of the user.create and registration.create events).

      However, in the case of a social login, the user and registration will be created after the IdP provider returns information via the user.create and registration.create events. Additional registration will be asked of the user as part of the complete registration process (if there are additional required fields) and that additional information will be transmitted as part of the registration.update event.

      https://fusionauth.io/docs/extend/events-and-webhooks/events/user-registration-update
    • W

      Solved Why FusionAuth Doesn’t Support the SAML ‘Transient’ NameIDPolicy

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

      W

      The transient policy is not something FusionAuth will support for the SAML NameID policy. From the SAML standards doc, a transient NameID is supposed to be a temporary value which is not a good basis to build a link between two identity systems on. That is the main reason FusionAuth does not support this policy as it would likely lead to issues later down the line with the Identity Provider. Apologies for the inconvenience but having the User ID/UUID shift or change would cause problems as FA relies on a consistent User ID/UUID(NameID) to make a SAML link work.

      http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf
    • W

      Solved Airgapped License Still Connecting to reactor.fusionauth.io – Can It Be Disabled?

      Frequently Asked Questions (FAQ)
      • self hosted • • wesley
      2
      0
      Votes
      2
      Posts
      17
      Views

      W

      Currently, there is not a way to turn it off. Our air gapped license is still going to try to make that call out to us, but that won't cause any issues. The difference being that a normal license would have issues if it could not "phone home" back to us whereas the air gapped license won't have issues but it will still try to make those calls.

    • W

      Solved How to Change Fonts in the FusionAuth Hosted Login Page

      Frequently Asked Questions (FAQ)
      • theme • • wesley
      2
      0
      Votes
      2
      Posts
      53
      Views

      W

      If you want to change the font on the hosted login page and the login experience users are offered through FusionAuth, then this can be changed via our Themes. Very likely you will want to update the CSS associated with the theme you are using for the FusionAuth Application/Tenant. Changes to the theme can be completed through this API: https://fusionauth.io/docs/apis/themes/advanced-themes.

      Alternatively, you can use the Admin UI to make changes to your CSS as well.

    • W

      Solved Custom Domain and SSL Certificate Support in Basic Cloud Hosting

      Frequently Asked Questions (FAQ)
      • domains • • wesley
      2
      0
      Votes
      2
      Posts
      54
      Views

      W

      Yes with a Basic Cloud you get one custom domain and no backups, you would just need to update your DNS records to include our CNAMEs for this custom domain. You would submit your custom domain via the Hosting tab of the account.fusionauth.io under the Action Drop down. Then you will be shown the CNAME record for that domain and you will have to update your DNS records to include this CNAME. You can see an example of this at the doc below.

      https://fusionauth.io/docs/get-started/run-in-the-cloud/cloud#custom-domains

      You would not be able to use your own SSL certificates. We would handle all those in FusionAuth Cloud. We create the certificates on our end and you just need to create DNS records to validate the domain with the CNAME records.

    • W

      Solved How to Handle CAPTCHA and Rate Limits for Automated Testing in FusionAuth

      Frequently Asked Questions (FAQ)
      • rate limiting • • wesley
      2
      0
      Votes
      2
      Posts
      46
      Views

      W

      Thanks for the question. Updating your instance wouldn't change your situation. Currently, the only options are what you found outlined in the documentation you mentioned.

      https://fusionauth.io/docs/get-started/run-in-the-cloud/cloud#captcha-and-rate-limits

      As we build out our Cloud Offerings there may be other options, but this is what is currently available. Oftentimes, we find that people will use a local copy of FusionAuth to complete their automated testing if they cannot locate an IP address that meets our allowlisting requirements.

    • W

      Solved How to Update user.data for a User in FusionAuth via API or Admin Forms

      Frequently Asked Questions (FAQ)
      • api • • wesley
      2
      0
      Votes
      2
      Posts
      59
      Views

      W

      There are a few ways you can get what you need. You can either make these changes via the API and then they will be updated in the UI.

      https://fusionauth.io/docs/get-started/core-concepts/users#user-data

      https://fusionauth.io/docs/apis/users#update-a-user

      Or you can do this using custom admin forms:

      https://fusionauth.io/docs/lifecycle/manage-users/admin-forms
    • W

      Solved How to Find Your Reactor License ID and Use It with Kickstart in FusionAuth

      Frequently Asked Questions (FAQ)
      • self hosted • • wesley
      2
      0
      Votes
      2
      Posts
      27
      Views

      W

      The license ID is just the license key itself. You can grab your license here https://account.fusionauth.io/account/plan/. Each license will have a prod key and non-prod key, for testing you just need to grab the non-prod key and use that for your license ID in Kickstart.

      https://fusionauth.io/docs/get-started/download-and-install/development/kickstart#set-your-license-id

    • W

      Solved How to Authenticate a Local React App with FusionAuth Hosted on Azure Without Cross-Origin Cookie Issues

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

      W

      If you are using the React SDK (which uses Hosted Backend: https://fusionauth.io/docs/apis/hosted-backend, then there are a couple options but they will all require some integration work from your end. The SDKs and Hosted Backend are designed to be easy to use and implement but they are not flexible as you can see with the cookies. Also I'm not sure if this was a consideration in the decision that running FusionAuth locally is not an option but just in case it was: You can use your FusionAuth non-production licenses wherever you want, we do not charge more "per deployment". So you can activate your non-prod license on a locally hosted FusionAuth instance in addition to your FusionAuth on Azure App Service, you can run your non-prod license on as many instances as you want.

      Develop your application while hosting it on Azure App service so FusionAuth and the app are on the same domain

      Setup a proxy for either your application or FusionAuth so they can be on the same domain

      Documentation for setting up a proxy for FusionAuth: https://fusionauth.io/docs/operate/deploy/proxy-setup

      Create your own Hosted Backend, example here: https://github.com/FusionAuth/fusionauth-javascript-sdk-express/tree/main

      Similar to #3, instead of setting up a Hosted Backend use the OAuth2 endpoints directly. In this scenario you will also be responsible for doing the OAuth code exchange for a token then setting the token cookies on the browser as well as session management with these tokens.

      https://fusionauth.io/docs/lifecycle/authenticate-users/oauth/endpoints

      https://fusionauth.io/docs/operate/secure/token-storage

    • 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
      11
      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
      35
      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.7k
      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
      45
      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
      53
      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
      13
      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