我需要使用自己的逻辑在 MAC登录下对用户进行身份验证,例如:调用外部身份验证服务器
我知道我需要创建一个授权插件,例如苹果的示例代码(NullAuthPlugin,NameAndPassword),并在'system.login.console'权限的authorizationdb中添加一个条目,以调用我的插件实现这一点(SFAuthorizationPluginView)
但是我需要在MAC的默认登录屏幕(第二因素身份验证)之后调用我的插件
我的插件名称是CustomLogin,其函数名称是invoke,所以我正在使用
在plist文件中,我应将CustomLogin:invoke放在哪里,以确保在正常的MAC AD身份验证屏幕后调用该插件
除此以外,我还需要做其他事情吗? 请提出解决方案。
答案 0 :(得分:3)
通常,身份验证macos发生在<string> rule builtin: authenticate, privileged </ string>
中,因此,如果您希望在必须将其放置在该机制之后执行该机制。
无需修改IU,成功或失败将是无声;如果您想更改ui的元素以通知用户失败,我认为您将必须执行sfauthorizationpluginview并在原始登录之前添加测试;
否则,您也可以编写一个PAM模块,它通常更简单,但是macOS的登录UI不能满足我所看到的PAM对话功能的严格要求,因此它仅适用于没有UI的模块。仅在其上调用PAM堆栈:<string> builtin: authenticate, privileged </ string>
。