Details-of-UX-Best-Practices-for-OPs

はてダ移行後、ちゃんとした記事はこれが一発目。

OpenIDwikiでこんなの見つけました。

立場上、OPのほうから読んでみる。

OpenID Wiki / Details-of-UX-Best-Practices-for-OPs

□ Overview

We RECOMMEND that OPs support login and consent pages that fit in a small popup browser window, which will be displayed on top of the RP's page.

RP画面の上にポップアップで出される小さいブラウザウィンドウにうまくはまるようなログイン、同意画面をサポートすることを勧めると。

◆ Login Page - ログイン画面
http://wiki.openid.net/f/popup.png

表示する項目はこんな感じですねと。

Site Name
What is happening
Options
User id
Password
Legalese
Ok/Cancel buttons

この説明はあとで。

When to Show the Login Page

Generally, it is preferable to show the Consent Page over the Login Page, since users don't have to type their user id and password in the Consent Page. There are, however, some instances in which an OP may decide to show the Login Page:
* When the user is not already logged into the OP
* When the RP requests fresh authentication via the PAPE OpenID extension: http://openid.net/specs/openid-provider-authentication-policy-extension-1_0.html
* When the OP has policies that require fresh login in certain circumstances (e.g. when OAuth tokens are requested along with the OpenID request)

こんな時はOPはログイン画面を出すかもしれませんねと。

  • ユーザーがまだOPにログインしてないとき
  • RPがPAPEを経由してリクエストをフレッシュな認証を要求する
  • OPが特定の状況でログインを求めるポリシーを持っている

Yahoo!Yahoo! JAPANを使ってると、「PW再確認」っていう状態がたまにありますね。
これも3番目のポリシーの一つですかね。

◆ Consent Page - 同意画面
http://wiki.openid.net/f/popup_auth.png

Site Name
What is happening
Options
Legalese
Ok/Cancel buttons

項目についてはあとで。

When to Show the Consent Page

The Consent Page is shown in two different circumstances:
* When the OP determines that no fresh authentication of the user is necessary. In this case, the Consent Page is the only page the user will see in the popup window.
* When the OP showed the Login Page, and determined that further communication with the user is necessary in order to properly explain to the user what's happening. In this case, the user will see first the Login Page, and then the Consent Page.

同意画面が表示されるのは2つの異なるケースがありますねと。

  • OPがユーザー認証不要と判断した時、同意画面だけが出ますねと。
  • ログインページが表示され、ユーザーに何が起こっているかを説明することが必要だと判断した時、ログイン画面の後、同意画面も出ますねと。

■ Page Layout

□ Site Name

省略

□ What is Happening

Here we explain to the user in general terms what's about to happen. Proposed Language
* (for the case in which the RP simply requests OpenID authentication, without requesting user attributes or OAuth tokens): "Sign in to RelyingParty.com with your Yahoo! account."
* (for the case in which the RP requests additional access, such as user attributes or OAuth tokens): "Connect RelyingParty.com with your Yahoo! account."
This section should also show the branding of the RP and OP, and graphically suggest to the user what's happening (NEED TO FILL THIS OUT MORE).

ユーザーに何をしているかを説明する。

  • 属性情報やOAuth Tokenを渡さない場合、「Sign in to RelyingParty.com with your Yahoo! account.」
  • 属性情報やOAuth TokenをRP要求している場合、「Connect RelyingParty.com with your Yahoo! account.」

日本語の言い回しが難しいので、訳すのやめた。
OPとRPの情報は明示し、何が起こっているかをちゃんと伝える。

□ Options

What is Happeningの部分以外の説明って感じかな。省略。

This section SHOULD not be more than 5 lines of text at 450 pixels of window width.

なるべくはみだすなってことか。

□ User ID/Password (Login Page Only)

ログインボックスは普段使ってるやつがいいですね。省略。
フィッシング対策についてはあとで説明してるっぽいのでここには書いてない。

□ Legalese

Proposed text (would have to be approved by OPs legal department):

* (for the case in which the RP does not request OAuth access): "RelyingParty.com is not owned, operated, or controlled by IdentityProvider.com. Learn more"
* (for the case in which the RP requests OAuth access): "You can always change your approval settings on the My Account page. RelyingParty.com is not owned, operated, or controlled by IdentityProvider.com. Learn more"

こんな感じがいいのではと。

  • OAuthアクセスを要求していないとき:"RelyingParty.com is not owned, operated, or controlled by IdentityProvider.com. Learn more"
  • OAuthアクセスを要求しているとき:"You can always change your approval settings on the My Account page. RelyingParty.com is not owned, operated, or controlled by IdentityProvider.com. Learn more"

OAuthが絡む場合は、同意を取り消すことができるんですよってことをちゃんと伝えましょうと。
まぁ、普通ですよね。

なんか、Hybridで使われることが前提に近い扱いになっていることが気になる。
まぁ、最初から考えておくのはいいことですが。

□ Ok/Cancel Buttons

Proposed text:

* (for the case in which the RP simply requests OpenID authentication, without requesting user attributes or OAuth tokens): "Sign in"/"Cancel"
* (for the case in which the RP requests user attributes, but no OAuth tokens): "Share"/"Cancel"
* (for the case in which the RP requests OAuth tokens): "Connect"/"Cancel"

省略。

英語だとこれでいいけど、日本語だとさらに、「同意する」とか「続ける」とか言い回しはけっこう悩むところだと思う。
変な感じにすると使ってもらえないだろうから、共通で使えるような日本語のガイドライン作ればいいのか。ん?誰が?

■ UX Flow

ポップアップについてなにやらたくさん書いてある。

From the request, it should determine whether it should display only the Login Page, only the Consent Page, or both (one after the other).

* If the user cancels on the login page, the OP MUST simply close the window.
* If the user signs in on the login page, and no Consent Page needs to be shown, the OP SHOULD redirect to the RP's return_to URL (with a success state).
* If the user signs in on the login page, and a Consent Page needs to be shown, the OP will show the Consent Page next.
* If the user approves on the Consent Page, the OP SHOULD redirect to the RP's return_to URL (with a success state).
* If the user cancels on the Consent Page, the OP MUST do one of two things:
o redirect to the RP's return_to URL (with a failure status) - this is RECOMMENDED; or
o simply close the window.

When the OP receives an auth request without the openid.ux=popup parameter, it SHOULD display a UI, and handle user actions, in a way suitable for the full-frame redirect flow.

ログイン画面も必要か同意画面だけでいいか決めるべきと。

  • ログイン画面上でキャンセルした場合、OPはウィンドウを閉じる
  • ログイン処理成功後、同意画面を出す必要がなければRPのreturn_toにリダイレクト
  • ログイン処理成功後、同意画面を出す必要があれば次に進む
  • 同意画面の処理が成功した場合、RPのreturn_toにリダイレクトする
  • ユーザーが同意画面でキャンセルした場合、OPはどっちかですねと。
    • return_toに失敗のステータスを返す
    • 単純にウィンドウ閉じる

ポップアップじゃない場合は、フルフレームでほげほげ。

■ Security Considerations

The OP SHOULD insert frame busting code into its Consent Page, and MAY also insert frame busting code into its Login Page.

OPは同意画面にフレームバーストのコードをいれとくべき。
ログイン画面にも入れてもいいかもしれない。

ログイン画面のほうがMAYなのはなぜ?
フレームOKなログイン画面ってやばくない?と、思う。

■ Announcing Popup Support

OPはpopupをサポートすることをアナウンスせよと。

OpenID 2.0 Discovery

"http://specs.openid.net/auth/2.0/ux/popup"をXRDSに入れろと。

例:





http://specs.openid.net/auth/2.0/server
http://openid.net/srv/ax/1.0
http://specs.openid.net/auth/2.0/ux/popup
https://www.google.com/accounts/o8/ud


今後、Implementers' Draft: OpenID User Interface Extension 1.0 - DRAFT 0.4が策定されたら"http://specs.openid.net/extensions/ui/1.0"になるんだろうか。

□ Next-Generation Discovery

XRDの話がいろいろあるみたいですが、その辺のからみかな。
疲れたので読みたくない(言い訳)。

Googleの例だと最終的に https://www.google.com/accounts/o8/xrd にこんなのが書かれる感じ。


https://www.google.com/accounts/o8/ud
http://openid.net/srv/ax/1.0
http://specs.openid.net/auth/2.0/ux/popup