1

私は、ユーザー情報に Active Directory を使用し、認証と SSO に ADFS を使用し、すべて ASP.NET MVC で構築されたいくつかのカスタム アプリケーションを使用するプロジェクトに取り組んでいます。

承認モデルは、クレームおよびロール ベースです。つまり、ユーザーのロールは、ADFS によって (WIF を使用して) 発行されたトークンを介して、関連するアプリケーションへのクレームとしてアクセスできます。

各役割には、アプリケーションのさまざまなリソースに対する許可のリストが定義されています (つまり、管理者の役割は、リソース X に対する WRITE 許可を持っています)。いくつかのハードコーディングされたアクセス許可でうまく機能する基本的な承認モデルがあります。

私の質問は、さまざまな役割の実際のアクセス許可を保存するための最良の方法/場所は何ですか? これは ADFS 内で実行できますか、それとも別のストアが必要ですか (私は後者だと思います)? アクセス許可は XACML と同じ大まかなパターン (user/role:resource:action) に従っており、XACML ソリューションはおそらく簡単に組み込むことができますが、XACML の最も一般的な .NET 実装 (XACML.NET) は XML を唯一のアクセスとして使用しているようです。実行可能ではないストレージメカニズム (アクセス許可を保存するための多くのリソースがあります - 潜在的に数千)。

人々はこれに何を使用しますか?最も明白な解決策は、トリプレットを SQL Server に格納することのようですが、(特に ADFS と WIF を使用した) 認証のためのすべての既製のソリューションを考慮すると、承認とアクセス許可を実際に実装するための (明白な) 情報がほとんどないことは奇妙に思えます。私がオンラインで見つけたすべての例は、権限レベルで物事を説明するには不十分です。

4

2 に答える 2

2

ADFS は、多くの場合、共有インフラストラクチャ コンポーネントです。アプリ固有の知識 (アプリ固有のアクセス許可など) をそこに移動する際の問題は、時間が経つにつれて管理者のボトルネックになる可能性があることです。自問してみてください: これらのアクセス許可を長期的に管理するのは誰でしょうか? 誰かが承認するためにフォームを送信する必要がありますか? それが問題になる可能性があります。それは機能しますが、面倒になります。

一般に、ADFS は、誰もが恩恵を受けるクロスアプリ属性を提供する必要があります (たとえば、すべての AD ベースの属性、企業全体の属性、人事関連の情報が良い例です)。

もちろん、分散方式で管理されているデータベースから ADFS にデータをプルさせることもできます。

場合によっては、アプリ (またはアプリのグループ) が期待するものにトークンを変換する、アプリ固有の STS (多くの場合、「RP-STS」と呼ばれます) をデプロイすることがあります。たとえば、SharePoint はこれを行います。

于 2012-06-14T01:31:56.033 に答える
1

最も簡単な方法は、アクセス許可を SQL Server に格納し、ADFSのカスタムSQL Server 属性ストアを使用して値を取得することです。

クレーム ルールを使用して何らかのロジックを実行することはできますが、ADFS 自体には、この種のものを格納するのに適した場所が実際にはありません。

于 2012-06-13T18:02:54.263 に答える