InfoGrab Docs

튜토리얼: GitLab.com 그룹에 SAML SSO 설정

요약

이 튜토리얼에서는 Okta 또는 Microsoft Entra ID와 같은 ID 공급자(IdP)를 사용하여 GitLab.com 그룹에 SAML 싱글 사인온(SSO)을 설정하는 방법을 안내합니다. 이 튜토리얼에서는 다음을 수행합니다:

이 튜토리얼에서는 Okta 또는 Microsoft Entra ID와 같은 ID 공급자(IdP)를 사용하여 GitLab.com 그룹에 SAML 싱글 사인온(SSO)을 설정하는 방법을 안내합니다. 완료하면 그룹 구성원이 IdP를 통해 GitLab에 로그인할 수 있습니다.

이 튜토리얼에서는 다음을 수행합니다:

  1. IdP 애플리케이션을 통해 SAML을 구성합니다.
  2. GitLab 그룹에서 SAML SSO를 구성합니다.
  3. SAML 연결을 테스트합니다.
  4. 설정을 확인하기 위해 사용자 계정을 연결합니다.

시작하기 전에#

사전 요건:

  • GitLab.com의 GitLab Premium 또는 Ultimate 그룹에 대한 소유자(Owner) 권한이 있어야 합니다.
  • IdP에 대한 관리자 접근 권한이 있어야 합니다.
  • IdP에 테스트 사용자 계정이 하나 이상 있어야 합니다.
  • 싱글 사인온 개념에 익숙해야 합니다.

완료 예상 시간: 20-30분

1단계: GitLab 정보 수집#

IdP에서 설정을 진행하기 전에, GitLab 그룹과 통신하는 방법을 IdP에 알려주는 연결 세부 정보를 GitLab에서 가져와야 합니다.

GitLab 정보를 수집하려면:

  1. 상단 바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 설정 > SAML SSO를 선택합니다.
  3. 다음 값을 기록합니다:
    • 식별자
    • 어설션 소비자 서비스 URL
    • GitLab 싱글 사인온 URL

2단계: IdP 애플리케이션 만들기#

GitLab 세부 정보가 준비되었으면 IdP에서 애플리케이션을 만듭니다. 이 애플리케이션은 GitLab 정보를 IdP에 매핑하고 두 시스템 간의 사용자 정보 흐름을 구성합니다.

IdP 애플리케이션을 만들려면:

  1. 관리자로 Okta에 로그인합니다.
  2. Admin Console에서 Applications > Applications를 선택합니다.
  3. Create App Integration을 선택합니다.
  4. Sign-in method 섹션에서 SAML 2.0을 선택합니다.
  5. Next를 선택합니다.
  6. General Settings 탭에서 애플리케이션 이름을 입력합니다. 예: GitLab SAML.
  7. Next를 선택합니다.
  8. Configure SAML 탭에서 1단계의 값으로 필드를 채웁니다:
    • Single sign-on URL: 어설션 소비자 서비스 URL을 입력합니다.
    • Use this for Recipient URL and Destination URL 체크박스를 선택합니다.
    • Audience URI (SP Entity ID): 식별자를 입력합니다.
  9. 이름 식별자를 구성합니다:
    • Application username (NameID): Custom을 선택하고 user.getInternalProperty("id")를 입력합니다.
    • Name ID Format: Persistent를 선택합니다.
  10. Attribute Statements (optional) 섹션에서 다음 속성을 추가합니다:
    • Name: email
    • Value: user.email
  11. Application Login Page 설정으로 스크롤합니다:
    • Login page URL: GitLab 싱글 사인온 URL을 입력합니다.
  12. Next를 선택합니다.
  13. Feedback 탭에서 사용 사례에 맞는 옵션을 선택합니다.
  14. Finish를 선택합니다.

Okta에서 SAML 애플리케이션이 만들어집니다.

Note

SAML 속성 및 고급 구성 옵션에 대한 자세한 내용은 SAML SSO 문서를 참조하세요.

  1. Microsoft Entra 관리 센터에 로그인합니다.
  2. Identity > Applications > Enterprise applications를 선택합니다.
  3. New application을 선택합니다.
  4. Create your own application을 선택합니다.
  5. 대화 상자에서 필드를 채웁니다:
    • Name: 애플리케이션 이름을 입력합니다. 이 튜토리얼에서는 GitLab SAML을 사용합니다.
    • **Integrate any other application you don't find in the gallery (Non-gallery)**를 선택합니다.
  6. Create를 선택합니다.

Microsoft Entra ID에서 엔터프라이즈 애플리케이션이 만들어집니다.

  1. 엔터프라이즈 애플리케이션에서 왼쪽 사이드바의 Single sign-on을 선택합니다.
  2. 싱글 사인온 방법으로 SAML을 선택합니다.
  3. Basic SAML Configuration 섹션에서 Edit를 선택합니다.
  4. 1단계의 값으로 필드를 채웁니다:
    • Identifier (Entity ID): 식별자를 입력합니다.
    • Reply URL (Assertion Consumer Service URL): 어설션 소비자 서비스 URL을 입력합니다.
    • Sign on URL: GitLab 싱글 사인온 URL을 입력합니다.
  5. Save를 선택합니다.
  6. User Attributes & Claims 섹션에서 Edit를 선택합니다.
  7. Add new claim을 선택하고 필드를 채웁니다:
    • Name: email을 입력합니다.
    • Source attribute: user.mail을 선택합니다.
  8. Save를 선택합니다.
  9. Unique User Identifier (Name ID) 클레임을 편집합니다:
    • 기존 Unique User Identifier 클레임을 선택합니다.
    • Source attribute: user.objectid를 선택합니다.
    • Name identifier format: Persistent를 선택합니다.
  10. Save를 선택합니다.
Note

SAML 속성 및 고급 구성 옵션에 대한 자세한 내용은 SAML SSO 문서를 참조하세요.

  1. Google 관리 콘솔에 로그인합니다.
  2. > 웹 및 모바일 앱을 선택합니다.
  3. 앱 추가 > 커스텀 SAML 앱 추가를 선택합니다.
  4. 앱 세부 정보 페이지에서 애플리케이션 이름을 입력합니다. 예: GitLab SAML.
  5. 계속을 선택합니다.
  6. Google ID 공급자 세부 정보 페이지에서 이 페이지를 열어 둡니다. 3단계에서 이 값이 필요합니다.
  7. 계속을 선택합니다.
  8. 서비스 공급자 세부 정보 페이지에서 1단계의 값으로 필드를 채웁니다:
    • ACS URL: 어설션 소비자 서비스 URL을 입력합니다.
    • 엔터티 ID: 식별자를 입력합니다.
    • 시작 URL: GitLab 싱글 사인온 URL을 입력합니다.
    • 이름 ID 형식: EMAIL을 선택합니다.
    • 이름 ID: 기본 정보 > 기본 이메일을 선택합니다.
  9. 계속을 선택합니다.
  10. 속성 매핑 페이지에서 다음 속성을 추가합니다:
    • Google 디렉터리 속성: 기본 이메일, 앱 속성: email
    • Google 디렉터리 속성: 이름, 앱 속성: first_name
    • Google 디렉터리 속성: , 앱 속성: last_name
  11. 완료를 선택합니다.

Google Workspace에서 SAML 애플리케이션이 만들어집니다.

  1. 사용자에 대해 애플리케이션을 켭니다:
    • 사용자 액세스 섹션에서 모든 사용자에 대해 켜기를 선택합니다.
    • 저장을 선택합니다.

SAML 속성 및 고급 구성 옵션에 대한 자세한 내용은 SAML SSO 문서를 참조하세요.

  1. 관리자로 OneLogin에 로그인합니다.
  2. Administration > Applications를 선택합니다.
  3. Add App을 선택합니다.
  4. **SAML Test Connector (Advanced)**를 검색하고 선택합니다.
  5. Display Name 필드에 애플리케이션 이름을 입력합니다. 예: GitLab SAML.
  6. Save를 선택합니다.
  7. Configuration 탭을 선택합니다.
  8. 1단계의 값으로 필드를 채웁니다:
    • Audience (EntityID): 식별자를 입력합니다.
    • Recipient: 어설션 소비자 서비스 URL을 입력합니다.
    • ACS (Consumer) URL Validator: 어설션 소비자 서비스 URL을 정규식으로 입력합니다. 예: https://gitlab\.com/groups/your-group/-/saml/callback.
    • ACS (Consumer) URL: 어설션 소비자 서비스 URL을 입력합니다.
    • Login URL: GitLab 싱글 사인온 URL을 입력합니다.
  9. Save를 선택합니다.
  10. Parameters 탭을 선택합니다.
  11. Add parameter를 선택하여 필수 속성을 추가합니다:
    • Field name: email, Value: Email
    • NameID에 대해 값 필드에서 OneLogin ID를 선택합니다.
  12. Save를 선택합니다.
  13. Access 탭을 선택하여 사용자 또는 역할을 애플리케이션에 할당합니다.

OneLogin에서 SAML 애플리케이션이 만들어집니다.

SAML 속성 및 고급 구성 옵션에 대한 자세한 내용은 SAML SSO 문서를 참조하세요.

  1. 관리자로 Keycloak에 로그인합니다.
  2. Clients로 이동하여 Create client를 선택합니다.
  3. General Settings 페이지에서 Client type으로 SAML을 선택합니다.
  4. 1단계의 값으로 필드를 채웁니다:
    • Client ID: 식별자를 입력합니다.
    • Valid redirect URIs: 어설션 소비자 서비스 URL을 입력합니다.
    • Assertion Consumer Service POST Binding URL: 어설션 소비자 서비스 URL을 입력합니다.
    • Home URL: GitLab 싱글 사인온 URL을 입력합니다.
  5. Save를 선택합니다.
  6. Settings 탭의 SAML capabilities 섹션에서:
    • Name ID format: persistent를 선택합니다.
    • Force name ID format 토글을 켭니다.
    • Force POST binding 토글을 켭니다.
    • Include AuthnStatement 토글을 켭니다.
  7. Signature and Encryption 섹션에서 Sign documents 토글을 켭니다.
  8. Keys 탭에서 모든 섹션이 비활성화되어 있는지 확인합니다.
  9. Client scopes 탭에서:
    • GitLab의 클라이언트 범위를 선택합니다.
    • Configure a new mapper를 선택하고 열리는 창에서 User Attribute를 선택합니다.
    • Add mapper 페이지에서 Name, User Attribute, SAML Attribute Name 필드를 email로 설정합니다.
    • Save를 선택합니다.

Keycloak에서 SAML 클라이언트가 만들어집니다.

Note

SAML 속성 및 고급 구성 옵션에 대한 자세한 내용은 SAML SSO 문서를 참조하세요.

  1. AWS IAM Identity Center 콘솔에 로그인합니다.

  2. Applications를 선택한 다음 Add application을 선택합니다.

  3. I have an application I want to set up을 선택합니다.

  4. 애플리케이션 유형으로 SAML 2.0을 선택합니다.

  5. Next를 선택합니다.

  6. Configure application 페이지에서 애플리케이션의 표시 이름을 입력합니다. 예: GitLab SAML.

  7. 1단계의 값으로 필드를 채웁니다:

    • Application ACS URL: 어설션 소비자 서비스 URL을 입력합니다.
    • Application SAML audience: 식별자를 입력합니다.
    • Application start URL: GitLab 싱글 사인온 URL을 입력합니다.
  8. Attribute mappings 아래에서 다음 속성을 구성합니다:

    • Subject: ${user:email}, Format: unspecified
    • email: ${user:email}, Format: unspecified
    • first_name: ${user:givenName}, Format: unspecified
    • last_name: ${user:familyName}, Format: unspecified

    [!note] 기존 GitLab 사용자의 인증 오류를 방지하려면 형식을 persistent 또는 transient로 설정하지 마세요.

  9. Submit을 선택합니다.

AWS IAM Identity Center에서 SAML 애플리케이션이 만들어집니다.

  1. GitLab 애플리케이션에 사용자를 할당합니다.

SAML 속성 및 고급 구성 옵션에 대한 자세한 내용은 SAML SSO 문서를 참조하세요.

Note

AWS IAM Identity Center는 기본적으로 IdP 시작 로그인을 사용합니다. 기존 GitLab 계정을 연결하려면 사용자가 GitLab 싱글 사인온 URL 또는 Application start URL에서 로그인해야 합니다.

3단계: 연결 세부 정보 수집#

이제 GitLab이 IdP로 인증 요청을 보내는 데 필요한 정보를 가져옵니다.

연결 세부 정보를 수집하려면:

  1. Okta SAML 앱에서 Sign On 탭을 선택합니다.

  2. 오른쪽에서 View SAML setup instructions를 선택합니다.

  3. Identity Provider Single Sign-On URL을 기록합니다.

  4. 인증서 지문을 생성합니다:

    1. X.509 Certificate 필드에서 텍스트를 복사하고 로컬에 저장합니다.
    2. 터미널을 열고 인증서 파일을 저장한 디렉토리로 이동합니다.
    3. 다음 명령을 실행하여 인증서 지문을 생성합니다:
       # Replace `<certificate_filename>` with the actual filename of your downloaded certificate.
       # You might need to install OpenSSL or use an alternative method to generate the fingerprint.
        openssl x509 -noout -fingerprint -sha256 -in <certificate_filename>.crt
    
  5. SHA256 Fingerprint= 이후의 지문 값을 복사합니다. 지문은 A1:B2:C3:D4:E5:F6:...와 같은 형식입니다.

  1. Entra ID 엔터프라이즈 애플리케이션에서 Single sign-on을 선택합니다.
  2. Set up GitLab SAML 섹션에서 Login URL을 기록합니다. 이 섹션의 이름은 엔터프라이즈 애플리케이션의 이름을 기반으로 합니다.
  3. SAML Signing Certificate 섹션에서 Thumbprint 값을 기록합니다. 지문은 A1B2C3D4E5F6...와 같은 형식입니다.
  1. Google Workspace SAML 앱에서 앱 세부 정보 페이지로 이동합니다.
  2. SSO URL 값을 기록합니다.
  3. 인증서에 표시된 SHA-256 지문 값을 기록합니다. 지문은 A1:B2:C3:D4:E5:F6:...와 같은 형식입니다.
  1. OneLogin SAML 앱에서 SSO 탭을 선택합니다.
  2. SAML 2.0 Endpoint (HTTP) URL을 기록합니다.
  3. X.509 Certificate 섹션에서 View Details를 선택합니다.
  4. SHA-256 Fingerprint 값을 기록합니다. 지문은 A1:B2:C3:D4:E5:F6:...와 같은 형식입니다.
  1. Keycloak SAML 클라이언트에서 Action 드롭다운 목록의 Download adapter config를 선택합니다.
  2. Download adapter config 대화 상자에서 드롭다운 목록의 mod-auth-mellon을 선택합니다.
  3. Download를 선택합니다.
  4. 다운로드한 아카이브를 압축 해제하고 idp-metadata.xml을 엽니다.
  5. <md:SingleSignOnService> 태그를 찾아 Location 속성 값을 기록합니다.
  6. 인증서 지문을 생성합니다:
    • <ds:X509Certificate> 태그를 찾아 값을 별도의 파일로 복사합니다.
    • 파일 시작 부분에 -----BEGIN CERTIFICATE-----를, 끝 부분에 -----END CERTIFICATE-----를 새 줄로 추가하여 PEM 형식으로 변환합니다.
  1. AWS IAM Identity Center SAML 앱에서 생성한 애플리케이션을 선택합니다.

  2. IAM Identity Center SAML metadata 섹션에서 IAM Identity Center sign-in URL을 기록합니다.

  3. 인증서를 다운로드합니다.

  4. 인증서 지문을 생성합니다:

    1. 터미널을 열고 인증서 파일을 저장한 디렉토리로 이동합니다.
    2. 다음 명령을 실행하여 인증서 지문을 생성합니다:
    # Replace `<certificate_filename>` with the actual filename of your downloaded certificate.
    # You might need to install OpenSSL or use an alternative method to generate the fingerprint.
    openssl x509 -noout -fingerprint -sha256 -in <certificate_filename>.pem
    
  5. SHA1 Fingerprint= 이후의 지문 값을 복사합니다. 지문은 A1:B2:C3:D4:E5:F6:...와 같은 형식입니다.

Note

AWS IAM Identity Center는 SHA1 지문이 필요합니다. 자세한 내용은 SAML SSO 문서를 참조하세요.

4단계: GitLab에서 SAML SSO 구성#

연결을 완료하는 데 필요한 모든 정보가 준비되었습니다. GitLab으로 돌아가서 연결 세부 정보를 입력하여 그룹에 SAML 인증을 켭니다.

SAML을 구성하려면:

  1. GitLab 그룹으로 돌아갑니다.
  2. 설정 > SAML SSO를 선택합니다.
  3. Configuration 섹션에서 필드를 채웁니다:
    • Identity provider single sign-on URL: 3단계의 URL을 입력합니다.
    • Certificate fingerprint: 3단계의 지문을 입력합니다.
  4. Enable SAML authentication for this group 체크박스를 선택합니다.
  5. Default membership role 드롭다운 목록에서 Minimal Access를 선택합니다.
  6. Save changes를 선택합니다.

기본 SAML 연결이 이제 구성되었습니다.

Note

기본 멤버십 권한을 임의의 권한으로 설정할 수 있습니다. 모든 새 사용자는 SAML을 통해 처음 로그인할 때 이 권한이 할당됩니다. 기본값을 Minimal Access로 설정하고 나중에 사용자를 승격하면 사용자가 너무 많은 접근 권한을 가질 위험이 줄어듭니다.

5단계: SAML 구성 테스트#

팀을 초대하기 전에 연결이 올바르게 작동하는지 확인합니다.

SAML 구성을 테스트하려면:

  1. 설정 > SAML SSO 페이지에서 Verify SAML Configuration을 선택합니다. GitLab이 IdP로 리디렉션합니다.
  2. IdP 자격 증명으로 로그인합니다.
  3. IdP가 GitLab으로 다시 리디렉션하는지 확인합니다.

오류가 발생하면 문제 해결 가이드를 참조하세요.

6단계: 전체 흐름을 테스트하기 위해 사용자 계정 연결#

구성이 잘 됩니다. 이제 팀 구성원이 IdP를 통해 GitLab에 처음 연결할 때처럼 테스트 계정을 연결하여 사용자 관점에서 경험을 테스트합니다.

사용자 계정 연결을 테스트하려면:

  1. GitLab에서 로그아웃합니다.
  2. 다른 브라우저 또는 시크릿 창에서 테스트 GitLab 계정으로 로그인합니다.
  3. 1단계에서 기록한 GitLab 싱글 사인온 URL로 이동합니다.
  4. Authorize를 선택합니다.
  5. 메시지가 표시되면 IdP 자격 증명으로 로그인합니다.
  6. GitLab 그룹으로 리디렉션되는지 확인합니다.

축하합니다! SAML ID를 GitLab 계정에 성공적으로 연결했습니다.

7단계: 선택 사항: SSO 강제 적용 켜기#

SAML 설정이 작동합니다. 선택적 마지막 단계로 SSO 강제 적용을 켤 수 있습니다. SSO 강제 적용은 모든 그룹 구성원이 IdP를 통해 인증하도록 요구하여 보안을 강화합니다. 그러나 다른 인증 방법을 통한 접근이 차단됩니다.

SSO 강제 적용을 켜려면:

  1. 상단 바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 설정 > SAML SSO를 선택합니다.
  3. Enforce SSO-only authentication for web activity for this group을 선택합니다.
  4. Save changes를 선택합니다.

강제 적용을 활성화한 후 모든 그룹 구성원은 그룹 리소스에 접근하기 전에 IdP를 통해 로그인해야 합니다.

다음 단계#

GitLab 그룹에 SAML SSO를 성공적으로 설정했습니다! 다음으로 수행할 수 있는 몇 가지 작업입니다:

문제 해결#

이 튜토리얼에서 문제가 발생하면 다음 리소스를 참조하세요:

튜토리얼: GitLab.com 그룹에 SAML SSO 설정

원문 보기
요약

이 튜토리얼에서는 Okta 또는 Microsoft Entra ID와 같은 ID 공급자(IdP)를 사용하여 GitLab.com 그룹에 SAML 싱글 사인온(SSO)을 설정하는 방법을 안내합니다. 이 튜토리얼에서는 다음을 수행합니다:

이 튜토리얼에서는 Okta 또는 Microsoft Entra ID와 같은 ID 공급자(IdP)를 사용하여 GitLab.com 그룹에 SAML 싱글 사인온(SSO)을 설정하는 방법을 안내합니다. 완료하면 그룹 구성원이 IdP를 통해 GitLab에 로그인할 수 있습니다.

이 튜토리얼에서는 다음을 수행합니다:

  1. IdP 애플리케이션을 통해 SAML을 구성합니다.
  2. GitLab 그룹에서 SAML SSO를 구성합니다.
  3. SAML 연결을 테스트합니다.
  4. 설정을 확인하기 위해 사용자 계정을 연결합니다.

시작하기 전에#

사전 요건:

  • GitLab.com의 GitLab Premium 또는 Ultimate 그룹에 대한 소유자(Owner) 권한이 있어야 합니다.
  • IdP에 대한 관리자 접근 권한이 있어야 합니다.
  • IdP에 테스트 사용자 계정이 하나 이상 있어야 합니다.
  • 싱글 사인온 개념에 익숙해야 합니다.

완료 예상 시간: 20-30분

1단계: GitLab 정보 수집#

IdP에서 설정을 진행하기 전에, GitLab 그룹과 통신하는 방법을 IdP에 알려주는 연결 세부 정보를 GitLab에서 가져와야 합니다.

GitLab 정보를 수집하려면:

  1. 상단 바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 설정 > SAML SSO를 선택합니다.
  3. 다음 값을 기록합니다:
    • 식별자
    • 어설션 소비자 서비스 URL
    • GitLab 싱글 사인온 URL

2단계: IdP 애플리케이션 만들기#

GitLab 세부 정보가 준비되었으면 IdP에서 애플리케이션을 만듭니다. 이 애플리케이션은 GitLab 정보를 IdP에 매핑하고 두 시스템 간의 사용자 정보 흐름을 구성합니다.

IdP 애플리케이션을 만들려면:

  1. 관리자로 Okta에 로그인합니다.
  2. Admin Console에서 Applications > Applications를 선택합니다.
  3. Create App Integration을 선택합니다.
  4. Sign-in method 섹션에서 SAML 2.0을 선택합니다.
  5. Next를 선택합니다.
  6. General Settings 탭에서 애플리케이션 이름을 입력합니다. 예: GitLab SAML.
  7. Next를 선택합니다.
  8. Configure SAML 탭에서 1단계의 값으로 필드를 채웁니다:
    • Single sign-on URL: 어설션 소비자 서비스 URL을 입력합니다.
    • Use this for Recipient URL and Destination URL 체크박스를 선택합니다.
    • Audience URI (SP Entity ID): 식별자를 입력합니다.
  9. 이름 식별자를 구성합니다:
    • Application username (NameID): Custom을 선택하고 user.getInternalProperty("id")를 입력합니다.
    • Name ID Format: Persistent를 선택합니다.
  10. Attribute Statements (optional) 섹션에서 다음 속성을 추가합니다:
    • Name: email
    • Value: user.email
  11. Application Login Page 설정으로 스크롤합니다:
    • Login page URL: GitLab 싱글 사인온 URL을 입력합니다.
  12. Next를 선택합니다.
  13. Feedback 탭에서 사용 사례에 맞는 옵션을 선택합니다.
  14. Finish를 선택합니다.

Okta에서 SAML 애플리케이션이 만들어집니다.

Note

SAML 속성 및 고급 구성 옵션에 대한 자세한 내용은 SAML SSO 문서를 참조하세요.

  1. Microsoft Entra 관리 센터에 로그인합니다.
  2. Identity > Applications > Enterprise applications를 선택합니다.
  3. New application을 선택합니다.
  4. Create your own application을 선택합니다.
  5. 대화 상자에서 필드를 채웁니다:
    • Name: 애플리케이션 이름을 입력합니다. 이 튜토리얼에서는 GitLab SAML을 사용합니다.
    • **Integrate any other application you don't find in the gallery (Non-gallery)**를 선택합니다.
  6. Create를 선택합니다.

Microsoft Entra ID에서 엔터프라이즈 애플리케이션이 만들어집니다.

  1. 엔터프라이즈 애플리케이션에서 왼쪽 사이드바의 Single sign-on을 선택합니다.
  2. 싱글 사인온 방법으로 SAML을 선택합니다.
  3. Basic SAML Configuration 섹션에서 Edit를 선택합니다.
  4. 1단계의 값으로 필드를 채웁니다:
    • Identifier (Entity ID): 식별자를 입력합니다.
    • Reply URL (Assertion Consumer Service URL): 어설션 소비자 서비스 URL을 입력합니다.
    • Sign on URL: GitLab 싱글 사인온 URL을 입력합니다.
  5. Save를 선택합니다.
  6. User Attributes & Claims 섹션에서 Edit를 선택합니다.
  7. Add new claim을 선택하고 필드를 채웁니다:
    • Name: email을 입력합니다.
    • Source attribute: user.mail을 선택합니다.
  8. Save를 선택합니다.
  9. Unique User Identifier (Name ID) 클레임을 편집합니다:
    • 기존 Unique User Identifier 클레임을 선택합니다.
    • Source attribute: user.objectid를 선택합니다.
    • Name identifier format: Persistent를 선택합니다.
  10. Save를 선택합니다.
Note

SAML 속성 및 고급 구성 옵션에 대한 자세한 내용은 SAML SSO 문서를 참조하세요.

  1. Google 관리 콘솔에 로그인합니다.
  2. > 웹 및 모바일 앱을 선택합니다.
  3. 앱 추가 > 커스텀 SAML 앱 추가를 선택합니다.
  4. 앱 세부 정보 페이지에서 애플리케이션 이름을 입력합니다. 예: GitLab SAML.
  5. 계속을 선택합니다.
  6. Google ID 공급자 세부 정보 페이지에서 이 페이지를 열어 둡니다. 3단계에서 이 값이 필요합니다.
  7. 계속을 선택합니다.
  8. 서비스 공급자 세부 정보 페이지에서 1단계의 값으로 필드를 채웁니다:
    • ACS URL: 어설션 소비자 서비스 URL을 입력합니다.
    • 엔터티 ID: 식별자를 입력합니다.
    • 시작 URL: GitLab 싱글 사인온 URL을 입력합니다.
    • 이름 ID 형식: EMAIL을 선택합니다.
    • 이름 ID: 기본 정보 > 기본 이메일을 선택합니다.
  9. 계속을 선택합니다.
  10. 속성 매핑 페이지에서 다음 속성을 추가합니다:
    • Google 디렉터리 속성: 기본 이메일, 앱 속성: email
    • Google 디렉터리 속성: 이름, 앱 속성: first_name
    • Google 디렉터리 속성: , 앱 속성: last_name
  11. 완료를 선택합니다.

Google Workspace에서 SAML 애플리케이션이 만들어집니다.

  1. 사용자에 대해 애플리케이션을 켭니다:
    • 사용자 액세스 섹션에서 모든 사용자에 대해 켜기를 선택합니다.
    • 저장을 선택합니다.

SAML 속성 및 고급 구성 옵션에 대한 자세한 내용은 SAML SSO 문서를 참조하세요.

  1. 관리자로 OneLogin에 로그인합니다.
  2. Administration > Applications를 선택합니다.
  3. Add App을 선택합니다.
  4. **SAML Test Connector (Advanced)**를 검색하고 선택합니다.
  5. Display Name 필드에 애플리케이션 이름을 입력합니다. 예: GitLab SAML.
  6. Save를 선택합니다.
  7. Configuration 탭을 선택합니다.
  8. 1단계의 값으로 필드를 채웁니다:
    • Audience (EntityID): 식별자를 입력합니다.
    • Recipient: 어설션 소비자 서비스 URL을 입력합니다.
    • ACS (Consumer) URL Validator: 어설션 소비자 서비스 URL을 정규식으로 입력합니다. 예: https://gitlab\.com/groups/your-group/-/saml/callback.
    • ACS (Consumer) URL: 어설션 소비자 서비스 URL을 입력합니다.
    • Login URL: GitLab 싱글 사인온 URL을 입력합니다.
  9. Save를 선택합니다.
  10. Parameters 탭을 선택합니다.
  11. Add parameter를 선택하여 필수 속성을 추가합니다:
    • Field name: email, Value: Email
    • NameID에 대해 값 필드에서 OneLogin ID를 선택합니다.
  12. Save를 선택합니다.
  13. Access 탭을 선택하여 사용자 또는 역할을 애플리케이션에 할당합니다.

OneLogin에서 SAML 애플리케이션이 만들어집니다.

SAML 속성 및 고급 구성 옵션에 대한 자세한 내용은 SAML SSO 문서를 참조하세요.

  1. 관리자로 Keycloak에 로그인합니다.
  2. Clients로 이동하여 Create client를 선택합니다.
  3. General Settings 페이지에서 Client type으로 SAML을 선택합니다.
  4. 1단계의 값으로 필드를 채웁니다:
    • Client ID: 식별자를 입력합니다.
    • Valid redirect URIs: 어설션 소비자 서비스 URL을 입력합니다.
    • Assertion Consumer Service POST Binding URL: 어설션 소비자 서비스 URL을 입력합니다.
    • Home URL: GitLab 싱글 사인온 URL을 입력합니다.
  5. Save를 선택합니다.
  6. Settings 탭의 SAML capabilities 섹션에서:
    • Name ID format: persistent를 선택합니다.
    • Force name ID format 토글을 켭니다.
    • Force POST binding 토글을 켭니다.
    • Include AuthnStatement 토글을 켭니다.
  7. Signature and Encryption 섹션에서 Sign documents 토글을 켭니다.
  8. Keys 탭에서 모든 섹션이 비활성화되어 있는지 확인합니다.
  9. Client scopes 탭에서:
    • GitLab의 클라이언트 범위를 선택합니다.
    • Configure a new mapper를 선택하고 열리는 창에서 User Attribute를 선택합니다.
    • Add mapper 페이지에서 Name, User Attribute, SAML Attribute Name 필드를 email로 설정합니다.
    • Save를 선택합니다.

Keycloak에서 SAML 클라이언트가 만들어집니다.

Note

SAML 속성 및 고급 구성 옵션에 대한 자세한 내용은 SAML SSO 문서를 참조하세요.

  1. AWS IAM Identity Center 콘솔에 로그인합니다.

  2. Applications를 선택한 다음 Add application을 선택합니다.

  3. I have an application I want to set up을 선택합니다.

  4. 애플리케이션 유형으로 SAML 2.0을 선택합니다.

  5. Next를 선택합니다.

  6. Configure application 페이지에서 애플리케이션의 표시 이름을 입력합니다. 예: GitLab SAML.

  7. 1단계의 값으로 필드를 채웁니다:

    • Application ACS URL: 어설션 소비자 서비스 URL을 입력합니다.
    • Application SAML audience: 식별자를 입력합니다.
    • Application start URL: GitLab 싱글 사인온 URL을 입력합니다.
  8. Attribute mappings 아래에서 다음 속성을 구성합니다:

    • Subject: ${user:email}, Format: unspecified
    • email: ${user:email}, Format: unspecified
    • first_name: ${user:givenName}, Format: unspecified
    • last_name: ${user:familyName}, Format: unspecified

    [!note] 기존 GitLab 사용자의 인증 오류를 방지하려면 형식을 persistent 또는 transient로 설정하지 마세요.

  9. Submit을 선택합니다.

AWS IAM Identity Center에서 SAML 애플리케이션이 만들어집니다.

  1. GitLab 애플리케이션에 사용자를 할당합니다.

SAML 속성 및 고급 구성 옵션에 대한 자세한 내용은 SAML SSO 문서를 참조하세요.

Note

AWS IAM Identity Center는 기본적으로 IdP 시작 로그인을 사용합니다. 기존 GitLab 계정을 연결하려면 사용자가 GitLab 싱글 사인온 URL 또는 Application start URL에서 로그인해야 합니다.

3단계: 연결 세부 정보 수집#

이제 GitLab이 IdP로 인증 요청을 보내는 데 필요한 정보를 가져옵니다.

연결 세부 정보를 수집하려면:

  1. Okta SAML 앱에서 Sign On 탭을 선택합니다.

  2. 오른쪽에서 View SAML setup instructions를 선택합니다.

  3. Identity Provider Single Sign-On URL을 기록합니다.

  4. 인증서 지문을 생성합니다:

    1. X.509 Certificate 필드에서 텍스트를 복사하고 로컬에 저장합니다.
    2. 터미널을 열고 인증서 파일을 저장한 디렉토리로 이동합니다.
    3. 다음 명령을 실행하여 인증서 지문을 생성합니다:
       # Replace `<certificate_filename>` with the actual filename of your downloaded certificate.
       # You might need to install OpenSSL or use an alternative method to generate the fingerprint.
        openssl x509 -noout -fingerprint -sha256 -in <certificate_filename>.crt
    
  5. SHA256 Fingerprint= 이후의 지문 값을 복사합니다. 지문은 A1:B2:C3:D4:E5:F6:...와 같은 형식입니다.

  1. Entra ID 엔터프라이즈 애플리케이션에서 Single sign-on을 선택합니다.
  2. Set up GitLab SAML 섹션에서 Login URL을 기록합니다. 이 섹션의 이름은 엔터프라이즈 애플리케이션의 이름을 기반으로 합니다.
  3. SAML Signing Certificate 섹션에서 Thumbprint 값을 기록합니다. 지문은 A1B2C3D4E5F6...와 같은 형식입니다.
  1. Google Workspace SAML 앱에서 앱 세부 정보 페이지로 이동합니다.
  2. SSO URL 값을 기록합니다.
  3. 인증서에 표시된 SHA-256 지문 값을 기록합니다. 지문은 A1:B2:C3:D4:E5:F6:...와 같은 형식입니다.
  1. OneLogin SAML 앱에서 SSO 탭을 선택합니다.
  2. SAML 2.0 Endpoint (HTTP) URL을 기록합니다.
  3. X.509 Certificate 섹션에서 View Details를 선택합니다.
  4. SHA-256 Fingerprint 값을 기록합니다. 지문은 A1:B2:C3:D4:E5:F6:...와 같은 형식입니다.
  1. Keycloak SAML 클라이언트에서 Action 드롭다운 목록의 Download adapter config를 선택합니다.
  2. Download adapter config 대화 상자에서 드롭다운 목록의 mod-auth-mellon을 선택합니다.
  3. Download를 선택합니다.
  4. 다운로드한 아카이브를 압축 해제하고 idp-metadata.xml을 엽니다.
  5. <md:SingleSignOnService> 태그를 찾아 Location 속성 값을 기록합니다.
  6. 인증서 지문을 생성합니다:
    • <ds:X509Certificate> 태그를 찾아 값을 별도의 파일로 복사합니다.
    • 파일 시작 부분에 -----BEGIN CERTIFICATE-----를, 끝 부분에 -----END CERTIFICATE-----를 새 줄로 추가하여 PEM 형식으로 변환합니다.
  1. AWS IAM Identity Center SAML 앱에서 생성한 애플리케이션을 선택합니다.

  2. IAM Identity Center SAML metadata 섹션에서 IAM Identity Center sign-in URL을 기록합니다.

  3. 인증서를 다운로드합니다.

  4. 인증서 지문을 생성합니다:

    1. 터미널을 열고 인증서 파일을 저장한 디렉토리로 이동합니다.
    2. 다음 명령을 실행하여 인증서 지문을 생성합니다:
    # Replace `<certificate_filename>` with the actual filename of your downloaded certificate.
    # You might need to install OpenSSL or use an alternative method to generate the fingerprint.
    openssl x509 -noout -fingerprint -sha256 -in <certificate_filename>.pem
    
  5. SHA1 Fingerprint= 이후의 지문 값을 복사합니다. 지문은 A1:B2:C3:D4:E5:F6:...와 같은 형식입니다.

Note

AWS IAM Identity Center는 SHA1 지문이 필요합니다. 자세한 내용은 SAML SSO 문서를 참조하세요.

4단계: GitLab에서 SAML SSO 구성#

연결을 완료하는 데 필요한 모든 정보가 준비되었습니다. GitLab으로 돌아가서 연결 세부 정보를 입력하여 그룹에 SAML 인증을 켭니다.

SAML을 구성하려면:

  1. GitLab 그룹으로 돌아갑니다.
  2. 설정 > SAML SSO를 선택합니다.
  3. Configuration 섹션에서 필드를 채웁니다:
    • Identity provider single sign-on URL: 3단계의 URL을 입력합니다.
    • Certificate fingerprint: 3단계의 지문을 입력합니다.
  4. Enable SAML authentication for this group 체크박스를 선택합니다.
  5. Default membership role 드롭다운 목록에서 Minimal Access를 선택합니다.
  6. Save changes를 선택합니다.

기본 SAML 연결이 이제 구성되었습니다.

Note

기본 멤버십 권한을 임의의 권한으로 설정할 수 있습니다. 모든 새 사용자는 SAML을 통해 처음 로그인할 때 이 권한이 할당됩니다. 기본값을 Minimal Access로 설정하고 나중에 사용자를 승격하면 사용자가 너무 많은 접근 권한을 가질 위험이 줄어듭니다.

5단계: SAML 구성 테스트#

팀을 초대하기 전에 연결이 올바르게 작동하는지 확인합니다.

SAML 구성을 테스트하려면:

  1. 설정 > SAML SSO 페이지에서 Verify SAML Configuration을 선택합니다. GitLab이 IdP로 리디렉션합니다.
  2. IdP 자격 증명으로 로그인합니다.
  3. IdP가 GitLab으로 다시 리디렉션하는지 확인합니다.

오류가 발생하면 문제 해결 가이드를 참조하세요.

6단계: 전체 흐름을 테스트하기 위해 사용자 계정 연결#

구성이 잘 됩니다. 이제 팀 구성원이 IdP를 통해 GitLab에 처음 연결할 때처럼 테스트 계정을 연결하여 사용자 관점에서 경험을 테스트합니다.

사용자 계정 연결을 테스트하려면:

  1. GitLab에서 로그아웃합니다.
  2. 다른 브라우저 또는 시크릿 창에서 테스트 GitLab 계정으로 로그인합니다.
  3. 1단계에서 기록한 GitLab 싱글 사인온 URL로 이동합니다.
  4. Authorize를 선택합니다.
  5. 메시지가 표시되면 IdP 자격 증명으로 로그인합니다.
  6. GitLab 그룹으로 리디렉션되는지 확인합니다.

축하합니다! SAML ID를 GitLab 계정에 성공적으로 연결했습니다.

7단계: 선택 사항: SSO 강제 적용 켜기#

SAML 설정이 작동합니다. 선택적 마지막 단계로 SSO 강제 적용을 켤 수 있습니다. SSO 강제 적용은 모든 그룹 구성원이 IdP를 통해 인증하도록 요구하여 보안을 강화합니다. 그러나 다른 인증 방법을 통한 접근이 차단됩니다.

SSO 강제 적용을 켜려면:

  1. 상단 바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 설정 > SAML SSO를 선택합니다.
  3. Enforce SSO-only authentication for web activity for this group을 선택합니다.
  4. Save changes를 선택합니다.

강제 적용을 활성화한 후 모든 그룹 구성원은 그룹 리소스에 접근하기 전에 IdP를 통해 로그인해야 합니다.

다음 단계#

GitLab 그룹에 SAML SSO를 성공적으로 설정했습니다! 다음으로 수행할 수 있는 몇 가지 작업입니다:

문제 해결#

이 튜토리얼에서 문제가 발생하면 다음 리소스를 참조하세요: