Для чего используется другой формат NameID?
В файле метаданных SAML определено несколько форматов NameID, например:
<NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
Кто-нибудь может объяснить, для чего они используются? Какие есть отличия?
4 ответа
Обратитесь к Разделу 8.3 этого базового PDF SAML спецификации SAML оазиса.
SP и IdP обычно сообщают друг другу о предмете. Этот предмет должен быть идентифицирован с помощью NAME-IDentifier, который должен быть в некотором формате, чтобы другая сторона могла легко идентифицировать его на основе этого формата.
Все эти
1.urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified [default]
2.urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
3.urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
4.urn:oasis:names:tc:SAML:2.0:nameid-format:transient
формат для идентификаторов имени.
Переходный процесс для [раздел 8.3.8 из SAML Core]
Указывает, что содержимое элемента является идентификатором с переходной семантикой и ДОЛЖНО рассматриваться полагающейся стороной как непрозрачное и временное значение.
Unspecified может использоваться, и это зависит только от реализации объектов по их собственному желанию.
Об этом, я думаю, вы можете сослаться на http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html.
Вот мое понимание об этом, с использованием варианта использования Identity Federation, чтобы дать подробные сведения об этих концепциях:
- Постоянные идентификаторы
IdP предоставляет постоянные идентификаторы, они используются для связи с локальными учетными записями в SP, но каждый из них идентифицирует себя как профиль пользователя для конкретной службы. Например, постоянные идентификаторы выглядят примерно так: johnForAir, jonhForCar, johnForHotel, все они только для одной указанной службы, так как она должна ссылаться на свою локальную идентификацию в службе.
- Переходные идентификаторы-
Переходные идентификаторы - это то, что IdP сообщает SP, что пользователям в сеансе предоставлен доступ к ресурсу на SP, но идентификаторы пользователей фактически не предлагают SP. Например, утверждение так же, как "Анонимность (Idp не сообщает SP, кто он) имеет разрешение на доступ / ресурс на SP". SP получил его и позволил браузеру получить к нему доступ, но все еще не знает настоящего имени Anonymity.
- неопределенные идентификаторы-
Объяснение этому в спецификации: "Интерпретация содержимого элемента оставлена для отдельных реализаций". Это означает, что IdP определяет реальный формат для него, и это предполагает, что SP знает, как анализировать данные формата, полученные от IdP. Например, IdP предоставляет данные в формате "UserName=XXXXX Country=US", SP получает утверждение и может проанализировать его и извлечь имя пользователя "XXXXX".
Это всего лишь подсказка для поставщика услуг о том, что ожидать от NameID, возвращенного поставщиком удостоверений. Может быть:
unspecified
emailAddress
- напримерjohn@company.com
X509SubjectName
- напримерCN=john,O=Company Ltd.,C=US
WindowsDomainQualifiedName
- напримерCompanyDomain\John
kerberos
- напримерjohn@realm
entity
- этот используется для идентификации объектов, которые предоставляют услуги на основе SAML, и выглядит как URIpersistent
- это непрозрачный специфичный для службы идентификатор, который должен включать псевдослучайное значение и не должен отслеживаться фактическим пользователем, поэтому это функция конфиденциальности.transient
- непрозрачный идентификатор, который следует рассматривать как временный.
1 и 2 соответствуют SAML 1.1, поскольку эти URI были частью стандарта OASIS SAML 1.1. Раздел 8.3 связанного PDF для стандарта OASIS SAML 2.0 объясняет это:
Где возможно существующий URN используется для указания протокола. В случае протоколов IETF используется URN самого последнего RFC, который определяет протокол. Ссылки URI, созданные специально для SAML, имеют одно из следующих основ в соответствии с версией набора спецификаций, в которой они были впервые представлены:
urn:oasis:names:tc:SAML:1.0: urn:oasis:names:tc:SAML:1.1: urn:oasis:names:tc:SAML:2.0: