google OAuth2 를 이용하여 NiFi 를 암호화하는 방법에 대해 설명한다.
NiFi 에서는 OIDC(OpenID Connect) 라고 부르는가 봄.
Apache NiFi 가 기본 설정값으로 설치되었다면, NiFi WebUI 에는 누구나 접근이 가능하기 때문에,
SSL 을 적용하여 권한이 있는 google 계정을 갖는 사용자만 https 를 통해 접근할 수 있도록 한다.
이 문서는 Standalone NiFi 를 기준으로 설명한다.
TLS 암호화가 적용되었다는 전제를 둔다. [TLS 암호화 방법]
Google cloud platform 을 설정한다.
아래 링크로 들어간 후 자신의 google 계정으로 로그인한다.
https://console.developers.google.com/?hl=ko |
프로젝트 선택을 누르고, 새 프로젝트를 누른다.
프로젝트 이름을 할당한다.
생성한 프로젝트를 선택한다.
OAuth 동의 화면을 선택하고, 외부에 체크한 후 만들기를 누른다.
앱 이름과 사용자 지원 이메일을 넣는다.
여기서 앱 이름은, NiFi 에 접근하는 사용자들이 google login 하는 창에서 볼 수 있는 이름이다.
개발자 연락처 정보를 넣고 저장 후 계속을 누른다.
이후 계속 저장 후 계속 을 누르며 진행을 마친다.
OAuth 동의 화면 설정이 마무리 된 모습
사용자 인증 정보를 선택하고 사용자 인증 정보 만들기를 누른 후 OAuth 클라이언트 ID 를 선택한다.
애플리케이션 유형은 웹 애플리케이션을 선택하고 이름을 넣는다.
승인된 리디렉션 URI 에 다음과 같이 넣는다.
그 후 만들기를 누른다.
https://localhost:9443/nifi-api/access/oidc/callback |
OAuth 클라이언트가 생성되면 클라이언트 ID 와 클라이언트 보안 비밀번호를 얻을 수 있다.
이 값은 나중에 언제든 다시 찾을 수 있으니 따로 저장해두지 않아도 괜찮다.
NiFi 를 설정한다.
아래부터, nifi 를 설치한 디렉터리를 $NIFI_HOME/nifi-1.13.0/ 이라고 한다.
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 생성 후 얻은 클라이언트 보안 비밀번호를 넣으면 된다.
authorizers.xml 의 내부를 다음과 같이 업데이트한다.
[YOUR_ACCOUNT] 부분에 자신의 google account 이메일을 넣는다.
userGroupProvider : Initial User Identity 1 : 52번째 줄
accessPolicyProvider : Initial Admin Identity : 282번째 줄
아래 명령어를 통해 nifi 를 시작하고, log 를 살펴본다.
../bin/nifi.sh start ; tail -f ../logs/nifi-app.log
로그에서 다음과 같이 JettyServer 의 주소가 뜨면 된다.
인터넷 브라우저에서 https://localhost:9443/nifi/ 에 접근한다.
보안 위험 가능성 화면이 뜨면, 고급을 누르고 위험을 감수하고 계속 진행을 누른다.
google 로그인 화면으로 화면이 전환된다.
https 를 이용하여 NiFi 에 접근하였다.
참고
https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#openid_connect
https://bryanbende.com/development/2017/10/03/apache-nifi-openid-connect
'NiFi' 카테고리의 다른 글
[NiFi] Docker NiFi Cluster 에 security 적용하는 방법(OIDC) (0) | 2021.03.03 |
---|---|
[NiFi] 암호화 된 NiFi 에 익명으로 접근하는 방법 (0) | 2021.03.02 |
[NiFi] Docker NiFi Cluster 에 security 적용하는 방법(TLS) (0) | 2021.03.02 |
[NiFi] Toolkit Guide 공부 필기 (0) | 2021.02.19 |
[NiFi] standalone NiFi 에 security 적용하는 방법(TLS) (4) | 2021.02.06 |