μƒˆμ†Œμ‹

DevOps/Git

[GitLab] κΉƒλž© λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈ(MS) 계정 SSO μ„€μ •

  • -

 

 

 

κΉƒλž©μ€ OmniAuthλΌλŠ” λͺ¨λ“ˆμ„ λ‚΄μž₯ν•˜μ—¬ SSO(Single Sign On)을 μ œκ³΅ν•©λ‹ˆλ‹€. 이둜 인해 맀우 λ‹€μ–‘ν•œ 인증 ν”„λ‘œλ°”μ΄λ”λ₯Ό μ§€μ›ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. https://docs.gitlab.com/ee/integration/omniauth.html#supported-providers

이 λ¬Έμ„œμ—μ„œλŠ” 이 λͺ©λ‘ 쀑 λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈμ˜ 계정을 μ΄μš©ν•  수 μžˆλŠ” "Azure V2 ν”„λ‘œλ°”μ΄λ”"μ™€μ˜ SSO 섀정을 μ„€λͺ…ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œμ˜ SSOλŠ” MS 계정을 가지고 κΉƒλž©μ˜ μœ μ €λ₯Ό λ“±λ‘ν•˜κ±°λ‚˜ κΈ°μ‘΄ λ“±λ‘λœ μœ μ €μ™€ μ—°κ²°ν•΄μ„œ λ‘œκ·ΈμΈμ„ ν•  수 μžˆλ„λ‘ ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.


자격

μ΄ν•˜μ˜ μž‘μ—…μ„ ν•˜λŠ”λ° μžˆμ–΄μ„œλŠ” λ‹€μŒμ˜ 쑰건이 ν•„μš”ν•©λ‹ˆλ‹€.

  • MS 계정에 κ΄€λ¦¬μž κΆŒν•œ 보유
  • κΉƒλž© μ„œλ²„μ— ssh둜 접속할 수 있고 root κΆŒν•œμœΌλ‘œ λͺ…령을 μ‹€ν–‰ν•  수 μžˆλŠ” μƒνƒœ

 

Azure Active Directory μ„€μ •

κΉƒλž©μ—μ„œ MS 계정에 λŒ€ν•œ SSOλ₯Ό μ΄μš©ν•œλ‹€λŠ” 것은 MS의 인증 ν”„λ‘œλ°”μ΄λ”λ₯Ό μ΄μš©ν•œλ‹€λŠ” μ–˜κΈ°μ™€ κ°™μŠ΅λ‹ˆλ‹€. 이 인증 ν”„λ‘œλ°”μ΄λ”λŠ” Azure Active Directory(μ΄ν•˜ Azure AD)의 κΈ°λŠ₯으둜 μ œκ³΅λ©λ‹ˆλ‹€. 이 κΈ°λŠ₯을 μ΄μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ¨Όμ € μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 등둝해야 ν•©λ‹ˆλ‹€. μžμ„Έν•œ 섀정은 https://docs.microsoft.com/ko-kr/azure/active-directory/develop/quickstart-register-app을 μ°Έμ‘°ν•˜κΈ° λ°”λžλ‹ˆλ‹€.

 

μ„€μ •μ˜ κΈ°λ³Έ 화면은 λ‹€μŒμ˜ λ‹¨κ³„λ‘œ λ“€μ–΄κ°ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

  1. Azure Portal에 둜그인
  2. "Azure Active Directory 관리" 클릭

 

μ•± 등둝

앱등둝은 λ‹€μŒμ˜ 과정을 κ±°μΉ©λ‹ˆλ‹€.

  1. λ©”λ‰΄μ—μ„œ "μ•± 등둝"을 선택
  2. "μƒˆ 등둝"을 클릭
  3. μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 등둝
    1. μ΄λ¦„μ—λŠ” "κΉƒλž©" μž…λ ₯. (λ‹€λ₯Έ 이름도 κ°€λŠ₯)
    2. μ§€μ›λ˜λŠ” 계정 μœ ν˜•μ—λŠ” "이 쑰직 λ””λ ‰ν„°λ¦¬μ˜ κ³„μ •λ§Œ(ITMSG만 - 단일 ν…Œλ„ŒνŠΈ)" 선택
    3. λ¦¬λ””λ ‰μ…˜ URIμ—λŠ” 웹을 μ„ νƒν•˜κ³  https://gitlab.example.com/users/auth/azure_activedirectory_v2/callback μž…λ ₯

 

ν΄λΌμ΄μ–ΈνŠΈ μ•”ν˜Έ 생성

앱등둝을 마치면 상세 섀정화면이 λ‚˜μ˜΅λ‹ˆλ‹€. λ‹€μŒμ˜ 과정을 κ±°μ³μ„œ ν΄λΌμ΄μ–ΈνŠΈ μ•”ν˜Έλ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

  1. λ©”λ‰΄μ—μ„œ "μΈμ¦μ„œ 및 μ•”ν˜Έ" 선택
  2. "μƒˆ ν΄λΌμ΄μ–ΈνŠΈ μ•”ν˜Έ" 선택
  3. "μ„€λͺ…"κ³Ό "λ§Œλ£Œμ‹œκ°„"을 μž…λ ₯ ν˜Ήμ€ ν™•μΈν•˜κ³  μΆ”κ°€ 클릭

μœ„ 과정을 거치면 μ•”ν˜Έκ°€ μƒμ„±λ˜λŠ”λ° μ΄λ•Œ 값을 λ³΅μ‚¬ν•΄μ„œ λ©”λͺ¨μž₯ 등에 보관해 두어야 ν•©λ‹ˆλ‹€. ν™”λ©΄ μ „ν™˜ ν›„μ—λŠ” 더이상 값을 λ³Ό 수 μ—†μŠ΅λ‹ˆλ‹€. (λ³΄μ•ˆμƒμ˜ 이유)

 

 

API μ‚¬μš©κΆŒν•œ μ„€μ •

SSO 둜그인 κ³Όμ •μ—μ„œ κΉƒλž©μ΄ ν•„μš”ν•œ 정보λ₯Ό μ œκ³΅ν•˜λ„λ‘ μ„€μ •ν•΄ μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€. κΉƒλž©μ€ email, openid, profile 에 λŒ€ν•œ μ ‘κ·Ό κΆŒν•œμ΄ ν•„μš”ν•©λ‹ˆλ‹€. λ‹€μŒμ˜ 과정을 톡해 μ‚¬μš© κΆŒν•œμ„ λΆ€μ—¬ν•©λ‹ˆλ‹€.

  1. λ©”λ‰΄μ—μ„œ "API μ‚¬μš© κΆŒν•œ" 선택
  2. "κΆŒν•œ μΆ”κ°€" 선택
  3. "Microsoft Graph" 선택
  4. "μœ„μž„λœ κΆŒν•œ" 선택
  5. "OpenId κΆŒν•œ"μ—μ„œ email, openid, profile 선택
  6. 맨밑에 "κΆŒν•œμΆ”κ°€" λ²„νŠΌ 클릭

κΆŒν•œμ„ μΆ”κ°€ν•œ 이후 "ITMSG에 λŒ€ν•œ κ΄€λ¦¬μž λ™μ˜ ν—ˆμš©"을 ν΄λ¦­ν•˜κ³  κΆŒν•œ 뢀여에 λ™μ˜ν•΄μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€. 이 μž‘μ—…μ€ ITMSG 그룹에 λŒ€ν•œ κ΄€λ¦¬μž κΆŒν•œμ΄ μžˆμ–΄μ•Ό κ°€λŠ₯ν•©λ‹ˆλ‹€.

μ—¬κΈ°κΉŒμ§€ μ„€μ •ν•˜λ©΄ Azure AD에 λŒ€ν•œ λͺ¨λ“  섀정은 끝이 λ‚©λ‹ˆλ‹€. 이 섀정에 μ˜ν•΄ μƒμ„±λœ 정보 쀑 "κ°œμš”" μ—μ„œ λ³Ό 수 μžˆλŠ” "μ• ν”Œλ¦¬μΌ€μ΄μ…˜(ν΄λΌμ΄μ–ΈνŠΈ) ID"와 "디렉터리(ν…Œλ„ŒνŠΈ) ID", ν΄λΌμ΄μ–ΈνŠΈ μ•”ν˜Έ μƒμ„±μ—μ„œ μƒμ„±ν•œ μ•”ν˜ΈλŠ” κΉƒλž© μ„€μ •μ—μ„œ 이용되기 λ•Œλ¬Έμ— λ”°λ‘œ λ©”λͺ¨ν•΄ 놓아야 ν•©λ‹ˆλ‹€.

 

 

κΉƒλž© μ„€μ •

이제 κΉƒλž©μ—μ„œ Azure ADλ₯Ό μ΄μš©ν•œ λ‘œκ·ΈμΈμ„ ν™œμ„±ν™” μ‹œμΌœ μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€. /etc/gitlab/gitlab.rb νŒŒμΌμ— λ‹€μŒμ˜ 섀정을 μΆ”κ°€ν•΄ μ€λ‹ˆλ‹€.

gitlab_rails['omniauth_allow_single_sign_on'] = ['azure_activedirectory_v2']
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_providers'] = [
  {
    "name" => "azure_activedirectory_v2",
    "args" => {
      "client_id" => "[μ• ν”Œλ¦¬μΌ€μ΄μ…˜(ν΄λΌμ΄μ–ΈνŠΈ) ID]",
      "client_secret" => "[ν΄λΌμ΄μ–ΈνŠΈ μ•”ν˜Έ]",
      "tenant_id" => "[디렉터리(ν…Œλ„ŒνŠΈ) ID]"
    }
  }
]

 

섀정이 λ³€κ²½λ˜λ©΄,

sudo gitlab-ctl reconfigure

λͺ…λ Ήμ–΄λ‘œ 섀정을 λ°˜μ˜ν•΄ μ€λ‹ˆλ‹€.

 

 

μžμ„Έν•œ λ‚΄μš©μ€ https://docs.gitlab.com/ee/integration/azure.html#microsoft-azure-oauth2-omniauth-provider-v2 μ°Έμ‘°.

 

Use Microsoft Azure as an authentication provider | GitLab

Documentation for GitLab Community Edition, GitLab Enterprise Edition, Omnibus GitLab, and GitLab Runner.

docs.gitlab.com

 

 

 

 

[Ubuntu] μš°λΆ„νˆ¬ μ„œλ²„ μ„ΈνŒ…

 

[Ubuntu] μš°λΆ„νˆ¬ μ„œλ²„ μ„ΈνŒ…

μš°λΆ„νˆ¬(Ubuntu)μ„œλ²„μ— λ¦¬λˆ…μŠ€(Linux)μ„€μΉ˜λ₯Ό 기둝 λͺ©μ μœΌλ‘œ 정리 및 μž‘μ„± ν•˜κ² μŠ΅λ‹ˆλ‹€. κ°„λ‹¨ν•˜κ²Œ μ •λ¦¬ν•˜μžλŠ” λͺ©μ μ΄λΌ μƒμ„Έν•˜κ²Œ μ •λ¦¬λ˜μ–΄ μžˆμ§€λŠ” μ•Šμ„ κ²λ‹ˆλ‹€. ν•„μš”ν•œ 뢀뢄은 λ¦¬μ„œμΉ­μ„ 톡해 μ±„μ›Œμ£Όμ‹œ

sm-code.tistory.com

[GitLab] κΉƒλž© μš°λΆ„νˆ¬(Ubuntu)μ„œλ²„μ— μ„ΈνŒ…

 

[GitLab] κΉƒλž© μš°λΆ„νˆ¬(Ubuntu)μ„œλ²„μ— μ„ΈνŒ…

μš°λΆ„νˆ¬(Ubuntu) OSμ—μ„œ κΉƒλž©(GitLab) μ„€μΉ˜λ₯Ό μ§„ν–‰ν•˜κ²Œ λ˜μ–΄ 기둝 λͺ©μ μœΌλ‘œ μž‘μ„±λœ κΈ€μž…λ‹ˆλ‹€. GitLab μ„€μΉ˜ 방법은 μ°Ύμ•„λ³Έ κ²°κ³Ό, μ„€μΉ˜λ°©μ‹μ΄ λ³€κ²½λ˜λŠ” μ΄μŠˆκ°€ μ’…μ’… λ°œμƒν•˜λ‹ˆ 참고용으둜만 ν™•μΈν•˜μ…”μ•Ό ν•©

sm-code.tistory.com

[GitLab] κΉƒλž© 둜그인 ν™”λ©΄ μ»€μŠ€ν„°λ§ˆμ΄μ§•

 

[GitLab] κΉƒλž© 둜그인 ν™”λ©΄ μ»€μŠ€ν„°λ§ˆμ΄μ§•

κΉƒλž©(GitLab)μ—μ„œ 둜그인 ν™”λ©΄ μ»€μŠ€ν„°λ§ˆμ΄μ§•μ„ 톡해 μž…λ§›μ— 맞게 λ³€κ²½ν•˜κ³  싢은데 μƒκ°μ™Έλ‘œ μžλ£Œκ°€ λ§Žμ§€ μ•Šμ•„μ„œ 기둝 λͺ©μ μœΌλ‘œ μž‘μ„±λ˜μ—ˆμœΌλ―€λ‘œ 참고용으둜만 λ΄μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€. μ„€μ • λ°©

sm-code.tistory.com

[GitLab] κΉƒλž© SSL적용 및 μžλ™κ°±μ‹ 

 

[GitLab] κΉƒλž© SSL적용 및 μžλ™κ°±μ‹ 

κΉƒλž©(GitLab)을 μ‹€μ œ μš΄μ˜ν•˜κΈ° μœ„ν•΄μ„œ 도메인과 SSL등둝을 μ§„ν–‰ν•˜μ˜€κ³ , κ·Έ 과정을 κΈ°λ‘ν•˜λŠ” λͺ©μ μœΌλ‘œ μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€. 더 쒋은 λ°©λ²•μœΌλ‘œ ν•˜μ…”λ„ λ¬΄λ°©ν•©λ‹ˆλ‹€. 이 글은 참고용으둜만 λ΄μ£Όμ‹œκΈΈ λ°”λžλ‹ˆ

sm-code.tistory.com

 

 

 

Contents

ν¬μŠ€νŒ… μ£Όμ†Œλ₯Ό λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€. 😊

이 글이 도움이 λ˜μ—ˆλ‹€λ©΄ 곡감 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€. πŸ‘