Expand description
PAM module: validates an OAuth 2.0 access token supplied as the PAM authentication token (or prompted via the conversation) and grants access when the token’s username claim matches the PAM user.
Configuration is passed as arguments in the PAM stack definition: config=, userid=, grace=, iss=, jwks=, trusted_aud=, trusted_azp=, required_scope=, only_from=, allowed_alg=, disallowed_alg=, disallowed_username= (trusted_aud/trusted_azp/required_scope may be given multiple times.)
Structure: ffi wraps the PAM ABI in the safe PamHandle; the module
logic (authenticate) is safe Rust; the unsafe extern "C" entry points
below only validate raw arguments, build the wrappers, guard against
panics and dispatch.