You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Delete Installation_Guide_Windows.md
* Update Installation_Guide_Linux.md
* Update Upgrade_Guide_Linux.md
* Delete index.md.old
* Update Installation_Guide_Linux.md
* Update Upgrade_Guide_Linux.md
* merging 4.4.1 code from gitlab
* updating binary distribution
* updating Admin guide and adding release notes
* updating docker file
* test commit
test commit
* minor edits
minor edits
* Minor Edits
minor edits
* nomenclature
nomenclature
* minor edits
minor edits
* italics, API link
italics, API link
Co-authored-by: Dronicus <[email protected]>
Copy file name to clipboardexpand all lines: docker/README.md
+10-10
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,10 @@
1
1
2
-
# StrongKey FIDO Server (SKFS), Community Edition, Dockerized
2
+
# FIDO2 Server, Community Edition, Dockerized
3
3
## Overview:
4
-
This branch contains a Dockerized version of the FIDO(R) Certified [StrongKey FIDO Server (SKFS), Community Edition](https://github.com/StrongKey/fido2). This implementation allows for the creation of a FIDO2 server within a container, which allows for the ability to be deployed in any environment. This README will focus on the Docker portion of SKFS; please refer to the main [README](https://github.com/StrongKey/fido2) for anything related to the FIDO side of the server.
4
+
This branch contains a Dockerized version of StrongKey's Certified FIDO2 Server, Community Edition. This implementation allows for the creation of a FIDO2 server within a container, which allows for the ability to be deployed in any environment. This README will focus on the Docker portion of the StrongKey FIDO2 Server; please refer to the main [README](https://github.com/StrongKey/fido2) for anything related to the FIDO side of the server.
5
5
6
6
## Prerequisites: Host machine/VM
7
-
Docker must be installed and enabled to build and use the SKFS image.
7
+
Docker must be installed and enabled to build and use the StrongKey FIDO2 Server image.
8
8
It is recommended that you have a machine or VM with the following minimum requirements:
9
9
10
10
* 10 GB storage
@@ -15,26 +15,26 @@ These values are also the recommended minimums for each container. CPUs and memo
15
15
The host machine's firewall should open port 8181 (or the port bound to the Docker container's port 8181) as well as ports 7001-7003 if clustering containers.
16
16
17
17
## Prerequisites: External DB and LDAP/AD
18
-
In this specific version of the Dockerized SKFS, both the MySQL database and LDAP are not included, so an external MySQL 5 database and LDAP/AD are required for setup. The containers can be configured to use the external database and LDAP/AD in the *base64-input.sh* script.
18
+
In this specific version of the Dockerized StrongKey FIDO2 Server, both the MySQL database and LDAP are not included, so an external MySQL 5 database and LDAP/AD are required for setup. The containers can be configured to use the external database and LDAP/AD in the *base64-input.sh* script.
19
19
20
-
The database configuration should be sourced from SKFS's *create.txt* in the server's [*fidoserverSQL* directory](https://github.com/StrongKey/fido2/tree/master/server/fidoserverInstall/fidoserverSQL). Additionally, any database insert commands found in the _install-skfs.sh_ from a regular SKFS should be performed on this database.
20
+
The database configuration should be sourced from the FIDO2 Server's *create.txt* in the server's [*fidoserverSQL* directory](https://github.com/StrongKey/fido2/tree/master/server/fidoserverInstall/fidoserverSQL). Additionally, any database insert commands found in the install-skfs.sh from a regular StrongKey FIDO2 Server should be performed on this database.
21
21
22
-
The external LDAP/AD must be configured in the same way as a normal SKFS, as described in the distribution's *.ldif* files.
22
+
Theexternal LDAP/AD must be configured in the same way as a normal FIDO2 Server as described in the distribution's *.ldif* files.
23
23
24
24
## Getting Started
25
25
1.**Build the image**.
26
26
```sh
27
27
[sudo] docker build -t fidoserver .
28
28
```
29
-
2.**Configure the image settings**. Here you may configure the external LDAP/AD database and clustering.
29
+
2.**Configure the image settings**. Here you may configure the external LDAP/AD database, and clustering.
30
30
```sh
31
31
vi base64-input.sh
32
32
```
33
-
3. Get the base64 input for the container. **Save the output** of the *base64-input.sh* script somewhere for the next step.
33
+
3. Get base64 input for the container. **Save the output** of the *base64-input.sh* script somewhere for the next step.
34
34
```sh
35
35
./base64-input.sh
36
36
```
37
-
4.**Run the image in a container** with the output from the *base64-input.sh* script as its only argument. The hostname flag (_-h_) and bound port 8181 are necessary. To debug any issues with GlassFish, it may be a good idea to remove the _-d_ (detach) flag to be able to view the logs
37
+
4.**Run the image in a container** with the output from the *base64-input.sh* script as its only argument. The hostname flag (-h) and bound port 8181 are necessary. To debug any issues with glassfish, it may be a good idea to remove the -d (detach) flag to be able to view the logs
38
38
```sh
39
39
[sudo] docker run -dit -h fido01.strongkey.com -p 8181:8181 fidoserver <base64-input>
40
40
```
@@ -50,7 +50,7 @@ To enter into a bash terminal within the container, perform the following additi
50
50
```
51
51
52
52
## Clustering
53
-
For replication to work properly when clustering, open ports 7001-7003 on the container when running it. For example,
53
+
When clustering, for replication to work properly, open ports 7001-7003 on the container when running it. For example,
Copy file name to clipboardexpand all lines: docs/Clustering_Guide_Linux.md
+14-14
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
1
# StrongKey FIDO Server (SKFS), Community Edition for Linux
2
2
3
-
## Cluster Installation
3
+
## Clustered Installation
4
4
5
-
StrongKey FIDO Server can be clustered with multiple nodes to deliver high availability (HA) across a local area network (LAN) and/or disaster recovery (DR) on a wide area network (WAN). No additonal software is required to enable these features because StrongKey has enabled this capability as a **standard** feature in SKFS. Furthermore, with multiple nodes processing FIDO2 transactions at the same time, the SKFS cluster can deliver higher throughput to multiple web applications that use this server. This document guides you through setting up an SKFS cluster with two nodes, as depicted in the image below.
5
+
StrongKey FIDO Server can be clustered with multiple nodes to deliver _high availability (HA)_ across a _local area network (LAN)_ and/or _disaster recovery (DR)_ on a _wide area network (WAN)_. No additonal software is required to enable these features because StrongKey has enabled this capability as a **standard** feature in SKFS. Furthermore, with multiple nodes processing FIDO2 transactions at the same time, the SKFS cluster can deliver higher throughput to multiple web applications that use this server. This document guides you through setting up an SKFS cluster with two nodes, as depicted in the image below.
6
6
7
7
**The clustering capability in SKFS only applies to the FIDO2 capability**. Web applications that use SKFS must make their own arrangements to deliver HA and/or DR independent of SKFS. The sample application used here to demonstrate FIDO2 clustering will, itself, not be highly available, but demonstrates that the web application can use either or both SKFS nodes in this HA configuration.
8
8
@@ -14,17 +14,17 @@ While it is possible to add more than two nodes to the cluster, IT architects wi
14
14
15
15
## Prerequisites
16
16
17
-
1.**Two (2)**virtual machines (VMs) for the FIDO2 Servers, running the current version of CentOS Linux 7.x, with fully qualified domain names (FQDN) and internet protocol (IP) addresses
18
-
2.**One (1)**virtual machine for the load-balancer, running HAProxy version 1.5.18 software on the current version of CentOS Linux 7.x with an FQDN and an IP address
19
-
3.**One (1)**virtual machine for the StrongKey sample Proof-of-Concept web application from this GitHub repository, also running on the current version of CentOS Linux 7.x with an FQDN and an IP address
17
+
1.**Two (2)**_virtual machines (VMs)_ for the FIDO2 Servers, running the current version of CentOS Linux 7.x, with _fully qualified domain names (FQDN)_ and _internet protocol (IP)_ addresses
18
+
2.**One (1)**VM for the load-balancer, running HAProxy version 1.5.18 software on the current version of CentOS Linux 7.x with an FQDN and an IP address
19
+
3.**One (1)**VM for the StrongKey sample Proof-of-Concept web application from this GitHub repository, also running on the current version of CentOS Linux 7.x with an FQDN and an IP address
20
20
21
21
**NOTE:** This document assumes you are setting up this cluster with all nodes connected to a single ethernet switch. If your intent is to do a more realistic test, you should plan on using VMs with multiple network interfaces connected to different switches to isolate traffic to the appropriate segments as you might except in a more real-world environment.
22
22
23
23
24
-
## Setting up the Cluster
24
+
## Cluster Setup
25
25
26
26
1. Using the installation steps [here](../docs/Installation_Guide_Linux.md), install and configure the two FIDO2 Server VMs **as if they were individual FIDO2 Servers, but do NOT install any web applications to test out the FIDO2 Server at this point**; we will do this later.
27
-
2. For each server **determine the FQDN and assign it a unique Server ID**. A _Server id (SID)_ is a numeric value that uniquely identifies a node within the cluster. Conventionally, StrongKey cluster SIDs begin with the numeral **1** and continue incrementally for each node in the cluster. In the current setup, the following values are used:
27
+
2. For each server **determine the FQDN and assign it a unique Server ID**. A _Server ID (SID)_ is a numeric value that uniquely identifies a node within the cluster. Conventionally, StrongKey cluster SIDs begin with the numeral **1** and continue incrementally for each node in the cluster. In the current setup, the following values are used:
28
28
29
29
| SID | FQDN |
30
30
| -- | -- |
@@ -37,12 +37,12 @@ While it is possible to add more than two nodes to the cluster, IT architects wi
37
37
38
38
b. If DNS **is configured**, make sure that it is configured for **forward and reverse** lookups—meaning that it should be possible to resolve the IP address using the FQDN, as well as resolve the FQDN using the IP address doing a reverse lookup. Without the reverse resolution, services in the Payara application server configuration will not work correctly.
39
39
40
-
If Domain Name Service (DNS) **is not configured**, add the following entries to the **_/etc/hosts_** file to identify the cluster nodes. Use a text editor such as _vi_ to modify the _/etc/hosts_ file. For the two-node cluster, add the following to the end of the _hosts_ file, substituting the _strongkey.com_ domain name for your own environment:
40
+
If _Domain Name Service (DNS)_ **is not configured**, add the following entries to the **_/etc/hosts_** file to identify the cluster nodes. Use a text editor such as _vi_ to modify the _/etc/hosts_ file. For the two-node cluster, add the following to the end of the _hosts_ file, substituting the _strongkey.com_ domain name for your own environment:
c. **Modify the firewall** configuration to open ports 7001, 7002, and 7003 to accept connections between _just the FIDO2 Servers_ to enable multi-way replication. Run the following command once for each cluster node's IP address (substituting for \<ip-target-fidoserver\>).
45
+
c. **Modify the firewall** configuration to open ports 7001, 7002, and 7003 to accept connections between _just the FIDO2 Servers_ to enable multi-way replication. Run the following command once for each cluster node's IP address (substituting for _\<ip-target-fidoserver\>_).
46
46
47
47
**Do _not_ execute this command for the IP address of the cluster node on which you are executing the command itself**. It is not necessary to open the node's ports on the firewall for itself since the replication module in the FIDO2 Server does not need to replicate to itself.
48
48
@@ -82,7 +82,7 @@ While it is possible to add more than two nodes to the cluster, IT architects wi
82
82
83
83
mysql> exit
84
84
85
-
g. **Import the self-signed certificates** generated as part of the SKFS installation into the Payara Application Server's truststore—this is necessary to ensure that replication between the SKFS nodes occurs over a trusted Transport Layer Security (TLS) connection. Execute the _certimport.sh_ script included in the _/usr/local/strongkey/bin_ directory to import the certificate.
85
+
g. **Import the self-signed certificates** generated as part of the SKFS installation into the Payara Application Server's truststore—this is necessary to ensure that replication between the SKFS nodes occurs over a trusted _Transport Layer Security (TLS)_ connection. Execute the _certimport.sh_ script included in the _/usr/local/strongkey/bin_ directory to import the certificate.
@@ -96,7 +96,7 @@ While it is possible to add more than two nodes to the cluster, IT architects wi
96
96
97
97
## Install HAProxy Load Balancer
98
98
99
-
High availability (HA) is enabled for applications by inserting a _load balancer_ between components of the infrastructure, such as between the web application and the two SKFS nodes of this configuration. The load balancer determines which target server is available to receive application connections, and distributes application requests to the appropriate target server.
99
+
HA is enabled for applications by inserting a _load balancer_ between components of the infrastructure, such as between the web application and the two SKFS nodes of this configuration. The load balancer determines which target server is available to receive application connections, and distributes application requests to the appropriate target server.
100
100
101
101
SKFS has been tested with the open-source HAProxy load balancer, part of the standard CentOS Linux distribution. It is conceivable that SKFS will work with other load balancers; please contact us to discuss your needs.
102
102
@@ -171,7 +171,7 @@ If it is set to _enforcing_, change it to _permissive_ by running the following
171
171
shell> setenforce 0
172
172
173
173
174
-
## Testing the FIDO2 Server Cluster with a Sample Web Application
174
+
## Testing the SKFS Cluster with a Sample Web Application
175
175
176
176
To test the cluster with a sample web application, provision the fourth VM to install the sample application and follow the steps [here](https://github.com/StrongKey/fido2/tree/master/sampleapps/java/poc) to install the **StrongKey Proof of Concept (PoC) Java Application**. When installing the PoC application, make sure that you **follow the steps to NOT install it with SKFS on the VM**; because you already have an SKFS cluster setup following this document, there is no need for an additional SKFS.
177
177
@@ -199,11 +199,11 @@ e. Open a browser to the appropriate URL to **access the PoC application** on th
199
199
200
200
https://<PoC-VM-FQDN>:8181
201
201
202
-
## Simulating Node Failures in the FIDO2 Server Cluster
202
+
## Simulating Node Failures in the SKFS Cluster
203
203
204
204
Following are several methods to simulate failures of an SKFS node within the cluster for verification purposes:
205
205
206
-
1. Remove the ethernet cable from one of the SKFS nodes.
206
+
1. Remove the Ethernet cable from one of the SKFS nodes.
207
207
2. Shut down the Payara Applicatiion Server on one of the SKFS nodes.
208
208
3. Close port 8181 by disabling the firewall rule that accepts connections on SKFS.
209
209
4. Modify the configuration of HAProxy on the load balancer to remove one of the SKFS nodes.
0 commit comments