Scope — это именованный набор claims. Клиент, которому разрешен этот scope, может запросить его при входе, и тогда claims из scope можно передать клиенту. Общая картина описана в разделе Сущности.
Поля
| Поле | Что это | Правила |
|---|---|---|
| Scope ID | Значение, которое клиент передает в параметре scope | Строчные латинские буквы, цифры и подчеркивания, первый символ — буква (^[a-z][a-z0-9_]*$). Двоеточия, точки и дефисы не допускаются. Уникален в пределах тенанта. После создания не меняется |
| Description | Подпись scope на экране согласия и в консоли | Локализуется, по одному тексту на язык. Английский обязателен. Новый язык можно включить в Locales на странице System settings, только если переведены все тексты, которые показывает сервер: описания scope и claim, названия клиентов, активные версии форм и шаблоны OTP и паролей (см. Locales) |
| Claims | Claims пользователя, которые отдает scope | Ноль или больше. У каждого claim есть свой ID и свое описание |
| Claim ID | Имя claim пользователя, например email | Те же правила символов, что у scope ID |
| Claim description | Подпись claim на экране согласия | Английский обязателен |
Ни форма, ни Central API не задают максимальную длину этих значений.
Scope ID — не то же самое, что permission ID. payments_read — допустимый scope ID, а payments:read — нет, Central API его отклонит. В ID разрешений сегменты разделяются двоеточиями, см. Permission.
Как используется scope
Клиент хранит список scope, которые ему можно запрашивать. У web app и у mobile or desktop app этот список лежит в разделе Scopes страницы клиента, для каждого scope есть переключатель экрана согласия (Клиент). Service app scope не использует, у него есть разрешения.
При входе клиент отправляет подмножество своих scope. Дальше auth отдает claims так:
- В
userinfoпопадают claims всех выданных scope. Значения берутся из сохраненных claims пользователя по claim ID. Если у пользователя такого claim нет, он пропускается.subесть всегда. - В ID token попадают только claims, которые запрос назвал в параметре
claims. Сам по себе выданный scope не копирует claims в ID token. - На экране согласия пользователь видит описания scope и их claims до выдачи authorization code, если у клиента включен экран согласия.
Изменение и удаление
На странице редактирования можно поменять описание и добавить или убрать claims. Scope ID виден под заголовком страницы и не редактируется.
Удаление scope стирает только запись scope и требует подтверждения. Клиенты сохраняют этот ID в своих списках, но он больше не соответствует ни одному claim. Уберите ID и из этих клиентов.
Что дальше
- Как зарегистрировать scope: форма по шагам.
- Клиент: где клиенту выдают scope.
- Permission: аналог для service app и для вызова API.