Авторизация доступа к ресурсам REST - PullRequest
0 голосов
/ 01 мая 2018

При авторизации доступа к ресурсу из конечной точки REST мне нужно проверять авторизацию и владение для всего пути или только запрашиваемого конечного ресурса? И.Е.

/ компании / 12 / сотрудников / 209 / сообщений / 5

поэтому ресурс, к которому осуществляется доступ, - это сообщение № 5, поэтому мне нужно убедиться, что сотрудник 209 является автором сообщения № 5 и что сотрудник принадлежит компании № 12, если лицо, выполняющее запрос, имеет доступ к сообщению № 5 ? Кажется, это может быстро выйти из-под контроля, если будет проверен весь путь URL.

1 Ответ

0 голосов
/ 01 мая 2018

Для API конкретный пост идентифицируется по URL, а не по номеру в конце URL. Ваш API должен рассматривать это как две разные вещи:

/companies/12/employees/209/posts/5
/companies/11/employees/209/posts/5

Хорошо, если ваш бэкэнд извлекает из них семантическое значение, но вам определенно не следует говорить: «Ну, эта последняя часть является уникальным идентификатором для поста, поэтому я просто проигнорирую остальную часть URL». , Большинство людей, использующих вложенную структуру, как вы, допускают создание нескольких постов с идентификатором 5, по одному для каждого сотрудника каждой компании.

Ничего не зная о вашем API, этот пример выглядит ужасно, как будто это должны быть три отдельные конечные точки верхнего уровня, по одной для /companies, /employees и /posts. При возможности старайтесь свести к минимуму иерархии.

...