Conceder permisos RSC a la aplicación

El consentimiento específico de recursos (RSC) es una integración de la API de Microsoft Teams y Microsoft Graph API que permite a la aplicación usar puntos de conexión de API para administrar recursos específicos, ya sean equipos, chats o usuarios dentro de una organización.

En esta sección, aprenderá a:

  1. Agregar permisos RSC a la aplicación de Teams
  2. Instalar la aplicación en un equipo, chat o usuario
  3. Comprobar aplicación Permiso RSC concedido a la aplicación

Agregar permisos RSC a la aplicación de Teams

Para agregar permisos RSC a la aplicación, siga estos pasos:

  1. Registre su aplicación con la Plataforma de identidad de Microsoft mediante el Centro de administración de Microsoft Entra.
  2. Actualice el manifiesto de la aplicación (antes llamado manifiesto de la aplicación de Teams).

Registro de la aplicación con la Plataforma de identidad de Microsoft mediante el Centro de administración de Microsoft Entra

El Centro de administración de Microsoft Entra proporciona una plataforma central para que se registre y configure las aplicaciones. Debe registrar la aplicación en el Centro de administración de Microsoft Entra para integrarse con la plataforma de identidad y llamar a las API de Graph. Para obtener más información, consulte Registro de una aplicación con la plataforma de identidad.

Advertencia

No debe compartir su id. de aplicación de Microsoft Entra en varias aplicaciones de Teams. Debe haber una asignación 1:1 entre una aplicación de Teams y una aplicación de Microsoft Entra. La instalación de varias aplicaciones de Teams asociadas con el mismo id. de aplicación de Microsoft Entra provocará errores de instalación o tiempo de ejecución.

Nota:

Registre la aplicación en el mismo espacio empresarial donde carga y prueba la aplicación. Si el registro de la aplicación se encuentra en un espacio empresarial diferente, solo un administrador de inquilinos puede cargar la aplicación. Para obtener más información, consulte Cargar su aplicación personalizada en Teams.

Actualizar el manifiesto de la aplicación

Debe declarar los permisos RSC en el archivo de manifest.json de la aplicación. No es necesario agregar los permisos que no son de RSC al manifiesto de la aplicación, ya que el Centro de administración de Microsoft Entra los almacena.

Solicitar permisos RSC para la aplicación Teams

Para solicitar permisos RSC para una aplicación, enumere los permisos que la aplicación requiere en la sección de autorización del manifiesto de la aplicación. Las instrucciones pueden variar en función de la versión del manifiesto de la aplicación.

Nota:

Para los permisos delegados, use el manifiesto de la aplicación v1.12 o posterior.

Siempre que un usuario autorizado instale su aplicación en Teams, se mostrarán al usuario los permisos RSC solicitados en el manifiesto de la aplicación. Los permisos se conceden como parte del proceso de instalación de la aplicación.


Permisos RSC para el manifiesto de la aplicación v 1.12 o posterior

Para agregar el permiso RSC en el manifiesto de la aplicación:

  1. Agregue la clave webApplicationInfo al manifiesto de la aplicación con los siguientes valores:

    Nombre Tipo Descripción
    id Cadena Su id. de aplicación de Microsoft Entra. Para obtener más información, consulte registrar la aplicación en el Centro de administración de Microsoft Entra.
    resource Cadena Este campo no tiene ninguna operación en RSC, pero debe agregar un valor para evitar una respuesta de error. Puede agregar cualquier cadena como valor.
  2. Agregue los permisos que necesita la aplicación.

    Nombre Tipo Descripción
    authorization Object Lista de permisos que la aplicación necesita para funcionar. Para obtener más información, consulte autorización en el manifiesto de la aplicación.

    Si una aplicación está diseñada para admitir la instalación en los ámbitos de equipo y chat, los permisos de equipo y chat se pueden especificar en el mismo manifiesto de la aplicación en authorization.

Ejemplo de permisos RSC en un equipo:

"webApplicationInfo": {
    "id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
    "resource": "https://RscBasedStoreApp"
    },
"authorization": {
    "permissions": {
        "resourceSpecific": [
            {
                "name": "TeamSettings.Read.Group",
                "type": "Application"
            },
            {
                "name": "TeamSettings.ReadWrite.Group",
                "type": "Application"
            },
            {
                "name": "ChannelSettings.Read.Group",
                "type": "Application"
            },
            {
                "name": "ChannelSettings.ReadWrite.Group",
                "type": "Application"
            },
            {
                "name": "Channel.Create.Group",
                "type": "Application"
            },
            {
                "name": "Channel.Delete.Group",
                "type": "Application"
            },
            {
                "name": "ChannelMessage.Read.Group",
                "type": "Application"
            },
            {
                "name": "TeamsAppInstallation.Read.Group",
                "type": "Application"
            },
            {
                "name": "TeamsTab.Read.Group",
                "type": "Application"
            },
            {
                "name": "TeamsTab.Create.Group",
                "type": "Application"
            },
            {
                "name": "TeamsTab.ReadWrite.Group",
                "type": "Application"
            },
            {
                "name": "TeamsTab.Delete.Group",
                "type": "Application"
            },
            {
                "name": "TeamMember.Read.Group",
                "type": "Application"
            },
            {
                "name": "TeamsActivity.Send.Group",
                "type": "Application"
            },
            {
              "name": "ChannelMeeting.ReadBasic.Group",
              "type": "Delegated"
            },
            {
              "name": "ChannelMeetingParticipant.Read.Group",
              "type": "Delegated"
            },
            {
              "name": "ChannelMeetingStage.Write.Group",
              "type": "Delegated"
            }
        ]
    }
}

Ejemplo de permisos RSC en un chat:

"webApplicationInfo": {
    "id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
    "resource": "https://RscBasedStoreApp"
    },
"authorization": {
    "permissions": {
        "resourceSpecific": [
            {
                "name": "ChatSettings.Read.Chat",
                "type": "Application"
            },
            {
                "name": "ChatSettings.ReadWrite.Chat",
                "type": "Application"
            },
            {
                "name": "ChatMessage.Read.Chat",
                "type": "Application"
            },
            {
                "name": "ChatMember.Read.Chat",
                "type": "Application"
            },
            {
                "name": "Chat.Manage.Chat",
                "type": "Application"
            },
            {
                "name": "TeamsTab.Read.Chat",
                "type": "Application"
            },
            {
                "name": "TeamsTab.Create.Chat",
                "type": "Application"
            },
            {
                "name": "TeamsTab.Delete.Chat",
                "type": "Application"
            },
            {
                "name": "TeamsTab.ReadWrite.Chat",
                "type": "Application"
            },
            {
                "name": "TeamsAppInstallation.Read.Chat",
                "type": "Application"
            },
            {
                "name": "OnlineMeeting.ReadBasic.Chat",
                "type": "Application"
            },
            {
                "name": "Calls.AccessMedia.Chat",
                "type": "Application"
            },
            {
                "name": "Calls.JoinGroupCalls.Chat",
                "type": "Application"
            },
            {
                "name": "TeamsActivity.Send.Chat",
                "type": "Application"
            },
            {
                "name": "MeetingStage.Write.Chat",
                "type": "Delegated"
            }
        ]
    }
}

Ejemplo de permisos RSC para el usuario:

"webApplicationInfo": {
    "id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
    "resource": "https://RscBasedStoreApp"
    },
"authorization": {
    "permissions": {
        "orgWide": []
        "resourceSpecific": [
            {
                "name": "InAppPurchase.Allow.User",
                "type": "Delegated"
            },
            {
                "name": "TeamsActivity.Send.User",
                "type": "Application"
            },
        ]
    }
}


Permisos RSC para el manifiesto de la aplicación v1.11 o anteriores

Nota:

Se recomienda usar el manifiesto de la aplicación v 1.12 o posterior.

Agregue la clave webApplicationInfo al manifiesto de la aplicación con los siguientes valores:

Nombre Tipo Descripción
id Cadena Su id. de aplicación de Microsoft Entra. Para obtener más información, consulte registrar la aplicación en el Centro de administración de Microsoft Entra.
resource Cadena Este campo no tiene ninguna operación en RSC, pero debe agregar un valor para evitar una respuesta de error. Puede agregar cualquier cadena como valor.
applicationPermissions Matriz de cadenas Permisos RSC para la aplicación. Para obtener más información, consulte Permisos RSC admitidos.

Si una aplicación está diseñada para admitir la instalación en los ámbitos de equipo y chat, los permisos de equipo y chat se pueden especificar en el mismo manifiesto de la aplicación en applicationPermissions.

Ejemplo de permisos RSC en un equipo:

"webApplicationInfo": {
    "id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
    "resource": "https://RscBasedStoreApp",
    "applicationPermissions": [
        "TeamSettings.Read.Group",
        "TeamSettings.ReadWrite.Group",
        "ChannelSettings.Read.Group",
        "ChannelSettings.ReadWrite.Group",
        "Channel.Create.Group",
        "Channel.Delete.Group",
        "ChannelMessage.Read.Group",
        "TeamsAppInstallation.Read.Group",
        "TeamsTab.Read.Group",
        "TeamsTab.Create.Group",
        "TeamsTab.ReadWrite.Group",
        "TeamsTab.Delete.Group",
        "TeamMember.Read.Group",
        "TeamsActivity.Send.Group"
    ]
  }

Ejemplo de permisos RSC en un chat:

"webApplicationInfo": {
    "id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
    "resource": "https://RscBasedStoreApp",
    "applicationPermissions": [
        "ChatSettings.Read.Chat",
        "ChatSettings.ReadWrite.Chat",
        "ChatMessage.Read.Chat",
        "ChatMember.Read.Chat",
        "Chat.Manage.Chat",
        "TeamsTab.Read.Chat",
        "TeamsTab.Create.Chat",
        "TeamsTab.Delete.Chat",
        "TeamsTab.ReadWrite.Chat",
        "TeamsAppInstallation.Read.Chat",
        "OnlineMeeting.ReadBasic.Chat",
        "Calls.AccessMedia.Chat",
        "Calls.JoinGroupCalls.Chat",
        "TeamsActivity.Send.Chat"
    ]
  }

Ejemplo de permisos RSC para un usuario:

"webApplicationInfo": {
    "id": "XXxxXXXXX-XxXX-xXXX-XXxx-XXXXXXXxxxXX",
    "resource": "https://RscBasedStoreApp",
    "applicationPermissions": [
        "TeamsActivity.Send.User"
    ]
  }

Instalar la aplicación en un equipo, chat o usuario

Para instalar la aplicación en la que ha habilitado el permiso RSC en un equipo, chat o usuario, siga estos pasos:

  1. Asegúrese de que ha configurado las opciones de consentimiento para el equipo, el chat o el usuario.
  2. Cargue su aplicación personalizada en Teams.

Nota:

Para ver la configuración de RSC para el equipo o el chat, los usuarios deben tener uno de estos roles de Microsoft 365:

  • Administrador global
  • Lector global
  • Administrador de Teams
  • Administrador de roles con privilegios

Los controles de nivel de inquilino de los permisos RSC de la aplicación varían en función del tipo de recurso.

En el caso de los permisos delegados, cualquier usuario autorizado puede dar su consentimiento a los permisos solicitados por la aplicación.

La configuración de RSC a nivel de inquilino se administra mediante PowerShell y la API de Graph API. Para obtener más información sobre cómo administrar la configuración de Microsoft Graph con PowerShell, consulte Introducción al SDK de PowerShell de Microsoft Graph.

Puede usar el Connect-MgGraph cmdlet y conectarse con los permisos siguientes:

  1. TeamworkAppSettings.ReadWrite.All
  2. Policy.ReadWrite.Authorization
  3. Policy.ReadWrite.PermissionGrant
  4. AppCatalog.Read.All

A continuación se muestran los estados disponibles para la configuración de PowerShell y en cada sección se muestran ejemplos de cómo usar estos estados para ajustar la configuración:

Estado de PowerShell Descripción
AdministradoPorMicrosoft Este es el estado predeterminado para todos los inquilinos. Permite que los permisos RSC de chat y equipo sean consentidos para todos los usuarios, pero se pueden cambiar en cualquier momento a discreción de Microsoft.
EnabledForAllApps Los usuarios (propietarios de recursos) de su inquilino pueden dar su consentimiento a cualquier aplicación que solicite permisos RSC.
DisabledForAllApps Los usuarios no pueden consentir ningún permiso RSC.

Nota:

Le recomendamos que deje la configuración de consentimiento de RSC en el estado predeterminado ManagedByMicrosoft a menos que su organización requiera una directiva de consentimiento personalizada para las aplicaciones habilitadas para RSC.


Configurar RSC de equipo mediante cmdlets de PowerShell

Puede configurar qué usuarios pueden dar su consentimiento para que las aplicaciones accedan a los datos de sus equipos mediante los estados de PowerShell disponibles, como ManagedByMicrosoft, EnabledForAllApps y DisabledForAllApps.

En el ejemplo siguiente se muestra cómo habilitar el RSC de equipo para todas las aplicaciones:

Set-MgBetaTeamRscConfiguration -State EnabledForAllApps

Configurar RSC de chat mediante cmdlets de PowerShell

Puede configurar qué usuarios pueden dar su consentimiento para que las aplicaciones accedan a los datos de sus chats mediante los estados de PowerShell disponibles, como ManagedByMicrosoft, EnabledForAllApps y DisabledForAllApps.

En el ejemplo siguiente se muestra cómo habilitar el RSC de chat para todas las aplicaciones:

Set-MgBetaChatRscConfiguration -State EnabledForAllApps

Configurar las opciones de consentimiento del propietario del usuario para RSC para un usuario mediante las API de Graph

Puede habilitar o deshabilitar RSC para el usuario mediante la Graph API. La isUserPersonalScopeResourceSpecificConsentEnabled propiedad de teamsAppSettings controla si el RSC del usuario está habilitado en el inquilino.

La captura de pantalla muestra la configuración de usuario de Graph RSC.

El valor predeterminado de la propiedad se basa en si la isUserPersonalScopeResourceSpecificConsentEnabledconfiguración de consentimiento del usuario está activada o desactivada en el inquilino cuando se usa por primera vez RSC para el usuario. El valor predeterminado se define cuando:

  • TeamsAppSettings se recupera por primera vez.
  • La aplicación de Teams con permisos RSC está instalada para un usuario.

Nota:

Se agrega control de Administración para permitir o bloquear la configuración de consentimiento RSC en función de la confidencialidad de los datos a los que se accede. No se basa en el único conmutador maestro que habilita o deshabilita la configuración de consentimiento para los permisos RSC de la aplicación para todas las aplicaciones del inquilino.


Cargar la aplicación personalizada en Teams

Si su administrador de Teams permite cargas de aplicaciones personalizadas, puede cargar la aplicación personalizada directamente en un equipo, chat o usuario específicos.

Importante

Si se produce el siguiente error al transferir localmente una aplicación de Teams que requiere permisos de consentimiento Resource-Specific (RSC): WebApplicationInfoIdOfSideloadedAppMustBeInTheSameTenantAsUser

Asegúrese de que se cumple una de las condiciones siguientes:

  • El usuario que intenta instalar la aplicación es un administrador de inquilinos.
  • El registro de la aplicación asociado a la aplicación Teams se creó en el mismo inquilino que el usuario.

Comprobar aplicación Permiso RSC concedido a la aplicación

Para comprobar los permisos RSC de la aplicación, siga estos pasos:

  1. Obtenga un token de acceso de la Plataforma de identidad de Microsoft.
  2. Compruebe los permisos RSC concedidos a un recurso específico.

Obtención de un token de acceso de la Plataforma de identidad de Microsoft

Para realizar llamadas a la API de Graph, debe obtener un token de acceso para la aplicación desde la plataforma de identidad. Para que la aplicación pueda obtener un token de la plataforma de identidad, debe registrar la aplicación en el Centro de administración de Microsoft Entra. El token de acceso contiene información sobre la aplicación y sus permisos para los recursos y las API disponibles a través de Microsoft Graph.

Debe tener los siguientes valores del proceso de registro de Microsoft Entra para recuperar un token de acceso de la plataforma de identidad:

  • Id. de aplicación: el identificador de aplicación asignado por el Centro de administración de Microsoft Entra a la aplicación. Si la aplicación admite el inicio de sesión único (SSO), debe usar el mismo identificador de aplicación para la aplicación y el SSO.
  • Secreto ocertificado de cliente: la contraseña de la aplicación o el par de claves pública o privada que es el certificado. El secreto o certificado de cliente no es necesario para las aplicaciones nativas.
  • URI de redireccionamiento: la dirección URL de la aplicación para recibir respuestas de Microsoft Entra ID.

Para obtener más información, vea obtener acceso en nombre de un usuario y obtener acceso sin un usuario.

Comprobación de los permisos RSC concedidos a un recurso específico

Puede comprobar el tipo de permiso RSC concedido a un recurso en la aplicación:

  • Para obtener permisos RSC de aplicación, llame a las siguientes API para recuperar la lista de aplicaciones instaladas en un equipo, chat o usuario:

    Estos son todos los permisos de RSC de aplicación concedidos en este recurso específico. Cada entrada de la lista se puede correlacionar con la aplicación Teams haciendo coincidir la clientAppId de la lista de concesiones de permisos con la webApplicationInfo.Id propiedad del manifiesto de la aplicación.

  • Los permisos RSC delegados son permisos exclusivos de cliente de Teams. No puede recuperar la lista de aplicaciones instaladas en un equipo o chat, ya que estos permisos se conceden cuando un usuario interactúa con la aplicación.

Importante

Los permisos RSC no se atribuyen a un usuario. Las llamadas se realizan con permisos de aplicación, no con permisos delegados por el usuario. Se puede permitir que la aplicación realice acciones que el usuario no puede, como eliminar una pestaña. Debe revisar la intención del propietario del equipo o del chat para su uso antes de realizar llamadas a la API RSC. Para obtener más información, vea Introducción a la API de Microsoft Teams.

Después de instalar la aplicación en un recurso, puede usar Microsoft Graph Explorer para ver los permisos que se han concedido a la aplicación en el recurso.

Comprobar si la aplicación tiene permisos RSC agregados en un equipo

  1. Obtenga el groupId del equipo de Teams.

  2. En Teams, seleccione Teams en el panel izquierdo.

  3. Seleccione el equipo donde se va a instalar la aplicación.

  4. Seleccione los puntos suspensivos ●●● para ese equipo.

  5. Seleccione Obtener vínculo al equipo en la lista desplegable.

  6. Copie y guarde el valor de groupId desde el cuadro de diálogo emergente Obtener un vínculo al equipo .

  7. Inicie sesión en el Probador de Graph.

  8. Realice una llamada GET a este punto de conexión: https://graph.microsoft.com/beta/teams/{teamGroupId}/permissionGrants.

    El clientAppId campo de la respuesta debe asignarse webApplicationInfo.id al especificado en el manifiesto de la aplicación.

    La captura de pantalla muestra la respuesta del explorador de Graph a la llamada GET para los permisos RSC del equipo.

Para obtener más información sobre cómo obtener detalles de las aplicaciones instaladas en un equipo específico, vea obtener los nombres y otros detalles de las aplicaciones instaladas en el equipo especificado.

Comprobar si la aplicación tiene permisos RSC agregados en un chat

  1. Obtenga el identificador de subproceso de chat del cliente web de Teams.

  2. En el cliente web de Teams, seleccione Chat en el panel izquierdo.

  3. Seleccione el chat en el que instaló la aplicación en la lista desplegable.

  4. Copie la dirección URL web y guarde el identificador de subproceso de chat de la cadena.

    La captura de pantalla muestra el identificador de subproceso de chat de la dirección URL web.

  5. Inicie sesión en el Probador de Graph.

  6. Realice una llamada GET al siguiente punto de conexión: https://graph.microsoft.com/beta/chats/{chatId}/permissionGrants.

    El clientAppId campo de la respuesta debe asignarse webApplicationInfo.id al especificado en el manifiesto de la aplicación.

    La captura de pantalla muestra la respuesta del Probador de Graph a la llamada GET para permisos RSC de chat.

Para obtener más información sobre cómo obtener detalles de aplicaciones instaladas en un chat específico, vea obtener los nombres y otros detalles de las aplicaciones instaladas en el chat especificado.

Comprobación de la aplicación para obtener permisos RSC agregados para un usuario

  1. Usar la API Obtener usuario. En la dirección URL de la solicitud, pase el UPN del usuario y, desde el cuerpo de la respuesta, use el id campo como identificador del usuario.

  2. Inicie sesión en el Probador de Graph.

  3. Realice una llamada GET a este punto de conexión: https://graph.microsoft.com/beta/users/{user-id}/permissionGrants.

    Como alternativa, puede pasar el UPN del usuario en lugar del user-idarchivo .

    El clientAppId campo de la respuesta debe asignarse webApplicationInfo.id al especificado en el manifiesto de la aplicación de Teams.

    La captura de pantalla muestra la respuesta del Probador de Graph a la llamada GET para los permisos RSC del usuario.

Para obtener más información sobre cómo obtener detalles de las aplicaciones instaladas para el usuario, consulte Obtener los nombres y otros detalles de las aplicaciones instaladas para el usuario.

Ejemplo de código

Ejemplo de nombre Descripción .NET Node.js Manifiesto de la aplicación
Consentimiento específico de recursos (RSC) En esta aplicación de ejemplo se muestra cómo solicitar permisos de consentimiento específico de recursos (RSC), usarlos para llamar a Microsoft Graph y enumerar las concesiones de permisos a través de una pestaña de Teams. View View View
Configurar los permisos de RSC En este ejemplo se muestra cómo configurar los permisos de consentimiento específico de recursos (RSC) en un manifiesto de aplicación de Teams y usarlos para llamar a Microsoft Graph, lo que le permite observar respuestas reales de la API tanto en canales de equipo como en chats grupales. ND View ND

Consulte también