Рейтинг:1

АДФС. Чтобы вернуть `домен\пользователь`, необходимо третье лицо в правиле True Claim.

флаг ve
Tim

Я настроил доверие поставщика утверждений в ADFS и получаю только Электронное письмо в Идентификатор имени. Я не могу вносить изменения в Доверительный фонд стороннего поставщика претензий, поэтому я должен получить WindowsAccountName используя адрес электронной почты, который я получил в NameID от стороннего IDP, и перенаправить его в Outlook Web Access (локально).

Я обнаружил, что при использовании следующего правила утверждения вход работает, но только в том случае, если имя участника-пользователя и адрес электронной почты совпадают. Если между ними есть различия (например, sAMAccountName=jdoe; [email protected]; Email=Джонатан Доу@contoso.com), значение, пересылаемое в Exchange, вызывает ошибку.

c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Свойства["http://schemas.xmlsoap.org/ws/2005/05/identity /claimproperties/format"] == "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"]
 => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer = "AD AUTHORITY", OriginalIssuer = c.OriginalIssuer, Value = regexreplace(c.Value , "(?<user>[^\@]+)\@(.+)", "contoso\${user}"), ValueType = c.ValueType);

Как я могу найти пользователя по его адресу электронной почты и вернуть егоWindowsAccountName в домен\имя пользователя формат?

Рейтинг:1
флаг ve
Tim

Если кто столкнется с этой проблемой. Вам нужны два правила.

Правило № 1: sAMAccountName для временного Это говорит ADFS искать в ActiveDirectory и возвращать все учетные записи, для которых совпадает имя участника-пользователя или адрес электронной почты. Затем правило сохраняет значение во временную переменную, которую мы будем использовать в следующем правиле.

c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Свойства["http://schemas.xmlsoap.org/ws/2005/05/identity /claimproperties/format"] == "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"]
 => issue(store = "Active Directory", types = ("claims:temp/attribute1"), query = "(&(objectCategory=person)(objectClass=user)(|(userPrincipalName={0})(mail= {0})));sAMAccountName;contoso\adfs_service_account", param = c.Value);

NB. contoso\adfs_service_account это важно. Это необходимо ADFS для автоматического обнаружения контроллера домена. Используйте ЛЮБУЮ учетную запись AD, если это реальная учетная запись.

Правило № 2: временное значение для WindowsAccountName Приведенное выше правило возвращает только имя sAMAccountName, а не домен. В моем случае у меня был только один домен. Таким образом, я жестко закодировал его ниже.

c:[Type == "claims:temp/attribute1"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer = "AD AUTHORITY" , OriginalIssuer = "https://contoso.verify.ibm.com/saml/sps/saml20ip/saml20", Value = "contoso\" + c.Value);

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.