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