es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Dar permiso de Files.ReadWrite.All a un grupo/equipo específico para una aplicación.

Contexto / Problema

Estoy implementando un demonio headless que necesita acceder a algunos recursos de Sharepoint (permiso Files.ReadWrite.All) a través de la API de Microsoft Graph.

El desafío es darle a este demonio acceso solo a los recursos de un grupo/equipo específico.

Enfoque 1

La solución obvia es una autenticación de máquina a máquina utilizando el “flujo de credenciales de cliente” como se describe aquí.

El problema es que no veo una forma de limitar el permiso Files.ReadWrite.All a un grupo o equipo específico, lo cual es un problema de seguridad en nuestro caso.

Enfoque 2

El otro enfoque que consideré es crear un usuario separado para mi demonio, que sea miembro solo del grupo al que mi demonio necesita acceder.

Pero iniciar sesión utilizando un usuario específico significa que me redirigen al formulario de inicio de sesión de Microsoft, lo cual obviamente no es adecuado para un demonio headless.

Pregunta

¿Cuál es la mejor manera de resolver esto? ¿Hay algo que haya pasado por alto en mis enfoques anteriores? ¿O hay un enfoque mejor?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una solución a este problema es utilizar roles de aplicaciones de Azure AD. Estos roles pueden asignarse a usuarios o grupos específicos, y pueden utilizarse para limitar el acceso a funcionalidades específicas dentro de una aplicación, como el permiso “Files.ReadWrite.All” en la API de Microsoft Graph.

    Para implementar esta solución, necesitarías:

    1. Definir un rol de aplicación en el registro de la aplicación de Azure AD, específicamente para el permiso “Files.ReadWrite.All”, y asignarlo al grupo/equipo al que quieres otorgar acceso.
    2. Modificar tu código de demonio para solicitar el rol de aplicación específico en lugar del permiso “Files.ReadWrite.All”.
    3. En el registro de la aplicación de Azure AD, en la pestaña “Aplicaciones empresariales”, encontrar y seleccionar tu aplicación de SharePoint.
    4. En la pestaña “Usuarios y grupos”, agregar tu cuenta de servicio de demonio como miembro del grupo/equipo con el rol de aplicación asignado.
    5. Modificar tu flujo de autenticación para incluir el flujo de afirmación de usuario, que permite a tu demonio obtener un token de acceso para el usuario específico (en este caso, el usuario asociado con la cuenta de servicio). Esto evita la necesidad de que un usuario inicie sesión manualmente y permite los permisos necesarios.

Comments are closed.