Персональные токены доступа и JWT от Connected App: когда что уместно
Два вида учётных данных Tableau, выполняющих две разные работы. Одни несут права человека. Другие расширяют возможность платформы. Правильный выбор оставляет модель разрешений, которую вы строили годами, главной в вопросе о том, кто что видит.
Выдан человеку, на его имя, ровно с его правами и ничем больше. Это учётные данные для входа, и они отвечают на вопрос: кто это.
Connected App, прямое доверие
Настраивается один раз на сайт администратором. Сервер выпускает из него короткоживущие JWT, которые удостоверяют названную сервисную учётную запись. Это расширитель возможностей, и он отвечает на другой вопрос: что может делать эта возможность платформы и для какой учётной записи.
Это два пути в два разных места. Считать их взаимозаменяемыми это самая тяжёлая по последствиям ошибка с учётными данными в интеграции с Tableau. Ошибка распространена, потому что работают оба.
Почему персональный токен побеждает
Правило здесь записано в коде и сформулировано в модуле, который его реализует. Каждый пользователь входит со своим собственным токеном Tableau. Этот токен несёт его точные права в Tableau. Это граница управления для каждого чтения, каждой записи и каждого вызова ассистента или инструмента, сделанного от его имени.
Вход принадлежит только персональному токену. Путь в один клик, обходивший его, когда-то существовал и был намеренно выведен из эксплуатации. Резолвер удалён, и шлюз теперь отклоняет попытку подключения, имеющую форму JWT.
Причина практическая, а не архитектурная. Позвольте сервисным учётным данным выполнить вход за человека, и каждое действие после этого несёт права сервисной учётной записи, а не человека. Модель разрешений Tableau, которую ваша команда строила годами, перестаёт решать, кто что может видеть.
Что делает Connected App
Она покрывает возможность платформы: человек уже вошёл, а самой платформе нужен собственный токен. Встраивание это живой пример. Настоящее представление Tableau, отрисованное внутри другой поверхности, требует токена, который примет API встраивания, а персональный токен для этого неподходящей формы.
ID клиента, ID секрета и значение секрета закрепляются для каждого сайта Tableau администратором, шифруются при хранении и никогда не возвращаются в браузер.
Токен выпускается на стороне сервера и ограничен доменом. Он короткоживущий по замыслу, потому что долгоживущий сервисный токен это постоянное разрешение, которое никто не пересматривает.
JWT удостоверяет названную сервисную учётную запись Tableau: до чего он дотягивается, до того дотягивается эта учётная запись. Дайте ей широкую роль, и вы дали широкую роль.
Как держать персональные токены в порядке
Один токен на человека для интерактивной работы. Это его идентичность внутри продукта, и совместное использование разрушает всю атрибуцию ниже по потоку.
Отдельный выделенный токен для любой автоматизации. Tableau допускает одну активную сессию на токен. Автоматизация, повторно использующая чей-то интерактивный токен, выбросит этого человека из его собственной сессии, обычно в неудобный час.
Называйте токен по назначению, а не по создателю. В течение года создатель сменит роль, а назначение нет.
Ротируйте с периодичностью, которую вы действительно будете соблюдать, и заносите срок истечения в календарь, а не обнаруживайте его.
Второй пункт порождает тикеты в поддержку, которые выглядят как нестабильность продукта. Это коллизия учётных данных. Её стоит проверять первой всякий раз, когда запланированная задача и человек, кажется, мешают друг другу.
Единственное намеренное исключение
Секреты в этом пакете живут только в рамках сессии. Это чисто работает, пока что-то не должно запуститься в два часа ночи, когда никто не вошёл. Секрет уровня сессии в этот час по определению существовать не может.
Есть одно исключение, и оно явное, а не подразумеваемое. Оператор нажимает, чтобы закрепить токен для запланированных запусков. Он шифруется при хранении под машинным ключом, никогда не журналируется и никогда не возвращается в браузер. Вызов описания возвращает только имя токена. Один клик его удаляет. Интерфейс рекомендует выделенный токен для автоматизации, по причине коллизии, описанной выше.
Исключение, на которое человек должен нажать, это исключение, которое кто-то сможет потом найти. Исключение, которое происходит автоматически, никто не сможет проверить, и в конце концов никто не вспомнит, что на него соглашался.
Сообщайте, какие учётные данные ответили
Запланированная задача может сначала попробовать персональный токен и откатиться к JWT от Connected App. Это разумный дизайн. Он же может месяцами скрывать сломанные учётные данные, потому что снаружи запуск продолжает удаваться.
Исправление небольшое, и оно важно. Записывайте, какие учётные данные на самом деле прошли аутентификацию, и показывайте это в строке. Откат, который происходит незаметно, это откат, который никто никогда не чинит. Впервые о нём услышат в тот день, когда откат тоже сломается.
Выбор в четыре проверки
Конкретный человек делает это прямо сейчас, перед экраном. Его собственный токен.
Возможности платформы нужен собственный токен, пока человек присутствует. Connected App.
Это работает, когда никого нет. Выделенный токен для автоматизации, намеренно закреплённый, а не чей-то интерактивный.
Какой-то части нужны права, принадлежащие не тому, кто спрашивает. Остановитесь здесь. Это та проверка, которая превращает границу управления в пожелание.
Четыре проверки, и на четвёртой стоит не спешить. Всё остальное на этой странице зависит от того, сделана ли она правильно.
Человек уходит. Его имя остаётся на рабочих книгах, расписаниях и подписках, и несколько из них ломаются без единого звука. Чем он владеет, что ломается и порядок, при котором лицензия остаётся восстановимой.
Правило утверждения перед запуском простыми словами. Ассистент читает, объясняет и предлагает, а путь записи принадлежит человеку. Чего это стоит, что это даёт и три вопроса к любой функции ИИ.
Утверждение это предложение. Доказательство это то, что второй человек может проверить, не спрашивая вас. Что должен содержать аудиторский след, что на самом деле доказывает хеш, и чего требовать от любого инструмента, который заявляет, что его создаёт.