認証/認可操作

1. mimi API アクセストークンの取得

1.1. アプリケーション権限での発行(アプリケーション内に閉じた root 権限)

アプリケーション権限で mimi API アクセストークンを発行します。アプリケーション権限で利用できないスコープを指定した場合は、権限不足エラーとなります。

POST /token

フォームパラメータ

パラメータ名説明
client_idアプリケーションID
client_secretアプリケーションシークレット
scopeスコープ。複数の場合はセミコロンで区切り列挙する。
<scope>;<scope>..
grant_typehttps://auth.mimi.fd.ai/grant_type/application_credentials

実行例 1.1

curl -X POST https://auth.mimi.fd.ai/v2/token \
-F grant_type="https://auth.mimi.fd.ai/grant_type/application_credentials" \
-F client_id="<applicationId>" \
-F client_secret="<applicationSecret>" \
--form-string scope="https://apis.mimi.fd.ai/auth/nict-asr/websocket-api-service;https://apis.mimi.fd.ai/auth/nict-asr/http-api-service;https://apis.mimi.fd.ai/auth/nict-tts/http-api-service;https://apis.mimi.fd.ai/auth/nict-tra/http-api-service;https://apis.mimi.fd.ai/auth/asr/websocket-api-service"

応答例 1.1

{
  "code": 200, 
  "error": "", 
  "status": "success", 
  "progress": 100, 
  "kind": "auth#operation#accesstoken", 
  "expires_in": 3600, 
  "accessToken": "<accessToken>", 
  "operationId": "<operationId>", 
  "selfLink": "https://auth.mimi.fd.ai/v2/operations/<operationId>", 
  "targetLink": "",
  "startTimestamp": 1521524159, 
  "endTimestamp": 1521524161
}

1.2. クライアント権限での発行

クライアント権限で mimi API アクセストークンを発行します。
クライアント権限には2種類あり、外部認証サーバーからの転送リクエストである場合と、クライアントからの直接リクエストの場合があります。どちらも同じAPIを実行してアクセストークンを発行できますが、フォームパラメータで指定するgrant_typeの固定値が異なります。

クライアント権限で利用できないスコープを指定した場合は、権限不足エラーとなります。
発行されるアクセストークンの有効期限は発行時から1時間です。

POST /token

1.2.1. 外部認証サーバーからの転送リクエスト

フォームパラメータ

パラメータ名説明
client_idアプリケーションIDとクライアントIDをコロンで接続した文字列
<applicationId>:<clientId>
client_secretアプリケーションシークレット
scopeスコープ。複数の場合はセミコロンで区切り列挙する。
<scope>;<scope>..
grant_typehttps://auth.mimi.fd.ai/grant_type/application_client_credentials

実行例 1.2.1

curl -X POST https://auth.mimi.fd.ai/v2/token \
-F grant_type="https://auth.mimi.fd.ai/grant_type/application_client_credentials" \
-F client_id="<applicationId>:<clientId>" \
-F client_secret="<applicationSecret>" \
--form-string scope="https://apis.mimi.fd.ai/auth/asr/websocket-api-service;https://apis.mimi.fd.ai/auth/asr/http-api-service;https://apis.mimi.fd.ai/auth/srs/websocket-api-service;https://apis.mimi.fd.ai/auth/srs/http-api-service"

応答例 1.2.1

{
  "code": 200, 
  "error": "", 
  "status": "success", 
  "progress": 100, 
  "kind": "auth#operation#accesstoken", 
  "accessToken": "<accessToken>", 
  "expires_in": 3600,
  "operationId": "<operationId>", 
  "selfLink": "https://auth.mimi.fd.ai/v2/operations/<operationId>", 
  "targetLink": "", 
  "startTimestamp": 1521439861, 
  "endTimestamp": 1521439861 
}

1.2.2. クライアントからの直接リクエスト

フォームパラメータ

パラメータ名説明
client_idアプリケーションIDとクライアントIDをコロンで接続した文字列
<applicationId>:<clientId>
client_secretクライアントシークレット
scopeスコープ。複数の場合はセミコロンで区切り列挙する。
<scope>;<scope>..
grant_typehttps://auth.mimi.fd.ai/grant_type/client_credentials

実行例 1.2.2

curl -X POST https://auth.mimi.fd.ai/v2/token \
-F grant_type="https://auth.mimi.fd.ai/grant_type/client_credentials" \
-F client_id="<applicationId>:<clientId>" \
-F client_secret="<clientSecret>" \
--form-string scope="https://apis.mimi.fd.ai/auth/srs/websocket-api-service;https://apis.mimi.fd.ai/auth/srs/http-api-service"

応答例 1.2.2

{
  "code": 200, 
  "error": "", 
  "status": "success", 
  "progress": 100, 
  "kind": "auth#operation#accesstoken", 
  "accessToken": "<accessToken>", 
  "expires_in": 3600,
  "operationId": "<operationId>", 
  "selfLink": "https://auth.mimi.fd.ai/v2/operations/<operationId>",
  "targetLink": "", 
  "startTimestamp": 1521524660, 
  "endTimestamp": 1521524668,
}

2. mimi API アクセストークンの無効化(Revoke)

2.1. アプリケーション権限での revoke

アプリケーション権限では、アプリケーションに所属するクライアントに向けて発行されたトークンのみ revoke できます。

POST /revoke

フォームパラメータ

パラメータ名説明
token無効化したいアクセストークン
client_idアプリケーションID
client_secretアプリケーションシークレット

実行例 2.1

curl -X POST https://auth.mimi.fd.ai/v2/revoke \
-F client_id="<applicationId>" \
-F client_secret="<applicationSecret>" \
-F token="<accessToken>"

応答例 2.1

{
  "code": 200, 
  "error": "",
  "status": "success",
  "progress": 100, 
  "kind": "auth#operation#accesstoken#revoke",
  "operationId": "<operationId>", 
  "selfLink": "https://auth.mimi.fd.ai/v2/operations/<operationId>", 
  "targetLink": "", 
  "startTimestamp": 1521526589, 
  "endTimestamp": 1521526591
}

2.2. クライアント権限での revoke

クライアント権限では、自身に向けて発行されたトークンのみ revoke できます。

POST /revoke

フォームパラメータ

パラメータ名説明
token無効化したいアクセストークン
client_idアプリケーションIDとクライアントIDをコロンで接続した文字列
<scope>;<scope>..
client_secretクライアントシークレット

実行例 2.2

curl -X POST https://auth.mimi.fd.ai/v2/revoke \
-F client_id="<applicationId>:<clientId>" \
-F client_secret="<clientSecret>" \
-F token="<accessToken>"

応答例 2.2

{ 
  "code": 200,
  "error": "", 
  "status": "success", 
  "progress": 100, 
  "operationId": "<operationId>", 
  "kind": "auth#operation#accesstoken#revoke", 
  "selfLink": "https://auth.mimi.fd.ai/v2/operations/<operationId>", 
  "targetLink": "", 
  "startTimestamp": 1521526843, 
  "endTimestamp": 1521526844
}

3. 取得済みのmimi APIアクセストークンの有効性の確認(Validate)

権限に関わらず、取得済のアクセストークンが有効かどうか(期限切れとなっていないかどうか)をチェックすることができます。

POST /validate

フォームパラメータ

パラメータ名説明
token有効性をチェックしたいアクセストークン

実行例 3

curl -X POST https://auth.mimi.fd.ai/v2/validate \
-F token="<accessToken>"

応答例 3

{
  "code": 200, 
  "error": "", 
  "status": "success", 
  "progress": 100,
  "kind": "auth#operation#accesstoken#validate", 
  "tokenStatus": "valid", 
  "operationId": "<operationId>", 
  "selfLink": "https://auth.mimi.fd.ai/v2/operations/<operationId>",    
  "targetLink": "", 
  "endTimestamp": 1537497803,
  "startTimestamp": 1537497803
}