# 17.3.2 使用 Actuator 进行认证

在第 16.4 节中，我们讨论了如何使用 HTTP 基本验证，保护 Actuator 端点。这样做，就可以把所有不知道密码的人挡在门外。不幸的是，这也意味着 Admin 服务端也将无法使用 Actuator 端点，除非它知道用户名和密码。但是 Admin 服务端将如何获得那些凭据呢？

Admin 客户端应用程序，可以向 Admin 服务端提供其凭据。可以直接向 Admin 服务端注册，也可以通过 Eureka 被发现。如果应用程序直接向 Admin 服务端注册，那么它可以在注册时，将其凭据发送到 admin 服务端。您需要配置一些属性来启用该功能。

属性 `spring.boot.admin.client.instance.metadata.user.name` 和 `spring.boot.admin.client.instance.metadata.user.password` 指定的凭据信息，Admin 服务端可以用来访问应用程序的 Actuator 端点。下面是 application.yml 中的代码片段，展示了如何设置这些属性：

```yaml
spring:
  boot:
    admin:
      client:
        url: http://localhost:9090
        instance:
          metadata:
            user.name: ${spring.security.user.name}
            user.password: ${spring.security.user.password}
```

必须在每个注册的应用程序中设置用户名和密码属性，它本身与 Admin 服务端连接。且给定的值必须与 Actuator 端点 HTTP 基本身份验证中，所需的用户名和密码匹配。在本例中，它们被设置为 admin 和 password，这是为访问 Actuator 端点所需的凭据。

另一方面，如果应用程序被 Admin 服务端自动发现，就需要改为设置 `eureka.instance.metadata-map.user.name` 和 `eureka.instance.metadata-map.user.password`：

```yaml
eureka:
  instance:
    metadata-map:
      user.name: admin
      user.password: password
```

当应用程序向 Eureka 注册时，凭证将包含在 Eureka 注册记录的元数据中。Admin 服务端发现应用程序时，它从 Eureka 获取凭据，以及有关应用程序的其他详细信息。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://potoyang.gitbook.io/spring-in-action-v5/di-17-zhang-guan-li-spring/17.3-bao-hu-admin-fu-wu-duan/17.3.2-shi-yong-actuator-jin-hang-ren-zheng.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
