google OAuth2 를 이용하여 NiFi 를 암호화하는 방법에 대해 설명한다.

NiFi 에서는 OIDC(OpenID Connect) 라고 부르는가 봄.

 

Apache NiFi 가 기본 설정값으로 설치되었다면, NiFi WebUI 에는 누구나 접근이 가능하기 때문에,

SSL 을 적용하여 권한이 있는 google 계정을 갖는 사용자만 https 를 통해 접근할 수 있도록 한다.

 

여기서는 Docker NiFi Container 를 이용한 Cluster 를 기준으로 설명한다.

 

TLS 를 적용하여 암호화를 진행한 이전 포스트에서 계속 내용을 이어간다.

따라서 OIDC 를 적용하려면 이전 포스트를 보고 TLS 를 미리 적용해둔다.

 

또한, google 에서 OAuth 를 설정하는 방법은 이 포스트 의 내용을 참고한다.

 

 

 

 

 

 

 

아래부터 간단하게 OIDC 를 적용하는 방법을 설명한다.

 

TLS 가 적용된 상태에서, 인증서를 이용하면 NiFi 에 접근이 가능하다.

오른쪽 위에 햄버거 버튼을 누르고 Users 를 선택한다.

사용자를 추가하는데 이 때 google 로 로그인해야하는 이메일을 넣는다.

 

 

오른쪽 위에 햄버거 버튼을 누르고 Policies 를 선택한다.

view the user interface 를 선택하고 위에서 추가한 user을 선택하여 추가한다.

이렇게 함으로써, 해당 이메일로 google 로그인을 한 사용자는

user interface 를 볼 수 있는 권한이 생겨서 NiFi 에 접근이 가능하다.

 

 

 

 

각 서버의 NiFi Container 내부의 nifi.properties 를 docker cp 명령으로 가져온다.

 

server 1 에서

docker cp nifi1:/opt/nifi/nifi-current/conf/nifi.properties .

 

server 2 에서

docker cp nifi2:/opt/nifi/nifi-current/conf/nifi.properties .

 

server 3 에서

docker cp nifi3:/opt/nifi/nifi-current/conf/nifi.properties .

 

 

nifi.properties 의 내부 oidc 항목을 다음과 같이 업데이트한다.

 

 

nifi.security.user.oidc.discovery.url=https://accounts.google.com/.well-known/openid-configuration

 

여기서 nifi.security.user.oidc.client.id 에는 OAuth 생성 후 얻은 클라이언트 ID 값을 넣으면 되고,

nifi.security.user.oidc.client.secret 에는 OAuth 생성 후 얻은 클라이언트 보안 비밀번호를 넣으면 된다.

 

만약 위의 두 값을 잊었을 경우,

google developers 에 들어가면 클라이언트ID 와 클라이언트 보안 비밀번호를 다시 찾을 수 있다.

아래 이미지처럼 사용자 인증 정보를 선택하면 된다.

 

 

 

 

 

각 서버의 NiFi Container 내부로, 수정한 nifi.properties 를 docker cp 명령으로 넣어준다.

 

server 1 에서

docker cp nifi.properties nifi1:/opt/nifi/nifi-current/conf/

 

server 2 에서

docker cp nifi.properties nifi2:/opt/nifi/nifi-current/conf/

 

server 3 에서

docker cp nifi.properties nifi3:/opt/nifi/nifi-current/conf/

 

 

 

그 후 각 서버의 NiFi Container 들을 재시작해준다.

 

NiFi 가 재시작한 이후, 인증서가 없는 상태로 NiFi 에 접근한다.

즉, 인증서가 없는 다른 브라우저를 사용하거나, 브라우저에서 인증서를 제거한 상태로 NiFi 에 접근한다.

NiFi 접근중에 google login 화면이 뜨게되고

위에 추가한 email 을 이용하여 로그인을 하면 NiFi 에 접근할 수 있게 된다.

 

 

 

 

 

+ Recent posts