top of page

vIDM based authentication in vRSLCM | deep-dive |

Updated: Mar 9


 

Added an AD group into vRSLCM and gave all available roles to that group


Content Developer
Content Release Manager
LCM Cloud Admin
Certificate Administrator



From logs perspective, here are the actions which are performed in the background when you add a group and map roles to it



 ### vIDM Search group task is initiated ###



2022-07-27 22:50:12.085 INFO  [pool-3-thread-13] c.v.v.l.v.c.t.s.VidmSearchUserGroupTask -  -- Starting :: vIDM Search User Group task 
2022-07-27 22:50:12.359 INFO  [pool-3-thread-13] c.v.v.l.v.d.r.c.VidmRestClient -  -- API Response Status : 200 Response Message : {"totalResults":0,"itemsPerPage":0,"startIndex":1,"schemas":[],"Resources":[]} 
2022-07-27 22:50:12.359 INFO  [pool-3-thread-48] c.v.v.l.v.d.r.c.VidmRestClient -  -- API Response Status : 200 Response Message : {"totalResults":0,"itemsPerPage":0,"startIndex":1,"schemas":[],"Resources":[]} 
2022-07-27 22:50:12.362 INFO  [pool-3-thread-48] c.v.v.l.v.d.r.u.VidmUserGroupMgmtRestUtil -  -- Get User response : VidmRestClientResponseDTO [statusCode=200, responseMessage={"totalResults":0,"itemsPerPage":0,"startIndex":1,"schemas":[],"Resources":[]}] 
2022-07-27 22:50:12.364 INFO  [pool-3-thread-13] c.v.v.l.v.d.r.u.VidmUserGroupMgmtRestUtil -  -- Get User response : VidmRestClientResponseDTO [statusCode=200, responseMessage={"totalResults":0,"itemsPerPage":0,"startIndex":1,"schemas":[],"Resources":[]}] 
2022-07-27 22:50:12.367 INFO  [pool-3-thread-48] c.v.v.l.c.l.MaskingPrintStream -  -- * SYSOUT/SYSERR CAPTURED:  -- Get User response : VidmRestClientResponseDTO [statusCode=200, responseMessage={"totalResults":0,"itemsPerPage":0,"startIndex":1,"schemas":[],"Resources":[]}] 
2022-07-27 22:50:12.369 INFO  [pool-3-thread-13] c.v.v.l.c.l.MaskingPrintStream -  -- * SYSOUT/SYSERR CAPTURED:  -- Get User response : VidmRestClientResponseDTO [statusCode=200, responseMessage={"totalResults":0,"itemsPerPage":0,"startIndex":1,"schemas":[],"Resources":[]}]


### Group Search Task is successful ### 



2022-07-27 22:50:12.429 INFO  [pool-3-thread-13] c.v.v.l.v.d.r.c.VidmRestClient -  -- API Response Status : 200 Response Message : {"totalResults":1,"itemsPerPage":1,"startIndex":1,"schemas":["urn:scim:schemas:core:1.0","urn:scim:schemas:extension:workspace:1.0"],"Resources":[{"id":"7e8dbd36-da 
3b-4277-a42a-f3a3c5893faa","meta":{"created":"2022-02-14T00:56:55.862Z","lastModified":"2022-02-14T00:56:55.862Z","location":"https://idm.cap.org/SAAS/jersey/manager/api/scim/Groups/7e8dbd36-da3b-4277-a42a-f3a3c5893faa","version":"W/\"1644800215862\""},"displayName":"capadmins@cap.org","externa 
lId":"05da97d4-1269-48a2-94e9-1b7e4e4c9ea5","urn:scim:schemas:extension:workspace:1.0":{"distinguishedName":"CN=capadmins,CN=Users,DC=cap,DC=org","domain":"cap.org","internalGroupType":"EXTERNAL"}}]} 
2022-07-27 22:50:12.429 INFO  [pool-3-thread-48] c.v.v.l.v.d.r.c.VidmRestClient -  -- API Response Status : 200 Response Message : {"totalResults":2,"itemsPerPage":2,"startIndex":1,"schemas":["urn:scim:schemas:core:1.0","urn:scim:schemas:extension:workspace:1.0"],"Resources":[{"id":"5fcb2bcd-4270-483e-9718-34d6b9139614","meta":{"created":"2022-02-14T00:56:55.863Z","lastModified":"2022-02-14T00:56:55.863Z","location":"https://idm.cap.org/SAAS/jersey/manager/api/scim/Groups/5fcb2bcd-4270-483e-9718-34d6b9139614","version":"W/\"1644800215863\""},"displayName":"premadmins@cap.org","externalId":"20acbbd4-07d3-46ff-922c-a6c6daaf1664","urn:scim:schemas:extension:workspace:1.0":{"distinguishedName":"CN=premadmins,CN=Users,DC=cap,DC=org","domain":"cap.org","internalGroupType":"EXTERNAL"}},{"id":"7e8dbd36-da3b-4277-a42a-f3a3c5893faa","meta":{"created":"2022-02-14T00:56:55.862Z","lastModified":"2022-02-14T00:56:55.862Z","location":"https://idm.cap.org/SAAS/jersey/manager/api/scim/Groups/7e8dbd36-da3b-4277-a42a-f3a3c5893faa","version":"W/\"1644800215862\""},"displayName":"capadmins@cap.org","externalId":"05da97d4-1269-48a2-94e9-1b7e4e4c9ea5","urn:scim:schemas:extension:workspace:1.0":{"distinguishedName":"CN=capadmins,CN=Users,DC=cap,DC=org","domain":"cap.org","internalGroupType":"EXTERNAL"}}]} 
2022-07-27 22:50:12.431 INFO  [pool-3-thread-13] c.v.v.l.v.d.r.u.VidmUserGroupMgmtRestUtil -  -- Get Group response : VidmRestClientResponseDTO [statusCode=200, responseMessage={"totalResults":1,"itemsPerPage":1,"startIndex":1,"schemas":["urn:scim:schemas:core:1.0","urn:scim:schemas:extension:workspace:1.0"],"Resources":[{"id":"7e8dbd36-da3b-4277-a42a-f3a3c5893faa","meta":{"created":"2022-02-14T00:56:55.862Z","lastModified":"2022-02-14T00:56:55.862Z","location":"https://idm.cap.org/SAAS/jersey/manager/api/scim/Groups/7e8dbd36-da3b-4277-a42a-f3a3c5893faa","version":"W/\"1644800215862\""},"displayName":"capadmins@cap.org","externalId":"05da97d4-1269-48a2-94e9-1b7e4e4c9ea5","urn:scim:schemas:extension:workspace:1.0":{"distinguishedName":"CN=capadmins,CN=Users,DC=cap,DC=org","domain":"cap.org","internalGroupType":"EXTERNAL"}}]}] 

2022-07-27 22:50:12.708 INFO  [pool-3-thread-48] c.v.v.l.c.l.MaskingPrintStream -  -- * SYSOUT/SYSERR CAPTURED:  -- Task Result : {"status":"SUCCESS","statusCode":200,"responseType":"com.vmware.vrealize.lcm.vidm.request.common.dto.ad.VidmFormattedUserNGrpListDTO","response":{"vidmUsers":[],"vidmGroups":[{"displayName":"premadmins@cap.org","groupType":"EXTERNAL","providerIdentifier":"5fcb2bcd-4270-483e-9718-34d6b9139614","domain":"cap.org","isDisabled":false,"groupMetadata":{"distinguishedName":"CN=premadmins,CN=Users,DC=cap,DC=org","externalId":"20acbbd4-07d3-46ff-922c-a6c6daaf1664","additionalMeta":[]}},{"displayName":"capadmins@cap.org","groupType":"EXTERNAL","providerIdentifier":"7e8dbd36-da3b-4277-a42a-f3a3c5893faa","domain":"cap.org","isDisabled":false,"groupMetadata":{"distinguishedName":"CN=capadmins,CN=Users,DC=cap,DC=org","externalId":"05da97d4-1269-48a2-94e9-1b7e4e4c9ea5","additionalMeta":[]}}]},"message":null,"currentState":null,"currentTask":null} 
2022-07-27 22:50:12.708 INFO  [pool-3-thread-48] c.v.v.l.p.a.s.Task -  -- Injecting Edge :: OnVidmSearchUserGrpSuccess
*
*

2022-07-27 22:50:13.164 INFO  [scheduling-1] c.v.v.l.a.c.EventProcessor -  -- INITIALIZING NEW EVENT :: { 
  "vmid" : "ab8c333e-5019-4df7-969f-8511af14dac8", 
  "transactionId" : null, 
  "tenant" : "default", 
  "createdBy" : "root", 
  "lastModifiedBy" : "root", 
  "createdOn" : 1658962212711, 
  "lastUpdatedOn" : 1658962213127, 
  "version" : "8.1.0.0", 
  "vrn" : null, 
  "eventName" : "OnVidmSearchUserGrpSuccess", 
  "currentState" : null, 
  "eventArgument" : "{\"componentSpec\":{\"name\":\"componentSpec\",\"type\":\"com.vmware.vrealize.lcm.domain.ComponentDeploymentSpecification\",\"value\":\"{\\\"component\\\":{\\\"symbolicName\\\":\\\"searchusergrp\\\",\\\"type\\\":null,\\\"componentVersion\\\":null,\\\"properties\\\":{\\\"vidmSearchUserRequestDTO\\\":\\\"{\\\\\\\"vidmHost\\\\\\\":\\\\\\\"idm.cap.org\\\\\\\",\\\\\\\"vidmTenant\\\\\\\":null,\\\\\\\"useServiceClient\\\\\\\":false,\\\\\\\"isTenantConfiguredByPath\\\\\\\":false,\\\\\\\"vidmAdminUser\\\\\\\":\\\\\\\"admin\\\\\\\",\\\\\\\"vidmAdminPassword\\\\\\\":\\\\\\\"JXJXJXJX\\\\\\\",\\\\\\\"vidmOAuthServiceClientId\\\\\\\":\\\\\\\"Service__OAuth2Client\\\\\\\",\\\\\\\"vidmOAuthServiceClientSecret\\\\\\\":\\\\\\\"JXJXJXJX\\\\\\\",\\\\\\\"vidmDomainName\\\\\\\":\\\\\\\"cap.org\\\\\\\",\\\\\\\"baseTenantHostname\\\\\\\":KXKXKXKX,\\\\\\\"requestId\\\\\\\":null,\\\\\\\"searchString\\\\\\\":\\\\\\\"cap\\\\\\\"}\\\",\\\"isVcfUser\\\":\\\"false\\\",\\\"hostName\\\":\\\"idm.cap.org\\\",\\\"vidmTenant\\\":null,\\\"useServiceClient\\\":\\\"true\\\",\\\"__isTenantByPath\\\":\\\"false\\\",\\\"vidmOAuthServiceClientId\\\":\\\"Service__OAuth2Client\\\",\\\"vidmOAuthServiceClientSecret\\\":\\\"JXJXJXJX\\\",\\\"vidmAdminUser\\\":\\\"admin\\\",\\\"vidmAdminPassword\\\":\\\"JXJXJXJX\\\",\\\"vidmDomainName\\\":\\\"cap.org\\\",\\\"vidmBaseTenantHostname\\\":KXKXKXKX,\\\"searchString\\\":\\\"cap\\\"}},\\\"priority\\\":0}\"}}", 
  "status" : "CREATED", 
  "stateMachineInstance" : "556b76d2-a8a0-4489-a382-c13f565d6d5c", 
  "errorCause" : null, 
  "sequence" : 563259, 
  "eventLock" : 1, 
  "engineNodeId" : "lcm.cap.org" 
}




### Role Mapping being performed ### 



2022-07-27 22:50:34.634 INFO  [http-nio-8080-exec-7] c.v.v.l.a.c.AuthznCustomObjectMapper -  -- Group Entity : Group [displayName=capadmins@cap.org, groupType=EXTERNAL, providerIdentifier=7e8dbd36-da3b-4277-a42a-f3a3c5893faa, domain=cap.org, isDisabled=false, groupMetadata={"distinguishedName":"CN=capadmins,CN=Users,DC=cap,DC=org","externalId":"05da97d4-1269-48a2-94e9-1b7e4e4c9ea5","additionalMeta":[]}] 
2022-07-27 22:50:35.223 INFO  [http-nio-8080-exec-7] c.v.v.l.a.c.AuthznCustomObjectMapper -  -- Group Role Mapping Entity : GroupRoleMapping [groupvmid=0d35fb24-84d2-4f5a-8c38-81b32120f08f, rolevmid=65da899f-8483-426c-a2a6-1cb5eb53260a] 
2022-07-27 22:50:35.321 INFO  [http-nio-8080-exec-7] c.v.v.l.a.c.AuthznCustomObjectMapper -  -- Group Role Mapping Entity : GroupRoleMapping [groupvmid=0d35fb24-84d2-4f5a-8c38-81b32120f08f, rolevmid=d5fea331-6576-407f-82b3-fd115541e059] 
2022-07-27 22:50:35.322 INFO  [http-nio-8080-exec-7] c.v.v.l.a.c.AuthznCustomObjectMapper -  -- Group Role Mapping Entity : GroupRoleMapping [groupvmid=0d35fb24-84d2-4f5a-8c38-81b32120f08f, rolevmid=eed92b61-31d2-4024-b550-a008e10c4c8d] 
2022-07-27 22:50:35.323 INFO  [http-nio-8080-exec-7] c.v.v.l.a.c.AuthznCustomObjectMapper -  -- Group Role Mapping Entity : GroupRoleMapping [groupvmid=0d35fb24-84d2-4f5a-8c38-81b32120f08f, rolevmid=f09ef48e-42ef-4613-8646-c62c56730c41] 
2022-07-27 22:50:35.369 INFO  [http-nio-8080-exec-7] c.v.v.l.c.l.MaskingPrintStream -  -- * SYSOUT/SYSERR CAPTURED:  -- Created Group vmid : 0d35fb24-84d2-4f5a-8c38-81b32120f08f 
2022-07-27 22:50:35.552 INFO  [http-nio-8080-exec-6] c.v.v.l.a.c.AuthznCustomObjectMapper -  -- Group Role Mapping DTO : GroupRoleMappingDTO [groupvmid=0d35fb24-84d2-4f5a-8c38-81b32120f08f, rolevmid=65da899f-8483-426c-a2a6-1cb5eb53260a] 
2022-07-27 22:50:35.552 INFO  [http-nio-8080-exec-6] c.v.v.l.a.c.AuthznCustomObjectMapper -  -- Group Role Mapping DTO : GroupRoleMappingDTO [groupvmid=0d35fb24-84d2-4f5a-8c38-81b32120f08f, rolevmid=d5fea331-6576-407f-82b3-fd115541e059] 
2022-07-27 22:50:35.553 INFO  [http-nio-8080-exec-6] c.v.v.l.a.c.AuthznCustomObjectMapper -  -- Group Role Mapping DTO : GroupRoleMappingDTO [groupvmid=0d35fb24-84d2-4f5a-8c38-81b32120f08f, rolevmid=eed92b61-31d2-4024-b550-a008e10c4c8d] 
2022-07-27 22:50:35.553 INFO  [http-nio-8080-exec-6] c.v.v.l.a.c.AuthznCustomObjectMapper -  -- Group Role Mapping DTO : GroupRoleMappingDTO [groupvmid=0d35fb24-84d2-4f5a-8c38-81b32120f08f, rolevmid=f09ef48e-42ef-4613-8646-c62c56730c41] 
2022-07-27 22:50:35.554 INFO  [http-nio-8080-exec-6] c.v.v.l.a.c.AuthznCustomObjectMapper -  -- Role DTO : RoleDTO [vmid=65da899f-8483-426c-a2a6-1cb5eb53260a, roleName=Content Developer, roleDescription=Content developer] 
2022-07-27 22:50:35.561 INFO  [http-nio-8080-exec-6] c.v.v.l.a.c.AuthznCustomObjectMapper -  -- Role DTO : RoleDTO [vmid=d5fea331-6576-407f-82b3-fd115541e059, roleName=Content Release Manager, roleDescription=Content Release Manager] 
2022-07-27 22:50:35.562 INFO  [http-nio-8080-exec-6] c.v.v.l.a.c.AuthznCustomObjectMapper -  -- Role DTO : RoleDTO [vmid=eed92b61-31d2-4024-b550-a008e10c4c8d, roleName=LCM Cloud Admin, roleDescription=vRealize Lifecycle Manager Cloud Admin] 
2022-07-27 22:50:35.563 INFO  [http-nio-8080-exec-6] c.v.v.l.a.c.AuthznCustomObjectMapper -  -- Role DTO : RoleDTO [vmid=f09ef48e-42ef-4613-8646-c62c56730c41, roleName=Certificate Administrator, roleDescription=Administrator for Certificate operations] 
2022-07-27 22:50:35.564 INFO  [http-nio-8080-exec-6] c.v.v.l.a.c.AuthznCustomObjectMapper -  -- Group DTO : GroupDTO [vmid=0d35fb24-84d2-4f5a-8c38-81b32120f08f, displayName=capadmins@cap.org, groupType=EXTERNAL, providerIdentifier=7e8dbd36-da3b-4277-a42a-f3a3c5893faa, domain=cap.org, isDisabled=false, groupMetadata=GroupMetadataDTO [distinguishedName=CN=capadmins,CN=Users,DC=cap,DC=org, externalId=05da97d4-1269-48a2-94e9-1b7e4e4c9ea5, additionalMeta=[]], roleMappings=[RoleDTO [vmid=65da899f-8483-426c-a2a6-1cb5eb53260a, roleName=Content Developer, roleDescription=Content developer], RoleDTO [vmid=d5fea331-6576-407f-82b3-fd115541e059, roleName=Content Release Manager, roleDescription=Content Release Manager], RoleDTO [vmid=eed92b61-31d2-4024-b550-a008e10c4c8d, roleName=LCM Cloud Admin, roleDescription=vRealize Lifecycle Manager Cloud Admin], RoleDTO [vmid=f09ef48e-42ef-4613-8646-c62c56730c41, roleName=Certificate Administrator, roleDescription=Administrator for Certificate operations]]]



I would now use one of the members of the AD group to login . Since i am using vIDM as my authentication source , I'll switch to it than local user and then click on "LOGIN WITH IDENTITY MANAGER"





Have 2 domains and i'll be using the first one that's the CAP.ORG , as the group where the permissions has been assigned belongs to this domain





User logs in






So Authentication and Authorization are now complete

 


Checking or trying to understand the login sequence from logs perspective



### Password based authentication begins by connector as soon as you click on sign in after entering username and password ### 
### Reference: connector.log  ( vidm ) ### 


2022-07-27T23:09:13,502 INFO  (Thread-10) [IDM;-;10.104.68.224;] com.vmware.horizon.adapters.passwordAdapter.PasswordIdpAdapter - attribute : email 
2022-07-27T23:09:13,502 INFO  (Thread-10) [IDM;-;10.104.68.224;] com.vmware.horizon.adapters.passwordAdapter.PasswordIdpAdapter -  User Email attribute : 
2022-07-27T23:09:13,502 INFO  (Thread-10) [IDM;-;10.104.68.224;] com.vmware.horizon.adapters.passwordAdapter.PasswordIdpAdapter - outside if  : email    HIDDEN 
2022-07-27T23:09:13,502 INFO  (Thread-10) [IDM;-;10.104.68.224;] com.vmware.horizon.adapters.passwordAdapter.PasswordIdpAdapter - attribute : userInput 
2022-07-27T23:09:13,502 INFO  (Thread-10) [IDM;-;10.104.68.224;] com.vmware.horizon.adapters.passwordAdapter.PasswordIdpAdapter - outside if  : userInput    HIDDEN 
2022-07-27T23:09:13,502 INFO  (Thread-10) [IDM;-;10.104.68.224;] com.vmware.horizon.adapters.passwordAdapter.PasswordIdpAdapter - attribute : username 
2022-07-27T23:09:13,502 INFO  (Thread-10) [IDM;-;10.104.68.224;] com.vmware.horizon.adapters.passwordAdapter.PasswordIdpAdapter - attribute : password 
2022-07-27T23:09:13,502 INFO  (Thread-10) [IDM;-;10.104.68.224;] com.vmware.horizon.adapters.passwordAdapter.PasswordIdpAdapter - attribute : forgotPasswd 
2022-07-27T23:09:13,502 INFO  (Thread-10) [IDM;-;10.104.68.224;] com.vmware.horizon.adapters.passwordAdapter.PasswordIdpAdapter - attribute : signIn 
2022-07-27T23:09:29,395 INFO  (Thread-3) [IDM;-;10.104.68.224;] com.vmware.horizon.directory.ldap.LdapDirectoryService - Password-based authentication: arun@cap.org - BEGIN 
2022-07-27T23:09:29,433 INFO  (Thread-3) [IDM;-;10.104.68.224;] com.vmware.horizon.directory.ldap.dc.service.context.JNDIContextFetcher - LDAP Context env Json Values: { 
  "java.naming.factory.initial" : "com.sun.jndi.ldap.LdapCtxFactory", 
  "javax.security.sasl.server.authentication" : "true", 
  "com.sun.jndi.ldap.connect.timeout" : "5000", 
  "java.naming.ldap.attributes.binary" : "objectGUID pae-IconData objectSid securityIdentifier", 
  "javax.security.sasl.strength" : "high,medium,low", 
  "javax.security.sasl.qop" : "auth-conf,auth-int,auth", 
  "com.sun.jndi.ldap.read.timeout" : "600000", 
  "java.naming.provider.url" : "ldap://ad.cap.org:389", 
  "java.naming.security.authentication" : "GSSAPI" 
}


### Password based authentication is now successful ### 



2022-07-27T23:09:29,443 INFO  (Thread-3) [IDM;-;10.104.68.224;] com.vmware.horizon.directory.ldap.LdapDirectoryService - Password-based authentication: arun@cap.org - SUCCESS


### States login is successful for user: arun ### 



2022-07-27T23:09:29,443 INFO  (Thread-3) [IDM;-;10.104.68.224;] com.vmware.horizon.adapters.passwordAdapter.PasswordIdpAdapter - Login: arun - SUCCESS 
2022-07-27T23:09:29,443 INFO  (Thread-3) [IDM;-;10.104.68.224;] com.vmware.horizon.connector.controller.AdapterLoginController - samlRequestInfo: SamlRequestInfo[acsUrl=https://idm.cap.org/SAAS/auth/saml/response,relayState=dfe41fd6-446a-4945-9a55-91534817100d,nameId=<null>,requestId=_35a6cdf1404211eefc1b8baed576d91b,authnContextClassRefList=[urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport]] 
2022-07-27T23:09:29,444 INFO  (Thread-3) [IDM;-;10.104.68.224;] com.vmware.horizon.connector.controller.IdPInitiatedSSOController - samlRequestInfo: SamlRequestInfo[acsUrl=https://idm.cap.org/SAAS/auth/saml/response,relayState=dfe41fd6-446a-4945-9a55-91534817100d,nameId=<null>,requestId=_35a6cdf1404211eefc1b8baed576d91b,authnContextClassRefList=[urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport]]


--------------------------------------------------------------------------
### horizon.log in vIDM states login succeeded after connector confirms it ### 
### Reference: horizon.log ### 


2022-07-27T23:09:30,131 INFO  (Thread-3) [IDM;-;10.104.68.224;] com.vmware.horizon.components.authentication.monitoring.LoginMetricsPublisher - Login succeeded.


--------------------------------------------------------