Astro Hub

operateguide / 31.Gitea

프로젝트: astro-sub1

원본 경로: operateguide/31.Gitea.md


1. Gitea 운영 가이드

Gitea는 전사교육 산출물을 업로드하고 전 직원 대상으로 공유할 목적으로 도입한 도구이다.

2. 인프라 구조

image

  • 단일 gitea 서비스 pod
  • 단일 postgre db pod
  • 세션 클러스터링을 위한 Valkey 클러스터(Redis의 fork 버전)

3. SSO

3-1. 사전 작업(Azure)

앱 등록

  1. Gitea 앱 등록
  • 애플리케이션 및 Tenant ID 확인 image
  1. 리다이렉트 URL 추가
  1. 인증서 및 암호 -> 클라이언트 비밀 추가 image

3-2. 관리자 계정 로그인

ID: gitea_admin
PW: XXX <- values.yaml 파일 확인

3-3. 사이트 관리 -> 인증 소스

image
image
image

  • 인증 유형: OAuth2
  • OAuth2 프로바이더: Azure AD v2
  • 클라이언트 ID(키) : app id
  • 클라이언트 시크릿: 클라이언트 암호 값
  • Tenant: Tenant ID

3-4. 저장 후 로그인 시 Entra ID SSO 활성화

image

4. SSO 트러블 슈팅

최초 SSO 통해 Gitea 계정 등록 시 Entra ID로부터 한글로 된 사용자 명이 출력 (Gitea는 사용자 명에 한글을 미 지원) image

4-1. jwt를 통한 token 확인

*jwt: Entra ID와 애플리케이션 간에 주고받는 Json Web Token

1) 애플리케이션 리다이렉트 URL 추가

2) 아래 URL로 접속하여 토큰 확인

https://login.microsoftonline.com/4f0a3bfd-1156-4cce-8dc2-a049a13dba23/oauth2/v2.0/authorize?client_id=c7834c72-df4b-4dfe-811d-ad31c8c46b48&response_type=id_token&redirect_uri=https%3A%2F%2Fjwt.ms&response_mode=fragment&scope=openid+profile+email+User.Read&nonce=12345 image

Gitea는 SSO 시 email과 name이라는 클레임을 활용하고 있는 것을 확인

name이라는 클레임을 변환하여 8사번이 출력되게 설정

image

image

Substring() 함수를 사용하여 8xxxxxxx@ktds.co.kr 앞 8자리만 출력되게 변환

image

프로젝트 홈으로 돌아가기