Multipass Single Sign-On (SSO) Examples

Last Updated -

Authentication to the Private Portal via Multipass

If your customers are already logged in to your site, you can provide them personalized access to your Desk.com Private Portal with the same username and password via Multipass.

Desk.com support centers have an optional feature called Private Access, which allows you to leverage your existing user database (whether it's PeopleSoft, Active Directory or some other database of users) for your support center. Leveraging your existing user database for Private Access is what we call Multipass, also referred to as Single Sign-On (SSO). Note that using Private Access with CNAMEs requires an SSL certificate. Also note that using a combination of Custom Domain Names (CNAME Records) and Private Access with Multi-Brand requires the purchase and installation of an SSL certificate for each brand. Learn more about Private Access.

While this feature is included with Desk out-of-the-box, some development is required on your end to authenticate users. A web server is required to handle the Multipass process described in detail here. Our example scripts are your "login page handler". The user lands on it, it generates a JSON hash with their user information (name, email, etc), then generates a URL that, when accessed, logs them into your support center.

In terms of system requirements, there are none. You can use any programming language, any programming library, any operating system, any domain, any web server, etc. The Multipass SSO is simply a process of sending the user to the following url below with the two GET parameters 'multipass' and 'signature'. https://{{customer.company_object.custom_subdomain}}.desk.com/customer/authentication/multipass/callback

Here are a few examples of Multipass scripts that provide a good starting point for your custom script. You can also view the full Multipass documentation for more information. Multipass Single Sign-On (SSO) Troubleshooting steps can be found here.

Rubyhttps://github.com/assistly/multipass-examples/blob/master/ruby.rb

PHP (Mcrypt)https://github.com/assistly/multipass-examples/blob/master/php.php

PHP (OpenSSL)https://gist.github.com/DeskWOW/ec962af768df36ba3874693cb010390f

Python - https://gist.github.com/tstachl/6678816

Javahttps://gist.github.com/tstachl/5327911

C#https://gist.github.com/tstachl/bbac2203275a23afb7d1

VBhttps://gist.github.com/rruhlen/6166783​ ​

Apexhttps://gist.github.com/tstachl/692a4ffc2f6f1b10a6ff​

Node.jshttps://gist.github.com/tstachl/8b87a2c379398fd34097

Perlhttps://gist.github.com/tstachl/40de9a607253466f4722

WordPress Pluginhttps://gist.github.com/tstachl/5ab95a73d5676549115c