UserSigは、ユーザーがIMにログインするためのパスワードです。その本質は、UserIDおよびその他の情報を暗号化して得られる暗号文です。この文書では、UserSigを生成する方法について説明します。
キーの取得
説明:
2. 対象のアプリケーションカードをクリックし、アプリケーションの基本設定画面に移動します。
3. 基本情報セクションで、キーの右側にあるキーを表示をクリックします。
4. コピーをクリックすると、キー情報をコピーして保存できます。
!キー情報を適切に保管して、漏えいしないようにしてください。
クライアントによるUserSigの計算
IM SDKサンプルコードで提供されているGenerateTestUserSig
のオープンソースモジュールを使用すると、UserSigをすばやく生成できます。SDKAPPID(アプリケーションのSDKAppID)、EXPIRETIME(UserSigの有効期限)、SECRETKEY(キー情報)の3つのメンバー変数の値を設定し、genTestUserSig()関数を呼び出すだけでUserSigをすばやく取得できます。
実装プロセスを簡素化するために、以下の言語またはプラットフォームでUserSig計算のソースコードを提供しています。直接ダウンロードしてクライアントで統合することができます。
ご注意:
この方法に使用されているSECRETKEYは簡単に逆コンパイルして逆ハッキングされる恐れがあります。キーが漏えいしてしまうと、攻撃者がTencent Cloudトラフィックを盗用する可能性があります。そのため、この方法は、ローカルで実行するDemoと機能のデバッグにのみ適用されます。
UserSigを正しく発行するには、UserSigの計算コードをサーバーで統合して、アプリ向けのインターフェースに提供します。UserSigが必要な場合は、アプリから業務サーバーにリクエストを送信し、ワンタイムUserSigを取得します。詳細についてはサーバーでのUserSig生成をご参照ください。 サーバーによるUserSigの計算
サーバーを使用してUserSigを計算することで、UserSigの計算に使用されるキー情報が漏えいしないようにすることを最大限に確保できます。サーバーで計算コードをデプロイして、アプリ向けのサーバーインターフェースに提供します。UserSigが必要な場合、アプリは業務サーバーにリクエストを送信して、ワンタイムUserSigを取得します。
実装プロセスを簡素化するために、以下の言語またはプラットフォームでUserSig計算のソースコードを提供しています。直接ダウンロードしてサーバーで統合することができます。
UserSigの計算関数には、主にSDKAppID、UserID、およびUserSigの有効期限などの主要なパラメータが含まれます。主要なパラメータの詳細について、下表をご参照ください。
説明:
下表のフィールド名は、例としてJava言語のソースコードを使用しています。他の言語の場合は若干異なりますので、実際のフィールド名に準じてください。
|
| プリケーション SDKAppID。IM コンソールのアプリケーションカードで取得できます。 |
| |
| |
| IMでは、デフォルトでUserBufのないインターフェースが使用されます。つまり、このパラメータはデフォルトでnull として入力されます。 ルームに入るときなど、Tencent Real-Time Communicationのユースケースによっては、UserBufがあるインターフェースを使用する必要がある場合があります。詳細については、ルームアクセス権限の保護をご参照ください。 |
| キー情報。IM コンソールのアプリケーション詳細ページで取得できます。操作の詳細については、キーの取得をご参照ください。 |
旧バージョンのアルゴリズム
署名計算の複雑度を低減し、お客様がよりTencent Cloudサービスを迅速に利用できるようにするため、IMサービスでは、2019年7月19日より新しい署名アルゴリズムの使用を開始しました。以前のECDSA-SHA256をHMAC-SHA256にアップグレードし、2019年7月19日以降に作成したすべてのSDKAppIDには新しいHMAC-SHA256のアルゴリズムが採用されています。
SDKAppIDが2019年7月19日より前に作成された場合は、HMAC-SHA256アルゴリズムにアップグレードすることをお勧めします。アップグレードプロセスは本番環境でのサービスに影響しません。また、旧バージョンの署名アルゴリズムを引き続き使用することもできます。ECDSA-SHA256アルゴリズムのソースコードのダウンロードリンクは次のとおりです:
この記事はお役に立ちましたか?