複数の Web サイト (sitea.com、siteb.com、sitec.com) に対してシングル サインオンを作成したいと考えています。すべてのサイトは同じ会社のものです。どのデータベースも同じ会社/場所にあります。一部は asp.net Web アプリで、一部はフォーラムです。SSO を抽象化して、1 つのサイトに絡まらないようにしたいと思います。以下に私のアプローチの概要を示します。
- ユーザーは、ユーザーを認証する sitea.com にサインインします。sessionid は、sitea.com によって作成されます。
- ユーザー名とセッション ID とともに Cookie がユーザーのマシンに配置されます。sessionid は、すべてのサイトがアクセスできるデータベース centralAuthDB に挿入されます。
- ユーザーは、siteb.com (フォーラム) への SSO を行う sitea.com のリンクをクリックします。
- siteb.com は、Cookie からユーザー名とセッション ID を取得します。その後、siteb.com はこれらの資格情報を centralAuthDB に対してチェックします。
- centralAuthDB との照合が行われ、SSO が認証されます。ただし、フォーラム (siteb.com) にも独自のユーザー データベースがあります。ユーザー名もこのデータベースでチェックされ、ユーザーはフォーラムにシームレスにログインできるようになりました。
上記は安全で実用的ですか?
認証情報を webservice 経由で centralAuthDB に送信する必要がありますか?
クッキーには一般的な名前が必要ですか? 次に、ユーザー名とセッション ID の値がこの Cookie に配置されますか?