ワンタイムAppKeyについて - AmiVoice Cloud Platform

AppKeyの機密性について

AppKeyは、貴社アプリケーションがAmiVoice Cloud Platform音声認識サービスを利用する際の「サービス認証キー文字列」であり、機密情報として取り扱う必要があります。しかるに、ブラウザ上で動作するWebアプリにおいてAppKeyをJavaScriptに記載してしまうと、Webアプリ利用者の端末内にキャッシュされたJavaScriptファイルから漏洩してしまう危険性が生じてしまいます。

この危険性を避けるために、Webアプリが本サービスに接続する際には、マイページに記載された[APPKEY]を使用せず、代わりにAmiVoice Cloud PlatformのワンタイムAppKey発行APIを利用するようにしてください。また、発行依頼の際には、適切な「有効時間」を設定するようにしてください。

※ワンタイムAppKeyは、マイページに記載された[APPKEY]と同様の機能を持つ「サービス認証キー文字列」ですが、「発行日時と有効時間」にもとづいた「有効期限日時」が設定されている点が異なります。

ワンタイムAppKey発行APIの使い方

ワンタイムAppKey発行APIを利用するためには、サービスID(クエリパラメータ名はsid)とサービスパスワード(クエリパラメータ名はspw)の設定が必要です。
サービスID(sid)にはマイページに記載されている[サービスID]を、サービスパスワード(spw)にはマイページに記載されている[サービスパスワード]を、設定してください
有効時間(クエリパラメータ名はepi)は任意に設定できますが、発行と認証のタイムラグを埋め合わせるためには、通常であれば30秒もあれば十分過ぎるほどです。

送信例

https://acp-api.amivoice.com/issue_service_authorization?sid=<サービスID>&spw=<サービスパスワード>&epi=30000

上の例では、有効期限が発行日時の30後に設定されたワンタイムAppKeが発行されます。epiはミリ秒単位です。epiは省略可能であり、省略した場合はデフォルト値として30000(30秒)が設定されます。

ワンタイムAppKey発行APIは、Webアプリからの発行リクエスト受信に成功すると、直ちにワンタイムAppKeyを返します。Webアプリでは、返却された値をそのままauthorizationキーに設定してください。

ワンタイムAppKeyによる接続認証が失敗するケース

authorizationキーによる認証要求を受け取るタイミングが、ワンタイムAppKeyに設定された有効期限日時を過ぎている場合、音声認識サービスは以下のようなエラーを返しますので、改めてワンタイムAppKeyを取得してやり直してください。

遅延による認証エラー 

HTTP音声認識APIのエラーレスポンス

{

    "code":"-"
    "message":"received illegal service authorization"
}

WebSocket音声認識APIのエラーレスポンス

s service authorization has expired: 20XX/XX/XX XX:XX:XX.000 +0000 (-21s) 

※ 20XX/XX/XX XX:XX:XX.000が有効期限日時、-21sが遅延時間です。

不正IDによる認証エラー

ワンタイムAppKey発行依頼時に指定するサービスID・サービスパスワードが誤っている場合でも、ワンタイムAppKeyは発行されますので、ご注意ください。音声認識サービスの接続認証時に、この不正なワンタイムAppKeyを指定してしまうと、以下のような認証エラーが返ってきます。

HTTP音声認識APIのエラーレスポンス

{

    "code":"-"
    "message":"received illegal service authorization"
}

WebSocket音声認識APIのエラーレスポンス

s can't verify service authorization

この場合は、ワンタイムAppKey発行依頼時に指定するサービスID(sid)、サービスパスワード(spw)が正しい値になっているかを確認してください。

ワンタイムAppKey発行APIの詳細については、I/F仕様 ワンタイムAppKey発行APIを参照してください。