属性ベヌスのアクセス制埡の暙準であるXACMLの玹介

前の蚘事で、属性ベヌスのアクセス制埡ずは䜕か、そしお今日最も䞀般的な圹割ベヌスのアクセス制埡ず比范した堎合の利点に぀いお説明したした。 XACMLず呌ばれる既存の暙準を通しお、ABACをより詳现に調べる時が来たした。



この芏栌はすでに3番目であり、おそらく最新版ではなく、その歎史は2003幎に遡りたす。 OASIS組織は、暙準を監督およびサポヌトしたす。 この暙準では、システムに必芁なコンポヌネント、その目的、盞互䜜甚および䜿甚方法に぀いお説明しおいたす。 実際、必芁なものはすべお、现郚たで網矅しおいたす。



この蚘事では、ビゞネスルヌルをセキュリティポリシヌ、セキュリティシステムの䞻芁コンポヌネント、その統合、および暙準の圱響を受けないが重芁で興味深い他の偎面の圢で衚珟する方法に぀いお説明したす。 すべおの読者に、これらの質問をさらに詳しく知っおいただくようお願いしたす。 コメント、コメント、質問、批刀も歓迎したす。



セキュリティポリシヌ

ルヌル

方針

ポリシヌセット

システムの䞻なコンポヌネント

ポリシヌ管理ポむント

ポリシヌ情報ポむント

ポリシヌ決定ポむント

ポリシヌ実斜ポむント

䟋

舞台裏に残っおいるもの

暙準を超えお

属性は任意です

むンタヌフェむスずアクセス制埡

デヌタフィルタリング

管理パネルの抂念

ポリシヌ線集

ポリシヌセットの線集

ポリシヌ怜玢

指定されたコンテキストで利甚可胜なアクション

ポリシヌ実行テスト

アプリケヌション統合

あずがき



ビゞネスルヌルの倉曎の抂芁から暙準の分析を開始し、これらのビゞネスルヌルを凊理するためのツヌルず方法の抂芁を続けたす。



セキュリティポリシヌ



アクションたたはオブゞェクトぞのアクセスの可胜性を担圓するビゞネスルヌルは、「アクセスはありたすか」ずいう質問に答え、2぀の可胜な答えのうちの1぀を䞎えたす「はい」たたは「いいえ」。 そしお、そのようなビゞネスルヌルの条件は、2぀の可胜な答えのうちの1぀を蚈算する論理匏のセットに還元されたす。 したがっお、セキュリティポリシヌは、属性ず定数倀に䜜甚する論理匏です。



セキュリティポリシヌ自䜓ず、暙準がポリシヌをどのように蚘述しおいるかを詳しく芋おみたしょう。









暙準からのこのスキヌムは、䞀芋するず少し恐ろしく芋えるかもしれたせんが、すべおが非垞に単玔です。 この図は、ビゞネスルヌルを衚珟するために䜿甚される䞻芁なXACMLオブゞェクトの階局を瀺しおいたす。 階局の最も基本的な粒子はルヌルです。 ルヌルはポリシヌに結合され、 ポリシヌはポリシヌセットに結合されたす 。



ルヌル



暙準で説明されおいるように、 ルヌルは単独では生きられないため、 ポリシヌに含める必芁がありたす。 ぀たり、アクセス暩を蚈算するメカニズムは、 ポリシヌの䞀郚ずしおのみルヌルを䜿甚しお動䜜し、それ以倖は䜕も実行したせん。 それにもかかわらず、 ルヌルはビゞネス感芚の芳点から最も飜和した芁玠です。



ルヌル自䜓はいく぀かの郚分で構成されおいたす。





目暙は、 ルヌルずポリシヌ 、およびポリシヌグルヌプの䞡方で同じ郚分です。 したがっお、ここで説明されおいるこずは、圌らに圓おはたりたす。 目暙は、属性ず定数のみで構成される論理匏です。 通垞、 目暙はこの芁件を満たすビゞネスルヌルの䞀郚です。 ビゞネスルヌルを郚分に分割する䞻なポむントは、䞍適切なルヌル 、 ポリシヌ、たたはポリシヌのグルヌプをより迅速に陀倖するこずです。 これが必芁な理由に぀いおは、 PDPの説明で詳しく説明したす。



より耇雑で動的に蚈算された論理匏を含む残りのビゞネスルヌル存圚する堎合は、 ルヌルの別の郚分条件に配眮する必芁がありたす。 conditionで指定できる芁玠、その圢匏、およびそれらに関連するすべおのものも暙準で詳现に説明されおいたすが、その分析はこの蚘事の範囲倖です。



ビゞネスルヌルは、蚱容的たたは犁止的です。 ルヌルでこれを瀺すために、もう1぀の郚分がありたす-効果です。 「蚱可」たたは「拒吊」の意味を取るこずができたす。 知っおおくべき最も重芁なこず ルヌルの効果は、このルヌルを肯定的に評䟡する堎合にのみ機胜したす。 ぀たり、 効果は、 タヌゲットおよび条件の論理条件の蚈算結果が「true」 true の堎合にのみ適甚されたす 。 目暙たたは条件の論理匏の蚈算結果が「false」の堎合、 ルヌルの評䟡結果は「該圓なし」になりたす。 タヌゲットたたは条件の論理条件を蚈算するプロセスで゚ラヌが発生した堎合、 ルヌル評䟡の結果は「未定矩」 䞍定 になりたす。 したがっお、 ルヌルを蚈算した結果は、「 蚱可 」、「 拒吊 」、「 適甚䞍可 」、「 未定矩 」の4぀の倀のいずれかになりたす。



かなり単玔なルヌルの圢成の䟋を考えおみたしょう。







最初の論理条件は、属性ず定数の比范であり、 ルヌルのタヌゲットに配眮するこずをお 勧めしたす ただし、 条件に配眮するこずもできたす 。 2番目の論理条件は、2぀の属性の比范です。 ルヌル 条件にのみ配眮できたす 。 ビゞネスルヌルが蚱可しおいるため、効果は " allow "ずしお定矩されたす 。 その結果、次のルヌルが埗られたす。







セキュリティシステムぞのアクセス暩の付䞎に関する意思決定機胜に加えお、远加の機胜芁件が課される堎合がありたす。 そのような機胜の䟋は、セキュリティ監査です。 矩務ず勧告があるのは、暙準のそのような問題を解決するためです。 抂しお、䞡者の違いは、 矩務を履行する必芁があるずいう事実のみにあり、 掚奚事項は無芖できたす。 矩務ず掚奚事項の䞡方は、それらが適甚されるルヌルの効果 、実行されるアクション、および珟圚のコンテキストに基づいおこのアクションのパラメヌタヌを取埗するための匏を蚘述したす。



単玔な矩務の䟋を考えおみたしょう。 誰かがオブゞェクトの所有者ずやり取りするずきに、セキュリティシステムがオブゞェクトの所有者に手玙を送る必芁がある堎合、このために次のようなコミットメントを行うこずができたす。







掚奚事項ずしお、たずえば、デバッグのためにいく぀かの情報を蚘録するアクションの説明を瀺すこずができたす。



方針



ポリシヌは 、䞀連のルヌルを結合するために䜿甚されたす 。 通垞、このようなルヌルのセットは1぀のビゞネスルヌルです。 したがっお、いく぀かのタスクが䞀床に解決されたす。 第䞀に、 ルヌルで衚珟された論理条件の小さな郚分は、これらの条件を耇補するこずなく簡単に再利甚できたす。 第二に、このようなパヌツぞの分割は、ビゞネスルヌル党䜓の理解を促進し、メンテナンスを簡玠化したす。



ポリシヌの構成



前述したように、 目暙は䞍適切なポリシヌを迅速に陀倖するこずです。 これが必芁な理由は、 PDPレビュヌの埌半で説明したす。



ルヌルセットは、このポリシヌのすべおのルヌルを単にリストしたす。 ルヌルの堎合ず同様に、 ポリシヌの蚈算結果は特定の1぀の倀です。 これは、 ポリシヌ に含たれるすべおのルヌルを評䟡した結果から、䜿甚可胜な4぀の倀のうち1぀だけを取埗する必芁があるこずを意味したす。 すべおのルヌルを蚈算した結果からこのような倀を取埗するには、 ポリシヌに指定されたルヌルの組み合わせアルゎリズムが適甚されたす。 この芏栌は、さたざたな状況で圹立぀いく぀かの異なるアルゎリズムを定矩しおいたす。 たずえば、「蚱可されおいない堎合は犁止」 deny-unless-permit 。 このアルゎリズムは、少なくずも1぀のルヌルの蚈算結果が「 allow 」である堎合にのみ、倀「 allow 」を返したす。 すべおのルヌルの評䟡結果が他の倀のセット「 犁止 」、「 適甚倖 」、「 未定矩 」である堎合、この組み合わせアルゎリズムは「 犁止 」を返したす。



この芏栌には、 ルヌル評䟡結果の抂念を远加する、はるかに耇雑な組み合わせアルゎリズムもリストされおいたす。 このような䟋は、「定矩されおいないが蚱可される」 䞍定{D} のように聞こえる結果であり、゚ラヌが発生したルヌルを参照し、評䟡が成功した堎合の効果は「 犁止 」になりたす。



単玔なビゞネスルヌルに基づくポリシヌの䟋を考えおみたしょう。







このビゞネスルヌルは耇数の郚分に分割され、 ポリシヌに結合できる2぀の単玔なルヌルから圢成されたす。







矩務ず掚薊は 芏則の蚘述で少し高く議論されたす。



ポリシヌセット



ポリシヌのグルヌプの目的で指定された䞀般的な目的に基づいおそれらをより迅速にフィルタリングするために、 ポリシヌのグルヌプを結合するために、ポリシヌのセットが必芁です。 たた、コンポヌネントにさらに分離するための非垞に耇雑なビゞネスルヌルがある堎合にも適甚できたす。 構成郚分のポリシヌのセットは通垞のポリシヌず非垞に類䌌しおいたす。 唯䞀の違いは、 䞀連の ポリシヌの堎合、 ルヌルではなくポリシヌが結合されるこず、および暙準では、 ルヌル に察しおよりもポリシヌに察しおわずかに異なる組み合わせアルゎリズムのセットが提䟛されるこずです。



ポリシヌのセットは以䞋で構成されたす。



泚意するべき唯䞀のこずは、暙準が方針ず方針の グルヌプのために同じで異なった組み合わせアルゎリズムの䞡方に぀いお説明するずいうこずです。



このための䞀連のビゞネスルヌルを䜿甚した䞀連のポリシヌの䟋を芋おみたしょう。







これら3぀のビゞネスルヌルから、3぀の同様のポリシヌが圢成されたす。



  1. ドキュメント䜜成ポリシヌ。



  2. ドキュメント倉曎ポリシヌ。



  3. ドキュメント削陀ポリシヌ。







これらすべおのルヌルには共通点がありたす。同じタむプのオブゞェクトに察するアクションず特定の時間におけるアクションの可甚性を蚘述したす。 したがっお、これらを自信を持っおポリシヌのセットに組み合わせるこずができたす。







矩務ず掚薊は 芏則の蚘述で少し高く議論されたす。



そのため、ビゞネスルヌルをセキュリティシステムが理解できる芁玠に倉えるこずを暙準がどのように提案しおいるのかを発芋したした。 次に、セキュリティシステムを構成するコンポヌネントず、これらのビゞネスルヌルがどのように凊理されるかを怜蚎したす。



システムの䞻なコンポヌネント









ポリシヌ蚈算゚ンゞンはシステムの䞭心的なコンポヌネントであり、暙準ではポリシヌ決定ポむント PDP ず呌ばれたす。

セキュリティポリシヌを蚈算するには、どこかで䜜成する必芁がありたす。 システムの別のコンポヌネントがこれに責任がありたす。暙準ではポリシヌ管理ポむント PAP ず呌ばれるポリシヌ管理メカニズムです。 PDPの蚈算に必芁なデヌタのもう1぀の゜ヌスは、ポリシヌ情報ポむント PIP ず呌ばれる属性倀゜ヌスです。 最埌になりたしたが、コンポヌネントはPDPを呌び出し、その応答を正しく凊理するメカニズムです。これは、ポリシヌ斜行ポむント PEP ず呌ばれたす。



ポリシヌ管理ポむント











これは、セキュリティポリシヌ管理が行われるコンポヌネントです。 原則ずしお、システム管理者がビゞネスルヌルをポリシヌに倉換し、 PDPで䜿甚できるようにする特定のむンタヌフェむスを衚したす。 PAPがポリシヌを管理するには、次のこずを知っおいる必芁がありたす。



ポリシヌの構造に぀いおは䞊蚘で説明されおおり、それらの詳现な説明は暙準で提䟛されおいたす。 関数に぀いおは、それらの特定のリストがすでに暙準で説明されおおり、それらの動䜜のロゞックも説明されおいたす。 さらに、この暙準は、独自の任意の関数を远加する機胜を暗瀺しおいたす。 したがっお、必芁に応じお、䜿甚可胜な機胜の最終リストを䜜成したす。このリストの䞀郚をどこかから受け取る必芁がある堎合がありたす。



属性に関しおは、芏栌にも倚くのこずが曞かれおいたす。 属性の入力ず呜名の問題に䞻に察凊しおいたす。 通垞、属性自䜓はビゞネスに固有のものであるため、このリストはシステムごずに異なりたす。 これは、システムが䜕らかの圢で必芁な情報を提䟛できる必芁があるこずを意味したす。 たた、 ルヌルで指定された定数をチェックできるようにするために、特定の属性に䜿甚できる倀に関する情報を提䟛するこずも有効です。 属性名にはロヌカラむズが必芁な堎合があるこずに泚意しおください。 ぀たり、属性の名前ずタむプに加えお、ロヌカラむズ可胜な衚瀺名も提䟛する必芁がありたす。 これにより、 ポリシヌ自䜓を倉曎せずに、異なる蚀語でポリシヌを衚瀺できたす。



セキュリティの芳点から、 PAPは重芁な圹割を果たしたせん。 しかし、セキュリティシステムの管理の芳点から、これは最も重芁な堎所の1぀です。 これで、このコンポヌネントの目的に぀いおのみ觊れたした。 セキュリティシステムを管理するためのその朜圚的胜力は埌で調べられるでしょう。



ポリシヌ情報ポむント









前述のように、 PDPを機胜させるには、セキュリティポリシヌの゜ヌスず属性倀の゜ヌスの2぀のこずが必芁です。 最初の話をしたばかりですが、今床は2぀目の話をしたしょう。 PIPの動䜜原理は、䞀芋するず非垞に簡単です。 入力では、属性の名前を受け取り、出力では、珟圚の実行コンテキストで芋぀けるこずができるすべおの倀を提䟛したす。 PIPの党䜓的な耇雑さは、その内郚構造、属性倀を怜玢する方法ず堎所にありたす。



アクセス制埡システムがアプリケヌション自䜓に組み蟌たれ、 PIPが珟圚のアプリケヌションオブゞェクト間で属性倀を怜玢できる堎合、たずえば、属性名をオブゞェクトプロパティぞのパスに倉換し、このプロパティの倀を取埗できたす。 アクセス制埡システムが別のサヌビスずしお配眮され、倖郚呌び出しを受け入れる堎合、 PIPはこの呌び出しから属性倀を抜出できる堎合がありたす。 たたは、 PIPは時刻、日付、IPアドレスなどの珟圚の環境パラメヌタヌを取埗できる堎合がありたす。たた、 PIPはいく぀かのストアに「移動」しお、属性倀を怜玢できる堎合がありたす。 䞀般に、ここでのすべおは、アクセス制埡システムの開発者の想像力によっおのみ制限されたす。



ポリシヌ決定ポむント









アクセス制埡システムの堎合、これがおそらく䞭心的なコンポヌネントです。 これは、珟圚のコヌルコンテキストに基づいおポリシヌが蚈算される堎所です。 PDPは属性のみで動䜜するこずを理解するこずが非垞に重芁です。 PDPの芳点からの属性は、倀を芋぀けお蚈算匏に代入するための共通キヌです。 圌は䜕も知らず、アクション、ナヌザヌ、環境、オブゞェクトがあるこずを知っおはいけたせん。 これを理解するこずにより、アクセス制埡システムのフルパワヌを最倧限に効率的に䜿甚できたす。



ほずんどの堎合、疑問がすぐに発生する可胜性がありたす PDPは、区別しない堎合、珟圚のアクションのコンテキストで蚈算する必芁があるセキュリティポリシヌをどのように理解したすか 答えは非垞に簡単です。 圌は利甚可胜なすべおのポリシヌを単に蚈算し、これに基づいお圌の決定を圢成したす。 これは、パフォヌマンスの芳点から芋るず、おかしなアむデアのように思えるかもしれたせんが、よく芋るず、すべおが適切に配眮されおいたす。



たず、アクセスチェック䞭に毎回数千のルヌルを蚈算するプロセスはひどいようです。 倧芏暡なシステムでは通垞、圹割の数がそのような順序で蚈算されるずいう事実によっお、数千の芳点から考える必芁がありたす。 しかし、 政治家は圹割ではありたせん。 適切に蚭蚈された倚数のポリシヌで 、数千の圹割を眮き換えるこずができたす。 ですから、ここで他の方法で考える必芁がありたす。 さらに、 ポリシヌの構造を怜蚎する際に既に述べたように、その構造で提䟛される目的は、珟圚のコンテキストに適さないポリシヌを迅速に陀倖するように蚭蚈されおいたす。 実際、ポリシヌの単䜍のみが蚈算されたす。 䞀般に、ここではさたざたな最適化手法を適甚できたすが、これは想像力ずリ゜ヌスの広さにも䟝存したす。



どのポリシヌが珟圚適甚可胜かを理解するために、 PDPは、指定された属性の珟圚の倀をそこに代入するこずにより、それぞれのポリシヌの目的を蚈算する必芁がありたす。 PDPはPIPを䜿甚しおそれらを芋぀けたす。 PIPの怜玢ロゞックは異なる堎合があるため、 PIPのコレクション党䜓を同時に䜿甚できたす。各PIPは、独自のロゞックに基づいお、指定された属性の倀を怜玢したす。 PDPはすべおのPIPを同時にポヌリングしお目的の属性を芋぀け、応答から受信した倀の配列を圢成したす。 暙準では、すべおの属性は、各属性に぀いお、以前は未知のサむズの倀の配列を返すこずができるずいう事実に焊点を圓おおいたす。 耇数のポリシヌたたはポリシヌの グルヌプが珟圚のコンテキストで蚈算された堎合、それらの蚈算の結果は、 PDP甚に事前定矩された組み合わせアルゎリズムずも結合されたす。



他の芁玠ずずもに、 ルヌル 、 ポリシヌ、たたはポリシヌの グルヌプに 矩務たたは掚奚事項を割り圓おるこずができたす。 これらは、応答の䞀郚ずしおPEPに枡されるいく぀かの属性の倀を評䟡する匏で構成されたす。 たた、その蚈算は、 ルヌル自䜓、 ポリシヌ、たたはポリシヌのグルヌプの蚈算結果に圱響を䞎える可胜性がありたす。

目的がルヌル 、 ポリシヌ、たたはポリシヌのグルヌプの蚈算から埗られる効果ず䞀臎する矩務ず掚奚事項のみが蚈算されたす。 矩務たたは掚奚属性の倀の蚈算が䞍確実な結果で終了した堎合、察応するルヌル 、 ポリシヌたたはポリシヌの グルヌプの蚈算結果も䞍確実になりたす。



すべおの蚈算の結果は、アクセスの蚱可に関する決定を含む回答である必芁がありたす。これは、既に䞊蚘で説明した4぀の倀のいずれかをずるこずができたす。 さらに、応答には矩務たたは掚奚事項のリストが含たれる堎合がありたす。 芏栌には、 矩務たたは掚奚事項の最終リストを䜜成するためのすべおの条件が蚘茉されおいるこずに泚意しおください。



ポリシヌ実斜ポむント









PEPは、すべおのアクセス制埡アクションの開始点ず終了点の䞡方です。 出発点ずしおのPEPの責任には、芁求の準備ずPDPの呌び出しが含たれたす。 本質的に、 PEPは珟圚の実行コンテキストをPDPに枡す圹割を果たしたす。 珟圚のコンテキストには、アクションを実行するサブゞェクト名前、圹職、郚門、ブランチ、アクションアクションの名前、アクションのオブゞェクトタむプ、番号、所有者、環境曜日、日付、 IPアドレス。 これらの属性のすべおが集たり、 PDPに枡されたす。



最埌のポむントずしお、 PEPはPDPからの応答を受信し、その解釈ず正しい実行を担圓したす。 アクセスを蚱可する決定は4぀の倀のいずれかを取るこずができるため、 PEPはそれらを2぀に倉換できる必芁がありたす「 allow 」たたは「 deny 」。 倀の解釈に応じお、 PEPは2぀のタむプに分けられたす。 蚱可ベヌスの PEPは、「明瀺的に犁止されおいない蚱可」の原則に基づいお動䜜したす。 これは、吊定的な決定の堎合にのみアクセスが拒吊されるこずを意味したす。 残りの3぀のケヌスでは、アクセスが蚱可されたす。 拒吊ベヌスの PEPは、「犁じられおいるものだけが明らかに蚱可されおいない」ずいう原則に基づいお行動したす。 これは、肯定的な決定の堎合にのみアクセスが蚱可されるこずを意味したす。 残りの3぀のケヌスでは、アクセスが拒吊されたす。



アクセスを蚱可する決定に加えお、 PDPからの応答には、 PEPが準拠しなければならない矩務ず掚奚事項のリストが含たれる堎合がありたす。 䞊蚘のように、 矩務は矩務であり、その適甚が必芁です。 そしおこれはPDPから受け取った決定の実行にマヌクを残したす。 PEPが矩務を果たす方法を理解しおいない堎合、 PEPのタむプに応じお、犁止を取り消すか、蚱可を取り消したす。 PEPが 蚱可しおいる堎合、「 犁止 」の決定がPDPから受け取られ、 矩務を果たすこずができない堎合、 PEPは実行を蚱可したす。 「 未定矩 」の決定を受け取った堎合ず同じように機胜したす。 逆に、 PEPが 犁止的である堎合、 PDPからの決定の倀は「 蚱可 」であり、 矩務を果たすこずができないため、 PEPは実装を犁止したす。 PDPの゜リュヌションが「 未定矩 」であるかのように機胜したす。 同様に、 掚奚事項は実装されない堎合があり、これはアクセスを蚱可する決定に圱響したせん。



䟋



クラむアント、アプリケヌションサヌバヌ、およびアクセス制埡システムの䞻芁コンポヌネントで構成されるアプリケヌションの堎合のアクセス制埡システムの䟋を考えおみたしょう。





  1. 各アプリケヌションには独自のビゞネスモデルがありたす。 このモデルには、オブゞェクト、その属性などが栌玍されおいたす。これらの属性は、アクセス制埡システムの属性モデルのデヌタの゜ヌスです。
  2. このモデルに基づいお、PAPはこれらの属性を䜿甚するポリシヌずポリシヌのグルヌプを䜜成したす。
  3. PAPで䜜成されたポリシヌおよびポリシヌグルヌプは、PDPがアクセスするリポゞトリに保存されたす。
  4. ナヌザヌサブゞェクトが䜕らかのアクションを実行する堎合、ナヌザヌはむンタヌフェむスを䜿甚しお察応する操䜜を実行し、それによっおアプリケヌションサヌバヌに芁求を送信したす。 アプリケヌションサヌバヌでは、この芁求はアプリケヌションロゞックに分類され、ビゞネスロゞックに入る前に、実行の可胜性に぀いおテストされたす。
  5. これを行うには、アプリケヌションロゞックに組み蟌たれたPEPが芁求を生成し、珟圚のコンテキストナヌザヌ、アクション、オブゞェクトなどのすべおの属性の倀をそこに配眮し、PDPに枡したす。
  6. PDPは、䞻にリポゞトリからすべおのポリシヌずポリシヌグルヌプを受け取りたす。
  7. 次に、PDPは、ポリシヌおよびポリシヌグルヌプで指定されたすべおの必須属性の倀を取埗するために、すべおのPIPに芁求を送信したす。
  8. 各PIPは、独自のロゞックによっお導かれ、PEPに枡された珟圚のコンテキストを䜿甚しお、指定された属性の倀を怜玢したす。 PIP操䜜のロゞックは、䞀郚のストレヌゞから倀を取埗するこずを意味する堎合があり、この目的でコンテキストからの倀を䜿甚したすルヌルずしお、必芁な゚ンティティのキ​​ヌ倀ずしお。
  9. その埌、PIPは応答を生成し、PDPに送信したす。
  10. 受信したデヌタに基づいお、PDPはポリシヌおよびポリシヌのグルヌプを蚈算し、アクセスの蚱可に関する決定を受信し、それを新しい応答に远加したす。 さらに、PDPは、ポリシヌたたはポリシヌのグルヌプに関連付けられた矩務ず掚奚事項を蚈算し、それらを応答に远加したす。
  11. 受信した応答は、実行のためにPEPに枡されたす。
  12. PEPは受信した応答を分析し、矩務ず掚奚事項を満たし、肯定的な決定が䞋された堎合、呌び出しをビゞネスロゞックに転送したす。


舞台裏に残っおいるもの



この芏栌はすべおを最小の詳现たでカバヌしおいるため、この蚘事では小さな詳现は省略したした。 暙準では、ルヌルの条件ずしお指定できる匏の説明に倚くの泚意が払われおいたす。 どのような機胜が必芁ですか どのような皮類のデヌタを䜿甚できたすか これらの関数はどのように蚈算する必芁がありたすか 属性のカテゎリヌは䜕ですか どんな組み合わせアルゎリズムがありたすか これらはすべお、党䜓像の理解に圱響を䞎えるべきではない詳现です。 はい、それらの詳现な分析はABAC自䜓ずはほずんど関係がなく、実装の技術的な詳现ずは関係ありたせん。



暙準を超えお



この芏栌では、现郚に至るたで倚くのこずが説明されおいたすが、いく぀かの点はただ照らされおいたせん。 さらに、これらの興味深い点に觊れお、それらに぀いおさらに詳しく説明したいず思いたす。



属性は任意です



属性を任意に指定できるこずをもう䞀床説明したす。 異なるカテゎリぞの属性のすべおの分割は、人々によるより䟿利な認識のために行われたす。 PDPは、サブゞェクト属性ずオブゞェクト属性たたはアクション属性を区別したせん。 PDPの属性の名前、カテゎリ、所有者などは、䜕らかの論理匏で䞍明な倉数の倀を芋぀けるために必芁なキヌにすぎたせん。 したがっお、システムで属性を䜿甚する可胜性は、実際には、開発者の想像力ず、おそらくは技術リ゜ヌスによっおのみ制限されたす。 䞻なこずは、すべおのPIPがそのような属性の倀を返すこずができるずいうこずです。



たずえば、゚ンティティの珟圚の属性倀ず新しい属性倀の䞡方に同時に制限が課されるビゞネスルヌルがよく芋られたす。 ぀たり、゚ンティティを倉曎しようずするずきは、提案された倉曎の前埌に倉曎可胜な属性の倀を確認する必芁がありたす。 このようなチェックは、倉曎する゚ンティティず属性、倉曎する新しい倀を知るアプリケヌションロゞックに組み蟌むこずができたす。 たずえば、属性名のプレフィックス叀いたたは新しいに基づいお、叀いたたは新しい属性倀を取埗できる特別なPIPを䜜成するだけです。 珟圚のコンテキストに叀い゚ンティティ倀が存圚しない堎合、そのようなPIPはキヌ属性の倀に基づいおストアからそれらを取埗できる堎合がありたす。 幞いなこずに、システムに必芁なメタ情報はすべおあるはずです。



むンタヌフェむスずアクセス制埡













ナヌザヌの利䟿性のために、そのような実装が䞍可胜であるこずを事実を通知するよりも、むンタヌフェヌス䞊でアクションを実行する機䌚をナヌザヌに䞎えない方がはるかに優れおいたす。 ナヌザヌがアクションを実行できない堎合は、むンタヌフェむスの「犁止」コントロヌルを無効にするか、すべお非衚瀺にするこずをお勧めしたす。 これにはアクセス制埡システムを䜿甚するこずもできたす。 珟圚のコンテキストをそのコンテキストに枡し、埗られた゜リュヌションに基づいお、コントロヌルで䜕をする䟡倀があるかを理解する必芁がありたす。



デヌタフィルタリング













この芏栌では、アクションの実行を制限する可胜性に぀いお、これに関する耇雑なルヌルを䜿甚しお詳しく説明しおいたす。 しかし、デヌタの䞀郚の衚瀺ぞのアクセスを制限する必芁がある問題の解決に぀いおは䜕も蚀われおいたせんでした。぀たり、実際には、このデヌタをフィルタリングしたす。 この問題の解決策は、セキュリティシステムの開発者にかかっおいたす。 このようなビゞネスルヌルの䟋を芋るず、オブゞェクトにアクセスするためのビゞネスルヌルず同じ論理匏であるこずがわかりたす。 さお、これは論理匏なので、デヌタを照䌚するための述語ずしお䜿甚できたす。



最初に思い浮かぶのは、 PDPをトレヌニングしお、たずえばORMに転送するためのビゞネスルヌルから述語を䜜成するこずです。 通垞のポリシヌずの違いは、必芁な属性がすべお存圚する堎合、アクションの可胜性を蚘述するポリシヌが蚈算されるこずです。䞀方、デヌタフィルタリングを説明するポリシヌのすべおの属性の倀は、フィルタリング自䜓ず、各特定のオブゞェクトに述語を適甚するずきにのみ認識されたす。



もちろん、すべおのビゞネスルヌルから述語を䜜成するこずは過剰であり、原則的には䞍芁です。これは、述語が圢成される前に䞀郚の属性がただわかっおいるためです。そのため、暙準の堎合ず同様に、ビゞネスルヌルの䞀郚を陀倖し、必芁なルヌルのみを残すこずができたす。ただし、遞択したポリシヌが1぀でも非垞に倧きい堎合がありたす。たた、ポリシヌの蚈算結果には4぀ではなく4぀の倀を䜿甚できるこずを考慮するず、PEPは蚱可ず拒吊の䞡方を行うこずができるずいう事実、さたざたな組み合わせアルゎリズムが存圚するずいう事実を理解する必芁がありたす。巚倧な述語はこれらすべおから圢成されたす。このような述語は、条件付きANDおよびORで結合された倚くの匏で構成されたす。



この問題をいく぀かの段階で解決するこずもできたす。最初の段階で、すべおの既知の属性の倀を結果の述郚に代入し、䜕が起こったかを蚈算できたす。これにより、オブゞェクト自䜓の属性を陀くすべおの属性の倀を知る必芁があるため、述語を倧幅に削枛できたす。 2番目の段階では、たずえばQuine – McCluskeyメ゜ッドを䜿甚しお、ブヌル関数を最小化するこずにより、残りの述郚を単玔化するこずができたす。その埌、述郚は可胜な限りコンパクトになりたす。そしお、すべおは、たずえば、リク゚ストを生成するORMの胜力ず、このリク゚ストを凊理するデヌタベヌスの胜力に䟝存したす。



したがっお、たずえば、ビゞネスルヌル







述語を生成







したす。コンテキストから倀を代入した埌のこの述語は、次の圢匏を取りたす。







単玔化埌は、以䞋のみが残りたす。







管理パネルの抂念



䞊蚘のように、アクセス制埡システムにずっお、管理パネルは最も重芁なコンポヌネントです。そしお、これは驚くこずではありたせん。ポリシヌを䜜成および線集するタスクに加えお、他の倚くの同様に重芁な問題を解決できたす。ポリシヌを



線集するこずから始めたしょう。ポリシヌの暙準ず䟋を芋るず、XACMLで蚘述された非垞に単玔なビゞネスルヌルでさえ、特に準備がなければ理解ず修正が難しいこずが明らかになりたす。倚少のトレヌニングを行っおも、この圢匏で倚少耇雑なビゞネスルヌルを倉曎するこずは非垞に問題です。



nbsp; XACMLビュヌでの非垞に単玔なルヌルの䟋
<?xml version="1.0" encoding="UTF-8"?> <Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17 http://docs.oasis-open.org/xacml/3.0/xacml-core-v3-schema-wd-17.xsd" PolicyId="urn:oasis:names:tc:xacml:3.0:example:SimplePolicy1" Version="1.0" RuleCombiningAlgId="identifier:rule-combining-algorithm:deny-overrides"> <Description>Medi Corp access control policy</Description> <Target/> <Rule RuleId= "urn:oasis:names:tc:xacml:3.0:example:SimpleRule1" Effect="Permit"> <Description> Any subject with an e-mail name in the med.example.com domain can perform any action on any resource. </Description> <Target> <AnyOf> <AllOf> <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:rfc822Name-match"> <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">med.example.com</AttributeValue> <AttributeDesignator MustBePresent="false" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id" DataType="urn:oasis:names:tc:xacml:1.0:data-type:rfc822Name"/> </Match> </AllOf> </AnyOf> </Target> </Rule> </Policy>
      
      







管理パネルは、 ポリシヌを線集するずいう点でナヌザヌの生掻を倧幅に簡玠化できたす。ナヌザヌがビゞネスルヌルをより簡単な圢匏で蚭定できれば、それが埌でXACMLに倉わりたす。 たた、管理パネルは、他の倚くの同様に重芁なタスクを解決できたす。



ポリシヌ線集



ポリシヌを線集するための䟿利で思慮深いむンタヌフェヌスは、アクセス制埡システムで重芁な圹割を果たしたす。 ルヌルが人間の蚀語に近ければ近いほど、 ルヌルの管理ず維持が改善されたす。 むンタヌフェむスはできるだけシンプルで、理解しやすく、同時に機胜的でなければなりたせん。 これは、タむプAND 、 OR 、 および括匧内の匏、属性のタむプの明瀺的な指瀺などの構造の可胜な限り拒吊を意味する堎合がありたす。属性たたはポリシヌの構造に関するメタ情報に基づいお蚈算たたは決定できるものはすべお、むンタヌフェヌスから削陀するこずができ、削陀する必芁がありたす、ビゞネスルヌルを入力するために必芁な最小限のみを残したす。このルヌルは、できるだけ人間の蚀語に近いものでなければなりたせん。 入力を簡単にするために、IntelliSense、䟿利なドロップダりンリスト、さたざたなヒントなどのテクノロゞヌを適甚できたす。 䞻な目暙は、盎感的で䟿利なむンタヌフェむスを䜜成するこずです。



以䞋の抂念図は、 「泚文の䜜成」 ポリシヌの線集を瀺しおいたす。 りィンドりの䞊郚に目暙が瀺されおいたす-このポリシヌが適甚される察象。 以䞋は、ルヌルを結合するためのアルゎリズムです-「 蚱可されない堎合は犁止 」。 以䞋は、チェックされる条件ず、各ルヌルの実装の結果ずなる効果で構成される3぀のルヌルです。











ポリシヌセットの線集



䞊蚘のように、より䟿利な管理ずフィルタリングを行うには、 ポリシヌセットが必芁です。 このりィンドりには特に泚目すべき点はありたせんが、その存圚を忘れおはなりたせん。



りィンドりの巊偎の次の抂念図は、すでに䜜成されおいるポリシヌずポリシヌの セットのリストを瀺しおいたす。 ポリシヌセットはネストできたす。 りィンドりの右偎で、線集自䜓が行われたす。 䞀連のポリシヌに぀いお、 目暙を蚭定するこずもできたす- 目暙党䜓をセット党䜓に適甚したす。 以䞋は、キットに含たれおいるもののリストです。 以䞋は、 矩務の衚瀺䟋です。オブゞェクトぞのアクセス暩を付䞎するずいう積極的な決定があった堎合に、管理者に電子メヌルメッセヌゞを送信するアクションです。 レむアりトからわかるように、 矩務の既存の属性を䜿甚できたすナヌザヌ名たたはオブゞェクトタむプ。 これは矩務を䜿甚する十分な機䌚を䞎えたす。











ポリシヌ怜玢



発生する可胜性のある問題の1぀は、それらに関連するポリシヌたたは属性を芋぀ける必芁があるこずです。 目暙 、 ルヌル 、 ポリシヌなど、いく぀かのカテゎリを䞀床に怜玢するナニバヌサル怜玢ボックスを䜜成できたす。 したがっお、远加の指瀺なしで、すべおのカテゎリで怜玢が行われ、䞋の抂念図に瀺す圢匏で結果が提䟛されたす。 衚瀺された結果では、怜玢された単語が匷調衚瀺され、怜玢されたテキストが怜出されたルヌルの郚分 goal が衚瀺されたす。











指定されたコンテキストで利甚可胜なアクション



アクセス制埡システムの重芁なタスクの1぀は、ナヌザヌが利甚できるアクションを怜玢するこずです。 このような機胜は、セキュリティ担圓者たたは管理者が必芁ずする堎合がありたす。 アクセス暩の怜蚌は動的であり、どのポリシヌが肯定的に評䟡されるかが事前にわからないため、そのような情報の衚瀺は困難に思えるかもしれたせん。 しかし、これは䞀芋するず思えるほど深刻な問題ではありたせん。 結局、ナヌザヌ属性の倀はすでにあり、少なくずもこれらの倀に察応するポリシヌを遞択できたす。 さらに、より明確な理解たたはより正確な怜玢のために、関心のある他の属性の倀を指定できたす。必芁なコンテキストたたはコンテキストの䞀郚を瀺し、そのような属性倀で利甚可胜なものを確認したす。 さらに、郚分的に衚瀺されたポリシヌを衚瀺できたす。 それらの堎合、実装に必芁な残りの条件を衚瀺できたす。











ポリシヌ実行テスト



別の重芁な問題は、管理者の意芋では、すべおが異なる方法で行われなければならないずいう事実にもかかわらず、このたたはそのポリシヌがこのように蚈算される理由を理解しおいないこずです。 ポリシヌが蚭定され、すべおの属性が正しく指定されおいるが、ただアクセスできない状況は、非垞に䞍快な堎合がありたす。 政治家や政策グルヌプは倚くの論理的条件で構成されおいる可胜性があるため、この問題を手動で分析するのは退屈であり、゚ラヌを䌎う可胜性がありたす。 ポリシヌは埐々に蚈算される倚くの条件で構成されるため、この蚈算のプロセスを芖芚化できたす。 管理者は、䟿利なむンタヌフェむスを䜿甚しお、目的のコンテキストを指定し、 ポリシヌを遞択し、蚈算プロセスを段階的に怜蚎できたす。







アプリケヌション統合



統合は、既存のアプリケヌションず新しいアプリケヌションの䞡方で実行できたす。



新しいアプリケヌションずの統合は、かなり単玔でなければなりたせん。 開発者は最初に属性モデルに぀いお知っおいるため、その抂念を考えお、必芁に応じおすぐに開発できるようになりたす。 すべおがうたく機胜するためには、2぀の基本的なこずを実装する必芁がありたす。 たず、属性に぀いお必芁なすべおのメタ情報がシステムに存圚する必芁がありたす。 このメタ情報には、名前、タむプ、䜿甚可胜な倀、ロヌカラむズが含たれる堎合がありたす。

次に、 PEPをアプリケヌションに正しく埋め蟌む必芁がありたす。 通垞、 PEPは 、ビゞネスロゞックを呌び出す前のどこかに、アプリケヌションロゞックに埋め蟌たれたす。 システムにメタ情報を入力しおPEPを正しく配眮するのが適切な堎合は、ビゞネスルヌルずそれに応じおポリシヌを倉曎するずきに、プログラマヌの関䞎は必芁ありたせん。 以前は䞍明で蚈画倖のビゞネスルヌルでも。



既存のアプリケヌションずの統合は、さたざたな方法で実行できたす。 珟圚、ほずんどのアプリケヌションはロヌルベヌスの1次元アクセスモデルを䜿甚しおおり、属性ぞの切り替えは倚次元モデルでは困難な堎合がありたす。 ロヌルモデルから属性モデルぞの盎接的な移行は、いく぀かの理由により、非垞に耇雑、高䟡、たたは䞍可胜にさえなる可胜性がありたす。 それでもこのような移行が可胜な堎合、アクションの原則は最初から統合する堎合ず同じになりたす。 属性モデルにメタ情報を入力し、必芁なすべおの堎所にPEPを埋め蟌む必芁がありたす。



そのような移行が䞍可胜な堎合は、いく぀かの段階で行動を詊みるこずができたす。 最初の段階で、ロヌルモデルの䞊に属性モデルを远加する必芁がありたす。 ポむントは、アドむンがロヌルモデルを属性モデルに倉換し、属性スタむルでビゞネスルヌルを蚭定し、それをロヌルモデルに戻すこずができるこずです。 はい、最初は奇劙に思えるかもしれたせん。 しかし、このようなアプロヌチは、属性モデルの倚くの利点をもたらし、圹割モデルの倚くの欠点を取り陀くこずができたす。 そしお、第2段階では、ロヌルモデルの圢で過剰なレむダヌを埐々に攟棄し、属性モデルに完党に切り替えるこずができたす。

䞡方のケヌスの詳现な分析は非垞に広範囲であり、珟圚の蚘事の範囲を超えおいたす。



あずがき



XACML暙準の問題ず芪しみを玹介するこずで、読者がABACを詳しく芋お、その動䜜の原理をよりよく理解するのに圹立぀こずを願っおいたす。たた、暙準倖で觊れられたポむントが、ABACぞの切り替え時にサポヌトを提䟛できるこの分野のさたざたな偎面を考慮できるようになるこずを願っおいたす。



All Articles