{"id":370185,"date":"2024-05-21T04:19:32","date_gmt":"2024-05-21T04:19:32","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=370185"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=370185","title":{"rendered":"<span>Apache NiFi. \u041a\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u0434\u0440\u0443\u0436\u0438\u0442\u044c\u0441\u044f \u0441 LDAP \u0438 Registry<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u043f\u0440\u043e Apache NiFi \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b\u0438 \u043d\u0435 \u0440\u0430\u0437. \u041d\u043e \u0435\u0441\u043b\u0438 \u0442\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0448\u044c\u0441\u044f \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u0431\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u043b\u0435\u0433\u043a\u043e. \u041e\u0431\u044b\u0447\u043d\u043e \u0441 \u0442\u043e\u0431\u043e\u0439 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u0442\u0430\u043a, \u0431\u0443\u0434\u0442\u043e \u0442\u044b \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u0432 \u0442\u0435\u043c\u0435, \u0434\u0430 \u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0447\u0430\u0449\u0435 \u0440\u0435\u0448\u0430\u044e\u0442 \u044f\u0432\u043d\u043e \u043d\u0435 \u0442\u0432\u043e\u0438. \u0421 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u0442\u043e\u0436\u0435 \u0432\u0441\u0435 \u0441\u043b\u043e\u0436\u043d\u043e: \u043e\u043d\u0430 \u0435\u0441\u0442\u044c, \u043d\u043e \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u044f\u0432\u043d\u043e \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/520\/9cc\/4d9\/5209cc4d9e5bb4efe81cc4aaa5f974e7.jpg\" width=\"1200\" height=\"800\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/520\/9cc\/4d9\/5209cc4d9e5bb4efe81cc4aaa5f974e7.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u0412\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0433\u0430\u0439\u0434 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u0430. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 <a href=\"https:\/\/habr.com\/ru\/article\/798641#setting\">\u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439<\/a> NiFi \u0438 NiFi Registry,\u00a0<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/article\/798641#LDAP\">\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u043e LDAP<\/a>,\u00a0<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/article\/798641#test\">\u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c<\/a>,<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c<a href=\"https:\/\/habr.com\/ru\/article\/798641#errors\"> \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/a> \u0438 \u043e\u0442\u0434\u0435\u0431\u0430\u0436\u0438\u0442\u044c \u0438\u0445.\u00a0 \u00a0 <\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p>\u041e\u0431\u044b\u0447\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0447\u0438\u0442\u0430\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u043c\u0430\u043d\u0443\u0430\u043b\u044b. \u0422\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, \u0447\u0435\u0433\u043e \u043d\u0435\u0442 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0442\u043e\u0436\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f. \u0410 \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0447\u0442\u043e-\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e \u0442\u0435\u043c\u0435, \u043f\u0438\u0448\u0438\u0442\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445. \u0411\u0443\u0434\u0443 \u0440\u0430\u0434 \u043f\u043e\u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \ud83d\ude42  <\/p>\n<\/blockquote>\n<p><a class=\"anchor\" name=\"setting\" id=\"setting\"><\/a><\/p>\n<h3>\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u00a0\u00a0<\/h3>\n<p>\u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e Apache NiFi \u2014 \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438\u0437 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432. \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f: \u0432\u0437\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 Kafka, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0432 \u0411\u0414.<\/p>\n<p>\u041c\u044b \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 <a href=\"https:\/\/nubes.ru\"><u>\u041d\u0423\u0411\u0415\u0421 (Nubes) <\/u><\/a>\u043d\u0430\u0447\u0430\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c NiFi \u0441 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Json. \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0438\u0445 \u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c \u0432 PostgreSQL, \u0430 \u0434\u0430\u043b\u0435\u0435 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0442\u0447\u0435\u0442\u043e\u0432.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u0430\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<ol>\n<li>\n<p>\u0414\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f Java \u2014 \u0431\u0435\u0437 \u043d\u0435\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f.  <\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"bash\">sudo dnf install java-21-openjdk-devel<\/code><\/pre>\n<ol start=\"2\">\n<li>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f NiFi.<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"bash\">useradd -d \/opt\/NiFi\/ NiFi -s \/sbin\/nologin<\/code><\/pre>\n<ol start=\"3\">\n<li>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c NiFi \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430, <a href=\"https:\/\/nifi.apache.org\/download\/\"><u>\u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e<\/u><\/a>. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 1.25.0.  <\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"bash\">wget https:\/\/dlcdn.apache.org\/nifi\/1.25.0\/nifi-1.25.0-bin.zip unzip https:\/\/dlcdn.apache.org\/nifi\/1.25.0\/nifi-1.25.0-bin.zip ln -s nifi-1.25.0-bin nifi<\/code><\/pre>\n<ol start=\"4\">\n<li>\n<p>\u041e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 (\u043c\u0435\u043d\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 NN \u043d\u0430 \u0441\u0432\u043e\u0435) \u0438 \u0442\u043e, \u043a\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c NiFi. <\/p>\n<\/li>\n<\/ol>\n<details class=\"spoiler\">\n<summary>\/opt\/nifi\/conf\/bootstrap.conf<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>run.as=nifi java.arg.2=-XmsNNg java.arg.3=-XmxNNg<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<ol start=\"5\">\n<li>\n<p>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c systemd.  <\/p>\n<\/li>\n<\/ol>\n<details class=\"spoiler\">\n<summary>\/etc\/systemd\/system\/nifi.service<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>[Unit] Description=Apache Nifi After=network.target   [Service] Type=forking ExecStart=\/opt\/nifi\/bin\/nifi.sh start ExecStop=\/opt\/nifi\/bin\/nifi.sh stop ExecReload=\/opt\/nifi\/bin\/nifi.sh restart User=nifi Restart=always Environment=\"JAVA_HOME=\/usr\/lib\/jvm\/jre-openjdk\" Environment=\"LD_LIBRARY_PATH=\/usr\/lib\/jvm\/jre-openjdk\/lib\"   [Install] WantedBy=multi-user.target<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\/etc\/systemd\/system\/nifi-registry.service<\/summary>\n<div class=\"spoiler__content\">\n<p>[Unit]<br \/> Description=Apache Nifi<br \/> After=network.target<\/p>\n<p>[Service]<br \/> Type=forking<br \/> ExecStart=\/opt\/nifi\/bin\/nifi-registry.sh start<br \/> ExecStop=\/opt\/nifi\/bin\/nifi-registry.sh stop<br \/> ExecReload=\/opt\/nifi\/bin\/nifi-registry.sh restart<br \/> User=nifi<br \/> Restart=always<br \/> Environment=&#187;JAVA_HOME=\/usr\/lib\/jvm\/jre-openjdk&#187;<br \/> Environment=&#187;LD_LIBRARY_PATH=\/usr\/lib\/jvm\/jre-openjdk\/lib&#187;<\/p>\n<p>[Install]<br \/> WantedBy=multi-user.target<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430. \u041d\u0430 \u044d\u0442\u043e\u043c \u043c\u043e\u043c\u0435\u043d\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c NiFi \u0438 Registry\u2026\u00a0\u00a0<\/p>\n<p>\u041d\u043e \u043d\u0435 \u0432\u0441\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e. \u0414\u0440\u0443\u0436\u0438\u0442\u044c \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c \u043e\u043d\u0438 \u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u044f\u0442, \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0430\u0431\u044b \u043a\u0430\u043a. \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c? \u041e\u0442\u0432\u0435\u0442 \u2014 \u0434\u0430\u043b\u0435\u0435. <\/p>\n<h4>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b<\/h4>\n<p>\u041a\u0430\u043a \u0432\u044b \u0443\u0436\u0435 \u043f\u043e\u043d\u044f\u043b\u0438, \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442. \u0412 \u043d\u0430\u0448\u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0437\u0430 \u0446\u0435\u043d\u0442\u0440 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043c\u043e\u0434\u0443\u043b\u044c CA (certificate authority) \u0432 FreeIPA. \u0412 \u0446\u0435\u043b\u043e\u043c, \u043d\u0435\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a FreeIPA: \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0421\u0410, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435, \u0447\u0442\u043e \u0435\u043c\u0443 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u0448\u044c.<\/p>\n<p>\u0412\u0441\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 <strong>\/opt\/NiFi\/ssl <\/strong>(\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c).<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442.<\/p>\n<details class=\"spoiler\">\n<summary>\/opt\/nifi\/ssl\/$(hostname).conf<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">[req] distinguished_name = req_distinguished_name req_extensions = v3_req prompt = no   [req_distinguished_name] C = RU ST = Russia L = Moscow O = nubes OU = nubes CN = $(hostname)   [v3_req] keyUsage = keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0417\u0430\u0442\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443.<\/p>\n<pre><code class=\"bash\">openssl req -newkey rsa:2048 -keyout  $(hostname).key -out  $(hostname).csr -config  $(hostname).conf -nodes<\/code><\/pre>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c CSR (\u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0434\u043e\u043c\u0435\u043d\u0435 \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438). \u0422\u0435\u043f\u0435\u0440\u044c \u0431\u0435\u0440\u0435\u043c \u0435\u0433\u043e \u0438 \u0431\u0435\u0436\u0438\u043c \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442. \u0421\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u0440\u044f\u0434\u043e\u043c \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440. \u0417\u0430\u043e\u0434\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c root\/intermediate \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b FreeIPA \u0421\u0410.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a18\/f3f\/66b\/a18f3f66b0cf01343a7efa898f2041e6.png\" width=\"2091\" height=\"259\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a18\/f3f\/66b\/a18f3f66b0cf01343a7efa898f2041e6.png\"\/><\/figure>\n<p>\u0412\u0441\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b NiFi \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u0432 p12, \u043b\u0438\u0431\u043e \u0432 jks \u2014 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0432\u044b\u0431\u0438\u0440\u0430\u0439\u0442\u0435 \u043d\u0430 \u0441\u0432\u043e\u0435 \u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0435. \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0431\u0430 \u0441\u043b\u0443\u0447\u0430\u044f.\u00a0<\/p>\n<p>\u0414\u043b\u044f \u0442\u0435\u0441\u0442\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 ks \u0438 ts,\u043e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u0434\u0435\u043b\u0435 <a href=\"https:\/\/www.geeksforgeeks.org\/difference-between-truststore-and-keystore-in-java\"><u>\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c<\/u><\/a>.<\/p>\n<blockquote>\n<p><strong>KeyStore<\/strong> \u0445\u0440\u0430\u043d\u0438\u0442 \u043a\u043b\u044e\u0447\u0438 \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a <strong>TrustStore<\/strong> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0434\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u041f\u041e.  <\/p>\n<\/blockquote>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u043c p12. \u0417\u0430\u0440\u0430\u043d\u0435\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u044b\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u043e\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u043b\u044f KeyStore. <\/p>\n<pre><code class=\"bash\">openssl pkcs12 -export -in $(hostname).crt -inkey $(hostname).key -out $(hostname).p12<\/code><\/pre>\n<p>\u0418 \u0438\u0437 p12 \u0441\u043e\u0437\u0434\u0430\u0435\u043c jks. \u041f\u0430\u0440\u043e\u043b\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u0442\u043e\u0442 \u0436\u0435, \u0447\u0442\u043e \u0438 \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438 \u0432\u044b\u0448\u0435.<\/p>\n<pre><code class=\"bash\">keytool -importkeystore -destkeystore $(hostname).jks -srckeystore $(hostname).p12 -srcstoretype PKCS12<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0432 jks.  <\/p>\n<pre><code class=\"bash\">keytool -importcert -file idm-intermediate.crt -keystore $(hostname).jks -alias \"idm-intermediate\" keytool -importcert -file idm-root.crt -keystore $(hostname).jks -alias \"idm-root\" keytool -importcert -file registry.crt -keystore $(hostname).jks -alias \"nifi-registry\"<\/code><\/pre>\n<h4>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b NiFi<\/h4>\n<p>\u041e \u0432\u0441\u0435\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 NiFi \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/nifi.apache.org\/docs\/nifi-docs\/html\/administration-guide.html\"><u>\u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c<\/u><\/a> \u0437\u0434\u0435\u0441\u044c. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439.\u00a0<\/p>\n<p>\u0412 \u0446\u0435\u043b\u043e\u043c NiFi \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u0440\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438:<\/p>\n<ul>\n<li>\n<p>NiFi-properties (\u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b) \u2014 \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u0442\u0443, \u043d\u0430 \u043a\u0430\u043a\u0438\u0445 \u0430\u0434\u0440\u0435\u0441\u0430\u0445 \u0438 \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f;<\/p>\n<\/li>\n<li>\n<p>Login-identity \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f (noauth, ldap, salm, kerb);<\/p>\n<\/li>\n<li>\n<p>Authorizers \u2014 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u0432, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<details class=\"spoiler\">\n<summary>\/opt\/nifi\/conf\/nifi.properties<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b NiFi \u041e \u0432\u0441\u0435\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 NiFi \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439.  \u0412 \u0446\u0435\u043b\u043e\u043c NiFi \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u0440\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438: NiFi-properties (\u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b) \u2014 \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u0442\u0443, \u043d\u0430 \u043a\u0430\u043a\u0438\u0445 \u0430\u0434\u0440\u0435\u0441\u0430\u0445 \u0438 \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f; Login-identity \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f (noauth, ldap, salm, kerb); Authorizers \u2014 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u0432, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f. # \u0411\u0430\u0437\u043e\u0432\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 nifi.web.https.host=$(hostname) nifi.web.https.port=8443 # \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u044e\u0434\u0430 nifi.sensitive.props.key=123qwesecretkey   nifi.security.keystore=.\/ssl\/$(hostname).jks nifi.security.keystoreType=jks # \u041f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 jks nifi.security.keystorePasswd=jksSecretKey # \u041f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 jks nifi.security.keyPasswd=jksSecretKey nifi.security.truststore=.\/ssl\/$(hostname).jks nifi.security.truststoreType=jks # \u041f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 jks nifi.security.truststorePasswd=jksSecretKey # \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u043e LDAP nifi.security.user.authorizer=managed-authorizer nifi.security.allow.anonymous.authentication=false nifi.security.user.login.identity.provider=ldap-provider<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p><a class=\"anchor\" name=\"LDAP\" id=\"LDAP\"><\/a><\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0431\u043b\u043e\u043a \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438. \u041d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0415\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 LDAP \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0438\u0441\u0442\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u0438\u043f\u0430\u0434\u043e\u043a, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c<a href=\"https:\/\/directory.apache.org\/studio\/downloads.html\"> <u>Apache DS<\/u><\/a> \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u0434 \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c. \u0417\u0430\u0442\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0439\u0442\u0438 \u0434\u043e \u043d\u0443\u0436\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f\/\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f.<\/p>\n<details class=\"spoiler\">\n<summary>\/opt\/nifi\/conf\/login-identity-providers.xml<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>&lt;loginIdentityProviders> &lt;provider>     &lt;identifier>single-user-provider&lt;\/identifier>     &lt;class>org.apache.nifi.authentication.single.user.SingleUserLoginIdentityProvider&lt;\/class>     &lt;property name=\"Username\">&lt;\/property>     &lt;property name=\"Password\">&lt;\/property> &lt;\/provider>   &lt;provider>     &lt;identifier>ldap-provider&lt;\/identifier>     &lt;class>org.apache.nifi.ldap.LdapProvider&lt;\/class>     &lt;property name=\"Authentication Strategy\">SIMPLE&lt;\/property>       &lt;property name=\"Manager DN\">cn=svc_nifi,ou=Service Users,dc=XXX,dc=nubes,dc=ru&lt;\/property>     &lt;property name=\"Manager Password\">secretpass&lt;\/property>       &lt;property name=\"TLS - Keystore\">&lt;\/property>     &lt;property name=\"TLS - Keystore Password\">&lt;\/property>     &lt;property name=\"TLS - Keystore Type\">&lt;\/property>     &lt;property name=\"TLS - Truststore\">&lt;\/property>     &lt;property name=\"TLS - Truststore Password\">&lt;\/property>     &lt;property name=\"TLS - Truststore Type\">&lt;\/property>     &lt;property name=\"TLS - Client Auth\">&lt;\/property>     &lt;property name=\"TLS - Protocol\">&lt;\/property>     &lt;property name=\"TLS - Shutdown Gracefully\">&lt;\/property>       &lt;property name=\"Referral Strategy\">FOLLOW&lt;\/property>     &lt;property name=\"Connect Timeout\">10 secs&lt;\/property>     &lt;property name=\"Read Timeout\">10 secs&lt;\/property>       &lt;property name=\"Url\">ldaps:\/\/ADSERVER:636&lt;\/property>     &lt;property name=\"User Search Base\">ou=nubes-XXX,dc=XXX,dc=nubes,dc=ru&lt;\/property>     &lt;property name=\"User Search Filter\">sAMAccountName={0}&lt;\/property>       &lt;property name=\"Identity Strategy\">USE_USERNAME&lt;\/property>     &lt;property name=\"Authentication Expiration\">12 hours&lt;\/property> &lt;\/provider>   &lt;\/loginIdentityProviders><\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 NiFi \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043a\u0430\u043a sAMAccountName (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u044b\u043b \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u0435\u0444\u0438\u043a\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u2014 \u043e\u0431 \u044d\u0442\u043e\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0447\u0443\u0442\u044c \u043d\u0438\u0436\u0435) \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0433\u0434\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u043e\u043b\u0435\u0432\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c.<\/p>\n<p><strong>\u0412\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442<\/strong> <strong>1.<\/strong> \u041f\u043e\u0441\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f LDAP \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u043e\u043e\u0431\u0449\u0435 \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u0432. \u0427\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0445\u043e\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a NiFi, \u043b\u0443\u0447\u0448\u0435 \u0441\u0440\u0430\u0437\u0443 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f-\u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430.<\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0434\u043c\u0438\u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u0443\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c ldap, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a sAMAccountName. \u0411\u044b\u0432\u0430\u044e\u0442 \u0442\u0430\u043a\u0436\u0435 \u0441\u043b\u0443\u0447\u0430\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 LDAP, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043a\u0430\u043a &#171;cn=myuser, ou=NiFi&#187;, uid=13567 \u0438\u043b\u0438 \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u044b\u0439 bind_dn, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0432\u0441\u0435 \u0433\u0440\u0443\u043f\u043f\u044b. \u0417\u0434\u0435\u0441\u044c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 TRACE \u0432\u0441\u0435\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0432 logback.xml \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \/opt\/NiFi\/logs\/NiFi-app.log.<\/p>\n<p><strong>\u0412\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 2.<\/strong> Registry \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043e\u0442 NiFi \u043f\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c, \u0438 Owner \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0441 \u0434\u0432\u0443\u043c\u044f \u043d\u044e\u0430\u043d\u0441\u0430\u043c\u0438: \u043b\u0438\u0431\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u0447\u0442\u043e\u0431\u044b cn=myuser, \u043b\u0438\u0431\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c user \u0441 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c. \u041c\u044b \u0438\u0434\u0435\u043c \u043f\u043e \u0432\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u0443\u0442\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u0445\u043e\u0442\u0438\u043c \u0438\u043c\u0435\u0442\u044c \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 NiFi \u0431\u0435\u0437 \u043a\u0440\u0430\u0441\u043d\u044b\u0445 \u0437\u0430\u043c\u043a\u043e\u0432 \u0432 \u0432\u0435\u0431\u0435.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c, \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 jks.<\/p>\n<pre><code>keytool --list -v -keystore $(hostname).jks<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u0443\u0436\u0435\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c &#171;CN=$(hostname), O=XXX.NUBES.RU&#187;. \u041e\u043d \u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u0437 NiFi \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a NiFi Registry.<\/p>\n<p><strong>\u0412\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442<\/strong> <strong>3.<\/strong> \u0412 NiFi-properties \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 managed-authorizer. \u041e\u043d \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u043b\u0430\u0441\u0441 file-access-policy-provider, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0430\u0434\u043c\u0438\u043d. \u041c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f AD (Active Directory), \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0442\u043e\u043c \u043b\u0435\u0433\u0447\u0435 \u0431\u044b\u043b\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c NiFi.\u00a0<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 composite-configurable-user-group-provider, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 ldap. \u041e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0447\u0442\u043e\u0431\u044b NiFi \u043c\u043e\u0433 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0441 Registry. \u041f\u0440\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 (\u043d\u043e \u0431\u0435\u0437 \u043f\u0440\u0430\u0432).<\/p>\n<p>\u0418 \u043f\u0430\u0440\u0430 \u0441\u043b\u043e\u0432 \u043e \u0440\u043e\u043b\u0435\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435. \u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u0432\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0432 AD (\u0430\u0434\u043c\u0438\u043d\u0441\u043a\u0438\u0435, \u043e\u0431\u044b\u0447\u043d\u044b\u0435). \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c \u0438\u0445 \u043a\u0430\u043a _security \u0438 nubes-XXX. \u0412\u043e \u0432\u0442\u043e\u0440\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 \u0432\u0445\u043e\u0434\u044f\u0442 \u0432\u0441\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f. \u0414\u043b\u044f _security \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0430. \u0420\u0430\u0437\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0430 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u043c\u043e\u0436\u043d\u043e, \u0438 \u044d\u0442\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0430\u0448\u0435 \u0434\u0435\u043b\u043e.\u00a0<\/p>\n<details class=\"spoiler\">\n<summary>\/opt\/nifi\/conf\/authorizers.xml<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?> &lt;authorizers>   &lt;userGroupProvider>     &lt;identifier>file-user-group-provider&lt;\/identifier>     &lt;class>org.apache.nifi.authorization.FileUserGroupProvider&lt;\/class>     &lt;property name=\"Users File\">.\/conf\/users.xml&lt;\/property>     &lt;property name=\"Initial User Identity 1\">CN=$(hostname), O=XXX.NUBES.RU&lt;\/property> &lt;\/userGroupProvider>   &lt;userGroupProvider>     &lt;identifier>ldap-user-group-provider&lt;\/identifier>     &lt;class>org.apache.nifi.ldap.tenants.LdapUserGroupProvider&lt;\/class>     &lt;property name=\"Authentication Strategy\">SIMPLE&lt;\/property>       &lt;property name=\"Manager DN\">cn=svc_nifi,ou=Service Users,dc=XXX,dc=nubes,dc=ru&lt;\/property>     &lt;property name=\"Manager Password\">secretpass&lt;\/property>       &lt;property name=\"TLS - Keystore\">&lt;\/property>     &lt;property name=\"TLS - Keystore Password\">&lt;\/property>     &lt;property name=\"TLS - Keystore Type\">&lt;\/property>     &lt;property name=\"TLS - Truststore\">&lt;\/property>     &lt;property name=\"TLS - Truststore Password\">&lt;\/property>     &lt;property name=\"TLS - Truststore Type\">&lt;\/property>     &lt;property name=\"TLS - Client Auth\">&lt;\/property>     &lt;property name=\"TLS - Protocol\">&lt;\/property>     &lt;property name=\"TLS - Shutdown Gracefully\">&lt;\/property>       &lt;property name=\"Referral Strategy\">FOLLOW&lt;\/property>     &lt;property name=\"Connect Timeout\">10 secs&lt;\/property>     &lt;property name=\"Read Timeout\">10 secs&lt;\/property>       &lt;property name=\"Url\">ldaps:\/\/ADSERVER:636&lt;\/property>     &lt;property name=\"Page Size\">&lt;\/property>     &lt;property name=\"Sync Interval\">30 mins&lt;\/property>       &lt;property name=\"Group Membership - Enforce Case Sensitivity\">false&lt;\/property>     &lt;property name=\"User Search Base\">ou=nubes-XXX,dc=XXX,dc=nubes,dc=ru&lt;\/property>     &lt;property name=\"User Object Class\">person&lt;\/property>     &lt;property name=\"User Search Scope\">SUBTREE&lt;\/property>     &lt;property name=\"User Search Filter\">&lt;\/property>     &lt;property name=\"User Identity Attribute\">sAMAccountName&lt;\/property>     &lt;property name=\"User Group Name Attribute\">&lt;\/property>     &lt;property name=\"User Group Name Attribute - Referenced Group Attribute\">&lt;\/property>       &lt;property name=\"Group Search Base\">OU=nifi,OU=_security,OU=nubes-XXX,DC=XXX,DC=nubes,DC=ru&lt;\/property>     &lt;property name=\"Group Object Class\">group&lt;\/property>     &lt;property name=\"Group Search Scope\">SUBTREE&lt;\/property>     &lt;property name=\"Group Search Filter\">&lt;\/property>     &lt;property name=\"Group Name Attribute\">cn&lt;\/property>     &lt;property name=\"Group Member Attribute\">member&lt;\/property>     &lt;property name=\"Group Member Attribute - Referenced User Attribute\">&lt;\/property> &lt;\/userGroupProvider>   &lt;userGroupProvider>     &lt;identifier>composite-configurable-user-group-provider&lt;\/identifier>     &lt;class>org.apache.nifi.authorization.CompositeConfigurableUserGroupProvider&lt;\/class>     &lt;property name=\"Configurable User Group Provider\">file-user-group-provider&lt;\/property>     &lt;property name=\"User Group Provider 1\">ldap-user-group-provider&lt;\/property> &lt;\/userGroupProvider>   &lt;accessPolicyProvider>     &lt;identifier>file-access-policy-provider&lt;\/identifier>     &lt;class>org.apache.nifi.authorization.FileAccessPolicyProvider&lt;\/class>     &lt;property name=\"User Group Provider\">composite-configurable-user-group-provider&lt;\/property>     &lt;property name=\"Authorizations File\">.\/conf\/authorizations.xml&lt;\/property>     &lt;property name=\"Initial Admin Identity\">myAdminUser&lt;\/property>     &lt;property name=\"Legacy Authorized Users File\">&lt;\/property>     &lt;property name=\"Node Identity 1\">CN=$(hostname), O=XXX.NUBES.RU&lt;\/property> &lt;\/accessPolicyProvider>   &lt;authorizer>     &lt;identifier>managed-authorizer&lt;\/identifier>     &lt;class>org.apache.nifi.authorization.StandardManagedAuthorizer&lt;\/class>     &lt;property name=\"Access Policy Provider\">file-access-policy-provider&lt;\/property>     &lt;property name=\"Node Identity 1\">CN=$(hostname), O=XXX.NUBES.RU&lt;\/property> &lt;\/authorizer>   &lt;authorizer>     &lt;identifier>single-user-authorizer&lt;\/identifier>     &lt;class>org.apache.nifi.authorization.single.user.SingleUserAuthorizer&lt;\/class> &lt;\/authorizer> &lt;\/authorizers> <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u0440\u0435\u0441\u0442\u0438\u0442\u044c\u0441\u044f \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c NiFi.<\/p>\n<pre><code class=\"bash\">systemctl daemon-reload systemctl enable --now nifi<\/code><\/pre>\n<h4>\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b NiFi Registry<\/h4>\n<p>\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u0434\u0435\u043b\u0430\u043b\u0438 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u044d\u0442\u0430\u043f\u0435 \u0441 NiFi. \u041d\u043e \u0431\u0435\u0437\u0434\u0443\u043c\u043d\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0444\u0430\u0439\u043b\u044b binary source \u0438 \u043a\u043b\u0430\u0441\u0441\u044b java \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f.<\/p>\n<details class=\"spoiler\">\n<summary>\/opt\/nifi\/conf\/nifi-registry.properties<\/summary>\n<div class=\"spoiler__content\">\n<pre><code># \u0411\u0430\u0437\u043e\u0432\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 nifi.registry.web.https.host=$(hostname) nifi.registry.web.https.port=8443   nifi.registry.security.keystore=.\/ssl\/$(hostname).jks nifi.registry.security.keystoreType=jks nifi.registry.security.keystorePasswd=jksSecretKey nifi.registry.security.keyPasswd=jksSecretKey nifi.registry.security.truststore=.\/ssl\/$(hostname).jks nifi.registry.security.truststoreType=jks nifi.registry.security.truststorePasswd=jksSecretKey   nifi.registry.security.needClientAuth=false nifi.registry.security.authorizers.configuration.file=.\/conf\/authorizers.xml nifi.registry.security.authorizer=managed-authorizer nifi.registry.security.identity.providers.configuration.file=.\/conf\/identity-providers.xml nifi.registry.security.identity.provider=ldap-identity-provider <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0431\u043b\u043e\u043a\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u043e\u0436\u0435 \u043d\u0438\u0447\u0435\u043c \u043e\u0441\u043e\u0431\u043e \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f.<\/p>\n<details class=\"spoiler\">\n<summary>\/opt\/nifi\/conf\/identity-providers.xml <\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>   &lt;identityProviders> &lt;provider>     &lt;identifier>ldap-identity-provider&lt;\/identifier>     &lt;class>org.apache.nifi.registry.security.ldap.LdapIdentityProvider&lt;\/class>     &lt;property name=\"Authentication Strategy\">SIMPLE&lt;\/property>       &lt;property name=\"Manager DN\">cn=svc_nifi,ou=Service Users,dc=XXX,dc=nubes,dc=ru&lt;\/property>     &lt;property name=\"Manager Password\">secretpass&lt;\/property>       &lt;property name=\"Referral Strategy\">FOLLOW&lt;\/property>     &lt;property name=\"Connect Timeout\">10 secs&lt;\/property>     &lt;property name=\"Read Timeout\">10 secs&lt;\/property>       &lt;property name=\"Url\">ldaps:\/\/ADSERVER:636&lt;\/property>     &lt;property name=\"User Search Base\">ou=nubes-XXX,dc=XXX,dc=nubes,dc=ru&lt;\/property>     &lt;property name=\"User Search Filter\">sAMAccountName={0}&lt;\/property>       &lt;property name=\"Identity Strategy\">USE_USERNAME&lt;\/property>     &lt;property name=\"Authentication Expiration\">12 hours&lt;\/property> &lt;\/provider> &lt;\/identityProviders> <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c NiFi \u0434\u043e\u043b\u0436\u0435\u043d \u0442\u0430\u043a\u0436\u0435 \u0431\u044b\u0442\u044c \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0432 NiFi Registry. \u0415\u0441\u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e (\u043a\u043b\u0430\u0441\u0442\u0435\u0440), \u0442\u043e \u0438\u0445 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 &#171;Initial User Identity 2&#187;, &#171;Initial User Identity 3&#187; \u0438 \u0442.\u0434.<\/p>\n<details class=\"spoiler\">\n<summary>\/opt\/nifi\/conf\/authorizers.xml<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?> &lt;authorizers>   &lt;userGroupProvider>     &lt;identifier>file-user-group-provider&lt;\/identifier>     &lt;class>org.apache.nifi.registry.security.authorization.file.FileUserGroupProvider&lt;\/class>     &lt;property name=\"Users File\">.\/conf\/users.xml&lt;\/property>     &lt;property name=\"Initial User Identity 1\">CN=$(hostname), O=XXX.NUBES.RU&lt;\/property> &lt;\/userGroupProvider>   &lt;userGroupProvider>     &lt;identifier>ldap-user-group-provider&lt;\/identifier>     &lt;class>org.apache.nifi.registry.security.ldap.tenants.LdapUserGroupProvider&lt;\/class>     &lt;property name=\"Authentication Strategy\">SIMPLE&lt;\/property>       &lt;property name=\"Manager DN\">cn=svc_nifi,ou=Service Users,dc=XXX,dc=nubes,dc=ru&lt;\/property>     &lt;property name=\"Manager Password\">secretpass&lt;\/property>       &lt;property name=\"TLS - Keystore\">&lt;\/property>     &lt;property name=\"TLS - Keystore Password\">&lt;\/property>     &lt;property name=\"TLS - Keystore Type\">&lt;\/property>     &lt;property name=\"TLS - Truststore\">&lt;\/property>     &lt;property name=\"TLS - Truststore Password\">&lt;\/property>     &lt;property name=\"TLS - Truststore Type\">&lt;\/property>        &lt;property name=\"TLS - Client Auth\">&lt;\/property>     &lt;property name=\"TLS - Protocol\">&lt;\/property>     &lt;property name=\"TLS - Shutdown Gracefully\">&lt;\/property>       &lt;property name=\"Referral Strategy\">FOLLOW&lt;\/property>     &lt;property name=\"Connect Timeout\">10 secs&lt;\/property>     &lt;property name=\"Read Timeout\">10 secs&lt;\/property>       &lt;property name=\"Url\">ldaps:\/\/ADSERVER:636&lt;\/property>     &lt;property name=\"Page Size\">&lt;\/property>     &lt;property name=\"Sync Interval\">30 mins&lt;\/property>       &lt;property name=\"Group Membership - Enforce Case Sensitivity\">false&lt;\/property>     &lt;property name=\"User Search Base\">ou=nubes-XXX,dc=XXX,dc=nubes,dc=ru&lt;\/property>     &lt;property name=\"User Object Class\">person&lt;\/property>     &lt;property name=\"User Search Scope\">SUBTREE&lt;\/property>     &lt;property name=\"User Search Filter\">&lt;\/property>     &lt;property name=\"User Identity Attribute\">sAMAccountName&lt;\/property>     &lt;property name=\"User Group Name Attribute\">&lt;\/property>     &lt;property name=\"User Group Name Attribute - Referenced Group Attribute\">&lt;\/property>       &lt;property name=\"Group Search Base\">OU=nifi,OU=_security,OU=nubes-XXX,DC=XXX,DC=nubes,DC=ru&lt;\/property>     &lt;property name=\"Group Object Class\">group&lt;\/property>     &lt;property name=\"Group Search Scope\">SUBTREE&lt;\/property>     &lt;property name=\"Group Search Filter\">&lt;\/property>     &lt;property name=\"Group Name Attribute\">cn&lt;\/property>     &lt;property name=\"Group Member Attribute\">member&lt;\/property>     &lt;property name=\"Group Member Attribute - Referenced User Attribute\">&lt;\/property> &lt;\/userGroupProvider>   &lt;userGroupProvider>     &lt;identifier>composite-user-group-provider&lt;\/identifier>     &lt;class>org.apache.nifi.registry.security.authorization.CompositeUserGroupProvider&lt;\/class>     &lt;property name=\"User Group Provider 1\">file-user-group-provider&lt;\/property>     &lt;property name=\"User Group Provider 2\">ldap-user-group-provider&lt;\/property> &lt;\/userGroupProvider>     &lt;accessPolicyProvider>     &lt;identifier>file-access-policy-provider&lt;\/identifier>     &lt;class>org.apache.nifi.registry.security.authorization.file.FileAccessPolicyProvider&lt;\/class>     &lt;property name=\"User Group Provider\">composite-user-group-provider&lt;\/property>     &lt;property name=\"Authorizations File\">.\/conf\/authorizations.xml&lt;\/property>         &lt;property name=\"Initial Admin Identity\">myAdminUser&lt;\/property>     &lt;property name=\"Nifi Identity 1\">CN=$(hostname), O=XXX.NUBES.RU&lt;\/property> &lt;\/accessPolicyProvider>   &lt;authorizer>     &lt;identifier>managed-authorizer&lt;\/identifier>     &lt;class>org.apache.nifi.registry.security.authorization.StandardManagedAuthorizer&lt;\/class>     &lt;property name=\"Access Policy Provider\">file-access-policy-provider&lt;\/property>     &lt;property name=\"Node Identity 1\">CN=$(hostname), O=XXX.NUBES.RU&lt;\/property> &lt;\/authorizer> &lt;\/authorizers> <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0441\u0442\u0430\u0432\u0438\u043c \u0441\u0432\u0435\u0447\u043a\u0443 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c NiFi Registry.<\/p>\n<pre><code class=\"bash\">systemctl daemon-reload systemctl enable --now nifi<\/code><\/pre>\n<h4>\u0421\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u043c NiFi \u0441 NiFi Registry<\/h4>\n<p>\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0441\u0440\u0430\u0437\u0443 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0434\u0430\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 workflow.<\/p>\n<blockquote>\n<p>\u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0441\u0440\u0435\u0434\u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0431\u044b\u0442\u044c. \u041d\u043e \u0435\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c, \u043f\u0440\u0438\u0447\u0435\u043c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e. \u041d\u0430 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u043e\u043b\u0438\u0442\u0438\u043a \u0443 \u043d\u0430\u0441 \u0443\u0448\u043b\u043e \u043c\u0438\u043d\u0443\u0442 10\u201415, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f\/\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0414\u043b\u044f read\/write \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0438 \u0432 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430\u0445. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e-\u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0443. <\/p>\n<\/blockquote>\n<figure class=\"float full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/eef\/093\/2af\/eef0932af340bcf8452be97b8c5e3a5a.png\" width=\"576\" height=\"441\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/eef\/093\/2af\/eef0932af340bcf8452be97b8c5e3a5a.png\"\/><\/figure>\n<figure class=\"float\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/90b\/e58\/90a\/90be5890a469c52d34dee7fa63e5dd34.png\" width=\"369\" height=\"156\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/90b\/e58\/90a\/90be5890a469c52d34dee7fa63e5dd34.png\"\/><\/figure>\n<figure class=\"float\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/90b\/e58\/90a\/90be5890a469c52d34dee7fa63e5dd34.png\" width=\"369\" height=\"156\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/90b\/e58\/90a\/90be5890a469c52d34dee7fa63e5dd34.png\"\/><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432 Registry. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0434\u0435\u043c \u0432 \u043c\u0435\u043d\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u2014 Controller Settings \u2014 Registry clients \u2014 Add. \u0412\u0432\u043e\u0434\u0438\u043c \u043b\u044e\u0431\u043e\u0435 \u0438\u043c\u044f. \u041f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Properties \u0438 \u0432\u0432\u043e\u0434\u0438\u043c URL.  <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e8b\/996\/5dc\/e8b9965dc3fa6dc3f105f7199d8efc3d.png\" width=\"745\" height=\"224\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e8b\/996\/5dc\/e8b9965dc3fa6dc3f105f7199d8efc3d.png\"\/><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a Registry. \u0410\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u043c\u0441\u044f, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0432 Settings \u2014 Users. \u0412 \u043f\u043e\u0438\u0441\u043a\u0435 \u043d\u0430\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u0432\u044b\u0434\u0430\u0435\u043c \u0435\u043c\u0443 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0430\u0432\u0430 (\u0441\u043c. \u0441\u043a\u0440\u0438\u043d \u043d\u0438\u0436\u0435).<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e32\/533\/674\/e3253367411d7d5082256db640705e46.png\" width=\"398\" height=\"392\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e32\/533\/674\/e3253367411d7d5082256db640705e46.png\"\/><\/figure>\n<p><a class=\"anchor\" name=\"test\" id=\"test\"><\/a><\/p>\n<h4>\u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c\u00a0<\/h4>\n<p>\u0412 NiFi Registry \u0441\u043e\u0437\u0434\u0430e\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0431\u0430\u043a\u0435\u0442.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/16b\/752\/2b9\/16b7522b998a3dc785792518121d740f.png\" width=\"731\" height=\"198\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/16b\/752\/2b9\/16b7522b998a3dc785792518121d740f.png\"\/><\/figure>\n<p>\u0417\u0430\u0442\u0435\u043c \u0438\u0434\u0435\u043c \u0432 NiFi \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c Process Group. \u0415\u0441\u043b\u0438 \u043c\u0435\u043d\u044e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043e, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u043e\u0432\u0443\u044e \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u0438 \u0432\u044b\u0434\u0430\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043b\u044f \u043d\u0443\u0436\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<figure class=\"float full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c50\/194\/a69\/c50194a691137c0c725723e0fa0612e8.png\" width=\"542\" height=\"319\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c50\/194\/a69\/c50194a691137c0c725723e0fa0612e8.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/878\/444\/82a\/87844482a0c68faf4fbb78afaeec2685.png\" width=\"785\" height=\"314\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/878\/444\/82a\/87844482a0c68faf4fbb78afaeec2685.png\"\/><\/figure>\n<p>\u0415\u0441\u043b\u0438 \u0431\u0430\u043a\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0441\u044f, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0448\u0430\u043c\u043f\u0430\u043d\u0441\u043a\u043e\u0435 \u2014 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 NiFi \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430! \u0421 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<s> \u041e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c 100500 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c.<\/s><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1c8\/cd0\/cde\/1c8cd0cde54f6e4cfed9dbc07d616246.png\" width=\"761\" height=\"202\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1c8\/cd0\/cde\/1c8cd0cde54f6e4cfed9dbc07d616246.png\"\/><\/figure>\n<p><a class=\"anchor\" name=\"errors\" id=\"errors\"><\/a><\/p>\n<h2>\u041e\u0448\u0438\u0431\u043a\u0438, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0438 \u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/h2>\n<h4>Unable to obtain listing of buckets<\/h4>\n<pre><code class=\"bash\">Unable to obtain listing of buckets: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target<\/code><\/pre>\n<p>\u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0435 NiFi Registry \u0432 Registry Clients \u0438\u043b\u0438 \u0437\u0430\u0445\u043e\u0434\u0438\u0442\u0435 \u0432 Start Version Control\u0412 jks, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 NiFi-Properties. \u0421\u0443\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b: \u0443 NiFi \u0438 NiFi Registry \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0434\u043e\u0432\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:  <\/p>\n<pre><code class=\"bash\">keytool -importcert -file cert.crt -keystore $(hostname).jks -alias \"cert\"<\/code><\/pre>\n<h4>Unable to view the user interface<\/h4>\n<p>\u041e\u0448\u0438\u0431\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441 \u043b\u043e\u0433\u0438\u043d\u043e\u043c ldap. \u041e\u043d\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d LDAP \u0438\u043b\u0438 \u043d\u0435\u0432\u0435\u0440\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c-\u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440.<\/p>\n<p>\u041f\u0440\u0438 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0442\u0430\u043a, \u0447\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 LDAP \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c-\u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0443\u043a\u0430\u0437\u0430\u043d \u0432\u0435\u0440\u043d\u043e, \u043d\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e. \u041f\u0440\u0438\u0447\u0435\u043c \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e NiFi \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0441\u044f \u0431\u0435\u0437 LDAP, \u0445\u043e\u0442\u044f \u0438 \u043d\u0435\u0434\u043e\u043b\u0433\u043e. \u041f\u043e\u043c\u043e\u0433\u043b\u0430 \u043f\u043e\u043b\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430.<\/p>\n<h4>No available buckets<\/h4>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043a Start Version Control, \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 bucket.<\/p>\n<p>\u041e\u0448\u0438\u0431\u043a\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 NiFi \u0438 NiFi Registry. \u041e\u0442\u0434\u0435\u0431\u0430\u0436\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f TRACE \u0432\u043e \u0432\u0441\u0435\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \u0432 logback.xml \u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u043b\u043e\u0433\u043e\u0432 \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043d\u0430 Start Version Control. \u0412 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 <strong>No user found for identity<\/strong>. \u042d\u0442\u0443 \u0444\u0440\u0430\u0437\u0443 \u043c\u043e\u0436\u043d\u043e \u0432\u0431\u0438\u0442\u044c \u0432 \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u0432\u0441\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u044f\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0447\u0438\u0442\u0430\u0442\u044c \u0442\u043e\u043d\u043d\u044b \u043b\u043e\u0433\u043e\u0432 \u0440\u0430\u0437\u043e\u043c.<\/p>\n<h4>\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u0432 NiFi<\/h4>\n<p>\u0421 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u0442\u043e\u043b\u043d\u0443\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430\u0445 authorized.xml \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 Initial User Identity. \u0427\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u0437 users.xml \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c NiFi.<\/p>\n<p><em>\u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0433\u0430\u0439\u0434 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u0434\u0440\u0443\u0436\u0438\u0442\u044c\u0441\u044f \u0441 NiFi \u0438 \u043d\u0435 \u0441\u043f\u043e\u0442\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0430 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043e\u0448\u0438\u0431\u043e\u043a. \u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0438\u0442\u0435, \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0432\u044b? \u041a\u0430\u043a \u0438\u0445 \u0440\u0435\u0448\u0430\u043b\u0438? \ud83d\ude42<\/em><\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/798641\/\"> https:\/\/habr.com\/ru\/articles\/798641\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u043f\u0440\u043e Apache NiFi \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b\u0438 \u043d\u0435 \u0440\u0430\u0437. \u041d\u043e \u0435\u0441\u043b\u0438 \u0442\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0448\u044c\u0441\u044f \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u0431\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u043b\u0435\u0433\u043a\u043e. \u041e\u0431\u044b\u0447\u043d\u043e \u0441 \u0442\u043e\u0431\u043e\u0439 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u0442\u0430\u043a, \u0431\u0443\u0434\u0442\u043e \u0442\u044b \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u0432 \u0442\u0435\u043c\u0435, \u0434\u0430 \u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0447\u0430\u0449\u0435 \u0440\u0435\u0448\u0430\u044e\u0442 \u044f\u0432\u043d\u043e \u043d\u0435 \u0442\u0432\u043e\u0438. \u0421 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u0442\u043e\u0436\u0435 \u0432\u0441\u0435 \u0441\u043b\u043e\u0436\u043d\u043e: \u043e\u043d\u0430 \u0435\u0441\u0442\u044c, \u043d\u043e \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u044f\u0432\u043d\u043e \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442. <\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0433\u0430\u0439\u0434 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u0430. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 <a href=\"https:\/\/habr.com\/ru\/article\/798641#setting\">\u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439<\/a> NiFi \u0438 NiFi Registry,\u00a0<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/article\/798641#LDAP\">\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u043e LDAP<\/a>,\u00a0<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/article\/798641#test\">\u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c<\/a>,<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c<a href=\"https:\/\/habr.com\/ru\/article\/798641#errors\"> \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/a> \u0438 \u043e\u0442\u0434\u0435\u0431\u0430\u0436\u0438\u0442\u044c \u0438\u0445.\u00a0 \u00a0 <\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p>\u041e\u0431\u044b\u0447\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0447\u0438\u0442\u0430\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u043c\u0430\u043d\u0443\u0430\u043b\u044b. \u0422\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, \u0447\u0435\u0433\u043e \u043d\u0435\u0442 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0442\u043e\u0436\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f. \u0410 \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0447\u0442\u043e-\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e \u0442\u0435\u043c\u0435, \u043f\u0438\u0448\u0438\u0442\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445. \u0411\u0443\u0434\u0443 \u0440\u0430\u0434 \u043f\u043e\u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \ud83d\ude42  <\/p>\n<\/blockquote>\n<p><a class=\"anchor\" name=\"setting\" id=\"setting\"><\/a><\/p>\n<h3>\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u00a0\u00a0<\/h3>\n<p>\u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e Apache NiFi \u2014 \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438\u0437 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432. \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f: \u0432\u0437\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 Kafka, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0432 \u0411\u0414.<\/p>\n<p>\u041c\u044b \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 <a href=\"https:\/\/nubes.ru\"><u>\u041d\u0423\u0411\u0415\u0421 (Nubes) <\/u><\/a>\u043d\u0430\u0447\u0430\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c NiFi \u0441 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Json. \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0438\u0445 \u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c \u0432 PostgreSQL, \u0430 \u0434\u0430\u043b\u0435\u0435 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0442\u0447\u0435\u0442\u043e\u0432.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u0430\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<ol>\n<li>\n<p>\u0414\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f Java \u2014 \u0431\u0435\u0437 \u043d\u0435\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f.  <\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"bash\">sudo dnf install java-21-openjdk-devel<\/code><\/pre>\n<ol start=\"2\">\n<li>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f NiFi.<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"bash\">useradd -d \/opt\/NiFi\/ NiFi -s \/sbin\/nologin<\/code><\/pre>\n<ol start=\"3\">\n<li>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c NiFi \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430, <a href=\"https:\/\/nifi.apache.org\/download\/\"><u>\u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e<\/u><\/a>. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 1.25.0.  <\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"bash\">wget https:\/\/dlcdn.apache.org\/nifi\/1.25.0\/nifi-1.25.0-bin.zip unzip https:\/\/dlcdn.apache.org\/nifi\/1.25.0\/nifi-1.25.0-bin.zip ln -s nifi-1.25.0-bin nifi<\/code><\/pre>\n<ol start=\"4\">\n<li>\n<p>\u041e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 (\u043c\u0435\u043d\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 NN \u043d\u0430 \u0441\u0432\u043e\u0435) \u0438 \u0442\u043e, \u043a\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c NiFi. <\/p>\n<\/li>\n<\/ol>\n<details class=\"spoiler\">\n<summary>\/opt\/nifi\/conf\/bootstrap.conf<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>run.as=nifi java.arg.2=-XmsNNg java.arg.3=-XmxNNg<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<ol start=\"5\">\n<li>\n<p>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c systemd.  <\/p>\n<\/li>\n<\/ol>\n<details class=\"spoiler\">\n<summary>\/etc\/systemd\/system\/nifi.service<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>[Unit] Description=Apache Nifi After=network.target   [Service] Type=forking ExecStart=\/opt\/nifi\/bin\/nifi.sh start ExecStop=\/opt\/nifi\/bin\/nifi.sh stop ExecReload=\/opt\/nifi\/bin\/nifi.sh restart User=nifi Restart=always Environment=\"JAVA_HOME=\/usr\/lib\/jvm\/jre-openjdk\" Environment=\"LD_LIBRARY_PATH=\/usr\/lib\/jvm\/jre-openjdk\/lib\"   [Install] WantedBy=multi-user.target<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\/etc\/systemd\/system\/nifi-registry.service<\/summary>\n<div class=\"spoiler__content\">\n<p>[Unit]<br \/> Description=Apache Nifi<br \/> After=network.target<\/p>\n<p>[Service]<br \/> Type=forking<br \/> ExecStart=\/opt\/nifi\/bin\/nifi-registry.sh start<br \/> ExecStop=\/opt\/nifi\/bin\/nifi-registry.sh stop<br \/> ExecReload=\/opt\/nifi\/bin\/nifi-registry.sh restart<br \/> User=nifi<br \/> Restart=always<br \/> Environment=&#187;JAVA_HOME=\/usr\/lib\/jvm\/jre-openjdk&#187;<br \/> Environment=&#187;LD_LIBRARY_PATH=\/usr\/lib\/jvm\/jre-openjdk\/lib&#187;<\/p>\n<p>[Install]<br \/> WantedBy=multi-user.target<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430. \u041d\u0430 \u044d\u0442\u043e\u043c \u043c\u043e\u043c\u0435\u043d\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c NiFi \u0438 Registry\u2026\u00a0\u00a0<\/p>\n<p>\u041d\u043e \u043d\u0435 \u0432\u0441\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e. \u0414\u0440\u0443\u0436\u0438\u0442\u044c \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c \u043e\u043d\u0438 \u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u044f\u0442, \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0430\u0431\u044b \u043a\u0430\u043a. \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c? \u041e\u0442\u0432\u0435\u0442 \u2014 \u0434\u0430\u043b\u0435\u0435. <\/p>\n<h4>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b<\/h4>\n<p>\u041a\u0430\u043a \u0432\u044b \u0443\u0436\u0435 \u043f\u043e\u043d\u044f\u043b\u0438, \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442. \u0412 \u043d\u0430\u0448\u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0437\u0430 \u0446\u0435\u043d\u0442\u0440 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043c\u043e\u0434\u0443\u043b\u044c CA (certificate authority) \u0432 FreeIPA. \u0412 \u0446\u0435\u043b\u043e\u043c, \u043d\u0435\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a FreeIPA: \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0421\u0410, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435, \u0447\u0442\u043e \u0435\u043c\u0443 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u0448\u044c.<\/p>\n<p>\u0412\u0441\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 <strong>\/opt\/NiFi\/ssl <\/strong>(\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c).<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442.<\/p>\n<details class=\"spoiler\">\n<summary>\/opt\/nifi\/ssl\/$(hostname).conf<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">[req] distinguished_name = req_distinguished_name req_extensions = v3_req prompt = no   [req_distinguished_name] C = RU ST = Russia L = Moscow O = nubes OU = nubes CN = $(hostname)   [v3_req] keyUsage = keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0417\u0430\u0442\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443.<\/p>\n<pre><code class=\"bash\">openssl req -newkey rsa:2048 -keyout  $(hostname).key -out  $(hostname).csr -config  $(hostname).conf -nodes<\/code><\/pre>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c CSR (\u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0434\u043e\u043c\u0435\u043d\u0435 \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438). \u0422\u0435\u043f\u0435\u0440\u044c \u0431\u0435\u0440\u0435\u043c \u0435\u0433\u043e \u0438 \u0431\u0435\u0436\u0438\u043c \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442. \u0421\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u0440\u044f\u0434\u043e\u043c \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440. \u0417\u0430\u043e\u0434\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c root\/intermediate \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b FreeIPA \u0421\u0410.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412\u0441\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b NiFi \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u0432 p12, \u043b\u0438\u0431\u043e \u0432 jks \u2014 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0432\u044b\u0431\u0438\u0440\u0430\u0439\u0442\u0435 \u043d\u0430 \u0441\u0432\u043e\u0435 \u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0435. \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0431\u0430 \u0441\u043b\u0443\u0447\u0430\u044f.\u00a0<\/p>\n<p>\u0414\u043b\u044f \u0442\u0435\u0441\u0442\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 ks \u0438 ts,\u043e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u0434\u0435\u043b\u0435 <a href=\"https:\/\/www.geeksforgeeks.org\/difference-between-truststore-and-keystore-in-java\"><u>\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c<\/u><\/a>.<\/p>\n<blockquote>\n<p><strong>KeyStore<\/strong> \u0445\u0440\u0430\u043d\u0438\u0442 \u043a\u043b\u044e\u0447\u0438 \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a <strong>TrustStore<\/strong> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0434\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u041f\u041e.  <\/p>\n<\/blockquote>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u043c p12. \u0417\u0430\u0440\u0430\u043d\u0435\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u044b\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u043e\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u043b\u044f KeyStore. <\/p>\n<pre><code class=\"bash\">openssl pkcs12 -export -in $(hostname).crt -inkey $(hostname).key -out $(hostname).p12<\/code><\/pre>\n<p>\u0418 \u0438\u0437 p12 \u0441\u043e\u0437\u0434\u0430\u0435\u043c jks. \u041f\u0430\u0440\u043e\u043b\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u0442\u043e\u0442 \u0436\u0435, \u0447\u0442\u043e \u0438 \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438 \u0432\u044b\u0448\u0435.<\/p>\n<pre><code class=\"bash\">keytool -importkeystore -destkeystore $(hostname).jks -srckeystore $(hostname).p12 -srcstoretype PKCS12<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0432 jks.  <\/p>\n<pre><code class=\"bash\">keytool -importcert -file idm-intermediate.crt -keystore $(hostname).jks -alias \"idm-intermediate\" keytool -importcert -file idm-root.crt -keystore $(hostname).jks -alias \"idm-root\" keytool -importcert -file registry.crt -keystore $(hostname).jks -alias \"nifi-registry\"<\/code><\/pre>\n<h4>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b NiFi<\/h4>\n<p>\u041e \u0432\u0441\u0435\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 NiFi \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/nifi.apache.org\/docs\/nifi-docs\/html\/administration-guide.html\"><u>\u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c<\/u><\/a> \u0437\u0434\u0435\u0441\u044c. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439.\u00a0<\/p>\n<p>\u0412 \u0446\u0435\u043b\u043e\u043c NiFi \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u0440\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438:<\/p>\n<ul>\n<li>\n<p>NiFi-properties (\u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b) \u2014 \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u0442\u0443, \u043d\u0430 \u043a\u0430\u043a\u0438\u0445 \u0430\u0434\u0440\u0435\u0441\u0430\u0445 \u0438 \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f;<\/p>\n<\/li>\n<li>\n<p>Login-identity \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f (noauth, ldap, salm, kerb);<\/p>\n<\/li>\n<li>\n<p>Authorizers \u2014 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u0432, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<details class=\"spoiler\">\n<summary>\/opt\/nifi\/conf\/nifi.properties<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b NiFi \u041e \u0432\u0441\u0435\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 NiFi \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439.  \u0412 \u0446\u0435\u043b\u043e\u043c NiFi \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u0440\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438: NiFi-properties (\u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b) \u2014 \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u0442\u0443, \u043d\u0430 \u043a\u0430\u043a\u0438\u0445 \u0430\u0434\u0440\u0435\u0441\u0430\u0445 \u0438 \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f; Login-identity \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f (noauth, ldap, salm, kerb); Authorizers \u2014 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u0432, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f. # \u0411\u0430\u0437\u043e\u0432\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 nifi.web.https.host=$(hostname) nifi.web.https.port=8443 # \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u044e\u0434\u0430 nifi.sensitive.props.key=123qwesecretkey   nifi.security.keystore=.\/ssl\/$(hostname).jks nifi.security.keystoreType=jks # \u041f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 jks nifi.security.keystorePasswd=jksSecretKey # \u041f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 jks nifi.security.keyPasswd=jksSecretKey nifi.security.truststore=.\/ssl\/$(hostname).jks nifi.security.truststoreType=jks # \u041f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 jks nifi.security.truststorePasswd=jksSecretKey # \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u043e LDAP nifi.security.user.authorizer=managed-authorizer nifi.security.allow.anonymous.authentication=false nifi.security.user.login.identity.provider=ldap-provider<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p><a class=\"anchor\" name=\"LDAP\" id=\"LDAP\"><\/a><\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0431\u043b\u043e\u043a \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438. \u041d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0415\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 LDAP \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0438\u0441\u0442\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u0438\u043f\u0430\u0434\u043e\u043a, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c<a href=\"https:\/\/directory.apache.org\/studio\/downloads.html\"> <u>Apache DS<\/u><\/a> \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u0434 \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c. \u0417\u0430\u0442\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0439\u0442\u0438 \u0434\u043e \u043d\u0443\u0436\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f\/\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f.<\/p>\n<details class=\"spoiler\">\n<summary>\/opt\/nifi\/conf\/login-identity-providers.xml<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"xml\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>&lt;loginIdentityProviders> &lt;provider>     &lt;identifier>single-user-provider&lt;\/identifier>     &lt;class>org.apache.nifi.authentication.single.user.SingleUserLoginIdentityProvider&lt;\/class>     &lt;property name=\"Username\">&lt;\/property>     &lt;property name=\"Password\">&lt;\/property> &lt;\/provider>   &lt;provider>     &lt;identifier>ldap-provider&lt;\/identifier>     &lt;class>org.apache.nifi.ldap.LdapProvider&lt;\/class>     &lt;property name=\"Authentication Strategy\">SIMPLE&lt;\/property>       &lt;property name=\"Manager DN\">cn=svc_nifi,ou=Service Users,dc=XXX,dc=nubes,dc=ru&lt;\/property>     &lt;property name=\"Manager Password\">secretpass&lt;\/property>       &lt;property name=\"TLS - Keystore\">&lt;\/property>     &lt;property name=\"TLS - Keystore Password\">&lt;\/property>     &lt;property name=\"TLS - Keystore Type\">&lt;\/property>     &lt;property name=\"TLS - Truststore\">&lt;\/property>     &lt;property name=\"TLS - Truststore Password\">&lt;\/property>     &lt;property name=\"TLS - Truststore Type\">&lt;\/property>     &lt;property name=\"TLS - Client Auth\">&lt;\/property>     &lt;property name=\"TLS - Protocol\">&lt;\/property>     &lt;property name=\"TLS - Shutdown Gracefully\">&lt;\/property>       &lt;property name=\"Referral Strategy\">FOLLOW&lt;\/property>     &lt;property name=\"Connect Timeout\">10 secs&lt;\/property>     &lt;property name=\"Read Timeout\">10 secs&lt;\/property>       &lt;property name=\"Url\">ldaps:\/\/ADSERVER:636&lt;\/property>     &lt;property name=\"User Search Base\">ou=nubes-XXX,dc=XXX,dc=nubes,dc=ru&lt;\/property>     &lt;property name=\"User Search Filter\">sAMAccountName={0}&lt;\/property>       &lt;property name=\"Identity Strategy\">USE_USERNAME&lt;\/property>     &lt;property name=\"Authentication Expiration\">12 hours&lt;\/property> &lt;\/provider>   &lt;\/loginIdentityProviders><\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 NiFi \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043a\u0430\u043a sAMAccountName (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u044b\u043b \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u0435\u0444\u0438\u043a\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u2014 \u043e\u0431 \u044d\u0442\u043e\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0447\u0443\u0442\u044c \u043d\u0438\u0436\u0435) \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0433\u0434\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u043e\u043b\u0435\u0432\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c.<\/p>\n<p><strong>\u0412\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442<\/strong> <strong>1.<\/strong> \u041f\u043e\u0441\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f LDAP \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u043e\u043e\u0431\u0449\u0435 \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u0432. \u0427\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0445\u043e\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a NiFi, \u043b\u0443\u0447\u0448\u0435 \u0441\u0440\u0430\u0437\u0443 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f-\u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430.<\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0434\u043c\u0438\u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u0443\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c ldap, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a sAMAccountName. \u0411\u044b\u0432\u0430\u044e\u0442 \u0442\u0430\u043a\u0436\u0435 \u0441\u043b\u0443\u0447\u0430\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 LDAP, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043a\u0430\u043a &#171;cn=myuser, ou=NiFi&#187;, uid=13567 \u0438\u043b\u0438 \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u044b\u0439 bind_dn, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0432\u0441\u0435 \u0433\u0440\u0443\u043f\u043f\u044b. \u0417\u0434\u0435\u0441\u044c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 TRACE \u0432\u0441\u0435\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0432 logback.xml \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \/opt\/NiFi\/logs\/NiFi-app.log.<\/p>\n<p><strong>\u0412\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 2.<\/strong> Registry \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043e\u0442 NiFi \u043f\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c, <\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-370185","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/370185","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=370185"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/370185\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=370185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=370185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=370185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}