Настройка ADFS для передачи SID в качестве заявки
У меня есть система, в которой мы используем ADFS в качестве поставщика удостоверений, чтобы обеспечить единый вход с помощью WIF-приложения.NET. Все работает хорошо, и мы можем передавать все заявки по мере необходимости, например, вот правило для передачи фамилии:
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
Issuer == "AD AUTHORITY"]
=> issue(store = "Active Directory",
types = ("http://example.com/identity/claims/portal/lastname"),
query = ";sn;{0}", param = c.Value);
Однако теперь мне нужно добавить два правила, с которыми у меня возникли проблемы: первое - передать SID, а другое - передать имя учетной записи SAM (домен \ пользователь). Их нет в предопределенном списке в мастере настройки утверждений ADFS, и я пытался написать собственные правила для них, но я не могу заставить их работать.
Не могли бы вы указать мне, как я могу извлечь эти свойства, если это действительно возможно?
Я приношу свои извинения. Если я испортил какую-то номенклатуру, я обычно работаю над тем, что происходит в AD, только если у меня нет другого выбора:) Все исправления приветствуются.
2 ответа
Передайте идентификатор объекта вместо SID, чтобы получить действительно неизменный идентификатор для объекта AD.
Что-то похожее:
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"), query = ";objectGUID;{0}", param = c.Value);
Хорошо, мне удалось выяснить это, после нахождения этой страницы. Я в основном использовал неправильные имена атрибутов, в моем случае я должен был использовать objectSid
а также sAMAccountName
, К моему удивлению, последний также не имеет доменной части. Таким образом, в случае, если это поможет кому-то еще, вот пример правила передачи SID в качестве утверждения:
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
Issuer == "AD AUTHORITY"]
=> issue(store = "Active Directory",
types = ("http://example.com/identity/claims/portal/lastname"),
query = ";objectSid;{0}", param = c.Value);