Exporter (0) Imprimer
Développer tout

Exemple de code : authentification du certificat OAuth 2.0

Publication: mai 2011

Mis à jour: novembre 2014

S'applique à: Azure

Cet exemple illustre l'authentification auprès de Microsoft Azure Active Directory Access Control (également appelé Access Control Service ou ACS), à l'aide du protocole OAuth 2.0, par la présentation d'un jeton SAML signé par un certificat X.509. Ce certificat correspond à une entité ServiceIdentity configurée sur ACS, et ACS émet un jeton SWT avec une revendication nameidentifier de l'entité ServiceIdentity. Ce jeton SWT permet d'effectuer l'authentification auprès de la ressource protégée par OAuth 2.0. Cet exemple est conforme au brouillon 13 du protocole OAuth 2.0. Le code de cet exemple se trouve dans le sous-répertoire OAuth2 (C#\OAuth2) du package Exemples de code Microsoft Azure Active Directory Access Control (ACS).

Pour exécuter cet exemple, vous devez disposer de la configuration suivante :

  1. Un compte créé dans le Portail Azure (http://go.microsoft.com/fwlink/?LinkId=130560) et un espace de noms Access Control.

  2. Visual Studio 2010 (toutes les versions)

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 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

  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 enregistrer votre application auprès d'ACS, cliquez sur le lien Applications par partie de confiance, sélectionnez Ajouter, puis entrez les informations suivantes dans le formulaire :

    • Dans le champ Nom, entrez OAuth2 RP.

    • Dans le champ Domaine, entrez https://oauth2relyingparty/.

    • Dans le champ Format des jetons, sélectionnez SWT.

    • Cliquez sur Générer pour créer une clé.

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

  5. Cliquez sur Enregistrer.

  6. Votre partie de confiance ayant été enregistrée, vous devez à présent créer les règles qui déterminent les revendications émises par ACS auprès de votre application. Dans le cadre de cet exemple, vous allez créer une règle qui autorise le transfert de toute revendication générée par ACS.

    Pour ce faire, sélectionnez Groupes de règles, puis Groupe de règles par défaut pour OAuth2 RP. Ajoutez une nouvelle règle avec les paramètres suivants :

    • Dans la section Émetteur de la revendication, sélectionnez Service de contrôle d'accès.

    • Dans la section Type de revendication entrante, sélectionnez Tout.

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

    • Dans la section Type de revendication sortante, sélectionnez Type de revendication d'entrée de passage.

    • Dans la section Valeur de revendication sortante, sélectionnez Valeur de revendication d'entrée de passage.

  7. Cet exemple s'appuie sur des informations d'identification gérées par ACS.

    Pour configurer un nouveau certificat client qu'utilisera l'application cliente, sélectionnez le lien Identités de service, puis cliquez sur le lien Ajouter et tapez un nom. Ajoutez un type d'informations d'identification Certificat X.509 et recherchez le fichier ACS2ClientCertificate.cer dans le dossier Certificates de cet exemple. Cliquez sur Enregistrer.

  8. Maintenant qu'ACS a été configuré, ouvrez Visual Studio.

L'exemple de solution Visual Studio dispose d'une application de console appelée ConfigureSample, laquelle utilise le service de gestion ACS et les applications d'assistance communes définies dans la bibliothèque de classes Common. Cette application permet de configurer votre espace de noms de service espace de noms Access Control pour une utilisation avec cet exemple.

  1. Mettez à jour la bibliothèque de classes Common avec les informations concernant votre espace de noms Access Control. Ouvrez SamplesConfiguration.cs et entrez les informations suivantes :

    • ServiceNamespace  : espace de noms utilisé avec espace de noms Access Control.

    • ManagementServiceIdentityName : nom de compte du service de gestion.

    • ManagementServiceIdentityKey : mot de passe associé au compte du service de gestion.

    • AcsHostUrl : nom d'hôte d'ACS.

  2. Exécutez l'application ConfigureSample dans Visual Studio. Cette opération a pour effet de configurer ACS de manière à exécuter cet exemple.

  3. Lorsque l'application ConfigureSample se termine, la clé de signature de la partie de confiance est générée en sortie vers la console. Copiez cette clé dans le Presse-papiers.

  1. Ouvrez l'exemple dans Visual Studio. Outre ConfigureSample et Common, la solution comprend deux projets : ProtectedResourceWebApp et Client.

  2. Si vous ne l’avez pas encore fait, entrez les détails concernant votre espace de noms Access Control dans Common\SamplesConfiguration.cs. Pour plus d'informations, consultez l'étape 1 de la section Option 2 : configuration via le service de gestion ACS ci-dessus. Le fichier est également utilisé par le projet Client.

  3. Ouvrez le fichier web.config dans le projet ProtectedResourceWebApp.

  4. Entrez votre clé de signature du jeton 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 récupérer la clé de signature du jeton, dans le portail ACS, consultez la zone Certificats et clés du portail. L'extrait de code suivant affiche cette section du fichier web.config :

    <appSettings>
       <add key="SigningKey" value="...Copy Signing Key..."/>
    </appSettings>
    
  5. Pour exécuter l'exemple, démarrez le projet ProtectedResourceWebApp. Un navigateur web s'ouvre. Toutefois, la zone de texte est vide, car le navigateur n'est pas authentifié.

  6. Exécutez le projet Client. Le code HTML s'affiche dans une fenêtre de console. Notez que le code HTML indique que l'utilisateur est authentifié et affiche les revendications d'ACS.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft