Skip to content

Commit 6c1ba4a

Browse files
second pass edits and per-page descriptions
1 parent 897b619 commit 6c1ba4a

5 files changed

Lines changed: 59 additions & 58 deletions

File tree

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
2-
title: Understand Keycloak on Azure Cobalt 100
2+
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.
34
weight: 2
45

56
layout: "learningpathall"
@@ -13,26 +14,28 @@ Keycloak benefits from the strong multi-core performance and energy efficiency o
1314

1415
## Azure Cobalt 100 Arm-based processor
1516

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.
1720

1821
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).
1922

2023
## How Keycloak provides authentication and identity management
2124

2225
Keycloak is an open-source identity and access management (IAM) platform that simplifies authentication and authorization for applications and services.
2326

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.
2530

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.
2732

2833
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.
2934

3035
To learn more about Keycloak, see the official [Keycloak documentation](https://www.keycloak.org/documentation).
3136

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-
3437
## What you've learned and what's next
3538

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.
3740

3841
Next, you'll create a virtual machine on Azure that you'll use to run Keycloak and a Flask OAuth2 demo application.
Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
---
2-
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.
34
weight: 4
45

56
### FIXED, DO NOT MODIFY
67
layout: learningpathall
78
---
89

9-
## Configure external traffic for Keycloak and Flask application
10+
## Configure external traffic for Keycloak and the Flask application
1011

1112
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).
1213

1314
{{% 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/).
1516
{{% /notice %}}
1617

1718
### Add inbound firewall rules in Azure
@@ -20,41 +21,33 @@ To expose the required ports for Keycloak and the Flask application, create fire
2021

2122
1. Navigate to the [Azure portal](https://portal.azure.com), go to **Virtual Machines**, and select your virtual machine.
2223

23-
![Azure Portal Virtual Machines page with the target Azure Cobalt 100 Arm64 virtual machine selected before configuring network access for Keycloak.#center](images/virtual_machine.png "Azure Virtual Machines page")
24+
![Azure Portal Virtual machines page with the target Azure Cobalt 100-based Arm64 virtual machine selected before configuring network access for Keycloak.#center](images/virtual_machine.png "Azure Virtual machines page")
2425

2526
2. In the left menu, select **Networking**, then select **Network settings**.
2627

27-
![Azure Portal Networking page showing the network settings attached to the Azure Cobalt 100 Arm64 virtual machine for configuring inbound access rules.#center](images/networking.png "Azure VM networking settings")
28+
![Azure Portal Networking page showing the network settings attached to the Azure Cobalt 100-based Arm64 virtual machine for configuring inbound access rules.#center](images/networking.png "Azure VM networking settings")
2829

2930
3. Navigate to **Create port rule**, and select **Inbound port rule**.
3031

3132
![Azure Portal Create port rule menu with Inbound port rule selected for configuring Keycloak and Flask application access.#center](images/port_rule.png "Create inbound firewall rule")
3233

3334
4. Configure inbound security rules for the following ports:
3435

35-
| Port | Purpose |
36-
|---|---|
37-
| 8080 | Keycloak Admin Console |
38-
| 9000 | Keycloak health and management endpoint |
39-
| 5000 | Flask OAuth2 demo application |
36+
| Port | Purpose | Rule name |
37+
|---|---|---|
38+
| `8080` | Keycloak admin console | `allow-keycloak-8080` |
39+
| `9000` | Keycloak health and management endpoint | `allow-keycloak-9000` |
40+
| `5000` | Flask OAuth2 demo application | `allow-flask-5000` |
4041

4142
Use the following settings for each rule:
4243

4344
- **Source:** My IP address
4445
- **Source IP addresses:** *(auto-populated with your current public IP)*
45-
- **Source port ranges:** *
46+
- **Source port ranges:** `* `
4647
- **Destination:** Any
4748
- **Protocol:** TCP
4849
- **Action:** Allow
4950

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-
5851
{{% notice Note %}}
5952
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.
6053
{{% /notice %}}
@@ -63,13 +56,13 @@ Setting **Source** to **My IP address** restricts access to the ports to your cu
6356

6457
You can now access:
6558

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**
6962

7063
## What you've learned and what's next
7164

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.
7366

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.
7568

content/learning-paths/servers-and-cloud-computing/keycloak-cobalt/instance.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
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.
34
weight: 3
45

56
### FIXED, DO NOT MODIFY
@@ -8,7 +9,7 @@ layout: learningpathall
89

910
## Set up an Arm-based Azure virtual machine
1011

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.
1213

1314
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).
1415

@@ -20,7 +21,7 @@ To create an Azure virtual machine using the Azure portal:
2021

2122
1. Launch the Azure portal and navigate to **Virtual Machines**.
2223
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**.
2425
4. Select **Ubuntu Pro 24.04 LTS** as the image for your virtual machine, and select **Arm64** as the VM architecture.
2526
5. In the **Size** field, select **See all sizes** and select the D-Series v6 family of virtual machines.
2627
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
3435
{{% /notice %}}
3536

3637
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**.
3839

3940
{{% notice Note %}}
4041
RSA offers better security with keys longer than 3072 bits.
4142
{{% /notice %}}
4243

4344
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:
4546

4647
![Azure Portal inbound port configuration showing SSH and HTTP selected. Check that the required access settings are in place before creating the virtual machine.#center](images/instance1.png "Configure inbound port rules for HTTP and SSH access")
4748

4849
12. Select the **Review + Create** tab and review the configuration for your virtual machine. It should look like the following:
4950

5051
![Azure Portal Review + Create tab showing VM configuration summary ready for deployment#center](images/ubuntu-pro.png "Review VM configuration before creation")
5152

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**.
5354

5455
![Azure Portal showing Create button and SSH key download dialog#center](images/instance4.png "Download SSH key and create the virtual machine")
5556

5657
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.
5758

5859
![Azure Portal deployment result showing that the virtual machine was created successfully. Look for the successful deployment status and the connection details you will use to access the virtual machine in the next step.#center](images/final-vm.png "Successful VM deployment confirmation")
5960

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 %}}
6162

6263
### Connect to your virtual machine
6364

@@ -71,6 +72,6 @@ Replace `<your-key-name>` with the name of your SSH key pair and `YOUR_PUBLIC_IP
7172

7273
## What you've accomplished and what's next
7374

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.
7576

7677
Next, you'll set up firewall rules to allow external traffic for Keycloak and the demo Flask application.

content/learning-paths/servers-and-cloud-computing/keycloak-cobalt/keycloak_deployment_azure_cobalt100.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
---
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.
34
weight: 5
45

56
### FIXED, DO NOT MODIFY
67
layout: learningpathall
78
---
89

9-
## Set up Keycloak on the virtual machine
10+
## Set up Keycloak and dependencies on the virtual machine
1011

1112
In this section, you'll install Keycloak on the virtual machine (VM) that you created earlier. You'll configure PostgreSQL as the backend database.
1213

@@ -185,9 +186,9 @@ Enter password:
185186
Enter password again:
186187
```
187188

188-
When prompted for the username, press Enter.
189+
For the username, press Enter.
189190

190-
When prompted for the password, enter the following password twice:
191+
For the password, enter the following password twice:
191192

192193
```text
193194
AdminPassword123!
@@ -275,7 +276,7 @@ View live Keycloak logs to confirm it started without errors, then press Ctrl+C
275276
sudo journalctl -u keycloak -f
276277
```
277278

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:
279280

280281
```bash
281282
sudo ss -tulpn | grep -E '8080|9000'
@@ -327,16 +328,16 @@ sudo systemctl restart keycloak
327328

328329
After restarting, open the admin console again and log in:
329330

330-
![Keycloak login page running on the Azure Cobalt 100 Arm64 virtual machine after fixing the HTTPS required issue and successfully loading the authentication screen.#center](images/keycloak-ui.png "Keycloak login page on Azure Cobalt 100 Arm64")
331+
![Keycloak login page running on the Azure Cobalt 100-based Arm64 virtual machine after fixing the HTTPS required issue and successfully loading the authentication screen.#center](images/keycloak-ui.png "Keycloak login page")
331332

332-
Log in with the admin credentials that you created earlier:
333+
Enter the admin credentials that you created earlier:
333334

334335
```text
335336
Username: admin
336337
Password: AdminPassword123!
337338
```
338339

339-
![Keycloak Admin Console welcome page showing the master realm dashboard after successful login on the Azure Cobalt 100 Arm64 virtual machine.#center](images/keycloak-welcome-page.png "Keycloak Admin Console welcome dashboard")
340+
![Keycloak Admin Console welcome page showing the master realm dashboard after successful login on the Azure Cobalt 100-based Arm64 virtual machine.#center](images/keycloak-welcome-page.png "Keycloak Admin Console welcome dashboard")
340341

341342
### Verify health endpoint
342343

@@ -362,6 +363,6 @@ The output is similar to:
362363

363364
## What you've accomplished and what's next
364365

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.
366367

367368
Next, you'll configure a Flask application and integrate it with Keycloak using OAuth2/OpenID Connect authentication.

0 commit comments

Comments
 (0)