def get_auth_token(session, account_id, username, password, return_type=
    None, **kwargs):
    """
    Get user authentication token

    :type session: zadarapy.session.Session
    :param session: A valid zadarapy.session.Session object.  Required.

    :type account_id: str
    :param account_id: The VPSAOS account 'id' value as returned by
        get_all_accounts.  For example: '91ea5bd5cdc04adb9f5e3c00a346c463'.
        Required.

    :type username: str
    :param username: Username. Required.

    :type password: str
    :param password: User password. Required.

    :type return_type: str
    :param return_type: If this is set to the string 'json', this function
        will return a JSON string.  Otherwise, it will return a Python
        dictionary.  Optional (will return a Python dictionary by default).

    :rtype: dict, str
    :returns: A dictionary or JSON data set as a string depending on
        return_type parameter.
    """
    path = '/api/users/authenticate.json'
    body_values = {'account': account_id, 'user': username, 'password':
        password}
    return session.post_api(path=path, body=body_values, return_type=
        return_type, **kwargs)
