新增 OAuth 用戶端
本頁面使用機器翻譯而成。
機器翻譯免責聲明
使用 OAuth 2.0 授權對 cybozu.com 服務的 API 請求。
用戶端類型對應於機密用戶端。
授權類型對應於授權代碼授予。
新增 OAuth 用戶端
Step1:新增 OAuth 用戶端
新增 OAuth 用戶端以使用 OAuth 用戶端對 cybozu.com 的 API 請求進行身份驗證。
僅cybozu.com共通管理員才能新增 OAuth 用戶端。
-
開啟cybozu.com共通管理員畫面。
-
點擊「OAuth」。
-
在「設定進階整合」部分中,點擊「新增OAuth用戶端」。
-
輸入 OAuth 客戶端資訊。
- 用戶端名稱:用戶端名稱(必填)
- 用戶端徽標:用戶端徽標圖像檔案(選擇)
- 重新導向端點:OAuth 用戶端接收授權代碼的 URL(必填)
用戶在授權訪問 cybozu.com 後重定向到的URL。
-
點擊保存。
-
按下您添加的 OAuth 用戶端的鉛筆形編輯圖示。
-
記下以下資訊,例如 OAuth 用戶端 ID:
在步驟 3 的過程中使用它。
Step3:在應用程式中實現 OAuth 身份驗證流- 用戶端 ID :向 cybozu.com 註冊應用程式時生成的唯一 ID
- 用戶端金鑰:向 cybozu.com 註冊應用程式時生成的金鑰值
- 授權端點:OAuth 授權端點 URL
- 權杖端點:OAuth 權杖端點 URL
接下來,配置可以使用 OAuth 用戶端的使用者。
STEP2:設置使用者
通過在「訂閱者設置」中使用 OAuth 用戶端進行身份驗證來指定將運行 API 的使用者。
如果要定位創建用戶端后添加的使用者,請每次都將其設置為使用者。
-
設置可以使用 OAuth 用戶端的使用者。 在您添加的用戶端中,點擊訂閱者設置。
-
選中要允許使用 OAuth 的用戶的複選框。
-
點擊保存。
Step3:在應用程式中實現 OAuth 身份驗證流
cybozu.com 使用授權代碼授予。
執行 API 所需的步驟如下:
以下示例介紹使用curl獲取訪問權杖並執行Garoon REST API的步驟。
1. 授權請求
授權請求要求使用者授予用戶端應用程式訪問信息的許可權。
向授權終端節點 URL 授予以下 URL 查詢以存取授權終端節點:
client_id
:在「新增OAuth用戶端」中添加的用戶端 ID(必填)
新增 OAuth 用戶端redirect_uri
:在「新增OAuth用戶端」中指定的重定向終結點(必需)
新增 OAuth 用戶端- URL 必須經過 URL 編碼。
state
:CSRF 度量的隨機值(必填)
在此示例中,指定了「state1」。在實踐中,請遵循 OAuth 2.0 規範 並指定一個隨機值。
OAuth 2.0 規範response_type
:必須scope
:範圍(必填)
如果指定多個,請用空格分隔它們。
有關可以指定的範圍的清單,請參閱以下內容:
示例請求
在這裡範例中,作用域指定為g:schedule:read
g:schedule:read
|
|
2. 允許使用者編輯
顯示「將從(用戶端名稱)執行以下操作」畫面時,點擊[允許]。
導航到「新增OAuth用戶端」的「重定向終結點」中指定的 URL。
新增 OAuth 用戶端
3. 獲取授權碼
確認重定向 URL 的末尾,並記下code=
和 &state=state1
之間的值。
code=
其中給出的值是授權代碼。
它將在下一步中用於獲取訪問令牌。
授權碼的有效期為10分鐘。
如果過期,請重新找回。
示例 URL
|
|
4. 請求和獲取訪問令牌
向權杖端點發送 POST 請求以獲取訪問令牌。
請求標頭
若要獲取訪問令牌,請在請求標頭中指定「Authorization」標頭。
標頭的值是「Basic 」和「用戶端ID:用戶端密碼
Base64 編碼值」的組合。
例如,如果用戶端 ID 為「clientid」,用戶端密碼為「clientsecret」,則「Authorization」標頭的值為「Basic Y2xpZW50aWQ6Y2xpZW50c2VjcmV0」。
請求內文
grant_type
:authorization_code
(必填)redirect_uri
:在「新增OAuth用戶端」中指定的重定向終結點(必需)
新增 OAuth 用戶端
URL 必須經過 URL 編碼。code
:通過獲取授權碼獲取的授權碼(必需)
獲取授權碼
以下是使用 curl 的請求範例。
|
|
回應內文
傳回包含以下參數的回應:
access_token
:執行 API 時用於身份驗證的訪問令牌
有效期為1小時。refresh_token
:刷新令牌,用於在訪問令牌過期時獲取新的訪問令牌token_type
:令牌類型
總是bearer
指定 .expires_in
:訪問令牌過期時間(秒)scope
:訪問令牌中允許的範圍
以下是回應的範例:
|
|
當訪問令牌過期時會發生什麼情況
refresh_token
以獲取新的訪問令牌。
刷新令牌不會過期。
以下是使用刷新令牌獲取訪問令牌的範例。
grant_type
:refresh_token
(必需)refresh_token
:通過請求和獲取訪問令牌獲取的刷新令牌(必需)
請求和獲取訪問令牌
以下是使用 curl 的請求範例。
|
|
傳回包含以下參數的回應:
access_token
:執行 API 時用於身份驗證的訪問令牌token_type
:令牌類型
總是bearer
指定 .expires_in
:訪問令牌過期時間(秒)scope
:訪問令牌中允許的範圍
|
|
5. API 的執行
要使用獲取的訪問權杖執行 REST API,請在請求標頭中指定「Authorization」標頭。
標頭的值是「Bearer」和訪問令牌的組合。
不能運行指定範圍允許的 API 以外的任何 API。
執行API以使用訪問令牌獲取Garoon REST API的日程預約的示例如下。
|
|
cybozu.com 如果使用通用管理IP位址限制
若要使用 OAuth 身份驗證,請在 cybozu.com Common Administration 中允許用戶端應用程式的 IP 位址。
有關配置要允許的IP位址的詳細資訊,請參閱配置 IP位址限制。
IP地址限制的種類
限制事項
- 在Garoon的打包版本中,不能使用OAuth用戶端添加OAuth用戶端或執行API。
- 您最多可以註冊 20 個 OAuth 用戶端。
- 每個使用者最多可以獲取 10 個刷新令牌,一個 OAuth 用戶端。