---
title: API セキュリティ
category: API
weight: 1
---

APIセキュリティでは、セキュリティの設定ができます。

## APIセキュリティの確認方法
サイドバーよりAPIセキュリティを確認したい［API］をクリックします。
そして、[セキュリティ]をクリックします。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/b34f0c8a111bd13598907db1faf76645.png)
セキュリティ画面が表示されます。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/3d8c4673a5ac961cb995a04bd4acb5a6.png)

## セキュリティの種類

セキュリティは下記４種類から選択できます。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/a4768b87dce7ff52860ef970f29112ac.png)

|セキュリティ   |説明  |
| :--- | :--- |
|なし|アクセス制限なし|
|[静的アクセストークン](#静的アクセストークン)|静的生成されたトークン認証|
|[動的アクセストークン](#動的アクセストークン)|動的生成されたトークン認証|
|[Cookie](#cookie)|Cookieによる認証|


## 各セキュリティについて

### なし

セキュリティなしの設定です。  
一時的な開発用APIを作成してテストをする場合や、完全にオープンなデータのみ使用する場合などに利用します。

:::note
トークンなしでダイレクトにエンドポイントへのアクセスが可能であるため、基本的には他のセキュリティを選択/設定を検討してください。
:::

### 静的アクセストークン

静的生成されたトークンによる認証方式を設定します。サーバー間通信する場合や公開情報の提供APIなどに利用します。  

静的トークンをリクエストヘッダに指定することで、セキュアなエンドポイントへアクセスできるようにします。

:::note
静的生成されたトークンは意図せずに流出した場合やフロントエンドに組み込まれる想定があるので、トークンの更新を想定したシステム構成にしてください。
:::

### 動的アクセストークン

動的生成されたトークンによる認証方式を設定します。ログインが必要なサイトなどに利用します。  

ログイン認証リクエスト毎にワンタイムトークンを動的生成し、その値をリクエストヘッダに指定することで、セキュアなエンドポイントへアクセスできるようにします。

「動的アクセストークン」の場合は下記3項目が必要となります。
- ユーザーが1人以上登録されている必要があります。
- 必須エンドポイントの作成が必要です。  
- トークンのマネジメント制御をフロントエンドで実装する必要があります。

|必須エンドポイント |カテゴリー |モデル |オペレーション |
| :--- | :--- | :--- | :--- |
|ログイン|認証|Login(v1)|login_challenge|
|トークン|認証|Login(v1)|token|

トークン認証のAPIが複数設定されている場合、
各API間で認証状態は共有されず、APIごとに認証が必要です。

### Cookie

Cookieによる認証方式を設定します。ログインが必要なサイトなどに利用します。

ログイン認証リクエスト毎にCookieを動的生成し、その値をリクエストヘッダに指定することで、セキュアなエンドポイントにもアクセスできるようにします。

「Cookie」の場合は下記2項目が必要となります。
- ユーザーが1人以上登録されている必要があります。
- 必須エンドポイントの作成が必要です。

|必須エンドポイント |カテゴリー |モデル |オペレーション |
| :--- | :--- | :--- | :--- |
|ログイン|認証|Login(v1)|login_challenge|

cookie認証のAPIが複数設定されている場合、各API間で認証状態が共有されます。

また、「Cookie」の場合サードパーティCookieの規制を回避するため、
フロントとKurocoのドメインを合わせる必要があります。  
(ドメインを一致させファーストパーティCookieにさせる必要があります)

## IPアドレス制限について
指定されたIPアドレスからのアクセスのみ許可します。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/f03801b763b1150424d1cfab91053a6f.png)

指定方式は下記の通りです。
- IPアドレス指定(例: 192.0.2.1)
- CIDR指定(例: 192.0.2.0/24)
- "-"による範囲指定(例: 192.0.2.1-192.0.2.2)

## 関連ドキュメント
- [Swagger UIを利用して、APIのセキュリティを確認する](/ja/docs/tutorials/how-to-use-swagger-ui/)
- [静的アクセストークンによるAPIアクセス制限の方法](/ja/docs/tutorials/restricting-api-access-with-statictoken/)
