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
* Provides an object storage service for Openshift
34
+
* Provides an object storage service for OpenShift
35
35
*[Red Hat Trusted Artifact Signer (RHTAS)](https://docs.redhat.com/en/documentation/red_hat_trusted_artifact_signer/1.3)
36
-
** * Provides cryptographic signing and verification of software artifacts and container images
36
+
* Provides cryptographic signing and verification of software artifacts and container images
37
37
*[Red Hat Trusted Profile Analyzer (RHTPA)](https://docs.redhat.com/es/documentation/red_hat_trusted_profile_analyzer/2.2)
38
-
** * Provides the storage and management means for _Software Bill of Materials_ (SBOMs), with cross-referencing capabilities between SBOMs and CVEs/Security Advisories
39
-
*[Red Hat Openshift Pipelines](https://docs.redhat.com/en/documentation/red_hat_openshift_pipelines/1.20)
40
-
* Enables a native CI/CD solution in Openshift
38
+
* Provides the storage and management means for _Software Bill of Materials_ (SBOMs), with cross-referencing capabilities between SBOMs and CVEs/Security Advisories
39
+
*[Red Hat OpenShift Pipelines](https://docs.redhat.com/en/documentation/red_hat_openshift_pipelines/1.20)
40
+
* Enables a native CI/CD solution in OpenShift
41
41
42
42
## Getting Started
43
43
@@ -167,53 +167,10 @@ Two (2) instances of OpenShift GitOps has been deployed to your Hub Cluster. Eac
167
167
168
168
If all of the Argo CD applications are reporting healthy, the pattern has been deployed successfully.
169
169
170
-
#### Secure Multi-tier Application Use Case
170
+
###Use cases
171
171
172
-
One of the most common application design patterns makes use of a frontend application leveraging a database forpersistent storage. Instead of traditional methods for accessing the database from the frontend application using static values stored within the application, this pattern will make use "justin time" methods for obtaining these database values from a credential store. A more detailed overview is located below:
173
-
174
-
* qtodo - [Quarkus](https://quarkus.io) based frontend application. Access is protected via OIDC based authentication with users defined within an external identity store (Red Hat Build of Keycloak by default)
175
-
* PostgreSQL - Relational database for use by the qtodo application. Credentials are generated dynamically and stored within Vault.
176
-
* External Identity store - Users have been defined to enable access to the qtodo frontend. OIDC clients have also been created and configured within the todo application
177
-
* HashiCorp Vault - Several features are being leveraged within this use case the external identity store
178
-
* Secrets store - Storage of sensitive values for components including PostgreSQL and RHBK
179
-
* JWT based authentication - Enables access using ZTWIM based identities
180
-
* Zero Trust Workload Identity - Enables an identity to be assigned to the qtodo application to communicate with HashiCorp Vault and obtain the credentials to access the PostgreSQL database
181
-
* [spiffe-helper](https://github.com/spiffe/spiffe-helper) - Supplemental component provided for the qtodo application to dynamically fetch JWT based identities from the SPIFFE Workload API.
182
-
183
-
#### Investigating the qtodo Application in depth
184
-
185
-
With an understanding of the goals and architecture of qtodo, launch the OpenShift Console of the Hub cluster and navigate to the `qtodo` project
186
-
187
-
1. Select **Home** -> **Projects** from the left hand navigation bar
188
-
2. Locate and select the **qtodo** project
189
-
190
-
The _qtodo_ Quarkus application and _qtodo-db_ PostgreSQL database are found within this namespace.
191
-
192
-
View the running pods associated with these components
193
-
194
-
1. Select **Workloads** -> **Pods** from the left hand navigation bar
195
-
2. Explore both the _qtodo_ and _qtodo-db_ pods.
196
-
197
-
Take note that the _qtodo_ Pod makes use of a series of init containers and sidecar containers that are used to supply the application with credentials needed to support the application.
198
-
199
-
Access the qtodo application in a browser. The URL can be located from the OpenShift Route in the `qtodo` Project
200
-
201
-
1. Select **Networking** -> **Routes** from the lefthand navigation bar
202
-
2. Click the arrow next to the the URL underneath the _Location_ column to open the qtodo application in a new browser tab
203
-
204
-
You will be presented with a login page to access the application. When using the default External Identity Provider (RHBK), two users (`qtodo-admin` and `qtodo-user`) were provisioned automatically. Their initial credentials are stored in a Secret in the `keycloak-system` namespace called `keycloak-users`. You can reveal the credentials by switching to the tab containing the OpenShift Console using the following steps:
205
-
206
-
1. Select **Home** -> **Projects** from the left hand navigation bar
207
-
2. Locate and select the **keycloak-system** project
208
-
3. Select **Workloads** -> **Secrets** from the left hand navigation bar
209
-
4. Select the **keycloak-users** Secret
210
-
5. Click the **Reveal values** link to uncover the underlying values for the users
211
-
212
-
Switch back to the qtodo application and enter the username and password on the login page for one of the users using the values discovered previously.
213
-
214
-
Once you have authenticated to RHBK, you will be instructed to change the temporary password and set a more permanent password. Once complete, you will be redirected to the qtodo application verifying the OIDC based authentication functions properly.
215
-
216
-
Feel free to add new items to the list of todos. By being able to add and remove items from the page, the integration between the Quarkus application and the backend PostgreSQL database using credentials sourced from HashiCorp Vault was successful.
* [Use Case 02: Secure Supply Chain](./docs/supply-chain.md)
217
174
218
175
### Importing existing clusters
219
176
@@ -267,4 +224,4 @@ The pattern supports importating pre-existing Openshift clusters into the Hub cl
267
224
268
225
## Development
269
226
270
-
Interested in developing capabilities for this pattern or performing tests against it? Head over to our [Developer Documentation](./DEVELOPMENT.md).
227
+
Interested in developing capabilities for this pattern or performing tests against it? Head over to our [Developer Documentation](./docs/DEVELOPMENT.md).
One of the most common application design patterns makes use of a frontend application leveraging a database for persistent storage. Instead of traditional methods for accessing the database from the frontend application using static values stored within the application, this pattern will make use "just in time" methods for obtaining these database values from a credential store. A more detailed overview is located below:
4
+
5
+
* qtodo - [Quarkus](https://quarkus.io) based frontend application. Access is protected via OIDC based authentication with users defined within an external identity store (Red Hat Build of Keycloak by default)
6
+
* PostgreSQL - Relational database for use by the qtodo application. Credentials are generated dynamically and stored within Vault.
7
+
* External Identity store - Users have been defined to enable access to the qtodo frontend. OIDC clients have also been created and configured within the todo application
8
+
* HashiCorp Vault - Several features are being leveraged within this use case the external identity store
9
+
* Secrets store - Storage of sensitive values for components including PostgreSQL and RHBK
10
+
* JWT based authentication - Enables access using ZTWIM based identities
11
+
* Zero Trust Workload Identity - Enables an identity to be assigned to the qtodo application to communicate with HashiCorp Vault and obtain the credentials to access the PostgreSQL database
12
+
*[spiffe-helper](https://github.com/spiffe/spiffe-helper) - Supplemental component provided for the qtodo application to dynamically fetch JWT based identities from the SPIFFE Workload API.
13
+
14
+
## Investigating the qtodo Application in depth
15
+
16
+
With an understanding of the goals and architecture of qtodo, launch the OpenShift Console of the Hub cluster and navigate to the `qtodo` project
17
+
18
+
1. Select **Home** -> **Projects** from the left hand navigation bar
19
+
2. Locate and select the **qtodo** project
20
+
21
+
The _qtodo_ Quarkus application and _qtodo-db_ PostgreSQL database are found within this namespace.
22
+
23
+
View the running pods associated with these components
24
+
25
+
1. Select **Workloads** -> **Pods** from the left hand navigation bar
26
+
2. Explore both the _qtodo_ and _qtodo-db_ pods.
27
+
28
+
Take note that the _qtodo_ Pod makes use of a series of init containers and sidecar containers that are used to supply the application with credentials needed to support the application.
29
+
30
+
Access the qtodo application in a browser. The URL can be located from the OpenShift Route in the `qtodo` Project
31
+
32
+
1. Select **Networking** -> **Routes** from the lefthand navigation bar
33
+
2. Click the arrow next to the the URL underneath the _Location_ column to open the qtodo application in a new browser tab
34
+
35
+
You will be presented with a login page to access the application. When using the default External Identity Provider (RHBK), two users (`qtodo-admin` and `qtodo-user`) were provisioned automatically. Their initial credentials are stored in a Secret in the `keycloak-system` namespace called `keycloak-users`. You can reveal the credentials by switching to the tab containing the OpenShift Console using the following steps:
36
+
37
+
1. Select **Home** -> **Projects** from the left hand navigation bar
38
+
2. Locate and select the **keycloak-system** project
39
+
3. Select **Workloads** -> **Secrets** from the left hand navigation bar
40
+
4. Select the **keycloak-users** Secret
41
+
5. Click the **Reveal values** link to uncover the underlying values for the users
42
+
43
+
Switch back to the qtodo application and enter the username and password on the login page for one of the users using the values discovered previously.
44
+
45
+
Once you have authenticated to RHBK, you will be instructed to change the temporary password and set a more permanent password. Once complete, you will be redirected to the qtodo application verifying the OIDC based authentication functions properly.
46
+
47
+
Feel free to add new items to the list of todos. By being able to add and remove items from the page, the integration between the Quarkus application and the backend PostgreSQL database using credentials sourced from HashiCorp Vault was successful.
0 commit comments