В SimpleSAMLPHP, используя example-sql example-sql, как определить группы - PullRequest
0 голосов
/ 09 мая 2018

Во время локальной разработки проекта, который в конечном итоге будет интегрирован с внешним поставщиком единого входа через SimpleSAMLPHP, я использовал источник аутентификации "example-sql" с некоторыми фиктивными пользователями.

Пример кода:

'example-sql' => array(
    'sqlauth:SQL',
    'dsn' => 'pgsql:host=sql.example.org;port=5432;dbname=simplesaml',
    'username' => 'simplesaml',
    'password' => 'secretpassword',
    'query' => 'SELECT uid, givenName, email, eduPersonPrincipalName FROM users WHERE uid = :username AND password = SHA2(CONCAT((SELECT salt FROM users WHERE uid = :username), :password),256);',
),

Не показывает, как указать, к каким группам принадлежит пользователь. Если я добавлю столбец в свою базу данных MySQL с именем атрибуты и добавлю в него для пользователя что-то вроде «eduPersonAffiliation: group_1, group_2», то должно ли это сказать SimpleSAMLPHP, что мой пользователь находится в этих группах?

1 Ответ

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

Все выбранные столбцы в query будут доступны в качестве атрибутов для вашего пользователя. Итак, представьте, что у вас есть столбец groups, в котором могут отображаться все группы, назначенные пользователю (например, group_1,group_2)

Как упомянуто в документации Simplesamlphp, вы также можете сохранить назначение пользователя / группы в дополнительной таблице

SELECT uid, ... , groupname AS groups
FROM users LEFT JOIN usergroups ON users.uid = usergroups.username
WHERE ...

см. https://simplesamlphp.org/docs/stable/sqlauth:sql

...