Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
src
tests
.gitignore
LICENSE
README.md
amps-kerberos-authenticator.d.ts
amps-kerberos-authenticator.js
amps-kerberos-authenticator.min.js
package.json
tsconfig.json

README.md

AMPS JavaScript Client Kerberos Authentication for Node.js

Installation

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:

    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.

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

libamps_multi_authentication AMPS Server Module

You can’t perform that action at this time.