Skip to main content
설명서에 자주 업데이트를 게시하며 이 페이지의 번역이 계속 진행 중일 수 있습니다. 최신 정보는 영어 설명서를 참조하세요.
GitHub AE는 현재 제한된 릴리스에 있습니다.

SAML 구성 참조

You can see SAML metadata for your enterprise on GitHub AE, and you can learn more about available SAML attributes and response requirements.

SAML 구성 정보

GitHub AE에 대한 인증에 SAML SSO(Single Sign-On)를 사용하려면 외부 IDP(SAML ID 공급자)와 GitHub AE에서 엔터프라이즈 또는 조직을 모두 구성해야 합니다. SAML 구성에서 GitHub AE은 SAML SP(Service Provider)로 작동합니다.

GitHub AE에 SAML SSO를 구성할 때는 SAML IdP의 고유한 값을 입력해야 하며, IdP의 GitHub AE에 있는 고유한 값도 입력해야 합니다. GitHub AE의 SAML SSO 구성에 대한 자세한 내용은 "엔터프라이즈에 대한 SAML Single Sign-On 구성"를 참조하세요

SAML 메타데이터

GitHub AE에 있는 조직의 SP 메타데이터는 https://HOSTNAME/saml/metadata에서 사용할 수 있습니다. 여기서 HOSTNAME은 GitHub AE에 있는 조직의 호스트 이름입니다. GitHub AE에서는 urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST 바인딩을 사용합니다.

기타 이름설명예제
SP 엔터티 IDSP URL, 대상 그룹 제한GitHub AE의 최상위 URLhttps://HOSTNAME
SP 어설션 소비자 서비스(ACS) URL회신, 수신자 또는 대상 URLIdP가 SAML 응답을 보내는 URLhttps://HOSTNAME/saml/consume
SP SSO(Single Sign-On) URLIdP가 SSO로 시작하는 URLhttps://HOSTNAME/sso

SAML 특성

다음은 GitHub AE에 사용할 수 있는 SAML 특성입니다.

Name필수 여부설명
NameID영구 사용자 식별자입니다. 영구 이름 식별자 형식을 사용할 수 있습니다. GitHub AE은 사용자 이름으로 사용할 NameID 요소를 정규화합니다. 자세한 내용은 "외부 인증에 대한 사용자 이름 고려 사항"을 참조하세요.

참고: 사람이 읽을 수 있는 영구 식별자를 사용하는 것이 중요합니다. 임시 식별자 형식(예:urn:oasis:names:tc:SAML:2.0:nameid-format:transient)을 사용하면 로그인할 때마다 계정이 다시 연결되므로 권한 부여 관리에 악영향을 미칠 수 있습니다.
SessionNotOnOrAfterNoGitHub AE에서 연결된 세션을 무효화하는 날짜입니다. 무효화 후 사용자는 엔터프라이즈 리소스에 액세스하기 위해 다시 한 번 인증해야 합니다. 자세한 내용은 "세션 기간 및 시간 제한"을 참조하세요.

특성에 대해 둘 이상의 값을 지정하려면 여러 <saml2:AttributeValue> 요소를 사용합니다.

<saml2:Attribute FriendlyName="public_keys" Name="urn:oid:1.2.840.113549.1.1.1" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
    <saml2:AttributeValue>ssh-rsa LONG KEY</saml2:AttributeValue>
    <saml2:AttributeValue>ssh-rsa LONG KEY 2</saml2:AttributeValue>
</saml2:Attribute>

SAML 응답 요구 사항

GitHub AE에서는 IdP의 응답 메시지가 다음 요구 사항을 충족할 것을 요구합니다.

  • IdP는 루트 응답 문서의 <Destination> 요소에서 제공되고 루트 응답 문서에 서명된 경우에만 ACS URL과 일치해야 합니다. IdP가 어설션에 서명하면 GitHub AE은 어설션을 무시합니다.

  • IdP는 항상 <Audience> 요소를 <AudienceRestriction> 요소의 일부로 제공해야 합니다. 값이 GitHub AE에 대해 일치 EntityId 해야 합니다.{ % ifversion ghes or ghae %} 이 값은 , 또는 https://SUBDOMAIN.ghe.com``http(s)://HOSTNAME와 같은 엔터프라이즈에 액세스하는 URL입니다. % endif %}

  • IdP에서 디지털 서명을 사용하여 응답에 있는 각 어설션을 보호해야 합니다. 각 개별 <Assertion> 요소에 서명하거나 <Response> 요소에 서명하여 디지털 서명으로 보호할 수 있습니다.

  • IdP에서 <NameID> 요소를 <Subject> 요소의 일부로 제공해야 합니다. 모든 영구 이름 식별자 형식을 사용할 수 있습니다.

  • IdP에는 ACS URL로 설정해야 하는 Recipient 특성이 포함되어야 합니다. 다음 예제에서는 이 특성을 확인할 수 있습니다.

    <samlp:Response ...>
      <saml:Assertion ...>
        <saml:Subject>
          <saml:NameID ...>...</saml:NameID>
          <saml:SubjectConfirmation ...>
            <saml:SubjectConfirmationData Recipient="https://SUBDOMAIN.ghe.com/saml/consume" .../>
          </saml:SubjectConfirmation>
        </saml:Subject>
        <saml:AttributeStatement>
          <saml:Attribute FriendlyName="USERNAME-ATTRIBUTE" ...>
            <saml:AttributeValue>monalisa</saml:AttributeValue>
          </saml:Attribute>
        </saml:AttributeStatement>
      </saml:Assertion>
    </samlp:Response>
    

세션 기간 및 시간 제한

사용자가 IdP에 인증하고 권한이 무기한 유지되지 않도록 하기 위해 GitHub AE는 엔터프라이즈 리소스에 액세스할 수 있는 각 사용자 계정에 대한 세션을 주기적으로 무효화합니다. 무효화되면 사용자는 IdP를 다시 한 번 인증해야 합니다. 기본적으로 IdP에서 SessionNotOnOrAfter 특성에 대한 값을 어설션하지 않는 경우 GitHub AE에서는 IdP를 이용해 인증에 성공한 후 1주일이 지나면 세션을 무효화합니다.

세션 기간을 사용자 지정하려면 IdP에서 SessionNotOnOrAfter 특성의 값을 정의하면 됩니다. 24시간 미만의 값을 정의하면 GitHub AE은 GitHub AE에서는 리디렉션을 시작할 때마다 인증 메시지를 표시할 수 있습니다.

참고:

  • Azure AD 경우 SAML 토큰에 대한 구성 가능한 수명 정책은 GitHub AE에 대한 세션 시간 제한을 제어하지 않습니다.
  • OKTA에서는 현재 GitHub AE을 사용한 SAML 인증 과정에서 SessionNotOnOrAfter 특성을 보내지 않습니다. 자세한 내용은 OKTA에 문의하세요.