В этом примере показано, как использовать serviceAuthorization>, чтобы разрешить использование< атрибута PrincipalPermissionAttribute для авторизации доступа к операциям службы. Этот пример основан на примере "Начало работы ". Служба и клиент настроены с помощью wsHttpBinding>.< Для mode атрибута< безопасности> задано Message значение и clientCredentialType задано значение Windows. К каждому методу службы применяется PrincipalPermissionAttribute и используется для ограничения доступа к каждой операции. Чтобы получить доступ к каждой операции, вызывающий объект должен быть администратором Windows.
В этом образце клиентом является консольное приложение (EXE), а служба размещается в службах IIS.
Примечание
Процедура настройки и инструкции по построению для данного образца приведены в конце этого раздела.
Файл конфигурации службы использует serviceAuthorization> для задания атрибутаprincipalPermissionMode:<
<behaviors>
<serviceBehaviors>
<behavior>
<!-- The serviceAuthorization behavior sets the
principalPermissionMode to UseWindowsGroups.
This puts a WindowsPrincipal on the current thread when a
service is invoked. -->
<serviceAuthorization principalPermissionMode="UseWindowsGroups" />
</behavior>
</serviceBehaviors>
</behaviors>
Настройка principalPermissionMode как UseWindowsGroups позволяет использовать PrincipalPermissionAttribute на основе имен групп Windows.
PrincipalPermissionAttribute применяется к каждой операции, чтобы вызывающий объект входил в группу администраторов Windows, как показано в следующем образце кода.
[PrincipalPermission(SecurityAction.Demand,
Role = "Builtin\\Administrators")]
public double Add(double n1, double n2)
{
double result = n1 + n2;
return result;
}
При выполнении примера запросы и ответы операций отображаются в окне консоли клиента. Клиент успешно связывается с каждой операцией, если он работает в учетной записи, входящей в группу «Администраторы». В противном случае доступ запрещен. Чтобы поэкспериментировать со сбоем авторизации, запустите клиент в учетной записи, не входящей в группу "Администраторы". Чтобы закрыть клиент, нажмите клавишу ВВОД в окне консоли.
Продемонстрировать функции идентификатора Microsoft Entra для модернизации решений удостоверений, реализации гибридных решений и реализации управления удостоверениями.
В этой статье приводятся решения проблемы, в которой вы проходите проверку подлинности через NTLM вместо Kerberos и не можете делегировать при вызове службы WCF, которая использует привязку net.tcp с транспортной безопасностью, учетными данными транспорта Windows и имеет уровень защиты, равный ни одному.