kimmknight / rdpx

rdpx enables seamless remote access to applications running on another computer.
MIT License
71 stars 19 forks source link

Error Adding Workspace on RemoteDesktop App #9

Open DFC1990 opened 3 years ago

DFC1990 commented 3 years ago

Hi all,

I've been trying to connect the Remote Desktop App (macOS) to the server for 2 days but the following error always appears.

App Version: Version 10.6.6 (1883)

image

kimmknight commented 3 years ago

That's unfortunate, but great to know, thanks for the info and screenshot!

caraar12345 commented 3 years ago

I'm seeing the same error too just so you know :)

solideus commented 3 years ago

After several tests I can report the following:

Works on:

It does not work:

Description of the error:

"No workspace is associated with this URL"

Note to keep in mind that the tested android versions are installed on the same mobile (Galaxy note 20 ultra) and version 8 works without problems.

sashaqwert commented 2 years ago

@kimmknight

That's unfortunate, but great to know, thanks for the info and screenshot!

Partially fixed https://github.com/kimmknight/rdpx/issues/6#issuecomment-1019130503

aflatter commented 1 year ago

After several tests I can report the following:

Works on:

* Windows 11

* Windows 10

* Android (Version app 8.1.81.435)

It does not work:

* Android (App version 10.0.13.1160)

* iPads

Description of the error:

"No workspace is associated with this URL"

Note to keep in mind that the tested android versions are installed on the same mobile (Galaxy note 20 ultra) and version 8 works without problems.

Hi @solideus, did you ever figure out what the source of the "No workspace is associated with this URL" error message is?

lumpov commented 8 months ago

are there any plans to solve this problem?

thefiredragon commented 7 months ago

Same question as @lumpov here

MrBrianGale commented 7 months ago

Just wanted to confirm with everyone having this issue - do you have a valid security certificate in place that has a trusted chain back to the top level certificate that is trusted by the app device? What I mean is if your security cert is self-signed OR signed by your company's signing authority, your iPad and Android device likely won't trust the certificate. Just want to make sure that the problem is actually with the authentication method and is not due to incorrect configuration. IF the config is 100% correct, then I suspect the app doesn't allow basic authentication (I didn't review the code behind, but just guessing it is basic auth and I suspect that the apps use kerberos/ntlm instead of basic auth based on the first error message in this thread).

Again, I'm just guessing on the issue, but want to confirm that configuration is accurate prior to doing any work/investigation on this. Not sure if I will be able to solve it; I am not that familiar with python, but I enjoy learning new things!

thefiredragon commented 7 months ago

@MrBrianGale I will test it on a fresh install and would give here an feedback I found an similar issue here:

https://github.com/kimmknight/raweb/issues/6

thefiredragon commented 7 months ago

@MrBrianGale I had installed rdpx with nginx as https proxy to localhost like your sample with an vaild certificate The Remote Desktop App tried to connect to this location:

127.0.0.1 - - [07/Apr/2024 18:29:15] "GET /api/arm/feeddiscovery HTTP/1.0" 404 19
127.0.0.1 - - [07/Apr/2024 18:29:15] "GET /TS/Default.aspx HTTP/1.0" 401 739
127.0.0.1 - - [07/Apr/2024 18:29:19] "GET /webfeed HTTP/1.0" 200 3430
127.0.0.1 - - [07/Apr/2024 18:30:05] "GET /api/arm/feeddiscovery HTTP/1.0" 404 19
127.0.0.1 - - [07/Apr/2024 18:30:05] "GET /TS/Default.aspx HTTP/1.0" 401 739
127.0.0.1 - - [07/Apr/2024 18:30:05] "GET /TS/en-US/Default.aspx HTTP/1.0" 404 19
127.0.0.1 - - [07/Apr/2024 18:30:05] "GET /RDWeb/Feed/webfeed.aspx HTTP/1.0" 404 19
127.0.0.1 - - [07/Apr/2024 18:30:18] "GET /RDWeb/Feed/webfeed.aspx HTTP/1.0" 404 19
127.0.0.1 - - [07/Apr/2024 18:30:18] "GET /api/arm/feeddiscovery HTTP/1.0" 404 19
127.0.0.1 - - [07/Apr/2024 18:30:18] "GET /TS/Default.aspx HTTP/1.0" 401 739
127.0.0.1 - - [07/Apr/2024 18:30:18] "GET /TS/en-US/Default.aspx HTTP/1.0" 404 19
127.0.0.1 - - [07/Apr/2024 18:30:56] "GET /RDWeb/Feed/webfeed.aspx HTTP/1.0" 404 19
127.0.0.1 - - [07/Apr/2024 18:30:56] "GET /TS/Default.aspx HTTP/1.0" 401 739
127.0.0.1 - - [07/Apr/2024 18:30:56] "GET /TS/en-US/Default.aspx HTTP/1.0" 404 19
127.0.0.1 - - [07/Apr/2024 18:30:56] "GET /api/arm/feeddiscovery HTTP/1.0" 404 19
127.0.0.1 - - [07/Apr/2024 18:31:00] "GET /TS/Default.aspx HTTP/1.0" 401 739
127.0.0.1 - - [07/Apr/2024 18:31:54] "GET /webfeed HTTP/1.0" 200 3430
127.0.0.1 - - [07/Apr/2024 18:32:05] "GET /webfeed HTTP/1.0" 200 3430
127.0.0.1 - - [07/Apr/2024 18:32:12] "GET /webfeed HTTP/1.0" 200 3430
127.0.0.1 - - [07/Apr/2024 18:32:37] "GET /RDWeb/Feed/webfeed.aspx HTTP/1.0" 404 19
127.0.0.1 - - [07/Apr/2024 18:32:37] "GET /TS/en-US/Default.aspx HTTP/1.0" 404 19
127.0.0.1 - - [07/Apr/2024 18:32:37] "GET /TS/Default.aspx HTTP/1.0" 401 739

Looks like the MS Client try to connect to this location:

127.0.0.1 - - [07/Apr/2024 18:32:37] "GET /RDWeb/Feed/webfeed.aspx HTTP/1.0" 404 19

rdpx only has /webfeed as current location

Android - Microsoft Remotedesktop 10.0.18.1251

Adding an URL like: https://myapp.com/webfeed Its currently not working inside the app, it looks like that the client try do an autocomplete to: https://myapp.com/TS/Default.aspx

Screenshot_20240407-183241_Microsoft-Remotedesktop~2

MrBrianGale commented 7 months ago

Well 404 is not found, so that looks like something configured with. 401 is not authorized, so an authentication error...

So someone looks to be set up wrong it looks like from my end... I have not had a chance to test things out though yet. Been busy...

On Sun, Apr 7, 2024, 10:45 AM thefiredragon @.***> wrote:

@MrBrianGale https://github.com/MrBrianGale I had installed rdpx with nginx as https proxy to localhost like your sample with an vaild certificate The Remote Desktop App tried to connect to this location:

127.0.0.1 - - [07/Apr/2024 18:29:15] "GET /api/arm/feeddiscovery HTTP/1.0" 404 19 127.0.0.1 - - [07/Apr/2024 18:29:15] "GET /TS/Default.aspx HTTP/1.0" 401 739 127.0.0.1 - - [07/Apr/2024 18:29:19] "GET /webfeed HTTP/1.0" 200 3430 127.0.0.1 - - [07/Apr/2024 18:30:05] "GET /api/arm/feeddiscovery HTTP/1.0" 404 19 127.0.0.1 - - [07/Apr/2024 18:30:05] "GET /TS/Default.aspx HTTP/1.0" 401 739 127.0.0.1 - - [07/Apr/2024 18:30:05] "GET /TS/en-US/Default.aspx HTTP/1.0" 404 19 127.0.0.1 - - [07/Apr/2024 18:30:05] "GET /RDWeb/Feed/webfeed.aspx HTTP/1.0" 404 19 127.0.0.1 - - [07/Apr/2024 18:30:18] "GET /RDWeb/Feed/webfeed.aspx HTTP/1.0" 404 19 127.0.0.1 - - [07/Apr/2024 18:30:18] "GET /api/arm/feeddiscovery HTTP/1.0" 404 19 127.0.0.1 - - [07/Apr/2024 18:30:18] "GET /TS/Default.aspx HTTP/1.0" 401 739 127.0.0.1 - - [07/Apr/2024 18:30:18] "GET /TS/en-US/Default.aspx HTTP/1.0" 404 19 127.0.0.1 - - [07/Apr/2024 18:30:56] "GET /RDWeb/Feed/webfeed.aspx HTTP/1.0" 404 19 127.0.0.1 - - [07/Apr/2024 18:30:56] "GET /TS/Default.aspx HTTP/1.0" 401 739 127.0.0.1 - - [07/Apr/2024 18:30:56] "GET /TS/en-US/Default.aspx HTTP/1.0" 404 19 127.0.0.1 - - [07/Apr/2024 18:30:56] "GET /api/arm/feeddiscovery HTTP/1.0" 404 19 127.0.0.1 - - [07/Apr/2024 18:31:00] "GET /TS/Default.aspx HTTP/1.0" 401 739 127.0.0.1 - - [07/Apr/2024 18:31:54] "GET /webfeed HTTP/1.0" 200 3430 127.0.0.1 - - [07/Apr/2024 18:32:05] "GET /webfeed HTTP/1.0" 200 3430 127.0.0.1 - - [07/Apr/2024 18:32:12] "GET /webfeed HTTP/1.0" 200 3430 127.0.0.1 - - [07/Apr/2024 18:32:37] "GET /RDWeb/Feed/webfeed.aspx HTTP/1.0" 404 19 127.0.0.1 - - [07/Apr/2024 18:32:37] "GET /TS/en-US/Default.aspx HTTP/1.0" 404 19 127.0.0.1 - - [07/Apr/2024 18:32:37] "GET /TS/Default.aspx HTTP/1.0" 401 739

Looks like the MS Client try to connect to this location:

127.0.0.1 - - [07/Apr/2024 18:32:37] "GET /RDWeb/Feed/webfeed.aspx HTTP/1.0" 404 19

rdpx only has /webfeed as current location

Android - Microsoft Remotedesktop 10.0.18.1251

Adding an URL like: https://myapp.com/webfeed Its currently not working inside the app, it looks like that the client try do an autocomplete to: https://myapp.com/TS/Default.aspx

Screenshot_20240407-183241_Microsoft-Remotedesktop.2.png (view on web) https://github.com/kimmknight/rdpx/assets/20144860/9de7b775-8091-4266-a13d-0847e9de09ac

— Reply to this email directly, view it on GitHub https://github.com/kimmknight/rdpx/issues/9#issuecomment-2041526318, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKSJBEWS6CQFP36LJBFQILY4FZ3ZAVCNFSM47FC2SHKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMBUGE2TENRTGE4A . You are receiving this because you were mentioned.Message ID: @.***>

thefiredragon commented 7 months ago

I don't know if rdpx currently has an URI (function) like

https://myapp.com/TS/Default.aspx

implemted. As a big question would you find some time for this next time if you're currently be busy? I also would like to donate to this nice project. The old MS RDP client is working with rdpx but the old client is currently not a solution for production usage.

greetings

thefiredragon commented 7 months ago

I found something interesting, Someone forked the old raweb repo and did some useful commits for the new routing adresses:

// Route to generate the XML feed for /webfeed.aspx
app.get('/webfeed.aspx', (req, res) => {
    generateXMLFeed(res);
});

// Route to generate the XML feed for /rdweb/feed/webfeed.aspx
app.get('/rdweb/feed/webfeed.aspx', (req, res) => {
    generateXMLFeed(res);
});

// Route to generate the XML feed for /api/feeddiscovery/webfeeddiscovery.aspx
app.get('/api/feeddiscovery/webfeeddiscovery.aspx', (req, res) => {
    generateXMLFeed(res);
});

https://github.com/NepuShiro/raweb/commit/35da36d9005c8ac95034b3769b704b32f65f94f0

thefiredragon commented 7 months ago

https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-tswp/1fc83092-67b5-4091-bd6f-256ce6658e80

Protocol specifications

MrBrianGale commented 7 months ago

What is fun about the protocol spec document is that even if RDPX is written 100% to spec, the apps MAY not be. What I mean is RDPX could be 100% to spec, but if the android app is not, the android app may fail even though RDPX is good. AND if the Android app works with the Microsoft setup for Remote Apps, then they are not going to update the app to work with RDPX.

Now, that being said, I am planning to work on this soon unless someone beats me to it. Question for you - does NepuShiro's raweb work with the latest android/OSX app? Just wondering if their version of the app could be used instead as a short term solution for you until this gets resolved. I am also a bit curious if that commit can be merged into RDPX or if the other changes are too drastic that it will cause errors.

EDIT - never mind... reviewed the code changes and they are too different from this app to be useful. Some of the logic may be able to be brought across but need to convert from JS to python which is non-trivial. Probably safer to just review the official spec and update the python to reflect the spec (if it doesn't already).

thefiredragon commented 7 months ago

Hey thank you for your response, From Nepus repo it's not working with the newer clients also like here. I had only see that he has add the url pathes to the rework. Newer clients for android and windows look like that these need ntlm auth and some other changes to make it working. The spec sheet was also only as a suggestion.

kimmknight commented 7 months ago

It's great to see an interest in improving rpdx! I haven't really touched it for years. I did start rewriting it using Node for the backend and a Vue 3 in the frontend, however, I never got this to a finished state.

I have made a few attempts at implementing the new MS-TSWP protocol protocol] in RAWeb. I haven't yet been successful.

I have been testing with the RDP Client (Windows) from the Microsoft Store and the Android app.

A few things I've noted:

So far I have managed to get the discovery process working, but when the client tries to add the workspace, it seems to be failing during the authentication process. I believe it is because I have not implemented the required authentication process/cookie. I don't have the time to research this further and implement the new process in rdpx or raweb in anytime soon.

I have attached IIS access logs show when a new client successfully adds the workspace from a proper Windows Server.

thefiredragon commented 7 months ago

@kimmknight you're right, the same changes I also found. It's sad to hear that your so busy. But if you would spend time again into this nice project we would be more than that thankful. We will look forward to rdpx, best regards

kimmknight commented 7 months ago

I found a little time to further read through the MS-TSWP specs and analyse IIS detailed logs (of connecting a new RD client to a working RD workspace server) and have made some progress. It looks like the auth process utilizes IIS's Forms Authentication method. This seems to handle the authentication and cookie. So this may be simpler to implement than I previously thought.

This is possibly good news for RAWeb as it is hosted in IIS. Less good for rdpx which uses a Python web server (which I'm not a big fan of anyway).

As I have time, I will work on trying to get new RD clients working with RAWeb. I will post any further updates to RAWeb issue #6

If it gets to a stage where new RD clients can add a workspace successfully, I'm thinking that rather than continuing development of rdpx in its current form, perhaps I/we should focus efforts into making RAWeb do the things that rdpx does (remoteapp management). Thoughts?

thefiredragon commented 7 months ago

For testing and implementing raweb it's a better base to make efforts it think. For python there are possibilities to add ntlm auth but will not be as easy as using first raweb. rdpx has a nicer management. An rewrite to rdpx should be done if we had one way working. Migration of the management from rdpx to raweb should also be possible.

Personally I would prefer a code base of python or something else instead of main M$ Code languages. The important part currently should only be if we could find a way to get it working again so I think your idea is a good way to go.

kimmknight commented 7 months ago

Agreed. My language preference would be Node.js (once we've figured out the protocol).

I actually have a mostly-working implementation of rdpx I wrote in using Node.

That said, using ASPX has the advantage that it utilises IIS which is a Windows component so users don't need to install (and keep updating) another platform.

As you say, we can make that decision if/when I/we get RAWeb working with the new MS-TSWP protocol.

kimmknight commented 7 months ago

RAWeb issue #6 has been updated with my latest findings.