Exporter (0) Imprimer
Développer tout

Définition de la sécurité sur une application Service Bus REST

Mis à jour: juin 2014

Cette rubrique suppose que votre application interagit avec Service Bus via l'assembly Microsoft.ServiceBus.dll et les fonctionnalités d'authentification disponibles dans Azure. En particulier, cette rubrique couvre les applications qui utilisent la liaison WebHttpRelayBinding, c'est-à-dire la liaison par défaut des applications Web.

Les options d'authentification du relais pour les clients Web ayant accès aux services conçus sur la liaison WebHttpRelayBinding ont été créées pour répondre aux scénarios les plus courants. Dans la plupart des cas, les clients de style Web communiquent avec les services qui décident d'accepter tout le trafic entrant. Ces clients effectuent une authentification légère uniquement à l'aide d'un grand nombre de techniques personnalisées pour autoriser et enrichir les expériences utilisateurs de type AJAX. Vous pouvez obtenir le même résultat et fournir une fidélité similaire en définissant la propriété Security.Transport.RelayAuthenticationType sur la liaison WebHttpRelayBinding au None. Vous pouvez voir cette option dans l'exemple d'authentification de relais Service Bus°WebNoAuth. Une procédure simplifiée permettant de définir cette option est décrite ultérieurement dans cette section.

  1. Dans le service, configurez l'authentification comme requis :

    Console.Write("Your Issuer Name: ");
    string issuerName = Console.ReadLine();
    Console.Write("Your Issuer Secret: ");
    string issuerSecret = Console.ReadLine();
    …
    TransportClientEndpointBehavior clientBehavior = new TransportClientEndpointBehavior();
    clientBehavior.CredentialType = TransportClientCredentialType.SharedSecret;
    clientBehavior.Credentials.SharedSecret.IssuerName = issuerName;
    clientBehavior.Credentials.SharedSecret.IssuerSecret = issuerSecret;
    

    Comme pour les autres applications, vous pouvez configurer l'authentification dans un fichier App.config ou par programme.

  2. Définissez le champ RelayClientAuthenticationType sur None.

    <bindings>
      <!-- Application Binding -->
      <webHttpRelayBinding>
        <binding name="default">
          <security relayClientAuthenticationType="None" />
        </binding>
      </webHttpRelayBinding>
    </bindings>
    

    Cela permet au service de s'authentifier auprès de Service Bus (comme requis), mais cela permet également aux clients de se connecter, sans authentification obligatoire. Dans ce scénario, le fichier App.config définit le type de sécurité à utiliser pour le scénario entier, mais la configuration par programme (à l'étape 1) remplace le fichier App.config – ce qui est nécessaire, car il est impossible d'avoir « Aucune » pour l'authentification du service.

Si vous utilisez l'option RelayAccessToken pour la propriété RelayClientAuthenticationType, Service Bus fournit une couche de sécurité sur les services HTTP bruts qui requièrent que l'autorisation et l'authentification soient réalisées avant qu'un trafic HTTP ne soit transféré au service d'écoute. Si l'authentification Relay est activée sur Service Bus, le jeton de sécurité requis peut être fourni via des informations d'identification par programme.

Si vous décidez d'implémenter des informations d'identification par programme, vous pouvez utiliser l'une des options d'authentification disponibles pour Service Bus via le service Access Control, tels que les jetons de secret partagé ou les jetons Web simples. Pour plus d'informations, consultez Création Définir la sécurité et l'authentification sur une application Service Bus. La procédure suivante illustre une procédure simplifiée pour la création d'un jeton Web.

  1. Récupérez le nom de l'émetteur et le secret de l'utilisateur :

    Console.Write("Your Issuer Name: ");
    string issuerName = Console.ReadLine();
    Console.Write("Your Issuer Secret: ");
    string issuerSecret = Console.ReadLine();
    
  2. Définissez le type d'informations d'identification du client de transport comme SimpleWebToken :

    TransportClientEndpointBehavior behavior = new TransportClientEndpointBehavior();
    behavior.CredentialType = TransportClientCredentialType.SimpleWebToken;
    
    
  3. Calculez et initialisez le jeton Web avec un appel au ComputeSimpleWebTokenString :

    behavior.Credentials.SimpleWebToken.SimpleWebToken = SharedSecretCredential.ComputeSimpleWebTokenString(issuerName, issuerSecret);
    

    Lorsque vous avez créé le jeton Web, vous pouvez ajouter le comportement au point de terminaison, créer le constructeur de canaux et ouvrir un canal dans Service Bus.

Afficher:
© 2014 Microsoft