Подключение облака + BankID
15 000 UAHБюджет обсуждается, работа только через сейф.
Технологии и язык программирования обсуждается.
Проект
У нас готовая инфраструктура сервиса.
Но городская власть требует наличие КСЗИ (хотя бы для персональных данных пользователей).
Облачное хранилище
Мы рассматриваем несколько вариантов облачного хранилища (Гигаклауд, и т.д.)
Задание
Развернуть 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 - любая ошибка
Додатки 1
-
КСЗИ не ограничивается использованием bankid и использованием сертифицированной площадки, скорее всего вы в начале пути осознания боли от КСЗИ.
Мы можем реализовать подключение используя кастомный образ php в докере уже с необходимыми модулями.
Контакт: t.me/nosovk
-
Актуальні фриланс-проєкти в категорії PHP
Модуль для OpenCart: масове створення товарів з папок з зображеннямиРозробка модуля масового створення товарів для OpenCart (ocStore 3.x)Необхідно розробити адміністративний модуль для OpenCart / ocStore 3.x, який автоматично створює товари з заздалегідь підготовленої структури папок з зображеннями.Основний функціонал:масове створення товарів з… CMS, PHP ∙ 3 години 19 хвилин тому ∙ 19 ставок |
Розробник на проект CMS-сайт на Drupal 7 + PHP/MySQL.Шукаємо розробника для допомоги з налаштуванням CMS-сайту на Drupal 7 + PHP/MySQL. Задача:1. Зробити карточки товару на весь асортимент товару (наразі на сайті не на всіх товарах є карточки товару з описом та характеристиками).2. Додати вірні характеристики на всі товари.3.… CMS, PHP ∙ 2 дні 7 годин тому ∙ 39 ставок |
Шукаємо спеціаліста Bitrix24 / інтегратора CRM для налаштування автоматизаціїНаша компанія працює з CRM Bitrix24. Нам потрібен спеціаліст, який зможе налаштувати автоматичне додавання номера телефону в ліди/замовлення в двох форматах. Автоматизація повинна бути коректно налаштована для двох країн: Республіка Молдова та Румунія. Завдання: При створенні… PHP, Веб-програмування ∙ 3 дні 5 годин тому ∙ 24 ставки |
Оптимізація сайтуОптимізація сайту jdgreta.co.uk на Shopify. Сео аудит додано до проекту. Основні завдання - - Виправити всі мета дані - Виконати ТЗ для програміста (оскільки в цьому проекті поєднані завдання для програміста та СЕО, якщо ви не компанія - можете скористатися допомогою) -… HTML та CSS верстання, PHP ∙ 4 дні 2 години тому ∙ 33 ставки |
Спеціаліст по HoroshopПотрібен спеціаліст який зможе правильно налаштувати товарний Feed. Проблема: Зараз понад 13 000 товарів вивантажуються з однаковим значенням типу (напр. «все для манікюру та педикюру»). Через це в Google Ads неможливо розділити товари на сегменти й задати різні рекламні… PHP, Супровід сайтів ∙ 5 днів 4 години тому ∙ 21 ставка |