слов.арь · bisovka

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

Иллюстрация к термину «OAuth / Идентичность агента»

OAuth / Идентичность агента

КороткоКлюч парковщика для твоих аккаунтов, а не мастер-ключ.

Ты делал это сотни раз, не задумываясь. Заходишь зарегистрироваться в новом приложении и вместо того, чтобы придумывать еще один пароль, жмешь "Sign in with Google." Всплывает маленькое окно, спрашивает разрешение, ты нажимаешь allow — и ты внутри. Ты не отдавал этому приложению пароль от Google. Даже не вводил его. И все же оно каким-то образом знает, кто ты.

Этот маленький танец называется OAuth, и это одна из лучших незаметных идей в софте.

Он решает задачу доверия между незнакомцами.

Представь, что отдаешь машину парковщику в отеле. Ты не отдаешь ему всю связку ключей. Ты отдаешь ключ парковщика, который нарезан ровно под одну задачу: завести двигатель и проехать двадцать метров. Он не откроет бардачок, где лежат документы. Не откроет багажник. Парковщик делает одну вещь, которую ты разрешил, и физически не может сделать остальное, даже если захочет. Ты уходишь спокойно, потому что сам ключ держит границу.

OAuth — это ключ парковщика для твоих аккаунтов. Когда ты кликаешь "Sign in with Google", происходит вот что:

  1. Новое приложение говорит: "Я хочу понять, кто этот человек." Оно никогда не просит твой пароль.
  2. Google выступает доверенным посредником и спрашивает уже тебя напрямую: "Это приложение хочет получить имя и email. Разрешить?"
  3. Ты говоришь да. Google дает приложению ограниченный пропуск, а не твой пароль.
  4. Приложение использует этот пропуск, чтобы сделать несколько конкретных вещей, которые ты одобрил, и ничего больше.

Твой настоящий логин никогда не уходит от Google. У приложения есть только пропуск, на котором написано: "этот человек разрешил мне делать вот эти конкретные вещи", и ты можешь разорвать этот пропуск, когда захочешь.

У этого пропуска есть имя, и его стоит знать: токен.

Не тот токен, о котором мы говорили раньше: те были LEGO-кирпичиками языка. Этот больше похож на браслет для прохода за сцену. Он доказывает, что тебе можно войти, говорит, в какие комнаты можно заходить, и охранник может срезать его с твоей руки в ту секунду, когда ты начнешь чудить. В одной маленькой полоске зашиты три вещи:

А теперь почему это из удобной мелочи превратилось в вещь, которая реально важна: агенты.

Большую часть этой серии ключом AI во внешний мир был API-ключ. Одна длинная секретная строка, которая говорит: "это я, спиши на мой аккаунт, пропусти". И у API-ключа внутри прячется настоящая проблема: все или ничего. Кто держит ключ, тот может сделать все, что может твой аккаунт. Нет режима "читать, но не удалять". Нет "этот канал, но не биллинг". Это мастер-ключ от всего дома.

Это было более-менее терпимо, пока ты был единственным, кто его держит. Но это совсем не окей, когда ты начинаешь раздавать ключи AI, который действует от твоего имени, работает пока ты спишь и может уверенно ошибаться посреди задачи. Ты не хочешь дать такой штуке мастер-пароль и уйти.

Поэтому вместо этого ты даешь агенту собственную идентичность: отдельный ограниченный пропуск, не твой. Пропуск, нарезанный ровно под работу, ради которой ты его нанял, и ни на сантиметр больше. Например:

Каждый пункт — снова ключ парковщика. Агент буквально не может заказать из той части меню, которую ты не разблокировал. А если однажды он сделает глупость? Ты отзываешь один пропуск. Агент гаснет. Пароль не менялся, другие инструменты ничего не заметили, остальной дом все это время оставался закрыт. Ты срезал один браслет, а не выбросил всю связку ключей.

Держи эти две вещи рядом, потому что в этом весь смысл:

Когда ты был единственным человеком с ключами, риск "все или ничего" еще можно было караулить вручную. В ту секунду, когда работу делает кто-то кроме тебя — ночью, быстро, без присмотра, — тебе нужно, чтобы сам ключ умел говорить "нет" за тебя. Хороший ключ парковщика не доверяет парковщику. Он просто не открывает багажник.

Раздавай ключи парковщика. Никогда не ключи от дома.

← все термины