【问题标题】:nifi 3 node docker + ssl getting Untrusted proxy CN=localhost, OU=NIFInifi 3节点docker + ssl获取不受信任的代理CN = localhost,OU = NIFI
【发布时间】:2022-09-23 21:20:19
【问题描述】:

按照详细说明设置具有独立证书的 3 节点 docker 托管 nifi 集群 + ssl。采取的步骤:

  1. 设置docker启动持久3节点nifi集群(nifi01、nifi02、nifi03、registry和nifi_zookeeper)
  2. 由于它们都在 docker 桥接网络中,因此主机名设置如上。但是,为了访问 UI,我使用 ssh 隧道代理为 \"localhost:8443:remotehost:6950\" 。所以我可以从浏览器中以“https://localhost:8443/nifi”的形式访问它们。
  3. 然后设置需要 ssl 的 oidc。因此生成了证书并将其保存在共享位置。
    ./bin/tls-toolkit.sh standalone -n localhost --subjectAlternativeNames \'localhost,0.0.0.0,nifi01,nifi02,nifi03,nifi_registry\'
    
    1. 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


    【解决方案1】:

    更新: 能够通过将节点身份用户添加到 authorizers.xml 上的代理的 accessPolicyProvider 和 userGroupProvider 来解决此问题。

    用户组提供者:

    <property name="Initial User Identity 5">CN=localhost, OU=NIFI</property>
    

    访问策略提供者:

    <property name="Node Identity 4">CN=localhost, OU=NIFI</property>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多