Utilización del control de accesos a nivel de recurso

Con el control de acceso a nivel de recurso, puede controlar el acceso de usuario y de clave de API para gestionar dispositivos.

Puede utilizar grupos de recursos para especificar los dispositivos en una organización que puede gestionar cada usuario o clave de API.

Para obtener más información sobre cómo configurar el control de acceso a nivel de recursos, consulte Configuración del control de acceso a nivel de recurso.

Conceptos del control de acceso a nivel de recurso

Los grupos de dispositivos forman parte de los controles de acceso a nivel de recursos de la IoT herramienta. Puede utilizar la característica de grupos de dispositivos para gestionar el número de dispositivos al que puede acceder el personal según su rol. Antes de implementar los grupos de dispositivos, determine y registre la intención y el ámbito de los grupos de dispositivos para aumentar la eficiencia de su solución.

Puede implementar grupos de dispositivos como parte de su solución de IoT para permitir que un usuario o aplicación acceda a un subconjunto de dispositivos en lugar de a todos los dispositivos asociados con la organización. Para aumentar la eficiencia de los grupos de dispositivos, utilícelos cuando una persona deba tener acceso a muchos dispositivos.

Por ejemplo, una empresa que emplea a un número de ingenieros de campo y personal de operaciones desea implementar una solución de IoT en Reino Unido. La empresa configura un grupo de dispositivos para cada una de las 69 ciudades, 9 grupos de dispositivos para cada región geográfica y un grupo de dispositivos para todo el Reino Unido. Los dispositivos se asignan a estos grupos y los grupos se asignan a los 15 ingenieros de campo y personal de operaciones, algunos de los cuales tienen acceso a más de un grupo. Los usuarios que solo son responsables de uno o dos dispositivos pueden seguir utilizando aplicaciones móviles y arquitecturas empresariales externas a la IoT herramienta, pero que complementan la solución global IoT.

Límites de grupos de recursos para el control de acceso

Los límites de grupos de recursos se imponen para asegurarse de que la característica de control de acceso a nivel de recurso funciona de forma efectiva. Los límites restringen el número de grupos de recursos asignados a un sujeto, el número de dispositivos dentro de los grupos y el número de grupos a los que puede pertenecer un recurso.

Los siguientes parámetros vienen impuestos:

  • Se pueden asignar un máximo de 10 grupos de recursos a una clave de API, usuario o pasarela.
  • Un grupo de recursos puede tener un máximo de 300 recursos.
  • Un recurso puede pertenecer a un máximo de 10 grupos.

Terminología del control de acceso a nivel de recurso

Puede utilizar las siguientes secciones para ayudarle a entender la terminología utilizada en la característica de control de acceso a nivel de recurso.

Sujetos

Un sujeto es un dispositivo autenticado que solicita acceso a la plataforma, que tiene que recibir autorización. Son válidos los siguientes tipos de sujeto:

  • Usuarios: Las personas que utilizan las aplicaciones. Un miembro es un usuario cuya cuenta no tiene fecha de caducidad y un invitado es un usuario cuya cuenta tiene fecha de caducidad.
  • Dispositivos : Dispositivos físicos que acceden a la IoT herramienta y utilizan el tipo Dispositivo.
  • Gateways : Dispositivos físicos que acceden a la IoT herramienta y utilizan el tipo Gateway.
  • Aplicaciones : aplicaciones o servicios que acceden a IoT la herramienta utilizando claves API para la autorización y el control de acceso.

Recursos

Un recurso es un dispositivo sobre el que el sujeto realiza la acción. El sujeto solicita acceso a la plataforma autorizado para el recurso.

Acciones

La acción es lo que el sujeto realiza, que comúnmente es crear, leer, actualizar, suprimir o ejecutar. Las operaciones se utilizan para agrupar acciones en recursos.

Aplicaciones

Una aplicación puede actuar en nombre de un sujeto desconocido para la herramienta, como una aplicación móvil que controla un dispositivo doméstico, y una aplicación puede actuar en nombre de un dispositivo real o simulado conocido o desconocido para la herramienta. Una aplicación también puede ser una aplicación del lado del servidor verdadera que no esté actuando en nombre de otro tipo de dispositivo.

La autenticación la proporciona y el acceso a la IoT herramienta se concede en función de una clave API o un token.

Operaciones

Una operación contiene una o más acciones que se ejecutan en un determinado tipo de recurso utilizando interfaces de usuario e interfaces programáticas, como por ejemplo servicios REST e interfaces MQTT. Son utilizados por diferentes sujetos, como miembros, aplicaciones y dispositivos. Las operaciones se identifican por su ID de operación (OID).

Roles

Los roles son conjuntos de operaciones que se utilizan para proporcionar permisos para utilizar las operaciones. Un sujeto puede tener varios roles y el rol es un atributo de un sujeto.

Formato de roles
Matriz de 0..n roles
    { "roles": [ "PD_ADMIN_APP" ] }
Formato de roles a grupos
Correlación de 0..n < string, list < string> pairs < /string>
    { "rolesToGroups": { "PD_ADMIN_APP": [ "group1" ] } }

Permisos

Los permisos permiten a un sujeto ejecutar operaciones en un recurso o grupo de recursos.

Grupos de recursos

Un grupo de recursos es una colección de dispositivos y recursos. Los dispositivos se pueden añadir a grupos de recursos y los grupos de recursos se pueden asignar a sujetos en pares de roles para grupos. Estas relaciones permiten a los sujetos realizar operaciones para un rol en grupos específicos de dispositivos.

Usuarios

Los usuarios inician sesión en el panel de IoT control de la herramienta utilizando un ID que es miembro de una organización. Los usuarios son roles asignados que les garantizan la autorización para llamar a ciertos conjuntos de API de HTTP. Para obtener más información sobre los roles de usuario, consulte Roles de usuario.

Claves de API

Las claves API son tokens que se utilizan para llamar a las API de IoT la herramienta HTTP. Las claves de API son roles asignados que les garantizan la autorización para llamar a ciertos conjuntos de API de HTTP. Para obtener más información sobre las funciones de las claves API, consulte Funciones de la aplicación.

API donde el control de acceso a nivel de recurso viene impuesto

Cuando el control de acceso a nivel de recurso está habilitado, las siguientes API relacionadas con el dispositivo solo funcionan si el dispositivo especificado está accesible para el interlocutor.

API de dispositivo (individual)

Listar dispositivos de tipo
Solo devuelve el subconjunto de dispositivos que pertenece a los grupos adecuados.
    GET /api/v0002/device/types/${typeId}
Obtener dispositivo
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    GET /api/v0002/device/types/${typeId}/devices/${deviceId}
Obtener detalles de gestión de dispositivos
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    GET /api/v0002/device/types/${typeId}/devices/${deviceId}/mgmt
Obtener dispositivos registrados por una pasarela
Devuelve un error 404 si la pasarela no está accesible para el interlocutor. Solo devuelve el subconjunto de dispositivos que pertenece a los grupos adecuados. Los dispositivos y las pasarelas deben estar en el grupo del interlocutor.
    GET /api/v0002/device/types/${typeId}/devices/${gatewayId}/devices
Actualizar dispositivo
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    PUT /api/v0002/device/types/${typeId}/devices/${deviceId}
Eliminar dispositivo
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    DELETE /api/v0002/device/types/${typeId}/devices/${deviceId}

API de dispositivo (masivo)

Listar dispositivos
Solo devuelve el subconjunto de dispositivos que pertenece a los grupos adecuados.
    GET /api/v0002/bulk/devices
Eliminar dispositivos
Solo suprime el subconjunto de dispositivos que pertenece a los grupos adecuados. Los dispositivos que no están accesibles se siguen devolviendo con sucesos = true.
    DELETE /api/v0002/bulk/devices/remove
Actualizar dispositivos
    PUT /api/v0002/bulk/devices/update

API de gestión de dispositivo

Iniciar solicitud
Falla si algún dispositivo no está accesible para el interlocutor.
    POST /api/v0002/mgmt/requests
Suprimir solicitud
Falla si algún dispositivo no está accesible para el interlocutor.
    DELETE /api/v0002/mgmt/requests/${requestId}
Ver solicitud
    GET /api/v0002/mgmt/requests/${requestId}
Listar solicitudes
    GET /api/v0002/mgmt/requests
Obtener una solicitud
    GET /api/v0002/mgmt/requests/${requestId}
Obtener detalles de dispositivo de solicitud
    GET /api/v0002/mgmt/requests/${requestId}/deviceStatus
Obtener detalles de dispositivo de solicitud para un dispositivo
    GET /api/v0002/mgmt/requests/${requestId}/deviceStatus/${typeId}/${deviceId}

API de determinación de problemas

Registros de conexión para un dispositivo
Devuelve una matriz vacía si el dispositivo no está accesible.
    GET /api/v0002/logs/connection
Añadir código de error de dispositivo
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    POST /api/v0002/device/types/${typeId}/devices/${deviceId}/diag/errorCodes
Listar códigos de error de dispositivo
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    GET /api/v0002/device/types/${typeId}/devices/${deviceId}/diag/errorCodes
Borrar códigos de error de dispositivo
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    DELETE /api/v0002/device/types/${typeId}/devices/${deviceId}/diag/errorCodes
Añadir registro de diagnóstico de dispositivo
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    POST /api/v0002/device/types/${typeId}/devices/${deviceId}/diag/logs
Añadir registro de diagnóstico de dispositivo
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    POST /api/v0002/device/types/${typeId}/devices/${deviceId}/diag/logs
Listar anotaciones de diagnóstico de dispositivo
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    GET /api/v0002/device/types/${typeId}/devices/${deviceId}/diag/logs
Listar registro de diagnóstico de dispositivo
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    GET /api/v0002/device/types/${typeId}/devices/${deviceId}/diag/logs
Obtener un registro de diagnóstico de un dispositivo
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    GET /api/v0002/device/types/${typeId}/devices/${deviceId}/diag/logs/${logId}
Borrar registro de diagnóstico de dispositivo
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    DELETE /api/v0002/device/types/${typeId}/devices/${deviceId}/diag/logs
Borrar registro de diagnóstico de dispositivo
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    DELETE /api/v0002/device/types/${typeId}/devices/${deviceId}/diag/logs
Suprimir un registro de diagnóstico de dispositivo
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    DELETE /api/v0002/device/types/${typeId}/devices/${deviceId}/diag/logs/${logId}

API de memoria caché del último suceso

Obtener sucesos para el dispositivo
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    GET /api/v0002/device/types/${typeId}/devices/${deviceId}/events
Obtener sucesos para el dispositivo
Devuelve un error 404 si el dispositivo no está accesible para el interlocutor.
    GET /api/v0002/device/types/${typeId}/devices/${deviceId}/events/${eventId}
Obtener interfaz lógica para el dispositivo
Devuelve un error 404 si el dispositivo no está en el grupo del interlocutor.
    GET /api/v0002/device/types/{typeId}/devices/{deviceId}/state/{logicalInterfaceId}