How to use TabCMD & the Tableau Server REST API when using SAML authentication
This is just a quick blog post from me on a common question that I tend to come across fairly often.
When you have configured SAML authentication on your Tableau Server, you essentially hand off the authentication part of a user login to a third-party system, typically referred to as an identity provider, or IdP. This third-party IdP authenticates the user, and passes them back to Tableau Server to log them into the web interface. All good right? Well, what do we do if we want to use, for example, TabCMD to login to the server via the command-line and perform some scripted tasks?
The things is that SAML authentication is not supported by TabCMD or the REST API, and googling this might lead you to this page where you might notice the following highlighted block:
So what does “you must specify the name and password of a user who has been created on the server” mean? Basically this means that you can use tabcmd and the APIs with a user that has a local password set on the Tableau Server.
When you add users to a Tableau Server that has been configured with SAML authentication, you will notice that you need only specify their username on Tableau Server, and then the account is created. That’s because Tableau Server assumes that the authentication will be performed by the third-party IdP, so it doesn’t need to record a password for that user locally on the server itself. Users that are created this way will not be able to authenticate to the server using command-line tools or APIs.
The simple workaround here is to set a password on Tableau Server for your user account, but this must be performed by another user that is also a server administrator. To show you how to do this, I’ve made a quick video. I hope you find it useful. As always, find me on Twitter @macdonaldj if you have any questions.