SAML 인증을 통해 Keycloak을 사용하여 Zabbix에 로그인
개시하다
가정 내부나 작은 사무실에서 자비빅스와 그랩파나 등이 운영되고 있지만 이용자 관리에도 여러 가지 다른 점이 있겠죠.제 개인적인 검증 환경에도 이런 문제가 있기 때문에 이번에는 키클라크라는 OSSO가 할 수 있는 것을 자비빅스와 합작하고 싶습니다.
해설문은 별로 없지만 다음 글은 순서를 생략하지 않아 참고 가치가 있다.이번에는 이 글을 바탕으로 일본어화된 키클로크 용어를 사용해 프로그램을 추적한다.
이 문장으로 설명하다
이 문장에서 설명하지 마라
전제 환경 등
본 보도는 다음과 같은 환경이 구축된 것을 전제로 한다.
먼저 키클로크, 자비빅스는 각각 다음 버전으로 설치가 완료됐다.
설정
Zabbix에 인증서 추가
우선 자abbix 측에서 증명서를 작성한다.
# cd /usr/share/zabbix/conf/certs
# openssl req -x509 -sha256 -newkey rsa:2048 -keyout sp.key -out sp.crt -days 3650 -nodes -subj '/CN=my common name'
'/CN=mycommon name'섹션의 mycommon name을 적절한 이름으로 변경할 수 있습니다.Docker 구축이라면/usr/share/zabbix/conf/certs를 호스트 측에 설치하고 호스트 측에 생성할 수 있습니다.공식docker-compose.나는 yaml이 처음부터 설치되기 시작했다고 생각한다.
다음으로 keycloak 측 인증서를 얻으려면 다음 URL을 방문하십시오.
"https://sso.techrunnr.com/auth/realms/
※ realmname에 대해서는 자신이 설정한 것으로 교체하십시오.
액세스하면 XML이 표시됩니다.
일부 브라우저는 XML을 잘 표시하지 못하는데, 나는 몇 개의 브라우저로 시험해 보는 것이 좋겠다고 생각한다.나는 이곳에서 약간의 시간을 썼다.
XML에 X509 Ceertificate 요소가 표시되어 내용을 복사합니다.
복사된 데이터를 Zabbix 서버에 다음 파일로 저장합니다.
# cd /usr/share/zabbix/conf/certs
# vi idp.cert
idp.cert는 다음과 같이 BEGIN, END로 끼워야 합니다.-----BEGIN CERTIFICATE-----
certificate-content
-----END CERTIFICATE-----
해석 변경
# chmod 644 idp.crt
# chmod +x idp.crt
Keycloak 측에서 클라이언트 만들기
Keycloak의 관리 화면에 로그인하여 사용할 렘을 선택하십시오.클라이언트를 엽니다.
만들기 단추에서 새 클라이언트를 만듭니다.
클라이언트 ID 모든 ID를 지정합니다.여기는 간단하고 알기 쉬운'zabbix'입니다.
클라이언트 프로토콜은 SAML을 지정합니다.
맵 생성
SAML을 통해 Zabbix에 로그인할 때 Keycloak의 사용자와 Zabbix의 사용자를 연결하는 키를 설정해야 합니다.(매우 거친 설명)
클라이언트→Zabbix를 열면 맵이라는 이름의 태그가 여기에 설정됩니다.만들기 단추에서 새로 만듭니다.
다음 설정 내용을 사용하여 만듭니다.
클라이언트 역할 도메인 설정
왼쪽 메뉴에서 클라이언트 역할 영역을 엽니다.롤러를 일람하다목록이 있으면 를 클릭합니다.맵 탭에서목록을 엽니다.
Single Role Attribute를 활성화합니다.
사용자 설정 편집
keycleak에 등록된 사용자가 Zabbix에 로그인할 수 있도록 설정합니다.
화면 관리 → 편집 사용자 및 미리 보기에 로그인하려는 사용자.
속성 옵션 카드의 키:zabbixuser 값: 메일 주소를 만듭니다.
이 메일의 주소는zabbix에 등록된 메일 주소와 일치합니다.
이로써SAML을 통해 로그인할 때 메일 주소를 통해 사용자의 일치를 실현한다.
Zabbix 서버 측 설정
Zabbix의 관리 화면 관리→인증을 통해SAML 인증을 실시하는 설정.
다음과 같이 항목을 설정합니다.
https://keycloak.example.com/auth/realms/miler-engineer-club/protocol/saml "
SSO에서 로그인 시도
여기 도착하면 해볼 수 있어.
Zabbix의 로그인 화면을 열면 일반적인 로그인 화면 아래에 SSO의 로그인 링크가 나타납니다.
Sign in with Single Sign-ON(SAML) 링크를 클릭하면 Keycleak의 로그인 화면이 표시됩니다.키클록에 로그인하면 바로zabbix로 바꿉니다.
현재 설정에서는zabbix에 존재하지 않지만 키cloak에 존재하는 계정으로 로그인하면 키cloak의 로그인이 성공하더라도 Zabbix 측에 이러한 사용자가 존재하지 않아 인증에 실패합니다.
문제 해결
기본적으로 초반에 설명한 URL대로 진행하면 순조롭게 진행될 수 있지만, 제 특유의 구축 환경 등의 영향으로 부족한 점이 있을 수 있어 내용과 대처법을 기재하고자 합니다.
만약 역방향 프록시 환경에서zabbix를 이동하면redirecturl이 정확하지 않습니다
내 환경에서 Docker 컨테이너로zabbix를 이동할 수 있고 다른 Docker 컨테이너로 이동하는 역방향 프록시 터미널로HTTPS에 접근할 수 있다.
이때 Zabbix 자체가 HTTP에서 실행되는 것으로 간주되기 때문에SAML 인증을 통과할 때의 URL 매개 변수로 전달되는 Redirecturl가 "http://zabbix.example.com"로 변경되었습니다.그러나 키클랙에 설정된 유효한 리디렉션 URL은'https://zabbix.example.com/*'이어서 무효로 여겨져 인증이 제대로 이뤄지지 않았다.
여기서 생각할 수 있는 가장 간단하고 빠른 방법은 키클락의 유효한 URL 리셋입니다http://zabbix.example.com/* 을 추가합니다.이렇게 하면SAML 인증 자체가 가능하지만 새로운 문제가 발생할 수 있습니다.저것은 Redirect-url은 HTTP가 되고 암호화되지 않은 통신 대상이 되며 경고를 보냅니다.역방향 에이전트는 반드시 HTTPS로 방향을 바꿀 것이지만, 이 경고는 그다지 이상적이지 않다.이 문제를 해결하기 위해 SAML 인증 시 제출한 RedirestURL 매개 변수를 https에서 URL로 시작해야 합니다.
이를 위해zabbix에 자기증명서를 넣고 역방향 에이전트→Zabbix 간에도 HTTPS 통신을 통해 해결했다.처음에는 그것을 하지 않고 자신의 URL을 지정하지 않은 설정 항목을 찾았다.다행히zabbix는 인증서만 준비하면 간단한https화를 할 수 있어서 정말 큰 도움이 되었습니다.
끝말
드디어SAML 인증은zabbix에 로그인시켰다.아직 해설 기사 수준이라 SSO에서 조금 더 깊이 이해하려고 한다.
Reference
이 문제에 관하여(SAML 인증을 통해 Keycloak을 사용하여 Zabbix에 로그인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/ttrip/articles/4cf70ab91ddf6a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)