导出 (0) 打印
全部展开

如何:在 Service Bus 应用程序上设置安全性和身份验证

更新时间: 2014年6月

本主题讨论如何使用 Microsoft Azure Service Bus 对服务和客户端应用程序进行身份验证。有关设置传输和消息级别安全性的详细信息,请参阅保护 Service Bus 连接并对其进行身份验证,以及 Windows Communication Foundation (WCF) 文档中的Securing Services主题。

如果要开发服务,必须首先确定你将使用何种凭据类型对 Service Bus 进行身份验证,以及是否必须对连接到服务的客户端进行身份验证。所有服务都需要使用 SAML、共享机密或简单 Web 令牌对 Service Bus 进行身份验证。你可以决定是否对服务使用不同的身份验证形式,就像对客户端执行的身份验证一样。有关详细信息,请参阅 TechNet 上的 为 Service Bus 应用程序选择身份验证形式.

如果你要开发客户端,请确定你正连接的服务所需的身份验证凭据类型。可以通过多种方式来完成该操作。包括从约定元数据检索信息。有关详细信息,请参阅 TechNet 上的 如何: 设计用于 Service Bus 的 WCF 服务约定.

  1. 定义包含指定 <transportClientEndpointBehavior> 元素以及相关凭据的行为。

    来自 WebHttp 示例的以下代码显示了如何声明和配置共享机密凭据。

    <behaviors>
      <endpointBehaviors>
        <behavior name="sharedSecretClientCredentials">
          <transportClientEndpointBehavior credentialType="SharedSecret">
            <clientCredentials>
              <sharedSecret issuerName="ISSUER_NAME" issuerSecret="ISSUER_SECRET" />
            </clientCredentials>
          </transportClientEndpointBehavior>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    

    在此过程中,颁发者名称和机密直接保留在 App.config 文件中。建议对包含此类安全信息的所有配置文件实施某种形式的安全性。

    在 App.config 文件中定义凭据之后,应用程序将自动使用该安全配置。无需执行其他步骤。

  1. 检索安全凭据:

    Console.Write("Your Issuer Name: ");
    string issuerName = Console.ReadLine();
    Console.Write("Your Issuer Secret: ");
    string issuerSecret = Console.ReadLine();
    

    正如 Service Bus 示例中常见的那样,此过程将获得用户知道的颁发者名称和机密,并且颁发者名称和机密是直接键入的。

  2. 创建包含安全凭据的凭据终结点行为对象:

    TransportClientEndpointBehavior sharedSecretServiceBusCredential = new TransportClientEndpointBehavior();
    sharedSecretServiceBusCredential.CredentialType = TransportClientCredentialType.SharedSecret;
    sharedSecretServiceBusCredential.Credentials.SharedSecret.IssuerName = issuerName;
    sharedSecretServiceBusCredential.Credentials.SharedSecret.IssuerSecret = issuerSecret;
    
  3. 创建连接到终结点的通道工厂:

    ChannelFactory<IEchoChannel> channelFactory = new ChannelFactory<IEchoChannel>("RelayEndpoint", new EndpointAddress(serviceUri));
    
  4. 将凭据应用到通道工厂:

    channelFactory.Endpoint.Behaviors.Add(sharedSecretServiceBusCredential);
    

    将凭据应用到通道工厂之后,就可以打开与终结点的连接并访问 Service Bus。

显示:
© 2014 Microsoft