首页 > 解决方案 > 启动守护程序无法访问钥匙串条目

问题描述

我有一个命令行进程,它正在调用 API 并从钥匙串中获取令牌。当我在终端使用/不使用 sudo 独立运行此过程时,它能够访问钥匙串条目。现在我已将其转换为启动守护程序并尝试将其作为启动守护程序执行,然后它无法访问令牌并给我错误“无法从钥匙串读取存储的项目(状态:-25308)”。我正在使用下面的 plist 来创建启动守护进程。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>TestAuth_SilentDaemon</string>
    <key>Program</key>
    <string>*complete path of TestAuth_SilentDaemon*</string>  
    <key>KeepAlive</key>
    <true/>
    <key>SessionCreate</key>
    <true/>
    <key>UserName</key>
    <string>admin</string>
</dict>
</plist>

有人可以建议我在这里缺少什么吗?

标签: macosmsallaunch-daemon

解决方案


它似乎可以连接到errSecInteractionNotAllowed. 错误 -25308 是 errSecInteractionNotAllowed 这通常意味着您正在尝试访问在设备锁定时无法访问的钥匙串项。

它主要被描述为 iOS 问题,但 MS 文档也谈到:

在 macOS 10.15+ 上,MSAL 的行为在 iOS 和 macOS 之间是相同的。MSAL 使用钥匙串访问组进行钥匙串共享。

查看答案:https ://stackoverflow.com/a/9735506/1595293

根据帖子:


推荐阅读