用于MAC登录的MFA(第二身份验证)

时间:2019-05-09 11:41:47

标签: ios xcode macos authentication sfauthorizationpluginview

我需要使用自己的逻辑在 MAC登录下对用户进行身份验证,例如:调用外部身份验证服务器

我知道我需要创建一个授权插件,例如苹果的示例代码(NullAuthPlugin,NameAndPassword),并在'system.login.console'权限的authorizationdb中添加一个条目,以调用我的插件实现这一点(SFAuthorizationPluginView)

但是我需要在MAC的默认登录屏幕(第二因素身份验证)之后调用我的插件

我的插件名称是CustomLogin,其函数名称是invoke,所以我正在使用

在plist文件中,我应将CustomLogin:invoke放在哪里,以确保在正常的MAC AD身份验证屏幕后调用该插件

除此以外,我还需要做其他事情吗? 请提出解决方案。

1 个答案:

答案 0 :(得分:3)


通常,身份验证macos发生在<string> rule builtin: authenticate, privileged </ string>中,因此,如果您希望在必须将其放置在该机制之后执行该机制。
无需修改IU,成功或失败将是无声;如果您想更改ui的元素以通知用户失败,我认为您将必须执行sfauthorizationpluginview并在原始登录之前添加测试;

否则,您也可以编写一个PAM模块,它通常更简单,但是macOS的登录UI不能满足我所看到的PAM对话功能的严格要求,因此它仅适用于没有UI的模块。仅在其上调用PAM堆栈:<string> builtin: authenticate, privileged </ string>