1. A method for providing applications to a user, the method comprising operations of: authenticating a user of a client device over a channel, wherein the authentication operation is performed using a directory service; presenting a plurality of applications in a graphical user interface (GUI) displayed by the client device, wherein the plurality of applications depends at least in part on the authentication, the client device, and the channel and wherein the plurality of applications includes a thin application and a software-as-a-service (SaaS) application; receiving a selection as to an application from the user; provisioning the SaaS application, if the selection is for the SaaS application, wherein the provisioning includes automatically logging the user onto an account with a provider of the SaaS application using a single sign-on protocol and connecting the user to the account so that the user can interact with the SaaS application; and launching the thin application, if the selection is for the thin application, wherein each operation of the method is executed by one or more processors.