UNPKG

amps-kerberos-authenticator

Version:
71 lines (45 loc) 2 kB
# AMPS JavaScript Client Kerberos Authentication for Node.js ## Installation ```bash npm install --save amps-kerberos-authenticator ``` ## Dependencies `amps-kerberos-authenticator` depends on the `amps` and `kerberos` packages. In case of the installation from NPM, all the dependencies are installed automatically. ## Kerberos Prerequisites - AMPS SPN (for example, `AMPS/host.domain.com`) - Optionally set Kerberos environment variables - `KRB5_CONFIG` set to a **krb5.conf** file that will override the default (the default is `/etc/krb5.conf` on linux) - `KRB5_CLIENT_KTNAME` set to a KeyTab for the user you want to authentication as In Node.js, environment variables can be set in the source code: ```javascript process.env['KRB5_CONFIG'] = '/path/to/krb5.conf'; process.env['KRB5_CLIENT_KTNAME'] = '/path/to/client_name.keytab'; ``` ## Example For Kerberos authentication using JavaScript there is a single class, `AMPSKerberosAuthenticator`, for authentication in Node.js environment. ```javascript const Client = require('amps').Client; const AMPSKerberosAuthenticator = require('amps-kerberos-authenticator').AMPSKerberosAuthenticator; async function main() { const client = new Client('demo'); // connection credentials const login = 'username'; const port = 10304; const hostName = 'hostname'; const uri = `ws://${login}@${hostName}:${port}/amps/json`; const spn = `AMPS/${hostName}`; try { // connect await client.connect(uri, new AMPSKerberosAuthenticator(spn)); } catch (err) { console.error('err: ', err); } } main(); ``` ## See Also [Kerberos Authentication Blog Article](http://www.crankuptheamps.com//blog/posts/2019/06/04/kerberos-authentication/) [libamps_multi_authentication](http://devnull.crankuptheamps.com/documentation/html/5.3.0.0/user-guide/html/chapters/auxiliary_modules.html#authentication-with-the-amps-multimechanism-authentication-module) AMPS Server Module