Project

General

Profile

Actions

Idea #15348

closed

[pam] PAM module in Go

Added by Tom Clegg almost 5 years ago. Updated over 3 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
-
Target version:
Start date:
06/23/2020
Due date:
Story points:
3.0
Release relationship:
Auto

Description

Functionally equivalent to source:sdk/pam but reliable, and packaged as a binary (no dependency on python-pam, python, etc).

The glue for interfacing with PAM, building a shared library, etc. can be taken from MIT-licensed https://github.com/uber/pam-ussh

Authentication:
  • Get desired username from PAM
  • Call PAM to prompt for token (in python this was token = pamh.conversation(pamh.Message(pamh.PAM_PROMPT_ECHO_OFF, prompt)).resp)
  • Use given token to look up current user
  • Use given token to look up virtual_machine matching configured hostname
  • Use given token to look up permission link with matching VM uuid, user uuid, can_login, and properties[username]
  • Log request & outcome
  • Return true/false

Files


Subtasks 1 (0 open1 closed)

Task #16550: Review 15348-pam-moduleResolvedTom Clegg06/23/2020Actions

Related issues

Related to Arvados - Idea #14964: Port arvados-pam to Python 3RejectedActions
Related to Arvados - Bug #6649: [Documentation] webshell installationResolvedWard Vandewege07/16/2015Actions
Related to Arvados - Bug #16100: [keep-web] Avoid sniffing for content type when file extension matches a MIME typeResolvedTom Clegg02/14/2020Actions
Related to Arvados - Bug #16920: [libpam-arvados-go] the deployed pam config breaks /usr/sbin/pam-auth-updateResolvedWard VandewegeActions
Actions

Also available in: Atom PDF