Exemple de code : service web ASP.NET

Mise à jour : 19 juin 2015

S’applique à : Azure

Cet exemple montre comment intégrer Microsoft Azure Active Directory Access Control (également appelé service Access Control ou ACS) dans 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 auprès d’ACS avec un nom d’utilisateur et un mot de passe enregistrés auprès d’ACS. Le code de cet exemple se trouve dans le sous-répertoire ASPNETSimpleService (C#\WebServices\ASPNETSimpleService) du package d’exemples de code Microsoft Azure Active Directory Access Control (ACS).

Prérequis

Pour exécuter cet exemple, vous avez besoin des éléments suivants :

  1. Pour créer un compte dans 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 les prérequis ACS (https://go.microsoft.com/fwlink/?LinkId=221065).

Configuration de l'exemple

La configuration ACS requise 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

Option 1 : Configuration de l’exemple à l’aide du portail de gestion ACS

Pour configurer l’exemple à l’aide du portail de gestion ACS

  1. Accédez au portail de gestion Microsoft Azure (https://manage.WindowsAzure.com), connectez-vous, puis cliquez sur Active Directory. (Conseil de résolution des problèmes : l’élément « 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, cliquez sur Ajouter, puis entrez les informations suivantes dans le formulaire :

    • Dans le champ Nom, entrez Service simple ASPNET.

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

    • Dans le champ URL de retour , entrez https://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. Une fois votre partie de confiance inscrite, il est maintenant temps de créer les règles qui déterminent les revendications émises par ACS à 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 site web, cet exemple s’appuie sur les informations d’identification gérées par ACS. La dernière étape de la configuration d’ACS consiste à inscrire le nom d’utilisateur et le mot de passe de l’application cliente à 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.

Option 2 : Configuration de l’exemple à l’aide du service de gestion ACS

L’exemple de solution Visual Studio a une application console appelée ConfigureSample qui utilise le service de gestion ACS et les assistances courantes définies dans la bibliothèque de classes Common. Cette application peut être utilisée pour configurer un espace de noms Access Control à utiliser avec cet exemple.

Pour configurer l’exemple à l’aide du service de gestion ACS

  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 Commune par des informations sur votre espace de noms Access Control. Vous trouverez les informations dans 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), connectez-vous, puis cliquez sur Active Directory. (Conseil de résolution des problèmes : l’élément « 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 trouver 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. Cette opération configure 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.

Exécution de l'exemple

Exécution de l'exemple

  1. Ouvrez l'exemple dans Visual Studio. La solution se compose de 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="https://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 cliente doit ensuite afficher la sortie indiquant qu’elle a reçu un jeton d’ACS.