Drupalで人間の顔をしたOpenID

Drupalのバヌゞョン6以降、OpenIDモゞュヌルにはシステムが付属しおおり、OpenIDプロトコルを介しお認蚌を提䟛したす。 しかし、モゞュヌルには非垞に深刻な問題がありたす。 特に、モゞュヌル自䜓はIvan Sagalaevのブログで説明されおいるアンチパタヌンを実装しおいたす。 モゞュヌルの2番目の問題は、䜿いやすさの芳点から、OpenIDによる非透過的な認蚌です。さらに正確に蚀うず、OpenIDアカりントを介しお初めお認蚌しようずするず、システムはいく぀かのフィヌルドに入力するように芁求したす。



䞀般に、少数のフィヌルドに入力するこずに぀いお本圓にひどいこずはありたせん特に、堎合によっおは䞀郚のフィヌルドが自動的に入力されたすが、それに぀いおは以䞋で詳しく説明したす。この理由はDrupalアヌキテクチャです。 OpenIDアカりントは、実際のDrupalアカりントに関連付けられおいたす。 OpenIDプロバむダヌでの認蚌が成功するず、DrupalはOpenIDアカりントずDrupalアカりントの察応を芋぀けようずしたす。 そのような䞀臎が芋぀からない堎合-システムは新しいアカりントを登録するこずを提案したすが、そのためにはいく぀かの必須フィヌルドに入力する必芁がありたす-䞀般に、これはシステムずメヌルアドレスの䞀意のナヌザヌ名です。 䞀臎が芋぀かった堎合、ナヌザヌはログむンしたす。 プロファむルでは、ナヌザヌは自分のDrupalアカりントに関連付けられるOpenIDアカりントをいく぀でも远加できたす。







DrupalのOpenIDの原理により、すべおが倚かれ少なかれ明確になりたす。 しかし、ナヌザビリティに関する質問は消えおいたせん-承認ブロックの䞋郚にあるリンクは、非垞に䟿利な゜リュヌションずは蚀えたせん。 䞊蚘で曞いたIvanのブログの投皿で、この問題を解決するための可胜なプロトタむプの1぀が提瀺されたした。これはDrupalで取り䞊げたした。



どのように、䜕が曞かれたか-この堎合、それは本圓に重芁ではないず思いたす-最終的に、すべおが゜ヌスコヌドの圢で配垃されたす。 ポむントに盎接行きたしょう-䜕が起こった=



そしお、特定のAPIのセットを䜿甚しお、特定のOpenIDプロバむダヌのフレンドリな可胜な限りサポヌトを接続できるシステムが刀明したした。さらに、プラグむンブロックデザむンテヌマの圢匏で远加機胜を远加したした。



すべおに぀いおもう少し詳しく、写真で=



Drupalでのモゞュヌルのむンストヌル方法に぀いお説明する必芁はないず思いたすが、必芁に応じお、このシステムの操䜜の基本に぀いお説明した前回の蚘事を読むこずをお勧めしたす。 したがっお、 OpenID ExtenisionsモゞュヌルをダりンロヌドしおむンストヌルするだけですOpenIDモゞュヌルに䟝存するこずに泚意しおください。 これでセットアップできたす。



[ナヌザヌ管理] -> [ OpenID拡匵機胜 ]に移動し、OpenIDプロバむダヌの蚭定に入りたす。







蚭定 Blocks =モゞュヌルからコピヌした機胜で、利甚可胜なプロバむダヌを接続/切断したり、シヌケンスを蚭定したりできたす。 埌者は、リ゜ヌスのほずんどのOpenID認蚌が、たずえばLiveJournalからのものであるこずを知っおいる堎合に䟿利です-LJを最初に配眮するず、ブロックが衚瀺されるペヌゞを読み蟌むずきにデフォルトで遞択されたす。 たた、そこにある[ テヌマ ]タブには、䜿甚可胜なトピックのリストが衚瀺されたす。 テヌマは、OpenID認蚌フォヌムの倖芳を決定したす。 基本的な配信およびこのブログ投皿を曞いおいる時点での他の配信は存圚したせん=には、2぀のトピックがありたす。







お気に入りのデザむンテヌマを遞択し、OpenIDプロバむダヌを構成したら、ブロック蚭定 サむトビルディング -> ブロック に移動し、 OpenID Extensionsずいうブロックを目的の領域に远加し、その䜍眮を蚭定し、必芁に応じおペヌゞにブロックを衚瀺するためのフィルタヌを構成できたす。 ロヌルごずに可芖性フィルタヌを蚭定しおも意味がありたせん。いずれの堎合も、ブロックは暩限のないナヌザヌにのみ衚瀺されたす。



OpenIDプロバむダヌでの認蚌に成功した埌、䞊蚘で曞いたように、初めおログむンしようずするず、Drupalはナヌザヌを登録ペヌゞにリダむレクトし、そこでフォヌムフィヌルドにプロバむダヌから受け取った倀を入力しようずしたす。 OpenIDプロバむダヌがSRESimple Registration Extensionを実装し、プロファむルに必芁なフィヌルドが入力されおいる堎合、登録フォヌムのこれらのフィヌルドは自動的に入力されたす。 たずえば、Yandexアカりントでは、必芁なすべおの情報が入力されおいたす-ログむンしようずするず、Yandexはexample.comリ゜ヌスの承認を蚱可するかどうか、およびこのリ゜ヌスぞの2぀のフィヌルド゚むリアスずメヌルの転送を蚱可するかどうかを尋ねたした。 登録手順が自動モヌドで正垞に完了した堎合぀たり、必芁なすべおのデヌタが受信され、怜蚌に合栌した堎合、ナヌザヌのDrupalアカりントが䜜成され、OpenID識別子が自動的に関連付けられ、ナヌザヌがシステムに自動的にログむンしたす。



必芁なデヌタが入力されおいない堎合、たたはプロバむダヌがそのようなデヌタを提䟛しおいない堎合たずえば、SREを実装せず、DruapalのOpenIDモゞュヌルでサポヌトされおいないAXのみ、Googleぱラヌを生成し、䞍足しおいるフィヌルドを手動で入力するよう求めたす。 たた、OpenIDプロバむダヌが゚むリアスを提䟛しない堎合、「ナヌザヌ名」フィヌルドにはOpenID識別子の倀が入力されたす。 この問題を解決するために、モゞュヌルは小さな回避策を提䟛したすが、それは特定のプロバむダヌでのみ動䜜したす-LiveJournalおよびYandexを䜿甚した基本配垃でのみ。 䞀般に、 OpenIDモゞュヌルにパッチを適甚するこずで、Googleからメヌルアドレスを取埗するこずができたため、将来的にはモゞュヌルの機胜を少し拡匵し、䞀郚のプロバむダヌでは暙準のハンドラヌを眮き換える必芁のある独自のハンドラヌを䜜成したす。 たた、最近機胜凍結モヌドに入ったDrupal 7の䞀郚であるOpenIDモゞュヌルに手を加える蚈画もありたした。 それたでの間、それは動䜜する方法で動䜜したす。



たた、 OpenID拡匵モゞュヌルは、 OpenIDモゞュヌルの背埌にあるいく぀かのポむントを「クリヌンアップ」したす。぀たり、これらのフォヌムをOpenID認蚌モヌドに切り替えるログむンブロックブロック内および別のペヌゞからリンクを削陀したす-プロバむダヌは暙準モゞュヌルの動䜜を繰り返したすモゞュヌルのむンストヌル時にデフォルトで有効になっおいる任意のOpenID 。



それだけです。DrupalでのOpenID認蚌の䜿いやすさの改善に぀いおお話しするこずはすべおです。 これたでのモゞュヌルは、 プロゞェクトセクションの私のWebサむトでのみダりンロヌドできたす 。 モゞュヌルが少しクリヌンアップされた埌、 drupal.orgで察䟡が支払われたすロシア語でこの蚀葉に䌌おいるずは思えたせん。



そしお最埌に、ちょっずした陰謀-このモゞュヌルはもずもずプロゞェクトのために開発されたもので、近い将来に光を芋るはずです。 プロゞェクトの発衚は公開されたす=



これですべおが確実になりたした=コメント/バグレポヌト/提案/コメントのお願いを楜しみにしおいたす。



脅嚁珟圚、いく぀かのDrupalテヌマでのアコヌディオンの倖芳の衚瀺にはいく぀かの問題がありたす。 特に、デザむンはLightWordテヌマでは正しく機胜したせん。



UPDこのモゞュヌルは珟圚drupal.orgでコヌドレビュヌフェヌズを実斜䞭です。



UPD2 Googleでログむンしようずするず゚ラヌが発生する堎合、Googleはhttpsを䜿甚するため、OpenSSLサポヌトを䜿甚しおPHPを構築する必芁がありたすubuntでは、opensslパッケヌゞをむンストヌルするだけで十分です。



UPD3バヌゞョン0.6.5に曎新、その䞭

-新しいプロバむダヌ「Chi.mp」を远加したした

-プロバむダヌの可甚性を確認する機胜を远加

-googleずchi.mpのチェックを実装したした-プロバむダヌの管理で通知されるopensslサポヌトがない堎合、䞡方ずも利甚できなくなりたした。



All Articles