Наш ADFS больше не может получать информацию о ролях из Active Directory для некоторых наших пользователей. Примерно в то время, когда возникла проблема, произошло два события. Во-первых, тип утверждения привязки ADFS был изменен с WindowsAccountName на UPN. Во-вторых, наш основной контроллер домена был перестроен на новое оборудование.
Правило утверждений, которое мы используем, приведено ниже:
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> issue(store = "Active Directory", types = ("http://schemas.microsoft.com/ws/2008/06/identity/claims/role"), query = ";tokenGroups;{0}", param = c.Value);
Для некоторых пользователей это вызывает утверждение роли для каждого членства в группе, как и ожидалось, но для других утверждения ролей не выдаются, как если бы атрибут tokenGroups был пуст. Мы проверили членство в группах и даже проверили, что атрибут tokenGroups заполнен другим приложением. Другие атрибуты из Active Directory извлекаются и выдаются правильно, однако ни один из запросов на основе tokenGroup или memberOf не может вернуть информацию.
Что могло помешать получению определенного атрибута из Active Directory и только для некоторых пользователей?
Вы тестировали запрос tokengroups, используя другую учетную запись администратора домена или учетную запись службы adfs?
Если служебная учетная запись adfs не имеет необходимых прав для выполнения запросов о членстве в группе на основе разрешений, определенных для учетной записи пользователя, вы можете обнаружить, что она работает для подмножества пользователей.
Добавьте учетную запись службы adfs в группу доступа для авторизации Windows. Видеть https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/active-directory-security-groups#windows-authorization-access-group для более подробной информации о группе.