Skip to main content

Справочник по конфигурации SAML

Вы можете просмотреть метаданные SAML для ваше предприятие на GitHub AE, а также узнать больше о доступных атрибутах SAML и требованиях к ответу.

Сведения о конфигурации SAML

Чтобы использовать единый вход SAML для проверки подлинности в GitHub AE, Необходимо настроить внешний поставщик удостоверений SAML (IdP) и ваше предприятие на GitHub AE. В конфигурации SAML GitHub AE используется как поставщик услуг (SP) SAML.

Вы должны ввести уникальные значения из вашего SAML IdP при настройке SAML SSO для GitHub AE, а также вы должны ввести уникальные значения из GitHub AE в вашем IdP. Дополнительные сведения о настройке единого входа SAML для GitHub AE см. в разделах Настройка единого входа SAML для вашего предприятия.

Метаданные SAML

Метаданные SP для вашего предприятия на GitHub AE доступны по адресу https://HOSTNAME/saml/metadata, где HOSTNAME — это имя узла вашего предприятия в GitHub AE. В GitHub AE используется привязка urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST.

ЗначениеДругие названияОписаниеПример
Идентификатор сущности SPURL-адрес SP, ограничение аудиторииURL-адрес верхнего уровня для GitHub AEhttps://HOSTNAME
URL-адрес службы контроля доступа (ACS)URL-адрес ответа, получателя или назначенияURL-адрес, с которого IdP отправляет ответы SAMLhttps://HOSTNAME/saml/consume
URL-адрес единого входа SPURL-адрес, по которому IdP начинает единый входhttps://HOSTNAME/sso

Атрибуты SAML

Следующие атрибуты SAML доступны для GitHub AE.

ИмяНеобходим?Описание
NameIDДаПостоянный идентификатор пользователя. Можно использовать любой формат идентификатора постоянного имени. GitHub AE нормализует элемент NameID для использования в качестве имени пользователя, если не указано одно из альтернативных утверждений. Дополнительные сведения см. в разделе Рекомендации по использованию имени пользователя для внешней проверки подлинности.

Примечание. Важно, чтобы идентификатор был понятным человеку и постоянным. Переменный формат идентификатора, например urn:oasis:names:tc:SAML:2.0:nameid-format:transient, приведет к повторной привязке учетных записей при каждом входе, что может затруднить управление авторизацией.
SessionNotOnOrAfterНетДата, когда GitHub 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> в корневом документе ответа и обеспечить соответствие URL-адресу ACS, только если корневой документ ответа подписан. Если ваш IdP подпишет утверждение, GitHub AE проигнорирует это утверждение.

  • Ваш IdP всегда должен предоставлять элемент <Audience> как часть элемента <AudienceRestriction>. Значение должно совпадать с вашим EntityId для GitHub AE.{ % ifversion ghes or ghae %} Это значение представляет собой URL-адрес, по которому вы обращаетесь к your enterprise, например https://SUBDOMAIN.githubenterprise.com, https://SUBDOMAIN.github.usили https://SUBDOMAIN.ghe.com.{ % endif %}

  • Ваш IdP должен защищать каждое утверждение в ответе цифровой подписью. Это можно сделать, подписав каждый отдельный элемент <Assertion> или подписав элемент <Response>.

  • IdP должен предоставить элемент <NameID> как часть элемента <Subject>. Вы можете использовать любой формат идентификатора постоянного имени.

  • Ваш IdP должен включать атрибут Recipient, который должен быть настроен с URL-адресом ACS. В следующем примере демонстрируется атрибут.

    <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>
    

Длительность сеанса и время ожидания

Чтобы предотвратить проверку подлинности пользователя с вашим поставщиком удостоверений и авторизации на неопределенный срок, GitHub AE периодически делает сеанс недействительным для каждой учетной записи пользователя с доступом к ресурсам вашего предприятия. После этого пользователь должен снова выполнить проверку подлинности с помощью IdP. По умолчанию, если ваш IdP не утверждает значение атрибута SessionNotOnOrAfter, GitHub AE делает сеанс недействительным на одну неделю после успешной проверки подлинности с использованием вашего IdP.

Чтобы настроить длительность сеанса, можно определить значение атрибута SessionNotOnOrAfter в IdP. Если вы укажете значение менее 24 часов, GitHub AE может предлагать пользователям выполнять проверку подлинности каждый раз, когда GitHub AE инициирует перенаправление.

Примечания

  • Для Azure AD настраиваемая политика времени жизни для токенов SAML не контролирует время ожидания сеанса для GitHub AE.
  • Сейчас Okta не отправляет атрибут SessionNotOnOrAfter во время проверки подлинности SAML с GitHub AE. Чтобы получить дополнительные сведения, обратитесь в Okta.