searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

基于OIDC配置NIFI单点登录

2023-07-26 10:08:29
75
0

OpenID&OAuth发展历史

OIDC(OpenID Connect)与 Oauth2.0的对比

OIDC 的全称是 OpenID Connect,是一套基于 OAuth 2.0 的 的行业标准协议。Oauth2.0只解决了授权问题,未解决认证问题。例如用户A在应用C登录,跳转微博登录认证后,应用C拿到了access_token,此时只解决了授权问题,应用C还需拿access_token去调用微博API接口,获取用户A的基本信息。
若使用OIDC协议,在跳转微博登录认证后,不仅返回access_token,还返回id_tokens(JWT格式),应用C对id_tokens解密后,可以获得用户A信息,减少请求获取用户信息的操作。

OIDC协议另一个优势是相比Oauth2.0,服务端提供了说明文档。基于Oauth2.0协议时,不同认证服务如微信、微博等,相关的url地址不同,需要在客户端中配置。OIDC协议时候,认证服务会提供OIDC-Discovery-URL接口,该接口会返回Oauth2.0协议的相关接口地址,id_tokens解密算法,公钥等信息,减少客户端的配置。

NIFI配置单点登录为OIDC

修改OIDC登录配置

\nifi-1.16.0\conf\nifi.properties

nifi.security.user.oidc.discovery.url=http://127.0.0.1:8086/info
nifi.security.user.oidc.connect.timeout=60 secs
nifi.security.user.oidc.read.timeout=60 secs
nifi.security.user.oidc.client.id=my_client
nifi.security.user.oidc.client.secret=******
nifi.security.user.oidc.preferred.jwsalgorithm=RS256
nifi.security.user.oidc.additional.scopes=
nifi.security.user.oidc.claim.identifying.user=my_username
nifi.security.user.oidc.fallback.claims.identifying.user=email
nifi.security.user.oidc.truststore.strategy=JDK

//从报错信息与源码可知,login-identity-provider需设为空
nifi.security.user.login.identity.provider=

修改鉴权配置

修改鉴权authorizer

\nifi-1.16.0\conf\nifi.properties

nifi.security.user.authorizer=managed-authorizer
配置初始化的用户

需先设置初始化时的管理员账号,修改
\nifi-1.16.0\conf\authorizers.xml
完成配置,nifi启动时,会往user.xml与authorizations.xml分别写入用户信息与授予的权限。

设置初始化一个admin用户

    <userGroupProvider>
        …………
        <property name="Initial User Identity 1">admin</property>
        …………
    </userGroupProvider>

设置管理员账号id为admin

    <accessPolicyProvider>
       ………………
		<property name="Initial Admin Identity">admin</property>
       ………………
    </accessPolicyProvider>

启动NIFI

  1. 初次启动可能需要五分钟
\nifi-1.16.0\bin\run-nifi.bat
  1. 查看日志文件
\nifi-1.16.0\logs\nifi-app
  1. 访问
https://127.0.0.1:8443/nifi/
0条评论
0 / 1000
1****n
4文章数
0粉丝数
1****n
4 文章 | 0 粉丝
原创

基于OIDC配置NIFI单点登录

2023-07-26 10:08:29
75
0

OpenID&OAuth发展历史

OIDC(OpenID Connect)与 Oauth2.0的对比

OIDC 的全称是 OpenID Connect,是一套基于 OAuth 2.0 的 的行业标准协议。Oauth2.0只解决了授权问题,未解决认证问题。例如用户A在应用C登录,跳转微博登录认证后,应用C拿到了access_token,此时只解决了授权问题,应用C还需拿access_token去调用微博API接口,获取用户A的基本信息。
若使用OIDC协议,在跳转微博登录认证后,不仅返回access_token,还返回id_tokens(JWT格式),应用C对id_tokens解密后,可以获得用户A信息,减少请求获取用户信息的操作。

OIDC协议另一个优势是相比Oauth2.0,服务端提供了说明文档。基于Oauth2.0协议时,不同认证服务如微信、微博等,相关的url地址不同,需要在客户端中配置。OIDC协议时候,认证服务会提供OIDC-Discovery-URL接口,该接口会返回Oauth2.0协议的相关接口地址,id_tokens解密算法,公钥等信息,减少客户端的配置。

NIFI配置单点登录为OIDC

修改OIDC登录配置

\nifi-1.16.0\conf\nifi.properties

nifi.security.user.oidc.discovery.url=http://127.0.0.1:8086/info
nifi.security.user.oidc.connect.timeout=60 secs
nifi.security.user.oidc.read.timeout=60 secs
nifi.security.user.oidc.client.id=my_client
nifi.security.user.oidc.client.secret=******
nifi.security.user.oidc.preferred.jwsalgorithm=RS256
nifi.security.user.oidc.additional.scopes=
nifi.security.user.oidc.claim.identifying.user=my_username
nifi.security.user.oidc.fallback.claims.identifying.user=email
nifi.security.user.oidc.truststore.strategy=JDK

//从报错信息与源码可知,login-identity-provider需设为空
nifi.security.user.login.identity.provider=

修改鉴权配置

修改鉴权authorizer

\nifi-1.16.0\conf\nifi.properties

nifi.security.user.authorizer=managed-authorizer
配置初始化的用户

需先设置初始化时的管理员账号,修改
\nifi-1.16.0\conf\authorizers.xml
完成配置,nifi启动时,会往user.xml与authorizations.xml分别写入用户信息与授予的权限。

设置初始化一个admin用户

    <userGroupProvider>
        …………
        <property name="Initial User Identity 1">admin</property>
        …………
    </userGroupProvider>

设置管理员账号id为admin

    <accessPolicyProvider>
       ………………
		<property name="Initial Admin Identity">admin</property>
       ………………
    </accessPolicyProvider>

启动NIFI

  1. 初次启动可能需要五分钟
\nifi-1.16.0\bin\run-nifi.bat
  1. 查看日志文件
\nifi-1.16.0\logs\nifi-app
  1. 访问
https://127.0.0.1:8443/nifi/
文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0