Bug 1108215
| Summary: | Make Read replication agreements permission less more targeted | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Martin Kosek <mkosek> |
| Component: | ipa | Assignee: | Martin Kosek <mkosek> |
| Status: | CLOSED ERRATA | QA Contact: | Namita Soman <nsoman> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | medium | ||
| Version: | 7.1 | CC: | mkosek, rcritten |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | ipa-4.0.3-1.el7 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2015-03-05 10:11:43 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | 976382, 1153292 | ||
| Bug Blocks: | |||
|
Description
Martin Kosek
2014-06-11 14:49:25 UTC
This request is already fixed in upstream FreeIPA project. Please refer to the linked ticket for additional details and related commits. please add steps to verify To reproduce, add privilege 'Replication Administrators' to regular user and see what user can access in cn=config. He should be only able to access mostly the replication agreements, he should not be able to access any settings in cn=config base: $ kinit admin $ echo Secret123 | ipa user-add --first Foo --last=Bar fbar --password $ ipa role-add test --desc test $ ipa role-add-privilege test --privileges 'Replication Administrators' $ ipa role-add-member test --users fbar $ ldapsearch -h `hostname` -Y GSSAPI -b 'cn=config' $ ldapsearch -h `hostname` -Y GSSAPI -b 'cn=config' SASL/GSSAPI authentication started SASL username: fbar SASL SSF: 56 SASL data security layer installed. # extended LDIF # # LDAPv3 # base <cn=config> with scope subtree # filter: (objectclass=*) # requesting: ALL # # SNMP, config dn: cn=SNMP,cn=config objectClass: top objectClass: nsSNMP cn: SNMP nsSNMPEnabled: on # 1.3.6.1.4.1.4203.1.9.1.1, features, config dn: oid=1.3.6.1.4.1.4203.1.9.1.1,cn=features,cn=config objectClass: top objectClass: directoryServerFeature oid: 1.3.6.1.4.1.4203.1.9.1.1 cn: Sync Request Control # 2.16.840.1.113730.3.4.9, features, config dn: oid=2.16.840.1.113730.3.4.9,cn=features,cn=config objectClass: top objectClass: directoryServerFeature oid: 2.16.840.1.113730.3.4.9 cn: VLV Request Control # cn\3Dchangelog, mapping tree, config dn: cn=cn\3Dchangelog,cn=mapping tree,cn=config objectClass: top objectClass: extensibleObject objectClass: nsMappingTree cn: cn=changelog # dc\3Dmkosek-fedora20\2Cdc\3Dtest, mapping tree, config dn: cn=dc\3Dmkosek-fedora20\2Cdc\3Dtest,cn=mapping tree,cn=config objectClass: top objectClass: extensibleObject objectClass: nsMappingTree cn: dc=mkosek-fedora20,dc=test cn: "dc=mkosek-fedora20,dc=test" nsslapd-state: backend nsslapd-backend: userRoot # o\3Dipaca, mapping tree, config dn: cn=o\3Dipaca,cn=mapping tree,cn=config objectClass: top objectClass: extensibleObject objectClass: nsMappingTree cn: o=ipaca # search result search: 4 result: 0 Success # numResponses: 7 # numEntries: 6 When you run this test on an unpatched IPA, you will see *much more* access: $ ldapsearch -h `hostname` -Y GSSAPI -b 'cn=config' SASL/GSSAPI authentication started SASL username: fbar@UNPATCHED-IPA-TEST SASL SSF: 56 SASL data security layer installed. # extended LDIF # # LDAPv3 # base <cn=config> with scope subtree # filter: (objectclass=*) # requesting: ALL # # config dn: cn=config cn: config objectClass: top objectClass: extensibleObject objectClass: nsslapdConfig nsslapd-backendconfig: cn=config,cn=userRoot,cn=ldbm database,cn=plugins,cn=co nfig nsslapd-backendconfig: cn=config,cn=ipaca,cn=ldbm database,cn=plugins,cn=confi g nsslapd-betype: ldbm database nsslapd-privatenamespaces: cn=schema nsslapd-privatenamespaces: nsslapd-privatenamespaces: cn=monitor nsslapd-privatenamespaces: cn=config nsslapd-plugin: cn=Binary Syntax,cn=plugins,cn=config nsslapd-plugin: cn=Bit String Syntax,cn=plugins,cn=config nsslapd-plugin: cn=Boolean Syntax,cn=plugins,cn=config nsslapd-plugin: cn=Case Exact String Syntax,cn=plugins,cn=config nsslapd-plugin: cn=Case Ignore String Syntax,cn=plugins,cn=config nsslapd-plugin: cn=Country String Syntax,cn=plugins,cn=config nsslapd-plugin: cn=Delivery Method Syntax,cn=plugins,cn=config nsslapd-plugin: cn=Distinguished Name Syntax,cn=plugins,cn=config nsslapd-plugin: cn=Enhanced Guide Syntax,cn=plugins,cn=config ...
Verified using - ipa-server-4.1.0-15.el7.x86_64
# ipa privilege-show "Replication Administrators" --all
dn: cn=Replication Administrators,cn=privileges,cn=pbac,dc=testrelm,dc=test
Privilege name: Replication Administrators
Description: Replication Administrators
Permissions: Remove Replication Agreements, Modify DNA Range, Add Replication Agreements, Modify
Replication Agreements, System: Read Replication Agreements
Granting privilege to roles: test, Security Architect
objectclass: top, groupofnames, nestedgroup
# ipa user-add three
First name: three
Last name: three
------------------
Added user "three"
------------------
User login: three
First name: three
Last name: three
Full name: three three
Display name: three three
Initials: tt
Home directory: /home/three
GECOS: three three
Login shell: /bin/sh
Kerberos principal: three
Email address: three
UID: 1453400008
GID: 1453400008
Password: False
Member of groups: ipausers
Kerberos keys available: False
# ipa role-add test --desc test
-----------------
Added role "test"
-----------------
Role name: test
Description: test
# ipa role-add-privilege test --privileges 'Replication Administrators'
Role name: test
Description: test
Privileges: Replication Administrators
----------------------------
Number of privileges added 1
----------------------------
# ipa role-add-member test --users three
Role name: test
Description: test
Member users: three
Privileges: Replication Administrators
-------------------------
Number of members added 1
-------------------------
[root@qeblade6 ipa-dns]# kinit three
Password for three:
# ldapsearch -h `hostname` -Y GSSAPI -b 'cn=config'
SASL/GSSAPI authentication started
SASL username: three
SASL SSF: 56
SASL data security layer installed.
# extended LDIF
#
# LDAPv3
# base <cn=config> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# SNMP, config
dn: cn=SNMP,cn=config
objectClass: top
objectClass: nsSNMP
cn: SNMP
nsSNMPEnabled: on
# 1.3.6.1.4.1.4203.1.9.1.1, features, config
dn: oid=1.3.6.1.4.1.4203.1.9.1.1,cn=features,cn=config
objectClass: top
objectClass: directoryServerFeature
oid: 1.3.6.1.4.1.4203.1.9.1.1
cn: Sync Request Control
# 2.16.840.1.113730.3.4.9, features, config
dn: oid=2.16.840.1.113730.3.4.9,cn=features,cn=config
objectClass: top
objectClass: directoryServerFeature
oid: 2.16.840.1.113730.3.4.9
cn: VLV Request Control
# cn\3Dchangelog, mapping tree, config
dn: cn=cn\3Dchangelog,cn=mapping tree,cn=config
objectClass: top
objectClass: extensibleObject
objectClass: nsMappingTree
cn: cn=changelog
# dc\3Dtestrelm\2Cdc\3Dtest, mapping tree, config
dn: cn=dc\3Dtestrelm\2Cdc\3Dtest,cn=mapping tree,cn=config
objectClass: top
objectClass: extensibleObject
objectClass: nsMappingTree
cn: dc=testrelm,dc=test
cn: "dc=testrelm,dc=test"
nsslapd-state: backend
nsslapd-backend: userRoot
# o\3Dipaca, mapping tree, config
dn: cn=o\3Dipaca,cn=mapping tree,cn=config
objectClass: top
objectClass: extensibleObject
objectClass: nsMappingTree
cn: o=ipaca
# replica, dc\3Dtestrelm\2Cdc\3Dtest, mapping tree, config
dn: cn=replica,cn=dc\3Dtestrelm\2Cdc\3Dtest,cn=mapping tree,cn=config
cn: replica
nsDS5Flags: 1
objectClass: nsds5replica
objectClass: top
objectClass: extensibleobject
nsDS5ReplicaType: 3
nsDS5ReplicaRoot: dc=testrelm,dc=test
nsds5ReplicaLegacyConsumer: off
nsDS5ReplicaId: 4
nsDS5ReplicaBindDN: cn=replication manager,cn=config
nsDS5ReplicaBindDN: krbprincipalname=ldap/mgmt2.testrelm.test,cn
=services,cn=accounts,dc=testrelm,dc=test
nsState:: BAAAAAAAAAC/i8JUAAAAAAAAAAAAAAAAAgAAAAAAAAADAAAAAAAAAA==
nsDS5ReplicaName: 39122d05-a1e611e4-afdfc7c4-104d6a42
nsds5ReplicaChangeCount: 1634
nsds5replicareapactive: 0
# replica, o\3Dipaca, mapping tree, config
dn: cn=replica,cn=o\3Dipaca,cn=mapping tree,cn=config
objectClass: top
objectClass: nsDS5Replica
objectClass: extensibleobject
nsDS5ReplicaRoot: o=ipaca
nsDS5ReplicaType: 3
nsDS5ReplicaBindDN: cn=Replication Manager masterAgreement1-mgmt2.testrelm.tes
t-pki-tomcat,ou=csusers,cn=config
cn: replica
nsDS5ReplicaId: 96
nsDS5Flags: 1
nsState:: YAAAAAAAAABkicJUAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAA==
nsDS5ReplicaName: 8098b905-a1e611e4-afdfc7c4-104d6a42
nsds5ReplicaChangeCount: 171
# masterAgreement1-mgmt2.testrelm.test-pki-tomcat, replica, o\3Dipaca, mappin
g tree, config
dn: cn=masterAgreement1-mgmt2.testrelm.test-pki-tomcat,cn=replica,cn=o\3Dipaca
,cn=mapping tree,cn=config
objectClass: top
objectClass: nsds5replicationagreement
cn: masterAgreement1-mgmt2.testrelm.test-pki-tomcat
nsDS5ReplicaRoot: o=ipaca
nsDS5ReplicaHost: mgmt2.testrelm.test
nsDS5ReplicaPort: 389
nsDS5ReplicaBindDN: cn=Replication Manager cloneAgreement1-mgmt2.testrelm.test
-pki-tomcat,ou=csusers,cn=config
nsDS5ReplicaBindMethod: Simple
nsDS5ReplicaTransportInfo: TLS
description: masterAgreement1-mgmt2.testrelm.test-pki-tomcat
nsDS5ReplicaCredentials: {DES}bZnLgsOZYoTrmMSptEByLA==
nsds50ruv: {replicageneration} 54c06e13000000600000
nsds50ruv: {replica 97 ldap://mgmt2.testrelm.test:389} 54c06e55000000610000 54
c06e58000200610000
nsds50ruv: {replica 96 ldap://qeblade6.testrelm.test:389} 54c06e39000000600000
54c15b5d000000600000
nsruvReplicaLastModified: {replica 97 ldap://mgmt2.testrelm.test:389} 00000000
nsruvReplicaLastModified: {replica 96 ldap://qeblade6.testrelm.test:389} 00000
000
nsds5replicaLastUpdateStart: 0
nsds5replicaLastUpdateEnd: 0
nsds5replicaChangesSentSinceStartup:
nsds5replicaLastUpdateStatus: -1 Unable to acquire replicaLDAP error: Can't co
ntact LDAP server
nsds5replicaUpdateInProgress: FALSE
nsds5replicaLastInitStart: 0
nsds5replicaLastInitEnd: 0
# search result
search: 4
result: 0 Success
# numResponses: 10
# numEntries: 9
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHSA-2015-0442.html |