Suche senden
Hochladen
20130509 alfresco study15permission
•
0 gefällt mir
•
1,604 views
Takeshi Totani
Folgen
Alfrescoの権限管理の特に低レベル部分について解説してみました。
Weniger lesen
Mehr lesen
Technologie
News & Politik
Melden
Teilen
Melden
Teilen
1 von 17
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
【第1.5回勉強会】後編 alfrescoの基本操作
【第1.5回勉強会】後編 alfrescoの基本操作
マジセミ by (株)オープンソース活用研究所
Alfresco study41 alfresco_sdk3_introduction
Alfresco study41 alfresco_sdk3_introduction
Takeshi Totani
Alfresco勉強会#40 QRコードによる文書の振り分け
Alfresco勉強会#40 QRコードによる文書の振り分け
Takeshi Totani
Alfresco study presentation 38th customize How-To WebDAV
Alfresco study presentation 38th customize How-To WebDAV
Takeshi Totani
Alfresco study37 alfresco_ng2_components
Alfresco study37 alfresco_ng2_components
Takeshi Totani
Alfresco study32 introducing5.1
Alfresco study32 introducing5.1
Takeshi Totani
Alfresco study29 activitymonitoring
Alfresco study29 activitymonitoring
Takeshi Totani
Alfresco勉強会#25 ワークフロー入門
Alfresco勉強会#25 ワークフロー入門
Takeshi Totani
Empfohlen
【第1.5回勉強会】後編 alfrescoの基本操作
【第1.5回勉強会】後編 alfrescoの基本操作
マジセミ by (株)オープンソース活用研究所
Alfresco study41 alfresco_sdk3_introduction
Alfresco study41 alfresco_sdk3_introduction
Takeshi Totani
Alfresco勉強会#40 QRコードによる文書の振り分け
Alfresco勉強会#40 QRコードによる文書の振り分け
Takeshi Totani
Alfresco study presentation 38th customize How-To WebDAV
Alfresco study presentation 38th customize How-To WebDAV
Takeshi Totani
Alfresco study37 alfresco_ng2_components
Alfresco study37 alfresco_ng2_components
Takeshi Totani
Alfresco study32 introducing5.1
Alfresco study32 introducing5.1
Takeshi Totani
Alfresco study29 activitymonitoring
Alfresco study29 activitymonitoring
Takeshi Totani
Alfresco勉強会#25 ワークフロー入門
Alfresco勉強会#25 ワークフロー入門
Takeshi Totani
20140129 alfresco addons
20140129 alfresco addons
Takeshi Totani
Alfresco onlineeditbywebdav 2013
Alfresco onlineeditbywebdav 2013
Takeshi Totani
20130925 alfresco study18performancetuning
20130925 alfresco study18performancetuning
Takeshi Totani
20130801 alfresco study17customizemap
20130801 alfresco study17customizemap
Takeshi Totani
20130606 alfresco study16audit
20130606 alfresco study16audit
Takeshi Totani
JJUGナイトセミナー オープンソースポータルLiferayの紹介とLiferay IDEを使った簡単ポートレット開発
JJUGナイトセミナー オープンソースポータルLiferayの紹介とLiferay IDEを使った簡単ポートレット開発
Takeshi Totani
第7回Alfresco勉強会資料 カスタムのオンライン編集
第7回Alfresco勉強会資料 カスタムのオンライン編集
Takeshi Totani
Alfresco study3 alfresco4
Alfresco study3 alfresco4
Takeshi Totani
Weitere ähnliche Inhalte
Mehr von Takeshi Totani
20140129 alfresco addons
20140129 alfresco addons
Takeshi Totani
Alfresco onlineeditbywebdav 2013
Alfresco onlineeditbywebdav 2013
Takeshi Totani
20130925 alfresco study18performancetuning
20130925 alfresco study18performancetuning
Takeshi Totani
20130801 alfresco study17customizemap
20130801 alfresco study17customizemap
Takeshi Totani
20130606 alfresco study16audit
20130606 alfresco study16audit
Takeshi Totani
JJUGナイトセミナー オープンソースポータルLiferayの紹介とLiferay IDEを使った簡単ポートレット開発
JJUGナイトセミナー オープンソースポータルLiferayの紹介とLiferay IDEを使った簡単ポートレット開発
Takeshi Totani
第7回Alfresco勉強会資料 カスタムのオンライン編集
第7回Alfresco勉強会資料 カスタムのオンライン編集
Takeshi Totani
Alfresco study3 alfresco4
Alfresco study3 alfresco4
Takeshi Totani
Mehr von Takeshi Totani
(8)
20140129 alfresco addons
20140129 alfresco addons
Alfresco onlineeditbywebdav 2013
Alfresco onlineeditbywebdav 2013
20130925 alfresco study18performancetuning
20130925 alfresco study18performancetuning
20130801 alfresco study17customizemap
20130801 alfresco study17customizemap
20130606 alfresco study16audit
20130606 alfresco study16audit
JJUGナイトセミナー オープンソースポータルLiferayの紹介とLiferay IDEを使った簡単ポートレット開発
JJUGナイトセミナー オープンソースポータルLiferayの紹介とLiferay IDEを使った簡単ポートレット開発
第7回Alfresco勉強会資料 カスタムのオンライン編集
第7回Alfresco勉強会資料 カスタムのオンライン編集
Alfresco study3 alfresco4
Alfresco study3 alfresco4
20130509 alfresco study15permission
1.
とたに 2013© Alfresco勉強会 Alfrescoの権限管理について 2013年5月9日 2013年5月10日金曜日
2.
2012.09.06 2012© 前口上 2 なんとなくは理解しているAlfrescoの権限管理 ●おおよその全体像は理解できている。 ただし、 ●権限をカスタマイズする方法 ●低レベルでの権限制御の仕組み については普段あまり意識しないので理解できていない、人が (私も含めて)多い いい機会なので、勉強会テーマとしてまとめてみました。 2013年5月10日金曜日
3.
2012.09.06 2012© Alfrescoの権限イメージ 3 ユーザA グループC コーディネータ 共同作業者 コンシューマ 編集者 ユーザB 2013年5月10日金曜日
4.
2012.09.06 2012© もう少しフォーマルなモデル 4 ユーザ グループ Authority Node ロール/Permission 親子継承 Node Authority
ロール/Permission ユーザA Cordinator グループC Collaborator ドメイン内での情報表現形式 ドメイン内の権限モデル ACL(Access Control List) ACE 親フォルダからの継承有無 2013年5月10日金曜日
5.
2012.09.06 2012© ロールとPermission 5 ロールとPermissonは違うのか ●Permissionをいくつかまとめたものがロール ●ACLの中ではロールもPermissionもどちらも指定可能 ReadProperty Write Lock Role A 2013年5月10日金曜日
6.
2012.09.06 2012© permissionDefinitions.xml① 6 ●Permissonとロールを定義 PermissionGroup Permission * PermissionGroup *
0..* grantedTo <permissionGroup name="Read" expose="true" allowFullControl="false"> <includePermissionGroup type="sys:base" permissionGroup="ReadProperties"/> <includePermissionGroup type="sys:base" permissionGroup="ReadChildren"/> <includePermissionGroup type="sys:base" permissionGroup="ReadContent"/> </permissionGroup> ... <permissionGroup name="ReadProperties" expose="true" allowFullControl="false" /> ... <permission name="_ReadProperties" expose="false" > <grantedToGroup permissionGroup="ReadProperties" /> <requiredPermission on="parent" name="_ReadChildren" implies="false"/> </permission> 2013年5月10日金曜日
7.
2012.09.06 2012© permissionDefinitions.xml② 7 PermissionSet PermissionSet type PermissionGroup* ●typeにはノードタイプが指定されている。 ●cm:cmobjectのPermissionSet以下にロールに相当するCoordinatorや CollaboratorのPermissionGroupが定義されている。 <permissionSet type="cm:cmobject"
expose="selected"> <permissionGroup name="Administrator" allowFullControl="true" expose="false" / > <permissionGroup name="Coordinator" allowFullControl="true" expose="true" /> <permissionGroup name="Collaborator" allowFullControl="false" expose="true"> <includePermissionGroup permissionGroup="Editor" type="cm:cmobject" /> <includePermissionGroup permissionGroup="Contributor" type="cm:cmobject" /> </permissionGroup> 2013年5月10日金曜日
8.
2012.09.06 2012© permissionDefinitions.xml③ 8 定義されているPermissionSet ... sys:base cm:cmobject cm:content cm:folder cm:ownable cm:lockable FullControl Read
Write Delete Administrator Coordniator Contributor ... ... Administrator Coordniator Contributor ... Administrator Coordniator Contributor ... TakeOwnership SetOwner CheckOut CheckIn ... 2013年5月10日金曜日
9.
2012.09.06 2012© ロール間の関係 9 Coordinator allowFullControl Collaborator Editor
Contributor Consumer sys:base AddChildren sys:base ReadPermissions sys:base Read sys:base Write cm:lockable Write sys:base ReadPermissions 2013年5月10日金曜日
10.
2012.09.06 2012© Shareのロール 10 Shareのサイトロールとグループ <Site>_SiteManager <Site>_SiteCollaborator <Site>_SiteContributor <Site>_SiteConsumer SiteManager SiteCollaborator SiteContributor SiteConsumer ●sitePermissionDefinitions.xmlに定義 ●同名のグループがサイトごとに作られる ロール グループ 2013年5月10日金曜日
11.
2012.09.06 2012© 低レベルの操作権限コントロール(1) 11 Acegi ●Javaのパーミッション制御ライブラリ ●ACL ●Java Class
Methodベースのセキュリティ ●現Spring Security Permissionとのマッピング /alfresco/WEB-INF/classes/alfresco/public-services-security-context.xml <bean id="NodeService_security" class="org.alfresco.repo.security.permissions.impl.acegi.MethodSecurityInterceptor"> <property name="authenticationManager"><ref bean="authenticationManager"/></property> <property name="accessDecisionManager"><ref local="accessDecisionManager"/></property> <property name="afterInvocationManager"><ref local="afterInvocationManager"/></property> <property name="objectDefinitionSource"> <value> org.alfresco.service.cmr.repository.NodeService.getStores=ACL_ALLOW,AFTER_ACL_NODE.sys:base.ReadProperties org.alfresco.service.cmr.repository.NodeService.createStore=ACL_METHOD.ROLE_ADMINISTRATOR org.alfresco.service.cmr.repository.NodeService.exists=ACL_ALLOW org.alfresco.service.cmr.repository.NodeService.getNodeStatus=ACL_NODE. 0.sys:base.ReadProperties ... 2013年5月10日金曜日
12.
2012.09.06 2012© 低レベルの操作権限コントロール(2) 12 Permissionの種類 ACL_NODE (AFTER_ACL_NODE) ACL_ALLOW/ACL_DENY ACL_METHOD PermissionDefinitions.xmlに定義されている ノードタイプとPermissionGroupに対応 AFTER_ACL_NODEは戻り値に対するチェック 許可/拒否 ACL_METHOD.ROLE_ADMINISTRATOR のケースでのみ使用されている 引数以下のPermissionを持つ場合にメソッド実行を 許可 2013年5月10日金曜日
13.
2012.09.06 2012© おまけ(本当に話したかったこと) 13 ANDでの権限解決 ●たまに実現できるかどうかを質問される ●もちろんデフォルトでは出来ない。 ●2つのグループ両方の所属しているメンバのみ、特定の権限が与えられる グループOC グループManager user1
user2 user3 2013年5月10日金曜日
14.
2012.09.06 2012© おまけ(本当に話したかったこと) 14 デモ 2013年5月10日金曜日
15.
2012.09.06 2012© おまけ(本当に話したかったこと) 15 実現方法 if (authorisations.contains(ace.getAuthority())
&& granters.contains(ace.getPermission())) { { return true; } } // Intersection customize if ( ace.getAuthority().startsWith("AND(")) { //System.out.println("## ace.getAuthority: " + ace.getAuthority()); Pattern p = Pattern.compile("AND((.*), (.*))"); Matcher matcher = p.matcher(ace.getAuthority()); matcher.find(); String auth1 = matcher.group(1); String auth2 = matcher.group(2); //System.out.println("## auth1: " + auth1); //System.out.println("## auth2: " + auth2); if (authorisations.contains(auth1) && authorisations.contains(auth2) && granters.contains(ace.getPermission()) ) { return true; } } IntersectPermissionService#AclTest#isGranted 2013年5月10日金曜日
16.
2012.09.06 2012© おまけ(本当に話したかったこと) 16 モジュールのソースコード ●https://github.com/to2y/AlfrescoIntersectionPermission 2013年5月10日金曜日
17.
2013年5月10日金曜日
Jetzt herunterladen