Я думаю, что лучшим способом было бы иметь децентрализованный SSO, как это реализовано в Open ID. Если в каждой учетной записи может быть много провайдеров, то при сбое одного провайдера вы можете переключиться на другого.
С другой стороны, если требуется централизованный SSO. Единственное, о чем я могу подумать, - это заставить центральный орган генерировать криптографический сертификат для каждого пользователя. Если у службы есть свежая копия списка отзыва сертификатов и кэшированная копия открытого ключа центрального органа, она может проверять сертификаты, даже если центральный орган недоступен. К сожалению, этот метод, вероятно, пострадает из-за проблем с юзабилити, поскольку пользователям нужно будет держать копию своего сертификата под рукой и знать, о чем вы говорите, когда запрашиваете его.