Documents

ログインしていません

ログインすると全てのDocumentsを閲覧可能です。

Authentication

AXISでは認証の仕組みとしてアクセストークン(JWT, JSON Web Token)を採用しています。 See also JSON Web Token - Wikipedia(en)

AXISでは、JWTを採用することでAuthenticationサーバとWebSocketサーバを分離し、将来的な接続数増加に伴うWebSocketサーバの並列化、耐障害性の向上を実現可能としました。現在提供中の接続ポイントは1箇所(Tokyo)ですが、今後のサービス展開に伴って地理的分散配置を実施予定です。

アクセストークンにはBASE64でエンコードされたユーザ名、購読/配信チャンネル、トークンの有効期限などが含まれています。このトークンには署名が付随しているため、改ざんされたトークンはAXISサーバ接続時の検証でリジェクトされ、接続は切断されます。

アクセストークンは、AXISサーバに接続する際のheaderに Authorization: Bearer <YOUR TOKEN> の形式で記述して利用します。

GET /socket HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: **********
Authorization: Bearer <YOUR TOKEN>

各プログラミング言語で利用できる ほとんどのWebSocketライブラリはheaderをオプションで指定することができるはずです。
PythonとNode.jsでのサンプルコードは Stream/for Subscriber のページに記載されています。

トークンのリフレッシュ

今月の残り日数が7日未満の場合、現行のトークンで翌月末までのトークンを発行するAPIが利用可能です。

Token Refresh API

https://axis.prioris.jp/api/token/refresh/

注意 : Publish/Subscribeのために接続するサーバ(**********)とは異なります。

Token Refresh APIは、Headerに Authorization: Bearer <YOUR TOKEN> の形式でトークンを含めてアクセスすることでユーザ認証を行います。
現行のトークンの有効期限が切れている場合、APIでのリフレッシュは出来ませんので、再度 アクセストークンの発行 をしてください。

Token Refresh APIをポーリングしないでください

Token Refresh APIに対して、毎秒、毎分といったポーリングによる頻繁なアクセスをするユーザーは発見次第アカウントの停止を行います。
トークンの有効期限が7日以上の場合、Token Refresh APIにアクセスしないでください。

翌月の契約が有効で、翌月末までのトークンが正常に発行された場合、APIは新しいトークンを返します。

{
"status": "generate a new token",
"token": "NEW TOKEN"
}

今月の残り日数が7日以上の場合、APIは現行のトークンを返します。

{
"status": "not due for refresh yet",
"token": "OLD TOKEN"
}

契約の有効期限が切れている場合、APIはステータスコード402を返します。

{
"status": "contract has expired"
}

翌月の契約が無効の場合、今月の残り日数が7日未満でも今月末まで有効の現行トークンを返します。