Сведения о конфигурации 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
.
Значение | Другие названия | Описание | Пример |
---|---|---|---|
Идентификатор сущности SP | URL-адрес SP, ограничение аудитории | URL-адрес верхнего уровня для GitHub AE | https://HOSTNAME |
URL-адрес службы контроля доступа (ACS) | URL-адрес ответа, получателя или назначения | URL-адрес, с которого IdP отправляет ответы SAML | https://HOSTNAME/saml/consume |
URL-адрес единого входа SP | URL-адрес, по которому IdP начинает единый вход | https://HOSTNAME/sso |
Атрибуты SAML
Для GitHub AE доступны следующие атрибуты SAML.
Имя | Обязательно | Описание |
---|---|---|
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-адресом, по которому вы обращаетесь к ваше предприятие, например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.