flickr のアクセス制御

以下は自分で試して調べたメモなので仕様としてどうかは未確認。

基本: 画像そのものは public

flickr のアクセス許可は写真を表示するページに対するもので画像そのものにはアクセス制御がない。private な写真でも画像の URL に直接アクセスすれば見えてしまう。もっとも、画像の URL には予測困難なものが使用されており、写真ページの URL が知られても直ちに画像にアクセスされることはないだろう。

アクセス許可の種類

flickr のアクセス許可には大きくわけて private / public の 2 つがあり、private は何らかの形でアクセス可能なユーザが制限され、public は誰でもアクセスできる。

private には friends, family のオプションがある。何もオプションをつけなければ自分だけしか見えない純粋なプライベートで、friends を選択していれば自分が friend と設定したアカウントからアクセス可能になり、family を選択していれば自分が family と設定したアカウントからアクセス可能になる。friends, family は同時に選択することもできる。

このように friends, family のオプションはログイン中のアカウントと自分のアカウントとの関係によってアクセスが許可される仕組みだが、後述する Guest Pass 機能によって flickr アカウントを持たない人にもアクセス許可を与えることもできる。

アクセス許可のない写真やセットの見え方

アクセス許可のない写真は photostream には表示されない。また、アクセス許可のない写真だけからなるセットはセット一覧に表示されない。つまり、アクセス許可のないユーザには写真やセットの存在自体が見えないようになっている。

もっとも、アクセス許可のない写真やセットの URL に直接アクセスすると "This page is private." というエラーページが表示される。URL が無効な場合は "This is not the page you're looking for." というエラーになるので区別がつく。写真やセットのタイトルや説明は表示されないが、そこに private な写真やセットが存在している、ということはわかる。

アクセス許可のある写真が混ざっているセットはセット一覧に表示される。その場合、セットのアイコンはアクセス許可のある写真から選ばれる。含まれる写真の数にはアクセス許可のある写真のみをカウントした数が表示される。

Guest Pass

Guest Pass は flickr アカウントを持たないユーザ、あるいは friend でも family でもないユーザにアクセス許可を与える仕組み。Guest Pass を発行すると専用の URL (以下 GP URL)が生成され、その URL から private な写真にアクセスできるようになる。発行した Guest Pass は後から取り消す(expire)することもできる。

GP URL は単なる秘密の URL で、アクセスの際には一切認証は要求されない。GP URL が公開されてしまうと事実上 public になってしまうので注意。さすがに GP URL 一つで全ての private 設定が無効になってしまうのもマズいので、Guest Pass は写真単位やセット単位でも設定できる。

GP URL へのアクセス

GP URL にアクセスすると、写真やセットの本来の URL にリダイレクトされる。GP URL にアクセスすることでセッションが生成され、以後 Guest Pass の権限を持つ一時アカウントで flickr にアクセスする事になるようだ。flickr アカウントにログインするか、他の Guest Pass の GP URL にアクセスすると、以前の Guest Pass のセッションは切れる。

Guest Pass セッションによるアクセス中は、画面上部にどの Guest Pass でアクセスしているかが表示される。例えば、セットに対する Guest Pass でアクセスしていると、"You're surfing around Flickr on a Guest Pass to see {発行者名}'s {セット名} set." のように表示される。

写真やセットに対する Guest Pass

特定の写真やセットに限定した Guest Pass を発行したい場合は、対象となる写真やセットのページの右上にある [Share This] メニューで Guest Pass を発行する。

写真の Guest Pass は単純で、生成された GP URL にアクセスしたユーザは誰でもその写真を見ることができる。他の private な写真にはアクセスできない。

セットの Guest Pass はセット内にある複数の写真に対するアクセス許可で、生成された GP URL にアクセスするとセットのページだけでなく、セット内の写真のページにもアクセスできるようになる。

セット内の全ての写真ではなく特定の写真のみに Guest Pass によるアクセス許可を与えることもできる。セットの [Share This] メニューには [Friends] [Family] [Private (only you)] の三つのチェックボックスが表示されるが、チェックを入れた設定と写真に設定されたアクセス許可が一致する写真だけが Guest Pass アクセス許可が与えられる。

たとえば [Friends] のみチェックして発行した Guest Pass を使用すると、friends アクセス許可が設定された写真だけが見えて、純粋に(friends, family が設定されていない) private な写真や、family アクセス許可が設定された写真は見えない。

ただし、"Private(only you)" のみを選択して発行した Guest Pass でアクセスすると、Set の写真一覧には純粋に private な写真しか表示されないが、Set 内の他の写真の URL に直接アクセスすると見えてしまう。Set の写真の枚数も Set 内の全ての写真をカウントした枚数になっている。

Guest Pass の取り消し

メニューの [Contacts - Guest Pass History] で、これまで発行した Guest Pass の一覧が表示できる。ここで Guest Pass を選んで取り消し(expire)できる。

一度取り消すと元には戻せないので必要なら Guest Pass を再発行する。[Show Expired] で取り消した Guest Pass も一覧を表示すれば、取り消した Guest Pass がどの写真(またはセット)に対するものだったか確認できる。