Cette documentation est archivée et n’est pas conservée.

Exemple de code : Service web ASP.NET

Publication: avril 2011

Mis à jour: juin 2015

S'applique à: Azure

Cet exemple montre comment intégrer Microsoft Azure Active Directory Access Control (également appelé Access Control Service ou ACS) à un service web simple. Il utilise ASP.NET compte hôte de service web et un client de ligne de commande. Le service web ASP.NET nécessite un jeton SWT émis par ACS. Le client demande un jeton à ACS avec un nom d'utilisateur et un mot de passe inscrite auprès d'ACS. Le code de cet exemple se trouve dans le sous-répertoire ASPNETSimpleService (C#\WebServices\ASPNETSimpleService) du package Exemples de code Microsoft Azure Active Directory Access Control (ACS).

Pour exécuter cet exemple, vous devez effectuer les opérations suivantes :

  1. créer un compte à la page d'accueil Azure et créer un espace de noms Access Control.

  2. Visual Studio 2010 (n'importe quelle version).

Pour plus d'informations, consultez Configuration requise pour le service de contrôle d'accès (ACS) (http://go.microsoft.com/fwlink/?LinkId=221065).

La configuration ACS nécessaire pour cet exemple peut être effectuée à l'aide du portail de gestion ACS ou du service de gestion ACS. Cette rubrique décrit les deux options.

  1. Option 1 : configuration de l'exemple à l'aide du portail de gestion ACS

  2. Option 2 : configuration de l'exemple à l'aide du service de gestion ACS

  1. Accédez au Portail de gestion Microsoft Azure (https://manage.WindowsAzure.com), ouvrez une session, puis cliquez sur Active Directory. (Conseil de dépannage : « Active Directory » est manquant ou non disponible)

  2. Pour créer un espace de noms Access Control, cliquez sur Nouveau, Services d'application, Access Control, puis cliquez sur Création rapide. (Ou cliquez sur Espaces de noms Access Control avant de cliquer sur Nouveau.)

  3. Pour gérer un espace de noms Access Control, sélectionnez l'espace de noms, puis cliquez sur Gérer. (Ou cliquez sur Espaces de noms Access Control, sélectionnez l'espace de noms, puis cliquez sur Gérer.)

    Cette action a pour effet d'ouvrir le portail de gestion ACS.

  4. Pour inscrire votre application auprès d'ACS, cliquez sur Applications de partie de confiance, sur Ajouter, puis entrez les informations suivantes dans le formulaire :

    • Dans le champ Nom, entrez Service simple ASPNET.

    • Dans le champ Domaine, entrez http://localhost:8000/Service/

    • Dans le champ URL de renvoi, entrez http://localhost:8000/Service/

    • Sélectionnez SWT dans la zone de liste déroulante Format de jeton.

    • Dans le champ Clé de signature des jetons, cliquez sur Générer pour créer une clé de signature des jetons. Copiez cette clé pour pouvoir l'utiliser ultérieurement lors de la configuration.

    • Dans le champ Date d'expiration, entrez une date d'expiration appropriée pour la clé. À cette date, la clé ne sera plus valide.

    • Laissez les valeurs par défaut dans les autres champs.

  5. Cliquez sur Enregistrer, puis sur Accueil pour revenir à la page d'accueil du portail de gestion Access Control Service.

  6. Votre partie de confiance étant inscrite, vous devez maintenant créer les règles qui déterminent les revendications qu'ACS émettra pour votre application. Dans cet exemple, nous allons créer une règle qui accorde à tout nom d'utilisateur et mot de passe inscrits une revendication action avec la valeur reverse. Pour créer cette règle, cliquez sur Accueil pour revenir à la page d'accueil du portail de gestion Access Control Service, cliquez sur Groupes de règles, puis sur Groupe de règles par défaut pour Service simple ASP.NET. Ajoutez une nouvelle règle avec les paramètres suivants :

    • Dans la section Émetteur de revendication, sélectionnez Access Control Service.

    • Dans la section Type de revendication d'entrée, sélectionnez N'importe laquelle.

    • Dans la section Valeur de revendication d'entrée, sélectionnez N'importe laquelle.

    • Dans la section Type de revendication de sortie, sélectionnez Entrer le type et tapez action dans le champ.

    • Dans la section Valeur de revendication de sortie, sélectionnez Entrer la valeur et tapez reverse dans le champ.

  7. Contrairement aux exemples de sites web, cet exemple repose sur les informations d'identification gérées par ACS. La dernière étape de configuration d'ACS consiste à inscrire le nom d'utilisateur et le mot de passe que l'application cliente doit utiliser. Pour configurer un nouveau nom d'utilisateur et un nouveau mot de passe, cliquez sur Accueil pour revenir à la page d'accueil du portail de gestion Access Control Service, cliquez sur Identités de service, sur Ajouter, puis remplissez le formulaire. Pour cet exemple, utilisez le nom d'utilisateur acssample, le type d'informations d'identification Mot de passe et le mot de passe pass@word1.

  8. Cliquez sur Enregistrer, puis sur Accueil pour revenir à la page d'accueil du portail de gestion Access Control Service.

L'exemple de solution Visual Studio comporte une application console appelée ConfigureSample qui utilise le service de gestion ACS et les programmes d'assistance courants définis dans la bibliothèque de classes Common. Cette application peut servir à configurer un espace de noms Access Control en vue d'une utilisation avec cet exemple.

  1. Pour configurer l'exemple, ouvrez SamplesConfiguration.cs (acs\Management\ManagementService\Common). Remplacez les espaces réservés dans la classe SamplesConfiguration dans la bibliothèque de classes Common par des informations sur votre espace de noms Access Control. Vous trouverez les informations sur le portail de gestion ACS.

    Pour accéder au portail de gestion ACS Accédez au Portail de gestion Microsoft Azure (https://manage.WindowsAzure.com), ouvrez une session, puis cliquez sur Active Directory. (Conseil de dépannage : « Active Directory » est manquant ou non disponible) Pour gérer un espace de noms Access Control, sélectionnez l'espace de noms, puis cliquez sur Gérer. (Ou cliquez sur Espaces de noms Access Control, sélectionnez l'espace de noms, puis cliquez sur Gérer.)

    • ServiceNamespace : entrez le nom de votre espace de noms Access Control.

    • ManagementServiceIdentityName : entrez le nom d'un compte de service de gestion ACS. La valeur par défaut est ManagementClient.

      Pour rechercher le nom du compte de service de gestion, dans le portail de gestion ACS, cliquez sur Service de gestion. Les comptes sont répertoriés par nom sous Comptes de service de gestion.

    • ManagementServiceIdentityKey : entrez le mot de passe du compte de service de gestion.

      Pour rechercher le mot de passe du compte de service de gestion, dans le portail de gestion ACS, cliquez sur Service de gestion. Cliquez sur le nom d'un compte de service de gestion puis, sous Informations d'identification, cliquez sur Mot de passe. Le mot de passe s'affiche dans le volet Mot de passe. Pour copier le mot de passe, cliquez sur Afficher le mot de passe.

  2. Exécutez l'application ConfigureSample dans Visual Studio. Cela configurera ACS pour exécuter cet exemple.

  3. À l'issue de son exécution, l'application ConfigureSample génère la clé de signature de partie de confiance générée sur la console. Copiez cette clé dans le Presse-papiers.

  1. Ouvrez l'exemple dans Visual Studio. La solution consiste en deux projets : Service et Client.

  2. Si ce n'est déjà fait, entrez les détails de votre espace de noms Access Control dans Common\SamplesConfiguration.cs. Pour plus d'informations, consultez l'étape 1 de l'Option 2 : configuration à l'aide du service de gestion ACS. Ce fichier est également utilisé par les projets Service et Client.

  3. Ouvrez le fichier web.config dans le projet Service. Entrez votre clé de signature de jetons dans les éléments AppSettings appropriés. Si vous avez configuré ACS à l'aide du service de gestion, il s'agit de la valeur que vous avez copiée dans le Presse papiers. Pour obtenir la clé de signature de jetons, consultez la zone Certificats et clés du portail. Voici un extrait de code montrant cette zone du fichier web.config de Service.

    <appSettings>
        <add key="IssuerSigningKey" value="...update to your signing key..."/>
      </appSettings>
    
    
  4. Ouvrez le fichier app.config dans le projet Client. Entrez votre nom d'utilisateur et votre mot de passe dans les éléments AppSettings appropriés. Pour obtenir le nom d'utilisateur et le mot de passe que vous avez inscrits précédemment, consultez la zone Identités de service du portail. Voici un extrait de code montrant cette zone (correctement mise à jour) du fichier app.config de Client.

      <appSettings>
        <add key="OAuthUserName" value="acssample" />
        <add key="OAuthPassword" value="pass@word1" />
        <add key="ServiceAddress" value="http://localhost:8000/Service/Default.aspx" />   
      </appSettings>
    
    
  5. Pour exécuter l'exemple, démarrez le service, puis démarrez le client. Sur le client, entrez une chaîne à inverser. La fenêtre de console du client doit maintenant indiquer la réception d'un jeton envoyé par ACS.

Afficher: