Вы правы - REST-вызовы в идеале не сохраняют состояния, и сохранение чего-либо в переменной сеанса, а использование этого для REST-вызова - анафема. Например, вы не можете гарантировать, что клиент RESTful может даже отправлять информацию cookie, необходимую для переменных сеанса.
Если вам нужна аутентификация, тогда у вас должны быть вызовы REST, которые возвращают что-то вроде билета, тогда вызывающий REST отправит этот билет как часть другого вызова.
UPDATE
Для системы тикетов вы обычно хотите использовать ту же аутентификацию или аналогичную аутентификационную систему. Например, если вам требуются имя пользователя и пароль, вы можете запросить запрос билета POST. Билет - это GUID, который передается при последующих вызовах. Билет на сервере может храниться в сеансе или в БД (обычно у меня есть таблица TICKETS с такими вещами, как даты истечения срока действия).
$result = file_get_contents('http://site.com?action=auth&user=matt&password=pass');
// parse $result XML for ticket or auth error
// subsequent calls...
$result = file_get_contents('http://site.com?action=getSomething&ticket=" . $ticket);
QuickBase работает следующим образом - вы отправляете действие API_Auth с именем пользователя, паролем и токеном приложения API и получаете взамен билет. Затем вы передаете свой токен приложения api и билет на последующие вызовы - и запросы GET, и отправку POST.