共通の接続先ドメイン
datafeed.ub-speeda.com1. 認証フロー概要
当APIでは、公開鍵暗号方式によるJWT認証を採用しています。
以下の手順でAPIトークンを取得・利用してください。
2. Clientの登録
2.1 キーペアの生成
利用者側で次の形式の秘密鍵と公開鍵を生成してください。
アルゴリズム: ECDSA
曲線: P-256(prime256v1)
公開鍵フォーマット: PEM形式
$ openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:prime256v1 -out private_key.pem
$ openssl pkey -in private_key.pem -pubout -out public_key.pem
2.2 生成した鍵の確認
実行結果にASN1 OID: prime256v1 という文字が含まれていれば正しく生成できています。
含まれていない場合は生成時のコマンドが誤っていないか確認し、再実行してください。
$ openssl ec -pubin -in public_key.pem -text -nooutPublic-Key: (256 bit)
pub:
---- 略 ----
ASN1 OID: prime256v1
NIST CURVE: P-256
2.3 公開鍵の送付
生成した公開鍵(public_key.pem)を、当社へご連絡ください。
当社は受領した公開鍵を登録し、以下の情報を利用者にご案内いたします。
client_id:このクライアント専用の識別子
kid:JWTヘッダーに設定するキー識別子(公開鍵と紐づく識別子)
以降の認証リクエストの手順で、この client_id を iss および sub に指定してJWTを生成してください。
3. APIの利用
3.1 JWTの生成
以下の内容を含むJWTを作成し、秘密鍵で署名してください。
なお、JWTに署名する際は、アルゴリズムに ES256 を指定してください。
JWT ヘッダー(例)
{
"alg": "ES256",
"typ": "JWT",
"kid": <当社が発行し通知したkid>
}JWT ペイロード(例)
{
"iss": <当社が発行し通知したclient_id>,
"sub": <当社が発行し通知したclient_id>,
"aud": "https://datafeed.ub-speeda.com/token",
"iat": 1680000000,
"exp": 1680000600,
"jti": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}| フィールド | 内容 |
|---|---|
| aud | https://datafeed.ub-speeda.com/token を固定で指定 |
| iat | JWT発行時刻(UNIXタイムスタンプ) |
| exp | JWTの有効期限(UNIXタイムスタンプ。5分以内が推奨) |
| jti | JWTの一意識別子。UUIDなどでリクエスト毎にランダム生成してください。 |
3.2 認証リクエスト
生成したJWTを以下の形式で /token エンドポイントにPOSTしてください。
リクエスト例
POST https://datafeed.ub-speeda.com/token
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&
client_id=<your-client-id>&
client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&
client_assertion=eyJhbGciOiJSUzI1NiIsImtpZCI6ImFjbWVpbmMtMDEtMjAyNTA1MjkifQ...| パラメータ | 内容 |
|---|---|
| grant_type | 固定値:client_credentials |
| client_id | 当社から通知された client_id |
| client_assertion_type | 固定値:urn:ietf:params:oauth:client_assertion-type:jwt-bearer |
| client_assertion | クライアント秘密鍵で署名したJWT |
レスポンス例
{
"access_token": "xxx.yyy.zzz",
"token_type": "bearer",
"expires_in": 300
}
3.3 APIエンドポイントへのリクエスト
認証に成功して得られた access_token を使用して、各種APIにアクセスできます。
エンドポイント例: /startup/companies
リクエスト例
GET https://datafeed.ub-speeda.com/startup/companies
Authorization: Bearer <access_token>※利用可能なエンドポイントについては、各データ毎のページをご参照ください。
4. 注意点・制限事項
access_token の有効期間は短く設定されています。必要に応じて再取得してください。
秘密鍵は厳格に管理し、第三者に漏洩しないようお願いいたします。
- ご希望に応じて、API接続の開発前に手動で全量データをCSVでお渡しすることがございます。ただし、データ構造はAPIのレスポンス構造とは異なりますので、実装時は各エンドポイントページの定義を参照してください。
コメント
0件のコメント
記事コメントは受け付けていません。