node-radius-server/src/auth/README.md
2021-01-23 22:45:52 +01:00

193 lines
2.8 KiB
Markdown

# Authentications
## Google LDAP
google ldap optimized authenticiation implementaiton
```typescript
interface IGoogleLDAPAuthOptions {
/** base DN
* e.g. 'dc=hokify,dc=com', */
base: string;
tls: {
keyFile: string;
certFile: string;
};
/** tls options
* e.g. {
key: fs.readFileSync('ldap.gsuite.key'),
cert: fs.readFileSync('ldap.gsuite.crt')
} */
tlsOptions?: tls.TlsOptions;
}
```
Example
```js
c = {
// GoogleLDAPAuth (optimized for google auth)
authentication: 'GoogleLDAPAuth',
authenticationOptions: {
base: 'dc=hokify,dc=com',
tls: {
keyFile: 'ldap.gsuite.key',
certFile: 'ldap.gsuite.crt'
}
}
};
```
## LDAP
ldap authentication
```typescript
interface ILDAPAuthOptions {
/** ldap url
* e.g. ldaps://ldap.google.com
*/
url: string;
/** base DN
* e.g. 'dc=hokify,dc=com', */
base: string;
tls: {
keyFile: string;
certFile: string;
};
/** tls options
* e.g. {
servername: 'ldap.google.com'
} */
tlsOptions?: any;
/**
* searchFilter
*/
searchFilter?: string;
}
```
Example
```js
c = {
authentication: 'LDAPAuth',
authenticationOptions: {
url: 'ldaps://ldap.google.com',
base: 'dc=hokify,dc=com',
tlsOptions: {
servername: 'ldap.google.com'
},
tls: {
keyFile: 'ldap.gsuite.key',
certFile: 'ldap.gsuite.crt'
}
}
};
```
## IMAP
imap authenticiation
```typescript
interface IIMAPAuthOptions {
host: string;
port?: number;
useSecureTransport?: boolean;
validHosts?: string[];
}
```
Example
```js
c = {
authentication: 'IMAPAuth',
authenticationOptions: {
host: 'imap.gmail.com',
port: 993,
useSecureTransport: true,
validHosts: ['hokify.com']
}
};
```
## SMTP
smtp authenticiation
```typescript
interface ISMTPAuthOptions {
host: string;
port?: number;
useSecureTransport?: boolean;
validHosts?: string[];
}
```
Example
```js
c = {
authentication: 'IMAPAuth',
authenticationOptions: {
host: 'smtp.gmail.com',
port: 465,
useSecureTransport: true,
validHosts: ['gmail.com']
}
};
```
## Static Auth
static authenticiation
```typescript
interface IStaticAuthOtions {
validCrentials: {
username: string;
password: string;
}[];
}
```
Example
```js
c = {
authentication: 'StaticAuth',
authenticationOptions: {
validCredentials: [
{ username: 'test', password: 'pwd' },
{ username: 'user1', password: 'password' },
{ username: 'admin', password: 'cool' }
]
}
};
```
## HTTP Post Auth
http authenticiation via http post request
```typescript
interface IStaticAuthOtions {
url: string; // url to send a post request with username and password
}
```
Example
```js
c = {
authentication: 'HTTPAuth',
authenticationOptions: {
url: 'https://my-website.com/api/backend-login'
}
};
```