Қолданушыны анықтаудың икемді механизмі – PAM модулі. Қолданбаларға тәуелсіз аутентификация схемаларын интеграциялауға мүмкіндік береді. Ашық кодты жүйе.
Плагиндік аутентификациялау модулі (PAM) – бірнеше төменгі деңгейдегі аутентификациялау схемаларын жоғары деңгейдегі қолданбалы бағдарламалау интерфейсіне (API) біріктіретін механизм. PAM аутентификацияға сүйенетін бағдарламаларды негізгі аутентификациялау схемасынан тәуелсіз жазуға мүмкіндік береді. Ол алғаш рет Sun Microsystems компаниясы 1995 жылғы қазан айындағы Open Software Foundation Request for Comments (RFC) 86.0 құжатында ұсынған. Ол Common Desktop Environment аутентификациялық жүйесі ретінде қабылданды. PAM жекеше ашық кодты инфрақұрылым ретінде алғаш рет 1996 жылғы тамызда Red Hat Linux 3.0.4 нұсқасында Linux PAM жобасында пайда болды. Қазіргі уақытта PAM AIX операциялық жүйесінде, DragonFly BSD, FreeBSD, HP UX, Linux, macOS, NetBSD және Solaris жүйелерінде қолдау көрсетіледі. PAM мінез-құлқының орталық стандарты болмағандықтан, кейіннен X/Open UNIX стандарттау процесінің бір бөлігі ретінде PAM-ды стандарттауға талпыныс жасалды, нәтижесінде X/Open Single Sign on (XSSO) стандарты пайда болды. Бұл стандарт бекітілмеді, бірақ стандарттың жобасы кейінгі PAM жүзеге асырулары үшін (мысалы, OpenPAM) анықтамалық нүкте ретінде қызмет етті.
A pluggable authentication module (PAM) is a mechanism to integrate multiple low level authentication schemes into a high level application programming interface (API). PAM allows programs that rely on authentication to be written independently of the underlying authentication scheme. It was first proposed by Sun Microsystems in an Open Software Foundation Request for Comments (RFC) 86.0 dated October 1995. It was adopted as the authentication framework of the Common Desktop Environment. As a stand alone open source infrastructure, PAM first appeared in Red Hat Linux 3.0.4 in August 1996 in the Linux PAM project. PAM is currently supported in the AIX operating system, DragonFly BSD, FreeBSD, HP UX, Linux, macOS, NetBSD and Solaris. Since no central standard of PAM behavior exists, there was a later attempt to standardize PAM as part of the X/Open UNIX standardization process, resulting in the X/Open Single Sign on (XSSO) standard. This standard was not ratified, but the standard draft has served as a reference point for later PAM implementations (for example, OpenPAM).
Сындар
PAM-нің көптеген нұсқалары қашықтағы клиенттермен тікелей байланыспайтындықтан, PAM өзі Unix жүйелерінде ең көп қолданылатын SSO түрі – Kerberos-ті іске асыра алмайды. Осы себепті SSO, болашақ XSSO стандартының «негізгі аутентификация» бөлігі ретінде енгізілді және SPNEGO және SASL сияқты технологиялар пайда болды. Осы мүмкіндіктердің жетіспеуі SSH-тің өз аутентификация механизмін келісуге мәжбүр етеді. Көптеген PAM нұсқаларында pam krb5 тек билет беру билеттерін (Ticket Granting Tickets) алады, бұл пайдаланушыдан құпия сөз сұрауды қамтиды, және бұл тек SSO ортасында алғашқы кіру үшін қолданылады. Нақты бір қолданбаға қызметтік билет алу үшін және пайдаланушыдан қайта-қайта құпия сөз енгізуді сұрамау үшін, сол қолданба Kerberos-ты қолдау үшін арнайы бағдарламаланған болуы керек. Себебі pam krb5 өзі қызметтік билеттерді ала алмайды, бірақ PAM KRB5-тің кейбір нұсқалары осы мәселені шешуге тырысып жатыр.
Since most PAM implementations do not interface with remote clients themselves, PAM, on its own, cannot implement Kerberos, the most common type of SSO used in Unix environments. This led to SSO's incorporation as the "primary authentication" portion of the would be XSSO standard and the advent of technologies such as SPNEGO and SASL. This lack of functionality is also the reason SSH does its own authentication mechanism negotiation. In most PAM implementations, pam krb5 only fetches Ticket Granting Tickets, which involves prompting the user for credentials, and this is only used for the initial login in an SSO environment. To fetch a service ticket for a particular application, and not prompt the user to enter credentials again, that application must be specifically coded to support Kerberos. This is because pam krb5 cannot itself get service tickets, although there are versions of PAM KRB5 that are attempting to work around the issue.