[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