認証

目次

認証方式

パスワード認証

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

パスワード認証では、リクエストヘッダーに「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 要素認証を無効にした連携用ユーザーを用意してください。