0

複数のサブドメインアプリケーションにログインして管理者や単純なユーザーにしたいと考えています。管理者はすべてのサブドメインにアクセスできる必要があります(つまり、セッションはすべてのサブドメインで使用できるCookieに保存する必要があります)。ユーザーは、彼らだけがログインサブドメインへのアクセス権を持っている必要があります例えばのでドメインやサブドメインのCookieユーザーセッションを持つ1つのRailsアプリケーションに含めることは可能ですか?

:。

管理におけるいずれかのドメインのURLで「管理者」の標識に(mydomain.com)、または任意のサブドメインで(例えばabc.mydomain.com)、すべてのサブドメインにログインしたままになります。彼( "管理者")することができますので、アクセスefg.mydomain.com、abc.mydomain.com、mydomain.comなどなど

ユーザーabc.mydomain.comの中 "simpleuser" 看板。彼( "シンプルユーザ")はこのサブドメインにしかアクセスできません(つまり、クッキーはabc.mydomain.comサブドメインにのみ関係します)。

私は、サブドメインまたはドメインのいずれかにクッキーに関連付けることができますが、私は同じアプリケーションでこの動作を混在させたいと思います。誰かがアプローチを知っていますか?

この

はRailsの3

のために、私は自分のアプリケーション(つまりカンカンまたは宣言による認可を介して)を通じてサブドメインへのアクセスを制限したくないです。理想的には、アクセスはCookieを介してサブドメインレベルでブロックする必要があります。私は、サイトへのアクセスを制御するソフトウェアをもう1つ設定する必要がないので、これはより安全なアプローチだと考えています。

答えて

0

すべてのサブドメインで有効なCookieが必要ですが、権限を使用してサブドメインにアクセスできるようにユーザーを制限します。

cancanのようなものがあります。あなたが管理者の場合、すべてにアクセスできますが、そのユーザーがアクセスできるのはそのユーザーだけです。 ability.rb クラスの能力 で

あなたapplication_controllerで

before_filter :authorize_me 

def authorize_me 
    @user = User.find_by_subdomain(request.subdomain) 
    authorize! :administer, @user 
end 

カンカンが含ま::これが解決策である能力

def initialize(user) 
    user ||= User.new 

    can :manage, :all if user.admin? 

    can :administer, User do |new_user| 
     new_user.id == user.id 
    end 
    end 
end 
+0

は確か。しかし、クッキーを制限することでユーザーを厳密にサブドメインに保つことは安全ではないでしょうか?特定のサブドメインに対してcancanで認証するのではなく、そのサブドメインを認証しないことで、アクセスを制限したいと思います。 – Dimitris

+0

私はもっと安全だとは思わない。あなたがそうしたら、それのために行く。 –

関連する問題