使用OAuth身份验证服务主体

预览

这个特性是在公共预览

验证数据砖REST api,您可以使用砖OAuth的服务主体。创建的服务主体是一个身份在砖使用自动化工具,工作,和应用程序。有关更多信息,请参见管理服务主体

需求

你一定是一个帐户管理管理OAuth服务主体的凭证。

步骤1:创建一个服务主体

您可以使用OAuth对砖api的服务主体的账户和工作区。服务主体只能调用它访问调用的api。服务主体必须是账户管理调用户头级别api和必须的一员工作区工作空间层api。

的步骤来创建一个服务主体不同取决于如果启用了联合身份验证您的工作区中。

添加一个服务主体的账户使用帐户控制台:

  1. 作为一个账户管理,登录到账户控制台

  2. 点击控制台用户管理图标”src=用户管理

  3. 服务主体选项卡上,单击添加服务主体

  4. 输入一个名称服务主体。

  5. 点击添加

  6. 可选地,角色选项卡,打开账户管理打电话给帐户级别api。

你现在可以指定服务主体身份联合工作区。

  1. 在账户控制台中侧边栏,单击工作区

  2. 单击您的工作区名称。

  3. 权限选项卡上,单击添加权限

  4. 搜索和选择服务主体,分配权限级别(工作区用户管理),然后点击保存

  1. 工作区管理,登录到砖工作区。

  2. 点击你的用户名在酒吧的砖工作区并选择管理设置

  3. 服务主体选项卡上,单击添加服务主体

  4. 点击搜索框的下拉箭头,然后单击+添加新服务主体

  5. 输入一个名称服务主体。

  6. 点击添加

步骤2:创建一个OAuth的秘密服务主体

之前,您可以使用OAuth身份验证数据砖REST api,您必须首先创建一个OAuth的秘密,可用于生成OAuth令牌。一个服务主体可以有五OAuth的秘密。为服务创建一个OAuth的秘密主要使用帐户控制台:

  1. 作为一个账户管理,登录到账户控制台

  2. 点击控制台用户管理图标”src=用户管理

  3. 服务主体选项卡上,选择一个服务主体。

  4. OAuth的秘密,点击生成的秘密

  5. 复制显示秘密客户机ID,然后单击完成

    这个秘密只会显示一次创造。客户机ID是一样的服务主体的应用程序ID。

使用API创建一个OAuth的秘密看,账户API

步骤3:创建一个OAuth砖api的访问令牌

您可以使用客户机ID和客户端请求一个秘密OAuth令牌验证帐户级别api和工作空间层api。访问令牌一小时会到期。你必须请求一个新的OAuth到期后访问令牌。OAuth访问令牌的范围取决于您的令牌创建水平。您可以创建一个令牌在户头级别或工作空间层。

如果你调用户头级别api和api在工作区服务主体访问,你必须创建一个帐户级别OAuth访问令牌。如果你调用api在一个工作区,砖建议你创建一个工作空间层OAuth访问令牌

重要的

而不是创建一个OAuth访问令牌,你可以用你的客户ID和客户秘密的参与实现的工具或sdk砖客户端统一身份验证标准。这些工具和sdk自动生成和更换过期OAuth砖为你服务主体的令牌。更多信息见OAuth机器对机器(M2M)身份验证

创建一个帐户级别OAuth访问令牌

OAuth令牌创建的帐户级别可以用来对砖api的帐户和任何工作区服务主体已经分配给。

  1. 作为一个账户管理,登录到账户控制台

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

  3. 复制你的帐户ID

  4. 建设令牌端点URL代替< my-account-id >在以下网址,你的账户ID复制。

    https:/ /账户com/oidc/账户/ <我的- - - - - -账户- - - - - -id> /v1/令牌
  5. 请求的OAuth访问令牌令牌端点URL,客户端ID,OAuth秘密你创建的。的所有api请求范围的OAuth访问令牌可以用来访问所有数据砖api服务主体被授予访问权。

    • 取代< token-endpoint-URL >使用令牌从上面端点URL。

    • 取代<客户机id >服务主体的客户机ID,这也被称为应用程序ID。

    • 取代<端秘密>您创建的OAuth的秘密。

    出口CLIENT_ID <客户机id >出口CLIENT_SECRET=<端秘密> curl - POST请求\——url < token-endpoint-URL >\- u美元CLIENT_ID:CLIENT_SECRET美元\——数据' grant_type = client_credentials&scope =所有api '

    这生成一个响应类似于:

    {“access_token”:“eyJraWQiOiJkYTA4ZTVjZ…”,“token_type”:“持票人”,“expires_in”:3600年}

    复制access_token从响应。

    访问令牌一小时会到期。你必须请求一个新的OAuth到期后访问令牌。

创建一个工作空间层OAuth访问令牌

OAuth令牌从工作空间层只能访问api创建工作区,即使服务主体是一个管理员的账户或属于其他工作区。

  1. 建设令牌替换< databricks-instance >的端点URL工作空间的URL你的砖部署:

    https:/ / <- - - - - -实例> /oidc/v1/令牌
  2. 请求的OAuth访问令牌令牌端点URL,客户端ID,OAuth秘密你创建的。的所有api请求范围的OAuth访问令牌可以用来访问所有数据砖api的服务主体在工作区中被授予访问请求令牌从你。

    • 取代< token-endpoint-URL >使用令牌从上面端点URL。

    • 取代<客户机id >服务主体的客户机ID,这也被称为应用程序ID。

    • 取代<端秘密>您创建的OAuth的秘密。

    出口CLIENT_ID <客户机id >出口CLIENT_SECRET=<端秘密> curl - POST请求\——url < token-endpoint-URL >\- u美元CLIENT_ID:CLIENT_SECRET美元\——数据' grant_type = client_credentials&scope =所有api '

    这生成一个响应类似于:

    {“access_token”:“eyJraWQiOiJkYTA4ZTVjZ…”,“token_type”:“持票人”,“expires_in”:3600年}

    复制access_token从响应。

    访问令牌一小时会到期。你必须请求一个新的OAuth到期后访问令牌。

第四步:调用一个砖API

你现在可以使用OAuth令牌验证砖户头级别api和工作空间层api。服务主体必须是账户管理帐户级别api。

您可以包括头使用的令牌持票人身份验证。您可以使用这种方法旋度或任何客户机构建。

例子户头级别API请求

这个示例使用持票人身份验证得到与账户相关的所有工作空间的列表。

  • 取代< oauth-access-token >服务主体的OAuth的令牌,你复制前面的步骤。

  • 取代<帐户id >与您的帐户ID。

出口OAUTH_TOKEN=< oauth-access-token > curl - x -头“授权:持票人OAUTH_TOKEN美元\“https://accounts.cloud.www.neidfyre.com/api/2.0/accounts/ <帐户id > /工作区”

例如工作空间层API请求

这个示例使用持票人验证指定的工作区中列出所有可用的集群。

  • 取代< oauth-access-token >服务主体的OAuth的令牌,你复制前面的步骤。

  • 取代< workspace-URL >与你的基地工作区URL,类似于形式dbc-a1b2345c-d6e7.cloud.www.neidfyre.com

出口OAUTH_TOKEN=< oauth-access-token > curl - x -头“授权:持票人OAUTH_TOKEN美元\https:// < workspace-URL > . . / api / 2.0 /集群列表中

删除一个OAuth的秘密服务主体

账户管理员可以删除服务主体使用OAuth的秘密帐户控制台。一旦删除了一个秘密,你不能用它来请求新的OAuth访问令牌。然而现有的访问令牌产生的秘密继续工作直到令牌过期。

  1. 作为一个账户管理,登录到账户控制台

  2. 点击控制台用户管理图标”src=用户管理

  3. 服务主体选项卡上,选择一个服务主体。

  4. OAuth的秘密旁边的垃圾桶图标,点击你想撤销的秘密。

使用OAuth起程拓殖

你可以使用OAuth身份验证砖起程拓殖的提供者自动帐户级别和工作空间层配置。验证起程拓殖,设置服务主体的客户机ID(也称为应用程序ID)和客户秘密,环境变量。

如何验证起程拓殖的信息,请参阅砖起程拓殖的提供者

对于一个教程创建一个砖工作区起程拓殖和OAuth,明白了创建数据砖工作区使用起程拓殖