概要

CantaloupeのAccess Controlを試しましたので、備忘録です。

https://cantaloupe-project.github.io/manual/5.0/access-control.html

Bearer認証

以下を参考にしました。

https://cantaloupe-project.github.io/manual/5.0/access-control.html#Tiered Access

All or Nothing Access

認証情報が間違っている場合には、エラーを返却するものです。

以下のように、tokentestの場合は返却するようにしました。

defenahier}duefnetatiedthdhofnuoeekrdr''rraetenscidnotthz=eku{aaer=ertl(c&nnuloo.hsepnse=t_nttta=rcgie.aduoeoxsvre"ed'nteatrtes[ll_[e'='euw7s>=rcei.t=etst.">'{q{.hhB}uf?e4e)e|i(a0asnr'd1rtasBe,e_mterrhea.e,rlcaeehdvrnaeagrrltssuhe'et]|-="n1Ua]TmFe-.8d"o'wncase=='authorization'}

上記の挙動を確認するGoogle Colabを作成しました。

https://colab.research.google.com/github/nakamura196/000_tools/blob/main/Cantaloupeのaccess_controlのテスト.ipynb

実行した結果、以下のように、tokenが正しい場合は画像を取得でき、間違っている、または提供されていない場合には画像を取得できません。

Login with degraded access for unauthed users

iiif-auth-serverでは、未認証ユーザ向けに権限を制限したログイン、という例が提供されており、それをCantaloupeで再現してみます。

https://github.com/digirati-co-uk/iiif-auth-server

具体的には、認証情報が間違っている場合には、グレースケールの画像を返却します。誤っている点もあるかもしれませんが、以下のようなスクリプトを用意しました。

defedenenahrfrie{}dfuffe[dueeiefnriixftaqlttrd''eilltihdueuhoeslxeeeloeenrekttot=nnnerrsanaeuacraasnitmdnrtaaUmmiaz=_etenutcReeomeu,rr=sitI_ne(cru&t_o_.w=,ooiee.hrcnfpi=pnxseuo'iatFett=titaedlrhiFxieefade=es_litoxcnrei'>neeelentosftrfa(x.ens[nii_[="mutb.s'tolw7t>#ereaei=renei.o{_insxoexnt.k3ra_setn{qt=ahe0ensinn]}u[m?1n2qdtoaa)e'ee(],u_rnmmsrx'=ee)eetet=B=sx=((_qr=ettffhuaa"_euiieec"rtunrllastgeersieedt_rrsii.nne_fat.opaaruiy"snammsrl"u(tee'iebuh__]'n(r.ww.]afisiifmi_pttielslhhn_eti__danrteena)(xx{dm"tt_e/ee|e"nnnx+)ssat.iimeelooenxann,sts,)ietvon"ans.l(i*uro"een)|q,u#ne"asgUmtrse_ae.uydr#"oi{.w)e*nx"ctaetsnoesir=oe=nm}o'"va)eu}t"ahnoyriezxatteinosni'on}&.last

Google Colabの実行結果は以下です。未認証ユーザにはグレースケールの画像が返却され、認証ユーザにはカラー画像が返却されます。

まとめ

上記のような機能を使用して、IIIF Authentication APIの実装を試みたいと思います。