Skip to main content
AI Data Engine
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

AIDE REST API 的身份验证和授权

贡献者 dmp-netapp netapp-dbagwell

在将 ONTAP REST API 与 AIDE 扩展结合使用之前,您应该了解身份验证和授权的选项。

ONTAP REST API 身份验证选项

ONTAP REST API 支持两种主要的身份验证技术。

基本身份验证

基本身份验证是一种简单的技术,定义为 HTTP 协议的一部分。通过基本身份验证,您可以在 API 调用的 Authorization 标头中提供用户名和密码(在 base64 中组合并编码)。不建议将其与 AIDE REST API 一起使用,但仍然可以与现有的 ONTAP API 调用一起使用。

OAuth 2.0 身份验证

从 9.14.1 开始,ONTAP 还支持 OAuth 2.0。这是一个更安全、更灵活的身份验证框架。使用 OAuth 2.0 时,需要从外部身份提供程序 (IdP) 请求访问令牌,并将其包含在每个 HTTP 请求中。

AI Data Engine 和 OpenID Connect

OpenID Connect (OIDC) 基于 OAuth 2.0 构建,在验证用户和应用程序时提供安全和标准化的选项。访问 AIDE 功能和相关数据计算节点服务需要 OIDC。在您 "在 ONTAP 中为 AIDE 配置 OpenID Connect" 之后,对 ONTAP System Manager 和开箱 Swagger 页面的访问将受到 OIDC 身份验证的保护。

在 ONTAP System Manager 中配置 OIDC 时,会自动启用 OAuth 2.0 并创建 OAuth 2.0 客户端。然后,您可以通过 IdP 的 token_endpoint 获取访问令牌,这通常可以从 IdP 元数据 URI 确定。访问令牌需要包含在 API 调用的 Authorization 标头中,以验证和授权对 AIDE 资源的访问。

对 ONTAP RBAC 实施的增强

对 AIDE REST API 的访问使用 ONTAP 的基于角色的访问控制 (RBAC) 框架进行保护。用户必须在 ONTAP 中分配适当的角色和权限,才能访问 AIDE 资源并通过 REST API 执行操作。

还有两个额外的 ONTAP 角色支持 AIDE。在 IdP 中定义的等效外部角色需要映射到这些 ONTAP 角色,以提供对 AIDE 资源的必要访问权限。

备注 除了两个新的 ONTAP 角色之外,您还需要将外部存储管理员角色映射到现有的 ONTAP admin 角色。有关详细信息,请参见 "AI Data Engine 组件和基于角色的交互""在 ONTAP 中为 AIDE 配置 OpenID Connect"
数据工程师

这是 AIDE Data Engineer 的预定义 ONTAP 管理角色。它仅限制对执行 AIDE 数据工程任务所需的端点以及相应的 CLI 命令目录的访问,包括处理工作区和数据收集、查看作业以及在允许的情况下使用文件预览。

数据科学家

这是 AIDE Data Scientist 的第二个预定义 ONTAP 管理角色。它同样仅限制对 AIDE 数据科学家工作流所需的 REST API 和相应 CLI 命令目录的访问。

获取访问令牌

您需要获取访问令牌才能与 REST API 调用一起使用。令牌请求在 ONTAP 外部执行,确切的过程取决于授权服务器及其配置。您可以通过 Web 浏览器、使用 curl 命令或使用编程语言请求令牌。为便于说明,提供了如何使用 curl 从 Microsoft Entra ID 请求访问令牌的示例。

开始之前

请注意以下事项:

  • 必须为启用了 AIDE 的集群"在 ONTAP 中为 AIDE 配置 OpenID Connect"

  • 确定您的 IdP token_endpoint,通常可通过 OIDC 元数据 URI 获得。

  • 根据您的 IdP 查找配置的相应值,例如 CLIENT_ID。

  • TENANT_ID、CLIENT_ID 和 CLIENT_SECRET 等配置参数采用 UUID 格式。USERNAME 和 PASSWORD 是纯文本凭据。

  • 您可以选择在 Bash shell 中定义变量值,以便与 curl 命令一起使用。

步骤
  1. 在本地工作站的命令行界面上发出以下命令,根据您的环境为变量提供值:

    curl --location "https://login.microsoftonline.com/$TENANT_ID/oauth2/v2.0/token" \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode "grant_type=password" \
    --data-urlencode "client_id=$CLIENT_ID" \
    --data-urlencode "client_secret=$CLIENT_SECRET" \
    --data-urlencode "scope=$SCOPE/.default" \
    --data-urlencode "username=$USERNAME" \
    --data-urlencode "password=$PASSWORD"
  2. 查看响应并提取用于 REST API 调用的访问令牌。