問題タブ [webfinger]
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.
ruby - WebFinger と OpenID を使用したログイン
私は WebFinger をいじっていて、ユーザーが WebFinger アカウントだけを使用してログインできるようにする小さな Rails アプリを作成しようとしています。私は自分自身をうまく指で示すことができ、次のスニペットを含む XRD ファイルが返されます。
私には、「URL に OpenID 2.0 ログインがあります: http://www.google.com/profiles/{redacted}
」と表示されます。しかし、その URL を使用してログインしようとすると、次のエラーが発生します。
OpenID::DiscoveryFailure (Failed to fetch identity URL http://www.google.com/profiles/{redacted} : Error encountered in redirect from http://www.google.com/profiles/{redacted}: Error fetching /profiles/{Redacted}: Connection refused - connect(2)):
プロファイル URL を「 https://www.google.com/accounts/o8/id 」に置き換えると、ログインは完全に機能します。
これが私が使用しているコードです(プラグインとしてRedFingerを使用しており、JanRainのruby-openidをgemなしでインストールしています)
WebFinger から受け取った URL を使用して OpenID でログインすることはできますか?
php - PHP用のWebFingerライブラリ?
私の目標は、特定の電子メール アドレスのOpenID ID プロバイダーを取得することなので、PHP で記述されたWebFingerライブラリを探しています。残念ながら、私は適切なものを見つけることができません。
ライブラリはPEARでインストール可能で、スタンドアロンで使用できる必要があります。少なくとも依存関係がわずかである必要があります。
推奨事項はありますか?
私がこれまでに見つけたもの:
- PSX フレームワークは、すべてを含む PEAR 互換パッケージを 1 つだけ提供する非常に大きなフレームワークです。Webfinger、Yadis、Logging、Session など - 多すぎます。docblock もありません。
- find by email の webfinger.phpは、OpenID ディスカバリをサポートしていない機能がたくさんあるファイルにすぎません。単体テストはなく、スタンドアロンでは使用できません。
- http://status.net/
lib/discovery.php
には、 Webfinger をサポートする Discovery クラスがあります。PEAR でインストールできず、スタンドアロンでもありません。 - https://github.com/walkah/discovery-php - スタンドアロン ライブラリ。PEAR でインストールできず、完全な仕様をサポートしていません (例: HTTPS ファースト フェッチなし)
- SocialIgniter の WebFinger 実装: https://github.com/socialigniter/socialigniter/blob/master/application/libraries/Webfinger.php - HTTPS リソースをフェッチしません。
rest - OpenID Connect プロバイダー発行者の検出
OpenID Connect Discovery 1.0 仕様のセクションUser Input using E-Mail Address Syntax には、次の例があります。
私は試した
私も試しました
いくつかの中で。しかし、私が得るのは404 Not Found
.
たぶん、私は何か間違ったことをしているのかもしれませんし200 OK
、上記の例に示されているものを実際に返す場所がインターネット上にないかもしれません。
私の質問は、OpenID が与えられた場合 (つまり、ユーザーがここで入力したものを意味します)
)、OpenID プロバイダー発行者がどこにあるかをどのように判断しますか? つまり、 OpenId Connect経由のログインを許可したい場合、OpenID パターンから OpenID 発行者への独自のマップを保持する必要がありますか?
webfinger - LRDD ディスカバリーと Webfinger の違いは何ですか?
そのため、私はWebFinger (RFC7033)を理解しようとしており、 Web Host Metadata (RFC6415) に出くわしました。私が知る限り、どちらも RFC であり、ほぼ同じ方法で同じ問題を解決しています。
したがって、人や物に関する情報を URI で検索したい場合は、次の 2 つのことを行うことができます。
- WebFinger は、次の場所に移動することを提案します
/.well-known/webfinger?resource=...
- Host-Meta は
/.well-known/host-meta
、次のようなもので JRD または XRD を返すものを確認することを提案しています<link rel="lrdd" template="http://example.com/lrdd?uri={uri}">
Webfinger ではルックアップが 1 つ減るだけで、JRD が促進されます。host-meta
のように見え、http://example.com/.well-known/webfinger?resource={uri}
両方のことを行うテンプレートを使用して を作成できないのはなぜですか (冗長ではありますが)?
私が見逃している2つの間に重要な違いはありますか? どちらかを優先する必要がありますか?