: NiFi 서버의 로그인 방식은 LDAP, Kerberos, OpenID Connect, Apache Knox에서 하나를 선택하여 구성할 수 있다(다음 링크 참조: https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#user_authentication). 이 네가지 방식중에서 OpenID Connect(다음 링크 참조: https://openid.net/connect/) 로그인 방식을 택한것은 별도의 추가적인 인증 서버 설치 및 관리가 필요없어서 관리의 부담이 적고, 설정 자체가 네가지 방식 중에 가장 단순하기때문이다.
(1) Google API 프로젝트 생성 : OpenID Connect 방식의 로그인을 사용하기위해서 Google API를 사용할 것이므로 Google API용 프로젝트를 먼저 생성해야 한다.
a. 아래 링크를 통해 Google API로 접속을 한다.
https://console.developers.google.com/apis
b. (그림 1. Google API Dashboard)와 같이 새 프로젝트를 생성하기 위해 1)의 빨간색 박스 영역을 클릭한다.
(그림 1. Google API Dashboard)
c. (그림 2. 새프로젝트 생성)과 같이 1)의 "새 프로젝트"를 클릭한다.
※ NiFi 서버용 프로젝트(nifi-fitogether)가 이미 생성이 되어 있는 상태이지만 새 프로젝트를 생성하는 방법을 보여주기 위함이다.
(그림 2. 새프로젝트 생성)
d. (그림 3. 새 프로젝트 설정)에서 1) 프로젝트명을 입력 2) "만들기" 버튼을 클릭한다.
(2) OAuth 동의 화면 설정
(그림 4.1. OAuth 동의 화면 설정)
1) 좌측 메인 메뉴에서 "OAuth" 동의 화면을 클릭한다.
2) "UserType"에서 "내부"를 선택한 후, "만들기" 버튼을 클릭한다. "만들기" 버튼을 클릭하면 OAuth 동의 화면의 상세 항목 페이지로 이동한다.
(그림 4.1. OAuth 동의 화면 상세)
1) 애플리케이션 이름을 적절하게 입력한다.
2) OAuth 인증을 사용하기 위한 승인된 도메인을 입력하고 엔터키를 누른 후, 맨 하단의 저장 버튼을 클릭한다.
(3) 클라이언트 ID 생성
(그림 5.1. 사용자 인증 정보 생성)
1) 좌측의 메인 메뉴에서 "사용자 인증 정보"를 클릭한다.
2) 사용자 인증 정보를 생성하기 위해서 상단의 "사용자 인증 정보 만들기"를 클릭한다.
3) "OAuth 클라이언트 ID"를 클릭한다.
(그림 5.2. 애플리케이션 유형 선택)
1) 애플리케이션 유형 항목에서 "웹 애플리케이션"을 선택한다.
2) 이름 항목에 적절한 이름을 입력한 후, "생성" 버튼을 클릭한다.
(그림 5.3. OAuth 클라이언트 생성 후 팝업)
: OAuth 클라이언트 생성 직 후, 위와 같은 팝업이 뜨는데 "클라이언트 ID"와 "클라이언트 보안 비밀번호"를 copy해서 보관해둔다.
(그림 5.4. OAuth 클라이언트 ID 목록)
1) 생성된 OAuth 클라이언트 ID를 설정하기 위해 클라이언트 ID 목록에서 이름 항목을 클릭한다.
(그림 5.5. OAuth 클라이언트 ID 설정)
1) 이름 항목에 이름을 적절하게 입력한다.
2) URI 버튼을 클릭해서 아래 URI 주소를 입력한 후, "저장" 버튼을 클릭한다.
https://xxx.xxxx.com/nifi-api/access/oidc/callback
(4) nifi.properties 설정 : Google 클라이언트 ID를 이용한 OpenID Connect 방식의 로그인을 위해 nifi.properties(파일 위치: /home/ubuntu/app/nifi-1.11.4/conf)에 아래와 같이 설정을 추가한다.
(그림 6. nifi.properties에 OpenID Connect 설정)
1) OpenID Connect Provider 검색 URL을 "nifi.security.user.oidc.discovery.url" 프로퍼티의 값으로 입력한다.
2) (그림 5.3. OAuth 클라이언트 생성 후 팝업)에서 copy하여 보관한 클라이언트 ID를 "nifi.security.user.oidc.client.id" 프로퍼티의 값으로 입력한다.
3) (그림 5.3. OAuth 클라이언트 생성 후 팝업)에서 copy하여 보관한 클라이언트 보안 비밀번호를 "nifi.security.user.oidc.client.secret" 프로퍼티의 값으로 입력한다.
(5) authorizers.xml 파일 설정 : OpenID Connect 로그인을 위한 접근 권한을 부여하기 위해 authorizers.xml(/home/ubuntu/app/nifi-1.11.4/conf) 파일을 아래와 같이 수정한다.
(그림 7. authorizers.xml에 접근 권한 설정)
: 1), 2)에 Google OAuth 클라이언트 ID를 생성할 때 로그인한 Google 이메일 계정을 입력한 후, 파일을 저장한다.
(6) 로그인 테스트
a. NiFi 서버를 stop and start 시킨다.(/home/ubuntu/app/nifi-1.11.4/bin/nifi.sh stop, /home/ubuntu/app/nifi-1.11.4/bin/nifi.sh start)
b. NiFi 서버(https://xxx.xxxxx.com/nifi)로 다시 접속을 한다.
c. 아래와 같이 로그인을 위해 구글 계정을 선택 또는 입력하는 화면에서 authorizers.xml에 등록한 구글 계정을 선택 또는 입력한다.
(그림 8. 구글 계정 선택 또는 입력)
d. 아래와 같이 입력한 구글 계정의 비밀번호를 입력한다.
(그림 9. 구글 계정의 비밀번호)
e. 아래와 같이 NiFi 캔버스가 오픈되고, 좌측 상단에 구글 이메일 계정이 보이면 정상적으로 로그인이 된것이다.
(그림 10. OpenID Connect 방식으로 로그인 한 화면)
: 로그인에 성공하면 1)과 같이 구글 계정이 표시된다. 로그 아웃을 하기 위해서는 1)에서 "LOG OUT" 링크를 클릭하면 정상적으로 로그 아웃된다. "LOG OUT" 링크를 클릭했을때 자동으로 다시 로그인이 된다면 구글 사이트로 이동해서 구글 계정 자체를 로그아웃한 다음에 다시 한번 시도한다.
'Open source > Apache NiFi' 카테고리의 다른 글
Apache NiFi에 SSL 적용 (0) | 2021.07.09 |
---|