質問

そこで私は現在 OpenID プロバイダーを作成しようとしています。私は、Atlassian の Crowd と WSO2 Identity Server という 2 つの Java ベースの OpenID サーバー パッケージを使用してみました。現在、私の実装ではセキュリティが必須であり、SSL を使用し、HTTPS ベースの OpenID を使用することを意味します。現在、WSO2 と Crowd の両方で、多数のサイトが提供された OpenID で動作しません。テストした 20 のサイトのうち、8 サイトが Crowd で失敗し、10 サイトが WSO2 で失敗しました。この高い故障率は実際には容認できません。問題のあるほぼすべてのサイトが、OpenID エンドポイントが見つからないと主張しています。

SSL なしの OpenID (つまり HTTP ベースの OpenID) を使用すると、サイトの準拠性が突然大幅に向上し、そのうち 2 つだけが失敗するようになりました。AusCERT の証明書を使用しているため、問題は自己署名証明書が原因ではないはずです。

最初は、これは単に HTTPS ベースの OpenID を受け入れない RP が多数存在するだけの問題だと思いました。ただし、Verisign の HTTPS ベースの OpenID を使用して、失敗したのと同じサイトにログインしようとしましたが、うまくいきました。WSO2 と Crowd の両方を詳しく調べたところ、どちらも OpenID 2.0 仕様に完全に準拠していないことがわかりました。特に、どちらも yadis 検出用の XRDS ドキュメントへのリンクをヘッド内に提供していませんでした。私の問題は、サイトが指定した URL で OpenID エンドポイントを検出できないことであると考えると、SSL を使用しない場合は HTML ベースの検出で十分であることを除けば、関連性があるように思えます。

私の問題が実際にどこにあるのかについて洞察を持っている人はいますか?欠落している XRDS 文書は関連性があるように見えますが、単なる危険な情報である可能性があります。それを差し引いても、十分に文書化されており、仕様どおりに動作し、(比較的)設定が簡単な、Crowd または WSO2 に代わる優れた代替手段を知っている人がいるなら、それを知っていると嬉しいです。

役に立ちましたか?

解決

注意すべき点の 1 つは、一部のプロバイダーの SSL 証明書が、一部の RP によって権限があると見なされているルート権限によって署名されていないことです。すべての RP が信頼する証明書から証明書を取得していることを確認してください。

.NET がプロバイダーのオプションである場合は、無料のオープンソースを確認してください。 DotNetOpenAuth ライブラリ。自分でホストでき、次のようないくつかの主要な OP で使用されます。 私のスペース そして netidme.com そして その他. 。OpenID 2.0の実装は完了しており、米国をサポートしています。政府 ICAM OpenID 2.0 プロファイルに準拠しており、多くの相互運用性、セキュリティ、コンプライアンス テストに使用されており、OpenID 1.1 と 2.0 RP の両方で動作するため、多くまたはすべての RP と良好な相互運用性が得られる可能性が非常に高くなります。たくさんあります 追加のセキュリティ機能 オンにするだけで済みます(要件であると述べたように、HTTPSを要求するのと同じです)。

(完全な開示:DotNetOpenAuth を書きました。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top