OS X自定义登录认证

OS X custom login authentication

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

我所知道的
我知道我需要创建一个像苹果示例 NullAuthPlugin 一样的授权插件,并在 'system.login.console' 的 authorizationdb 中添加一个条目来调用我的插件来实现这一点。

我需要什么
我能否在不替换 登录窗口 GUI 即机制 <string>loginwindow:login</string> 的情况下实现我的要求 ? 即,我能否通过保留现有 mac 的登录屏幕并获取凭据来执行我自己的身份验证来实现此目标?如果可能的话,我应该把我的机制放在哪里 'system.login.console' ?

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

我的方法正确吗?谁能帮我澄清一下?

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

它不会取代 macOS 身份验证,但会添加一个层,我不确定如果删除 <string> builtin: authenticate, privileged </ string> 会是什么样子,但我想我记得我尝试过类似的东西并且它正在崩溃。

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