クラウドベースのCRMシステムのクライアント数とさまざまなソフトウェア構成の数を拡張する場合、特定の従業員が利用できるすべての構成への着陸サイト(メインサイト)からのシングルサインオンを整理する必要が生じました。
構成とは、独自のデータベース(MySQL)を持つ別のサブドメイン(たとえば、conf1.acme.com)にあるCPMシステムの別のインスタンスを意味します。 すべての構成で、常に同じまたはほぼ同じ構造のユーザーテーブルがあります。「ログイン」フィールドと「パスワード」フィールドは常に同じタイプです。 1つの構成内で、複数の組織が利用できる場合があります。特定のタイプのドキュメントはリンクされ、特定の組織でのみ利用できます。 同じユーザーが、同じ構成の複数の異なる組織のメンバーになることができます。
ランディングページ(acme.com)には、ログイン/パスワード入力フォームがあります。
サードパーティのサービスを引き付けないために、すべての構成へのシングルサインオン用の内部ソフトウェアソリューションを開発することが決定されました。 サイトのデータベースにアクセスしているMySQLアカウントは、構成データベースのユーザーテーブルへの読み取りアクセス権を持っていると仮定されます。 さらに、パスワードリセットフォームでは、ユーザー構成テーブルのパスワードフィールドおよびパスワードリセットハッシュへの書き込み権限をアカウントに付与する必要があります。
構成のリストは、メインサイトのデータベース構成テーブルに入力されます。
承認中に、次のアクションが発生します。
1.ユーザーはサイトでユーザー名とパスワードを入力し、「ログイン」ボタンをクリックします。 構成テーブルによると、構成ユーザーテーブル内のユーザー名とパスワード、および構成組織内のそのようなユーザーの存在に一致する要求が送信されます。
2.ユーザーが使用できる構成と組織のリストが作成され、返されます。 一致するものが見つからない場合、「無効なユーザー名/パスワード」というメッセージが表示されます。
3.必要な構成と組織をクリックして、システムに入ります。
このアプローチの利点の1つは、特定の秘密と考えることができます。同じログインを持つユーザーは、異なる構成で異なるパスワードを持つことができます。 ログインと1つのパスワードを入力する場合、別のパスワードを使用した構成は表示されません。 これは、たとえば、ある顧客の存在下で別の顧客が存在することを示すことができない場合に役立ちます。 残念ながら、これと同じ点は欠点に起因する可能性があります。多くの異なるパスワードを覚えておく必要があり、シングルサインオンの意味が失われます。
このようなモデルに新しいCPM構成を追加するには、構成テーブルに対応する行を入力し、構成データベースに前述の権限を登録するだけで十分です。
削除するには-対応する行を構成テーブルから削除するだけです。
このモデルの場合、構成を他の利用可能なものに素早く変更することができます。 たとえば、構成2から構成1にすばやく移動できます。または、同じ構成の組織を切り替えることもできます。 この場合、スクリプトの動作を保証するには、MySQL構成アカウントに構成テーブルを読み取る権利を与えるか、メインサイトのMySQLアカウントを介してこのテーブルにアクセスする必要があります。