Единый вход для аутентификации и авторизации с помощью RAILS - PullRequest
2 голосов
/ 10 декабря 2010

Я использую метод аутентификации с использованием единого входа, который находится перед моим приложением rails. Доступ полностью запрещен до тех пор, пока вы не войдете в службу единого входа для предприятий.

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

Должен ли я создать контроллер администратора для управления доступом и проверкой учетных данных вошедших в систему пользователей по этой таблице

Ответы [ 3 ]

1 голос
/ 11 декабря 2010

Вы можете использовать декларативную авторизацию, описанную здесь:

Декларативное разрешение

Но Cancan сделан действительно проще.

Ben

1 голос
/ 10 декабря 2010

Взгляните на CanCan

0 голосов
/ 20 апреля 2012

Орган

Взгляните на мой новый драгоценный камень, Авторитет . Управление доступом осуществляется с помощью простых методов Ruby, поэтому вы можете использовать абсолютно любую логику, которую вы знаете, как это делать в Ruby.

Прекрасно работает с единой регистрацией

Ситуация, которую вы описываете, была оригинальной, для которой мы ее создали: у нас уже было приложение SSO, которое заботится о CRUD для создания пользователей и назначения ролей, например: «Карла - администратор в приложении X; в приложении Y она - и работник, и продавец. "

Когда Карла пытается получить доступ к Приложению Y, если она вошла в систему, она сообщает Приложению Y «вот Карла: она вошла в систему и выполняет следующие роли». Затем приложение Y решает, что эти роли на самом деле позволяют ей делать. Эта логика не попадает в базу данных вообще; мы фактически сравниваем список ролей с разрешениями в файле YAML.

Это всего лишь один пример логики, которую вы можете реализовать с помощью Authority, но на самом деле она широко открыта.

Группировка моделей

В вашем случае, если вы использовали Authority, я бы посоветовал вам сгруппировать некоторые модели в StandardAuthorizer, а другие - в AdminAuthorizer. Проверьте README для получения дополнительной информации.

...