软件定义汽车 (SDV) 平台提供了一个授权框架,允许 OEM 控制对某些资源的访问。
Android 采用权限模型,每个应用都会在清单文件中声明自己的权限,以描述其功能。SDV 授权模型与之类似。SDV 服务包定义了权限,以声明其可以执行的操作,例如发布、订阅、提供服务和调用。
权限类型
支持以下权限类型:
- 客户
- 有权调用 RPC 接口上的方法,由服务类型和通道标识。
- 服务器
- 有权实现和提供 RPC 接口,由服务类型和通道标识。
- 发布商
- 有权向数据主题发布消息,由消息类型和主题标识。
- 订阅者
- 有权接收来自数据主题的消息,由消息类型和主题标识。
授权政策文件
授权政策文件是 SDV 服务软件包的 SDV 通信堆栈授权配置的单一事实来源。
示例
# 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"
}
请参阅部署,确定特定授权政策文件属于哪项服务。如需详细了解 proto 架构,请参阅授权政策。如需了解如何强制执行政策以及如何在权限检查失败时检查审核日志,请参阅强制执行和调试权限违规问题。
虚拟机级权限
虚拟机级权限定义了网状网络中不同虚拟机之间通信的授权政策。这样,即使一个虚拟机遭到入侵,也能提供纵深防御安全性。如需了解详情,请参阅虚拟机级权限。
网状网络
服务发现架构经过设置,可让网状网络中的所有虚拟机共享所有授权政策。这个过程无需用户干预。
服务发现会执行本地缓存查找,以发现远程虚拟机上的服务单元。所有授权政策都会在虚拟机之间共享,以检查服务发现调用方是否已获得所发现服务单元的授权。
网状网络中的每个节点都会缓存来自所有其他节点的授权政策。引入新节点时,其授权政策会复制到所有其他节点。如果节点连接丢失(例如在重新启动或崩溃期间),则该节点中的所有缓存授权政策都会被删除。如需了解如何在多个虚拟机中放置单元类型访问控制列表 (ACL),以及如何在节点断开连接时避免政策冲突,请参阅单元类型 ACL。