2011-07-09 3 views
0

UI側ではFlex 3、BlazeDSではjava @ theサービス層でコーディングされたアプリケーションがあります。ここで、データベースに定義されているロールに基づいてシステムにアクセスするユーザーを認証する必要があります。たとえば、role guestのユーザーはuiのAdminタブにアクセスできなくてはならず、何もできないはずですダッシュボードに表示されているデータを表示する以外の操作を行うことができます。また、ここで注目すべき点は、スーパーユーザーがUIからロールを動的に作成できることです。Flexで既存のアプリケーションのロールベースの認証を実装するための提案

私は、このアプローチではRole Based Authentication & Authorization

を実行する方法について説明し、このリンクを経由して来た私は、サービス-config.xmlでの役割を定義する必要がありますが、私の役割は、事前に定義されていないので、私はこれで行くことができません。

誰もが同様の状況に遭遇しましたか?どのポインタも大きな助けになるでしょう。

+0

私はTAT受け入れます。入力いただきありがとうございます – Arun

答えて

2

はい、私はservice-configのアイディアが嫌いです。あなたを責めないでください。

フレックス側では、許可を定義するだけで、役割やユーザーはもちろんのことではありません。

優れたフォームベースのセキュリティでは、ユーザー、ロール、およびアクセス許可を定義する必要があります。あなたはおそらくこれを知っていますが、とにかく質問でそれを大声で言うのは良いでしょう。アプリの作品 -

  • ユーザーが
  • 役割は、だから、安全機能

一つ以上の権限に

  • 権限を割り当てられている1つ以上のロールが割り当てられ、あなたのアプリケーションでは、あなたが特定の権限を定義します可視/不可視/実行不可能なセキュリティに依存しています。私が通常これを行う方法は文字列定数です。だから、注文管理の状況では、私はCanCreateOrderCanViewOrderCanCancelOrderCanFlagOrderを持っているかもしれません。

    サーバー側では、役割はこれらのアクセス許可に関連付けられます。言うことができます:

    • 管理者は、すべての
    • たCustomerServiceビューを行うことができ、かつフラグ
    • お客様は、サーバー側でそうビュー

    を行うことができ、管理者であるユーザA、取得を行うことができます割り当てられた役割に関連付けられたすべてのアクセス許可のリスト。したがって、サーバーはこのような文字列を返します。

    ユーザーが認証されてliを取得すると、 st、それは静的なグローバル変数に格納されています(または配列などに.split()します)。

    次に、可視性や個々のアイテムへのアクセスを確認するには、その配列または値の文字列をチェックするだけです。

    これは、定義している項目として多くの柔軟性を提供します。最も重要なのは、基本的にハードコーディングしているアクセス許可()は、それらが存在する機能コードに固有のものです。したがって、調整する必要はありません。

    したがって、カスタマーサービス担当者に後で注文をキャンセルできるようにするには、その権限にその役割を結び付けるだけです。完了しました。コードは変更する必要はありません。ユーザーがロールではなく、単にその機能に結びついているだけなので、コードを変更する必要はありません。

    私は多くのアプリケーションでこれを行っています。あなたが他の鍵と縛られた許可を必要とするならば、それはやや異なる話ですが、これは関係なく良い出発点です。

    意味がありますか?

    **当然、セキュリティ交換を暗号化し、SSLを介して送信することができ、そのトランザクションを確保することは議論の範囲外である。)

  • 関連する問題