Publicado el :
Administración CREATION_INTERNE

Configuración de la autenticación de OneDrive a través de OAuth2

Este código también está disponible en: Deutsch English Français
En espera de validación
Attention : Este código requiere privilegios de administrador.
Este script inicia un procedimiento de autenticación OAuth2 interactivo para una aplicación de Microsoft 365. Construye una URL de autorización que el usuario debe abrir en un navegador. Después de iniciar sesión y dar su consentimiento, el usuario recupera un código de autorización de la URL de redirección. Este código es utilizado posteriormente por la macro `%get_token` para solicitar un token de acceso y un token de actualización, los cuales se almacenan en un archivo `token.json` para futuras llamadas a la API no interactivas.
Análisis de datos

Type : CREATION_INTERNE


El script no lee datos para análisis. Su propósito es generar un archivo de configuración (`token.json`) que contenga los tokens de autenticación. Depende de archivos de configuración SAS externos (`onedrive_config.sas`) y de macros (`onedrive_macros.sas`) que deben existir en la ruta especificada.

1 Bloque de código
Macro
Explicación :
Este bloque inicializa una variable macro `config_root` que apunta al directorio del proyecto. Luego incluye dos archivos SAS externos: `onedrive_config.sas` (probablemente para las credenciales de la aplicación) y `onedrive_macros.sas` (que contiene la lógica de las macros). Finalmente, asigna un fileref `token` al futuro archivo JSON que almacenará los tokens.
¡Copiado!
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 Bloque de código
Macro
Explicación :
Construcción de la URL de autorización OAuth2 utilizando variables macro (como `tenant_id`, `client_id`) definidas en `onedrive_config.sas`. La función `%nrstr` se utiliza para ocultar los caracteres especiales de la URL. La URL se muestra en el log de SAS para que el usuario la copie.
¡Copiado!
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 Bloque de código
Macro Data
Explicación :
Este bloque está diseñado para ser ejecutado después del paso manual. El usuario debe pegar el código de autorización obtenido del navegador en la variable macro `auth_code`. Luego, se llama a la macro `%get_token`. Esta macro envía este código (y otros parámetros) a la API de Microsoft para obtener los tokens de acceso y de actualización, y luego escribe estos tokens en el archivo `token.json` a través del fileref `token`.
¡Copiado!
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);
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Banner
Consejo del Experto
Expert
Simon
Expert SAS et fondateur.
« La configuración de la autenticación OAuth2 es el pilar fundamental para establecer una conexión moderna y segura entre SAS y servicios en la nube como OneDrive o SharePoint. Este script automatiza la fase de "consentimiento del usuario", transformando una interacción manual única en el navegador en una credencial persistente almacenada en token.json. Este enfoque es significativamente más seguro que los métodos tradicionales, ya que elimina la necesidad de guardar contraseñas en texto plano dentro del código SAS. »