【发布时间】:2022-09-23 21:20:19
【问题描述】:
按照详细说明设置具有独立证书的 3 节点 docker 托管 nifi 集群 + ssl。采取的步骤:
- 设置docker启动持久3节点nifi集群(nifi01、nifi02、nifi03、registry和nifi_zookeeper)
- 由于它们都在 docker 桥接网络中,因此主机名设置如上。但是,为了访问 UI,我使用 ssh 隧道代理为 \"localhost:8443:remotehost:6950\" 。所以我可以从浏览器中以“https://localhost:8443/nifi”的形式访问它们。
- 然后设置需要 ssl 的 oidc。因此生成了证书并将其保存在共享位置。
./bin/tls-toolkit.sh standalone -n localhost --subjectAlternativeNames \'localhost,0.0.0.0,nifi01,nifi02,nifi03,nifi_registry\'- followed : https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#cluster-node-identities 并设置 authorizers.xml 创建 users.xml /authorizations.xml 如下
授权者.xml
<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\">xyz@oidc.domain.com</property> <property name=\"Initial User Identity 2\">CN=nifi01, OU=NIFI</property> <property name=\"Initial User Identity 3\">CN=nifi02, OU=NIFI</property> <property name=\"Initial User Identity 4\">CN=nifi03, OU=NIFI</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\">xyz@oidc.domain.com</property> <property name=\"Legacy Authorized Users File\"></property> <property name=\"Node Identity 1\">CN=nifi01, OU=NIFI</property> <property name=\"Node Identity 2\">CN=nifi02, OU=NIFI</property> <property name=\"Node Identity 3\">CN=nifi03, OU=NIFI</property> <property name=\"Node Group\"></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>生成 users.xml 和 authorizations.xml 为: 用户.xml
<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?> <tenants> <groups/> <users> <user identifier=\"c3f09c4d-0c92-3f45-b2e4-877def626d99\" identity=\"CN=nifi02, OU=NIFI\"/> <user identifier=\"882592de-bfd2-35fa-b447-e6866f066684\" identity=\"CN=nifi01, OU=NIFI\"/> <user identifier=\"bae641ef-8e45-3838-8dde-8e012ada53f5\" identity=\"CN=nifi03, OU=NIFI\"/> <user identifier=\"52b536d4-50ee-351a-9f9a-1f9ee1501814\" identity=\"xyz@oidc.domain.com\"/> </users> </tenants>授权.xml
<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?> <authorizations> <policies> <policy identifier=\"f99bccd1-a30e-3e4a-98a2-dbc708edc67f\" resource=\"/flow\" action=\"R\"> <user identifier=\"52b536d4-50ee-351a-9f9a-1f9ee1501814\"/> </policy> <policy identifier=\"4962996d-5f2e-3c80-94b3-1eaa2d71cedc\" resource=\"/data/process-groups/2fa42d02-b336-30cd-aa96-f1aea310af6f\" action=\"R\"> <user identifier=\"52b536d4-50ee-351a-9f9a-1f9ee1501814\"/> <user identifier=\"c3f09c4d-0c92-3f45-b2e4-877def626d99\"/> <user identifier=\"882592de-bfd2-35fa-b447-e6866f066684\"/> <user identifier=\"bae641ef-8e45-3838-8dde-8e012ada53f5\"/> </policy> <policy identifier=\"cf5bec73-a284-3fae-811c-3e40e3db25e6\" resource=\"/data/process-groups/2fa42d02-b336-30cd-aa96-f1aea310af6f\" action=\"W\"> <user identifier=\"52b536d4-50ee-351a-9f9a-1f9ee1501814\"/> <user identifier=\"c3f09c4d-0c92-3f45-b2e4-877def626d99\"/> <user identifier=\"882592de-bfd2-35fa-b447-e6866f066684\"/> <user identifier=\"bae641ef-8e45-3838-8dde-8e012ada53f5\"/> </policy> <policy identifier=\"1e6048dc-8ba2-34ee-a641-a1e260c55d75\" resource=\"/process-groups/2fa42d02-b336-30cd-aa96-f1aea310af6f\" action=\"R\"> <user identifier=\"52b536d4-50ee-351a-9f9a-1f9ee1501814\"/> </policy> <policy identifier=\"92d7b372-f63a-30ab-a107-f70ea0bbc8d9\" resource=\"/process-groups/2fa42d02-b336-30cd-aa96-f1aea310af6f\" action=\"W\"> <user identifier=\"52b536d4-50ee-351a-9f9a-1f9ee1501814\"/> </policy> <policy identifier=\"b8775bd4-704a-34c6-987b-84f2daf7a515\" resource=\"/restricted-components\" action=\"W\"> <user identifier=\"52b536d4-50ee-351a-9f9a-1f9ee1501814\"/> </policy> <policy identifier=\"627410be-1717-35b4-a06f-e9362b89e0b7\" resource=\"/tenants\" action=\"R\"> <user identifier=\"52b536d4-50ee-351a-9f9a-1f9ee1501814\"/> </policy> <policy identifier=\"15e4e0bd-cb28-34fd-8587-f8d15162cba5\" resource=\"/tenants\" action=\"W\"> <user identifier=\"52b536d4-50ee-351a-9f9a-1f9ee1501814\"/> </policy> <policy identifier=\"ff96062a-fa99-36dc-9942-0f6442ae7212\" resource=\"/policies\" action=\"R\"> <user identifier=\"52b536d4-50ee-351a-9f9a-1f9ee1501814\"/> </policy> <policy identifier=\"ad99ea98-3af6-3561-ae27-5bf09e1d969d\" resource=\"/policies\" action=\"W\"> <user identifier=\"52b536d4-50ee-351a-9f9a-1f9ee1501814\"/> </policy> <policy identifier=\"2e1015cb-0fed-3005-8e0d-722311f21a03\" resource=\"/controller\" action=\"R\"> <user identifier=\"52b536d4-50ee-351a-9f9a-1f9ee1501814\"/> </policy> <policy identifier=\"c6322e6c-4cc1-3bcc-91b3-2ed2111674cf\" resource=\"/controller\" action=\"W\"> <user identifier=\"52b536d4-50ee-351a-9f9a-1f9ee1501814\"/> </policy> <policy identifier=\"287edf48-da72-359b-8f61-da5d4c45a270\" resource=\"/proxy\" action=\"W\"> <user identifier=\"c3f09c4d-0c92-3f45-b2e4-877def626d99\"/> <user identifier=\"882592de-bfd2-35fa-b447-e6866f066684\"/> <user identifier=\"bae641ef-8e45-3838-8dde-8e012ada53f5\"/> </policy> </policies> </authorizations>oidc 按预期工作,身份验证通过 SSO 工作。但是,一旦通过身份验证,我就会在 UI 上遇到错误。
那些看起来像工具包中的证书颁发机构。如何解决这个问题?我尝试了几个选项和文章,但似乎都没有。上面的 authorizers.xml 工作是因为服务正在工作。否则,会出现“无法播种政策”错误。
任何人都可以帮忙吗?
更新:检查了 nifi 访问日志,发现如下:
2022-09-08 15:40:56,879 INFO [main] o.a.n.a.single.user.SingleUserAuthorizer 初始化授权器 2022-09-08 15:40:56,986 INFO [main] o.a.n.a.FileUserGroupProvider 用户/组文件于 2022 年 9 月 8 日星期四 15:40:56 UTC 加载 2022-09-08 15:40:56,987 INFO [main] o.a.n.a.FileAccessPolicyProvider 添加了映射节点 CN=nifi01,OU=NIFI(原始节点标识 CN=nifi01,OU=NIFI) 2022-09-08 15:40:56,987 INFO [main] o.a.n.a.FileAccessPolicyProvider 添加了映射节点 CN=nifi03,OU=NIFI(原始节点标识 CN=nifi03,OU=NIFI) 2022-09-08 15:40:56,987 INFO [main] o.a.n.a.FileAccessPolicyProvider 添加了映射节点 CN=nifi02,OU=NIFI(原始节点标识 CN=nifi02,OU=NIFI) 2022-09-08 15:40:57,000 INFO [main] o.a.n.a.FileAccessPolicyProvider 授权文件于 2022 年 9 月 8 日星期四 15:40:57 UTC 加载 2022-09-08 15:40:57,001 INFO [main] o.a.n.a.single.user.SingleUserAuthorizer 配置授权人 2022-09-08 15:41:03,346 INFO [main] o.a.n.w.s.o.StandardOidcIdentityProvider OpenId Connect:可用的 clientAuthenticationMethods [client_secret_basic,client_secret_post,private_key_jwt,tls_client_auth] 2022-09-08 15:44:20,874 INFO [NiFi Web Server-19] o.a.n.w.s.NiFiAuthenticationFilter 身份验证开始 172.20.0.1 [] GET https://localhost:8443/nifi-api/flow/current-user 2022-09-08 15:44:20,890 WARN [NiFi Web Server-19] o.a.n.w.s.NiFiAuthenticationFilter 身份验证失败 172.20.0.1 GET https://localhost:8443/nifi-api/flow/current-user [匿名身份验证尚未配置.] 2022-09-08 15:44:34,264 INFO [NiFi Web Server-23] o.a.n.w.s.NiFiAuthenticationFilter 身份验证开始 172.20.0.6 [xyz@oidc.domain.com<CN=localhost, OU=NIFI>] GET https://nifi01: 8443/nifi-api/流/当前用户 2022-09-08 15:44:34,275 WARN [NiFi Web Server-23] o.a.n.w.s.NiFiAuthenticationFilter 身份验证失败 172.20.0.6 GET https://nifi01:8443/nifi-api/flow/current-user [不受信任的代理 CN = localhost, OU=NIFI] 2022-09-08 15:46:26,568 INFO [NiFi Web Server-23] o.a.n.w.s.NiFiAuthenticationFilter 身份验证开始 172.20.0.6 [xyz@oidc.domain.com<CN=localhost, OU=NIFI>] GET https://nifi01: 8443/nifi-api/流/当前用户 2022-09-08 15:46:26,569 WARN [NiFi Web Server-23] o.a.n.w.s.NiFiAuthenticationFilter 身份验证失败 172.20.0.6 GET https://nifi01:8443/nifi-api/flow/current-user [不受信任的代理 CN = localhost, OU=NIFI]
看起来像 \"CN=localhost, OU=NIFI\" 正在被 ssl 证书添加?也许有人可以解释。
标签: docker ssl apache-nifi