объясни oauth-agent-identity --простыми-словами

OAuth / Идентичность агента
Ты делал это сотни раз, не задумываясь. Заходишь зарегистрироваться в новом приложении и вместо того, чтобы придумывать еще один пароль, жмешь "Sign in with Google." Всплывает маленькое окно, спрашивает разрешение, ты нажимаешь allow — и ты внутри. Ты не отдавал этому приложению пароль от Google. Даже не вводил его. И все же оно каким-то образом знает, кто ты.
Этот маленький танец называется OAuth, и это одна из лучших незаметных идей в софте.
Он решает задачу доверия между незнакомцами.
Представь, что отдаешь машину парковщику в отеле. Ты не отдаешь ему всю связку ключей. Ты отдаешь ключ парковщика, который нарезан ровно под одну задачу: завести двигатель и проехать двадцать метров. Он не откроет бардачок, где лежат документы. Не откроет багажник. Парковщик делает одну вещь, которую ты разрешил, и физически не может сделать остальное, даже если захочет. Ты уходишь спокойно, потому что сам ключ держит границу.
OAuth — это ключ парковщика для твоих аккаунтов. Когда ты кликаешь "Sign in with Google", происходит вот что:
- Новое приложение говорит: "Я хочу понять, кто этот человек." Оно никогда не просит твой пароль.
- Google выступает доверенным посредником и спрашивает уже тебя напрямую: "Это приложение хочет получить имя и email. Разрешить?"
- Ты говоришь да. Google дает приложению ограниченный пропуск, а не твой пароль.
- Приложение использует этот пропуск, чтобы сделать несколько конкретных вещей, которые ты одобрил, и ничего больше.
Твой настоящий логин никогда не уходит от Google. У приложения есть только пропуск, на котором написано: "этот человек разрешил мне делать вот эти конкретные вещи", и ты можешь разорвать этот пропуск, когда захочешь.
У этого пропуска есть имя, и его стоит знать: токен.
Не тот токен, о котором мы говорили раньше: те были LEGO-кирпичиками языка. Этот больше похож на браслет для прохода за сцену. Он доказывает, что тебе можно войти, говорит, в какие комнаты можно заходить, и охранник может срезать его с твоей руки в ту секунду, когда ты начнешь чудить. В одной маленькой полоске зашиты три вещи:
- Кто ты. Приложение знает, что это действительно ты.
- Что тебе можно трогать. Читать календарь — да. Удалить весь календарь — нет.
- На какой срок. Многие такие пропуска истекают сами, поэтому забытый доступ не живет вечно.
А теперь почему это из удобной мелочи превратилось в вещь, которая реально важна: агенты.
Большую часть этой серии ключом AI во внешний мир был API-ключ. Одна длинная секретная строка, которая говорит: "это я, спиши на мой аккаунт, пропусти". И у API-ключа внутри прячется настоящая проблема: все или ничего. Кто держит ключ, тот может сделать все, что может твой аккаунт. Нет режима "читать, но не удалять". Нет "этот канал, но не биллинг". Это мастер-ключ от всего дома.
Это было более-менее терпимо, пока ты был единственным, кто его держит. Но это совсем не окей, когда ты начинаешь раздавать ключи AI, который действует от твоего имени, работает пока ты спишь и может уверенно ошибаться посреди задачи. Ты не хочешь дать такой штуке мастер-пароль и уйти.
Поэтому вместо этого ты даешь агенту собственную идентичность: отдельный ограниченный пропуск, не твой. Пропуск, нарезанный ровно под работу, ради которой ты его нанял, и ни на сантиметр больше. Например:
- Читать твой календарь, но никогда не удалять события.
- Писать в один конкретный канал, но никогда не трогать биллинг.
- Забрать заказы за прошлую неделю, но никогда не делать возвраты.
- Черновик письма — да, отправка без тебя — нет.
Каждый пункт — снова ключ парковщика. Агент буквально не может заказать из той части меню, которую ты не разблокировал. А если однажды он сделает глупость? Ты отзываешь один пропуск. Агент гаснет. Пароль не менялся, другие инструменты ничего не заметили, остальной дом все это время оставался закрыт. Ты срезал один браслет, а не выбросил всю связку ключей.
Держи эти две вещи рядом, потому что в этом весь смысл:
- API-ключ — это один мастер-ключ. Кто его держит, тот может делать все, что можешь ты. Потерял — меняешь все замки.
- OAuth — это связка ключей парковщика. Ограниченные, подписанные, истекающие и отзываемые по одному. Потерял один — срезал один ключ, а все остальное продолжает работать.
Когда ты был единственным человеком с ключами, риск "все или ничего" еще можно было караулить вручную. В ту секунду, когда работу делает кто-то кроме тебя — ночью, быстро, без присмотра, — тебе нужно, чтобы сам ключ умел говорить "нет" за тебя. Хороший ключ парковщика не доверяет парковщику. Он просто не открывает багажник.
Раздавай ключи парковщика. Никогда не ключи от дома.