認証

目次

認証方式

パスワード認証

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

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