예제 그룹 SAML 및 SCIM 구성

Tier: Premium, Ultimate Offering: GitLab.com

이 문서는 GitLab 지원 팀이 문제를 해결하는 동안 사용되는 그룹 SAML 및 SCIM에 관한 노트 및 스크린샷으로, 공식 문서에 적합하지 않은 내용입니다. GitLab은 이를 공개하여 누구나 지원 팀이 수집한 지식을 활용할 수 있도록 하고 있습니다.

GitLab 그룹 SAML 문서를 참조하여 기능에 대한 정보와 설정 방법을 확인하세요.

SAML 구성 문제를 해결할 때 GitLab 팀원들은 자주 SAML 문제 해결 섹션에서 시작할 것입니다.

그들은 이후 원하는 아이덴티티 공급자의 테스트 구성을 설정할 수 있습니다. 이 섹션에는 예제 스크린샷이 포함되어 있습니다.

SAML 및 SCIM 스크린샷

이 섹션에는 그룹 SAML그룹 SCIM의 다음 예제 구성과 관련된 스크린샷이 포함되어 있습니다:

caution
이 스크린샷은 GitLab Support가 필요할 때만 업데이트됩니다. 이들은 공식 문서가 아닙니다.

현재 GitLab에서 문제가 발생하고 있는 경우 지원 옵션을 확인할 수 있습니다.

Azure Active Directory

이 섹션에는 Azure Active Directory 구성 요소에 대한 스크린샷이 있습니다.

기본 SAML 앱 구성

Azure AD 기본 SAML

사용자 클레임 및 속성

Azure AD 사용자 클레임

SCIM 매핑

프로비저닝:

Azure AD SCIM 프로비저닝

속성 매핑

Azure AD SCIM 속성 매핑

그룹 동기화

Azure 그룹 클레임

Group ID 소스 속성을 사용하는 경우 사용자는 SAML 그룹 링크를 구성할 때 그룹 ID 또는 객체 ID를 입력해야 합니다.

가능한 경우 사용자 친화적인 그룹 이름을 대신 추가할 수 있습니다. Azure 그룹 클레임을 설정할 때:

  1. sAMAccountName 소스 속성을 선택합니다.
  2. 그룹 이름을 입력합니다. 최대 256자 길이의 이름을 지정할 수 있습니다.
  3. 속성이 주장에 포함되도록 클라우드 전용 그룹에 대한 그룹 이름 발급을 선택합니다.

Azure는 SAML 응답에서 보낼 수 있는 그룹 수를 150개로 제한합니다. 사용자가 150개 이상의 그룹의 구성원인 경우 Azure는 해당 사용자의 그룹 클레임을 SAML 응답에 포함하지 않습니다.

Google Workspace

기본 SAML 앱 구성

Google Workspace 기본 SAML

사용자 클레임 및 속성

Google Workspace 사용자 클레임

IdP 링크 및 인증서

note
Google Workspace는 SHA256 지문을 표시합니다. GitLab에서 SAML을 구성하기 위해 필요한 SHA1 지문을 가져오려면 인증서를 다운로드하고 SHA1 인증서 지문을 계산하십시오.

Google Workspace 링크 및 인증서

Okta

GitLab.com 그룹을 위한 기본 SAML 앱 구성

Okta 기본 SAML

GitLab 자체 관리용 기본 SAML 앱 구성

Okta 관리 패널 보기

사용자 클레임 및 속성

Okta 속성

그룹 동기화

Okta 그룹 속성

고급 SAML 앱 설정 (기본값)

Okta 고급 설정

IdP 링크 및 인증서

Okta 링크 및 인증서

SAML 로그인 설정

Okta SAML 설정

SCIM 설정

새로 프로비저닝된 사용자의 사용자 이름을 SCIM 앱 할당 시 설정합니다:

Okta에서 사용자에게 SCIM 앱 할당

OneLogin

기본 SAML 앱 구성

OneLogin 애플리케이션 세부정보

매개변수

OneLogin 애플리케이션 세부정보

사용자 추가

OneLogin 사용자 추가

SSO 설정

OneLogin SSO 설정

SAML 응답 예시

사용자가 SAML을 사용하여 로그인할 때, GitLab은 SAML 응답을 수신합니다. SAML 응답은 production.log 로그에서 base64로 인코딩된 메시지를 찾을 수 있습니다. 응답을 찾으려면 SAMLResponse를 검색하세요. 디코딩된 SAML 응답은 XML 형식입니다. 예를 들어:

<?xml version="1.0" encoding="UTF-8"?>
<saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:xs="http://www.w3.org/2001/XMLSchema" Destination="https://gitlabexample/-/saml/callback" ID="id4898983630840142426821432" InResponseTo="_c65e4c88-9425-4472-b42c-37f4186ac0ee" IssueInstant="2022-05-30T21:30:35.696Z" Version="2.0">
 <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">http://www.okta.com/exk2y6j57o1Pdr2lI8qh7</saml2:Issuer>
 <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
   <ds:SignedInfo>
     <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
     <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
     <ds:Reference URI="#id4898983630840142426821432">
       <ds:Transforms>
         <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
         <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
           <ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="xs"/>
         </ds:Transform>
       </ds:Transforms>
       <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
       <ds:DigestValue>neiQvv9d3OgS4GZW8Nptp4JhjpKs3GCefibn+vmRgk4=</ds:DigestValue>
     </ds:Reference>
   </ds:SignedInfo>
   <ds:SignatureValue>dMsQX8ivi...HMuKGhyLRvabGU6CuPrf7==</ds:SignatureValue>
   <ds:KeyInfo>
     <ds:X509Data>
       <ds:X509Certificate>MIIDq...cptGr3vN9TQ==</ds:X509Certificate>
     </ds:X509Data>
   </ds:KeyInfo>
 </ds:Signature>
 <saml2p:Status xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
   <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
 </saml2p:Status>
 <saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xs="http://www.w3.org/2001/XMLSchema" ID="id489" IssueInstant="2022-05-30T21:30:35.696Z" Version="2.0">
   <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">http://www.okta.com/exk2y6j57o1Pdr2lI8qh7</saml2:Issuer>
   <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
     <ds:SignedInfo>
       <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
       <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
       <ds:Reference URI="#id48989836309833801859473359">
         <ds:Transforms>
           <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
           <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
             <ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="xs"/>
           </ds:Transform>
         </ds:Transforms>
         <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
         <ds:DigestValue>MaIsoi8hbT9gsi/mNZsz449mUuAcuEWY0q3bc4asOQs=</ds:DigestValue>
       </ds:Reference>
     </ds:SignedInfo>
     <ds:SignatureValue>dMsQX8ivi...HMuKGhyLRvabGU6CuPrf7==<</ds:SignatureValue>
     <ds:KeyInfo>
       <ds:X509Data>
         <ds:X509Certificate>MIIDq...cptGr3vN9TQ==</ds:X509Certificate>
       </ds:X509Data>
     </ds:KeyInfo>
   </ds:Signature>
   <saml2:Subject xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
     <saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">useremail@domain.com</saml2:NameID>
     <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
       <saml2:SubjectConfirmationData InResponseTo="_c65e4c88-9425-4472-b42c-37f4186ac0ee" NotOnOrAfter="2022-05-30T21:35:35.696Z" Recipient="https://gitlab.example.com/-/saml/callback"/>
     </saml2:SubjectConfirmation>
   </saml2:Subject>
   <saml2:Conditions xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" NotBefore="2022-05-30T21:25:35.696Z" NotOnOrAfter="2022-05-30T21:35:35.696Z">
     <saml2:AudienceRestriction>
       <saml2:Audience>https://gitlab.example.com/</saml2:Audience>
     </saml2:AudienceRestriction>
   </saml2:Conditions>
   <saml2:AuthnStatement xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" AuthnInstant="2022-05-30T21:30:35.696Z" SessionIndex="_c65e4c88-9425-4472-b42c-37f4186ac0ee">
     <saml2:AuthnContext>
       <saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml2:AuthnContextClassRef>
     </saml2:AuthnContext>
   </saml2:AuthnStatement>
   <saml2:AttributeStatement xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
     <saml2:Attribute Name="email" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
       <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">useremail@domain.com</saml2:AttributeValue>
     </saml2:Attribute>
     <saml2:Attribute Name="firtname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
       <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">John</saml2:AttributeValue>
     </saml2:Attribute>
     <saml2:Attribute Name="lastname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
       <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Doe</saml2:AttributeValue>
     </saml2:Attribute>
     <saml2:Attribute Name="Groups" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
       <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Super-awesome-group</saml2:AttributeValue>
     </saml2:Attribute>
   </saml2:AttributeStatement>
 </saml2:Assertion>
</saml2p:Response>