VPlugin
Vplugin is a PAM option where you build the PAM-integration separatly and make use of hashicorp go-plugin. Please read through their documentation as well if working with vplugin.
This is the recommended approach for integrations where open sourcing a PAM integration is not an alternative.
You set the following config to use a pam as vplugin:
pam:
name: vplugin # Name should be set to "vplugin"
plugin_path: path/to/plugin-executable # path to the plugin
type: pluginName # name of the plugin, the key in the plugin map.
# Any other configuration set here will be forwarded to the pam plugin in a map[string]any
plugin_setting: "configValue"