通过 HTTPS 进行身份验证

适用于:✅Azure 数据资源管理器

若要通过 HTTPS 与数据库交互,发出请求的主体必须使用 HTTP Authorization 请求标头进行身份验证。

语法

Authorization: Bearer AccessToken

详细了解语法约定

参数

客户 类型​​ 必需 说明
AccessToken string ✔️ 服务的 Microsoft Entra 访问令牌。

获取访问令牌

可以通过许多不同的方法获取 Microsoft Entra 访问令牌。 有关详细信息,请参阅用户身份验证应用程序身份验证

使用 Azure CLI 获取用户主体的访问令牌

以下步骤返回发出请求的用户主体的访问令牌。 确保该用户主体有权访问你打算访问的资源。 有关详细信息,请参阅基于角色的访问控制

  1. 登录 Azure CLI。

    az login --output table
    
  2. 查找 Default 列为 true 的行。 确认该行中的订阅是你要为其创建 Microsoft Entra 访问令牌的订阅。 若要查找订阅信息,请参阅在 Azure 门户中获取订阅和租户 ID。 如果需要切换到其他订阅,请运行以下命令之一。

    az account set --subscription <SUBSCRIPTION_ID>
    
    az account set --name "<SUBSCRIPTION_NAME>"
    
  3. 运行以下命令以获取访问令牌。

    az account get-access-token \
      --resource "https://api.kusto.chinacloudapi.cn" \
      --query "accessToken"
    

使用 Azure CLI 获取服务主体的访问令牌

Microsoft Entra 服务主体代表需要访问资源的应用程序或服务,通常在 API 调用等非交互式方案中使用。 以下步骤指导你创建服务主体并获取此主体的持有者令牌。

  1. 登录 Azure CLI。

    az login --output table
    
  2. 查找 Default 列为 true 的行。 确认该行中的订阅是你要在其下创建服务主体的订阅。 若要查找订阅信息,请参阅在 Azure 门户中获取订阅和租户 ID。 如果需要切换到其他订阅,请运行以下命令之一。

    az account set --subscription <SUBSCRIPTION_ID>
    
    az account set --name "<SUBSCRIPTION_NAME>"
    
  3. 创建服务主体。 以下命令将创建一个 Microsoft Entra 服务主体并返回该服务主体的 appIddisplayNamepasswordtenantId

    az ad sp create-for-rbac -n <SERVICE_PRINCIPAL_NAME> 
    
  4. 向应用程序主体授予对你的数据库的访问权限。 例如,在数据库上下文中,使用以下命令将主体添加为用户。

    .add database <DATABASE> users ('aadapp=<appId>;<tenantId>')
    

    若要了解不同的角色及其分配方法,请参阅安全角色管理

  5. 发送 HTTP 请求以请求访问令牌。 请将 <tenantId><appId><password> 替换为从上一个命令获取的值。 此请求返回一个包含访问令牌的 JSON 对象,你可以在请求中将其用作 Authorization 标头的值。

    curl -X POST https://login.partner.microsoftonline.cn/<tenantId>/oauth2/token \
      -F grant_type=client_credentials \
      -F client_id=<appId> \
      -F client_secret=<password> \
      -F resource=https://api.kusto.chinacloudapi.cn