Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!

Alteryx Designer Desktop Knowledge Base

Definitive answers from Designer Desktop experts.

The reply url specified in the request does not match the reply urls

SophiaF
Alteryx
Alteryx
Created

Issue

The following error appears when configuring your credentials in the Dynamics CRM Tools, Azure Data Lake Tools, OneDrive Tools, or the PowerBI Output tool:

The reply url specified in the request does not match the reply urls configured for the application

image.png

Environment

  • Alteryx Designer
    • 2018.2+
  • Connectors
    • Dynamics CRM Tools
    • Azure Data Lake Tools
    • OneDrive Tools
    • PowerBI Output tool
  • Windows Operating System


Cause

The redirect URI specified in the Azure application for the respective connector has not been set or has been configured with the wrong URL.



Resolution

  1. In the Redirect URI section of your Azure application, select Single-page application (SPA) from the dropdown menu
  2. Add the following two URLs:
If you do not have permissions to do this, please contact your Azure administrator
If you do have permissions, follow the instructions from Microsoft's documentation:Add redirect URI(s) to your application


Additional Resources

Comments
rpaugh
11 - Bolide

Hello,

 

I'm running into this exact problem, used the Redirect URI you recommended in my Azure application, but still getting the 'redirect_uri is not valid' error.  Any suggestions as to what else I might be missing?

 

Thanks.

SophiaF
Alteryx
Alteryx

@rpaugh which tool are you using? I haven't personally seen another cause for this issue, but we would be happy to troubleshoot further if you open a ticket with us!

rpaugh
11 - Bolide

@SophiaF I'm using a custom tool built with the HTML GUI SDK.  I can get the OAuth popup to come up and accept my username and password, but it can't pass the resulting access token back to my GUI (which will subsequently be passed to the engine) because the redirect URI of the GUI HTML form does not match anything I can enter in the approved Redirect URIs in my Azure app.

 

When I opened the developer tools in Alteryx I saw that the redirect URI was the raw local HTML file location.  When I try to enter that in Alteryx, here is what I see:

 

Alteryx Microsoft OAuth Redirect URI.png

rpaugh
11 - Bolide

@SophiaF I think the issue is that I'm dealing with a pop-up window, wherein the redirect can't close the pop-up and return the access token to the parent configuration window in Alteryx.

chickenlicken
8 - Asteroid

Did you ever fix this?  I'm facing the same problem with PowerBI Output.

rpaugh
11 - Bolide

@chickenlicken actually I did!  I found out that I couldn't use the pre-built MSAL library as it took too much control of the process, prevented me from intervening in certain steps to pull out the response code.  So what I did was copy the login code used for the Google Input tool and reconfigure it a bit to pop up the Microsoft login page instead and look for the appropriate URL in the window after the login redirect.  Once the pop-up hit the appropriate URL I pulled out the code from the query string and closed the window.  Here's the code:

 

function login() {
          var win         =   window.open(_url, "windowname1", 'width=800, height=600');

          var pollTimer   =   window.setInterval(function() {
            try {
                // Change to reference the previously set redirect URI rather than a static string to allow for different tenants.
                if (win.document.location.href.split('?')[0] === "https://login.live.com/oauth20_desktop.srf") {
                  var url =   win.document.URL;
                  code =   gup(url, 'code');
                  authorize(code).then(function(response) {
                    //Alteryx.Gui.Manager.getDataItem('AccessToken').setValue(response.access_token);
                    Alteryx.Gui.Manager.getDataItem('RefreshToken').setValue(response.refresh_token);
                  });
                  win.close();
                }
              } catch(e) {
            }
          }
          , 500);
      }

 

In this particular example, I pulled out the refresh token, but you could pull out the access token using "response.access_token" if you prefer. 

 

Note: make sure to match the URL you're looking for in the login pop-up window result to the one you sent as the redirect URL in your initial auth URL (e.g. "

/oauth2/v2.0/authorize?redirect_uri=https://login.live.com/oauth20_desktop.srf").

 

nehakakar
6 - Meteoroid

@rpaugh

Your code snippet is well-documented and shows how you handled the pop-up window, monitored the URL changes, and retrieved the code from the query string. This approach allowed you to bypass the pre-built MSAL library's limitations and gain more control over the authentication process.