2017-11-04 19 views
1

this questionでは例の答えはで始まる:OpenID Connectウェブフィンガーエンドポイントは、OpenID Connectプロバイダーに対するユーザーアカウントのマップですか?

は、キャロルは、彼女がOpenIDのConnectを使用して訪問するウェブサイトで認証したいとします。彼女はOpenID Connectの識別子(例:[email protected])をWebサイトに提供します。訪問したWebサイトは、OpenID Connectプロバイダを探すWebFingerクエリを実行します。

example.comのように、どのOpenID接続プロバイダがCarolを認証できるかはまだわかりません。どのOpenID Connectプロバイダが彼女を認証できるかを調べるために、Carolの電子メールアドレスをルックアップキーとして使用する必要があります。

多くのサイトでは、GoogleとGithubのか認証と認証を持っているが、この場合にはそれだけで認証したい人のメールアドレスに基づいて認証プロバイダを割り出しサイトのように見えます。したがって、認証プロバイダを選択する人の代わりに、サイトは電子メールアドレスを尋ねて、ユーザーが使用できる認証プロバイダを特定します。

  • 1)ユーザー
  • 3)サーバーがのリストが表示されたメールアドレス(またはユーザーID)

  • 2)サーバはメールアドレスを使用して認証プロバイダを検索します/ユーザーID入り:だからシーケンスのようなものがありますユーザーが選択できる認証プロバイダ

    私はこれを正しく理解しましたか?

答えて

1

example.comのように、どのOpenID接続プロバイダがCarolを認証できるかはまだわかりません。

あなたは正しいです。 WebFingerプロトコルの役割は、OpenID Connect識別子に関連付けられたOpenID接続プロバイダを決定することです。

サイトに「Authentith with Github」と表示されているサイトでは、OpenID接続プロバイダがハードコードされており(Github)、WebFingerは実装されていません。

+0

これをデモするオンラインの例がありますか? – Ole

+0

ここには[pythonの実装](https://pypi.python.org/pypi/webfinger2)があります。 –

0

OpenID Provider Issuer DiscoveryはOPTIONAL発見サービス依拠当事者は、アウトオブバンド機構を介してOPの発行者の場所を知っています。または、ウェブサイトの提供が必要なwebfingerを使用してください。

  • リソース=ディスカバリーリクエストの対象となるターゲットエンドユーザーの識別子。

  • host = WebFingerサービスがホストされているサーバー。

  • rel =ロケーションが要求されているサービスのタイプを識別するURI。

IMHOの場合、example from RFC 7033は誤解を招きます。そこからの発行者と "[email protected]"の決定は、多くのプロバイダによってうまく実装されていません。 (少なくとも私が見つけることができたもの)

私はtried a few email addressesしか応答を得ることができませんでした。 (この例では単純なhttp取得が示されていますが、OpenID Connect Discoveryにはhttpsが必要です)

私は "[email protected]"で回答を得ました。 (ノーリスが貢献しているhttps://indieweb.org/WebFingerを参照してください)

私はまた、OpenID ConnectのWebFingerディスカバリを使用しています。これも便利なセキュリティ上の問題です。

2010年のエントリに基づいてsome discovery on an [email protected]comを実行することはできましたが、例で説明したようにウェブフィンガークエリほど簡単ではありませんでした。

おそらく他の人が応答します。

一般に、ウェブサイトは登録する必要があります(クライアントID)。これは、dynamicallyで実行することができます。

+0

私は私の質問で引用符を更新しました。これはおそらく仕様から直接得られたものです。 – Ole

関連する問題