Hi @BillYoung-arm
Whether or not the user is assigned to the environment, Only if the app is shared with the user, the user would be able to run it.
In my test,
1. I create a canvas app, the data source is a SharePoint list.
2. Users is the member of that SharePoint list, and is not enabled to the environment.
3. If I don't share the app to the user, and share the URL to him, it shows that the user don’t have access to this app.

4. If I share the app to the use, then I share the URL to him, it is able to run the app properly.

If this doesn't make sense for you, could you please share the details steps with screenshots, so that we could provide further assistant.
Best regards,
Sik