Publié le :
Administration CREATION_INTERNE

Configuration de l'authentification OneDrive via OAuth2

Ce code est également disponible en : Deutsch English Español
En attente de validation
Attention : Ce code nécessite des droits administrateur.
Ce script initie une procédure d'authentification OAuth2 interactive pour une application Microsoft 365. Il construit une URL d'autorisation que l'utilisateur doit ouvrir dans un navigateur. Après s'être connecté et avoir donné son consentement, l'utilisateur récupère un code d'autorisation depuis l'URL de redirection. Ce code est ensuite utilisé par la macro `%get_token` pour demander un jeton d'accès et un jeton de rafraîchissement, qui sont stockés dans un fichier `token.json` pour des appels API ultérieurs non interactifs.
Analyse des données

Type : CREATION_INTERNE


Le script ne lit pas de données pour analyse. Son but est de générer un fichier de configuration (`token.json`) contenant les jetons d'authentification. Il dépend de fichiers de configuration SAS externes (`onedrive_config.sas`) et de macros (`onedrive_macros.sas`) qui doivent exister au chemin spécifié.

1 Bloc de code
Macro
Explication :
Ce bloc initialise une variable macro `config_root` pointant vers le répertoire du projet. Il inclut ensuite deux fichiers SAS externes : `onedrive_config.sas` (probablement pour les identifiants de l'application) et `onedrive_macros.sas` (contenant la logique des macros). Enfin, il assigne un fileref `token` au futur fichier JSON qui stockera les jetons.
Copié !
1/*
2 This file contains steps that you perform just once to
3 set up a new project. You'll use these steps to get an
4 access code and your initial authentication tokens.
5 
6 You might need to repeat this step later if your
7 Microsoft Office 365 credentials change (including password)
8 or if the tokens are revoked by using another method.
9 
10*/
11%let config_root=/folders/myfolders/onedrive;
12 
13%include "&config_root./onedrive_config.sas";
14%include "&config_root./onedrive_macros.sas";
15 
16/*
17Our json file that contains the oauth token information
18*/
19filename token "&config_root./token.json";
2 Bloc de code
Macro
Explication :
Construction de l'URL d'autorisation OAuth2 en utilisant des variables macros (comme `tenant_id`, `client_id`) définies dans `onedrive_config.sas`. La fonction `%nrstr` est utilisée pour masquer les caractères spéciaux de l'URL. L'URL est ensuite affichée dans le log SAS pour que l'utilisateur la copie.
Copié !
1/* Do these steps JUST ONCE, interactively,
2 for your application and user account.
3 
4 Get the code from the URL in the browser and set it below
5 as the value of auth_code.
6 
7 The authorization code is going to be a LONG character value.
8*/
9 
10/* Run this line to build the authorization URL */
11%let authorize_url=https://login.microsoftonline.com/&tenant_id./oauth2/authorize?client_id=&client_id.%nrstr(&response_type)=code%nrstr(&redirect_uri)=&redirect_uri.%nrstr(&resource)=&resource.;
12options nosource;
13%put Paste this URL into your web browser:;
14%put -- START -------;
15%put &authorize_url;
16%put ---END ---------;
17options SOURCE;
3 Bloc de code
Macro Data
Explication :
Ce bloc est destiné à être exécuté après l'étape manuelle. L'utilisateur doit coller le code d'autorisation obtenu du navigateur dans la variable macro `auth_code`. Ensuite, la macro `%get_token` est appelée. Elle envoie ce code (et d'autres paramètres) à l'API de Microsoft pour obtenir les jetons d'accès et de rafraîchissement, puis écrit ces jetons dans le fichier `token.json` via le fileref `token`.
Copié !
1/*
2 Copy the value of the authorize_url into a web browser.
3 Log into your OneDrive account as necessary.
4 The browser will redirect to a new address.
5 Copy the auth_code value from that address into the following
6 macro variable. Then run the next two lines (including %get_token macro).
7 
8 Note: this code can be quite long -- 700+ characters.
9*/
10%let auth_code=;
11 
12/*
13 Now that we have an authorization code we can get the access token
14 This step will write the tokens.json file that we can use in our
15 production programs.
16*/
17%get_token(&client_id.,&auth_code,&resource.,token,tenant=&tenant_id,debug=3);
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Banner
Le Conseil de l'Expert
Expert
Simon
Expert SAS et fondateur.
« La configuration de l'authentification OAuth2 est la pierre angulaire de toute intégration moderne entre SAS et les services Cloud comme OneDrive ou SharePoint. Ce script illustre la phase cruciale du "consentement utilisateur", transformant une interaction manuelle dans le navigateur en un jeton persistant (token.json). Cette approche est indispensable car elle permet de s'affranchir des mots de passe en clair dans le code, tout en respectant les politiques de sécurité Azure AD (Microsoft Entra ID). »