Подключение облака + BankID
334 USDБюджет обсуждается, работа только через сейф.
Технологии и язык программирования обсуждается.
Проект
У нас готовая инфраструктура сервиса.
Но городская власть требует наличие КСЗИ (хотя бы для персональных данных пользователей).
Облачное хранилище
Мы рассматриваем несколько вариантов облачного хранилища (Гигаклауд, и т.д.)
Задание
Развернуть VPS, на которой поднять базу данных MariaDB/MySQL и подготовить REST API для доступа к данным на серверах GigaCloud.
Нужна одна таблица users, где будут поля id & data & cityId.
Нужны API для чтения, записи, обновления и удаления данных.
Также нужно поддерживать безопасность доступа к API (добавить api key & secret чтобы только авторизованные пользователи могли получить доступ к данным).
Подключение к BankId НБУ (https://bank.gov.ua/ua/bank-id-nbu)
У нас уже заключен договор и мы на стадии тестирования.
Мобильные приложения и сайт проходят первый этап (авторизация и получение токена).
АПИ должно расшифровывать - данные из BankID.
Задание
используя GigaCloud развернуть сервис VPS на нем.
мы передаем сервису полученный от банка токен
сервис запрашиваем личные данные пользователя у BankId
сервис расшифровывает полученные данных
и записывает их в виде Base64 в базу данных
Примечания
Контакт техподдержки GigaCloud для уточнения вопросов по интеграции (или другого облачного решения): _______
Мы предоставим полную информацию по BankId НБУ, библиотеки и инструкцию использования. ____ (предоставим тестовые ключи)
Во время релиза нужно проинструктировать как обновлять сертификаты и ключи доступа
Безопасность АПИ (вопрос в процессе, просто ключ, JWT или https://stackoverflow.com/questions/42098150/how-to-verify-firebase-id-token-with-phpjwt https://firebase.google.com/docs/auth/admin/verify-id-tokens )
Документация по API
Примечания:
если у вас есть лучший подход к безопасности (а конкретно получение данных из БД) - мы готовы выслушать
вы можете обновить формат API, чтобы минимизировать разработку (ниже описанная документация является больше примером чем финальной версией)
уникальной связкой является cityId + userId (т.к. userId может повторятся для разных городов)
POST {host}/api/getDataFromBankId
Описание:
сайт получает accessToken от банка и отправляет в сервис
документация BankId (https://bank.gov.ua/admin_uploads/article/Specification_BankID_NBU_Portal_v4.pd)
сервис запрашивает данные о клиенте через {host}/v1/bank/resource/client
нужен минимальный набор запрашиваемых данных: 'firstName','middleName','lastName','phone','inn','birthDay','email', 'city' (factual)
расшифровывает данные и полученный json кодируется в base64 и записывает в БД (в идеале напрямую, без использования API)
Headers:
secretKey: someSecretKey
Body:
{
"accessToken": "abc",
"cityId": "someCityID",
"userId": "jgh8A2iQFyenJFInnpZrJpFQPVk2"
}
Response status
200 - данные получены, расшифрованы и записаны в базу
401 - любая ошибка
POST {host}/api/users/update
Описание:
запись (или перезапись если данные уже есть) полученных значений в базу
Headers:
secretKey: someSecretKey
Body:
{
"data": "base64string",
"cityId": "someCityID",
"userId": "jgh8A2iQFyenJFInnpZrJpFQPVk2"
}
Response status
200 - данные записаны в базу
401 - любая ошибка
POST {host}/api/users/get
Описание:
получение данных списка пользователей (по 500 пользователей например, или сколько запросим)
Headers:
secretKey: someSecretKey
Body:
{
"cityId": "someCityID",
"userIds": [
"jgh8A2iQFyenJFInnpZrJpFQPVk2",
"jgh8A2iQFyenJFInnpZrJpFQPVk2",
"jgh8A2iQFyenJFInnpZrJpFQPVk2"
]
}
Response body
{
"data": [
{
"userId": "someUserId",
"data": "base64string"
},
{
"userId": "someUserId",
"data": "base64string"
}
]
}
Response status
200 - данные отправлены
401 - любая ошибка
POST {host}/api/users/delete
Описание:
удаление данных
Headers:
secretKey: someSecretKey
Body:
{
"cityId": "someCityID",
"userId": "jgh8A2iQFyenJFInnpZrJpFQPVk2"
}
Response status
200 - данные успешно удалены
401 - любая ошибка
Applications 1
-
КСЗИ не ограничивается использованием bankid и использованием сертифицированной площадки, скорее всего вы в начале пути осознания боли от КСЗИ.
Мы можем реализовать подключение используя кастомный образ php в докере уже с необходимыми модулями.
Контакт: t.me/nosovk
-
Current freelance projects in the category Databases & SQL
It is necessary to check the scripts and update the data in the Postgres database.It is necessary to correct the SQL scripts for the Postgres database. It is required to check the scripts and update data from external Excel tables and between two Postgres databases (different servers). Scripts will be run through AnyDesk using Navicat. List of data for… Databases & SQL ∙ 1 day 19 hours back ∙ 18 proposals |
Need an Airtable architect to build a relational schema and a new clean Airtable base.Need help rethinking and building a clean relational schema for an internal operational system on Airtable. The current database is already in use by the team, but it has grown organically: the structure is partially flat, some tables/views are actively used, while others are… Databases & SQL, Desktop Apps ∙ 2 days 13 hours back ∙ 9 proposals |
Basketball Coaching Education Platform + Custom CMSBasketball Coaching Education Platform + Custom CMSProject Overview We are looking for an experienced web development team or full-stack developer to build a modern basketball coaching education platform. The website will provide basketball coaches with access to educational… Databases & SQL, Web Programming ∙ 3 days 6 hours back ∙ 89 proposals |
Integration of Viber in 8.3
223 USD
Need Viber integration into own CRM (1C 8.3)About the Company The company "Domofon System" is engaged in the installation and maintenance of intercom systems. Base of over 40,000 subscribers. We work on our own customized system based on 1C 8.3. We are looking for a specialist… Databases & SQL, Bot Development ∙ 3 days 10 hours back ∙ 16 proposals |
Refinement of 1C UT 11 for Zebra TSD (RDP): different sound signals when scanning
22 USD
Configuration: 1C UT 11 Address warehouse Zebra TC26 TSD Work via RDP Product scanning is performed in receiving, placement, picking documents, and other warehouse operations. Current problem: Warehouse workers operate through the Zebra TSD. When scanning, they do not always… C#, Databases & SQL ∙ 5 days 7 hours back ∙ 6 proposals |