OS X自定义登录身份验证

时间:2019-02-14 07:40:03

标签: macos security authentication login sfauthorizationpluginview

我的要求
我需要使用自己的逻辑在登录时对用户进行身份验证,例如:调用外部身份验证服务器并在服务器无法访问的情况下使用OpenDirectory。

我所知道的
我知道我需要创建一个授权插件,例如苹果的示例NullAuthPlugin,并在“ system.login.console”权限的授权数据库中添加一个条目,以调用我的插件来实现此目的。

我需要的
我能否无需替换来实现我的要求,而无需替换登录窗口GUI,即机制<string>loginwindow:login</string>? 即,我能否通过保持现有mac的登录屏幕不变并获得执行我自己的身份验证的凭据来实现这一目标?如果可能的话,我应该将我的机制放在“ system.login.console”上吗?

我的想法
我想用自己的插件替换<string>builtin:authenticate,privileged</string>来满足我的要求吗?是否可以替换buitin登录机制?

我的方法正确吗?有人可以帮我澄清一下吗?

1 个答案:

答案 0 :(得分:3)

据我了解,您可以创建一个授权插件,并将其放在<string> loginwindow: login </ string>之后。

它不会代替macOS auth,但会添加一层,我不确定如果删除<string> builtin: authenticate, privileged </ string>会是什么样,但是我想我记得我曾尝试过类似的方法,崩溃。

否则,您也可以编写一个PAM模块,仅在其上调用PAM堆栈:<string> builtin: authenticate, privileged </ string> 如果您在sufficient文件上添加带有/etc/pam.d/authorization控制标志的模块,它将完成这项工作。