[Oauth] Jenkins와 GitHub OAuth 연동 가이드

xgro·2024년 2월 23일

Oauth

목록 보기
2/2
post-thumbnail

Github 계정을 연동한 이유

사내 인증 통합
개발자에게 발급되는 GitHub 계정을 사용함으로써, 별도의 로그인 정보 제공 없이 서비스에 접근할 수 있습니다. 이는 인증 정보의 관리 부담을 줄여줍니다.

권한 관리 용이성
GitHub 조직(organization)에 등록된 팀을 기준으로 세밀한 권한 관리가 가능합니다. 팀별로 다른 접근 권한을 설정하여 보안을 강화할 수 있습니다.


📌 Jenkins와 GitHub OAuth 연동 가이드

Jenkins는 개발의 자동화를 돕는 강력한 도구입니다.

GitHub 계정을 사용하여 Jenkins에 로그인하면, 개발자의 인증 관리가 한층 더 간편해지고, 보안도 강화됩니다.

이 글에서는 GitHub OAuth 앱을 이용해 Jenkins와 GitHub 계정을 연동하는 방법을 단계별로 설명합니다.

사전 준비사항

  • Jenkins 서버에 접근 권한
  • GitHub 계정 및 GitHub에서 OAuth 앱을 생성할 수 있는 권한

👉 1단계: GitHub에서 OAuth 앱 등록

GitHub OAuth 앱을 생성하여 Jenkins와 연동하는 것으로 시작합니다.

GitHub에 로그인하고, 프로필 사진을 클릭한 후 Settings로 이동합니다.

Developer settings를 선택하고, OAuth Apps를 클릭합니다.

New OAuth App 버튼을 클릭하여 새 앱을 생성합니다.

앱 이름, 홈페이지 URL (Jenkins 서버의 URL), 그리고 Authorization callback URL을 입력합니다. Callback URL은 Jenkins가 설치된 서버 주소에 /securityRealm/finishLogin 을 추가한 URL입니다 (예: http://your-jenkins-server/securityRealm/finishLogin).

Register application 버튼을 클릭합니다.


👉 2단계: Jenkins에서 GitHub Authentication 플러그인 설치

Jenkins에서 GitHub 인증을 사용하기 위해 GitHub Authentication 플러그인을 설치합니다.

Jenkins 대시보드로 이동합니다.

Manage Jenkins > Manage Plugins로 이동합니다.

Available plugins 탭에서 GitHub Authentication을 찾아 설치합니다.


👉 3단계: Jenkins에 GitHub 인증 설정

GitHub OAuth 플러그인 설치 후, Jenkins에서 GitHub 인증을 설정합니다.

Manage Jenkins > Security으로 이동합니다.

Security Realm 섹션에서 GitHub Authentication Plugin 을 선택합니다.

GitHub Web Hook 섹션에서 Client IDClient Secret을 입력합니다.

입력한 Client IDClient Secret을 사용해 GitHub 인증 세부 정보를 구성합니다.

👉 4단계: 권한 부여 및 인증

Authorization 섹션에서 Matrix-based security 항목을 선택하여 계정에 대한 권한을 설정합니다.

반드시 로그아웃 전에 최소한의 권한을 위한 설정이 필요합니다.

개인
유저별로 설정하고 싶은경우에는 Add user 항목을 이용하여 깃헙 로그인 계정을 입력합니다.

Team
Org 또는 Org.team에 속한 그룹을 관리하고 싶은경우 Add group 항목을 선택하여 권한을 관리합니다.
orgname - 예) Org에 속한 사람들 전체
orgname*frontend - 예)orgname Org에 속하며 frontend라는 Github Team에 속한 경우

설정을 완료한 후 GitHub 계정으로 로그인을 시도하여 모든 것이 정상적으로 작동하는지 테스트합니다.


📌 Conclusion

Jenkins와 GitHub 계정을 OAuth 앱을 통해 연동하면, 개발자가 Jenkins 서비스에 보다 안전하고 편리하게 접근할 수 있습니다.

이 가이드를 통해 단계별로 설정을 완료하면, Jenkins의 보안과 사용자 관리가 크게 개선됩니다.


🔗 Reference

profile
안녕하세요! DevOps 엔지니어 이재찬입니다. 블로그에 대한 피드백은 언제나 환영합니다! 기술, 개발, 운영에 관한 다양한 주제로 함께 나누며, 더 나은 협업과 효율적인 개발 환경을 만드는 과정에 대해 인사이트를 나누고 싶습니다. 함께 여행하는 기분으로, 즐겁게 읽어주시면 감사하겠습니다! 🚀

0개의 댓글