0

私はopenidプロバイダーを作っています。しかし、私は発見段階で立ち往生しています。私がやったことは次のとおりです:

  1. 証明書利用者は自分のディスカバリ URL に移動します
  2. 私のサーバー (openid プロバイダー) は次のドキュメントを返します (コンテンツ タイプ: application/xrds+xml)

<?xml version="1.0" encoding="UTF-8"?>

<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">

<XRD>

<Service priority="0">

<Type>http://specs.openid.net/auth/2.0/server</Type>

<URI>my_endpoint_url (an https address, with self signed certificate)</URI>

</Service>

</XRD>

</xrds:XRDS>

しかし、私の openid コンシューマー テスターは、どういうわけか私の openid プロバイダーを検出できません。xrds ドキュメントの何が問題なのかわかりませんが、openid コンシューマー テスターを使用して google、yahoo、verisign を検出し、ログイン画面に移動できます。おそらく私のopenidコンシューマテスターは何も悪いことをしません。何をすべきかアドバイスしてください。ありがとうございました。

4

1 に答える 1

1

Openidは拡張機能をサポートしていますか?

エンドポイント間でID情報を交換するには、少なくともOpenidSimpleAttributue交換サービス拡張機能をサポートしている必要があります。したがって、拡張機能をxrd:Service要素の追加のxrd:Type子要素としてリストする必要があります。

このようなもの;

<Service priority="0">
 <Type>http://specs.openid.net/auth/2.0/server</Type>
 <Type>http://openid.net/srv/ax/1.0</Type>
 <Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type>
 <Type>http://specs.openid.net/extensions/ui/1.0/icon</Type>
 <Type>http://specs.openid.net/extensions/pape/1.0</Type>
 <URI>endpoint_url</URI>
 </Service>

これに関する詳細については、次のリンクを確認してください。 http://openid.net/specs/openid-authentication-2_0.html#discovery

于 2012-08-17T05:47:00.380 に答える