WCF ile Temsilcilik ve Kimliğe Bürünme
Kimliğe bürünme, hizmetlerin hizmet etki alanının kaynaklarına istemci erişimini kısıtlamak için kullandığı yaygın bir tekniktir. Hizmet etki alanı kaynakları, yerel dosyalar (kimliğe bürünme) gibi makine kaynakları veya dosya paylaşımı (temsilci) gibi başka bir makinedeki bir kaynak olabilir. Örnek bir uygulama için bkz . İstemcinin Kimliğine Bürünme. Kimliğe bürünme özelliğini kullanma örneği için bkz . Nasıl yapılır: Hizmette İstemcinin Kimliğine Bürünme.
Önemli
Bir hizmette bir istemcinin kimliğine bürünürken hizmetin istemcinin kimlik bilgileriyle çalıştığını ve bunun sunucu işleminden daha yüksek ayrıcalıklara sahip olabileceğini unutmayın.
Genel bakış
Genellikle, istemciler hizmetin istemci adına bazı eylemler gerçekleştirmesini sağlamak için bir hizmeti çağırır. Kimliğe bürünme, hizmetin eylemi gerçekleştirirken istemci olarak davranmasına olanak tanır. Temsilci seçme, ön uç hizmetinin istemcinin isteğini, arka uç hizmetinin de istemcinin kimliğine bürünebileceği şekilde bir arka uç hizmetine iletmesine olanak tanır. Kimliğe bürünme en yaygın olarak istemcinin belirli bir eylemi gerçekleştirme yetkisine sahip olup olmadığını denetlemenin bir yolu olarak kullanılırken, temsilci seçme, istemcinin kimliğiyle birlikte bir arka uç hizmetine kimliğe bürünme özelliklerini de akan bir yöntemdir. Temsilci seçme, Kerberos tabanlı kimlik doğrulaması gerçekleştirildiğinde kullanılabilecek bir Windows etki alanı özelliğidir. Temsilci seçme, kimlik akışından farklıdır ve temsilci seçme, istemcinin parolasına sahip olmadan istemcinin kimliğine bürünme özelliğini aktardığından, kimlik akışından çok daha yüksek ayrıcalıklı bir işlemdir.
Hem kimliğe bürünme hem de temsilci seçme, istemcinin bir Windows kimliğine sahip olmasını gerektirir. bir istemci bir Windows kimliğine sahip değilse, kullanılabilir tek seçenek istemcinin kimliğini ikinci hizmete akışla göndermektir.
Kimliğe Bürünme Temelleri
Windows Communication Foundation (WCF), çeşitli istemci kimlik bilgileri için kimliğe bürünme özelliğini destekler. Bu konuda, bir hizmet yönteminin uygulanması sırasında çağıranın kimliğine bürünmek için hizmet modeli desteği açıklanmaktadır. Ayrıca, bu senaryolarda kimliğe bürünme ve SOAP güvenliği ile WCF seçeneklerini içeren yaygın dağıtım senaryoları da ele alınıyor.
Bu konu, SOAP güvenliği kullanılırken WCF'de kimliğe bürünme ve temsilci seçme konularına odaklanır. Taşıma Güvenliği ile Kimliğe Bürünme kullanma bölümünde açıklandığı gibi, aktarım güvenliğini kullanırken WCF ile kimliğe bürünme ve temsilci seçme özelliğini de kullanabilirsiniz.
İki Yöntem
WCF SOAP güvenliği, kimliğe bürünme gerçekleştirmek için iki farklı yönteme sahiptir. Kullanılan yöntem bağlamaya bağlıdır. Bunlardan biri, Güvenlik Desteği Sağlayıcısı Arabirimi'nden (SSPI) alınan bir Windows belirtecinden veya daha sonra hizmette önbelleğe alınan Kerberos kimlik doğrulamasından gelen kimliğe bürünmedir. İkincisi, Kerberos uzantılarından alınan ve toplu olarak Kullanıcı için Hizmet (S4U) olarak adlandırılan bir Windows belirtecinden kimliğe bürünmedir.
Önbelleğe Alınmış Belirteç Kimliğe Bürünme
Önbelleğe alınmış belirteç kimliğe bürünme işlemini aşağıdakilerle gerçekleştirebilirsiniz:
WSHttpBinding, WSDualHttpBindingve NetTcpBinding bir Windows istemci kimlik bilgileriyle.
BasicHttpBindingBasicHttpSecurityMode kimlik bilgilerine TransportWithMessageCredential ayarlanmış veya istemcinin hizmetin geçerli bir Windows hesabıyla eşleyebilecekleri bir kullanıcı adı kimlik bilgisi sunduğu başka bir standart bağlama ile.
olarak ayarlanmış
true
bir Windows istemci kimlik bilgisirequireCancellation
kullanan herhangi CustomBinding biri. (Özelliği şu sınıflarda kullanılabilir: SecureConversationSecurityTokenParameters, SslSecurityTokenParametersve SspiSecurityTokenParameters.) Bağlamada güvenli bir konuşma kullanılıyorsa, özelliği derequireCancellation
olaraktrue
ayarlanmalıdır.İstemcinin bir kullanıcı adı kimlik bilgisi sunduğu herhangi CustomBinding bir yer. Bağlamada güvenli konuşma kullanılıyorsa, özelliği de
requireCancellation
olaraktrue
ayarlanmalıdır.
S4U Tabanlı Kimliğe Bürünme
S4U tabanlı kimliğe bürünme işlemini aşağıdakilerle gerçekleştirebilirsiniz:
WSHttpBinding, WSDualHttpBindingve NetTcpBinding hizmetinin geçerli bir Windows hesabıyla eşleyebilecekleri bir sertifika istemci kimlik bilgileriyle.
özelliği olarak ayarlanmış
false
bir Windows istemci kimlik bilgisirequireCancellation
kullanan herhangi CustomBinding biri.CustomBinding Kullanıcı adı veya Windows istemci kimlik bilgisi kullanan ve özelliği olarak ayarlanmış
false
güvenli konuşmalarrequireCancellation
.
Hizmetin istemcinin kimliğine bürünebileceği kapsam, hizmet hesabının kimliğe bürünmeye çalıştığında sahip olduğu ayrıcalıklara, kullanılan kimliğe bürünme türüne ve istemcinin izin verdiği kimliğe bürünme kapsamına bağlıdır.
Not
İstemci ve hizmet aynı bilgisayarda çalışırken ve istemci bir sistem hesabı altında çalışıyorsa (örneğin, Local System
veya Network Service
), durum bilgisi olan Güvenlik Bağlamı belirteçleriyle güvenli bir oturum oluşturulduğunda istemci kimliğine bürünilemez. Bir Windows Formu veya konsol uygulaması genellikle şu anda oturum açmış olan hesabın altında çalışır, böylece hesap varsayılan olarak kimliğine bürünülebilir. Ancak, istemci bir ASP.NET sayfası olduğunda ve bu sayfa IIS 6.0 veya IIS 7.0'da barındırıldığında, istemci varsayılan olarak hesap altında Network Service
çalışır. Güvenli oturumları destekleyen sistem tarafından sağlanan tüm bağlamalar varsayılan olarak durum bilgisi olmayan bir güvenlik bağlamı belirteci (SCT) kullanır. Ancak, istemci bir ASP.NET sayfasıysa ve durum bilgisi olan SK'larla güvenli oturumlar kullanılıyorsa, istemcinin kimliğine bürünilemez. Güvenli bir oturumda durum bilgisi olan SD'leri kullanma hakkında daha fazla bilgi için bkz . Nasıl yapılır: Güvenli Oturum için Güvenlik Bağlam Belirteci Oluşturma.
Hizmet Yönteminde Kimliğe Bürünme: Bildirim Temelli Model
Kimliğe bürünme senaryolarının çoğu çağıran bağlamında hizmet yöntemini yürütmeyi içerir. WCF, kullanıcının özniteliğinde kimliğe bürünme gereksinimini OperationBehaviorAttribute belirtmesine izin vererek bunu yapmayı kolaylaştıran bir kimliğe bürünme özelliği sağlar. Örneğin, aşağıdaki kodda WCF altyapısı, yöntemini yürütmeden önce çağıranın kimliğine bürünür Hello
. Yöntemin içindeki yerel kaynaklara erişme girişimleri ancak kaynağın Hello
erişim denetim listesi (ACL) çağıranın erişim ayrıcalıklarına izin verirse başarılı olur. Kimliğe bürünme özelliğini etkinleştirmek için, aşağıdaki örnekte gösterildiği gibi veya sabit listesi değerlerinden ImpersonationOption.RequiredImpersonationOption.Allowedbirine ImpersonationOption ayarlayınImpersonation.
Not
Bir hizmetin kimlik bilgileri uzak istemciden daha yüksek olduğunda, özelliği olarak ayarlandıysa ImpersonationAllowedhizmetin kimlik bilgileri kullanılır. Başka bir ifadeyle, düşük ayrıcalıklı bir kullanıcı kimlik bilgilerini sağlarsa, daha yüksek ayrıcalıklı bir hizmet yöntemi hizmetin kimlik bilgileriyle yürütür ve düşük ayrıcalıklı kullanıcının aksi takdirde kullanamayacağı kaynakları kullanabilir.
[ServiceContract]
public interface IHelloContract
{
[OperationContract]
string Hello(string message);
}
public class HelloService : IHelloService
{
[OperationBehavior(Impersonation = ImpersonationOption.Required)]
public string Hello(string message)
{
return "hello";
}
}
<ServiceContract()> _
Public Interface IHelloContract
<OperationContract()> _
Function Hello(ByVal message As String) As String
End Interface
Public Class HelloService
Implements IHelloService
<OperationBehavior(Impersonation:=ImpersonationOption.Required)> _
Public Function Hello(ByVal message As String) As String Implements IHelloService.Hello
Return "hello"
End Function
End Class
WCF altyapısı, çağıranın kimliği yalnızca bir Windows kullanıcı hesabıyla eşlenebilen kimlik bilgileriyle doğrulanmışsa çağıranın kimliğine bürünebilir. Hizmet bir Windows hesabına eşlenemeyen bir kimlik bilgisi kullanarak kimlik doğrulaması yapmak üzere yapılandırılmışsa, hizmet yöntemi yürütülemez.
Not
Windows XP'de, durum bilgisi olan bir SCT oluşturulduğunda kimliğe bürünme başarısız olur ve sonuç olarak bir InvalidOperationExceptionolur. Daha fazla bilgi için bkz . Desteklenmeyen Senaryolar.
Hizmet Yönteminde Kimliğe Bürünme: Kesinlik Temelli Model
Bazen çağıranın çalışması için tüm hizmet yönteminin kimliğine bürünmesi gerekmez, ancak yalnızca bir kısmı için. Bu durumda, hizmet yönteminin içinde çağıranın Windows kimliğini alın ve kimliğine bürünme işlemini kesin olarak gerçekleştirin. Sınıfın bir örneğini WindowsIdentity döndürmek için özelliğini ServiceSecurityContext kullanarak ve örneği WindowsIdentity kullanmadan önce yöntemini çağırarak Impersonate bunu yapın.
Not
Kimliğe bürünme eylemini otomatik olarak geri döndürmek için Visual BasicUsing
deyimini veya C# using
deyimini kullandığınızdan emin olun. deyimini kullanmıyorsanız veya Visual Basic veya C# dışında bir programlama dili kullanıyorsanız, kimliğe bürünme düzeyini geri almayı unutmayın. Bunun yapılmaması, hizmet reddi ve ayrıcalıkların yükseltilmesi saldırılarının temelini oluşturabilir.
public class HelloService : IHelloService
{
[OperationBehavior]
public string Hello(string message)
{
WindowsIdentity callerWindowsIdentity =
ServiceSecurityContext.Current.WindowsIdentity;
if (callerWindowsIdentity == null)
{
throw new InvalidOperationException
("The caller cannot be mapped to a WindowsIdentity");
}
using (callerWindowsIdentity.Impersonate())
{
// Access a file as the caller.
}
return "Hello";
}
}
Public Class HelloService
Implements IHelloService
<OperationBehavior()> _
Public Function Hello(ByVal message As String) As String _
Implements IHelloService.Hello
Dim callerWindowsIdentity As WindowsIdentity = _
ServiceSecurityContext.Current.WindowsIdentity
If (callerWindowsIdentity Is Nothing) Then
Throw New InvalidOperationException( _
"The caller cannot be mapped to a WindowsIdentity")
End If
Dim cxt As WindowsImpersonationContext = callerWindowsIdentity.Impersonate()
Using (cxt)
' Access a file as the caller.
End Using
Return "Hello"
End Function
End Class
Tüm Hizmet Yöntemleri için Kimliğe Bürünme
Bazı durumlarda, çağıranın bağlamında bir hizmetin tüm yöntemlerini gerçekleştirmeniz gerekir. Bu özelliği yöntem başına açıkça etkinleştirmek yerine kullanın ServiceAuthorizationBehavior. Aşağıdaki kodda gösterildiği gibi özelliğini olarak true
ayarlayınImpersonateCallerForAllOperations. ServiceAuthorizationBehavior, sınıfının davranış ServiceHost koleksiyonlarından alınır. Ayrıca, her yönteme uygulanan özelliğinin OperationBehaviorAttribute de veya Requiredolarak Allowed ayarlanması gerektiğini unutmayınImpersonation
.
// Code to create a ServiceHost not shown.
ServiceAuthorizationBehavior MyServiceAuthorizationBehavior =
serviceHost.Description.Behaviors.Find<ServiceAuthorizationBehavior>();
MyServiceAuthorizationBehavior.ImpersonateCallerForAllOperations = true;
' Code to create a ServiceHost not shown.
Dim MyServiceAuthorizationBehavior As ServiceAuthorizationBehavior
MyServiceAuthorizationBehavior = serviceHost.Description.Behaviors.Find _
(Of ServiceAuthorizationBehavior)()
MyServiceAuthorizationBehavior.ImpersonateCallerForAllOperations = True
Aşağıdaki tabloda, ve ImpersonateCallerForAllServiceOperations
'nin ImpersonationOption
tüm olası birleşimleri için WCF davranışı açıklanmaktadır.
ImpersonationOption |
ImpersonateCallerForAllServiceOperations |
Davranış |
---|---|---|
Zorunlu | yok | WCF çağıranın kimliğine bürüner |
İzin Verilir | yanlış | WCF çağıranın kimliğine bürünmüyor |
İzin Verilir | true | WCF çağıranın kimliğine bürüner |
Notallowed | yanlış | WCF çağıranın kimliğine bürünmüyor |
Notallowed | true | Izin verilme -yen. (Bir InvalidOperationException oluşturulur.) |
Windows Kimlik Bilgileri ve Önbelleğe Alınmış Belirteç Kimliğe Bürünmesinden Alınan Kimliğe Bürünme Düzeyi
Bazı senaryolarda istemci, bir Windows istemci kimlik bilgisi kullanıldığında hizmetin gerçekleştirdiği kimliğe bürünme düzeyi üzerinde kısmi denetime sahiptir. İstemci Anonim kimliğe bürünme düzeyi belirttiğinde bir senaryo oluşur. Diğeri ise önbelleğe alınmış bir belirteçle kimliğe bürünme gerçekleştirirken oluşur. Bu, genel ChannelFactory<TChannel> sınıfın AllowedImpersonationLevelWindowsClientCredential özelliği olarak erişilen sınıfının özelliği ayarlanarak yapılır.
Not
Anonim'in kimliğe bürünme düzeyinin belirtilmesi, istemcinin hizmette anonim olarak oturum açmasına neden olur. Bu nedenle hizmetin kimliğe bürünme gerçekleştirilip gerçekleştirilmediğine bakılmaksızın anonim oturum açmalara izin vermesi gerekir.
İstemci kimliğe bürünme düzeyini , , IdentificationImpersonationveya Delegationolarak Anonymousbelirtebilir. Aşağıdaki kodda gösterildiği gibi yalnızca belirtilen düzeyde bir belirteç oluşturulur.
ChannelFactory<IEcho> cf = new ChannelFactory<IEcho>("EchoEndpoint");
cf.Credentials.Windows.AllowedImpersonationLevel =
System.Security.Principal.TokenImpersonationLevel.Impersonation;
Dim cf As ChannelFactory(Of IEcho) = New ChannelFactory(Of IEcho)("EchoEndpoint")
cf.Credentials.Windows.AllowedImpersonationLevel = _
System.Security.Principal.TokenImpersonationLevel.Impersonation
Aşağıdaki tablo, önbelleğe alınmış bir belirteçten kimliğe bürünme sırasında hizmetin aldığı kimliğe bürünme düzeyini belirtir.
AllowedImpersonationLevel Değer |
Hizmette SeImpersonatePrivilege |
Hizmet ve istemci temsilci seçme yeteneğine sahiptir | Önbelleğe alınmış belirteç ImpersonationLevel |
---|---|---|---|
Anonim | Yes | yok | Kimliğe bürünme |
Anonim | Hayır | yok | Kimlik |
Kimlik | yok | yok | Kimlik |
Kimliğe bürünme | Yes | yok | Kimliğe bürünme |
Kimliğe bürünme | Hayır | yok | Kimlik |
Temsilci | Yes | Yes | Temsilci |
Temsilci | Yes | Hayır | Kimliğe bürünme |
Temsilci | Hayır | yok | Kimlik |
Kullanıcı Adı Kimlik Bilgileri ve Önbelleğe Alınmış Belirteç Kimliğe Bürünmesinden Alınan Kimliğe Bürünme Düzeyi
İstemci, hizmetin kullanıcı adını ve parolasını geçirerek WCF'nin bu kullanıcı olarak oturum açmasını sağlar ve bu, özelliğini olarak Delegationayarlamaya AllowedImpersonationLevel
eşdeğerdir. AllowedImpersonationLevel
(ve HttpDigestClientCredential sınıflarında WindowsClientCredential kullanılabilir.) Aşağıdaki tablo, hizmet kullanıcı adı kimlik bilgilerini aldığında elde edilen kimliğe bürünme düzeyini sağlar.
AllowedImpersonationLevel |
Hizmette SeImpersonatePrivilege |
Hizmet ve istemci temsilci seçme yeteneğine sahiptir | Önbelleğe alınmış belirteç ImpersonationLevel |
---|---|---|---|
yok | Yes | Yes | Temsilci |
yok | Yes | Hayır | Kimliğe bürünme |
yok | Hayır | yok | Kimlik |
S4U Tabanlı Kimliğe Bürünmeden Alınan Kimliğe Bürünme Düzeyi
Hizmette SeTcbPrivilege |
Hizmette SeImpersonatePrivilege |
Hizmet ve istemci temsilci seçme yeteneğine sahiptir | Önbelleğe alınmış belirteç ImpersonationLevel |
---|---|---|---|
Yes | Yes | yok | Kimliğe bürünme |
Yes | Hayır | yok | Kimlik |
Hayır | yok | yok | Kimlik |
İstemci Sertifikasını Bir Windows Hesabına Eşleme
bir istemcinin sertifika kullanarak bir hizmette kimliğini doğrulaması ve hizmetin active directory aracılığıyla istemciyi mevcut bir hesapla eşlemesini sağlamak mümkündür. Aşağıdaki XML, hizmetin sertifikayı eşlemek için nasıl yapılandırileceğini gösterir.
<behaviors>
<serviceBehaviors>
<behavior name="MapToWindowsAccount">
<serviceCredentials>
<clientCertificate>
<authentication mapClientCertificateToWindowsAccount="true" />
</clientCertificate>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
Aşağıdaki kodda hizmetin nasıl yapılandırılır gösterilmektedir.
// Create a binding that sets a certificate as the client credential type.
WSHttpBinding b = new WSHttpBinding();
b.Security.Message.ClientCredentialType = MessageCredentialType.Certificate;
// Create a service host that maps the certificate to a Windows account.
Uri httpUri = new Uri("http://localhost/Calculator");
ServiceHost sh = new ServiceHost(typeof(HelloService), httpUri);
sh.Credentials.ClientCertificate.Authentication.MapClientCertificateToWindowsAccount = true;
Temsilci
Bir arka uç hizmetine temsilci atamak için, bir hizmetin istemcinin Windows kimliğini kullanarak Arka uç hizmetine Kerberos çok bacaklı (NTLM geri dönüşü olmadan SSPI) veya Kerberos doğrudan kimlik doğrulaması gerçekleştirmesi gerekir. Bir arka uç hizmetine temsilci seçmek için bir ChannelFactory<TChannel> ve kanalı oluşturun ve ardından istemcinin kimliğine bürünerken kanal üzerinden iletişim kurun. Bu temsilci biçimiyle, arka uç hizmetinin ön uç hizmetinden bulunabileceği mesafe, ön uç hizmetinin elde ettiği kimliğe bürünme düzeyine bağlıdır. Kimliğe bürünme düzeyi olduğunda Impersonation, ön uç ve arka uç hizmetleri aynı makinede çalışıyor olmalıdır. Kimliğe bürünme düzeyi olduğunda Delegation, ön uç ve arka uç hizmetleri ayrı makinelerde veya aynı makinede olabilir. Temsilci düzeyinde kimliğe bürünme özelliğini etkinleştirmek için Windows etki alanı ilkesinin temsilci seçmeye izin vermek üzere yapılandırılması gerekir. Temsilci desteği için Active Directory'yi yapılandırma hakkında daha fazla bilgi için bkz . Temsilci Kimlik Doğrulamasını Etkinleştirme.
Not
Bir istemci, arka uç hizmetindeki bir Windows hesabına karşılık gelen bir kullanıcı adı ve parola kullanarak ön uç hizmetinde kimlik doğrulaması yaparsa, ön uç hizmeti istemcinin kullanıcı adını ve parolasını yeniden kullanarak arka uç hizmetinde kimlik doğrulaması yapabilir. Bu özellikle güçlü bir kimlik akışı biçimidir, çünkü arka uç hizmetine kullanıcı adı ve parola geçirilmesi arka uç hizmetinin kimliğe bürünme gerçekleştirmesini sağlar, ancak Kerberos kullanılmadığından temsilci oluşturmaz. Temsilci seçmedeki Active Directory denetimleri kullanıcı adı ve parola kimlik doğrulaması için geçerli değildir.
Kimliğe Bürünme Düzeyi İşlevi Olarak Temsilci Seçme Özelliği
Kimliğe bürünme düzeyi | Hizmet işlemler arası temsilci seçme gerçekleştirebilir | Hizmet, makineler arası temsilci seçme gerçekleştirebilir |
---|---|---|
Identification | Hayır | Hayı |
Impersonation | Evet | Hayı |
Delegation | Evet | Yes |
Aşağıdaki kod örneğinde temsilci seçmenin nasıl kullanılacağı gösterilmektedir.
public class HelloService : IHelloService
{
[OperationBehavior(Impersonation = ImpersonationOption.Required)]
public string Hello(string message)
{
WindowsIdentity callerWindowsIdentity = ServiceSecurityContext.Current.WindowsIdentity;
if (callerWindowsIdentity == null)
{
throw new InvalidOperationException
("The caller cannot be mapped to a Windows identity.");
}
using (callerWindowsIdentity.Impersonate())
{
EndpointAddress backendServiceAddress = new EndpointAddress("http://localhost:8000/ChannelApp");
// Any binding that performs Windows authentication of the client can be used.
ChannelFactory<IHelloService> channelFactory = new ChannelFactory<IHelloService>(new NetTcpBinding(), backendServiceAddress);
IHelloService channel = channelFactory.CreateChannel();
return channel.Hello(message);
}
}
}
Public Class HelloService
Implements IHelloService
<OperationBehavior(Impersonation:=ImpersonationOption.Required)> _
Public Function Hello(ByVal message As String) As String Implements IHelloService.Hello
Dim callerWindowsIdentity As WindowsIdentity = ServiceSecurityContext.Current.WindowsIdentity
If (callerWindowsIdentity Is Nothing) Then
Throw New InvalidOperationException("The caller cannot be mapped to a Windows identity.")
End If
Dim backendServiceAddress As EndpointAddress = New EndpointAddress("http://localhost:8000/ChannelApp")
' Any binding that performs Windows authentication of the client can be used.
Dim channelFactory As ChannelFactory(Of IHelloService) = _
New ChannelFactory(Of IHelloService)(New NetTcpBinding(), backendServiceAddress)
Dim channel As IHelloService = channelFactory.CreateChannel()
Return channel.Hello(message)
End Function
End Class
Bir Uygulamayı Kısıtlanmış Temsil Kullanacak Şekilde Yapılandırma
Kısıtlanmış temsili kullanabilmeniz için önce gönderenin, alıcının ve etki alanı denetleyicisinin bunu yapacak şekilde yapılandırılması gerekir. Aşağıdaki yordamda kısıtlanmış temsili etkinleştiren adımlar listelenmiştir. Temsilci seçme ve kısıtlanmış temsilci arasındaki farklar hakkında ayrıntılı bilgi için Windows Server 2003 Kerberos Uzantıları'nın kısıtlanmış tartışmayı ele alan bölümüne bakın.
Etki alanı denetleyicisinde, istemci uygulamasının çalıştığı hesap için Hesap hassas ve temsilci seçilemiyor onay kutusunu temizleyin.
Etki alanı denetleyicisinde, istemci uygulamasının çalıştığı hesabın Temsilci için güvenilir hesabı onay kutusunu seçin.
Etki alanı denetleyicisinde, bilgisayara temsilci seçme için güven seçeneğine tıklayarak orta katman bilgisayarı temsilci seçmeye güvenilmesi için yapılandırın.
Etki alanı denetleyicisinde, Orta katman bilgisayarı kısıtlanmış temsil kullanacak şekilde yapılandırın. Bu bilgisayara yalnızca belirtilen hizmetler için temsilci seçme seçeneğine tıklayın.
Kısıtlanmış temsili yapılandırma hakkında daha ayrıntılı yönergeler için bkz . Kerberos Protokolü Geçişi ve Kısıtlanmış Temsil.
Ayrıca bkz.
- OperationBehaviorAttribute
- Impersonation
- ImpersonationOption
- WindowsIdentity
- ServiceSecurityContext
- WindowsIdentity
- ServiceAuthorizationBehavior
- ImpersonateCallerForAllOperations
- ServiceHost
- AllowedImpersonationLevel
- WindowsClientCredential
- ChannelFactory<TChannel>
- Identification
- Aktarım Güvenliği ile Kimliğe Bürünme Kullanma
- İstemci Kimliğine Bürünme
- Nasıl yapılır: Bir Hizmette İstemci Kimliğine Bürünme
- ServiceModel Meta Veri Yardımcı Programı Aracı (Svcutil.exe)