Оформление
Аутентификация цифровой подписи - FineReport Справочная документация|Разработка отчетов|Использование отчетов|Учебные пособия
Проверка подлинности цифровой подписи
1. Обзор
1.1 Версия
| Версия сервера FineBI | Функциональные изменения |
|---|---|
| 6.0 | - |
1.2 Сценарии применения
При отсутствии аутентификации шаблонов, пока вы входите в Data Decision System, пользователи с привилегиями шаблонов могут копировать URL-адреса предварительного просмотра шаблонов другим пользователям, а другие пользователи могут просматривать шаблоны по этим URL-адресам после входа в Data Decision System, даже если у них нет привилегий на шаблоны в каталоге. При аутентификации с помощью цифровой подписи даже если URL-адрес шаблона доступен после входа в систему, доступ к нему невозможен без цифровой подписи.
1.3 Функциональный профиль
- Аутентификация шаблона с помощью ключа цифровой подписи. При доступе к шаблону в запросе URL доступа необходимо указать ключ цифровой подписи, переданный сервером аутентификации, например, имя параметра fine_digital_signature и формат URL: http: //locaihost:37799/webroot/decision/v5/design/. report/4fc4bc9c2a4a4083b5f4a5d8d632ccae/view?fine_digital_signature=value
- Запрос шаблона проверяется по цифровой подписи, FineBI проверяет легитимность информации о подписи, прежде чем разрешить доступ к шаблону, в противном случае возвращает отказ в разрешении.
Примечание: Если включена аутентификация цифровой подписи, пользователям необходимо сначала войти в систему Data Decision System, чтобы получить доступ к шаблону по URL-адресу.

2. Примеры
Пример этой статьи:
Зашифруйте шаблон "Company Integrated Operations Management Cockpit" в каталоге "Industry Applications > Internet" с помощью цифрового ключа abc.
После шифрования шаблон может быть успешно доступен по URL-адресу при наличии аутентифицированной fine_digital_signature платформы.
2.1 Получение значения fine_digital_signature
Получите значение fine_digital_signature соответствующего ключа цифровой подписи, используя в качестве примера шаблон кабины управления интегрированными операциями компании (id шаблона 4fc4bc9c2a4a4083b5f4a5d8d632ccae):
import com.fr.cert.token.JwtBuilder; import com.fr.cert.token.Jwts; import com.fr.cert.token.SignatureAlgorithm;
import java.util.Date; public class Test2 { public static void main(
String[] args) { // время действия цифровой подписи &
nbsp; long validTime = 30 * 60 * 1000; //
Содержание цифровой подписи, с относительным путем к ресурсу доступа в качестве содержания String path = "
4fc4bc9c2a4a4083b5f4a5d8d632ccae"; String key = "abc"
; //Ключ цифровой подписи, может быть настроен //Генерируем fine_digital_signature   ; String fine_digital_signature = createJwt("", "", path, validTime, key); //выводим ключ.
nbsp;key); // выводим fine_digital_signature &
nbsp;System.out.println(fine_digital_signature); } private static String& nbsp;createJwt(String issuer, String id, String subject, long validTime, String key)&
nbsp;{ // Используется для генерации цифровой подписи, т. е. значения параметра fine_digital_signature &
nbsp; SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256; &
nbsp; Date currentTime = new Date(); Date
expirationTime = new Date(currentTime.getTime() + validTime); &
nbsp; JwtBuilder builder = Jwts.builder() &
nbsp; .setIssuer(issuer)  
; .setSubject(subject) .
setIssuedAt(currentTime) .
setExpiration(expirationTime) .
setId(id) .signWith(
signatureAlgorithm, key); return builder.compact(); &
nbsp;} }1) Необходимо заранее подготовить среду Java и инструменты IDE, создать Java-файл Test2.java, скопировать приведенный выше код в созданный файл, изменить шаблон, который должен быть подписан цифровой подписью, и настроить ключ цифровой подписи, как показано на рисунке ниже:
Нажмите, чтобы загрузить и разархивировать файл с примером Java: Test2.rar

2) Импортируйте все JAR-пакеты из локальной папки %FineBI%/webapps/webroot/WEB-INF/lib во вновь созданный проект, как показано ниже:

3) Запустите файл Test2 и получите значение fine_digital_signature для ключа цифровой подписи, как показано ниже:

2.2 Установка платформы
Администратор входит в систему FineBI, нажимает "System Management > Аутентификация шаблона > Конфигурация аутентификации", выбирает метод аутентификации "Аутентификация цифровой подписи" и устанавливает ключ цифровой подписи, как показано на следующем рисунке:

2.3 Эффекты просмотра
Перейдите по ссылке: http://localhost:37799/webroot/decision/v5/design/report/4fc4bc9c2a4a4083b5f4a5d8d632ccae/view.
При входе в платформу появляется сообщение о том, что у вас нет прав, как показано на следующем рисунке:

Добавьте новый параметр после URL: ?fine_digital_signature=value, например, http://localhost:37799/webroot/decision/v5/design/report/4fc4bc9c2a4a4083b5f4a5d8d632ccae/. view?fine_digital_signature=eyJhbGciOiJIUzI1NiJ9. eyJzdWIiOiI0ZmM0YmM5YzJhNGE0MDgzYjVmNGE1ZDhkNjMyY2NhZSIsImlhdCI6MTU3MTk5MTM2OCwiZXhwIjoxNTcxOTkzMTY4LCJqdGkiOiIifQ. uPwNMzPaqeS228zsSjOH6xhPw8D8pdG1ugdUi3ThEmw
Войдите в платформу и просмотрите шаблон в обычном режиме. Как показано на рисунке ниже:

3. маскирование функции проверки подлинности цифровой подписи
Руководитель хочет открыть функцию проверки подлинности шаблона для заместителей администратора, но не хочет, чтобы заместители администратора использовали "проверку подлинности цифровой подписи".
Супер администратор может заблокировать функцию аутентификации цифровой подписи через "fine_conf_entity Visual Configuration Plugin". Настройка вступает в силу после перезапуска сервера.
Примечание: Методы изменения значений полей таблиц базы данных FineDB см. в разделе " Модификации полей общих таблиц FineDB ".
| элемент конфигурации | Изменение правил |
|---|---|
| TemplateAuthConfig.digitalAuthAvailable | Значения параметров следующие, по умолчанию - truefalse: администраторы не могут использовать функцию аутентификации шаблона и цифровой подписиистина: администраторы могут использовать функцию аутентификации шаблона и цифровой подписи |
Измените значение элемента конфигурации TemplateAuthConfig.digitalAuthAvailable на false.
После перезапуска сервера администратор нажимает "System Management > Аутентификация шаблона > Конфигурация аутентификации" и обнаруживает, что "Аутентификация цифровой подписи" в методе аутентификации заблокирована и не может быть установлена.
Примечание: Не устанавливайте метод аутентификации "Аутентификация цифровой подписи" перед блокировкой "Аутентификации цифровой подписи". В противном случае аутентификация будет действовать и после блокировки.
