查看 Application Integration 支持的连接器

管理身份验证配置文件

Application Integration 中的任务可能需要连接到外部应用, 服务或数据源通过身份验证配置文件,您可以配置和存储 Application Integration 中连接的身份验证详细信息。您可以将任务配置为使用存储的身份验证配置文件。创建身份验证配置文件是一次性活动,您可以在多个集成中重复使用同一配置文件。

所需的角色

如需获取管理身份验证配置文件所需的权限, 请让管理员授予您 集成的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

创建 OAuth 2.0 客户端 ID

客户端 ID 用于向 Google 的 OAuth 服务器标识单个应用。如果您的应用在多个平台上运行,那么每个平台都将需要有自己的客户端 ID。 如需在应用中使用 OAuth 2.0,您需要有一个 OAuth 2.0 客户端 ID,您的应用在请求 OAuth 2.0 访问令牌时会用到该 ID。

如需创建 OAuth 2.0 客户端 ID,请执行以下步骤:

  1. 在 Google Cloud 控制台中,前往 API 和服务 > 凭据

    进入“凭据”页面

  2. 点击 + 创建凭据,然后从可用选项列表中选择 OAuth 客户端 ID

    随即会出现创建 OAuth 客户端 ID 页面。

  3. 应用类型:从下拉列表中选择 Web 应用
  4. 名称:为您的 OAuth 2.0 客户端输入一个名称,用于在 Cloud 控制台中标识该客户端。
  5. 已获授权的重定向 URI 下,点击 +添加 URI,然后输入以下内容:
     https://console.cloud.google.com/integrations/callback/locations/AUTH_PROFILE_REGION
  6. 点击创建

    您现已成功创建一个 OAuth 2.0 客户端 ID。

创建新身份验证配置文件

如需创建新的身份验证配置文件,请选择以下方法之一:

控制台

  1. 在 Google Cloud 控制台中,进入 Application Integration 页面。

    转到 Application Integration

  2. 在导航菜单中,点击 Auth Profiles
  3. 系统会显示 Authentication Profiles 页面。

  4. 点击创建,然后输入以下详细信息:
  5. 点击创建

Terraform

使用 google_integrations_client 资源。您可以使用 terraform 创建以下身份验证配置文件:

身份验证令牌

以下示例在 us-central1 区域中创建身份验证令牌身份验证类型

resource "google_integrations_client" "client" {
  location = "us-central1"
}

resource "google_integrations_auth_config" "auth_config_auth_token" {
  location     = "us-central1"
  display_name = "tf-auth-token"
  description  = "Test auth config created via terraform"
  decrypted_credential {
    credential_type = "AUTH_TOKEN"
    auth_token {
      type  = "Basic"
      token = "some-random-token"
    }
  }
  depends_on = [google_integrations_client.client]
}

SSL/TLS 客户端证书

以下示例在 us-central1 区域中创建 SSL/TLS 客户端证书身份验证类型

resource "google_integrations_auth_config" "auth_config_certificate" {
  location     = "us-central1"
  display_name = "tf-certificate"
  description  = "Test auth config created via terraform"
  decrypted_credential {
    credential_type = "CLIENT_CERTIFICATE_ONLY"
  }
  client_certificate {
    ssl_certificate       = <<EOT
-----BEGIN CERTIFICATE-----
MIICTTCCAbagAwIBAgIJAPT0tSKNxan/MA0GCSqGSIb3DQEBCwUAMCoxFzAVBgNV
BAoTDkdvb2dsZSBURVNUSU5HMQ8wDQYDVQQDEwZ0ZXN0Q0EwHhcNMTUwMTAxMDAw
MDAwWhcNMjUwMTAxMDAwMDAwWjAuMRcwFQYDVQQKEw5Hb29nbGUgVEVTVElORzET
MBEGA1UEAwwKam9lQGJhbmFuYTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
vDYFgMgxi5W488d9J7UpCInl0NXmZQpJDEHE4hvkaRlH7pnC71H0DLt0/3zATRP1
JzY2+eqBmbGl4/sgZKYv8UrLnNyQNUTsNx1iZAfPUflf5FwgVsai8BM0pUciq1NB
xD429VFcrGZNucvFLh72RuRFIKH8WUpiK/iZNFkWhZ0CAwEAAaN3MHUwDgYDVR0P
AQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMB
Af8EAjAAMBkGA1UdDgQSBBCVgnFBCWgL/iwCqnGrhTPQMBsGA1UdIwQUMBKAEKey
Um2o4k2WiEVA0ldQvNYwDQYJKoZIhvcNAQELBQADgYEAYK986R4E3L1v+Q6esBtW
JrUwA9UmJRSQr0N5w3o9XzarU37/bkjOP0Fw0k/A6Vv1n3vlciYfBFaBIam1qRHr
5dMsYf4CZS6w50r7hyzqyrwDoyNxkLnd2PdcHT/sym1QmflsjEs7pejtnohO6N2H
wQW6M0H7Zt8claGRla4fKkg=
-----END CERTIFICATE-----
EOT
    encrypted_private_key = <<EOT
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCA/Oj2HXqs5fTk
j/8DrlOQtLG3K9RMsYHvnwICLxkGqVcTfut58hDFLbQM8C3C0ENAKitNJplCJmYG
8VpgZzgq8VxaGnlP/sXUFLMGksd5sATn0sY3SkPndTKk/dqqA4MIh/dYfh19ynEN
hB9Ll/h54Yic2je2Qaxe/uMMu8RODTz3oCn7FcoYpPvfygfU0ntn4IcqH/hts5DG
s+3otJk4entRZglQDxR+sWOsbLtJIQZDP8rH3jDVdl5l3wspgtMTY8b5T5+pLm0p
/OzCmxT0dq/O6BhpxI1xf/zcdRZeWk5DTJxTi5AgPquTlAG/B6A3HkqBJ14hT/Rk
iv7Ma3DLAgMBAAECggEABATkf9VfpiAT9zYdouk50bBpckvymQTyQLD8SlBaX+KY
kgv/pHSXK4Pm4iensrQerFLgfqPA3U+FiqjW5Mv7c1VRK6HJbuVkpdzoXLI9IQsL
vsBY7//9Ajk5P7NokjdB6JPdU/2dHROuQVa59cxPtzpHo0htnPlDOKXfFZZuoZ17
Nr8WQHrHy8P8ABM1tLOzvU9Nlh7TcjQvev+HxkLek4qzYyJ/Ac7XOjg/XKUm1tZk
O3BHr8YLabwyjO7l1t+2b14rUTL/8pfUZnAkEi3FAlPxm3ilftmX65zliC9G4ghk
dr5PByT3DqnuIIglua9bISv1H34ogecd+9a6EU7RxQKBgQC2RPKLounXZo8vYiU4
sFTEvjbs+u9Ypk4OrNLnb8KdacLBUaJGnf++xbBoKpwFCBJfy//fvuQfusYF9Gyn
GxL43tw94C/H5upQYnDsmnQak6TbOu3mA24OGK7Rcq6NEHgeCY4HomutnSiPTZJq
8jlpqgqh1itETe5avgkMNq3zBwKBgQC1KlztGzvbB+rUDc6Kfvk5pUbCSFKMMMa2
NWNXeD6i2iA56zEYSbTjKQ3u9pjUV8LNqAdUFxmbdPxZjheNK2dEm68SVRXPKOeB
EmQT+t/EyW9LqBEA2oZt3h2hXtK8ppJjQm4XUCDs1NphP87eNzx5FLzJWjG8VqDq
jOvApNqPHQKBgDQqlZSbgvvwUYjJOUf5R7mri0LWKwyfRHX0xsQQe43cCC6WM7Cs
Zdbu86dMkqzp+4BJfalHFDl0llp782D8Ybiy6CwZbvNyxptNIW7GYfZ9TVCllBMh
5izIqbgub4DWNtq591l+Bf2BnmstU3uiagYw8awSBP4eo9p6y1IgkDafAoGBAJbi
lIiqEP0IqA06/pWc0Qew3rD7OT0ndqjU6Es2i7xovURf3QDkinJThBZNbdYUzdsp
IgloP9yY33/a90SNLLIYlARJtyNVZxK59X4qiOpF9prlfFvgpOumfbkj15JljTB8
aGKkSvfVA5jRYwLysDwMCHwO0bOR1u3itos5AgsFAoGAKEGms1kuQ5/HyFgSmg9G
wBUzu+5Y08/A37rvyXsR6GjmlZJvULEopJNUNCOOpITNQikXK63sIFry7/59eGv5
UwKadZbfwbVF5ipu59UxfVE3lipf/mYePDqMkHVWv/8p+OnnJt9uKnyW8VSOu5uk
82QF30zbIWDTUjrcugVAs+E=
-----END PRIVATE KEY-----
EOT
  }
  depends_on = [google_integrations_client.client]
}

JSON Web 令牌 (JWT)

以下示例在 us-central1 区域中创建 JSON Web 令牌 (JWT) 身份验证类型

resource "google_integrations_auth_config" "auth_config_jwt" {
  location     = "us-central1"
  display_name = "tf-jwt"
  description  = "Test auth config created via terraform"
  decrypted_credential {
    credential_type = "JWT"
    jwt {
      jwt_header  = "{\"alg\": \"HS256\", \"typ\": \"JWT\"}"
      jwt_payload = "{\"sub\": \"1234567890\", \"name\": \"John Doe\", \"iat\": 1516239022}"
      secret      = "secret"
    }
  }
  depends_on = [google_integrations_client.client]
}

OAuth 2.0 授权代码

以下示例在 us-central1 区域中创建 SSL/TLS 客户端证书身份验证类型

resource "google_integrations_auth_config" "auth_config_oauth2_authorization_code" {
  location     = "us-central1"
  display_name = "tf-oauth2-authorization-code"
  description  = "Test auth config created via terraform"
  decrypted_credential {
    credential_type = "OAUTH2_AUTHORIZATION_CODE"
    oauth2_authorization_code {
      client_id      = "Kf7utRvgr95oGO5YMmhFOLo8"
      client_secret  = "D-XXFDDMLrg2deDgczzHTBwC3p16wRK1rdKuuoFdWqO0wliJ"
      scope          = "photo offline_access"
      auth_endpoint  = "https://authorization-server.com/authorize"
      token_endpoint = "https://authorization-server.com/token"
    }
  }
  depends_on = [google_integrations_client.client]
}

OAuth 2.0 客户端凭据

以下示例在 us-central1 区域中创建 OAuth 2.0 客户端凭据身份验证类型

resource "google_integrations_auth_config" "auth_config_oauth2_client_credentials" {
  location     = "us-central1"
  display_name = "tf-oauth2-client-credentials"
  description  = "Test auth config created via terraform"
  decrypted_credential {
    credential_type = "OAUTH2_CLIENT_CREDENTIALS"
    oauth2_client_credentials {
      client_id      = "demo-backend-client"
      client_secret  = "MJlO3binatD9jk1"
      scope          = "read"
      token_endpoint = "https://login-demo.curity.io/oauth/v2/oauth-token"
      request_type   = "ENCODED_HEADER"
      token_params {
        entries {
          key {
            literal_value {
              string_value = "string-key"
            }
          }
          value {
            literal_value {
              string_value = "string-value"
            }
          }
        }
      }
    }
  }
  depends_on = [google_integrations_client.client]
}

Google OIDC ID 令牌

以下示例会在 us-central1 区域中创建 Google OIDC ID 令牌身份验证类型

resource "random_id" "default" {
  byte_length = 8
}

resource "google_service_account" "service_account" {
  account_id   = "sa-${random_id.default.hex}"
  display_name = "Service Account"
}

resource "google_integrations_auth_config" "auth_config_oidc_token" {
  location     = "us-central1"
  display_name = "tf-oidc-token"
  description  = "Test auth config created via terraform"
  decrypted_credential {
    credential_type = "OIDC_TOKEN"
    oidc_token {
      service_account_email = google_service_account.service_account.email
      audience = "https://us-central1-project.cloudfunctions.net/functionA 1234987819200.apps.googleusercontent.com"
    }
  }
depends_on = [google_service_account.service_account, google_integrations_client.client]
}

服务账号

以下示例会在 us-central1 区域中创建服务账号身份验证类型

resource "random_id" "default" {
  byte_length = 8
}
  
resource "google_service_account" "service_account" {
  account_id   = "sa-${random_id.default.hex}"
  display_name = "Service Account"
}
resource "google_integrations_auth_config" "auth_config_service_account" {
  location     = "us-central1"
  display_name = "tf-service-account"
  description  = "Test auth config created via terraform"
  decrypted_credential {
    credential_type = "SERVICE_ACCOUNT"
    service_account_credentials {
    service_account = google_service_account.service_account.email
    scope = "https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/adexchange.buyer https://www.googleapis.com/auth/admob.readonly"
    }
  }
depends_on = [google_service_account.service_account, google_integrations_client.client]
}

保存后,系统会在需要身份验证的任何任务的要使用的授权配置文件 (Authorization profile to use) 下拉列表中提供新的身份验证配置文件作为选项。

可选。如果您在配置集成任务之前未创建身份验证配置文件,则可以通过从任务配置窗格的要使用的授权配置文件 (Authorization profile to use) 下拉列表中选择 + 添加新的身份验证配置文件 (+ Add new authentication profile) 来访问配置文件创建对话框。按照前面的步骤创建新的身份验证配置文件。

修改身份验证配置文件

如需修改身份验证配置文件,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Application Integration 页面。

    转到 Application Integration

  2. 在导航菜单中,点击 Auth Profiles
  3. 系统会显示 Authentication Profiles 页面。

  4. 使用 Authentication Profiles 页面中的下拉菜单,为身份验证配置文件选择区域
  5. 点击 (操作菜单),然后点击修改

    此时会显示身份验证配置文件对话框。

  6. 修改详细信息,然后点击保存

删除身份验证配置文件

如需删除身份验证配置文件,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Application Integration 页面。

    转到 Application Integration

  2. 在导航菜单中,点击身份验证资料
  3. 系统会显示 Authentication Profiles 页面。

  4. 使用 Authentication Profiles 页面中的下拉菜单,为身份验证配置文件选择区域
  5. 点击删除

身份验证类型

完成集成任务所需的身份验证类型取决于授权服务器中配置的身份验证。授权服务器可以是独立服务器,也可以是向调用客户端发出凭据的 API。应用集成支持以下身份验证类型:

以下部分介绍了身份验证类型的配置属性。

身份验证令牌

身份验证令牌身份验证类型使用令牌(凭据)进行身份验证。凭据会在 HTTP Authorization 请求标头中以 Authorization: TYPE CREDENTIALS 格式发送至服务器。如需配置此身份验证类型,请设置以下属性:
  • 类型:身份验证类型,例如 BasicBearerMAC
  • 令牌:身份验证类型的凭据。

如果身份验证服务器需要 SSL/TLS 证书,请上传证书和私钥。

如需了解哪些任务支持此身份验证类型,请参阅身份验证类型与任务的兼容性

Google OIDC ID 令牌

Google OIDC ID 令牌身份验证类型使用 JSON Web 令牌 (JWT) 进行身份验证。Google OpenID Connect (OIDC) 提供商 accounts.google.comaccounts.google.com 会对这些 JWT 进行签名和颁发,以使用服务账号进行身份验证。如需配置此身份验证类型,请设置以下属性:
  • 服务账号:您的 Google Cloud 项目中有权访问您的 API 的服务账号(主账号)。
  • 受众群体:OIDC 令牌的受众群体(用于标识 JWT 的目标接收者)。例如,触发器网址Cloud Functions 函数任务的受众群体。
如需了解哪些任务支持此身份验证类型,请参阅身份验证类型与任务的兼容性

JSON Web 令牌 (JWT)

JWT 身份验证类型使用 JSON Web 令牌 (JWT) 进行身份验证。如需详细了解 JWT,请参阅 RFC7519。如需配置此身份验证类型,请设置以下属性:
  • JWT 标头:用于生成签名的算法。

    注意:您只能指定 HS256 算法。

  • JWT 载荷:一组声明。您可以使用已注册、公开和自定义的声明。
  • Secret:客户端与身份验证服务器之间的共享密钥。

如果身份验证服务器需要 SSL 证书,请使用文件选择器上传证书和私钥。输入私钥密码。

如需了解哪些任务支持此身份验证类型,请参阅身份验证类型与任务的兼容性

OAuth 2.0 授权代码

OAuth 2.0 授权代码身份验证类型使用 OAuth 2.0 授权令牌进行身份验证。如需配置此身份验证类型,请设置以下属性:

  • 身份验证端点:应用的身份验证端点的端点。您将会被重定向到此网址,以查看该应用的访问权限。 只有在授予访问权限后,系统才会生成令牌。
  • 令牌端点:用于授予或刷新访问令牌的端点。
  • 客户端 ID:由身份验证服务器向所注册客户端提供的唯一字符串。客户端 ID 不是密钥,所以会向资源所有者公开。将此字段与客户端密钥结合使用。
  • Secret:客户端(集成)和身份验证服务器之间的共享密钥。
  • 范围:访问令牌的范围。您可以通过范围来指定用户的访问权限。您可以指定多个范围,以单个空格(“ ”)分隔。如需了解详情,请参阅适用于 Google API 的 OAuth 2.0 范围

如果身份验证服务器需要 SSL 证书,请使用文件选择器上传证书和私钥。根据需要在可用字段中输入私钥密码。

如需了解哪些任务支持此身份验证类型,请参阅身份验证类型与任务的兼容性

OAuth 2.0 客户端凭据

OAuth 2.0 客户端凭据身份验证类型使用 OAuth 2.0 授权令牌进行身份验证。此身份验证首先使用客户端凭据请求访问令牌,然后使用该令牌访问受保护的资源。如需配置此身份验证类型,请设置以下属性:

  • 令牌端点:用于授予或刷新访问令牌的端点。
  • 客户端 ID:由身份验证服务器向所注册客户端提供的唯一字符串。客户端 ID 不是密钥,所以会向资源所有者公开。将此字段与客户端密钥结合使用。
  • Secret:客户端(集成)和身份验证服务器之间的共享密钥。
  • 范围:访问令牌的范围。您可以通过范围来指定用户的访问权限。您可以指定多个范围,以单个空格(“ ”)分隔。如需了解详情,请参阅适用于 Google API 的 OAuth 2.0 范围
  • 请求类型:将请求参数发送至身份验证服务器以获取访问令牌的机制。您可以指定以下任何请求类型:

    • 编码器标头:对 Base64 格式的 CLIENT IDCLIENT SECRET 进行编码,并在 HTTP 授权标头中发送编码后的字符串。其余的请求参数会在 HTTP 请求正文中发送。
    • 查询参数:在查询字符串中发送请求参数。
    • 请求正文:使用 application/x-www-form-urlencoded 内容类型和 HTTP 请求的 entity-body 中的 UTF-8 字符集发送请求参数。
    • 不明
  • 令牌参数:获取令牌所需的请求参数。以键值对格式指定值,其中 Key 是参数名称,Value 是对应的参数值。

如果身份验证服务器需要 SSL 证书,请使用文件选择器上传证书和私钥。根据需要在可用字段中输入私钥密码。

如需了解哪些任务支持此身份验证类型,请参阅身份验证类型与任务的兼容性

OAuth 2.0 资源所有者密码凭据

OAuth 2.0 资源所有者密码凭据身份验证类型使用 OAuth 2.0 授权令牌进行身份验证。此身份验证首先使用资源所有者凭据(用户名和密码)请求访问令牌,然后使用该令牌访问受保护的资源。如需配置此身份验证类型,请根据您连接到的实例类型设置以下属性:

  • 令牌端点:用于授予或刷新访问令牌的端点。
  • 客户端 ID:由身份验证服务器向所注册客户端提供的唯一字符串。客户端 ID 不是密钥,所以会向资源所有者公开。将此字段与客户端密钥结合使用。
  • Secret:客户端(集成)和身份验证服务器之间的共享密钥。
  • 范围:访问令牌的范围。您可以通过范围来指定用户的访问权限。您可以指定多个范围,以单个空格(“ ”)分隔。如需了解详情,请参阅适用于 Google API 的 OAuth 2.0 范围
  • 用户名:资源所有者的用户名。
  • 密码:用户密码。
  • 请求类型:将请求参数发送至身份验证服务器以获取访问令牌的机制。您可以指定以下任何请求类型:

    • 编码器标头:对 Base64 格式的 CLIENT IDCLIENT SECRET 进行编码,并在 HTTP 授权标头中发送编码后的字符串。在 HTTP 请求正文中发送其余的请求参数。
    • 查询参数:在查询字符串中发送请求参数。
    • 请求正文:使用 application/x-www-form-urlencoded 内容类型和 HTTP 请求的 entity-body 中的 UTF-8 字符集发送请求参数。
  • 令牌参数:获取令牌所需的请求参数。以键值对格式指定值,其中 Key 是参数名称,Value 是对应的参数值。

如果身份验证服务器需要 SSL 证书,请使用文件选择器上传证书和私钥。根据需要在可用字段中输入私钥密码。

如需了解哪些任务支持此身份验证类型,请参阅身份验证类型与任务的兼容性

仅限 SSL/TLS 客户端证书

仅限 SSL/TLS 客户端证书身份验证类型仅使用 SSL/TLS 证书进行身份验证。上传所需的证书和私钥。如需配置此身份验证类型,请上传以下文件:
  • SSL 证书:采用 PEM 格式编码的证书。
  • 私钥:采用 PEM 格式编码的证书私钥文件。

    如果私钥需要 passphrase,请输入私钥密码

如需了解哪些任务支持此身份验证类型,请参阅身份验证类型与任务的兼容性

服务账号

服务账号身份验证类型使用 Google Cloud 项目服务账号的凭据进行身份验证。如需配置此身份验证类型,请设置以下属性:

  • 服务账号:您的 Google Cloud 项目中有权访问您的 API 的服务账号(主账号)。
  • 范围:授予用户的访问权限范围。您可以指定多个范围,以单个空格(“ ”)分隔。如需了解详情,请参阅适用于 Google API 的 OAuth 2.0 范围

如需了解创建和管理服务账号的最佳实践,请参阅使用服务账号的最佳实践文档

如果身份验证服务器需要 SSL 证书,请使用文件选择器上传证书和私钥。根据需要在可用字段中输入私钥密码。

如需了解哪些任务支持此身份验证类型,请参阅身份验证类型与任务的兼容性

身份验证类型与任务的兼容性

下表列出了身份验证类型和对应的兼容任务。您可以使用此信息来决定要用于任务的身份验证类型。

身份验证类型 兼容的任务和触发器
身份验证令牌
Google OIDC ID 令牌
JSON Web 令牌 (JWT)
OAuth 2.0 授权代码
OAuth 2.0 客户端凭据
OAuth 2.0 资源所有者密码凭据
仅限 SSL/TLS 客户端证书
服务账号

身份验证规则

如果您的集成同时配置了 OAuth 2.0 配置文件和用户管理的服务账号,则默认情况下,系统会使用 OAuth 2.0 配置文件进行身份验证。如果 OAuth 2.0 配置文件和用户管理的服务账号均未配置,则系统会使用默认服务账号 (service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com)。如果任务不使用默认服务账号,则执行会失败。