Coturn を使用してプロジェクト用に TURN サーバーをセットアップしようとしていますが、ドキュメンテーションはせいぜい大ざっぱです...
これを行うツールがあることはturnadmin
承知していますが、データベースに対して直接クエリを実行することを強く望んでいます。これは潜在的に多くのユーザーを持つアプリであり、その共有キー (hmackey
内turnusers_lt
) は変更される可能性があります (アプリとパスワードを共有しないために、アプリは特定の揮発性のユーザー パラメーターのハッシュである「偽の」パスワードを使用します。とても秘密です)。
わずかなドキュメントから、hmackey
レルム、ユーザー名、およびパスワードを使用して計算されることを収集できます。
$ turnadmin -k -u myusername -r my.realm.org -p my-password
> e.g. 0x7a69b0e2b747a4560045f79d171b78c0
私のコードがこれら 3 つのパラメーターを認識しているとすると、hmac ハッシュを作成するにはどうすればよいでしょうか? たとえば、私が持っているPHPでは
string hash_hmac ( string $algo , string $data , string $key [, bool $raw_output = false ] )
$algo
ここでは SHA1 にする必要がありますが、$data
(ユーザー/パスの連結など) および$key
(レルムなど) にはどのような値が入りますか?
turn_secret
レルムの「値」をリストした表もあります。これ$key
は上記の例のように使用する必要があると推測していましたが、キーを追加および変更しても、turnadmin を呼び出したときに同じ結果が得られます。
基本的に、私がやりたいことは(疑似コード)です:
// user registers
// pseudo-code, this is of course computed using php's password_hash function
$hashed_pw = hash($pw);
$db->query('insert into usertable (name, pass) values ($name, $hashed_pw)');
// this is implemented somewhere...
$coturn_pw = get_secret_hash($name);
// this needs implementing...
$HAMC = calc_hmac($name, $coturn_pw, 'my.realm.com');
$turndb->query('insert into turnusers_lt values (...)');
// on update, delete also update turnusers_lt
...そして、クライアントで、$name
と$coturn_pw
を資格情報として使用して TURN サーバーに接続できるようになりますmy.realm.com
。
それとも、私はこれを考えすぎていて、アプリに汎用ユーザーを使用し、パスワードをハードコーディングして、誰が誰と話しているかを Coturn に認識させるべきですか?