jboss-as-security_1_0.xsd 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. ~ JBoss, Home of Professional Open Source.
  4. ~ Copyright 2011, Red Hat, Inc., and individual contributors
  5. ~ as indicated by the @author tags. See the copyright.txt file in the
  6. ~ distribution for a full listing of individual contributors.
  7. ~
  8. ~ This is free software; you can redistribute it and/or modify it
  9. ~ under the terms of the GNU Lesser General Public License as
  10. ~ published by the Free Software Foundation; either version 2.1 of
  11. ~ the License, or (at your option) any later version.
  12. ~
  13. ~ This software is distributed in the hope that it will be useful,
  14. ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  16. ~ Lesser General Public License for more details.
  17. ~
  18. ~ You should have received a copy of the GNU Lesser General Public
  19. ~ License along with this software; if not, write to the Free
  20. ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  21. ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  22. -->
  23. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  24. targetNamespace="urn:jboss:domain:security:1.0"
  25. xmlns="urn:jboss:domain:security:1.0"
  26. elementFormDefault="qualified"
  27. attributeFormDefault="unqualified"
  28. version="1.0">
  29. <!-- The security subsystem root element -->
  30. <xs:element name="subsystem" type="security-containerType" />
  31. <!-- The security container configuration -->
  32. <xs:complexType name="security-containerType">
  33. <xs:annotation>
  34. <xs:documentation>
  35. <![CDATA[
  36. The security subsystem, used to configure authentication and authorization.
  37. ]]>
  38. </xs:documentation>
  39. </xs:annotation>
  40. <xs:all>
  41. <xs:element name="security-management" type="securityManagementType" minOccurs="0" maxOccurs="1"/>
  42. <xs:element name="subject-factory" type="subjectFactoryType" minOccurs="0" maxOccurs="1"/>
  43. <xs:element name="security-domains" type="securityDomainsType" minOccurs="0" maxOccurs="1"/>
  44. <xs:element name="security-properties" type="properties" minOccurs="0" maxOccurs="1"/>
  45. </xs:all>
  46. </xs:complexType>
  47. <!-- The security management element -->
  48. <xs:complexType name="securityManagementType">
  49. <xs:annotation>
  50. <xs:documentation>
  51. <![CDATA[
  52. The optional "authentication-manager-class-name" attribute specifies the AuthenticationManager
  53. implementation class name to use. To use the container default set the value to "default".
  54. The optional "deep-copy-subject-mode" attribute sets the copy mode of subjects done by the security
  55. managers to be deep copies that makes copies of the subject principals and credentials if they are
  56. cloneable. It should be set to true if subject include mutable content that can be corrupted when
  57. multiple threads have the same identity and cache flushes/logout clearing the subject in one thread
  58. results in subject references affecting other threads. Default value is "false".
  59. The optional "default-callback-handler-class-name" specifies a global class name for the
  60. CallbackHandler implementation to be used with login modules. To use the container default set the
  61. value to "default".
  62. The optional "authorization-manager-class-name" attribute specifies the AuthorizationManager
  63. implementation class name to use. To use the container default set the value to "default".
  64. The optional "audit-manager-class-name" attribute specifies the AuditManager
  65. implementation class name to use. To use the container default set the value to "default".
  66. The optional "identity-trust-manager-class-name" attribute specifies the IdentityTrustManager
  67. implementation class name to use. To use the container default set the value to "default".
  68. The optional "mapping-manager-class-name" attribute specifies the MappingManager
  69. implementation class name to use. To use the container default set the value to "default".
  70. ]]>
  71. </xs:documentation>
  72. </xs:annotation>
  73. <xs:attribute name="authentication-manager-class-name" type="xs:string" use="optional"/>
  74. <xs:attribute name="deep-copy-subject-mode" type="xs:boolean" use="optional"/>
  75. <xs:attribute name="default-callback-handler-class-name" type="xs:string" use="optional"/>
  76. <xs:attribute name="authorization-manager-class-name" type="xs:string" use="optional"/>
  77. <xs:attribute name="audit-manager-class-name" type="xs:string" use="optional"/>
  78. <xs:attribute name="identity-trust-manager-class-name" type="xs:string" use="optional"/>
  79. <xs:attribute name="mapping-manager-class-name" type="xs:string" use="optional"/>
  80. </xs:complexType>
  81. <!-- The subject factory element -->
  82. <xs:complexType name="subjectFactoryType">
  83. <xs:annotation>
  84. <xs:documentation>
  85. <![CDATA[
  86. The optional "subject-factory-class-name" attribute sets the class name for the SubjectFactory
  87. implementation to be used. To use the container default set the value to "default".
  88. ]]>
  89. </xs:documentation>
  90. </xs:annotation>
  91. <xs:attribute name="subject-factory-class-name" type="xs:string" use="optional"/>
  92. </xs:complexType>
  93. <!-- Configuration for security domains -->
  94. <xs:complexType name="securityDomainsType">
  95. <xs:annotation>
  96. <xs:documentation>
  97. <![CDATA[
  98. Configures security domains for applications.
  99. ]]>
  100. </xs:documentation>
  101. </xs:annotation>
  102. <xs:sequence>
  103. <xs:element name="security-domain" type="securityDomainType" minOccurs="0" maxOccurs="unbounded"/>
  104. </xs:sequence>
  105. </xs:complexType>
  106. <xs:complexType name="securityDomainType">
  107. <xs:annotation>
  108. <xs:documentation>
  109. <![CDATA[
  110. Definition of a security domain.
  111. ]]>
  112. </xs:documentation>
  113. </xs:annotation>
  114. <xs:sequence>
  115. <xs:choice>
  116. <xs:element name="authentication" type="authenticationType" minOccurs="0" maxOccurs="1"/>
  117. <xs:element name="authentication-jaspi" type="authenticationJaspiType" minOccurs="0" maxOccurs="1"/>
  118. </xs:choice>
  119. <xs:element name="authorization" type="authorizationType" minOccurs="0" maxOccurs="1"/>
  120. <xs:element name="acl" type="aclType" minOccurs="0" maxOccurs="1"/>
  121. <xs:element name="mapping" type="mappingType" minOccurs="0" maxOccurs="1"/>
  122. <xs:element name="audit" type="auditType" minOccurs="0" maxOccurs="1"/>
  123. <xs:element name="identity-trust" type="identityTrustType" minOccurs="0" maxOccurs="1"/>
  124. <xs:element name="jsse" type="jsseType" minOccurs="0" maxOccurs="1"/>
  125. </xs:sequence>
  126. <xs:attribute name="name" type="xs:string" use="required"/>
  127. <xs:attribute name="extends" type="xs:string" use="optional"/>
  128. <xs:attribute name="cache-type" type="xs:string" use="optional"/>
  129. </xs:complexType>
  130. <xs:complexType name="authenticationType">
  131. <xs:annotation>
  132. <xs:documentation>
  133. <![CDATA[
  134. Authentication configuration.
  135. ]]>
  136. </xs:documentation>
  137. </xs:annotation>
  138. <xs:sequence>
  139. <xs:element name="login-module" type="loginModuleType" minOccurs="1" maxOccurs="unbounded"/>
  140. </xs:sequence>
  141. </xs:complexType>
  142. <xs:complexType name="authenticationJaspiType">
  143. <xs:annotation>
  144. <xs:documentation>
  145. <![CDATA[
  146. JASPI authentication configuration.
  147. ]]>
  148. </xs:documentation>
  149. </xs:annotation>
  150. <xs:sequence>
  151. <xs:element name="login-module-stack" type="loginModuleStackType" maxOccurs="unbounded"/>
  152. <xs:element name="auth-module" type="authModuleType" maxOccurs="unbounded"/>
  153. </xs:sequence>
  154. </xs:complexType>
  155. <xs:complexType name="authorizationType">
  156. <xs:annotation>
  157. <xs:documentation>
  158. <![CDATA[
  159. Authorization configuration.
  160. ]]>
  161. </xs:documentation>
  162. </xs:annotation>
  163. <xs:sequence>
  164. <xs:element name="policy-module" type="policyModuleType" maxOccurs="unbounded"/>
  165. </xs:sequence>
  166. </xs:complexType>
  167. <xs:complexType name="aclType">
  168. <xs:annotation>
  169. <xs:documentation>
  170. <![CDATA[
  171. ACL configuration.
  172. ]]>
  173. </xs:documentation>
  174. </xs:annotation>
  175. <xs:sequence>
  176. <xs:element name="acl-module" type="aclModuleType" maxOccurs="unbounded"/>
  177. </xs:sequence>
  178. </xs:complexType>
  179. <xs:complexType name="mappingType">
  180. <xs:annotation>
  181. <xs:documentation>
  182. <![CDATA[
  183. Mapping configuration.
  184. ]]>
  185. </xs:documentation>
  186. </xs:annotation>
  187. <xs:sequence>
  188. <xs:element name="mapping-module" type="mappingModuleType" maxOccurs="unbounded"/>
  189. </xs:sequence>
  190. </xs:complexType>
  191. <xs:complexType name="auditType">
  192. <xs:annotation>
  193. <xs:documentation>
  194. <![CDATA[
  195. Audit configuration.
  196. ]]>
  197. </xs:documentation>
  198. </xs:annotation>
  199. <xs:sequence>
  200. <xs:element name="provider-module" type="providerModuleType" maxOccurs="unbounded"/>
  201. </xs:sequence>
  202. </xs:complexType>
  203. <xs:complexType name="identityTrustType">
  204. <xs:annotation>
  205. <xs:documentation>
  206. <![CDATA[
  207. Identity trust configuration.
  208. ]]>
  209. </xs:documentation>
  210. </xs:annotation>
  211. <xs:sequence>
  212. <xs:element name="trust-module" type="trustModuleType" maxOccurs="unbounded"/>
  213. </xs:sequence>
  214. </xs:complexType>
  215. <xs:simpleType name="module-option-flag">
  216. <xs:annotation>
  217. <xs:documentation>
  218. <![CDATA[
  219. The flag attribute controls how a login module
  220. participates in the overall procedure.
  221. Required - The LoginModule is required to succeed. If it
  222. succeeds or fails, authentication still continues to proceed
  223. down the LoginModule list.
  224. Requisite - The LoginModule is required to succeed. If it succeeds,
  225. authentication continues down the LoginModule list. If it fails,
  226. control immediately returns to the application (authentication does not proceed
  227. down the LoginModule list).
  228. Sufficient - The LoginModule is not required to succeed. If it does
  229. succeed, control immediately returns to the application (authentication
  230. does not proceed down the LoginModule list). If it fails,
  231. authentication continues down the LoginModule list.
  232. Optional - The LoginModule is not required to succeed. If it succeeds or
  233. fails, authentication still continues to proceed down the
  234. LoginModule list.
  235. The overall authentication succeeds only if
  236. all required and requisite LoginModules succeed. If a
  237. sufficient LoginModule is configured and succeeds, then only
  238. the required and requisite LoginModules prior to that
  239. sufficient LoginModule need to have succeeded for the overall
  240. authentication to succeed. If no required or requisite
  241. LoginModules are configured for an application, then at least
  242. one sufficient or optional LoginModule must succeed.
  243. ]]>
  244. </xs:documentation>
  245. </xs:annotation>
  246. <xs:restriction base="xs:token">
  247. <xs:enumeration value="required"/>
  248. <xs:enumeration value="requisite"/>
  249. <xs:enumeration value="sufficient"/>
  250. <xs:enumeration value="optional"/>
  251. </xs:restriction>
  252. </xs:simpleType>
  253. <xs:complexType name="loginModuleType">
  254. <xs:annotation>
  255. <xs:documentation>
  256. <![CDATA[
  257. Login module configuration.
  258. ]]>
  259. </xs:documentation>
  260. </xs:annotation>
  261. <xs:sequence>
  262. <xs:element name="module-option" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
  263. </xs:sequence>
  264. <xs:attribute name="code" type="xs:string" use="required"/>
  265. <xs:attribute name="flag" type="module-option-flag" use="required"/>
  266. </xs:complexType>
  267. <xs:complexType name="propertyType">
  268. <xs:attribute name="name" type="xs:string" use="required"/>
  269. <xs:attribute name="value" type="xs:string" use="required"/>
  270. </xs:complexType>
  271. <xs:complexType name="loginModuleStackType">
  272. <xs:annotation>
  273. <xs:documentation>
  274. <![CDATA[
  275. Login module configuration for JASPI.
  276. ]]>
  277. </xs:documentation>
  278. </xs:annotation>
  279. <xs:sequence>
  280. <xs:element name="login-module" type="loginModuleType" minOccurs="1" maxOccurs="unbounded"/>
  281. </xs:sequence>
  282. <xs:attribute name="name" type="xs:string" use="required"/>
  283. </xs:complexType>
  284. <xs:complexType name="authModuleType">
  285. <xs:annotation>
  286. <xs:documentation>
  287. <![CDATA[
  288. Authentication module configuration for JASPI.
  289. ]]>
  290. </xs:documentation>
  291. </xs:annotation>
  292. <xs:sequence>
  293. <xs:element name="module-option" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
  294. </xs:sequence>
  295. <xs:attribute name="code" type="xs:string" use="required"/>
  296. <xs:attribute name="login-module-stack-ref" type="xs:string" use="optional"/>
  297. </xs:complexType>
  298. <xs:complexType name="policyModuleType">
  299. <xs:annotation>
  300. <xs:documentation>
  301. <![CDATA[
  302. Authorization module configuration.
  303. ]]>
  304. </xs:documentation>
  305. </xs:annotation>
  306. <xs:sequence>
  307. <xs:element name="module-option" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
  308. </xs:sequence>
  309. <xs:attribute name="code" type="xs:string" use="required"/>
  310. <xs:attribute name="flag" type="module-option-flag" use="required"/>
  311. </xs:complexType>
  312. <xs:complexType name="aclModuleType">
  313. <xs:annotation>
  314. <xs:documentation>
  315. <![CDATA[
  316. ACL module configuration.
  317. ]]>
  318. </xs:documentation>
  319. </xs:annotation>
  320. <xs:sequence>
  321. <xs:element name="module-option" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
  322. </xs:sequence>
  323. <xs:attribute name="code" type="xs:string" use="required"/>
  324. <xs:attribute name="flag" type="module-option-flag" use="required"/>
  325. </xs:complexType>
  326. <xs:complexType name="mappingModuleType">
  327. <xs:annotation>
  328. <xs:documentation>
  329. <![CDATA[
  330. Mapping module configuration.
  331. ]]>
  332. </xs:documentation>
  333. </xs:annotation>
  334. <xs:sequence>
  335. <xs:element name="module-option" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
  336. </xs:sequence>
  337. <xs:attribute name="type" type="xs:string" use="optional"/>
  338. <xs:attribute name="code" type="xs:string" use="required"/>
  339. </xs:complexType>
  340. <xs:complexType name="providerModuleType">
  341. <xs:annotation>
  342. <xs:documentation>
  343. <![CDATA[
  344. Audit module configuration.
  345. ]]>
  346. </xs:documentation>
  347. </xs:annotation>
  348. <xs:sequence>
  349. <xs:element name="module-option" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
  350. </xs:sequence>
  351. <xs:attribute name="code" type="xs:string" use="required"/>
  352. </xs:complexType>
  353. <xs:complexType name="trustModuleType">
  354. <xs:annotation>
  355. <xs:documentation>
  356. <![CDATA[
  357. Identity trust module configuration.
  358. ]]>
  359. </xs:documentation>
  360. </xs:annotation>
  361. <xs:sequence>
  362. <xs:element name="module-option" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
  363. </xs:sequence>
  364. <xs:attribute name="code" type="xs:string" use="required"/>
  365. <xs:attribute name="flag" type="module-option-flag" use="required"/>
  366. </xs:complexType>
  367. <xs:complexType name="jsseType">
  368. <xs:annotation>
  369. <xs:documentation>
  370. <![CDATA[
  371. JSSE configuration.
  372. ]]>
  373. </xs:documentation>
  374. </xs:annotation>
  375. <xs:sequence>
  376. <xs:element name="additional-properties" type="xs:string" minOccurs="0" maxOccurs="1"/>
  377. </xs:sequence>
  378. <xs:attribute name="keystore-password" type="xs:string" use="optional"/>
  379. <xs:attribute name="keystore-type" type="xs:string" use="optional"/>
  380. <xs:attribute name="keystore-url" type="xs:string" use="optional"/>
  381. <xs:attribute name="keystore-provider" type="xs:string" use="optional"/>
  382. <xs:attribute name="keystore-provider-argument" type="xs:string" use="optional"/>
  383. <xs:attribute name="key-manager-factory-algorithm" type="xs:string" use="optional"/>
  384. <xs:attribute name="key-manager-factory-provider" type="xs:string" use="optional"/>
  385. <xs:attribute name="truststore-password" type="xs:string" use="optional"/>
  386. <xs:attribute name="truststore-type" type="xs:string" use="optional"/>
  387. <xs:attribute name="truststore-url" type="xs:string" use="optional"/>
  388. <xs:attribute name="truststore-provider" type="xs:string" use="optional"/>
  389. <xs:attribute name="truststore-provider-argument" type="xs:string" use="optional"/>
  390. <xs:attribute name="trust-manager-factory-algorithm" type="xs:string" use="optional"/>
  391. <xs:attribute name="trust-manager-factory-provider" type="xs:string" use="optional"/>
  392. <xs:attribute name="client-alias" type="xs:string" use="optional"/>
  393. <xs:attribute name="server-alias" type="xs:string" use="optional"/>
  394. <xs:attribute name="service-auth-token" type="xs:string" use="optional"/>
  395. <xs:attribute name="client-auth" type="xs:boolean" use="optional"/>
  396. <xs:attribute name="cipher-suites" type="xs:string" use="optional"/>
  397. <xs:attribute name="protocols" type="xs:string" use="optional"/>
  398. </xs:complexType>
  399. <xs:complexType name="properties">
  400. <xs:sequence>
  401. <xs:element name="property" type="propertyType" maxOccurs="unbounded"/>
  402. </xs:sequence>
  403. </xs:complexType>
  404. </xs:schema>