请求应用程序规范的安全集成

本主题介绍了如何配置 Snowflake Native App,以使用应用程序规范来请求访问使用者账户中的安全集成。安全集成允许应用程序连接到第三方身份验证提供商,例如 OAuth。

从应用程序访问第三方身份验证提供商

为了实现第三方身份验证服务,Snowflake 提供了安全集成。安全集成允许应用程序连接到第三方身份验证服务,例如 OAuth。

备注

Snowflake Native Apps 仅支持 API_AUTHENTICATION 类型的安全集成。有关更多信息,请参阅 CREATE SECURITY INTEGRATION(外部 API 身份验证)

安全集成的应用程序规范工作流程

配置应用程序以使用安全集成的一般工作流程如下:

  1. 提供商为应用程序配置 自动授予权限功能。这将授予应用程序创建安全集成的权限。

    备注

    应用程序规范要求在清单文件中设置 manifest_version = 2

  2. 提供商将 CREATE INTEGRATION 权限 添加到清单文件中。

  3. 提供商在安装脚本中添加 SQL 语句,根据需要创建以下对象:

    提供商可以直接在安装脚本中添加这些命令,从而在安装应用程序时创建这些对象。或者,可以将这些命令添加到在运行时需调用的存储过程中,以创建这些对象。

  4. 在配置应用程序时,使用者应批准 OAuth 的相关信息以进行集成。有关使用者如何查看和批准应用程序规范的更多信息,请参阅 使用应用程序规范批准与外部资源的连接

安全集成的应用程序规范定义

对于安全集成,:ref:` 应用程序规范定义 <label-native_apps_app_spec_definition>` 包括连接第三方提供商所需的属性。对于 OAuth,应用程序规范定义取决于 OAuth 类型。下表列出了每种类型的应用程序规范定义:

安全集成类型

应用程序规范中定义的值

CLIENT_CREDENTIALS

  • :code:`OAUTH_TOKEN_ENDPOINT`(必填)

  • :code:`OAUTH_ALLOWED_SCOPES`(必填)

AUTHORIZATION_CODE_GRANT

  • :code:`OAUTH_TOKEN_ENDPOINT`(必填)

  • :code:`OAUTH_AUTHORIZATION_ENDPOINT`(可选)

JWT

  • :code:`OAUTH_TOKEN_ENDPOINT`(必填)

  • :code:`OAUTH_AUTHORIZATION_ENDPOINT`(可选)

设置清单文件的版本

要启用应用程序权限的自动授予,请在清单文件的开头设置版本,如以下示例所示:

manifest_version: 2
Copy

将 CREATE INTEGRATION 权限添加到清单文件

要允许应用程序创建安全集成,请添加清单文件的 CREATE INTEGRATION 权限,如以下示例所示:

manifest_version: 2
...
privileges:
  - CREATE INTEGRATION
      description: "Allows the app to create security integrations to access external auth providers"
...
Copy

清单文件 privileges 部分中的此条目指定应用程序使用安全集成。为了让应用程序使用自动授予权限功能,清单文件还需要 manifest_version: 2

向安装脚本添加安全集成

安全集成允许应用程序连接到第三方身份验证服务,例如 OAuth。要为应用程序创建安全集成,请将 CREATE SECURITY INTEGRATION(外部 API 身份验证) 命令添加到安装脚本中,如下例所示:

CREATE SECURITY INTEGRATION external_oauth_provider
  TYPE = API_AUTHENTICATION
  AUTH_TYPE = OAUTH2
  OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST
  OAUTH_CLIENT_ID = 'YOUR_CLIENT_ID'
  OAUTH_CLIENT_SECRET = 'YOUR_CLIENT_SECRET'
  OAUTH_GRANT = 'CLIENT_CREDENTIALS'
  OAUTH_TOKEN_ENDPOINT = 'https://login.microsoftonline.com/YOUR_TENANT_ID/oauth2/v2.0/token'
  OAUTH_ALLOWED_SCOPES = ('https://graph.microsoft.com/.default')
  ENABLED = TRUE;
Copy

此示例展示如何创建安全集成,以通过客户端凭据的 OAuth 方式连接到 Microsoft SharePoint。有关连接到 OAuth 提供商的其他受支持方法,请参阅 CREATE SECURITY INTEGRATION(外部 API 身份验证)

为安全集成创建应用程序规范

以下示例显示如何使用 CLIENT_CREDENTIALS OAuth 类型为安全集成创建应用程序规范:

ALTER APPLICATION SET SPECIFICATION oauth_app_spec
  TYPE = SECURITY_INTEGRATION
  LABEL = 'Connection to an external OAuth provider'
  DESCRIPTION = 'Integrates an external identity provider in the app'
  OAUTH_TYPE = 'CLIENT_CREDENTIALS'
  OAUTH_TOKEN_ENDPOINT = 'https://login.microsoftonline.com/YOUR_TENANT_ID/oauth2/v2.0/token'
  OAUTH_ALLOWED_SCOPES = ('https://graph.microsoft.com/.default');
Copy

备注

创建应用程序规范时提供的值必须与在安装脚本中 创建安全集成 时使用的值完全相同。

有关使用其他 OAuth 类型的信息,请参阅 ALTER APPLICATION SET SPECIFICATIONS

在使用者账户中批准应用程序规范

提供商配置应用程序以创建安全集成和应用程序规范后,使用者可以查看该应用程序规范,并在配置应用程序时根据需要对其进行批准或拒绝。有关更多信息,请参阅 使用应用程序规范批准与外部资源的连接

语言: 中文