Explizite Sicherheitsrichtlinie für MBeans definieren
Sie können für bestimmte MBeans explizite Sicherheitsrichtlinien definieren. Verwenden Sie dieses Beispiel, um eine Sicherheitsrichtlinie für eine MBean zu definieren.
Vorbereitende Schritte
Informationen zu diesem Vorgang
Führen Sie die folgenden Tasks aus, um eine explizite Sicherheitsrichtlinie zu definieren.
Vorgehensweise
- Angenommen, Sie haben eine MBean, die in der MBean-Deskriptordatei sample.xml definiert ist.
- Legen Sie die explizite Sicherheitsrichtlinie für diese MBean in der Datei sampleSecurity.xml fest. ´Entsprechend der Namenskonvention müssen Sie an den Namen der MBean-Deskriptordatei "Security" anfügen, um den Namen der Sicherheitsdeskriptordatei für die MBean zu bilden.
- Kopieren Sie die Deskriptordatei mit der Sicherheitsrichtlinie in das Verzeichnis, in dem sich auch die Sicherheitsdeskriptordatei für die MBean befindet, damit das Ladeprogramm der MBean die Datei findet. Dieses Verzeichnis ist das Standardverzeichnis für die Deskriptordateien mit den Sicherheitsrichtlinien. Wenn keine Sicherheitsdeskriptordatei für die MBean vorhanden ist, wird die Standardsicherheitsrichtlinie für MBeans verwendet.
- Geben Sie den MBean-Namen sample im Ressourcenelementfeld resource-name der Datei sampleSecurity.xml ein, damit das Ladeprogramm für die MBean-Richtlinie die Sicherheitsrichtlinie der MBean der MBean zuordnen kann. Die Deskriptordefinition für die MBean-Sicherheit ist der Sicherheitsrichtlinie, die im J2EE-Implementierungsdeskriptor definiert ist, sehr ähnlich.
Ergebnisse
Beispiel
Das folgende Beispiel beschreibt das Format der MBean-Sicherheitsdeskriptordatei für die Datei sampleSecurity.xml.
Zeile 2 gibt an, dass das MBean-Sicherheitsdeskriptorschema von der Datei RolePermissionDescriptor.dtd, einer DTD (Document Type Definition) in WebSphere Application Server definiert wird.
Wie in Zeile 3 gezeigt, enthält jede MBean-Deskriptordatei ein einzelnes Element role-permission. Die Hierarchie für die Verwaltungssicherheitsrollen wird in den Elementen security-role zwischen Zeile 9 und Zeile 37 definiert. Die Verwaltungssicherheitsrolle hat eine Vererbungsbeziehung.
Wie in den Zeilen 14 bis 21 definiert, impliziert die Sicherheitsrolle "Bedienung" (Operator) die Sicherheitsrolle "Überwachung" (Monitor), d. h., ein Benutzer mit der Rolle "Bedienung" hat automatisch alle Berechtigungen der Rolle "Überwachung". Wie in den Zeilen 30 und 38 definiert, impliziert die Sicherheitsrolle "Verwaltung" (Administrator) die Sicherheitsrolle "Konfiguration" (Configurator) und "Bedienung". Jede MBean-Sicherheitsdeskriptordatei hat in der Regel dieselbe Beziehungsdefinition für Rollen, sodass Sie diesen Abschnitt ausschneiden und Ihre MBean-Sicherheitsdeskriptordatei einfügen können.
Nach dem Element security-role ist mindestens ein Element method-permission definiert. Jedes Element method-permission definiert die erforderlichen Rollen für eine oder mehrere Methoden. Geben Sie Methodenparameter an, um Kollisionen zu vermeiden, wenn mehrere Methoden denselben Namen haben.
1. <?xml version="1.0" encoding="UTF-8"?>
2. <!DOCTYPE role-permission SYSTEM "RolePermissionDescriptor.dtd" >
3. <role-permission>
4. <resource>
5. <resource-name>sample</resource-name>
6. <class-name>com.ibm.ws.security.descriptor.sample</class-name>
7. <description>This is a sample for testing role permission descriptor.</description>
8. </resource>
9. <security-role>
10. <role>
11. <role-name>monitor</role-name>
12. </role>
13. </security-role>
14. <security-role>
15. <role>
16. <role-name>operator</role-name>
17. <imply>
18. <role-name>monitor</role-name>
19. </imply>
20. </role>
21. </security-role>
22. <security-role>
23. <role>
24. <role-name>configurator</role-name>
25. <imply>
26. <role-name>monitor</role-name>
27. </imply>
28. /role>
29. </security-role>
30. <security-role>
31. <role>
32. <role-name>administrator</role-name>
33. <imply>
34. <role-name>operator</role-name>
35. <role-name>configurator</role-name>
36. </imply>
37. </role>
38. </security-role>
39. <method-permission>
40. <description>Sample method permission table</description>
41. <role-name>operator</role-name>
42. <method>
43. <description>Sample operation</description>
44. <resource-name>sample</resource-name>
45. <method-name>stop</method-name>
46. </method>
47. </method-permission>
48. <method-permission>
49. <description>Sample method permission table</description>
50. <role-name>operator</role-name>
51. <method>
52. <description>Sample operation</description>
53. <resource-name>sample</resource-name>
54. <method-name>start</method-name>
55. <method-params>
56. <method-param>java.lang.String</method-param>
57. <method-param>java.lang.String</method-param>
58. </method-params>
59. </method>
60. </method-permission>
61. <method-permission>
62. <description>Sample method permission table</description>
63. <role-name>operator</role-name>
64. <method>
65. <description>Sample operation</description>
66. <resource-name>sample</resource-name>
67. <method-name>monitor</method-name>
68. <method-params>
69. </method-params>
70. </method>
71. </method-permission>
72. <method-permission>
73. <description>Sample method permission table</description>
74. <role-name>configurator</role-name>
75. <method>
76. <description>Sample operation</description>
77. <resource-name>sample</resource-name>
78. <method-name>setValue</method-name>
79. <method-params>
80. <method-param>java.lang.Boolean</method-param>
81. </method-params>
82. </method>
83. </method-permission>
84. <method-permission>
85. <description>Sample method permission table</description>
86. <role-name>monitor</role-name>
87. <method>
88. <description>Sample operation</description>
89. <resource-name>sample</resource-name>
90. <method-name>getValue</method-name>
91. </method>
92. </method-permission>
93. </role-permission>