Exporter (0) Imprimer
Développer tout
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

Authentification auprès de Windows Azure AD Graph à l’aide de Windows Azure AD Access Control

[Cette rubrique est une documentation préliminaire et peut faire l'objet de modifications dans les versions à venir. Les rubriques vides sont incluses comme espaces réservés.]

S’applique à :

  • Windows Azure Active Directory (AD) Graph

Résumé

Cette rubrique inclut la procédure détaillée et les extraits de code requis pour l’authentification auprès de Windows Azure AD Access Control à l’aide du certificat client X.509.

Contenu

  1. Objectifs

  2. Vue d’ensemble

  3. Résumé des étapes

  4. Étape 1 : création du Service Principal à l’aide des cmdlets PowerShell d’Office 365

  5. Étape 2 : demande d’un jeton de Windows Azure AD Access Control

  6. Étape 3 : test de votre solution

  7. Informations connexes

Objectifs

  • Créer un Service Principal valide à l’aide des cmdlets PowerShell d’Office 365

  • S’authentifier auprès de Windows Azure AD Access Control à l’aide du certificat client X.509

Vue d’ensemble

L’authentification est requise pour accéder aux entités Windows Azure AD à l’aide de Windows Azure AD Graph. Windows Azure AD Access Control fournit des services d’authentification lorsque vous accédez à des entités Windows Azure AD via Windows Azure AD Graph. Le Service Principal permet de représenter l’application qui doit accéder à Windows Azure AD via Windows Azure AD Graph. Il peut être utilisé avec deux types d’informations d’identification, selon vos exigences de sécurité : clé symétrique et certificats clients X.509. Votre application devra fournir l’un de ces deux types d’informations d’identification, selon les modalités de création du Service Principal, pour s’authentifier auprès de Windows Azure AD Access Control.

Pour vous authentifier auprès de Windows Azure AD Access Control, vous devez suivre les étapes décrites dans cette procédure.

Résumé des étapes

  • Étape 1 : création du Service Principal à l’aide des cmdlets PowerShell d’Office 365

  • Étape 2 : demande d’un jeton de Windows Azure AD Access Control

  • Étape 3 : test de votre solution

Étape 1 : création du Service Principal à l’aide des cmdlets PowerShell d’Office 365

Cette étape décrit la création du Service Principal à l’aide des cmdlets PowerShell d’Office 365. Il s’agit d’une étape d’administration exécutée une seule fois pour chaque Service Principal. Les informations d’identification utilisées ici servent à demander un jeton par programme à Windows Azure AD Access Control.

To create Service Principal

  1. Si vous n’avez pas installé les cmdlets PowerShell d’Office 365, faites-le maintenant. Les instructions relatives au téléchargement et à l’installation des cmdlets PowerShell d’Office 365 sont disponibles ici.

  2. Ouvrez l’invite de commandes PowerShell d’Office 365.

  3. Exécutez les commandes suivantes à l’invite de commandes :

    Import-Module MSOnlineExtended
    
    connect-msolservice
    
  4. Lorsque vous y êtes invité, fournissez vos informations d’identification d’administration.

  5. Utilisez la cmdlet New-MsolServicePrincipal pour créer le Service Principal. Cette cmdlet est utilisée avec ses informations d’identification (certificat client X.509) lors de l’authentification auprès de Windows Azure AD Access Control à partir de votre application qui utilise Windows Azure AD Graph. Le paramètre $credValue contient la partie publique du certificat client X.509 converti au format Base 64. Notez qu’une fois le script exécuté, la mise en service effective du Service Principal sur Windows Azure AD peut prendre quelques minutes. Si vous exécutez votre code d’application immédiatement après l’exécution du script, l’authentification peut échouer en raison de cette latence. Patientez quelques minutes et essayez d’exécuter à nouveau votre code d’application. La cmdlet doit ressembler à ce qui suit (avec vos propres valeurs) :

    
    $cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate
    $cer.Import(“C:\temp\contoso.cer”)
    $binCert = $cer.GetRawCertData()
    $credValue = [System.Convert]::ToBase64String($binCert);
    New-MsolServicePrincipal -ServicePrincipalNames @("TestApp/Test.Cloudapp.net") -DisplayName "Test Application" -Type Asymmetric -Usage Verify -StartDate 1/19/2011 -EndDate 1/19/2013 
    -Value $credValue
    
    
  6. Prenez note des valeurs ObjectId et AppPrincipalId dans la sortie de la cmdlet.

Étape 2 : demande d’un jeton de Windows Azure AD Access Control

Cette étape décrit la demande d’un jeton auprès de Windows Azure AD Access Control.

To request a token form Windows Azure AD Access Control

  1. Le cas échéant, téléchargez et installez WCF Data Services 5.0 for OData V3 (WCF Data Services 5.0 pour OData V3).

  2. Le cas échéant, téléchargez et installez Windows Azure AD Graph Code Sample (Exemple de code Windows Azure AD Graph).

  3. Ouvrez Visual Studio.

  4. Dans la Start Page, cliquez sur New Project....

  5. Dans la boîte de dialogue New Project, sélectionnez l’option Console Application.

  6. Nommez votre application (par exemple, WindowsAzureADAccessControlAuthentication), puis cliquez sur Ok.

  7. Ouvrez le fichier Program.cs dans l’éditeur en double-cliquant dessus dans l’Solution Explorer.

  8. Ajoutez les références aux assemblys suivants :

    • Microsoft.Online.DirectoryApi.Authentication

    • Microsoft.Online.DirectoryApi.AzureTokenHelper

  9. Ajoutez les déclarations d’espaces de noms suivantes en haut du fichier Program.cs :

    
    using System.Net;
    using Microsoft.Online.DirectoryApi.AzureTokenHelper;
    using System.Security.Cryptography.X509Certificates;
    
    
  1. Ajoutez l’implémentation de méthode privée GetAccessToken suivante à la classe Program :

    
            private static void GetToken()
            {
                if ((tokenExpirationTime - DateTime.Now.ToUniversalTime() < new TimeSpan(0, 2, 0)) ||
                    token == null)
                {
                    tokenExpirationTime = DateTime.Now.ToUniversalTime().AddHours(1);
    
                    JsonWebToken webToken = JWTTokenHelper.GenerateSelfSignedToken(
                        JWTTokenHelper.AcsPrincipalId,
                        tenanatContextId.ToString(),
                        graphHostName,
                        graphServicePrincipalId,
                        appPrincipalId,
                        DateTime.Now.ToUniversalTime(),
                        60 * 60);
    
                    webToken.NameIdentifier = string.Format("{0}@{1}", appPrincipalId, tenanatContextId);
    
                    X509Certificate2 clientCertificate = new X509Certificate2(clientCertificateFilePath,
                                                                              clientCertificatePassword,
                                                                              X509KeyStorageFlags.Exportable);
                    token = JWTTokenHelper.GenerateAccessToken(webToken, clientCertificate);
                }
            }
    
    
  1. Demandez et affichez le jeton à l’aide d’un code semblable à ce qui suit :

    
            private static DateTime tokenExpirationTime = DateTime.Now.ToUniversalTime();
            private static string token;
    
            //customer must obtain this value using PowerShell cmdlet Get-MsolCompanyInformation | fl *-->
            //use ObjectId value
            private static string tenanatContextId = "c689...bf6ad01";
            private static string graphHostName = "directory.windows.net";
            private static string graphServicePrincipalId = "00000002-0000-0000-c000-000000000000";
            //AppPrincipalId Is displayed when creating New-MsolServiceprincipal cmdlet
            private static string appPrincipalId = "c19dd8df-9043-...61167e718";
    
            private static string clientCertificateFilePath = @"C:\YourClientCert.pfx";
            private static string clientCertificatePassword = "YourClientCertPwd";
    
            static void Main(string[] args)
            {
                GetToken();
                Console.WriteLine(token);
                Console.ReadLine();
    
            }
    
    

Étape 3 : test de votre solution

Cette étape permet de tester votre code et de vérifier l’émission d’un jeton par Windows Azure AD Access Control suite à la réussite de l’authentification.

To test your solution

  1. Compilez votre solution en appuyant sur Ctrl+Shift+B et vérifiez qu’il n’y a pas d’erreur de compilation.

  2. Exécutez votre solution en appuyant sur F5. Si aucune exception n’est levée, un jeton JWT semblable au suivant doit être émis par Windows Azure AD Access Control : eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1N….cOFh3NaJx8tDMWLSRNBMJgi8CtLC1H1Dye8Oo4S8nEpLfrsg

  3. Si l’authentification échoue, consultez la section Erreurs de protocole OAuth 2.0 de la rubrique Codes d’erreur ACS.

Informations connexes

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.
Afficher:
© 2014 Microsoft. Tous droits réservés.