# 配置 Keycloak

## 创建一个领域

Realm（领域）是Keycloak中用来管理一组用户、凭据、角色和组的对象的概念。

<figure><img src="https://3484936666-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkc3qks6b4rvNPb2C0khl%2Fuploads%2FTnqQXBDAFMJkAdnTHhfr%2Fimage.png?alt=media&#x26;token=8769809d-9769-47b1-9ba1-9be92ec30002" alt=""><figcaption></figcaption></figure>

## 注册客户端应用

在Keycloak中，客户端是可以请求用户身份认证的实体。通常，客户端是我们希望通过提供单一登录（SSO）解决方案来保护的应用程序或服务。

<figure><img src="https://3484936666-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkc3qks6b4rvNPb2C0khl%2Fuploads%2F7ByxR8UYFbJj9fr6rCSs%2Fimage.png?alt=media&#x26;token=1d0fc25d-aa2e-4062-b9ce-fffcbc5f4065" alt=""><figcaption></figcaption></figure>

### 添加客户端角色

在“**Roles**”页面上，我们需要创建以下客户端角色：

* USER
* ADMIN

<figure><img src="https://3484936666-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkc3qks6b4rvNPb2C0khl%2Fuploads%2FLVn9XFB0rz9kz9iv96if%2Fimage.png?alt=media&#x26;token=877a237b-7d09-448a-b2ad-dc4ed3de47b6" alt=""><figcaption></figcaption></figure>

### Credentials 页面

既然我们已经完成了基本的客户端配置，让我们访问“**Credentials**”页面。该页面将显示身份认证过程所需的客户端密钥：

<figure><img src="https://3484936666-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkc3qks6b4rvNPb2C0khl%2Fuploads%2FUbmkVRP4UOiOaGxrt9OB%2Fimage.png?alt=media&#x26;token=845b2b90-e396-4d73-9aac-7e0b21618168" alt=""><figcaption></figcaption></figure>

## 创建 realm roles(optional)

这是一个可选步骤。如果你不想创建这些角色，可以直接创建用户。但是之后要识别和维护每个用户的角色可能会更困难。

<figure><img src="https://3484936666-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkc3qks6b4rvNPb2C0khl%2Fuploads%2FEpkKgg5d41hwIp6N7a9i%2Fimage.png?alt=media&#x26;token=47b3d83f-ae06-4f75-ac72-e40b8f9f528c" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3484936666-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkc3qks6b4rvNPb2C0khl%2Fuploads%2FlWmrAvwGigXFen13fv1U%2Fimage.png?alt=media&#x26;token=7817fdcd-aa57-45c4-8c19-01d87598f3f3" alt=""><figcaption></figcaption></figure>

## 创建用户

<figure><img src="https://3484936666-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fkc3qks6b4rvNPb2C0khl%2Fuploads%2FxIslJg6EXJk7Qdb3QCYM%2Fimage.png?alt=media&#x26;token=606660f9-9ee2-4268-ad04-393376c73df5" alt=""><figcaption></figcaption></figure>

保存这个表单后，点击“**Credentials**”选项卡。您需要输入用户的密码，禁用“**Temporary**”选项，然后点击“**Save Password**”按钮。密码设置好后，点击“**Role Mappings**”选项卡，为用户分配特定的角色。
