15

OpenID 仕様では、次のように述べています。

  • 識別子:

識別子は単なる URL です。OpenID 認証プロトコルの全体の流れは、エンド ユーザーが URL を所有していることを証明することです。

  • 要求された識別子:

消費者によってまだ検証されていませんが、エンド ユーザーが所有していると言う識別子。

  • 検証済み識別子:

エンド ユーザーが所有していることを消費者に証明した識別子。

  • ID プロバイダー:

「IdP」または「サーバー」とも呼ばれます。これは、エンド ユーザーが要求された識別子を所有していることを暗号で証明するために、コンシューマーが接続する OpenID 認証サーバーです。エンド ユーザーが ID プロバイダーに対して認証する方法は、OpenID 認証の範囲外です。

  • 識別子の URL は一意ですか? 正確には何ですか?

  • 一意でない場合、消費者が同じ OpenID エンドポイント URL 上の異なるユーザー間で異なるようにするための一意のものはありますか?

  • IdP と識別子 URL の違いは何ですか?

他の場所で、「OpenID エンドポイント URL」という用語を読んだことがあります。

  • OpenID エンドポイント URL は IdP と同じですか? IdPもURLですか?

例として、Google の OpenID を見てみましょう。一部のサイトで OpenID ログインを要求された場合、私は OpenID URL を使用しますhttps://www.google.com/accounts/o8/id。それは識別子のURLですか?もしそうなら、それは明らかにユニークではありません。多くの場合、OpenID ログインについてそのサイトのアカウント設定をもう一度確認すると、入力した URL は表示されませんが、何らかの形で のように拡張されていますhttps://www.google.com/accounts/o8/id?id=AltOawk...。その URL は今ではユニークなようです。

  • の目的はhttps://www.google.com/accounts/o8/id何ですか?それは OpenID エンドポイントの URL ですか? それとも IdP URL ですか (それが何か違う場合)?

  • そして、の目的はhttps://www.google.com/accounts/o8/id?id=AltOawk...何ですか?それは本当にユニークで、私のGoogle アカウントで常に同じですか? その URL は私を識別するものですか?

  • なぜ彼らhttps://www.google.com/accounts/o8/id?u={google-username}はこの不可解な の代わりに使用しなかったの...?id=AltOawk...ですか?

  • Google の場合の識別子 URL は何ですか?

  • OpenID エンドポイント URL とは何ですか? (IdP URL とは何ですか?)

私が質問している理由は、独自の OpenID エンドポイントを実装しようとしているからです。

  • OpenID エンドポイント URL は識別子 URL と同じですか?

私の OpenID エンドポイントの実装では、異なるユーザー間で異なることができないというまさにその問題があります。コンシューマー Web サイトは、その OpenID エンドポイントのすべてのユーザーを同じものとして扱います。もちろん、常に同じ OpenID URL ですが、Google の OpenID の場合も同様です。

  • エンド ユーザーがこの「一般的な」URL を使用する場合、OpenID エンドポイントの実装でそれを「具体的な」/一意の (識別子?) URL にリダイレクト/転送するにはどうすればよいですか? または、同じ OpenID URL で異なるエンド ユーザーを区別するにはどうすればよいですか?

現在の実装では、デバッグ トレースを有効にすると、最初に取得する要求はモード checkid_setup です。仕様では、ここで Claimed Identifier を取得していると書かれています。コンシューマー サイトで入力した内容 (デバッグ トレースも同じことを示しています) のため、これが「一般的な」URL (OpenID エンドポイント URL) です。つまり、それは一意の URLではありません。

  • その時点でリダイレクトを行う必要がありますか? 仕様はそれについて何も言いません。「具体的な」URL はどこに伝えればよいですか? (私の場合、それは URLhttp://{endpoint-url}?u={endpoint-username}です。)

「OpenID サーバー」(URL) および「OpenID デリゲート」(URL) という用語もあります。

  • これらの用語は、上記の他の用語とどのように関連していますか? OpenID エンドポイント URL とまったく同じですか?

  • 「OpenID ID」とは何ですか? OpenID識別子のURLと同じ?


関連する質問も参照してください: OpenID は、同じ OpenID エンドポイントの異なるログイン間でどのように異なりますか?

(メタの質問: これを多くの独立した SO の質問に分割する必要がありますか?そうしないと、すべての質問に対する回答が得られないのではないかと心配しています。)

4

3 に答える 3

5

わかりました。SMF OpenID エンドポイントの実装を修正したので(非常に関連した問題の詳細については、こちらを参照してください)、これらの関係についていくつかの仮定を立てました。もちろん、それは彼らが正しいことを証明するものではありません (だから私を訂正してください)。どうぞ:

  • 識別子 URL = OpenID エンドポイント URL = IdP

  • OpenID エンドポイントは一意ではありません。これは、そのエンドポイントのすべてのエンド ユーザーにとって同じです。

  • 検証済み識別子 URL = ID

  • 検証済み識別子の URL は一意です。これは、エンドポイント ユーザー アカウントに関連付けられています。

  • https://www.google.com/accounts/o8/idGoogle OpenID エンドポイント URL です。

  • https://www.google.com/accounts/o8/id?id=AltOawk...は、Google OpenID 検証済み識別子の URL です。

  • Google OpenID ID URL に含まれるハッシュは、OpenID レルム (この OpenID ID が有効なコンシューマー ドメインの名前空間) にも関連しています。これが、単なるユーザー名ではない理由の 1 つです。

  • 検証済み一意識別子 URL の提供方法については、こちらを参照してください。

それでも、私には不明な点がいくつかあります。

  • Google がハッシュ ID に使用する他の理由は何ですか。を使用することもできid?u={username}&oidrealm={...}ました。

  • そのような OpenID レルムを持つ理由は何ですか?

  • 識別子の URL と要求された識別子の URL の正確な違いは何ですか?

于 2010-07-16T00:36:55.333 に答える
2

そして、https://www.google.com/accounts/o8/id ?id=AltOawk の目的は何ですか...? それは本当にユニークで、私の Google アカウントで常に同じですか? その URL は私を識別するものですか?

すべてを正しく理解していれば、答えは「そうです!」です。

なぜ彼らはこの不可解な ...?id=AltOawk... の代わりにhttps://www.google.com/accounts/o8/id?u= {google-username} を使用しなかったのでしょうか?

たとえば、(現在または将来)ユーザー名を変更できる場合、アカウントへの将来の変更に対して安全であることを望んでいると思います。おそらく、それが OpenId-claimed-identifier としてまあ-しかし、それではあなたは困るでしょう!古い主張された識別子のすべての登録は評価できません。詳細はこちら: http://wiki.openid.net/w/page/12995200/OpenID-Security-Best-Practicesおよびこちら: http://blog.nerdbank.net/2008/07/case-for-case-機密性の高い openid-url.html

于 2011-05-18T21:43:45.057 に答える
2

これが私の理解です。私は実際にあなた自身の答えで最後の2つの質問に答えているだけです. 誰かがこれらが役立つことを願っています。

そのような OpenID レルムを持つ理由は何ですか?

レルムはセキュリティのために使用されます。基本的に、return_url はレルムに対してチェックされ、OpenID の仕様では一致する必要があると言われています。Google はこれをさらに一歩進めて、各領域に固有の検証済み識別子を提供しています。彼らはあなたが提案したように実行し、レルムを識別子に戻した可能性がありますが、2つの検証済み識別子を見て、それらが同じエンドユーザーであるかどうかを判断できます. 彼らは識別子を識別情報から解放しようとしていると思います。(皮肉なことですよね?)

識別子の URL と要求された識別子の URL の正確な違いは何ですか?

請求された識別子は、エンドユーザーが指定したものです。これは一意の識別子ではありません。Yahoo がその良い例です。それらを使用するyahoo.comと、識別子として指定し、yahoo アカウントにログインして、一意の識別子を openid コンシューマーに返すことができます。これにより、エンドユーザーのプロセスが単純化されます。(そしてyahoo.com、openid として使用する可能性が高くなります!)

于 2010-08-31T21:21:00.690 に答える