Juju GUI (source: lp:juju-gui; live demo) allows you to deploy services in a Juju environment through a web browser. It's a free software with AGPL v3 license, so you can probably fork it and modify it as needed, if it doesn't quite fit your needs. To use it, you'll need to deploy it in your environment and expose it. See the deployment instructions.
Yet another choice for automated/scripted (not web-based) deployments with Juju is the Python-based Juju Deployer.
The concept of role-based permissions and multiple user accounts is not yet supported by Juju, but it's planed. So, Juju can't directly help with user account management for your customers, except perhaps if you write custom charms that provide that.
Lastly, each Juju environment is specific to a single cloud provider. So in order to choose where to deploy a service, you'll need to generate the configuration for the chosen public cloud in environments.yaml, then bootstrap it (per customer), and finally deploy the service(s). An interesting idea is the manual provisioning, which allow you to add any existing machine to an environment, as long as you can connect to it using SSH and the machine can connect back to the state server node (and the other machines as well, if you'll be adding relations to it).
So you see, even though Juju can help you with the deployments and orchestration, a fair amount of "glue" has to be custom-built around it to enable such type of hosted solution you're aiming to provide to end-users.