問題タブ [openid2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
openid - OpenID 2 で HTML フォームのリダイレクトが使用されるのはなぜですか?
単純なリダイレクトではなく、自動 HTML 投稿を行うのはなぜですか?
これは、OpenID がわかっている場合にディレクトリをリモート サーバーにポストするログイン フォームを開発者が自動的に生成できるようにするためですか?
例えば。
- ユーザーはログインしておらず、ログイン ページにアクセスしています。
- Cookie からユーザーの openID を検出します。
- リモート OpenID サーバーに直接投稿するフォームが生成されます。
- リモート サーバーがユーザーを Web サイトにリダイレクトします。
- Web サイトはユーザーをログインさせます。
これが事実なら、私は利益を見ることができます。ただし、これは、ユーザーがログアウトするときにユーザーの openID を Cookie に保持することを前提としています。
この仕様を最適に実装する方法については、ほとんど情報が見つかりません。
公式仕様の HTML FORM リダイレクトを参照してください。
http://openid.net/specs/openid-authentication-2_0.html#indirect_comm
これは、 PHP OpenID Library (バージョン 2.1.1)を調べてわかりました。
php - IdXRDSディスカバリーを開く
私はOpenIdを使用しており、自分のサイト(PHP)でOpenIdを相互作用/認証するためのクラスを作成して遊んでいます。他にもいくつかのライブラリ(RPXなど)があることは知っていますが、自分のライブラリを使用したいと思います(プロトコルをよりよく理解し、それが自分に適しているかどうかを理解するのに役立ちます)。
私が持っている質問は、OpenId検出シーケンスに関連しています。基本的に、XRDSドキュメントを使用して、要求されたID(openid.claimed_id)からローカルID(openid.identity)を取得することを検討しているところに到達しました。
私の質問は、XRDSロケーション(X-XRDS-location)を取得するためにcURLリクエストを作成してから、実際のXRDSドキュメントを取得するために別のcURLリクエストを作成する必要があるかどうかです。
DUMBリクエストでは、cURLリクエストを1つだけ作成してOpen Id Serverを取得するようですが、XRDSSmartメソッドを使用するには2つ作成する必要があります。正しくないようですが、他の誰かが私にいくつかの情報を教えてもらえますか?
php - PHP で OpenID プロバイダーからメールアドレスをリクエストする
OpenID プロバイダーから電子メール アドレスを要求する最も簡単な方法は何ですか?
この問題を単純化する優れた PHP ライブラリはありますか?
プロバイダーによって実装が異なることはわかっています。簡易登録と属性交換の両方を行う必要があると聞きました。特に、MyOpenID や Google などの最大のプロバイダーで動作することを確認したいと思います。
関連するが不十分な質問:
- OpenID プロバイダー(.NET 中心)からメール アドレスを要求する
- OpenID Attribute Exchange - 使用する必要がありますか?
django - python-social-auth を使用して openID2.0 を Google+ に移行する (openid id を gplus id にマッピングする)
以前は openID 2.0 を使用しており、ユーザーとそれに関連付けられた openid でいっぱいのデータベースがあります。このプロトコルの廃止を考慮して、代わりに Google+ サインインを使用することにしました。
python-social-auth
Django プロジェクトではこれを比較的簡単にしましたが、既存のユーザーの openid を新しい Google サブ ID にマップする方法がわかりません。
追加した
settings.py に移動すると、必要に応じてスコープなどと共に GET 文字列python-social-auth
をメモして渡していることがわかります。?openid.realm=http://www.example.com
ただし、Google は OpenID ID で応答していないようです。私はid_token
(などと一緒access_token
にbearer
)のみを取得します。
ユーザーの実際の openid で Google に応答させるにはどうすればよいですか?
(OpenID2.0 から Google+ への移行に関して私が見つけることができる Google からの唯一のドキュメントは、 https ://developers.google.com/+/api/auth-migration#oid2 などの JavaScript 署名ボタンに向けられているようです)
編集: ID が で何らかのid_token
方法でエンコードされている可能性があります。
openid - 2017 年 1 月 1 日の Google OpenId Connect から OpenID 2.0 へのマッピングはどうなりますか?
The Google OpenID 2.0 migration timetableによると、「OpenID 2.0 識別子の OAuth 2.0 識別子へのマッピングは、2017 年 1 月 1 日まで引き続き機能します。」
この移行がどのような形で行われるかは、ドキュメントから 100% 明らかではありません。scope: "openid" または openid.realm: "something" をリクエストすると、エラーが返され始めますか? それとも、古い openid 値が応答に含まれていないのでしょうか? Google OpenId Connectのドキュメントでは、例の OpenID Connect 認証 URI で引き続き要求値を使用しています。
これがどのように消えていくのかをよりよく理解している人はいますか? 私たちのアプローチは、openid スコープと openid.realm を削除することですが、変更の正確な形式についてより確実にしようとしています。