La plataforma de vehículos definidos por software (SDV) proporciona un framework de autorización para permitir que el OEM controle el acceso a algunos recursos.
Android tiene un modelo de permisos en el que cada app declara sus propios permisos en el archivo de manifiesto para describir sus capacidades. El modelo de autorización de SDV es similar. Los paquetes de servicios de SDV definen permisos para declarar las acciones que pueden realizar, como publicar, suscribirse, entregar y llamar.
Tipos de permisos
Se admiten los siguientes tipos de permisos:
- Cliente
- Tiene autorización para llamar a métodos en una interfaz de RPC, identificada por el tipo de servicio y el canal.
- Servidor
- Autorizado para implementar y entregar una interfaz de RPC, identificada por el tipo de servicio y el canal.
- Publicador
- Autorizado para publicar mensajes en un tema de datos, identificado por el tipo de mensaje y el tema.
- Suscriptor
- Autorizado para recibir mensajes de un tema de datos, identificado por el tipo de mensaje y el tema.
Archivo de política de autorización
El archivo de política de autorización es una fuente única de información para la configuración de autorización de la pila de comunicaciones de SDV de un paquete de servicios de SDV.
Ejemplo
# Allows this SB to register publication of TireStatus type with "left-tire" topic only.
publisher {
message: "com.sdv.TireStatus"
topic: "left-tire"
}
# Allows this SB to subscribe to publication of TireStatus type with "left-tire" topic only.
subscriber {
message: "com.sdv.TireStatus"
topic: "left-tire"
}
# Allows this SB to implement and serve UserPreferencesManager service.
server {
service: "com.sdv.UserPreferencesManager"
channel: "default"
}
# Allows this SB to discover and call UserPreferencesManager service.
client {
service: "com.sdv.UserPreferencesManager"
channel: "default"
}
Consulta Implementación para determinar a qué servicio pertenece un archivo de política de autorización específico. Para obtener más información sobre el esquema proto, consulta Política de autorización. Para obtener información sobre cómo se aplican las políticas y cómo inspeccionar los registros de auditoría cuando falla una verificación de permisos, consulta Aplicación de políticas y Depura los incumplimientos de permisos.
Permisos a nivel de la VM
Los permisos a nivel de la VM definen las políticas de autorización para la comunicación entre las diferentes VMs de la red en malla. Esto proporciona seguridad de defensa en profundidad en caso de que una VM se vea comprometida. Para obtener más información, consulta Permisos a nivel de la VM.
Red en malla
La arquitectura de descubrimiento de servicios se configura de modo que todas las políticas de autorización se compartan entre las VMs de la red en malla. La intervención del usuario no es obligatoria.
El descubrimiento de servicios realiza una búsqueda en la caché local para descubrir unidades de servicio en una VM remota. Todas las políticas de autorización se comparten entre las VMs para verificar si el emisor del descubrimiento de servicios está autorizado para las unidades de servicio descubiertas.
Cada nodo dentro de la red en malla almacena en caché las políticas de autorización de todos los demás nodos. Cuando se introduce un nodo nuevo, sus políticas de autorización se replican en todos los demás nodos. Si se pierde la conexión de un nodo, como durante un reinicio o una falla, se borran todas las políticas de autorización almacenadas en caché de ese nodo. Para obtener orientación sobre cómo colocar listas de control de acceso (LCA) de tipo de unidad en varias VMs y evitar conflictos de políticas cuando se desconecta un nodo, consulta LCA de tipo de unidad.