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
title: Understand Keycloak for identity and access management on Azure Cobalt 100-based virtual machines
3
+
description: Learn how Keycloak provides IAM, OAuth2/OpenID Connect, and single sign-on for applications running on Arm-based Azure infrastructure.
3
4
weight: 2
4
5
5
6
layout: "learningpathall"
@@ -13,26 +14,28 @@ Keycloak benefits from the strong multi-core performance and energy efficiency o
13
14
14
15
## Azure Cobalt 100 Arm-based processor
15
16
16
-
Azure’s Cobalt 100 is Microsoft’s first-generation, in-house Arm-based processor. Built on Arm Neoverse N2, Cobalt 100 is a 64-bit CPU that delivers strong performance and energy efficiency for cloud-native, scale-out Linux workloads. Running at 3.4 GHz, Cobalt 100 allocates a dedicated physical core for each vCPU, ensuring consistent and predictable performance.
17
+
Azure’s Cobalt 100 is Microsoft’s first-generation, in-house Arm-based processor. Built on Arm Neoverse N2, Cobalt 100 is a 64-bit CPU that delivers strong performance and energy efficiency for cloud-native, scale-out Linux workloads.
18
+
19
+
Running at 3.4 GHz, Cobalt 100 allocates a dedicated physical core for each vCPU, ensuring consistent and predictable performance.
17
20
18
21
To learn more, see the Microsoft blog [Announcing the preview of new Azure VMs based on the Azure Cobalt 100 processor](https://techcommunity.microsoft.com/blog/azurecompute/announcing-the-preview-of-new-azure-vms-based-on-the-azure-cobalt-100-processor/4146353).
19
22
20
23
## How Keycloak provides authentication and identity management
21
24
22
25
Keycloak is an open-source identity and access management (IAM) platform that simplifies authentication and authorization for applications and services.
23
26
24
-
Keycloak supports modern authentication standards such as OAuth2, OIDC, and SAML. It integrates with web applications, APIs, Kubernetes platforms, microservices, and enterprise identity systems, making it ideal for securing cloud-native workloads.
27
+
Keycloak supports modern authentication standards such as OAuth2, OIDC, and Security Asserion Markup Language (SAML). It integrates with web applications, APIs, Kubernetes platforms, microservices, and enterprise identity systems, making it ideal for securing cloud-native workloads.
28
+
29
+
Keycloak provides several important capabilities for authentication and security management. With single sign-on (SSO) support, you can authenticate once and access multiple applications without logging in again.
25
30
26
-
Keycloak provides several important capabilities for authentication and security management. You can use its single sign-on (SSO) support to authenticate once and access multiple applications without logging in again. With centralized identity management, you can manage users, roles, groups, and authentication policies from a single platform. With OAuth2 and OpenID Connect support, you get simplified secure API and application authentication workflows.
31
+
With centralized identity management, you can manage users, roles, groups, and authentication policies from a single platform. With OAuth2 and OpenID Connect support, you get simplified secure API and application authentication workflows.
27
32
28
33
Keycloak also supports multi-factor authentication (MFA) for stronger account security, user federation for integrating with enterprise identity systems such as LDAP and Active Directory, and role-based access control (RBAC) to control user permissions and application access.
29
34
30
35
To learn more about Keycloak, see the official [Keycloak documentation](https://www.keycloak.org/documentation).
31
36
32
-
In this Learning Path, you'll deploy Keycloak on an Azure Cobalt 100 Arm64 virtual machine and configure PostgreSQL as the backend database. You'll create realms, users, and OAuth2/OpenID Connect clients, then integrate a Flask application with Keycloak authentication.
33
-
34
37
## What you've learned and what's next
35
38
36
-
You've now understood why Azure Cobalt 100 and Keycloak are a strong combination for scalable authentication and identity management workloads. You also learned how Keycloak provides support for centralized identity management.
39
+
You've now learned why Azure Cobalt 100 and Keycloak are a strong combination for scalable authentication and identity management workloads. You also learned how Keycloak provides support for centralized identity management.
37
40
38
41
Next, you'll create a virtual machine on Azure that you'll use to run Keycloak and a Flask OAuth2 demo application.
title: Allow access to Keycloak and Flask application on Azure
2
+
title: Allow access to Keycloak and the Flask application on Azure
3
+
description: Learn how to configure Azure Network Security Group inbound rules for Keycloak, its health endpoint, and a Flask OAuth2 demo application.
3
4
weight: 4
4
5
5
6
### FIXED, DO NOT MODIFY
6
7
layout: learningpathall
7
8
---
8
9
9
-
## Configure external traffic for Keycloak and Flask application
10
+
## Configure external traffic for Keycloak and the Flask application
10
11
11
12
To allow external traffic for Keycloak and the Flask OAuth2 demo application on the Azure virtual machine, open the required ports in the network security group (NSG).
12
13
13
14
{{% notice Note %}}
14
-
For more information about Azure setup, see [Getting started with Microsoft Azure Platform](/learning-paths/servers-and-cloud-computing/csp/azure/).
15
+
For more information about Azure setup, see [Getting started with Microsoft Azure](/learning-paths/servers-and-cloud-computing/csp/azure/).
15
16
{{% /notice %}}
16
17
17
18
### Add inbound firewall rules in Azure
@@ -20,41 +21,33 @@ To expose the required ports for Keycloak and the Flask application, create fire
20
21
21
22
1. Navigate to the [Azure portal](https://portal.azure.com), go to **Virtual Machines**, and select your virtual machine.
22
23
23
-

24
+

24
25
25
26
2. In the left menu, select **Networking**, then select **Network settings**.
26
27
27
-

28
+

28
29
29
30
3. Navigate to **Create port rule**, and select **Inbound port rule**.
30
31
31
32

32
33
33
34
4. Configure inbound security rules for the following ports:
34
35
35
-
| Port | Purpose |
36
-
|---|---|
37
-
| 8080 | Keycloak Admin Console|
38
-
| 9000 | Keycloak health and management endpoint |
-**Source IP addresses:***(auto-populated with your current public IP)*
45
-
-**Source port ranges:***
46
+
-**Source port ranges:**`* `
46
47
-**Destination:** Any
47
48
-**Protocol:** TCP
48
49
-**Action:** Allow
49
50
50
-
Use these names:
51
-
52
-
| Port | Rule Name |
53
-
|---|---|
54
-
| 8080 | allow-keycloak-8080 |
55
-
| 9000 | allow-keycloak-9000 |
56
-
| 5000 | allow-flask-5000 |
57
-
58
51
{{% notice Note %}}
59
52
Setting **Source** to **My IP address** restricts access to the ports to your current machine only. If your public IP changes or you need to access the services from another machine, update the source IP in the NSG rule.
60
53
{{% /notice %}}
@@ -63,13 +56,13 @@ Setting **Source** to **My IP address** restricts access to the ports to your cu
63
56
64
57
You can now access:
65
58
66
-
- Keycloak Admin Console on port **8080**
67
-
- Keycloak health endpoint on port **9000**
68
-
- Flask OAuth2 demo application on port **5000**
59
+
-The Keycloak admin console on port **8080**
60
+
-The Keycloak health endpoint on port **9000**
61
+
-The Flask OAuth2 demo application on port **5000**
69
62
70
63
## What you've learned and what's next
71
64
72
-
You've now configured the Azure network security group to allow incoming traffic for Keycloak and the Flask OAuth2 demo application.
65
+
You've now configured the Azure network security group to allow incoming traffic for Keycloak and the Flask OAuth2 demo application that you'll build in the following sections.
73
66
74
-
Next, you'll install Keycloak on the VM, configure PostgreSQL as the backend database, and validate OAuth2/OpenID Connect authentication workflows using a demo Flask application.
67
+
Next, you'll install Keycloak on the VM and configure PostgreSQL as the backend database.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/keycloak-cobalt/instance.md
+9-8Lines changed: 9 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,6 @@
1
1
---
2
-
title: Create an Arm64 virtual machine powered by Azure Cobalt 100
2
+
title: Create an Azure Cobalt 100-based Arm64 virtual machine
3
+
description: Learn how to create an Azure Dpsv6 Arm64 virtual machine powered by Azure Cobalt 100 and connect to it with SSH.
3
4
weight: 3
4
5
5
6
### FIXED, DO NOT MODIFY
@@ -8,7 +9,7 @@ layout: learningpathall
8
9
9
10
## Set up an Arm-based Azure virtual machine
10
11
11
-
In this section, you'll launch the Azure portal to create a virtual machine (VM) with the Arm-based Azure Cobalt 100 processor.
12
+
In this section, you'll launch the Azure portal to create a virtual machine (VM) powered by the Arm-based Azure Cobalt 100 processor.
12
13
13
14
You'll create a general-purpose VM in the Dpsv6 series. For more information about this series of VMs, see the [Microsoft Azure guide for the Dpsv6 size series](https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/general-purpose/dpsv6-series).
14
15
@@ -20,7 +21,7 @@ To create an Azure virtual machine using the Azure portal:
20
21
21
22
1. Launch the Azure portal and navigate to **Virtual Machines**.
22
23
2. Select **Create**, and select **Virtual Machine** from the drop-down list.
23
-
3. In the **Basic** tab, provide instance details such as **Virtual machine name** and **Region**.
24
+
3. In the **Basics** tab, provide instance details such as **Virtual machine name** and **Region**.
24
25
4. Select **Ubuntu Pro 24.04 LTS** as the image for your virtual machine, and select **Arm64** as the VM architecture.
25
26
5. In the **Size** field, select **See all sizes** and select the D-Series v6 family of virtual machines.
26
27
6. Select **D4ps_v6** from the list as shown in the following screenshot:
@@ -34,30 +35,30 @@ Azure generates an SSH key pair for you that you can save for future use. This m
34
35
{{% /notice %}}
35
36
36
37
8. Fill in the **Administrator username** for your VM.
37
-
9. Select **Generate new key pair**, and select **RSA SSH Format** as the SSH Key Type.
38
+
9. Select **Generate new key pair**, and select **RSA SSH Format** as the **SSH key type**.
38
39
39
40
{{% notice Note %}}
40
41
RSA offers better security with keys longer than 3072 bits.
41
42
{{% /notice %}}
42
43
43
44
10. Give your SSH key a key pair name.
44
-
11.In the**Inbound port rules**, select **HTTP (80)** and **SSH (22)** as the inbound ports, as shown in the following screenshot:
45
+
11.Under**Inbound port rules**, select **HTTP (80)** and **SSH (22)** as the inbound ports, as shown in the following screenshot:
45
46
46
47

47
48
48
49
12. Select the **Review + Create** tab and review the configuration for your virtual machine. It should look like the following:
49
50
50
51

51
52
52
-
13. When you're happy with your selection, select the **Create** button and then **Download Private key and Create Resource**.
53
+
13. When you're happy with your selection, select the **Create** button and then **Download private key and create resource**.
53
54
54
55

55
56
56
57
Your VM should be ready and running in a few minutes. You can SSH into the virtual machine using the private key, along with the public IP details.
57
58
58
59

59
60
60
-
{{% notice Note %}}To learn more about Arm-based virtual machines in Azure, see the "Getting Started with Microsoft Azure" section in the [Get started with Arm-based cloud instances](/learning-paths/servers-and-cloud-computing/csp/azure/) Learning Path.{{% /notice %}}
61
+
{{% notice Note %}}To learn more about Arm-based virtual machines in Azure, see the Azure section in the [Get started with Arm-based cloud instances](/learning-paths/servers-and-cloud-computing/csp/azure/) Learning Path.{{% /notice %}}
61
62
62
63
### Connect to your virtual machine
63
64
@@ -71,6 +72,6 @@ Replace `<your-key-name>` with the name of your SSH key pair and `YOUR_PUBLIC_IP
71
72
72
73
## What you've accomplished and what's next
73
74
74
-
You've now created an Azure Cobalt 100-based Arm64 virtual machine running Ubuntu 24.04 LTS with SSH authentication configured. The virtual machine is now ready for installing PostgreSQL, Keycloak, and the Flask OAuth2 demo application.
75
+
You've now created an Azure Cobalt 100-based Arm64 virtual machine running Ubuntu 24.04 LTS with SSH authentication configured. The virtual machine is ready for installing PostgreSQL, Keycloak, and the Flask OAuth2 demo application.
75
76
76
77
Next, you'll set up firewall rules to allow external traffic for Keycloak and the demo Flask application.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/keycloak-cobalt/keycloak_deployment_azure_cobalt100.md
+10-9Lines changed: 10 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,13 @@
1
1
---
2
-
title: Deploy Keycloak on an Arm-based virtual machine
2
+
title: Deploy Keycloak on an Azure Cobalt 100-based Arm64 virtual machine
3
+
description: Learn how to install Keycloak, configure PostgreSQL, run Keycloak as a systemd service, and verify the admin console on an Arm64 Azure VM.
3
4
weight: 5
4
5
5
6
### FIXED, DO NOT MODIFY
6
7
layout: learningpathall
7
8
---
8
9
9
-
## Set up Keycloak on the virtual machine
10
+
## Set up Keycloak and dependencies on the virtual machine
10
11
11
12
In this section, you'll install Keycloak on the virtual machine (VM) that you created earlier. You'll configure PostgreSQL as the backend database.
12
13
@@ -185,9 +186,9 @@ Enter password:
185
186
Enter password again:
186
187
```
187
188
188
-
When prompted for the username, press Enter.
189
+
For the username, press Enter.
189
190
190
-
When prompted for the password, enter the following password twice:
191
+
For the password, enter the following password twice:
191
192
192
193
```text
193
194
AdminPassword123!
@@ -275,7 +276,7 @@ View live Keycloak logs to confirm it started without errors, then press Ctrl+C
275
276
sudo journalctl -u keycloak -f
276
277
```
277
278
278
-
You can also optionally check whether Keycloak is listening to the expected ports:
279
+
You can also optionally check whether Keycloak is listening on the expected ports:
After restarting, open the admin console again and log in:
329
330
330
-

331
+

331
332
332
-
Log in with the admin credentials that you created earlier:
333
+
Enter the admin credentials that you created earlier:
333
334
334
335
```text
335
336
Username: admin
336
337
Password: AdminPassword123!
337
338
```
338
339
339
-

340
+

340
341
341
342
### Verify health endpoint
342
343
@@ -362,6 +363,6 @@ The output is similar to:
362
363
363
364
## What you've accomplished and what's next
364
365
365
-
You now have Keycloak running successfully on an Arm-based VM with PostgreSQL integration, a systemd service, and a working admin console.
366
+
You now have Keycloak running on an Azure Cobalt 100-based Arm64 VM with PostgreSQL integration, a systemd service, and a working admin console.
366
367
367
368
Next, you'll configure a Flask application and integrate it with Keycloak using OAuth2/OpenID Connect authentication.
0 commit comments