

# 配置 Productboard 连接
<a name="productboard-configuring-connections"></a>

 

Productboard 支持自定义身份验证和 `OAuth2.0`。对于 `OAuth2.0`，Productboard 支持 `AUTHORIZATION_CODE` 授权类型。
+ 此授权类型为“三足型”`OAuth`，因其依赖于将用户重定向到第三方授权服务器来对用户进行身份验证。它用于通过 AWS Glue 控制台创建连接。默认情况下，创建连接的用户可以依赖于 AWS Glue 拥有的关联应用程序，在该应用程序中，除了 Productboard Client ID 和客户端密钥之外，用户无需提供任何与 `OAuth` 相关的信息。AWS Glue 控制台会将用户重定向到 Productboard，用户必须登录并向 AWS Glue 授予所请求的权限，以访问其 Productboard 实例。
+ 用户仍然可以选择在 Productboard 中创建自己的关联应用程序，并在通过 AWS Glue 控制台创建连接时，提供自己的客户端 ID 和客户端密钥。在这种情况下，他们仍会重定向到 Productboard，以便登录并授权 AWS Glue 访问其资源。
+ 此授权类型会生成刷新令牌和访问令牌。访问令牌的有效期很短，可以通过刷新令牌在不需要用户干预的情况下自动刷新。
+ 有关为 `AUTHORIZATION_CODE OAuth` 流创建关联应用程序的 Productboard 公共文档，请参阅 [How to integrate with Productboard via OAuth2 - developer documentation](https://developer.productboard.com/docs/how-to-integrate-with-productboard-via-oauth2-developer-documentation)。

要配置 Productboard 连接，请执行以下操作：

1. 在 AWS Secrets Manager 中，创建一个包含以下详细信息的密钥：
   + 对于 `OAuth` 身份验证：对于客户托管的关联应用程序：密钥应包含关联应用程序的使用者密钥，并将 `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` 作为键。
   + 对于 `Custom auth`：对于客户托管的关联应用程序：密钥应包含关联应用程序的 `JWT token`，并将 `access_token` 作为键。
**注意**  
必须在 AWS Glue 中为每个连接创建密钥。

1. 在 AWS Glue Studio 中，按照以下步骤在**数据连接**下创建连接：

   1. 选择**数据来源**时，请选择 Productboard。

   1. 选择 AWS Glue 可以代入并有权执行以下操作的 IAM 角色：

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. 选择身份验证类型以连接到数据来源：
      + 对于 `OAuth` 身份验证：提供 `Token URL` 和 Productboard 应用程序的 `User Managed Client Application ClientId`。

   1. 在 AWS Glue 中选择您要用于此连接的 `secretName`，然后放置令牌。

   1.  如果要使用网络，请选择网络选项。

1. 向与您的 AWS Glue 作业关联的 IAM 角色授予读取 `secretName` 的权限。

1. 在 AWS Glue 作业配置中，提供 `connectionName` 作为附加网络连接。