0

大企業は、一元化され、ユーザーが実行できること (特定の Web サービスの呼び出し、注文の送信など) や UI (ボタン、メニュー オプション、個別の無効化など) を推進するために使用されるセキュリティ要件をどのように実装していますか?フォーム フィールド)?

RBAC アーキテクチャを検討しています: ユーザー -> 役割、役割 -> 特権。

多くの個々の field-account-user-role-amountThreshhold に基づく権限を持つ複雑なアプリケーションには、非常に多くの「役割」があり、役割の数が増えるにつれて、これの管理が複雑になります。

これらの考えられるすべてのオプションを管理するのは大変なことのように思えます。私の以前の経験では、そのようなロジックをアプリケーションにハードコーディングしていました。

元:If (User.Roles("IsAccounting")) { btnEditOrder.enabled = false; }

私は、あらゆる/すべてのアプリケーション (すべて.NET、一部の GUI および一部のプロセス指向) の共通の認証/承認ポイントとして使用されるセキュリティ サービス/アーキテクチャの設計/実装を任されています。

これは、クライアント アカウントに関するビジネス組織と、金額に基づく権限階層のため、すぐに使用できるものではありません。

例: John はユーザーであり、アカウント "Microsoft" および "Google" の要求を表示および送信できます。Mike は "Microsoft" と "Google" の要求を表示できますが、"Google" の要求しか送信できません。

アカウント/ユーザーの数は多く、可変です。

RBAC に従うと、必要なすべての権利 (特権) に対応するために何百もの「役割」が存在することになります。管理者が直属の部下を適切な役割に割り当てることができるように、管理しやすい GUI ツールを提供することが最終目標であるため、これは役に立ちません。

私は、次の API を使用してこのセキュリティ ピースを実装することを考えていました (疑似コードのラフ ドラフト)。

UserContext securityContext = Security.GetContext(userID, userPwd);

アプリケーションでの使用法は次のようになります。 if (securityContext.RequestManager.CanSubmitRequest("Google")) {...}

このようにすると、パーミッションをチェックするための「Can(params)」メソッドが何千も存在することになり、このパターンの管理や使用が容易になりません。

リンク/アイデア/ポインタは大歓迎です。

これは .NET ショップですが、.NET (Membership / AzMan) からは、必要な粒度と委任の要件を提供してくれるものは何もありません。ActiveDirectory と Oracle LDAP の統合は便利ですが、必須ではありません。

古い (現在の) システムは LDAP を使用してユーザーを認証しますが、すべての承認は社内で行われ、従来の「ユーザー、ロール、権利」テーブルに保存されます。

4

1 に答える 1

0

大規模な組織内に複数のアプリがあり、ほぼ同じ要件がありました。

  • 認証と承認のために複数のアプリケーションを保護し、これらのアプリケーションが .net であるかどうか、GUI ベースであるかプロセス指向であるかに関係なく、これらすべてのアプリケーションを同じ中央の場所から管理します。

  • 実行中のアプリケーションは、インターネット ベースまたはイントラネット ベースの場合があります。

  • アプリケーションは、認証と承認のために AD ユーザーまたはフェデレーション ユーザーをサポートする必要があります。

  • 多くの「ロール ベース」または「権限ベース」のセキュリティまたはカスタマイズを適用します。

元。機能の有効化/無効化 - ボタンの有効化、ボタンの無効化、一部のメニューの非表示、コントロールの背景色の変更、.net コンポーネントの .net 対応プロパティの変更など。

  • 認証と承認のための安全な Web サービスまたは wcf サービス

  • グループおよびユーザー管理を介して、マルチテナント アプリケーションにロール ベースのセキュリティを適用する

  • 中央の場所から複数のアプリケーションの組織のユーザーを管理する

  • ユーザーのアクションの追跡または監査。

于 2015-08-03T11:54:14.087 に答える