認証

目次

認証方式

パスワード認証

パスワード認証とは、ユーザーのログイン名とパスワードを使って認証する方法です。

パスワード認証では、リクエストヘッダーに「X-Cybozu-Authorization」ヘッダーを指定します。
ヘッダーの値はログイン名:パスワードをBase64エンコードした値です。

たとえば、ログイン名が「Administrator」でパスワードが「cybozu」の場合、リクエストヘッダーには次の値を指定します。

1
2
3
{
  "X-Cybozu-Authorization": "QWRtaW5pc3RyYXRvcjpjeWJvenU="
}

APIトークン認証

APIトークン認証とは、アプリごとに生成するAPIトークンを使って認証する方法です。
APIトークンを生成する方法は、 APIトークンを生成する (External link) を確認してください。

APIトークン認証では、リクエストヘッダーに「X-Cybozu-API-Token」ヘッダーを指定します。
ヘッダーの値はアプリごとに生成したAPIトークンです。

たとえば、APIトークンが「BuBNIwbRRaUvr33nWXcfUZ5VhaFsJxN0xH4NPN92」の場合、リクエストヘッダーには次の値を指定します。

1
2
3
{
  "X-Cybozu-API-Token": "BuBNIwbRRaUvr33nWXcfUZ5VhaFsJxN0xH4NPN92"
}
複数の API トークンを指定する

複数のAPIトークンを指定すると、ルックアップフィールドがあるアプリで、ルックアップ元のアプリの値をコピーしてレコードを登録できます。
複数APIトークンを指定してできることの詳細は、 複数 API トークンを使ってできることを参照してください。

複数のAPIトークンを指定するには、カンマ区切り、または別のヘッダーでAPIトークンを指定します。
1回のリクエストで指定できるAPIトークンは9個までです。10個以上指定すると、エラーになります。
以下は、カンマ区切りでAPIトークンを指定したときの「X-Cybozu-API-Token」ヘッダーの例です。

1
2
3
{
  "X-Cybozu-API-Token": "BuBNIwbRRaUvr33nWXcfUZ5VhaFsJxN0xH4NPN92, YuLjjdiOECJjV5ZDbFwh5BZoJJGDx3LtdCE1Dl7E"
}
API トークンを使って操作できる API

APIトークンは、レコードやアプリを操作する次のkintone REST APIで使用できます。

レコード
ファイル
アプリ
備考
  • 生成できるトークンは、アプリ1つにつき20個までです。
  • APIトークンを使用した操作は、Administratorによる操作として記録されます。
  • 組織間のアクセス権の設定 (External link) で「組織間のアクセスを禁止する」を有効にすると、kintoneシステム管理者のみが、APIトークンを生成/閲覧できます。

セッション認証

セッション認証とは、Webブラウザーでcybozu.comにログインしたときのセッションを使って認証する方法です。
kintoneやGaroonに適用したJavaScriptファイルからkintone REST APIを実行する場合には、セッションによる認証を利用できます。

ブラウザーの XMLHttpRequest (External link) Fetch API (External link) を使って、POST/PUT/DELETEメソッドのAPIを実行する場合は、 CSRF トークンを付与してください。
Garoonに適用したJavaScriptファイルからPOST/PUT/DELETEメソッドのkintone REST APIを実行する場合は、 kintone 連携用トークンを付与してください。

OAuth クライアントを利用した認証

OAuth クライアントを参照してください。

ゲストユーザーが利用できる認証方式

ゲストユーザーがkintone REST APIを実行する場合、セッション認証のみ利用できます。

認証の優先順位

認証方式の優先順位は次のとおりです。

  1. パスワード認証
  2. APIトークン認証
  3. OAuthクライアントを利用した認証
  4. セッション認証

セキュリティ設定を行っている環境での API の利用

IP アドレス制限を設定している場合

IP アドレス制限 (External link) を設定している場合、次のいずれかの方法で実行します。

  • 「IPアドレス制限」の設定で、REST APIを実行する環境のIPアドレスを許可する。
    許可する方法は、 ヘルプページ (External link) を参照してください。
  • Basic認証を設定している場合は、リクエストヘッダーに「Authorization」ヘッダーを付与する。
    詳細は、 Basic 認証を参照してください。
  • 有効期限の過ぎていないクライアント証明書を付与する。
    詳細は、 クライアント証明書を参照してください。
Basic 認証

Basic 認証 (External link) を設定している場合、リクエストヘッダーに「Authorization」ヘッダーを指定します。
ヘッダーの値は「Basic 」と「Basic 認証のユーザー名:Basic 認証のパスワードをBase64エンコードした値」を結合した値です。
たとえば、ログイン名が「cybozu」でパスワードが「password」の場合、リクエストヘッダーには次の値を指定します。

1
2
3
{
  "Authorization": "Basic Y3lib3p1OnBhc3N3b3Jk"
}

ゲストスペースやゲストスペース内のアプリに対してAPIを実行する場合には、「Authorization」ヘッダーを付ける必要はありません。

クライアント証明書

クライアント証明書は、セキュアアクセスの利用を許可することで発行できます。 セキュアアクセスの利用を許可し、クライアント証明書を発行する方法は、 セキュアアクセスを設定する (External link) を参照してください。

クライアント証明書を使って実行する場合、URLのサブドメインの後に.sを付ける必要があります。
たとえば「sample.cybozu.com」の場合、URLは「https://sample.s.cybozu.com」です。

違うユーザーのクライアント証明書を使って、パスワード認証をする場合には、.com共通管理のログインのセキュリティ設定で、「API利用時の認証」を有効にしてください。
詳細は、 ログインに関するセキュリティ (External link) を参照してください。

SAML 認証を設定している場合

SAML 認証設定 (External link) を設定している環境でも、この記事で案内している認証方式を使ってkintone REST APIを実行できます。

ただし、パスワード認証を使う場合には、cybozu.comのログイン名とパスワードを指定してください。
.com 共通管理で ログイン時にSAML認証だけを使うように制限する (External link) 設定を有効にしている場合には、パスワード認証で実行できるユーザーは、cybozu.com共通管理者のみに制限されます。
その他の認証方式では、この制限を受けません。

2要素認証を設定している場合

2 要素認証 (External link) を有効にしたユーザーでは、パスワード認証でREST APIを実行できません。

パスワード認証以外の認証方式で実行するか、2要素認証を無効にした連携用ユーザーを用意してください。