Доступ к базе для использования Web сервиса в клиенте notes

moskalenkoeu

New member
12.04.2022
2
0
BIT
0
Здравствуйте!
Подскажите , пожалуйста, по следующей теме:
Есть Web сервис провайдер (provider) и потребитель (consumer).
Провайдер в одной базе. Потребитель в другой. Базы на одном сервере.
Сейчас, чтобы вызвать функцию провайдера необходимо давать анонимный доступ к базе в которой расположен провайдер. Иначе возникает ошибка доступа.
Что надо сделать, чтобы при вызове функций провайдера проверялись права доступа по ACL к базе пользователя, вызывающего функцию провайдера?
Функции вызываются из Notes клиента либо из агента либо из кода формы.
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
524
Здравствуйте!
Подскажите , пожалуйста, по следующей теме:
Есть Web сервис провайдер (provider) и потребитель (consumer).
Провайдер в одной базе. Потребитель в другой. Базы на одном сервере.
Сейчас, чтобы вызвать функцию провайдера необходимо давать анонимный доступ к базе в которой расположен провайдер. Иначе возникает ошибка доступа.
Что надо сделать, чтобы при вызове функций провайдера проверялись права доступа по ACL к базе пользователя, вызывающего функцию провайдера?
Функции вызываются из Notes клиента либо из агента либо из кода формы.
Только запускать вызов провайдера с авторизацией.
В consumer нужно добавить Service.SetCredentials(username, password ) , при этом password тут нужен от HTTP, он же Internet password, а не от Notes клиента.
А в базу с провайдером, в ACL, добавить этот username и нужные права.
И тут момент в том, что либо что-то мудрить чтобы под каждым пользователем был частный вызов, либо создать отдельную УЗ для таких случаев.

Еще один вариант: сделать провайдер доступным для Public Access Users и дать в базе доступ для анонимуса уровня Depositor.
Тогда вроде как и документов он видеть не будет, а вызвать сможет.
Сам вызов будет происходить с правами подписанта провайдера.
 

moskalenkoeu

New member
12.04.2022
2
0
BIT
0
Понятно. Спасибо!
Я думал, что через какие-то настройки, используя авторизацию по notes id, можно будет вызывать функции и выполнять от имени подключившегося пользователя действия в базе и возвращать какой-нить результат.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
466
Только запускать вызов провайдера с авторизацией.
В consumer нужно добавить Service.SetCredentials(username, password ) , при этом password тут нужен от HTTP, он же Internet password, а не от Notes клиента.
А в базу с провайдером, в ACL, добавить этот username и нужные права.
И тут момент в том, что либо что-то мудрить чтобы под каждым пользователем был частный вызов, либо создать отдельную УЗ для таких случаев.

Еще один вариант: сделать провайдер доступным для Public Access Users и дать в базе доступ для анонимуса уровня Depositor.
Тогда вроде как и документов он видеть не будет, а вызвать сможет.
Сам вызов будет происходить с правами подписанта провайдера.
а там нет авторизации по кукам?
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
524
а там нет авторизации по кукам?
нет, только логин пароль, согласно исходнику portbase.
Но это про "толстяка", а если мы про web, то там сначала можно авторизовать пользователя и уже потом делать вызов - тогда будет под ним.
 
  • Нравится
Реакции: lmike

rinsk

Lotus Team
12.11.2009
1 156
126
BIT
43
а там нет авторизации по кукам?
У consumer LS нельзя куки подложить.
не в курсе по Java consumer.
если есть куда подложить куку то есть код ( искать надо) который возвращает LtpaToken под ID пользователя.
Его можно подложить например под встроенный IE объект на форме.
 
  • Нравится
Реакции: lmike
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!