Besides traditional roles (Org Administrator, vApp Author, …) there is already for some time (as of vCloud Director 8.0) the possibility to assign to vCloud Director organization users a role called ‘Defer to Identity Provider’.
I am going to show how this role can be used to manage assignments of organization roles centrally from within the Identity Provider (IdP) and not from vCloud Director at the Organization level. Central management might be beneficial in cases where there are many Organizations (and vCloud Director instances) associated with single IdP and one user might have access to multiple Organizations. With the traditional approach the user (or his group) would have to be imported into each Organization where he/she should have access and assigned a role.
By deferring to identity provider we rely on the IdP to provide the user’s role just in time when the user is logging in. The feature works both with SAML and OAuth identity providers. In my example I am going to be using the SAML IdP provided by Active Director Federation Services federated with vCloud Director as described in my older blog post.
The set up:
- Active Directory is used to manage all the users (with exception of local user for onboarding or troubleshooting purposes). The AD can be owned by the Service Provider or the tenant, it depends on the use case.
- AD FS has been deployed and integrated with vCloud Director Organizations. Note that each Organization must be federated with AD FS specifically. And the federation must be refreshed every year by regeneration of new certificate. In SP use case some level of automation is essential. For details refer to the blog article linked above.
- AD users who should have access to vCloud Director organization will be part of AD group <Tenant_X>.
- Role association will be achieved by assigning the AD users to specific AD groups: Organization Administrator, vApp Author, …
- For each role we will need to add new Transform Claim Rule in AD FS.
- On the existing relaying party trust click Edit Claim Rules
- Click Add Rule
- Select Send Group Membership as a Claim template
- Name the rule (e.g. vApp Author)
- Browse to the User’s group that represents the role membership (vApp Author group)
- In Outgoing claim type select Role.
- In Outgoing claim value type the vCloud Director role name (vApp Author).
- In vCloud Director Organization we need to do following:
- As already mentioned each Org needs to be federated with AD FS
- In Members > Groups import the <Tenant X> group from Source: SAML with Role: Defer to Identity Provider.
- With vCloud API specify RoleAttributeName in OrgFederationSettings. The name for AD FS should be:http://schemas.microsoft.com/ws/2008/06/identity/claims/role
- As already mentioned each Org needs to be federated with AD FS
Now the users can start logging in with their AD accounts and they will be automatically imported as users with Defer to IdP role. If needed, you can still directly import SAML users and specifically give them role which will take precedence over the IdP role.
