1

OpenID を使用してログイン システムを実装しています。

ドキュメントは言う

サブジェクト識別子

一連の属性の識別子。URI でなければなりません。サブジェクト識別子は、メッセージの認証部分のエンドユーザー識別子に対応します。言い換えれば、メッセージの属性交換部分の識別属性のサブジェクトは、認証部分のエンドユーザーと同じです。サブジェクト識別子は、属性交換には含まれません。

URI の定義は非常に大きくhttp://gopher://.

gopher は有効な URI プロトコルではないと確信していますが、http(s) を除いて、OpenID プロトコルのサブジェクト識別子として他に何が許可されていますか?

4

1 に答える 1

2

あなたは間違った仕様を引用しています。openid 仕様、セクション 7.2 は次のように述べています。

7.2. 正規化

エンド ユーザーの入力は、次のように識別子に正規化する必要があります。

  • ユーザーの入力が「xri://」プレフィックスで始まる場合、XRI が正規の形式で使用されるように、それを削除する必要があります。
  • 結果の文字列の最初の文字が XRI グローバル コンテキスト シンボル ("="、"@"、"+"、"$"、"!") または "(" である場合、[XRI_Syntax_2 .0] の場合、入力は XRI として扱われるべきです。
  • それ以外の場合、入力は http URL として扱われるべきです。「http」または「https」スキームが含まれていない場合、識別子の前に文字列「http://」を付ける必要があります。URL にフラグメント部分が含まれている場合は、フラグメント区切り文字「#」と一緒に削除する必要があります。詳細については、セクション 11.5.2 を参照してください。
  • 次に、URL 識別子は、コンテンツを取得するときにリダイレクトをたどり、最終的に [RFC3986] のセクション 6 のルールを最終的な宛先 URL に適用することによって、さらに正規化する必要があります。この最終 URL は、依拠当事者が Claimed Identifier として記録し、認証を要求するときに使用する必要があります。

3 番目のポイントから、識別子は http(s) URL または XRI のいずれかである必要があると推測できます。

于 2012-12-25T13:50:31.560 に答える