我正在使用OpenID实施登录系统。
主题标识符
一组属性的标识符。它必须是URI。主题标识符对应于消息的身份验证部分中的最终用户标识符。换句话说,消息的属性交换部分中的身份属性的主题与身份验证部分中的最终用户相同。主题标识符不包含在属性交换中。
URI在定义上相当大,可以是http://
,也可以是gopher://
。
我确定gopher不是有效的URI协议,但是,除了http(s),还可以从OpenID协议中获得什么作为主题标识符?
您引用的规范错误。 openid specification,第7.2节说:
7.2。规范化
最终用户的输入必须归一化为标识符,如下所示:
- 如果用户输入以“ xri://”前缀开头,则必须将其剥离,以便以规范形式使用XRI。
- 如果结果字符串的第一个字符是XRI全局上下文符号(“ =”,“ @”,“ +”,“ $”,“!”)或“(”,如第2.2.1节中所定义[XRI_Syntax_2.0],则应将输入视为XRI。
- 否则,输入应被视为http URL;如果不包含“ http”或“ https”方案,则标识符必须以字符串“ http://”作为前缀。如果URL包含片段部分,则必须将其与片段定界符“#”一起剥离。有关更多信息,请参见第11.5.2节。
- URL标识符然后必须通过以下两种方式进行进一步规范化:在检索其内容时进行以下重定向,并最终将[RFC3986]第6节中的规则应用于最终的目标URL。最终方必须将最终URL标记为“要求的标识符”,并在请求身份验证时使用。
从第三点我们可以推断出标识符必须是http(s)URL或XRI。