守破離でいこう! -Let's go with SyuHaRi!-

2008/04/25

ホスト名とOpenID

Rails で OpenID を試してみようと思って思わぬところで躓いたのでメモです。

ホスト名に使用できる文字は、英数字文字(a-zA-Z0-9)および、ハイフン(-)となっています。

ホスト名について

ホスト名(hostname)は,[RFC1034]の3.及び[RFC1123]の2.1 で示される形式をとる。すなわち,"."によって分離されたドメインラベルの列であって,各々のドメインラベルは,英数字文字(alphanum)で開始及び終了し,"-"文字を含んでもよい。完全限定ドメイン名の最も右にあるドメインラベルは,数字で始まってはならない。そのために,IPv4アドレスとは構文的に区別されるドメイン名になる。

Uniform Resource Identifiers (URI): Generic Syntax: Main(日本語)

テストのために自分のOpenIDを取得したのですが、これがまた、上で述べたルールに反したものを取得してしまいました・・。

取得したIDは、「ishikawa_rs.openid.ne.jp」なのですが、アンダーバーが入っています><

このIDをOpenIDのプラグインであるopen_id_authenticationに通すと、「ishikawa_rs.openid.ne.jp is not an OpenID URL」と言われてしまいます。

エラーが発生するところをirbで再現してみると下記のようになります。

irb(main):001:0> require 'uri'
=> true
irb(main):002:0> url = "ishikawa_rs.openid.ne.jp"
=> "ishikawa_rs.openid.ne.jp"
irb(main):003:0> uri = URI.parse(url.to_s.strip)
=> #
irb(main):004:0> uri = URI.parse("http://#{uri}") unless uri.scheme
URI::InvalidURIError: the scheme http does not accept registry part: ishikawa_rs
.openid.ne.jp (or bad hostname?)
        from c:/ruby/lib/ruby/1.8/uri/generic.rb:195:in `initialize'
        from c:/ruby/lib/ruby/1.8/uri/http.rb:78:in `initialize'
        from c:/ruby/lib/ruby/1.8/uri/common.rb:488:in `new'
        from c:/ruby/lib/ruby/1.8/uri/common.rb:488:in `parse'
        from (irb):4
irb(main):005:0>

bad hostnameです。

そもそも、なぜこのIDになったかというと、「ishikawa.rs」にしようとしたところ、「ドット(.)はだめです。アンダーバー(_)は使えるよ。」と言われたからでした・・。

OpenIDを取得する際、ユーザIDがホスト名になる場合はご注意ください。

※そして、困ったことにopenid.ne.jpではアカウントの削除ができないようです。

ラベル: ,

automatically translated by Google Translate Hack!

naoki 21:57
HaloScan: |

0 Comments:

Add a comment