FusionAuth Lambdas - PullRequest
       90

FusionAuth Lambdas

0 голосов
/ 20 января 2020

Я хочу использовать лямбда-функцию FusionAuth для заполнения JWT в зависимости от того, в какое приложение входит пользователь, поскольку один и тот же пользователь может входить в разные приложения и иметь несколько ролей или групп в нем. Я не хочу, чтобы JWT заполнял каждую роль, являясь ролевым действием, которое пользователь может выполнить в приложении (в соответствии с моделью NIST RBA C это будут разрешения типа «чтение: внимание» или «удаление: тесты»). ) потому что это могут быть десятки из них (причины сизе), вместо этого я хочу, чтобы JWT был заполнен группами, которые есть у пользователя, которые определяют c приложение. Я попытался назначить свойство role с пустым массивом, но безуспешно. Я знаю, что инструмент по умолчанию не позволяет вам изменять свойство ролей, но есть способ удалить его?.

function populate(jwt, user, registration) {
    jwt.group = registration.data.group;
    jwt.roles = [];
}

В любом случае токен имеет роли, как я могу их удалить?

{
  "aud": "xxxxxxx-xxxxxxx-xxxxxxx-xxxxxxx-xxxxxxx",
  "exp": xxxxxxx,
  "iat": xxxxxxx,
  "iss": "acme.com",
  "sub": "xxxxxxx-xxxxxxx-xxxxxxx-xxxxxxx-xxxxxxx",
  "authenticationType": "PASSWORD",
  "email": "xxxxxxx@mail.com",
  "email_verified": true,
  "applicationId": "xxxxxxx-xxxxxxx-xxxxxxx-xxxxxxx-xxxxxxx",
  "roles": [
    "read:attentions",
    "write:attentions"
  ],
  "group": "financer"
}

1 Ответ

0 голосов
/ 21 января 2020

Заявка roles зарезервирована FusionAuth и не может быть изменена лямбда-выражением. Существует открытая функция , которую планируется завершить в следующем выпуске, чтобы ослабить это ограничение.

Как только эта функция будет предоставлена, у вас будет возможность удалить или изменить претензию roles.

Текущие зарезервированные заявки описаны в документации JWT Populate Lambda .

...