Apache NiFi系統管理員指南 [ 一 ]

如何安裝和啓動NiFi

端口配置

NiFi

嵌入式Zookeeper

配置最佳實踐

安全配置

TLS生成工具包

用戶認證

輕量級目錄訪問協議(LDAP)

Kerberos的

OpenId Connect

Apache Knox

多租戶授權

授權人配置

Authorizers.xml安裝程序

 


Apache NiFi團隊[email protected]

系統要求

Apache NiFi可以運行在像筆記本電腦這樣簡單的東西上,但它也可以集羣在許多企業級服務器上。因此,所需的硬件和內存量將取決於所涉及的數據流的大小和性質。在NiFi處理數據時,數據存儲在磁盤上。因此,NiFi需要爲其各種存儲庫分配足夠的磁盤空間,尤其是內容存儲庫,流文件存儲庫和源文件存儲庫(有關這些存儲庫的更多信息,請參閱“ 系統屬性”部分)。NiFi具有以下最低系統要求:

  • 需要Java 8或更高版本

  • 支持的操作系統:

    • Linux的

    • Unix的

    • 視窗

    • Mac OS X.

  • 支持的Web瀏覽器:

    • Microsoft Edge: Current & (Current - 1)

    • Mozilla FireFox: Current & (Current - 1)

    • Google Chrome: Current & (Current - 1)

    • Safari: Current & (Current - 1)

注意在持續且極高的吞吐量下,可能需要調整CodeCache設置以避免突然的性能損失。有關更多信息,請參閱Bootstrap Properties部分。

如何安裝和啓動NiFi

  • Linux / Unix / OS X.

    • 解壓縮並解壓縮到所需的安裝目錄

    • 在下面找到的文件中進行任何所需的編輯 <installdir>/conf

      • 至少,我們建議您編輯nifi.properties文件並輸入密碼nifi.sensitive.props.key(請參閱下面的系統屬性

    • <installdir>/bin目錄中,鍵入以下命令執行以下命令./nifi.sh <command>

      • start:在後臺啓動NiFi

      • stop:停止在後臺運行的NiFi

      • status:提供NiFi的當前狀態

      • run:在前臺運行NiFi並等待Ctrl-C啓動NiFi的關閉

      • install:安裝NiFi作爲服務,然後可以通過控制

        • service nifi start

        • service nifi stop

        • service nifi status

  • 視窗

    • 解壓縮到所需的安裝目錄

    • 在下面的文件中進行任何所需的編輯 <installdir>/conf

      • 至少,我們建議您編輯nifi.properties文件並輸入密碼nifi.sensitive.props.key(請參閱下面的系統屬性

    • 導航到該<installdir>/bin目錄

    • 雙擊run-nifi.bat。這會在前臺運行NiFi並等待Ctrl-C啓動NiFi的關閉

    • 要查看NiFi的當前狀態,請雙擊 status-nifi.bat

首次啓動NiFi時,會創建以下文件和目錄:

  • content_repository

  • database_repository

  • flowfile_repository

  • provenance_repository

  • work 目錄

  • logs 目錄

  • conf目錄中,將創建flow.xml.gz文件

有關配置NiFi存儲庫和配置文件的詳細信息,請參閱本指南的“ 系統屬性”部分。

端口配置

NiFi

下表列出了NiFi使用的默認端口以及nifi.properties文件中的相應屬性。

功能屬性默認值
Web HTTP Forwarding Port

nifi.web.http.port.forwarding

none
HTTP Port

nifi.web.http.port

8080

HTTPS Port*

nifi.web.https.port

9443

Remote Input Socket Port*

nifi.remote.input.socket.port

10443

Cluster Node Protocol Port*

nifi.cluster.node.protocol.port

11443

Cluster Node Load Balancing Port

nifi.cluster.node.load.balance.port

6342

  標有星號(*)的端口的屬性值默認爲nifi.properties中的空白。當使用TLS Toolkit爲安全的NiFi實例生成nifi.properties時,表中顯示的值是這些端口的默認值。TLS Toolkit使用的默認證書頒發機構端口是8443

嵌入式Zookeeper

下表列出了Embedded ZooKeeper服務器使用的默認端口以及zookeeper.properties文件中的相應屬性。

功能屬性默認值
Zookeeper Server Quorum and Leader Election Ports

server.1

沒有

Zookeeper Client Port

clientPort

2181

  Zookeeper服務器端口的註釋示例包含在表單中的zookeeper.properties文件中server.N=nifi-nodeN-hostname:2888:3888

配置最佳實踐

如果您在Linux上運行,請考慮這些最佳實踐。典型的Linux默認設置不一定能夠滿足像NiFi這樣的IO密集型應用程序的需求。對於所有這些領域,您的分發要求可能會有所不同。使用這些部分作爲建議,但請參閱特定於發行版的文檔,以瞭解如何最好地實現這些建議。

最大文件句柄(Maximum File Handles)

NiFi在任何時候都可能會打開非常大量的文件句柄。通過編輯/etc/security/limits.conf來增加限制,以添加類似的內容

  1.  
    * hard nofile 50000
  2.  
    * soft nofile 50000

最大Forked Processes

NiFi可以配置爲生成大量線程。要增加允許的數量,請編輯/etc/security/limits.conf

  1.  
    * hard nproc 10000
  2.  
    * soft nproc 10000

您的發行版可能需要通過添加來編輯/etc/security/limits.d/90-nproc.conf

* soft nproc 10000

增加可用的TCP套接字端口數

如果您的流量將在很短的時間內設置並拆除大量socket ,這一點尤爲重要。

sudo sysctl -w net.ipv4.ip_local_port_range =“10000 65000”

設置套接字在關閉時保持TIMED_WAIT狀態的時間 (Set how long sockets stay in a TIMED_WAIT state when closed)

考慮到您希望能夠快速設置和拆卸新套接字,您不希望您的套接字停留太長時間。最好多閱讀一下並調整類似的東西

sudo sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait =“1”

告訴Linux你永遠不希望NiFi交換

對於某些應用程序來說,交換非常棒。對於像NiFi一樣想要運行的東西並不好。要告訴Linux你要換掉,你可以編輯/etc/sysctl.conf來添加以下行

vm.swappiness = 0

對於處理各種NiFi回購的分區,請關閉類似atime的東西。這樣做會導致吞吐量出人意料地大幅增加。編輯/etc/fstab文件和感興趣的分區,添加noatime選項。

安全配置

NiFi提供多種不同的配置選項以用於安全目的。最重要的屬性是nifi.properties文件中“安全屬性”標題下的屬性。爲了安全運行,必須設置以下屬性:

物業名稱描述

nifi.security.truststorePasswd

Truststore的密碼。

nifi.security.keystore

包含服務器私鑰的密鑰庫的文件名。

nifi.security.keystoreType

密鑰庫的類型。必須是PKCS12JKS。JKS是首選類型,PKCS12文件將加載BouncyCastle提供程序。

nifi.security.keystorePasswd

密鑰庫的密碼。

nifi.security.keyPasswd

密鑰庫中證書的密碼。如果未設置,nifi.security.keystorePasswd將使用值。

nifi.security.truststore

將用於授權連接到NiFi的Truststore的文件名。沒有Truststore的安全實例將拒絕所有傳入連接。

nifi.security.truststoreType

Truststore的類型。必須是PKCS12JKS。JKS是首選類型,PKCS12文件將加載BouncyCastle提供程序。

一旦配置了上述屬性,我們就可以通過HTTPS而不是HTTP來訪問用戶界面。這是通過設置nifi.web.https.hostnifi.web.https.port屬性來完成的。該nifi.web.https.host屬性指示服務器應在哪個主機名上運行。如果希望可以從所有網絡接口訪問HTTPS接口,0.0.0.0則應使用值。允許管理員將應用程序配置爲僅在特定網絡接口上運行,nifi.web.http.network.interface*或者nifi.web.https.network.interface* 可以指定屬性。

  啓用HTTPS時重要的nifi.web.http.port是取消設置屬性。NiFi僅支持在HTTP 或 HTTPS 上運行,而不是同時支持。

當沒有配置需要單向SSL(例如LDAP,OpenId Connect等)的替代認證機制時,NiFi的Web服務器將要求訪問用戶界面的用戶使用基於證書的客戶端身份驗證。啓用備用身份驗證機制會將Web服務器配置爲WANT證書基本客戶端身份驗證。這將允許它支持具有證書的用戶,而沒有證書的用戶可以使用憑證登錄。有關詳細信息,請參閱用戶驗證

既然用戶界面已經受到保護,我們也可以輕鬆保護站點到站點的連接和內部羣集通信。這是通過分別設置nifi.remote.input.securenifi.cluster.protocol.is.secure屬性來實現的true。這些通信將始終需要雙向SSL,因爲節點將使用其配置的密鑰庫/信任庫進行身份驗證。

TLS生成工具包

爲了便於NiFi的安全設置,您可以使用tls-toolkit命令行實用程序自動生成所需的密鑰庫,信任庫和相關配置文件。這對於保護多個NiFi節點特別有用,這可能是一個單調乏味且容易出錯的過程。有關更多信息,請參閱NiFi工具包指南中TLS工具包部分。相關主題包括:

用戶認證

NiFi通過客戶端證書,用戶名/密碼,Apache Knox或OpenId Connect支持用戶身份驗證。

用戶名/密碼驗證由“登錄身份提供者”執行。登錄身份提供程序是一種可插入的機制,用於通過用戶名/密碼對用戶進行身份驗證。要在nifi.properties文件中配置要使用的登錄標識提供程序。目前,NiFi爲輕量級目錄訪問協議(LDAP)Kerberos提供了用戶名/密碼和登錄身份提供商選項。

nifi.login.identity.provider.configuration.file屬性指定登錄標識提供程序的配置文件。默認情況下,此屬性設置爲./conf/login-identity-providers.xml

nifi.security.user.login.identity.provider屬性指示應使用哪個配置的登錄標識提供程序。默認情況下,未配置此屬性意味着必須明確啓用用戶名/密碼。

在OpenId Connect身份驗證期間,NiFi會在返回NiFi之前將用戶重定向到使用提供商登錄。然後,NiFi將致電提供商以獲取用戶身份。

在Apache Knox身份驗證期間,NiFi將重定向用戶以使用Apache Knox登錄,然後再返回NiFi。NiFi將在身份驗證期間驗證Apache Knox令牌。

  NiFi只能在給定時間配置爲用戶名/密碼,OpenId Connect或Apache Knox。它不支持同時運行這些中的每一個。如果沒有配置這些,則NiFi將要求客戶端證書通過HTTPS對用戶進行身份驗證。

除非配置爲使用輕量級目錄訪問協議(LDAP)Kerberos登錄身份提供程序,否則無法匿名訪問受保護的NiFi實例,而後者必須配置爲明確允許匿名訪問。默認的FileAuthorizer目前無法進行匿名訪問(請參閱授權器配置),但這是未來的努力(NIFI-2730)。

  NiFi不通過HTTP執行用戶身份驗證。使用HTTP,所有用戶都將被授予所有角色。

輕量級目錄訪問協議(LDAP)

以下是配置登錄身份提供程序的示例和說明,該登錄身份提供程序與Directory Server集成以對用戶進行身份驗證。

nifi.properties中設置以下內容以啓用LDAP用戶名/密碼身份驗證:

nifi.security.user.login.identity.provider=ldap-provider

修改login-identity-providers.xml以啓用ldap-provider。以下是文件中提供的示例:

  1.  
    <provider>
     
    <identifier>ldap-provider</identifier>
     
    <class>org.apache.nifi.ldap.LdapProvider</class>
     
    <property name="Authentication Strategy">START_TLS</property>
     
     
     
    <property name="Manager DN"></property>
     
    <property name="Manager Password"></property>
     
     
     
    <property name="TLS - Keystore"></property>
     
    <property name="TLS - Keystore Password"></property>
     
    <property name="TLS - Keystore Type"></property>
     
    <property name="TLS - Truststore"></property>
     
    <property name="TLS - Truststore Password"></property>
     
    <property name="TLS - Truststore Type"></property>
     
    <property name="TLS - Client Auth"></property>
     
    <property name="TLS - Protocol"></property>
     
    <property name="TLS - Shutdown Gracefully"></property>
     
     
     
    <property name="Referral Strategy">FOLLOW</property>
     
    <property name="Connect Timeout">10 secs</property>
     
    <property name="Read Timeout">10 secs</property>
     
     
     
    <property name="Url"></property>
     
    <property name="User Search Base"></property>
     
    <property name="User Search Filter"></property>
     
     
     
    <property name="Identity Strategy">USE_DN</property>
     
    <property name="Authentication Expiration">12 hours</property>
     
    </provider>
    

      

ldap-provider具有以下特性:

物業名稱描述

Authentication Expiration

用戶身份驗證有效期的持續時間。如果用戶從未註銷,則需要在此持續時間之後重新登錄。

Authentication Strategy

如何驗證與LDAP服務器的連接。可能的值是ANONYMOUSSIMPLELDAPS,或START_TLS

Manager DN

用於綁定到LDAP服務器以搜索用戶的管理器的DN。

Manager Password

用於綁定到LDAP服務器以搜索用戶的管理器的密碼。

TLS - Keystore

使用LDAPS或START_TLS連接到LDAP時使用的密鑰庫的路徑。

TLS - Keystore Password

使用LDAPS或START_TLS連接到LDAP時使用的密鑰庫的密碼。

TLS - Keystore Type

使用LDAPS或START_TLS(即JKSPKCS12)連接到LDAP時使用的密鑰庫的類型。

TLS - Truststore

使用LDAPS或START_TLS連接到LDAP時使用的Truststore的路徑。

TLS - Truststore Password

使用LDAPS或START_TLS連接到LDAP時使用的Truststore的密碼。

TLS - Truststore Type

使用LDAPS或START_TLS(即JKSPKCS12)連接到LDAP時使用的Truststore的類型。

TLS - Client Auth

使用LDAPS或START_TLS連接到LDAP時的客戶端身份驗證策略。可能的值是REQUIREDWANTNONE

TLS - Protocol

使用LDAPS或START_TLS連接到LDAP時使用的協議。(即TLSTLSv1.1TLSv1.2,等等)。

TLS - Shutdown Gracefully

指定在關閉目標上下文之前是否應正常關閉TLS。默認爲false。

Referral Strategy

處理推薦的策略。可能的值是FOLLOWIGNORETHROW

Connect Timeout

連接超時的持續時間。(即10 secs)。

Read Timeout

讀取超時的持續時間。(即10 secs)。

Url

以空格分隔的LDAP服務器的URL列表(即ldap://<hostname>:<port>)。

User Search Base

用於搜索用戶的基本DN(即CN=Users,DC=example,DC=com)。

User Search Filter

過濾搜索用戶User Search Base。(即sAMAccountName={0})。用戶指定的名稱將插入“{0}”。

Identity Strategy

識別用戶的策略。可能的值是USE_DNUSE_USERNAME。缺少此屬性的默認功能是USE_DN,以保持向後兼容性。USE_DN將儘可能使用用戶條目的完整DN。USE_USERNAME將使用用戶登錄的用戶名。

  要使對nifi.propertieslogin-identity-providers.xml的更改生效,需要重新啓動NiFi。如果NiFi是羣集的,則所有節點上的配置文件必須相同。

Kerberos的

以下是配置登錄身份提供程序的示例和說明,該登錄身份提供程序與Kerberos密鑰分發中心(KDC)集成以對用戶進行身份驗證。

nifi.properties中設置以下內容以啓用Kerberos用戶名/密碼身份驗證:

nifi.security.user.login.identity.provider=kerberos-provider

修改login-identity-providers.xml以啓用kerberos-provider。以下是文件中提供的示例:

  1.  
    <provider>
     
    <identifier>kerberos-provider</identifier>
     
    <class>org.apache.nifi.kerberos.KerberosProvider</class>
     
    <property name="Default Realm">NIFI.APACHE.ORG</property>
     
    <property name="Authentication Expiration">12 hours</property>
     
    </provider>
    

      

kerberos-provider具有以下特性:

物業名稱描述

Authentication Expiration

用戶身份驗證有效期的持續時間。如果用戶從未註銷,則需要在此持續時間之後重新登錄。

Default Realm

當用戶輸入不完整的用戶主體(即NIFI.APACHE.ORG)時提供的默認域。

另請參閱Kerberos服務以允許通過客戶端Kerberos票證進行單點登錄訪問。

  要使對nifi.propertieslogin-identity-providers.xml的更改生效,需要重新啓動NiFi。如果NiFi是羣集的,則所有節點上的配置文件必須相同。

OpenId Connect

要通過OpenId Connect啓用身份驗證,必須在nifi.properties中配置以下屬性。

物業名稱描述

nifi.security.user.oidc.preferred.jwsalgorithm

用於驗證身份令牌的首選算法。如果此值爲空,則默認爲RS256OpenId Connect Provider根據規範要求支持的值。如果這個值HS256HS384或者HS512,NiFi將嘗試驗證HMAC使用指定的客戶端機密保護令牌。如果此值爲none,則NiFi將嘗試驗證不安全/普通令牌。此算法的其他值將嘗試解析爲RSA或EC算法,以與通過發現URL中找到的元數據中的jwks_uri提供的JSON Web Key(JWK)結合使用。

nifi.security.user.oidc.discovery.url

所需OpenId Connect Provider的發現URL

http://openid.net/specs/openid-connect-discovery-1_0.html)。

nifi.security.user.oidc.connect.timeout

與OpenId Connect Provider通信時連接超時。

nifi.security.user.oidc.read.timeout

與OpenId Connect Provider通信時讀取超時。

nifi.security.user.oidc.client.id

註冊OpenId Connect Provider後,NiFi的客戶端ID。

nifi.security.user.oidc.client.secret

在向OpenId Connect Provider註冊後,NiFi的客戶機密。

Apache Knox

要通過Apache Knox啓用身份驗證,必須在nifi.properties中配置以下屬性。

物業名稱描述

nifi.security.user.knox.audiences

可選的。逗號分隔列出的允許的受衆羣體。如果設置,則令牌中的受衆必須出現在此列表中。可以在Knox中配置令牌中填充的受衆。

nifi.security.user.knox.url

Apache Knox登錄頁面的URL。

nifi.security.user.knox.publicKey

Apache Knox公鑰的路徑,用於驗證HTTP Cookie中的身份驗證令牌的簽名。

nifi.security.user.knox.cookieName

成功登錄後Apache Knox將生成的HTTP Cookie的名稱。

多租戶授權

將NiFi配置爲安全運行並使用身份驗證機制後,您必須配置誰有權訪問系統以及訪問級別。您可以使用“多租戶授權”執行此操作。多租戶授權允許多組用戶(租戶)命令,控制和觀察數據流的不同部分,具有不同級別的授權。當經過身份驗證的用戶嘗試查看或修改NiFi資源時,系統會檢查用戶是否具有執行該操作的權限。這些權限由可以在系統範圍內應用於單個組件的策略定義。

授權人配置

“授權者”通過在啓動時創建初步授權,授予用戶管理用戶和策略的權限。

使用nifi.properties文件中的兩個屬性配置授權程序:

  • nifi.authorizer.configuration.file屬性指定定義授權器的配置文件。默認情況下,將選擇位於根安裝conf目錄中的authorizers.xml文件。

  • nifi.security.user.authorizer屬性指示authorizers.xml文件中要使用的已配置授權者。

Authorizers.xml安裝程序

authorizers.xml文件用於定義和配置可用的授權人。默認授權程序是StandardManagedAuthorizer。託管授權程序由UserGroupProvider和AccessPolicyProvider組成。將加載用戶,組和訪問策略,並可通過這些提供程序進行配置。託管授權人將根據提供的用戶,組和訪問策略做出所有訪問決策。

在啓動期間,檢查以確保沒有兩個具有相同身份/名稱的用戶/組。無論配置的實現如何,都會執行此檢查。這是必要的,因爲這是在訪問決策期間識別和授權用戶/組的方式。

FileUserGroupProvider

默認的UserGroupProvider是FileUserGroupProvider,但是,您可以將其他UserGroupProviders開發爲擴展。FileUserGroupProvider具有以下屬性:

  • 用戶文件 (Users File ) - FileUserGroupProvider存儲用戶和組的文件。默認情況下,users.xml文件conf目錄中選擇。

  • 舊版授權用戶文件(Legacy Authorized Users File) - 現有authorized-users.xml的完整路徑,該路徑將自動用於將用戶和組加載到用戶文件中。

  • 初始用戶身份(Initial User Identity) - 用於爲用戶文件設定種子的用戶和系統的標識。每個屬性的名稱必須是唯一的,例如:“初始用戶身份A”,“初始用戶身份B”,“初始用戶身份C”或“初始用戶身份1”,“初始用戶身份2”,“初始用戶身份3“

LdapUserGroupProvider

UserGroupProvider的另一個選項是LdapUserGroupProvider。默認情況下,此選項已註釋掉,但可以配置爲代替FileUserGroupProvider。這將從目錄服務器同步用戶和組,並以只讀形式在NiFi UI中顯示它們。

LdapUserGroupProvider具有以下屬性:

物業名稱描述

Group Member Attribute - Referenced User Attribute

如果爲空,則定義的屬性值Group Member Attribute應爲用戶的完整dn。如果不爲空,則此屬性將定義用戶ldap條目的屬性,該屬性定義的屬性的值Group Member Attribute正在引用(即uid)。使用此屬性還需要User Search Base配置。(即member: cn=User 1,ou=users,o=nifivs. memberUid: user1

Authentication Strategy

如何驗證與LDAP服務器的連接。可能的值是ANONYMOUSSIMPLELDAPS,或START_TLS

Manager DN

用於綁定到LDAP服務器以搜索用戶的管理器的DN。

Manager Password

用於綁定到LDAP服務器以搜索用戶的管理器的密碼。

TLS - Keystore

使用LDAPS或START_TLS連接到LDAP時使用的密鑰庫的路徑。

TLS - Keystore Password

使用LDAPS或START_TLS連接到LDAP時使用的密鑰庫的密碼。

TLS - Keystore Type

使用LDAPS或START_TLS(即JKSPKCS12)連接到LDAP時使用的密鑰庫的類型。

TLS - Truststore

使用LDAPS或START_TLS連接到LDAP時使用的Truststore的路徑。

TLS - Truststore Password

使用LDAPS或START_TLS連接到LDAP時使用的Truststore的密碼。

TLS - Truststore Type

使用LDAPS或START_TLS(即JKSPKCS12)連接到LDAP時使用的Truststore的類型。

TLS - Client Auth

使用LDAPS或START_TLS連接到LDAP時的客戶端身份驗證策略。可能的值是REQUIREDWANTNONE

TLS - Protocol

使用LDAPS或START_TLS連接到LDAP時使用的協議。(即TLSTLSv1.1TLSv1.2,等等)。

TLS - Shutdown Gracefully

指定在關閉目標上下文之前是否應正常關閉TLS。默認爲false。

Referral Strategy

處理推薦的策略。可能的值是FOLLOWIGNORETHROW

Connect Timeout

連接超時的持續時間。(即10 secs)。

Read Timeout

讀取超時的持續時間。(即10 secs)。

Url

以空格分隔的LDAP服務器的URL列表(即ldap://<hostname>:<port>)。

Page Size

檢索用戶和組時設置頁面大小。如果未指定,則不執行分頁。

Sync Interval

同步用戶和組之間的持續時間。(即30 mins)。最低允許值是10 secs

User Search Base

用於搜索用戶的基本DN(即ou=users,o=nifi)。搜索用戶時需要。

User Object Class

用於標識用戶的對象類(即person)。搜索用戶時需要。

User Search Scope

搜索範圍進行搜索的用戶(ONE_LEVELOBJECT,或SUBTREE)。搜索用戶時需要。

User Search Filter

過濾用於搜索User Search Base(即(memberof=cn=team1,ou=groups,o=nifi))的用戶。可選的。

User Identity Attribute

用於提取用戶身份的屬性(即cn)。可選的。如果未設置,則使用整個DN。

User Group Name Attribute

用於定義組成員身份的屬性(即memberof)。可選的。如果未設置,則不會通過用戶計算組成員資格。將依賴於通過Group Member Attributeif set 定義的組成員身份。此屬性的值是用戶ldap條目中將屬性與組關聯的屬性的名稱。例如,該用戶屬性的值可以是dn或組名。在預期中配置了什麼值User Group Name Attribute - Referenced Group Attribute

User Group Name Attribute - Referenced Group Attribute

如果爲空,則定義的屬性值User Group Name Attribute應爲該組的完整dn。如果不爲空,則此屬性將定義組ldap條目的屬性,該屬性定義的屬性的值User Group Name Attribute正在引用(即name)。使用此屬性還需要Group Search Base配置。

Group Search Base

用於搜索組的基本DN(即ou=groups,o=nifi)。搜索組時需要。

Group Object Class

用於標識組的對象類(即groupOfNames)。搜索組時必需。

Group Search Scope

搜索範圍搜索組(ONE_LEVELOBJECT,或SUBTREE)。搜索組時必需。

Group Search Filter

過濾搜索羣組Group Search Base。可選的。

Group Name Attribute

用於提取組名的屬性(即cn)。可選的。如果未設置,則使用整個DN。

Group Member Attribute

用於定義組成員身份的屬性(即member)。可選的。如果未設置,則不會通過組計算組成員身份。將依賴於通過User Group Name Attributeif set 定義的組成員身份。此屬性的值是組ldap條目中的屬性的名稱,該屬性將它們與用戶相關聯。例如,該組屬性的值可以是dn或memberUid。在預期中配置了什麼值Group Member Attribute - Referenced User Attribute。(即member: cn=User 1,ou=users,o=nifivs. memberUid: user1

  nifi.properties中 指定的任何身份映射規則也將應用於用戶身份。組名未映射。

複合實現

UserGroupProvider的另一個選項是複合實現。這意味着可以配置和組合多個源/實現。例如,管理員可以配置要從文件和目錄服務器加載的用戶/組。有兩個複合實現,一個支持多個UserGroupProviders,一個支持多個UserGroupProviders和一個可配置的UserGroupProvider。

CompositeUserGroupProvider將支持從多個源檢索用戶和組。CompositeUserGroupProvider具有以下屬性:

  nifi.properties中 指定的任何標識映射規則都不適用於此實現。基本實現需要應用此行爲。

CompositeConfigurableUserGroupProvider將支持從多個源檢索用戶和組。此外,還需要一個可配置的用戶組提供程序。可配置用戶組提供程序中的用戶是可配置的,但是從用戶組提供程序[唯一鍵]之一加載的用戶將不會。CompositeConfigurableUserGroupProvider具有以下屬性:

物業名稱描述

User Group Provider

[unique key]

要加載的用戶組提供程序的標識符。每個屬性的名稱必須是唯一的,例如:“用戶組提供商A”,“用戶組提供商B”,“用戶組提供商C”或“用戶組提供商1”,“用戶組提供商2”,“用戶組”提供者3“

Configurable User Group Provider

可配置的用戶組提供程序。

FileAccessPolicyProvider

默認的AccessPolicyProvider是FileAccessPolicyProvider,但是,您可以將其他AccessPolicyProvider開發爲擴展。FileAccessPolicyProvider具有以下屬性:

物業名稱描述

Node Group

包含NiFi羣集節點的組的名稱。這種情況的典型用途是在羣集中動態添加/刪除節點。

User Group Provider

上面定義的用戶組提供程序的標識符,用於訪問用於託管訪問策略的用戶和組。

Authorizations File

FileAccessPolicyProvider將存儲策略的文件。

Initial Admin Identity

初始管理員用戶的身份,該用戶將被授予對UI的訪問權限,並且能夠創建其他用戶,組和策略。使用證書或LDAP或Kerberos主體時,此屬性的值可以是DN。僅在未定義其他策略時才使用此屬性。如果指定了此屬性,則無法指定舊版授權用戶文件。

Legacy Authorized Users File

現有authorized-users.xml的完整路徑,該路徑將自動轉換爲新的授權模型。如果指定了此屬性,則無法指定初始管理員標識,並且僅在未定義其他用戶,組和策略時才使用此屬性。

Node Identity

NiFi羣集節點的標識。在羣集時,應定義每個節點的屬性,以便每個節點都知道每個其他節點。如果不是羣集,則可以忽略這些屬性。每個屬性的名稱必須是唯一的,例如對於三節點羣集:“節點標識A”,“節點標識B”,“節點標識C”或“節點標識1”,“節點標識2”,“節點標識” 3"

  在初始管理員標識,節點標識屬性中配置的標識或在舊版授權用戶文件中發現的標識必須在配置的用戶組提供程序中可用。
  必須在配置的用戶組提供程序中找到舊用戶文件中的所有用戶。
  nifi.properties中 指定的任何標識映射規則也將應用於節點標識,因此值應爲未映射的標識(即來自證書的完整DN)。必須在配置的用戶組提供程序中找到此標識。

StandardManagedAuthorizer

默認授權程序是StandardManagedAuthorizer,但是,您可以將其他授權程序開發爲擴展程序。StandardManagedAuthorizer具有以下屬性:

FileAuthorizer

FileAuthorizer已被上述更精細的StandardManagedAuthorizer方法所取代。但是,由於向後兼容性原因,它仍然可用。FileAuthorizer具有以下屬性:

物業名稱描述

Node Identity

NiFi羣集節點的標識。在羣集時,應定義每個節點的屬性,以便每個節點都知道每個其他節點。如果不是羣集,則可以忽略這些屬性。

Authorizations File

FileAuthorizer存儲策略的文件。默認情況下,authorizations.xmlconf目錄中選擇。

Users File

FileAuthorizer存儲用戶和組的文件。默認情況下,users.xml文件conf目錄中選擇。

Initial Admin Identity

被授予對UI的訪問權限並且能夠創建其他用戶,組和策略的初始管理員用戶的身份。僅在未定義其他用戶,組和策略時使用此屬性。

Legacy Authorized Users File

現有authorized-users.xml的完整路徑,該路徑自動轉換爲多租戶授權模型。僅在未定義其他用戶,組和策略時使用此屬性。

  nifi.properties中 指定的任何標識映射規則也將應用於初始管理標識,因此該值應爲未映射的標識。
  nifi.properties中 指定的任何標識映射規則也將應用於節點標識,因此值應爲未映射的標識(即來自證書的完整DN)。

初始管理員身份(新NiFi實例)

如果您是第一次設置安全的NiFi實例,則必須在authorizers.xml文件中手動指定“初始管理員標識” 。此初始管理員用戶被授予對UI的訪問權限,並且可以創建其他用戶,組和策略。此屬性的值可以是DN(使用證書或LDAP時)或Kerberos主體。如果您是NiFi管理員,請將自己添加爲“初始管理員身份”。

編輯並保存authorizers.xml文件後,重新啓動NiFi。重新啓動期間,“初始管理員標識”用戶和管理策略將添加到users.xmlauthorizations.xml文件中。一旦NiFi啓動,“初始管理員身份”用戶就可以訪問UI並開始管理用戶,組和策略。

  對於全新的安全流,提供“初始管理員身份”使用戶可以訪問用戶界面並管理用戶,組和策略。但是,如果該用戶想要開始修改流,他們需要爲根進程組授予自己的策略。系統無法自動執行此操作,因爲在新流中,根進程組的UUID在生成flow.xml.gz之前不是永久性的。如果NiFi實例是從現有flow.xml.gz或從不安全到安全的1.x實例的升級,則“初始管理員身份”用戶將自動獲得修改流的權限。

一些常見用例如下所述。

基於文件(LDAP身份驗證)

以下是使用John Smith名稱的LDAP條目示例:

  1.  
    <authorizers>
     
    <userGroupProvider>
     
    <identifier>file-user-group-provider</identifier>
     
    <class>org.apache.nifi.authorization.FileUserGroupProvider</class>
     
    <property name="Users File">./conf/users.xml</property>
     
    <property name="Legacy Authorized Users File"></property>
     
     
     
    <property name="Initial User Identity 1">cn=John Smith,ou=people,dc=example,dc=com</property>
     
    </userGroupProvider>
     
    <accessPolicyProvider>
     
    <identifier>file-access-policy-provider</identifier>
     
    <class>org.apache.nifi.authorization.FileAccessPolicyProvider</class>
     
    <property name="User Group Provider">file-user-group-provider</property>
     
    <property name="Authorizations File">./conf/authorizations.xml</property>
     
    <property name="Initial Admin Identity">cn=John Smith,ou=people,dc=example,dc=com</property>
     
    <property name="Legacy Authorized Users File"></property>
     
     
     
    <property name="Node Identity 1"></property>
     
    </accessPolicyProvider>
     
    <authorizer>
     
    <identifier>managed-authorizer</identifier>
     
    <class>org.apache.nifi.authorization.StandardManagedAuthorizer</class>
     
    <property name="Access Policy Provider">file-access-policy-provider</property>
     
    </authorizer>
     
    </authorizers>
    

      

 

基於文件(Kerberos身份驗證)

以下是使用名稱John Smith和realm的示例Kerberos條目NIFI.APACHE.ORG

  1.  
    <authorizers>
     
    <userGroupProvider>
     
    <identifier>file-user-group-provider</identifier>
     
    <class>org.apache.nifi.authorization.FileUserGroupProvider</class>
     
    <property name="Users File">./conf/users.xml</property>
     
    <property name="Legacy Authorized Users File"></property>
     
     
     
    <property name="Initial User Identity 1">[email protected]</property>
     
    </userGroupProvider>
     
    <accessPolicyProvider>
     
    <identifier>file-access-policy-provider</identifier>
     
    <class>org.apache.nifi.authorization.FileAccessPolicyProvider</class>
     
    <property name="User Group Provider">file-user-group-provider</property>
     
    <property name="Authorizations File">./conf/authorizations.xml</property>
     
    <property name="Initial Admin Identity">[email protected]</property>
     
    <property name="Legacy Authorized Users File"></property>
     
     
     
    <property name="Node Identity 1"></property>
     
    </accessPolicyProvider>
     
    <authorizer>
     
    <identifier>managed-authorizer</identifier>
     
    <class>org.apache.nifi.authorization.StandardManagedAuthorizer</class>
     
    <property name="Access Policy Provider">file-access-policy-provider</property>
     
    </authorizer>
     
    </authorizers>
    

      

基於LDAP的用戶/組引用用戶DN

以下是從LDAP加載用戶和組的示例。組成員資格將通過每個組的成員屬性來驅動。授權仍將使用基於文件的訪問策略:

  1.  
    dn: cn=User 1,ou=users,o=nifi
     
    objectClass: organizationalPerson
     
    objectClass: person
     
    objectClass: inetOrgPerson
     
    objectClass: top
     
    cn: User 1
     
    sn: User1
     
    uid: user1
     
     
     
    dn: cn=User 2,ou=users,o=nifi
     
    objectClass: organizationalPerson
     
    objectClass: person
     
    objectClass: inetOrgPerson
     
    objectClass: top
     
    cn: User 2
     
    sn: User2
     
    uid: user2
     
     
     
    dn: cn=admins,ou=groups,o=nifi
     
    objectClass: groupOfNames
     
    objectClass: top
     
    cn: admins
     
    member: cn=User 1,ou=users,o=nifi
     
    member: cn=User 2,ou=users,o=nifi
     
     
     
    <authorizers>
     
    <userGroupProvider>
     
    <identifier>ldap-user-group-provider</identifier>
     
    <class>org.apache.nifi.ldap.tenants.LdapUserGroupProvider</class>
     
    <property name="Authentication Strategy">ANONYMOUS</property>
     
     
     
    <property name="Manager DN"></property>
     
    <property name="Manager Password"></property>
     
     
     
    <property name="TLS - Keystore"></property>
     
    <property name="TLS - Keystore Password"></property>
     
    <property name="TLS - Keystore Type"></property>
     
    <property name="TLS - Truststore"></property>
     
    <property name="TLS - Truststore Password"></property>
     
    <property name="TLS - Truststore Type"></property>
     
    <property name="TLS - Client Auth"></property>
     
    <property name="TLS - Protocol"></property>
     
    <property name="TLS - Shutdown Gracefully"></property>
     
     
     
    <property name="Referral Strategy">FOLLOW</property>
     
    <property name="Connect Timeout">10 secs</property>
     
    <property name="Read Timeout">10 secs</property>
     
     
     
    <property name="Url">ldap://localhost:10389</property>
     
    <property name="Page Size"></property>
     
    <property name="Sync Interval">30 mins</property>
     
     
     
    <property name="User Search Base">ou=users,o=nifi</property>
     
    <property name="User Object Class">person</property>
     
    <property name="User Search Scope">ONE_LEVEL</property>
     
    <property name="User Search Filter"></property>
     
    <property name="User Identity Attribute">cn</property>
     
    <property name="User Group Name Attribute"></property>
     
    <property name="User Group Name Attribute - Referenced Group Attribute"></property>
     
     
     
    <property name="Group Search Base">ou=groups,o=nifi</property>
     
    <property name="Group Object Class">groupOfNames</property>
     
    <property name="Group Search Scope">ONE_LEVEL</property>
     
    <property name="Group Search Filter"></property>
     
    <property name="Group Name Attribute">cn</property>
     
    <property name="Group Member Attribute">member</property>
     
    <property name="Group Member Attribute - Referenced User Attribute"></property>
     
    </userGroupProvider>
     
    <accessPolicyProvider>
     
    <identifier>file-access-policy-provider</identifier>
     
    <class>org.apache.nifi.authorization.FileAccessPolicyProvider</class>
     
    <property name="User Group Provider">ldap-user-group-provider</property>
     
    <property name="Authorizations File">./conf/authorizations.xml</property>
     
    <property name="Initial Admin Identity">John Smith</property>
     
    <property name="Legacy Authorized Users File"></property>
     
     
     
    <property name="Node Identity 1"></property>
     
    </accessPolicyProvider>
     
    <authorizer>
     
    <identifier>managed-authorizer</identifier>
     
    <class>org.apache.nifi.authorization.StandardManagedAuthorizer</class>
     
    <property name="Access Policy Provider">file-access-policy-provider</property>
     
    </authorizer>
     
    </authorizers>
    

      

Initial Admin Identity值將根據值從John Smith的條目中加載cn User Identity Attribute

基於LDAP的用戶/組引用用戶屬性

以下是從LDAP加載用戶和組的示例。組成員資格將通過每個組的成員uid屬性驅動。授權仍將使用基於文件的訪問策略:

  1.  
    dn: uid=User 1,ou=Users,dc=local
     
    objectClass: inetOrgPerson
     
    objectClass: posixAccount
     
    objectClass: shadowAccount
     
    uid: user1
     
    cn: User 1
     
     
     
    dn: uid=User 2,ou=Users,dc=local
     
    objectClass: inetOrgPerson
     
    objectClass: posixAccount
     
    objectClass: shadowAccount
     
    uid: user2
     
    cn: User 2
     
     
     
    dn: cn=Managers,ou=Groups,dc=local
     
    objectClass: posixGroup
     
    cn: Managers
     
    memberUid: user1
     
    memberUid: user2
     
     
     
    <authorizers>
     
    <userGroupProvider>
     
    <identifier>ldap-user-group-provider</identifier>
     
    <class>org.apache.nifi.ldap.tenants.LdapUserGroupProvider</class>
     
    <property name="Authentication Strategy">ANONYMOUS</property>
     
     
     
    <property name="Manager DN"></property>
     
    <property name="Manager Password"></property>
     
     
     
    <property name="TLS - Keystore"></property>
     
    <property name="TLS - Keystore Password"></property>
     
    <property name="TLS - Keystore Type"></property>
     
    <property name="TLS - Truststore"></property>
     
    <property name="TLS - Truststore Password"></property>
     
    <property name="TLS - Truststore Type"></property>
     
    <property name="TLS - Client Auth"></property>
     
    <property name="TLS - Protocol"></property>
     
    <property name="TLS - Shutdown Gracefully"></property>
     
     
     
    <property name="Referral Strategy">FOLLOW</property>
     
    <property name="Connect Timeout">10 secs</property>
     
    <property name="Read Timeout">10 secs</property>
     
     
     
    <property name="Url">ldap://localhost:10389</property>
     
    <property name="Page Size"></property>
     
    <property name="Sync Interval">30 mins</property>
     
     
     
    <property name="User Search Base">ou=Users,dc=local</property>
     
    <property name="User Object Class">posixAccount</property>
     
    <property name="User Search Scope">ONE_LEVEL</property>
     
    <property name="User Search Filter"></property>
     
    <property name="User Identity Attribute">cn</property>
     
    <property name="User Group Name Attribute"></property>
     
    <property name="User Group Name Attribute - Referenced Group Attribute"></property>
     
     
     
    <property name="Group Search Base">ou=Groups,dc=local</property>
     
    <property name="Group Object Class">posixGroup</property>
     
    <property name="Group Search Scope">ONE_LEVEL</property>
     
    <property name="Group Search Filter"></property>
     
    <property name="Group Name Attribute">cn</property>
     
    <property name="Group Member Attribute">memberUid</property>
     
    <property name="Group Member Attribute - Referenced User Attribute">uid</property>
     
    </userGroupProvider>
     
    <accessPolicyProvider>
     
    <identifier>file-access-policy-provider</identifier>
     
    <class>org.apache.nifi.authorization.FileAccessPolicyProvider</class>
     
    <property name="User Group Provider">ldap-user-group-provider</property>
     
    <property name="Authorizations File">./conf/authorizations.xml</property>
     
    <property name="Initial Admin Identity">John Smith</property>
     
    <property name="Legacy Authorized Users File"></property>
     
     
     
    <property name="Node Identity 1"></property>
     
    </accessPolicyProvider>
     
    <authorizer>
     
    <identifier>managed-authorizer</identifier>
     
    <class>org.apache.nifi.authorization.StandardManagedAuthorizer</class>
     
    <property name="Access Policy Provider">file-access-policy-provider</property>
     
    </authorizer>
     
    </authorizers>
    

      

Composite - 基於文件和LDAP的用戶/組

以下是從LDAP和本地文件加載用戶和組的示例複合實現。組成員資格將通過每個組的成員屬性來驅動。來自LDAP的用戶將是隻讀的,而從文件加載的用戶可以在UI中進行配置。

  1.  
    dn: cn=User 1,ou=users,o=nifi
     
    objectClass: organizationalPerson
     
    objectClass: person
     
    objectClass: inetOrgPerson
     
    objectClass: top
     
    cn: User 1
     
    sn: User1
     
    uid: user1
     
     
     
    dn: cn=User 2,ou=users,o=nifi
     
    objectClass: organizationalPerson
     
    objectClass: person
     
    objectClass: inetOrgPerson
     
    objectClass: top
     
    cn: User 2
     
    sn: User2
     
    uid: user2
     
     
     
    dn: cn=admins,ou=groups,o=nifi
     
    objectClass: groupOfNames
     
    objectClass: top
     
    cn: admins
     
    member: cn=User 1,ou=users,o=nifi
     
    member: cn=User 2,ou=users,o=nifi
     
     
     
    <authorizers>
     
    <userGroupProvider>
     
    <identifier>file-user-group-provider</identifier>
     
    <class>org.apache.nifi.authorization.FileUserGroupProvider</class>
     
    <property name="Users File">./conf/users.xml</property>
     
    <property name="Legacy Authorized Users File"></property>
     
     
     
    <property name="Initial User Identity 1">cn=nifi-node1,ou=servers,dc=example,dc=com</property>
     
    <property name="Initial User Identity 2">cn=nifi-node2,ou=servers,dc=example,dc=com</property>
     
    </userGroupProvider>
     
    <userGroupProvider>
     
    <identifier>ldap-user-group-provider</identifier>
     
    <class>org.apache.nifi.ldap.tenants.LdapUserGroupProvider</class>
     
    <property name="Authentication Strategy">ANONYMOUS</property>
     
     
     
    <property name="Manager DN"></property>
     
    <property name="Manager Password"></property>
     
     
     
    <property name="TLS - Keystore"></property>
     
    <property name="TLS - Keystore Password"></property>
     
    <property name="TLS - Keystore Type"></property>
     
    <property name="TLS - Truststore"></property>
     
    <property name="TLS - Truststore Password"></property>
     
    <property name="TLS - Truststore Type"></property>
     
    <property name="TLS - Client Auth"></property>
     
    <property name="TLS - Protocol"></property>
     
    <property name="TLS - Shutdown Gracefully"></property>
     
     
     
    <property name="Referral Strategy">FOLLOW</property>
     
    <property name="Connect Timeout">10 secs</property>
     
    <property name="Read Timeout">10 secs</property>
     
     
     
    <property name="Url">ldap://localhost:10389</property>
     
    <property name="Page Size"></property>
     
    <property name="Sync Interval">30 mins</property>
     
     
     
    <property name="User Search Base">ou=users,o=nifi</property>
     
    <property name="User Object Class">person</property>
     
    <property name="User Search Scope">ONE_LEVEL</property>
     
    <property name="User Search Filter"></property>
     
    <property name="User Identity Attribute">cn</property>
     
    <property name="User Group Name Attribute"></property>
     
    <property name="User Group Name Attribute - Referenced Group Attribute"></property>
     
     
     
    <property name="Group Search Base">ou=groups,o=nifi</property>
     
    <property name="Group Object Class">groupOfNames</property>
     
    <property name="Group Search Scope">ONE_LEVEL</property>
     
    <property name="Group Search Filter"></property>
     
    <property name="Group Name Attribute">cn</property>
     
    <property name="Group Member Attribute">member</property>
     
    <property name="Group Member Attribute - Referenced User Attribute"></property>
     
    </userGroupProvider>
     
    <userGroupProvider>
     
    <identifier>composite-user-group-provider</identifier>
     
    <class>org.apache.nifi.authorization.CompositeConfigurableUserGroupProvider</class>
     
    <property name="Configurable User Group Provider">file-user-group-provider</property>
     
    <property name="User Group Provider 1">ldap-user-group-provider</property>
     
    </userGroupProvider>
     
    <accessPolicyProvider>
     
    <identifier>file-access-policy-provider</identifier>
     
    <class>org.apache.nifi.authorization.FileAccessPolicyProvider</class>
     
    <property name="User Group Provider">composite-user-group-provider</property>
     
    <property name="Authorizations File">./conf/authorizations.xml</property>
     
    <property name="Initial Admin Identity">John Smith</property>
     
    <property name="Legacy Authorized Users File"></property>
     
     
     
    <property name="Node Identity 1">cn=nifi-node1,ou=servers,dc=example,dc=com</property>
     
    <property name="Node Identity 2">cn=nifi-node2,ou=servers,dc=example,dc=com</property>
     
    </accessPolicyProvider>
     
    <authorizer>
     
    <identifier>managed-authorizer</identifier>
     
    <class>org.apache.nifi.authorization.StandardManagedAuthorizer</class>
     
    <property name="Access Policy Provider">file-access-policy-provider</property>
     
    </authorizer>
     
    </authorizers>
    

      

在此示例中,用戶和組是從LDAP加載的,但服務器是在本地文件中管理的。該Initial Admin Identity值來自基於的LDAP條目中的屬性User Identity Attribute。該Node Identity值是建立使用本地文件Initial User Identity的屬性。

舊版授權用戶(NiFi實例升級)

如果要從0.x NiFi實例升級,則可以將先前配置的用戶和角色轉換爲多租戶授權模型。在authorizers.xml文件中,指定屬性中現有authorized-users.xml文件的位置Legacy Authorized Users File

這是一個示例條目:

  1.  
    <authorizers>
     
    <userGroupProvider>
     
    <identifier>file-user-group-provider</identifier>
     
    <class>org.apache.nifi.authorization.FileUserGroupProvider</class>
     
    <property name="Users File">./conf/users.xml</property>
     
    <property name="Legacy Authorized Users File">/Users/johnsmith/config_files/authorized-users.xml</property>
     
     
     
    <property name="Initial User Identity 1"></property>
     
    </userGroupProvider>
     
    <accessPolicyProvider>
     
    <identifier>file-access-policy-provider</identifier>
     
    <class>org.apache.nifi.authorization.FileAccessPolicyProvider</class>
     
    <property name="User Group Provider">file-user-group-provider</property>
     
    <property name="Authorizations File">./conf/authorizations.xml</property>
     
    <property name="Initial Admin Identity"></property>
     
    <property name="Legacy Authorized Users File">/Users/johnsmith/config_files/authorized-users.xml</property>
     
     
     
    <property name="Node Identity 1"></property>
     
    </accessPolicyProvider>
     
    <authorizer>
     
    <identifier>managed-authorizer</identifier>
     
    <class>org.apache.nifi.authorization.StandardManagedAuthorizer</class>
     
    <property name="Access Policy Provider">file-access-policy-provider</property>
     
    </authorizer>
     
    </authorizers>
    

      

編輯並保存authorizers.xml文件後,重新啓動NiFi。來自authorized-users.xml文件的用戶和角色將轉換並作爲身份和策略添加到users.xmlauthorizations.xml文件中。應用程序啓動後,之前具有舊管理員角色的用戶可以訪問UI並開始管理用戶,組和策略。

如果NiFi實例具有現有的flow.xml.gz,下表總結了分配給每個舊角色的全局和組件策略:

全球訪問政策

 AdminDFMMonitorProvenanceNiFiProxy

view the UI

*

*

*

     

access the controller - view

*

*

*

 

*

 

access the controller - modify

 

*

       

query provenance

     

*

   

access restricted components

 

*

       

access all policies - view

*

         

access all policies - modify

*

         

access users/user groups - view

*

         

access users/user groups - modify

*

         

retrieve site-to-site details

       

*

 

view system diagnostics

 

*

*

     

proxy user requests

         

*

access counters

           

 

 


根進程組上的組件訪問策略

 AdminDFMMonitorProvenanceNiFiProxy

view the component

*

*

*

     

modify the component

 

*

       

view the data

 

*

 

*

 

*

modify the data

 

*

     

*

view provenance

     

*

   


有關表中各個策略的詳細信息,請參閱訪問策略

  如果屬性Initial Admin IdentityLegacy Authorized Users File屬性都存在值,則NiFi無法重新啓動。您只能指定其中一個值來初始化授權。
  不要手動編輯authorizations.xml文件。僅在初始設置期間以及之後使用NiFi UI創建授權。

羣集節點標識

如果在羣集環境中運行NiFi,則必須爲每個節點指定標識。在啓動期間創建節點通信所需的授權策略。

例如,如果要爲每個節點設置具有以下DN的2節點羣集:

  1.  
    cn=nifi-1,ou=people,dc=example,dc=com
     
    cn=nifi-2,ou=people,dc=example,dc=com
    

      

  2.  
  1.  
    <authorizers>
     
    <userGroupProvider>
     
    <identifier>file-user-group-provider</identifier>
     
    <class>org.apache.nifi.authorization.FileUserGroupProvider</class>
     
    <property name="Users File">./conf/users.xml</property>
     
    <property name="Legacy Authorized Users File"></property>
     
     
     
    <property name="Initial User Identity 1">[email protected]</property>
     
    <property name="Initial User Identity 2">cn=nifi-1,ou=people,dc=example,dc=com</property>
     
    <property name="Initial User Identity 3">cn=nifi-2,ou=people,dc=example,dc=com</property>
     
    </userGroupProvider>
     
    <accessPolicyProvider>
     
    <identifier>file-access-policy-provider</identifier>
     
    <class>org.apache.nifi.authorization.FileAccessPolicyProvider</class>
     
    <property name="User Group Provider">file-user-group-provider</property>
     
    <property name="Authorizations File">./conf/authorizations.xml</property>
     
    <property name="Initial Admin Identity">[email protected]</property>
     
    <property name="Legacy Authorized Users File"></property>
     
     
     
    <property name="Node Identity 1">cn=nifi-1,ou=people,dc=example,dc=com</property>
     
    <property name="Node Identity 2">cn=nifi-2,ou=people,dc=example,dc=com</property>
     
    </accessPolicyProvider>
     
    <authorizer>
     
    <identifier>managed-authorizer</identifier>
     
    <class>org.apache.nifi.authorization.StandardManagedAuthorizer</class>
     
    <property name="Access Policy Provider">file-access-policy-provider</property>
     
    </authorizer>
     
    </authorizers>
    

      

  2.  
  在羣集中,所有節點必須具有相同的authorizations.xmlusers.xml。唯一的例外是,如果節點在加入羣集之前具有空authorizations.xmluser.xml文件。在此方案中,節點在啓動期間從羣集繼承它們。

現在已經創建了初始授權,可以在NiFi UI中創建和管理其他用戶,組和授權。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章