Настройка 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);
Другие вопросы по тегам