Я учусь и проектирую сервис WCF.Я решил использовать учетные данные Windows в качестве метода проверки подлинности и надеюсь, что настроил их правильно, потому что вижу журнал аудита проверки подлинности из средства просмотра журнала событий при тестировании своей службы, размещенной на локальном компьютере.
Но теперь у меня возникает странный вопрос: какие пользователи не будут проходить аутентификацию при такой конфигурации?Проверяет ли моя служба всех пользователей Windows в одном домене Windows, или я могу указать, какие конкретные пользователи в моем домене будут / не будут проходить проверку подлинности?
Или это означает, что я могу контролировать только тех пользователей (вмой домен) может ли выполнять какие операции мой сервис предоставляет через авторизацию (что я знаю, как делать)?
Звучит просто, но весь найденный материал говорит только о том, как выполнить аутентификацию, но не говорит, какчтобы отклонить запрос аутентификации.
Обновление: после прочтения ответа @syneptody у меня все еще есть два вопроса:
- Я должен сказать, что моя путаница между аутентификацией и авторизацией все еще существует.Аутентификация означает идентификацию пользователя.Но если я хочу сказать пользователю, принадлежащему к тому же домену, что и узел службы (кстати, это IIS), который просто делает запрос в мою службу, «вы не аутентифицированы», то я действительно должен сказать «яаутентифицировать вас, но вы не авторизованы (для выполнения вашего запроса) ", правильно?В моем домене нет статуса "Не аутентифицирован" для пользователя?А что если пользователь, не принадлежащий моему домену, сделает запрос?Мой сервис скажет ему "Вы не авторизованы" или "Вы не авторизованы"?До тех пор, пока у этого пользователя есть личность, служба будет аутентифицировать его и продолжать расследовать, нужно ли его авторизовать?
- @ syneptody упомянул об этом элементе «авторизации».Он принадлежит ASP.NET и определяет, какие роли могут / не могут получить доступ к ресурсу (будь то веб-сайт или приложение, размещенное на веб-сайте, в зависимости от того, в каком файле Web.config он находится).Это правильно?Но что, если я не использую ASP.NET или не размещу WCF в режиме совместимости ASP.NET, он все равно будет работать?На самом деле требование для нас - предоставлять только сервис, поэтому я не думал об использовании ASP.NET, потому что, на мой взгляд, это больше похоже на веб-клиент, потребляющий мой сервис.Кстати, мой сценарий использования заключается в том, что этот сервис будет размещаться и использоваться в интрасети.Поэтому я выбираю учетные данные Windows для аутентификации и группы Windows для авторизации на основе ролей, поскольку, на мой взгляд, это требует минимальных усилий.