首页 > 解决方案 > NiFi:为什么我的用户权限不足?

问题描述

我正在遵循https://hub.docker.com/r/apache/nifi的“独立实例,双向 SSL”部分中的步骤 。但是,当我访问 NiFi 页面时,我的用户权限不足。以下是我正在使用的过程:

生成自签名证书

mkdir conf

docker exec \
  -ti toolkit \
  /opt/nifi/nifi-toolkit-current/bin/tls-toolkit.sh \
    standalone \
    -n 'nifi1.bluejay.local' \
    -C 'CN=admin,OU=NIFI'

docker cp toolkit:/opt/nifi/nifi-current/nifi-cert.pem        conf
docker cp toolkit:/opt/nifi/nifi-current/nifi-key.key         conf

docker cp toolkit:/opt/nifi/nifi-current/nifi1.bluejay.local  conf

docker cp toolkit:/opt/nifi/nifi-current/CN=admin_OU=NIFI.p12      conf
docker cp toolkit:/opt/nifi/nifi-current/CN=admin_OU=NIFI.password conf

docker stop toolkit

将客户端证书导入浏览器

.p12文件导入浏览器。

更新 /etc/hosts

将“127.0.0.1 nifi1.bluejay.local”添加到 /etc/hosts 文件的末尾。

定义 NiFi 网络

docker network create --subnet=10.18.0.0/16 nifi

在容器中运行 NiFi

docker run -d \
  -e AUTH=tls \
  -e KEYSTORE_PATH=/opt/certs/keystore.jks \
  -e KEYSTORE_TYPE=JKS \
  -e KEYSTORE_PASSWORD=$(grep keystorePasswd conf/nifi1.bluejay.local/nifi.properties | cut -d'=' -f2) \
  -e TRUSTSTORE_PATH=/opt/certs/truststore.jks \
  -e TRUSTSTORE_PASSWORD=$(grep truststorePasswd conf/nifi1.bluejay.local/nifi.properties | cut -d'=' -f2) \
  -e TRUSTSTORE_TYPE=JKS \
  -e INITIAL_ADMIN_IDENTITY="CN=admin,OU=NIFI" \
  -e NIFI_WEB_PROXY_CONTEXT_PATH=/nifi \
  -e NIFI_WEB_PROXY_HOST=nifi1.bluejay.local \
  --hostname nifi1.bluejay.local \
  --ip 10.18.0.10 \
  --name nifi \
  --net nifi \
  -p 8443:8443 \
  -v $(pwd)/conf/nifi1.bluejay.local:/opt/certs:ro \
  -v /data/projects/nifi-shared:/opt/nifi/nifi-current/ls-target \
  apache/nifi

访问页面

当您访问 http://localhost:8443/nifi 时,系统会要求您选择一个证书。选择您导入的证书(例如管理员)。

在这一点上,我看到:

Insufficient Permissions
Unknown user with identity 'CN=admin, OU=NIFI'. Contact the system administrator.

在我看到的示例中,没有提到这个问题或如何解决它。

如何将权限分配给初始管理员身份?

标签: dockersslapache-nifi

解决方案


您缺少一行空格

-e INITIAL_ADMIN_IDENTITY="CN=admin,OU=NIFI"

查看错误消息。


推荐阅读