Telegram認証の仕組み
Telegramログインとは
電報認証は、電報アカウントを使用してウェブサイトまたはアプリであなたの身元をすばやく確認する方法です。ゼロから登録する代わりに、Telegramは基本的なプロフィールデータ(ID、名前、ニックネーム、アバター)を暗号署名でサイトに転送することを許可し、サイトはアカウントを作成/バインドしてセッションを開始します。
主な利点:- スピード:1-2タップ-パスワードと電子メールの確認なし。
- 信頼性:データはTelegramによって署名されます。サイトはそれらをチェックすることができます。
- 統一:同じ電報アカウントは、Web、モバイルウェブ、およびTelegram WebApp内で動作します。
電報認証オプション
1.電報ログインウィジェット(ウェブサイト)。
ページには公式ボタンが表示されます。[Telegram]をクリックすると、確認ウィンドウが表示され、サーバーがセッションをチェックして作成するフィールド+署名(ハッシュ)のセットがサイトに戻ります。
2.ボットによる認証(ログインURL/ディープリンク)
ユーザーは特別なリンク(login_url)を使用してボットを開きます。ボットはTelegramから確認を受け取り、サイトユーザーデータを署名で送信します。
3.Telegram WebApp(チャット/ボット内)。
サイトは「組み込みブラウザ」Telegram (WebApp)で開きます。クライアントは、バックエンドが要求を検証するユーザーパラメータと暗号署名を持つinitDataオブジェクトをWebAppに渡します。
ユーザーが見るもの(ステップバイステップ)
1.「Telegramでログイン」(サイト/ボット/WebAppで)をクリックします。
2.電報は確認ウィンドウを表示します(またはクライアントで既に確認済みのセッションを使用します)。
3.同意の後、サイトは自動的にあなたのtelegram_id、名前、ニックネーム(もしあれば)、アバター(URL)と承認タイムスタンプを受け取ります。
4.サイトはアカウントを作成またはリンクし、パスワードを入力せずにログインします。
サーバーで何が起こるか(簡単かつ明確に)
1.サイトはクライアントからパラメータのセットを受け取ります(例:'id'、 'first_name'、 'username'、 'photo_url'、 'auth_date'、 'hash')。
2.サーバーはdata-check-stringを生成します。'key=value'ペアをアルファベット順にソートし、'hash'を除き、ラインフィード文字と結合します。
3.サーバーは、この文字列からボットトークンから派生したシークレット(シークレットはボットトークンからのHMAC-SHA256)でSHA256を計算します。
4.結果を入力された'hash'と比較します。'auth_date'が「fresh」(通常は有効期間が24時間≤)である場合、データは本物と見なされます。
5.サーバーは'telegram_id'でユーザーを探しています。
見つかった場合は、プロファイルを承認して更新します。
そうでない場合は、新しいアカウントを作成してログインします。
6.サイトまたはアプリケーショントークンにセッショントークン/クッキーを与えます。
正確にサイトに送信されるもの
必須:'id' (telegram_id)、 'auth_date'、 'hash'。
多くの場合:'first_name'、 'last_name'、 'username'、 'photo_url'、時にはインターフェイス言語。
通信、連絡先などへのアクセスはありません-これはOAuthソーシャルネットワークではありません。
Telegramをカジノアカウントにリンクする方法(プレーヤー用)
1.サイト/アプリケーションのプロフィールに移動します。
2.「リンク電報「/」電報経由でログイン」をクリックします。
3.Telegramでリクエストを確認します。
4.完了:アカウントが'telegram_id'に連絡しました。これで使用できます:- ボタンを介してクイックログイン、ボット内のトランザクション/トーナメントに関する通知、WebAppインターフェイス(キャッシュデスク/リーダーボード)Telegramに直接、提供されている場合。
セキュリティとコンプライアンス
署名検証-サーバーのみ。クライアントチェックは信頼できません。
[有効期限]ウィンドウ。'auth_date'(たとえば、≤ 86400秒)をチェックします。
デバイスの束。重要なアクション(出力、詳細の変更)については、ログインがTelegram経由であった場合でも、2FA/passwordが必要です。
CSRF/リプレイ保護。リダイレクトでnonce/' state'を使用し、セッションをデバイス/ブラウザにバインドします。
ドメイン制限。ログインボタンとWebAppは信頼できるドメインでのみ動作します。
データストレージ。最小化:'telegram_id'をプライマリ通信キーとして指定します。余分なフィールドをキャッシュしないでください。ローカルデータ法(GDPRおよび同等)を遵守します。
カップリングを解除します。ユーザーに「電報を無効にする」ボタンを与え、バンドルを正しく削除します。
アンチフラウド。ログインしてIP/デバイスにログインし、リスクスコアリングを適用します。
責任あるプレー。便利なログインでも、KYC/AMLとアカウントの制限に従ってください。
電報WebApp: 異なるもの
initData(パラメータパッケージ+署名)を転送してTelegram内で起動します。
initDataを使用してヘッダー/パラメーターを使用してすべてのリクエストをAPIに同行し、同じ原理(ボットトークンからのシークレットをHMAC-SHA256)に従ってサーバー上の署名を検証します。
利点:ネイティブボタン、共有、クイックスクリプト(ウォレット、トーナメント、タスク)ブラウザに切り替えることなく。
制限:Telegramクライアント(組み込みWebView)、プラットフォームポリシー、ブラウザAPI機能によって異なります。
典型的なユースケース
迅速なオンボーディング。新しいプレーヤーはTelegramを介して入り、サイトはアカウントを作成し、すぐにlimits/2FAを設定することを提供します。
WebとWebAppのシングルサインオン。ユーザーはチャットで始まり、ブラウザで続けました-進捗状況と財布は一般的です。
ボット内のアラート。入金、出金状況、トーナメントピンコード。
紹介リンクです。deep-link 'start'を通じて、refコードを渡し、最初のログイン時にソースをバインドすることができます。
共通の問題と解決策
"無効な署名/ハッシュの不一致。"チェック:- 署名の行はアルファベット順に収集され、'hash'は行から除外され、secret=SHA256はボットトークンから除外され、トークン自体ではなく、HMAC-SHA256だけではなくSHA256を使用します。
- 「期限切れのauth_date.」ウィンドウを拡大して(適度に)、可能な時計のドリフトを検討してください。
- "ログインは正面を通過し、サーバーに落ちます。"検証はサーバーベースでなければなりません。フロントの結果を信用しないでください。
- "ユーザーはTelegramにアクセスできなくなりました。"代わりに、電子メール/パスワード+2FAでログインし、サポートを通じて手続きを解除します。
- "重複したアカウント。"最初のログイン時に、電子メール/電話でユーザーを検索し、確認と合併を提案してみてください。
ベストプラクティス(プレイヤー向け)
Telegramをすでに作成されたアカウントにリンクして、履歴とボーナスを失わないようにします。
アカウントで2FAを有効にする(電報入力は2番目の要素の代替ではありません)。
あなたの個人アカウントの「マネージャー」へのコード/リンクを報告しないでください-サイトの公式ボット/ボタンを介してのみ操作を行います。
Telegramにアクセスできなくなった場合は、サイトでログインを復元する手順を事前に確認してください。
ベストプラクティス(製品/開発用)
サーバー側の署名検証、タイムウィンドウ、アンチリプレイ。
ログイン、監査、異常アラートの頻度の制限。
Telegramの透過的な結合/リンク解除、要求に応じてデータのエクスポート/削除。
詳細なポリシー: 「Telegramでのログインは許可されていますが、出力は再認証でのみ可能です。」
異なるTelegramクライアントとブラウザでログインウィジェット/WebAppをテストします。
FAQ(よくある質問
これはOAuthですか?
Telegramは署名されたデータパケットを送信し、ユーザーリソースにアクセスするためのトークンを発行しません。
Telegramアプリケーションなしでログインできますか?
ウェブ上でログインウィジェットを使用する場合、Telegramはクライアント/ウェブ層を通じてあなたを確認します。インストールされたクライアントはプロセスをスピードアップします。
連絡先/チャット履歴は共有されますか?
いいえ、そうではありません。サイトは+'telegram_id'プロファイルの基本フィールドのみを受け取り、これはすべて署名付きです。
それは安全ですか?
適切なサーバー署名の検証とタイムウィンドウの制限により、はい。必要に応じて、2FAおよび重要な行動制限が含まれます。
Telegram認証は、Telegram署名されたデータでログインするための迅速かつ安全な方法です。ユーザーは、不要な個人データを保存せずに信頼性の高い識別-パスワード、製品なしでインスタントアクセスを取得します。サーバー上の署名を厳密に検証し、タイムウィンドウを制限し、電報ログインと2FAと責任あるセキュリティポリシーを組み合わせることが重要です。