使用OAuth身份驗證服務主體

預覽

這個特性是在公共預覽

驗證數據磚REST api,您可以使用磚OAuth的服務主體。創建的服務主體是一個身份在磚使用自動化工具,工作,和應用程序。有關更多信息,請參見管理服務主體

您可以使用OAuth對磚api的服務主體的賬戶和工作區。服務主體隻能調用它訪問調用的api。服務主體必須是賬戶管理調用戶頭級別api和必須的一員工作區工作空間層api。

需求

你一定是一個帳戶管理管理OAuth服務主體的憑證。

步驟1:創建一個服務主體

您可以創建一個服務主體在賬戶中直接或工作區。工作區中創建的服務主體是自動添加到帳戶。如果你啟用了聯合身份驗證你的工作區,磚建議創建帳戶的服務主體和分配工作。如果你沒有聯合身份驗證啟用和您希望使用服務工作的負責人,您必須創建你的服務主體從一個工作區。

添加一個服務主體的賬戶使用帳戶控製台:

  1. 作為一個賬戶管理,登錄到賬戶控製台

  2. 點擊控製台用戶管理圖標”src=用戶管理

  3. 服務主體選項卡上,單擊添加服務主體

  4. 輸入一個名稱服務主體。

  5. 點擊添加

  6. 可選地,角色選項卡,打開賬戶管理打電話給帳戶級別api。

你現在可以指定服務主體身份聯合工作區。

  1. 在賬戶控製台中側邊欄,單擊工作區

  2. 單擊您的工作區名稱。

  3. 權限選項卡上,單擊添加權限

  4. 搜索和選擇服務主體,分配權限級別(工作區用戶管理),然後點擊保存

  1. 工作區管理,登錄到磚工作區。

  2. 點擊你的用戶名在酒吧的磚工作區並選擇管理設置

  3. 服務主體選項卡上,單擊添加服務主體

  4. 點擊搜索框的下拉箭頭,然後單擊+添加新服務主體

  5. 輸入一個名稱服務主體。

  6. 點擊添加

服務主要是添加到您的工作區和磚帳戶。在以下步驟中,您必須使用帳戶控製台創建一個OAuth的秘密服務主體。

步驟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.m.eheci.com/api/2.0/accounts/ <帳戶id > /工作區”

例如工作空間層API請求

這個示例使用持票人驗證指定的工作區中列出所有可用的集群。

  • 取代< oauth-access-token >服務主體的OAuth的令牌,你複製前麵的步驟。

  • 取代< workspace-URL >與你的基地工作區URL,類似於形式dbc-a1b2345c-d6e7.cloud.m.eheci.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,明白了創建數據磚工作區使用起程拓殖