Кіріспе
Кеңейтілетін қолжетімділік бақылау таңбалау тілі (Extensible Access Control Markup Language, XACML) – қолжетімділік бақылау саясатын анықтау үшін XML-ге негізделген стандартты таңбалау тілі. OASIS ұйымы жариялаған стандарт, декларативтік, атрибуттарға негізделген кіруді бақылау саясатының тілін, архитектураны және саясатта анықталған ережелерге сәйкес кіру сұраныстарын қалай бағалауды сипаттайтын өңдеу моделін анықтайды. XACML негізінен атрибуттарға негізделген кіруді бақылау жүйесі болып табылады. XACML-де атрибуттар – ресурсқа қол жеткізетін субъект туралы ақпарат, өзі ресурс және орта туралы ақпарат – қол жеткізуге рұқсат беру немесе бермеу туралы шешім қабылдау үшін кіріс ретінде әрекет етеді. XACML рөлге негізделген кіруді басқаруды іске асыру үшін де пайдаланылуы мүмкін. XACML-де қол жеткізуді бақылау шешімдері Ережелер түрінде беріледі. Әрбір Ережеде белгілі бір сұранышты мақұлдауды немесе мақұлдауды шешетін бірқатар шарттар бар. Егер Ереже сұранысқа қатысты болса, бірақ Ереженің ішіндегі шарттар бағаланбаса, нәтиже Белгісіз болады. Ережелер Саясаттарда топтастырылады, ал PolicySet Саясаттарды және мүмкін басқа PolicySet-терді қамтиды. Олардың әрқайсысында да белгілі бір сұраныс үшін бағалау керек пе, жоқ па, соны анықтайтын қарапайым шарт бар. Біріктіру алгоритмдері әртүрлі нәтижелерге ие болуы мүмкін Ережелерді және Саясаттарды әртүрлі жолдармен біріктіруге пайдаланылуы мүмкін. XACML сондай-ақ міндеттемелер мен кеңестерді де қолдайды. Міндеттемелер сұранысты өңдеу кезінде орындалуы тиіс әрекеттерді анықтайды, мысалы, журналға жазу үшін. Кеңестер ұқсас, бірақ ескерілмеуі мүмкін.
NOTOC
The eXtensible Access Control Markup Language (XACML) is an XML based standard markup language for specifying access control policies. The standard, published by OASIS, defines a declarative fine grained, attribute based access control policy language, an architecture, and a processing model describing how to evaluate access requests according to the rules defined in policies. XACML is primarily an attribute based access control system. In XACML, attributes – information about the subject accessing a resource, the resource to be addressed, and the environment – act as inputs for the decision of whether access is granted or not. XACML can also be used to implement role based access control. In XACML, access control decisions to be taken are expressed as Rules. Each Rule comprises a series of conditions which decide whether a given request is approved or not. If a Rule is applicable to a request but the conditions within the Rule fail to evaluate, the result is Indeterminate. Rules are grouped together in Policies, and a PolicySet contains Policies and possibly other PolicySets. Each of these also includes a Target, a simple condition that determines whether it should be evaluated for a given request. Combining algorithms can be used to combine Rules and Policies with potentially differing results in various ways. XACML also supports obligations and advice expressions. Obligations specify actions which must be executed during the processing of a request, for example for logging. Advice expressions are similar, but may be ignored.
Тарих
1.0 нұсқасы 2003 жылы OASIS стандарттар ұйымымен бекітілді. 2.0 нұсқасы OASIS стандарттар ұйымымен 2005 жылдың 1 ақпанында бекітілді. 3.0 нұсқасы 2013 жылдың қаңтарында OASIS ұйымымен ратификацияланды.
Атрибуттар мен санаттар
Саясаттар, саясат жиынтықтары, ережелер және сұраулардың барлығы субъектілерді, ресурстарды, ортаны және әрекеттерді пайдаланады. Субъекті элементі – кіруге рұқсат сұрайтын объекті. Субъектінің бір немесе бірнеше қасиеттері болады. Ресурс элементі – дерек, қызмет немесе жүйелік компонент. Ресурстың бір немесе бірнеше қасиеттері бар. Әрекет элементі ресурста сұралған кіру түрін анықтайды. Әрекеттердің бір немесе бірнеше қасиеттері болады. Орта элементі қосымша ақпарат беруге мүмкіндік береді.
Мақсаттар
XACML мақсатты ұсынады, ол негізінен тақырып, ресурс және іс-қимыл үшін қарапайым шарттар жиынтығы болып табылады, бұл шарттар белгілі бір сұранысқа саясат, саясат жиынтығы немесе ереже қолданылуы үшін орындалуы тиіс. Сұранысқа саясат немесе саясат жиынтығы қолданылатыны анықталғаннан кейін, оның ережелері қолжетімділік туралы шешімді және жауапты анықтау үшін бағаланады. Мақсатты ақпарат қолданылу мүмкіндігін тексерудің қанағаттандырушы жолы болумен қатар, саясаттарды индекстеуге де мүмкіндік береді, бұл көптеген саясаттарды сақтау және олардың қайсысы қолданылатынын жылдам анықтау қажет болғанда өте пайдалы. Қызметке қол жеткізу туралы сұрау келген кезде, PDP саясаттардың мақсатты шектеулеріне сәйкес индекстелгендігіне байланысты, осы сұранысқа қатысты саясатты қайдан іздеу керектігін біледі. Мақсат кез келген сұранысқа қолданылатынын көрсетуі мүмкін. Саясат жиынтығы, саясат және ережелердің барлығы мақсатты элементтерді қамтуы мүмкін.
Шарттар
Шарттар тек қағидаларда ғана кездеседі. Шарттар – бұл, по сути, кең ауқымдағы функцияларды қолдана алатын және ең бастысы, екі немесе одан көп атрибутты бірге салыстыруға мүмкіндік беретін мақсаттың жетілдірілген түрі, мысалы, пән ID == дәрігер ID. Шарттарды пайдаланып, міндеттерді бөлуді тексеруді немесе қарым-қатынас негізінде қол жеткізуді басқаруды жүзеге асыруға болады.
Алгоритмдерді біріктіру
Егер бір-біріне қайшы келетін екі ереже (немесе саясат) болса, XACML-де не болады? Мысалы, бірінші ережеде менеджерлер құжаттарды көре алады делінген болса, екінші ережеде ешкім таңғы 9-дан бұрын жұмыс істей алмайды делінген. Егер сұраныс Алис таңғы 8-де құжатты қарауға тырысып жатқан болса ше? Қай ереже басым болады? Осыны біріктіру алгоритмдері анықтап береді. Олар қақтығыстарды шешуге көмектеседі. XACML <Policy> немесе <PolicySet> элементтерінің RuleCombiningAlgId немесе PolicyCombiningAlgId атрибуттары арқылы анықталатын бірнеше біріктіру алгоритмдерін анықтайды. Ережелерді біріктіру алгоритмі ережелер жиынтығын бағалаудың жекелеген нәтижелерін ескере отырып, қол жеткізуге рұқсат беру туралы шешім қабылдау процедурасын анықтайды. Сол сияқты, саясаттарды біріктіру алгоритмі саясаттар жиынтығын бағалаудың жекелеген нәтижелерін ескере отырып, қол жеткізуге рұқсат беру туралы шешім қабылдау процедурасын анықтайды.
Сұлба
http://docs. oasis open. org/xacml/3.0/xacml өзегінің v3 схемасы wd 17. xsd
Деректер түрлері
http://www.w3.org/2001/XMLSchema#anyURI
http://www.w3.org/2001/XMLSchema#base64Binary
http://www.w3.org/2001/XMLSchema#boolean
http://www.w3.org/2001/XMLSchema#date
http://www.w3.org/2001/XMLSchema#dateTime
http://www.w3.org/2001/XMLSchema#dayTimeDuration
http://www.w3.org/2001/XMLSchema#double
http://www.w3.org/2001/XMLSchema#hexBinary
http://www.w3.org/2001/XMLSchema#integer
http://www.w3.org/2001/XMLSchema#string
http://www.w3.org/2001/XMLSchema#time
http://www.w3.org/2001/XMLSchema#yearMonthDuration
urn:oasis:names:tc:xacml:1.0:data type:rfc822Name
urn:oasis:names:tc:xacml:1.0:data type:x500Name
urn:oasis:names:tc:xacml:2.0:data type:dnsName
urn:oasis:names:tc:xacml:2.0:data type:ipAddress
urn:oasis:names:tc:xacml:3.0:data type:xpathExpression
http://www. w3. org/2001/XMLSchema#base64Binary
http://www. w3. org/2001/XMLSchema#boolean
http://www. w3. org/2001/XMLSchema#date
http://www. w3. org/2001/XMLSchema#dateTime
http://www. w3. org/2001/XMLSchema#dayTimeDuration
http://www. w3. org/2001/XMLSchema#double
http://www. w3. org/2001/XMLSchema#hexBinary
http://www. w3. org/2001/XMLSchema#integer
http://www. w3. org/2001/XMLSchema#string
http://www. w3. org/2001/XMLSchema#time
http://www. w3. org/2001/XMLSchema#yearMonthDuration
urn:oasis:names:tc:xacml:1.0:data type:rfc822Name
urn:oasis:names:tc:xacml:1.0:data type:x500Name
urn:oasis:names:tc:xacml:2.0:data type:dnsName
urn:oasis:names:tc:xacml:2.0:data type:ipAddress
urn:oasis:names:tc:xacml:3.0:data type:xpathExpression
Жаңа профильдер
XACML 3.0 әкімшілік өкілеттендіруді, XACML-дің JSON профилін (сұраныс/жауап), XACML-дің REST профилін, XACML-дің көп шешімді профилін және тағы да көптеген жаңа мүмкіндіктерді ұсынады.
Басқа ерекшеліктері
XACML 3.0-дың басқа жаңа мүмкіндіктері http://www.webfarmr.eu/2010/07/enhancements және xacml 3 axiomatics/ сайтында келтірілген.
XACML TC сонымен қатар өзгерістер тізімін мына жерде жариялап отыр: http://wiki.oasis-open.org/xacml/DifferencesBetweenXACML2.0AndXACML3.0
XACML 3.0-тың бірнеше шешімділік профилі
Әдетте PDP бір уақытта бір ғана сұранысты өңдейді, мысалы: "Алиса #1 элементті көре ала ма?". PDP содан кейін бір шешіммен жауап береді. Бірақ кейде бірден бірнеше сұранысты жіберу қажет, мысалы: "Алиса #1, #2, #3 элементтерін көре ала ма, өңдей ала ма, жоя ала ма?". XACML-дің көп шешімді профилі осы қолданыс жағдайын қамтамасыз етеді. PDP әдетте барлық комбинациялардың көбейтіндісін есептейді, яғни жоғарыдағы мысалда 1 x 3 x 3 = 9 шешім бір жауапта қайтарылады.
XACML-дің ALFA профилі
ALFA – "Авторизация үшін қысқартылған тіл" дегенді білдіреді. Ол – саясат негізіндегі кіруді басқару саясатын іске асыруға арналған жеңіл синтаксис. Мысалдар үшін негізгі мақалаға жүгініңіз.
XACML- дің JSON профилі
XACML JSON профилі PEP пен PDP арасындағы интеграцияны жеңілдетеді.
XACML және Ашық саясат агенті
XACML – XML және XSLT негізінде құрылған, ашық OASIS спецификациясымен анықталған саясатты анықтау тілі. XACML спецификациясы саясатты шешетін нүктенің (PDP) жобалануын немесе іске асырылуын қамтымайды, тек олар қолданатын саясат тілін ғана қамтиды. Көптеген жекеменшік және ашық кодты PDP-лер XACML-ді өздерінің саясатты анықтау тілі ретінде пайдаланады. Ашық саясат агенті (OPA) – саясат шешімдерін қабылдау үшін саясат тілін түсіндіре алатын, ашық кодты саясатты шешетін нүктенің (PDP) іске асырылуы. OPA – XACML спецификациясын қолдайтын PDP іске асырылымдарына ұқсас, саясатты шешу қажет болатын кез келген жағдайда қолданылатын мақсаты жалпы PDP іске асырылымы. OPA-ның саясатты анықтау тілі (Rego) – JSON негізіндегі, Datalog негізіндегі және Тьюринг толық емес тіл. XACML-де жазылған саясаттар Rego-ға аударылуы мүмкін, сондай-ақ керісінше де аударуға болады.
XACML және SAML
SAML – аутентификация үшін қолданылатын жеке кіріс нүктесі (SSO) және федерация стандарты. SAML әртүрлі қолданбалар арасында жалпы сәйкестік белгісі форматы ретінде пайдаланылады. SAML және XACML екеуі де OASIS ұйымымен анықталған. SAML және XACML өзара үйлесімді жұмыс істеу үшін жасалған, мұнда SAML сәйкестік туралы ақпаратты / виртуалды сәйкестіктерді жеткізуге, ал XACML саясаттар арқылы кіруді басқару логикасын іске қосуға қолданылады.