与谷歌身份验证ID标记

验证数据砖REST api,你有两种选择:

  • 个人访问令牌。您可以使用这些仅供工作空间层REST api。

  • OpenID连接(OIDC)令牌。您可以使用这些砖REST api。

OpenID连接(OIDC)令牌是一个开放标准来支持身份验证。OIDC 1.0是一个简单的身份层上的OAuth 2.0协议。它允许应用程序来验证用户的身份执行基于认证的OAuth授权服务器。应用程序也可以从OIDC得到基本概要信息的用户令牌。默认OIDC令牌到期后一小时。

重要的

砖REST api只支持Google分发了OIDC令牌,这是通常被称为Google ID标记。为了减少混淆,本文的其余部分使用这个词谷歌标识牌OIDC令牌

本文描述的步骤验证使用砖REST api以及如何创建所需的谷歌的云服务帐户和为这些帐户生成令牌。

一个Google ID标记可用于帐户级别api或工作空间层api,但不能用于两个目的。为工作空间层设置令牌的步骤和帐户级别api大多是相同的。重要的差异被称为指令。

在生产环境中,砖建议你使用两个服务帐户与砖REST api的工作。

  • 创建一个服务帐户(SA-1)来运行您的工作负载。

  • 创建另一个服务帐户(2)持有砖和谷歌云资源的权限。

  • 格兰特SA-1许可模仿2砖REST api。

用这个模拟模型中,一个团队可以管理工作负载安全和另一个团队可以管理资源安全。因为你只有格兰特扮演根据需要权限,这种方法为您的组织提供安全性和灵活性。

本文详细描述了如何执行这些步骤供生产使用。你可以适应这些指令非生产使用和测试使用以下策略:

  • 用你的谷歌用户帐户模拟- 2。用户帐户必须有作用角色/ iam.serviceAccountTokenCreator

  • 使用一个谷歌云服务帐户SA-1和2。

户头级别api和工作空间层api

了解认证使用砖REST api,您必须了解REST api的类型和他们的关系到砖资源层次结构。

你可能有一个或多个数据砖账户。砖账户包含零个、一个或多个砖工作区。您可以使用账户控制台创建工作区和管理云资源配置所需工作空间(如凭证、存储和网络)。

一个砖工作空间有各种各样的资源,如就业和笔记本。工作空间管理,有时只是所谓的管理,可以修改设置定义在空间层面,包括设置的管理员设置页面

由于这种差异,有两种类型的api:

砖REST API进行身份验证,您需要通过Google ID与听众令牌(澳元相匹配的基URL) API,这是不同的在这两个类型的API。叫砖REST api与不同的基url,您必须使用不同的Google ID标记。

凭证透传

需要几砖REST API的方法凭证透传。调用这些方法,除了Google ID,您也必须通过谷歌OAuth访问令牌云平台bob体育客户端下载范围在一个HTTP头。砖服务器使用谷歌OAuth访问令牌叫谷歌云api的调用者。

砖不验证或保存访问令牌。

重要的

是否需要凭证透传一个操作,为每个API参考API文档操作。这些api要求X-Databricks-GCP-SA-Access-Token请求中的HTTP头。

步骤1:创建两个服务帐户

  1. 创建两个新谷歌云服务帐户。按照说明谷歌的文章创建一个服务帐户。使用谷歌的云主机,去服务帐户谷歌页面,选择一个云项目中创建它。谷歌云项目中创建这些服务帐户不需要匹配的项目使用砖工作区,这项新服务账户也不需要使用相同的Google云计算项目。

    • Token-creating服务帐户(SA-1):此服务帐户自动创建令牌的主要服务帐户。这些令牌将用于调用砖REST api。谷歌文档调用这个SA-1

    • 主要服务帐户砖REST api (- 2):此服务帐户作为主要(自动化用户)砖REST api和自动化的工作流。谷歌文档调用这个- 2

    保存电子邮件地址的服务帐户用于后续步骤。

  2. 创建一个服务帐户关键为你token-creating服务帐户(SA-1)并将其保存到本地文件SA-1-key.json

    1. 从谷歌云控制台服务帐户页面,点击SA-1的电子邮件地址。

    2. 单击选项卡。

    3. 点击添加关键

    4. 确保JSON(默认)被选中。

    5. 点击创建

    6. 网页下载的关键文件浏览器。移动文件到你的本地工作目录,重命名它SA-1-key.json

    额外的指令,看到谷歌的文章创建服务帐户键

  3. 格兰特token-creating服务账户(SA-1)服务帐户令牌创造者的角色主要服务帐户上(2)。按照说明谷歌的文章直接请求的权限

    1. 从谷歌云控制台服务帐户页面,点击电子邮件地址- 2。

    重要的

    在谷歌云控制台,一定要编辑你的主要SA(- 2),不是你token-creating SA (SA-1):

    1. 点击权限

    2. 点击授权访问

    3. 新校长场,粘贴token-creating SA (SA-1)的电子邮件地址。

    4. 角色字段中,选择服务帐户标记创造者的角色

    5. 点击保存

步骤2:创建一个谷歌标识牌

砖建议使用Google云CLI (gcloud)生成ID标记调用砖REST api。

重要的

一小时内生成的ID标记到期。你必须在这段时间内完成剩余的所有步骤。如果令牌到期之前完成后面的步骤,如调用砖api,你必须重复这个步骤生成一个新的谷歌标识牌。

  1. 在您的机器上安装谷歌云CLI。看到谷歌在安装条gcloud工具

  2. 生成ID标记你的主要服务帐户通过运行以下命令。

    • 取代< SA-1-key-json >通往你SA-1 JSON格式的关键文件。

    • 取代< SA-2-email >- 2的电子邮件地址。

    • 取代<读者>根据您的用例:如下

      • 对工作空间层api,替换为你的工作空间的URL的形式https:// <数字>。<数字> .gcp.www.neidfyre.com例如,https://999999999992360.0.gcp.www.neidfyre.com。每个工作空间都有不同的独特空间的URL。调用api在多个工作空间,您需要创建多个Google ID标记,每个国家都有不同观众值。

      • 帐户级别API,替换为https://accounts.gcp.www.neidfyre.com。不同的账户都共享相同的观众价值。

    使用生产系统运行以下命令:

    gcloud cred-file身份验证登录=< SA-1-key-json > gcloud auth print-identity-token——impersonate-service-account=“< SA-2-email-address >”(包括电子邮件)观众=“<读者>”

    非生产使用,如果你使用你的用户帐户模仿- 2,使用这些命令:

    gcloud身份验证登录gcloud auth print-identity-token——impersonate-service-account=< SA-2-email-address >——观众=“<读者>”——包括电子邮件

    非生产使用,如果你使用一个服务帐户SA-1和2,使用这些命令服务帐户的关键JSON文件:

    gcloud cred-file身份验证登录=< SA-key-json > gcloud auth print-identity-token——观众=“<读者>”
  3. 保存长时间的最后输出到一个文件谷歌- id标记- sa - 2. - txt

    它输出文本类似如下:

    警告:这个命令使用服务帐户的模拟。所有API调用将被执行(< SA-2-email-address >)。eyJhba7s86dfa9s8f6a99das7fa68s7d6…N8s67f6saa78sa8s7dfiLlA

步骤3:创建一个谷歌OAuth访问令牌(只对api,需要凭据透传)

. .注意:这一步是需要凭证透传的只需要调用的api。是否需要凭证透传一个操作,为每个API参考API文档操作。

包括一个请求生成一个访问令牌一生字段定义多长时间访问令牌是有效的。如果你只需要活跃的五分钟,令牌组300年代(300秒)。下面的示例使用3600年代代表一个小时。

重要的

  • 在这段时间内你必须完成剩下的所有步骤的极限。如果时间到期之前完成后面的步骤,如调用砖api,你必须重复这个步骤生成一个新的谷歌OAuth访问令牌。

  • 默认情况下,一个小时(3600年代)的最大持续时间可以设置一生字段。延长这一限制,谷歌联系客户支持和请求一个例外。

  1. 运行以下命令。取代< SA-2-email-address >- 2的服务帐户的电子邮件地址。对于非生产使用或测试,如果您正在使用一个服务帐户或使用一个用户帐户扮演服务帐户,< SA-2-email-address >替换为服务帐户的电子邮件地址。

    gcloud auth print-access-token——impersonate-service-account=< SA-2-email-address >
  2. 保存长时间的最后输出到一个文件访问令牌- sa 2. - txt

    它输出文本类似如下:

    警告:这个命令使用服务帐户的模拟。所有API调用将被执行(< SA-2-email-address >)。eyJhba7s86dfa9s8f6a99das7fa68s7d6…N8s67f6saa78sa8s7dfiLlA

步骤4:添加作为一个工作区或帐户用户服务帐户

你可以使用Google ID标记叫砖帐户级别api工作空间层api。说明基于用例是不同的。请注意,您不能使用一个Google ID标记访问这两种类型的api,因为不同观众场的时候创建谷歌标识牌

工作区api

验证工作区api使用Google ID标记,使用工作区管理设置页面添加你的主要服务帐户(2)如果一个用户的电子邮件地址。

  1. 工作区管理,去管理员设置页面

  2. 按照说明在管理用户在你的工作区并使用你的主要服务帐户的电子邮件地址,当提示提供它在管理设置页面。

  3. 选择性地添加任何组成员,可能需要为您的新服务帐户根据砖REST api你打算打电话,您想要使用的数据对象。看到管理组

  4. 可选地添加砖访问控制设置的用户。看到访问控制

帐户级别api

验证帐户级别API(帐户API)与谷歌标识牌,使用账户控制台添加你的主要服务帐户(2)作为一个管理员的账户。添加服务帐户使用其电子邮件地址你会添加一个用户。

  1. 作为一个帐户所有者或帐户管理,去用户在账户控制台选项卡

  2. 点击添加用户

    请注意

    不点击添加服务主体。你不能使用一个服务帐户创建一个砖服务主体

  3. 电子邮件地址字段中,输入你的主要服务帐户(2)电子邮件地址。

  4. 设置第一个和最后一个必需的字段名称的方式反映了服务帐户的目的。

  5. 点击发送邀请。因为你使用了一个服务帐户,而不是一个真正的用户的电子邮件,没有收到邀请邮件。授权服务帐户是帐户管理员立即无需额外的确认。

第五步:调用一个砖API

令牌在REST API认证需要提供不同在你计划使用方法:账户API工作空间层api。请注意,您不能使用一个Google ID标记访问这两种类型的api,因为不同观众场的时候创建谷歌标识牌

以下HTTP头用于砖与谷歌身份验证id。

HTTP报头名称

描述

这类型的api需要吗?

授权

谷歌标识牌- 2为不记名令牌。语法是身份验证:持票人<标记>

所有的api

X-Databricks-GCP-SA-Access-Token

谷歌OAuth 2的访问令牌。

帐户级别api只

例如工作空间层API请求

叫一个砖REST API的工作区,通过Google ID标记授权HTTP头使用下面的语法:

授权:持票人<谷歌- - - - - -id- - - - - -令牌>

您提供的令牌必须有以下属性:

下面的示例调用一个工作空间层API集群列表

  • 取代< google-id-token >与Google ID标记你保存在文件中谷歌- id标记- sa - 2. - txt

  • < workspace-URL >替换为你的基地工作区URL,类似于形式https://1234567890123456.7.gcp.www.neidfyre.com

旋度\- x得到\——头“授权:无记名< google-id-token >”\< workspace-URL > / api / 2.0 /集群列表中

示例户头级别API请求的API不使用凭据透传

下面的示例调用账户API来获取工作空间的列表。

  • 取代< google-id-token >与Google ID标记你保存在文件中谷歌- id标记- sa - 2. - txt

  • 取代<帐户id >你的帐户ID。找到您的帐户ID:

    1. 作为一个账户管理,去砖帐户的控制台

    2. 单击向下箭头旁边你的用户名在右上角。

    3. 下拉菜单你可以复制帐户ID

旋度\- x得到\——头“授权:无记名< google-id-token >”\https://accounts.gcp.www.neidfyre.com/api/2.0/example/ <帐户id > /操作名称

例子户头级别API请求证书透传

下面的示例调用账户API来获取工作空间的列表。

  • 取代< google-id-token >与Google ID标记你保存在文件中谷歌- id标记- sa - 2. - txt

  • 取代< access-token-sa-2 >- 2的访问令牌,你保存在文件中访问令牌- sa 2. - txt

  • 取代<帐户id >你的帐户ID。找到您的帐户ID:

    1. 作为一个账户管理,去砖帐户的控制台

    2. 底部的左边菜单(您可能需要滚动),单击用户按钮(图标)的人。

    3. 在出现的弹出,复制帐户ID通过单击图标右边的ID。

    找到你的帐户ID。
旋度\- x删除\——头“授权:无记名< google-id-token >”\——头“X-Databricks-GCP-SA-Access-Token: < access-token-sa-2 >”\https://accounts.gcp.www.neidfyre.com/api/2.0/accounts/ <帐户id > /工作区/ < workspace-id >