共通の接続先ドメイン
datafeed.ub-speeda.com1. 認証フロー概要
当APIでは、公開鍵暗号方式によるJWT認証を採用しています。
以下の手順でAPIトークンを取得・利用してください
2. Clientの登録
2.1 キーペアの生成
利用者側で次の形式の秘密鍵と公開鍵を生成してください。
形式: RS256 2048bit(推奨)
公開鍵フォーマット: PEM形式
$ openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
$ openssl rsa -in private_key.pem -pubout -out public_key.pem2.2 公開鍵の送付
生成した公開鍵(public_key.pem)を、当社へご提出ください。
当社は受領した公開鍵を登録し、以下の情報を利用者に通知します。
client_id:このクライアント専用の識別子
kid:JWTヘッダーに設定するキー識別子(公開鍵と紐づく識別子)
以降の認証リクエストの手順で、この client_id を iss および sub に指定してJWTを生成してください。
3. APIの利用
3.1 JWTの生成
以下の内容を含むJWTを作成し、秘密鍵で署名してください。
JWT ヘッダー(例)
{
"alg": "RS256",
"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 の有効期間は短く設定されています。必要に応じて再取得してください。
秘密鍵は厳格に管理し、第三者に漏洩しないようお願いします。
コメント
0件のコメント
記事コメントは受け付けていません。