none
Azure appFabric Service Bus: SecurityTokenException wird nicht an Client weitergeleitet

    Frage

  • Hallo

    In einem Service den ich auf dem Windows Azure appFabric Service Bus registriere, verwende ich für die Authentifizierung einen CustomUsernamePasswordValidator. Die Authentifizeriung funktioniert einwandfrei. Nur wenn der Client einen falschen Benutzernamen oder ein falsches Passwort sendet, der CustomUsernamePassword Validator eine SecurityTokenException (habs auch schon mit SecurityTokenValidationException und einer FaultException ausprobiert) wirft, kommt diese nie beim Client an. Als Binding verwende ich BasicHttpRelayBinding.

    Ist das ein Bug, oder weiss jemand wo der Hund gegraben liegt?

    static void ConfigureForAppFabricSecure(ServiceHost host)
    {
      if (host == null) return;
      var sharedSecretServiceBusCredential = new Microsoft.ServiceBus.TransportClientEndpointBehavior();
      sharedSecretServiceBusCredential.CredentialType = Microsoft.ServiceBus.TransportClientCredentialType.SharedSecret;
      sharedSecretServiceBusCredential.Credentials.SharedSecret.IssuerName = "...";
      sharedSecretServiceBusCredential.Credentials.SharedSecret.IssuerSecret = "...";
    
      // This works with custom username/password validation
      var binding = new Microsoft.ServiceBus.BasicHttpRelayBinding();
      binding.Security.Mode = EndToEndBasicHttpSecurityMode.TransportWithMessageCredential;
      binding.Security.RelayClientAuthenticationType = RelayClientAuthenticationType.None;
      binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.Digest;
    
      var address = ServiceBusEnvironment.CreateServiceUri("https", "...myservicens....", "svc...");
    
      var contract = typeof(IEchoService);
    
      var cloudEP = host.AddServiceEndpoint(
      contract,
      binding,
      address);
    
      cloudEP.Behaviors.Add(sharedSecretServiceBusCredential);
    
    }
    
    • Bearbeitet mguma Dienstag, 24. August 2010 08:18
    Montag, 16. August 2010 14:32

Antworten

Alle Antworten