1

私はSymfony2に比較的慣れていません。データベースからユーザーを認証することにより、Symfony2の組み込みのセキュリティメカニズムを使用してシステムを構築しました。このシステムを「B」と呼びましょう

同じ資格情報を使用する別のサーバー上のasp.netにアプリケーションがあります(そのシステムからusersテーブルをコピーしました)。このシステムを「A」と呼びましょう。ユーザーが ASP アプリケーションのリンクをクリックして Symfony2 アプリケーションにリダイレクトし、ログイン資格情報を再入力することなく自動的に認証することは可能ですか?

私は、システム「A」のプログラミングを制限して制御しています。システム A からシステム B でユーザーを認証するために使用できる単一/静的/事前定義の暗号化されたユーザー資格情報を持つことは可能ですか (もちろん、ユーザーのタイプをデータ パラメーターとして提供するため、システム B のユーザーを次のように制限できます)。彼/彼女の許可されたタスク)。認証が完了すると、ユーザーはシステム B のログイン ページを使用してログインしたかのように、symfony2 アプリケーションと直接やり取りできるようになります。

より明確に言えば、イベントの流れは次のとおりです。

  1. ユーザーが ASP.NET システムにログインします。
  2. ユーザーがリンクをクリックすると、Symfony2 アプリケーションにリダイレクトされます
  3. ユーザーは自動的に認証され、Symfony2 アプリケーションへの役割に基づいてアクセスできます

Symfony Server でユーザー データベースを維持できないことに注意してください。利用可能なさまざまなユーザー タイプに関する情報のみを提供します。

Symfony2 メソッドのカスタム認証プロバイダーを調べましたが、クライアント/ユーザーを完全に Symfony2 アプリケーションにリダイレクトするという目的を解決できるかどうかはわかりません。Web サービスの認証方法に似ていましたが、間違っている可能性があります。

これを達成するためのより良いオプションはSAMLですか?

4

1 に答える 1

0

まず第一に、これは一種の解決された問題です。OAuthのようなものが存在するのには理由があります。独自のソリューションを作成する前に(そしてセキュリティの影響に対処する前に)、それを調べることをお勧めします。

しかし、あなたの質問に答えるために:

システム「A」で何かを変更できなければ、これを行うための安全な方法はないように思われます。どういうわけか、Symfonyアプリは、システム「A」から認証できるように、推測できないハッシュトークンを取得できる必要があります。それ以外のものは安全ではありません。

理想的には、システム「A」のSymfonyアプリにユーザーを送信するフォームを作成し、ユーザーのユーザー名とセッションなどからハッシュを作成し、ユーザーをSymfonyアプリにリダイレクトするときに(つまり、URLで)ユーザーと一緒に送信します。 params:のようなものhttp://symfony-app.com/login?token=[the really long, un-guessable hash]。システム「B」はそのハッシュを限られた期間データベースに保存し、Symfonyアプリはそのハッシュに対して認証します。

于 2012-08-24T22:34:09.983 に答える