Concesión de permisos de RSC a la aplicación

El consentimiento específico de recursos (RSC) es una integración 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 sea equipos, chats o usuarios dentro de una organización.

En esta sección, aprenderá a:

  1. Adición de permisos de RSC a la aplicación de Teams
  2. Instalación de la aplicación en un equipo, chat o usuario
  3. Comprobación del permiso RSC de la aplicación concedido a la aplicación

Adición de permisos de RSC a la aplicación de Teams

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

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

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

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

Advertencia

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

Actualizar el manifiesto de la aplicación

Debe declarar permisos de 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 como Centro de administración Microsoft Entra los almacena.

Solicitud de permisos de RSC para la aplicación teams

Para solicitar permisos de RSC para una aplicación, enumere los permisos que requiere la aplicación 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 aplicación v1.12 o posterior.

Cada vez que un usuario autorizado instala la aplicación en Teams, se muestran al usuario los permisos de 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 de RSC para el manifiesto de aplicación v1.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 El identificador de la aplicación Microsoft Entra. Para obtener más información, consulte Registro de la aplicación en el Centro de administración 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 necesarios para 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 tanto en ámbitos de equipo como de chat, se pueden especificar permisos de equipo y chat en el mismo manifiesto de aplicación en authorization.

Ejemplo de permisos de 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 de 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 de 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 de RSC para el manifiesto de aplicación v1.11 o anterior

Nota:

Se recomienda usar el manifiesto de aplicación v1.12 o posterior.

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

Nombre Tipo Descripción
id Cadena El identificador de la aplicación Microsoft Entra. Para obtener más información, consulte Registro de la aplicación en el Centro de administración 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 de RSC para la aplicación. Para obtener más información, consulte Permisos de RSC admitidos.

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

Ejemplo de permisos de 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 de 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 de RSC para un usuario:

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

Instalación de 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 la configuración de consentimiento para el equipo, el chat o el usuario.
  2. Cargue la 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 de 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.

Advertencia

La forma de administrar la configuración de permisos de RSC de chat y equipo se está actualizando. El período de preselección para las nubes gubernamentales ha comenzado y continúa hasta el 14 de mayo de 2024. Durante este período, las organizaciones de la nube gubernamental pueden seguir usando el consentimiento del propietario del grupo. Para todas las demás organizaciones, a continuación se indican las instrucciones para modificar la configuración de consentimiento en PowerShell.

Para las organizaciones en nubes gubernamentales, puede administrar la configuración de consentimiento con la configuración de consentimiento del propietario del grupo en Centro de administración Microsoft Entra hasta el 14 de mayo de 2024.

PowerShell y Graph API administran la configuración de RSC de nivel de inquilino. 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 cada sección muestra ejemplos de cómo usar estos estados para ajustar la configuración:

Estado de PowerShell Description
ManagedByMicrosoft Este es el estado predeterminado para todos los inquilinos. Permite que los permisos de 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) del inquilino pueden dar su consentimiento a cualquier aplicación que solicite permisos de RSC.
DisabledForAllApps Los usuarios no pueden dar su consentimiento a ningún permiso de RSC.

Configuración del equipo RSC mediante cmdlets de PowerShell

Puede configurar qué usuarios pueden dar su consentimiento a las aplicaciones que acceden 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 equipo RSC para todas las aplicaciones:

Set-MgBetaTeamRscConfiguration -State EnabledForAllApps

Configuración de RSC de chat mediante cmdlets de PowerShell

Puede configurar qué usuarios pueden dar su consentimiento a las aplicaciones que acceden 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

Configuración del consentimiento del propietario del usuario para RSC para un usuario mediante las API de Graph

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

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

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

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

Nota:

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


Carga de la aplicación personalizada en Teams

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

Comprobación del permiso RSC de la aplicación concedido a la aplicación

Para comprobar los permisos de 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 de 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. Antes de que la aplicación pueda obtener un token de la plataforma de identidad, debe registrar la aplicación en el Centro de administración 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 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 inicio de sesión único.
  • Secreto de cliente o Certificado: la contraseña de la aplicación o el par de claves pública o privada que es el certificado. El secreto de cliente o el certificado no son necesarios para las aplicaciones nativas.
  • URI de redireccionamiento: 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 de RSC concedidos a un recurso específico

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

  • Para los permisos de RSC de la 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 RSC de aplicación concedidos en este recurso específico. Cada entrada de la lista se puede correlacionar con la aplicación de Teams si coincide en clientAppId la lista de concesiones de permisos con la webApplicationInfo.Id propiedad del manifiesto de la aplicación.

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

Una vez instalada la aplicación en un recurso, puede usar el Explorador de Microsoft Graph 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 vínculo Obtener un al cuadro de diálogo emergente del 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 al webApplicationInfo.id especificado en el manifiesto de la aplicación.

    Captura de pantalla que muestra la respuesta del Explorador de Graph a la llamada GET para los permisos de 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 donde ha instalado 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.

    Captura de pantalla que muestra el identificador de subproceso de chat desde 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 al webApplicationInfo.id especificado en el manifiesto de la aplicación.

    Captura de pantalla que muestra la respuesta del Explorador de Graph a la llamada GET para los permisos de 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 los permisos de RSC agregados para un usuario en la aplicación

  1. Use 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 de .user-id

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

    Captura de pantalla que muestra la respuesta del Explorador 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, vea 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 este código de ejemplo se describe el proceso para usar RSC para llamar a graph API. View View Ver

Consulte también