For a simple use-case like that, I would just use a Web Tab. Canvas is more than you need, for sure.
When it comes time to pass parameters out to the 3rd-party site, you'll need to change it up a bit. I'd use a Visualforce Tab at that point. Set it to load a Visualforce page that's only job is to dynamically create the parameters for the 3rd-party URL, and then redirect. Something like this:
Page:
<apex:page controller="MyController" action="{!redirect}"/>
Controller:
public with sharing class MyController{
public PageReference redirect(){
PageReference pageRef = new PageReference('https://third-party-site.com');
String currentUsersPhone = [SELECT phone FROM User WHERE Id = :UserInfo.getUserId() LIMIT 1].phone;
pageRef.getParameters().put('phone', currentUsersPhone);
pageRef.setRedirect(true);
return pageRef;
}
}
Make sure all users have access to the Visualforce page, and you should be good to go.
UPDATE:
Based on your comments (below) about 3rd party site content not being displayed within another web page, that's definitely a concern. Websites can set the X-Frame-Options HTTP header to tell browsers not to render their content inside another page.
All modern browsers respect the X-Frame-Options setting, so if it's an issue for the 3rd party site you're working with, it won't matter whether you're using web tabs, embedded Visualforce, or Canvas -- you'll have the same problem with all of them.
The only way I can think of to get around this would be to load the page server-side (in Apex) and then display its content in a Visualforce page. You won't be able to navigate within the 3rd party site -- just display a single page -- but it is possible.
Note that you'll have to create a remote site record for the 3rd party site to access it from Apex.
Page:
<apex:page controller="MyController">
{!pageContent}
</apex:page>
Controller:
public with sharing class MyController{
String pageContent {get; set;}
public void myController(){
HttpRequest req = new HttpRequest();
req.setEndpoint('http://third-party-site.com');
req.setMethod('GET');
Http http = new Http();
HTTPResponse res = http.send(req);
pageContent = res.getBody();
}
}
That said, I don't think I would try to work-around an X-Frame Options setting forbidding display within another page. The site owner's request should be respected.