OpenID 2.0 で setup_needed が返ってきたときにどうすればいいか

昨日の記事で、OpenID 1.1 の際にsetup_neededを返す場合にはuser_setup_urlを返せばいいんだよっていうのをid:ZIGOROuさんから教えてもらったのですが、OpenID 2.0 でsetup_neededが返ってきた場合にはuser_setup_urlがないのでどうしたらいいのかがわかりません。

と思ったのですが下記のURLの説明を見ると、その場合にはRPは「checkid_setupモードでやりなおすべきである」って書いてありました。
でも自信がない…。この理解で合ってるんだろうか…。

http://openid.net/specs/openid-authentication-2_0.html#rfc.section.10.2

もしそうであれば、Net::OpenID::ServerのSYNOPSISは下のようにuser_setup_urlが取れなかった場合のsetup_needed modeの際にcheckid_setupをやりなおす分岐を示してやるべき(だと思うんだですがどうでしょう)。

         if (my $setup_url = $csr->user_setup_url) {
              # redirect/link/popup user to $setup_url
         } elsif ($csr->message->mode eq 'setup_needed') {
              # re-construct checkid_setup mode
         } elsif ($csr->user_cancel) {
              # restore web app state to prior to check_url
         } elsif (my $vident = $csr->verified_identity) {
              my $verified_url = $vident->url;
              print "You are $verified_url !";
         } else {
              die "Error validating identity: " . $csr->err;
         }

ちなみに、mixiなどはOpenID 2.0でcheckid_immediateしても、setup_neededとuser_setup_urlが返ってくることから、おそらくNet::OpenID::Serverのバージョン1.1を使ってるんじゃまいか(あくまで予想)。