Symfony2のセキュリティの概念について基本的な理解があります。現在、マルチドメイン Web サイトにシングル サインオン機能を実装しようとしています。
SSO の概念自体はかなり単純です。
- ドメイン A は Cookie ドメインです。ユーザーはこのドメインにログインできます
- ドメイン B にログインすると、ユーザーはドメイン A にリダイレクトされ、そこでワンタイム パスワードが要求されます。ユーザーがこのパスワードを取得するには、ドメイン A でのセッションが必要です。
- OTP を取得した後、ユーザーはドメイン B に戻され、OTP がドメイン A のセッションに一致します。
- 一致した場合、ドメイン B のセッションが作成されます。セッションは、この時点以降の後続の各要求について、ドメイン A のセッションに対して検証されます。
ドメイン A のファイアウォール/認証の実装は、通常どおりに実行できます。私の理解では、次のことを行う必要があります。
- ドメイン B のファイアウォールをセットアップする
- このファイアウォールのリスナーを作成し、何らかの方法でユーザーをドメイン A にリダイレクトします (より具体的には、OTP を要求する uri)。
- OTP を処理し、ドメイン B のセッションを作成する認証プロバイダーを作成する
- ドメイン A のセッションに対してセッションの有効性をチェックする別のリスナーを作成します。
ただし、バンドルでこれを行う方法については、いくつかのヒントを実際に使用できます。誰かがここで私を助けることができれば、それは素晴らしいことです.
また、OTP を実装する方法や、2 つのセッションを比較して両方が有効であることを確認する方法もまだわかりません。それは後で説明します。まず、このワークフローを機能させる必要があります。