認証/認可操作
1. mimi API アクセストークンの取得
1.1. アプリケーション権限での発行(アプリケーション内に閉じた root 権限)
アプリケーション権限で mimi API アクセストークンを発行します。アプリケーション権限で利用できないスコープを指定した場合は、権限不足エラーとなります。
| POST /token |
フォームパラメータ
| パラメータ名 | 説明 |
|---|---|
client_id |
アプリケーションID |
client_secret |
アプリケーションシークレット |
scope |
スコープ。複数の場合はセミコロンで区切り列挙する。 |
grant_type |
実行例 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の固定値が異なります。
- 外部認証サーバーからの転送リクエスト:
<https://auth.mimi.fd.ai/grant_type/application_client_credentials> - クライアントからの直接リクエスト:
<https://auth.mimi.fd.ai/grant_type/client_credentials>
クライアント権限で利用できないスコープを指定した場合は、権限不足エラーとなります。
発行されるアクセストークンの有効期限は発行時から1時間です。
| POST /token |
1.2.1. 外部認証サーバーからの転送リクエスト
フォームパラメータ
| パラメータ名 | 説明 |
|---|---|
client_id |
アプリケーションIDとクライアントIDをコロンで接続した文字列 |
client_secret |
アプリケーションシークレット |
scope |
スコープ。複数の場合はセミコロンで区切り列挙する。 |
grant_type |
https://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をコロンで接続した文字列 |
client_secret |
クライアントシークレット |
scope |
スコープ。複数の場合はセミコロンで区切り列挙する。 |
grant_type |
実行例 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をコロンで接続した文字列 |
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
}Updated 4 months ago
