Имя: Пароль:
1C
1С v8
Как реализовать OAuth2.0 авторизацию для своего HTTP-Сервера?
,
0 pavlushov
 
07.12.22
18:57
Стоит задача реализовать в 1с http-сервис и авторизация должна быть по схеме OAuth2.0. Мы передаем клиенту client_id и client_secret, клиент первым запросом получает от нас токен и далее остальные запросы делаются с этим токеном. 1С как я понял поддерживает только basic аутентификацию, как реализовать OAuth2.0? Можно ли это как то настроить в веб-сервере, я например использую Апач, или может быть есть другие готовые решения? Мне кажется что это не должно быть реализовано средствами 1с.
1 p-soft
 
07.12.22
19:06
(0) на хабре есть вполне читаемая схема работы. работа с временным токеном реализуется на уровне логики приложения, а не протокола. лично делал похожую шнягу, когда писал платформу торговли на криптобирже. в 1с.
2 pavlushov
 
07.12.22
19:13
Неужели просто нужно в 1с у http-сервиса создать шаблон типа GET /security/oauth/token с параметрами client_id, client_secret и генерить в 1с некий временный УИД и далее в остальных ручках его проверять? А чтобы проходить basic авторизацию зашить логин и пароль в файле публикации? Или это бред?
3 p-soft
 
07.12.22
19:21
(2) все так. рекомендую все же статью на хабре, она первой лезет в яндексе по "OAuth2.0"
4 ДедМорроз
 
07.12.22
23:02
Во-первых,логин и пароль в теле запроса,а не в строке.
Во-вторых,служебный пользователь для сервиса прописывается в публикации.
5 AquaMan
 
08.12.22
10:48
Только токен это не просто временный УИД, есть определенный формат https://jwt.io/introduction. При создании его нужно шифровать закрытым ключом, а при получении расшифровывать открытым. Теоретически можно и в 1С все сделать, но можно и на вебсервере проверять токен. Не знаю как апач, а nginx такое точно умеет, если поставить его как риверс прокси, то можно аутентификации делать там, правда выдавать токены нужно самому все равно, для этого отдельный сервис обычно делают.
6 rozer76
 
08.12.22
20:23
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.