web-dev-qa-db-ja.com

OTPの上に表示される発行者を正しく表示するGoogle認証システムのQRコードを生成する方法

したがって、私はこれに関するドキュメントを知っています、ここにあります: Google Authenticator Key URI Format

そのページからこの例をフォローすると:

otpauth://totp/Example:[email protected]?secret=JBSWY3DPEHPK3PXP&issuer=Example

そして、私はそれをGoogle Chart URLに「スプライス」します:

https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/Example:[email protected]?secret=JBSWY3DPEHPK3PXP&issuer=Example

有効なQRコードが表示されます。携帯電話でGoogle認証システムアプリでスキャンすると、有効なOTPの生成が開始されます。

ただし、携帯電話のディスプレイでは、QRコードによって作成されたエントリに対してOTPが取得され、その下に「Example:[email protected]」が表示されます。私が欲しいのは、OTPの上に「例」を表示する、「[email protected]」を表示するbelowOTP。私は仕方がありませんが、それはすべてのプロが制作したアプリがそれを行う方法であることに注意してください。たとえば、Google、Wordpress、Amazonなど。会社名はOTPの上aboveであり、ユーザー名が表示されますbelowOTP。はい、これは純粋に表面的な問題ですが、私はそれを正しくしたいと思います。

誰も私に手がかりを提供できますか?

20
Mark J. Bobak

これを理解しただけです。

結局のところ、「oauth」のすべての特殊文字、つまり「$」、「%」、「=」などをエンコードする必要がありました。

したがって、以前と同じGoogle Chart URLを使用しますが、次のようにこれらの文字をエンコードします。

https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/Example%3Aalice%40google.com%3Fsecret%3DJBSWY3DPEHPK3PXP%26issuer%3DExample

そして、それは正しく機能します。

14
Mark J. Bobak

ローカルqrencodeインストールを使用して別の方法を使用します。

qrencode -o- -d 300 -s 10 "otpauth://totp/YOUR_IDENTIFICATION?secret=YOUR_SECRET" | display

このようにして、ラップトップにあったものからmt lost authentication keyライブラリを再構築できます。

21
Alex

Google Chartの使用を推奨する回答は、情報セキュリティの観点からすればひどいものです。これは基本的に、TOTPsecretとユーザー名([email protected])および発行者(Example)と第三者を秘密にしておく法的義務を持たないサードパーティの会社、およびGETリクエストでそれを行う!そうすることで、多要素認証の基礎となるすべての前提だけでなく、組織の情報セキュリティポリシーにも違反する可能性が高くなります。パスワード違反の場合にアカウントを侵害することからあなたを保護する唯一の要因はそれ自体の違反であるため、MFAによって追加された値は無効になります。

データをローカルで処理している限り、QRコードジェネレーターを使用するだけです。

MFAシークレットにはオンラインQRジェネレーターを使用しないでください

Linuxでは、コンソールでASCII文字を使用してQRコードを印刷できる python-qrcode ライブラリをお勧めします。

pip install qrcode

次に:

qr "otpauth://totp/Example:[email protected]?secret=JBSWY3DPEHPK3PXP&issuer=Example

enter image description here

3
kravietz

ここで注意したいのは、Google Authenticatorの新しいバージョンでは、ここに記載されているissuerパラメーターを使用することです。

https://github.com/google/google-authenticator/wiki/Key-Uri-Format#issuer

例えば:

https://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=otpauth%3A//totp/User%2540Realm%3Fsecret%3DKO5DE2YD3Q2ZXEOO%26issuer%3DIssuer%2520Name&choe=UTF-8

0
David Thomas