From bccf93ea7df1d5aecbeb23054b8a30d4453997f6 Mon Sep 17 00:00:00 2001 From: "ivan.zamkovyi" Date: Thu, 16 Jul 2026 15:00:11 +0300 Subject: [PATCH 1/4] remove directorymanager\11.0 folder --- .../11.0/about/_category_.json | 10 - docs/directorymanager/11.0/about/about.md | 21 - .../11.0/about/configure/_category_.json | 10 - .../11.0/about/configure/configure.md | 54 -- .../11.0/about/configure/database.md | 205 ------ .../11.0/about/configure/gidserver.md | 215 ------ .../11.0/about/configure/overview.md | 22 - .../about/configure/setupauthentication.md | 72 -- .../11.0/about/installer/_category_.json | 10 - .../11.0/about/installer/install.md | 52 -- .../11.0/about/installer/installer.md | 62 -- .../11.0/about/installer/preparationtool.md | 86 --- .../11.0/about/installer/uninstall.md | 100 --- .../11.0/about/installer/whatprepinstall.md | 36 - .../11.0/about/upgrade/_category_.json | 10 - .../11.0/about/upgrade/backuprestore.md | 167 ----- .../11.0/about/upgrade/notes.md | 139 ---- .../11.0/about/upgrade/overview.md | 60 -- .../11.0/about/upgrade/upgrade.md | 184 ----- .../11.0/apis/_category_.json | 10 - .../11.0/apis/commonerrors.md | 26 - .../11.0/apis/contact/_category_.json | 10 - .../11.0/apis/contact/contactapis.md | 29 - .../11.0/apis/contact/createcontact.md | 66 -- .../11.0/apis/contact/deletecontact.md | 42 -- .../11.0/apis/contact/deletecontacts.md | 78 --- .../11.0/apis/contact/getcontact.md | 144 ---- .../11.0/apis/contact/getcontacts.md | 257 ------- .../11.0/apis/contact/updatecontact.md | 94 --- .../11.0/apis/datasource/_category_.json | 10 - .../apis/datasource/createds/_category_.json | 10 - .../11.0/apis/datasource/createds/createds.md | 23 - .../11.0/apis/datasource/createds/dsaccess.md | 70 -- .../11.0/apis/datasource/createds/dsexcel.md | 67 -- .../11.0/apis/datasource/createds/dsodbc.md | 73 -- .../11.0/apis/datasource/createds/dsoracle.md | 81 --- .../11.0/apis/datasource/createds/dssql.md | 69 -- .../11.0/apis/datasource/createds/dstext.md | 71 -- .../11.0/apis/datasource/datasourceapis.md | 49 -- .../11.0/apis/datasource/deleteds.md | 43 -- .../11.0/apis/datasource/gefsmdtype.md | 141 ---- .../11.0/apis/datasource/getallds.md | 91 --- .../11.0/apis/datasource/getalldstype.md | 45 -- .../11.0/apis/datasource/getds.md | 61 -- .../11.0/apis/datasource/getdsparameter.md | 48 -- .../11.0/apis/datasource/getdspo.md | 46 -- .../11.0/apis/datasource/getdstypeid.md | 97 --- .../11.0/apis/datasource/getdstypename.md | 51 -- .../11.0/apis/datasource/getfilterds.md | 94 --- .../11.0/apis/datasource/getfntype.md | 46 -- .../11.0/apis/datasource/getmd.md | 41 -- .../11.0/apis/datasource/getmdtypest.md | 142 ---- .../11.0/apis/datasource/parsecs.md | 43 -- .../11.0/apis/datasource/updateds.md | 60 -- .../11.0/apis/datasource/validatedc.md | 59 -- docs/directorymanager/11.0/apis/gettoken.md | 54 -- .../11.0/apis/group/_category_.json | 10 - .../11.0/apis/group/createsmartgroup.md | 191 ------ .../11.0/apis/group/createstaticgroup.md | 99 --- .../11.0/apis/group/deletegroup.md | 40 -- .../11.0/apis/group/deletegroups.md | 75 -- .../11.0/apis/group/expiregroup.md | 40 -- .../11.0/apis/group/expiregroups.md | 89 --- .../11.0/apis/group/getgroup.md | 127 ---- .../11.0/apis/group/getgroups.md | 211 ------ .../11.0/apis/group/groupapis.md | 40 -- .../11.0/apis/group/joingroup.md | 68 -- .../11.0/apis/group/joingrouponbehalf.md | 71 -- .../11.0/apis/group/leavegroup.md | 69 -- .../11.0/apis/group/leavegrouponbehalf.md | 71 -- .../11.0/apis/group/previewmembership.md | 260 ------- .../11.0/apis/group/renewgroup.md | 40 -- .../11.0/apis/group/renewgroups.md | 92 --- .../11.0/apis/group/updategroup.md | 102 --- .../11.0/apis/group/updategroups.md | 153 ----- .../11.0/apis/group/updatesmartgroup.md | 40 -- .../11.0/apis/group/updatesmartgroups.md | 55 -- .../11.0/apis/jobs/_category_.json | 10 - .../11.0/apis/jobs/createjob.md | 403 ----------- .../11.0/apis/jobs/createnewjobcollection.md | 458 ------------- .../11.0/apis/jobs/deletejob.md | 46 -- .../11.0/apis/jobs/deletejobcollections.md | 46 -- .../11.0/apis/jobs/getcollectionsdetails.md | 114 ---- .../11.0/apis/jobs/getjcdetailsbyjcid.md | 639 ------------------ .../11.0/apis/jobs/getjobcollections.md | 92 --- .../11.0/apis/jobs/getjobs.md | 95 --- .../11.0/apis/jobs/getjobsdetails.md | 386 ----------- .../11.0/apis/jobs/getjobsname.md | 53 -- .../11.0/apis/jobs/jobsapis.md | 35 - .../11.0/apis/jobs/updatjobcollection.md | 456 ------------- .../11.0/apis/logs/_category_.json | 10 - .../11.0/apis/logs/admincenter.md | 32 - .../11.0/apis/logs/dataservice.md | 32 - .../11.0/apis/logs/emailservice.md | 32 - .../11.0/apis/logs/logsapis.md | 33 - .../directorymanager/11.0/apis/logs/portal.md | 32 - .../11.0/apis/logs/replicationservice.md | 32 - .../11.0/apis/logs/schedulerservice.md | 32 - .../11.0/apis/logs/securityservice.md | 32 - .../11.0/apis/user/_category_.json | 10 - .../11.0/apis/user/createuser.md | 110 --- .../11.0/apis/user/deleteuser.md | 41 -- .../11.0/apis/user/deleteusers.md | 76 --- .../11.0/apis/user/getallgroups.md | 181 ----- .../11.0/apis/user/getmydynasties.md | 112 --- .../11.0/apis/user/getmyexpiredgroups.md | 112 --- .../11.0/apis/user/getmyexpiringgroups.md | 112 --- .../apis/user/getmyexpiringgroupscount.md | 40 -- .../11.0/apis/user/getmygroups.md | 181 ----- .../11.0/apis/user/getmygroupscount.md | 40 -- .../11.0/apis/user/getmymemberships.md | 181 ----- .../11.0/apis/user/getmymemebershipcount.md | 40 -- .../11.0/apis/user/getmysmartgroups.md | 181 ----- .../11.0/apis/user/getuser.md | 169 ----- .../11.0/apis/user/getusers.md | 289 -------- .../11.0/apis/user/updateuser.md | 73 -- .../11.0/apis/user/userapis.md | 36 - docs/directorymanager/11.0/apis/welcome.md | 28 - .../11.0/apis/workflow/_category_.json | 10 - .../11.0/apis/workflow/allwfroutes.md | 409 ----------- .../11.0/apis/workflow/approvereq.md | 62 -- .../apis/workflow/configurepowerautomate.md | 53 -- .../11.0/apis/workflow/createroute.md | 150 ---- .../11.0/apis/workflow/deletereqstatus.md | 42 -- .../11.0/apis/workflow/deleteroute.md | 56 -- .../11.0/apis/workflow/deletewfreq.md | 29 - .../11.0/apis/workflow/denyreq.md | 49 -- .../11.0/apis/workflow/getapprovers.md | 79 --- .../11.0/apis/workflow/getdefroute.md | 362 ---------- .../11.0/apis/workflow/getmyreq.md | 145 ---- .../11.0/apis/workflow/getpendingreq.md | 294 -------- .../apis/workflow/getpowerautomatesettings.md | 38 -- .../11.0/apis/workflow/getwfreq.md | 116 ---- .../11.0/apis/workflow/getwfroute.md | 81 --- .../workflow/updatepowerautomatesettings.md | 44 -- .../11.0/apis/workflow/updateroute.md | 115 ---- .../11.0/apis/workflow/workflowapis.md | 38 -- .../11.0/authenticate/_category_.json | 10 - .../asidentityprovider/_category_.json | 10 - .../asidentityprovider/metadata.md | 46 -- .../asidentityprovider/overview.md | 23 - .../asidentityprovider/register.md | 81 --- .../authenticate/asidentityprovider/signin.md | 26 - .../asserviceprovider/_category_.json | 10 - .../asserviceprovider/adfs/_category_.json | 10 - .../adfs/configureadfsindirectorymanager.md | 127 ---- .../adfs/configurerelayingpartytrust.md | 72 -- .../asserviceprovider/adfs/generateurls.md | 53 -- .../asserviceprovider/adfs/overview.md | 50 -- .../asserviceprovider/adfs/signin.md | 41 -- .../entrasso/_category_.json | 10 - .../entrasso/configureinentra.md | 70 -- .../configureproviderindirectorymanager.md | 34 - .../entrasso/generateurls.md | 11 - .../asserviceprovider/entrasso/overview.md | 27 - .../asserviceprovider/entrasso/signin.md | 42 -- .../asserviceprovider/okta/_category_.json | 10 - .../asserviceprovider/okta/configureinokta.md | 115 ---- .../okta/configureoktaindirectorymanager.md | 31 - .../asserviceprovider/okta/generateurls.md | 11 - .../asserviceprovider/okta/overview.md | 26 - .../asserviceprovider/okta/signin.md | 40 -- .../onelogin/_category_.json | 10 - .../onelogin/configureinonelogin.md | 121 ---- .../configureoneloginindirectorymanager.md | 63 -- .../onelogin/generateurls.md | 11 - .../asserviceprovider/onelogin/overview.md | 26 - .../asserviceprovider/onelogin/signin.md | 41 -- .../asserviceprovider/overview.md | 24 - .../asserviceprovider/pingone/_category_.json | 10 - .../pingone/configureinpingone.md | 106 --- .../configurepingoneindirectorymanager.md | 35 - .../pingone/generatemetadata.md | 42 -- .../asserviceprovider/pingone/overview.md | 26 - .../asserviceprovider/pingone/signin.md | 41 -- .../11.0/authenticate/overview.md | 57 -- .../11.0/configureentraid/_category_.json | 10 - .../11.0/configureentraid/create.md | 57 -- .../11.0/configureentraid/create_1.md | 79 --- .../11.0/configureentraid/overview.md | 20 - .../configureentraid/register/_category_.json | 10 - .../register/apppermissions.md | 42 -- .../configureentraid/register/appregister.md | 112 --- .../11.0/configureentraid/register/modauth.md | 78 --- .../configureentraid/register/overview.md | 31 - .../11.0/credentialprovider/_category_.json | 10 - .../credentialprovider/credentialprovider.md | 32 - .../11.0/credentialprovider/installcp.md | 182 ----- .../11.0/credentialprovider/uninstallcp.md | 35 - docs/directorymanager/11.0/index.md | 1 - .../11.0/introduction/_category_.json | 10 - .../11.0/introduction/gettingstarted.md | 105 --- .../11.0/introduction/introduction.md | 76 --- .../11.0/introduction/whatsnew.md | 269 -------- .../11.0/managementshell/_category_.json | 10 - .../11.0/managementshell/commands.md | 135 ---- .../managementshell/contact/_category_.json | 10 - .../managementshell/contact/getcontact.md | 47 -- .../managementshell/contact/newcontact.md | 71 -- .../11.0/managementshell/contact/overview.md | 24 - .../managementshell/contact/removecontact.md | 38 -- .../managementshell/contact/setcontact.md | 82 --- .../managementshell/dynasty/_category_.json | 10 - .../managementshell/dynasty/newdynasty.md | 133 ---- .../11.0/managementshell/dynasty/overview.md | 20 - .../managementshell/dynasty/setdynasty.md | 194 ------ .../managementshell/general/_category_.json | 10 - .../managementshell/general/getcomputer.md | 37 - .../general/getconnectedstoreinformation.md | 36 - .../general/getconnecteduser.md | 44 -- .../general/getdirectorymanagerinformation.md | 29 - .../general/getimanamicommand.md | 59 -- .../general/getreplicationstatus.md | 38 -- .../general/gettombstoneobject.md | 70 -- .../general/invokereplication.md | 56 -- .../managementshell/general/newcontainer.md | 55 -- .../11.0/managementshell/general/overview.md | 40 -- .../general/removecontainer.md | 53 -- .../general/restoretombstoneobject.md | 43 -- .../general/sendnotification.md | 77 --- .../managementshell/group/_category_.json | 10 - .../managementshell/group/convertgroup.md | 138 ---- .../11.0/managementshell/group/expiregroup.md | 42 -- .../11.0/managementshell/group/getgroup.md | 72 -- .../11.0/managementshell/group/movegroup.md | 58 -- .../11.0/managementshell/group/newgroup.md | 74 -- .../11.0/managementshell/group/overview.md | 32 - .../managementshell/group/remove-group.md | 55 -- .../11.0/managementshell/group/renewgroup.md | 41 -- .../11.0/managementshell/group/setgroup.md | 132 ---- .../identitystore/_category_.json | 10 - .../identitystore/clearmessagingserver.md | 40 -- .../identitystore/clearnotifications.md | 64 -- .../identitystore/clearsmtpserver.md | 39 -- .../getavailablemessagingservers.md | 65 -- .../identitystore/getclient.md | 63 -- .../identitystore/getidentitystore.md | 146 ---- .../identitystore/getidentitystoreroles.md | 63 -- .../identitystore/getlogsettings.md | 35 - .../identitystore/getrolepermissionnames.md | 44 -- .../identitystore/getschemaattributes.md | 40 -- .../identitystore/getsmsgateways.md | 34 - .../identitystore/getuserrole.md | 90 --- .../identitystore/newidentitystore.md | 126 ---- .../managementshell/identitystore/overview.md | 56 -- .../identitystore/removeidentitystore.md | 52 -- .../identitystore/sendtestnotification.md | 49 -- .../identitystore/setidentitystore.md | 380 ----------- .../identitystore/setidentitystorerole.md | 68 -- .../identitystore/setmessagingserver.md | 66 -- .../identitystore/setnotifications.md | 60 -- .../identitystore/setsmtpserver.md | 58 -- .../identitystoreconnection/_category_.json | 10 - .../connectidentitystore.md | 47 -- .../identitystoreconnection/gettoken.md | 50 -- .../identitystoreconnection/overview.md | 20 - .../managementshell/mailbox/_category_.json | 10 - .../managementshell/mailbox/getmailbox.md | 49 -- .../managementshell/mailbox/newmailbox.md | 81 --- .../11.0/managementshell/mailbox/overview.md | 24 - .../managementshell/mailbox/removemailbox.md | 38 -- .../managementshell/mailbox/setmailbox.md | 83 --- .../mailenableddisabledgroups/_category_.json | 10 - .../disabledistributiongroup.md | 42 -- .../enabledistributiongroup.md | 42 -- .../mailenableddisabledgroups/overview.md | 20 - .../membership/_category_.json | 10 - .../membership/addgroupmember.md | 69 -- .../membership/getgroupmember.md | 53 -- .../managementshell/membership/getobject.md | 69 -- .../managementshell/membership/overview.md | 26 - .../membership/removegroupmember.md | 49 -- .../managementshell/membership/setobject.md | 66 -- .../11.0/managementshell/overview.md | 160 ----- .../11.0/managementshell/parameters.md | 465 ------------- .../scheduling/_category_.json | 10 - .../managementshell/scheduling/getschedule.md | 81 --- .../scheduling/gettargetschedule.md | 61 -- .../scheduling/invokeschedule.md | 60 -- .../managementshell/scheduling/newschedule.md | 110 --- .../managementshell/scheduling/overview.md | 30 - .../scheduling/removeschedule.md | 60 -- .../managementshell/scheduling/setschedule.md | 126 ---- .../scheduling/stopschedule.md | 60 -- .../11.0/managementshell/setthecredential.md | 50 -- .../smartgroup/_category_.json | 10 - .../smartgroup/converttostaticgroup.md | 39 -- .../smartgroup/getsmartgroup.md | 65 -- .../smartgroup/newsmartgroup.md | 126 ---- .../managementshell/smartgroup/overview.md | 30 - .../smartgroup/setsmartgroup.md | 184 ----- .../managementshell/smartgroup/updategroup.md | 58 -- .../smartgroup/upgradegroup.md | 91 --- .../11.0/managementshell/user/_category_.json | 10 - .../11.0/managementshell/user/getuser.md | 48 -- .../managementshell/user/getuserenrollment.md | 52 -- .../11.0/managementshell/user/newuser.md | 78 --- .../11.0/managementshell/user/overview.md | 26 - .../11.0/managementshell/user/removeuser.md | 38 -- .../11.0/managementshell/user/setuser.md | 81 --- .../userlifecycle/_category_.json | 10 - .../userlifecycle/extenduser.md | 41 -- .../userlifecycle/getstatus.md | 41 -- .../managementshell/userlifecycle/overview.md | 26 - .../userlifecycle/reinstateuser.md | 45 -- .../userlifecycle/terminatedirectreports.md | 45 -- .../userlifecycle/transferdirectreports.md | 43 -- .../11.0/requirements/_category_.json | 10 - .../11.0/requirements/database.md | 32 - .../11.0/requirements/exchange_servers.md | 17 - .../11.0/requirements/hardware.md | 32 - .../requirements/moreinfo/_category_.json | 10 - .../requirements/moreinfo/adserviceaccount.md | 168 ----- .../requirements/moreinfo/gmsarequirements.md | 61 -- .../11.0/requirements/moreinfo/overview.md | 15 - .../11.0/requirements/requirements.md | 27 - .../11.0/requirements/windowsserver.md | 28 - .../11.0/signin/_category_.json | 10 - .../11.0/signin/applications/_category_.json | 10 - .../11.0/signin/applications/admincenter.md | 75 -- .../11.0/signin/applications/applications.md | 26 - .../applications/portal/_category_.json | 10 - .../portal/categories/_category_.json | 10 - .../portal/categories/categories.md | 131 ---- .../applications/portal/categories/custom.md | 53 -- .../portal/categories/dropdownlist.md | 78 --- .../applications/portal/categories/grid.md | 119 ---- .../applications/portal/categories/image.md | 65 -- .../categories/linkedcombo/_category_.json | 10 - .../portal/categories/linkedcombo/details.md | 37 - .../categories/linkedcombo/fileformat.md | 21 - .../portal/categories/linkedcombo/overview.md | 191 ------ .../portal/categories/linkedcombo/schema.md | 93 --- .../portal/categories/linkeddropdown.md | 84 --- .../portal/categories/multilinetextbox.md | 55 -- .../applications/portal/categories/radio.md | 77 --- .../applications/portal/categories/textbox.md | 113 ---- .../11.0/signin/applications/portal/create.md | 366 ---------- .../11.0/signin/applications/portal/delete.md | 69 -- .../portal/displaytype/_category_.json | 10 - .../portal/displaytype/badwords.md | 84 --- .../portal/displaytype/createobject.md | 278 -------- .../portal/displaytype/importexport.md | 96 --- .../portal/displaytype/navigationbar.md | 355 ---------- .../portal/displaytype/objectcard.md | 151 ----- .../portal/displaytype/objectlist.md | 55 -- .../portal/displaytype/objectproperties.md | 382 ----------- .../displaytype/organizationalhierarchy.md | 52 -- .../portal/displaytype/overview.md | 71 -- .../portal/displaytype/propertyvalidation.md | 190 ------ .../portal/displaytype/queryattributes.md | 175 ----- .../portal/displaytype/quicksearch.md | 81 --- .../portal/displaytype/searchforms.md | 107 --- .../portal/displaytype/searchresults.md | 113 ---- .../portal/displaytype/sendasonbehalf.md | 249 ------- .../portal/displaytype/toolbars.md | 118 ---- .../signin/applications/portal/overview.md | 64 -- .../portal/server/_category_.json | 10 - .../applications/portal/server/advanced.md | 84 --- .../applications/portal/server/general.md | 99 --- .../signin/applications/portal/server/log.md | 132 ---- .../applications/portal/server/nativeiis.md | 140 ---- .../applications/portal/server/overview.md | 36 - .../applications/portal/server/remoteiis.md | 67 -- .../applications/portal/server/support.md | 64 -- .../applications/remoteiisprerequisites.md | 150 ---- .../11.0/signin/authpolicy/_category_.json | 10 - .../11.0/signin/authpolicy/authenticate.md | 113 ---- .../11.0/signin/authpolicy/authpolicy.md | 38 -- .../11.0/signin/authpolicy/enroll.md | 187 ----- .../11.0/signin/authpolicy/mfa.md | 54 -- .../authpolicy/setupauth/_category_.json | 10 - .../authpolicy/setupauth/authenticator.md | 38 -- .../11.0/signin/authpolicy/setupauth/email.md | 86 --- .../authpolicy/setupauth/linkedaccount.md | 46 -- .../signin/authpolicy/setupauth/overview.md | 22 - .../authpolicy/setupauth/securityquestions.md | 68 -- .../authpolicy/setupauth/windowshello.md | 50 -- .../signin/authpolicy/setupauth/yubikey.md | 46 -- .../11.0/signin/authpolicy/sfa.md | 47 -- .../11.0/signin/concepts/_category_.json | 10 - .../signin/concepts/accessapplications.md | 55 -- .../11.0/signin/concepts/changepassword.md | 41 -- .../11.0/signin/concepts/concepts.md | 201 ------ .../11.0/signin/concepts/dashboard.md | 187 ----- .../11.0/signin/concepts/globalpool.md | 46 -- .../11.0/signin/concepts/history.md | 72 -- .../11.0/signin/concepts/history_1.md | 98 --- .../11.0/signin/concepts/licensing.md | 119 ---- .../11.0/signin/concepts/logs.md | 51 -- .../11.0/signin/concepts/navigation.md | 76 --- .../11.0/signin/concepts/switchaccount.md | 28 - .../11.0/signin/datasource/_category_.json | 10 - .../11.0/signin/datasource/create.md | 338 --------- .../11.0/signin/datasource/manage.md | 58 -- .../11.0/signin/datasource/overview.md | 47 -- .../11.0/signin/entitlement/_category_.json | 10 - .../11.0/signin/entitlement/manage.md | 325 --------- .../11.0/signin/entitlement/manage_1.md | 276 -------- .../11.0/signin/entitlement/overview.md | 114 ---- .../11.0/signin/helpdesk/_category_.json | 10 - .../11.0/signin/helpdesk/history.md | 169 ----- .../signin/helpdesk/operation/_category_.json | 10 - .../signin/helpdesk/operation/asktoenroll.md | 56 -- .../11.0/signin/helpdesk/operation/export.md | 31 - .../signin/helpdesk/operation/overview.md | 16 - .../helpdesk/operation/resetpassword.md | 134 ---- .../11.0/signin/helpdesk/operation/search.md | 63 -- .../signin/helpdesk/operation/unenroll.md | 36 - .../helpdesk/operation/unlockaccount.md | 79 --- .../11.0/signin/helpdesk/overview.md | 81 --- .../11.0/signin/identitystore/_category_.json | 10 - .../11.0/signin/identitystore/advsentraid.md | 129 ---- .../identitystore/configure/_category_.json | 10 - .../identitystore/configure/authtypes.md | 103 --- .../configure/circularreference.md | 51 -- .../identitystore/configure/configure.md | 123 ---- .../configure/dynastysettings.md | 138 ---- .../configure/groupexpirydeletion.md | 120 ---- .../identitystore/configure/grouplifecycle.md | 299 -------- .../configure/historytracking.md | 185 ----- .../configure/membershiplifecycle.md | 276 -------- .../configure/messagingprovider.md | 206 ------ .../identitystore/configure/outofbounds.md | 165 ----- .../configure/passwordoptions.md | 124 ---- .../identitystore/configure/prefixes.md | 99 --- .../configure/profilevalidation.md | 306 --------- .../configure/secondwayauthentication.md | 139 ---- .../configure/securityquestions.md | 60 -- .../configure/smsauthentication.md | 60 -- .../identitystore/configure/smtpserver.md | 269 -------- .../11.0/signin/identitystore/create.md | 217 ------ .../signin/identitystore/link/_category_.json | 10 - .../11.0/signin/identitystore/link/manage.md | 232 ------- .../signin/identitystore/link/overview.md | 130 ---- .../11.0/signin/identitystore/manage.md | 232 ------- .../11.0/signin/identitystore/overview.md | 43 -- .../11.0/signin/identitystore/replication.md | 170 ----- .../signin/identitystore/view/_category_.json | 10 - .../11.0/signin/identitystore/view/details.md | 74 -- .../signin/identitystore/view/eventlogging.md | 56 -- .../11.0/signin/identitystore/view/view.md | 156 ----- .../11.0/signin/notification/_category_.json | 10 - .../11.0/signin/notification/customize.md | 175 ----- .../11.0/signin/notification/overview.md | 50 -- .../11.0/signin/notification/queue.md | 113 ---- .../11.0/signin/replication/_category_.json | 10 - .../11.0/signin/replication/overview.md | 82 --- .../11.0/signin/replication/settings.md | 308 --------- .../11.0/signin/schedule/_category_.json | 10 - .../11.0/signin/schedule/entitlement.md | 101 --- .../11.0/signin/schedule/entitlementscope.md | 99 --- .../entitlementtemporarypermissions.md | 103 --- .../11.0/signin/schedule/grouplifecycle.md | 87 --- .../11.0/signin/schedule/groupusageservice.md | 127 ---- .../11.0/signin/schedule/historyretention.md | 87 --- .../11.0/signin/schedule/manage.md | 191 ------ .../signin/schedule/managedbylifecycle.md | 84 --- .../signin/schedule/membershiplifecycle.md | 91 --- .../11.0/signin/schedule/orphangroupupdate.md | 82 --- .../11.0/signin/schedule/overview.md | 101 --- .../11.0/signin/schedule/reports.md | 98 --- .../11.0/signin/schedule/schemareplication.md | 73 -- .../11.0/signin/schedule/smartgroupupdate.md | 131 ---- .../11.0/signin/schedule/synchronize.md | 63 -- .../11.0/signin/schedule/userlifecycle.md | 56 -- .../signin/schedule/workflowacceleration.md | 63 -- .../11.0/signin/securityrole/_category_.json | 10 - .../11.0/signin/securityrole/checkrole.md | 61 -- .../11.0/signin/securityrole/create.md | 78 --- .../11.0/signin/securityrole/criteria.md | 97 --- .../11.0/signin/securityrole/manage.md | 153 ----- .../11.0/signin/securityrole/overview.md | 75 -- .../11.0/signin/securityrole/permissions.md | 210 ------ .../securityrole/policy/_category_.json | 10 - .../securityrole/policy/authentication.md | 92 --- .../signin/securityrole/policy/groupowners.md | 90 --- .../signin/securityrole/policy/helpdesk.md | 288 -------- .../signin/securityrole/policy/newobject.md | 118 ---- .../signin/securityrole/policy/overview.md | 45 -- .../signin/securityrole/policy/password.md | 143 ---- .../securityrole/policy/querydesigner.md | 325 --------- .../11.0/signin/securityrole/policy/search.md | 155 ----- .../signin/securityrole/policy/synchronize.md | 243 ------- .../11.0/signin/service/_category_.json | 10 - .../service/dataservice/_category_.json | 10 - .../11.0/signin/service/dataservice/create.md | 115 ---- .../11.0/signin/service/dataservice/manage.md | 241 ------- .../signin/service/dataservice/overview.md | 45 -- .../11.0/signin/service/emailservice.md | 52 -- .../service/mobileservice/_category_.json | 10 - .../signin/service/mobileservice/create.md | 216 ------ .../signin/service/mobileservice/delete.md | 63 -- .../mobileservice/design/_category_.json | 10 - .../mobileservice/design/objectproperties.md | 92 --- .../service/mobileservice/design/overview.md | 39 -- .../mobileservice/design/permissions.md | 42 -- .../design/propertyvalidation.md | 124 ---- .../mobileservice/design/quicksearch.md | 57 -- .../mobileservice/design/searchresults.md | 92 --- .../signin/service/mobileservice/overview.md | 64 -- .../service/mobileservice/phonesetup.md | 87 --- .../mobileservice/server/_category_.json | 10 - .../mobileservice/server/deployment.md | 145 ---- .../service/mobileservice/server/general.md | 46 -- .../service/mobileservice/server/overview.md | 28 - .../11.0/signin/service/overview.md | 98 --- .../11.0/signin/service/replicationservice.md | 84 --- .../11.0/signin/service/schedulerservice.md | 46 -- .../service/securityservice/_category_.json | 10 - .../signin/service/securityservice/create.md | 108 --- .../signin/service/securityservice/manage.md | 78 --- .../service/securityservice/overview.md | 32 - docs/directorymanager/11.0/signin/signin.md | 167 ----- .../11.0/signin/smsgateway/_category_.json | 10 - .../signin/smsgateway/custom/_category_.json | 10 - .../signin/smsgateway/custom/accountid.md | 35 - .../smsgateway/custom/class/_category_.json | 10 - .../smsgateway/custom/class/accesscode.md | 29 - .../signin/smsgateway/custom/class/class.md | 31 - .../signin/smsgateway/custom/class/class_1.md | 26 - .../custom/class/exceptionmessage.md | 29 - .../smsgateway/custom/class/maxlength.md | 36 - .../signin/smsgateway/custom/class/message.md | 30 - .../smsgateway/custom/class/message_1.md | 35 - .../smsgateway/custom/class/phonenumbers.md | 30 - .../smsgateway/custom/class/referenceid.md | 29 - .../signin/smsgateway/custom/class/success.md | 30 - .../smsgateway/custom/class/validate.md | 34 - .../11.0/signin/smsgateway/custom/clone.md | 29 - .../11.0/signin/smsgateway/custom/overview.md | 44 -- .../11.0/signin/smsgateway/custom/password.md | 29 - .../signin/smsgateway/custom/proxydomain.md | 34 - .../signin/smsgateway/custom/proxyhostname.md | 34 - .../signin/smsgateway/custom/proxypassword.md | 33 - .../signin/smsgateway/custom/proxyport.md | 34 - .../signin/smsgateway/custom/proxyusername.md | 33 - .../smsgateway/custom/sendshortmessage.md | 39 -- .../smsgateway/custom/testconnection.md | 29 - .../smsgateway/custom/testcredentials.md | 29 - .../signin/smsgateway/custom/testproxy.md | 29 - .../11.0/signin/smsgateway/custom/url.md | 35 - .../11.0/signin/smsgateway/custom/userid.md | 29 - .../11.0/signin/smsgateway/implementcustom.md | 111 --- .../11.0/signin/smsgateway/manage.md | 128 ---- .../11.0/signin/smsgateway/overview.md | 35 - .../11.0/signin/workflow/_category_.json | 10 - .../11.0/signin/workflow/advancedsettings.md | 109 --- .../signin/workflow/approveracceleration.md | 199 ------ .../11.0/signin/workflow/implement.md | 275 -------- .../11.0/signin/workflow/integrate.md | 129 ---- .../11.0/signin/workflow/overview.md | 114 ---- .../11.0/welcome/_category_.json | 10 - .../11.0/welcome/dashboard.md | 78 --- .../11.0/welcome/dashboard/_category_.json | 10 - .../11.0/welcome/dashboard/computer.md | 48 -- .../11.0/welcome/dashboard/contact.md | 28 - .../11.0/welcome/dashboard/dashboard.md | 82 --- .../11.0/welcome/dashboard/generate.md | 97 --- .../11.0/welcome/dashboard/group.md | 89 --- .../11.0/welcome/dashboard/manage.md | 90 --- .../11.0/welcome/dashboard/user.md | 83 --- .../11.0/welcome/entitlement/_category_.json | 10 - .../11.0/welcome/entitlement/fileservers.md | 152 ----- .../11.0/welcome/entitlement/overview.md | 20 - .../welcome/entitlement/sharepointsites.md | 145 ---- .../welcome/generalfeatures/_category_.json | 10 - .../11.0/welcome/generalfeatures/find.md | 64 -- .../generalfeatures/generalfeatures.md | 62 -- .../11.0/welcome/generalfeatures/portal.md | 248 ------- .../welcome/generalfeatures/querysearch.md | 110 --- .../11.0/welcome/generalfeatures/search.md | 137 ---- .../11.0/welcome/generalfeatures/toolbar.md | 42 -- .../11.0/welcome/generalfeatures/user.md | 106 --- .../11.0/welcome/group/_category_.json | 10 - .../welcome/group/allgroups/_category_.json | 10 - .../welcome/group/allgroups/alldynasties.md | 40 -- .../group/allgroups/allexpiredgroups.md | 34 - .../group/allgroups/allexpiringgroups.md | 32 - .../11.0/welcome/group/allgroups/allgroups.md | 147 ---- .../welcome/group/allgroups/allsmartgroups.md | 29 - .../group/allgroups/passwordexpirygroups.md | 32 - .../welcome/group/allgroups/privategroups.md | 31 - .../welcome/group/allgroups/publicgroups.md | 31 - .../group/allgroups/semiprivategroups.md | 30 - .../11.0/welcome/group/allgroups/teams.md | 25 - .../11.0/welcome/group/create/_category_.json | 10 - .../11.0/welcome/group/create/create.md | 41 -- .../group/create/group/_category_.json | 10 - .../welcome/group/create/group/general.md | 73 -- .../welcome/group/create/group/general_1.md | 43 -- .../11.0/welcome/group/create/group/group.md | 125 ---- .../welcome/group/create/group/group_1.md | 89 --- .../welcome/group/create/group/members.md | 50 -- .../11.0/welcome/group/create/group/owners.md | 63 -- .../welcome/group/create/group/smartgroup.md | 51 -- .../11.0/welcome/group/create/grouptype.md | 22 - .../11.0/welcome/group/create/overview.md | 40 -- .../welcome/group/dynasty/_category_.json | 10 - .../dynasty/createdynasty/_category_.json | 10 - .../dynasty/createdynasty/createdynasty.md | 165 ----- .../dynasty/createdynasty/createdynasty_1.md | 165 ----- .../createdynasty/dynastyoptionsmanagerial.md | 238 ------- .../createdynasty/dynastyoptionsorggeocus.md | 93 --- .../group/dynasty/createdynasty/general.md | 46 -- .../11.0/welcome/group/dynasty/overview.md | 74 -- .../welcome/group/mygroups/_category_.json | 10 - .../welcome/group/mygroups/mydeletedgroups.md | 30 - .../welcome/group/mygroups/mydynasties.md | 28 - .../welcome/group/mygroups/myexpiredgroups.md | 49 -- .../group/mygroups/myexpiringgroups.md | 37 - .../11.0/welcome/group/mygroups/mygroups.md | 141 ---- .../welcome/group/mygroups/mymemberships.md | 30 - .../welcome/group/mygroups/mysmartgroups.md | 28 - .../11.0/welcome/group/mygroups/myteams.md | 25 - .../11.0/welcome/group/overview.md | 39 -- .../welcome/group/properties/_category_.json | 10 - .../11.0/welcome/group/properties/advanced.md | 52 -- .../welcome/group/properties/attributes.md | 71 -- .../11.0/welcome/group/properties/channels.md | 53 -- .../group/properties/deliveryrestrictions.md | 42 -- .../group/properties/dynastyoptions.md | 196 ------ .../11.0/welcome/group/properties/email.md | 44 -- .../welcome/group/properties/entitlements.md | 43 -- .../11.0/welcome/group/properties/general.md | 102 --- .../11.0/welcome/group/properties/history.md | 110 --- .../properties/importadditionalowners.md | 73 -- .../welcome/group/properties/importmembers.md | 137 ---- .../11.0/welcome/group/properties/memberof.md | 46 -- .../11.0/welcome/group/properties/members.md | 86 --- .../11.0/welcome/group/properties/overview.md | 83 --- .../11.0/welcome/group/properties/owner.md | 122 ---- .../welcome/group/properties/similargroups.md | 26 - .../welcome/group/properties/smartgroup.md | 73 -- .../11.0/welcome/group/properties/treeview.md | 19 - .../group/querydesigner/_category_.json | 10 - .../welcome/group/querydesigner/database.md | 100 --- .../group/querydesigner/filtercriteria.md | 116 ---- .../welcome/group/querydesigner/general.md | 47 -- .../group/querydesigner/includeexclude.md | 56 -- .../welcome/group/querydesigner/overview.md | 110 --- .../querydesigner/passwordexpiryoptions.md | 118 ---- .../welcome/group/querydesigner/script.md | 51 -- .../welcome/group/querydesigner/storage.md | 51 -- .../welcome/group/recyclebin/_category_.json | 10 - .../11.0/welcome/group/recyclebin/general.md | 27 - .../11.0/welcome/group/recyclebin/overview.md | 105 --- .../11.0/welcome/group/transferownership.md | 80 --- .../group/workingwithgroups/_category_.json | 10 - .../group/workingwithgroups/attestation.md | 155 ----- .../workingwithgroups/dynastyfunction.md | 135 ---- .../workingwithgroups/generalfunction.md | 97 --- .../group/workingwithgroups/groupaccess.md | 50 -- .../group/workingwithgroups/groupdeletion.md | 61 -- .../group/workingwithgroups/groupexpiry.md | 108 --- .../workingwithgroups/groupexpiryfunction.md | 104 --- .../group/workingwithgroups/groupjoinleave.md | 233 ------- .../groupmembershipfunction.md | 300 -------- .../groupownershipfunction.md | 289 -------- .../group/workingwithgroups/scheduleupdate.md | 179 ----- .../workingwithgroups/sendassendonbehalf.md | 37 - .../workingwithgroups/workingwithgroups.md | 86 --- .../11.0/welcome/history/_category_.json | 10 - .../11.0/welcome/history/mydirectorygroup.md | 146 ---- .../11.0/welcome/history/mydirectreport.md | 145 ---- .../11.0/welcome/history/myhistory.md | 136 ---- .../11.0/welcome/history/overview.md | 71 -- docs/directorymanager/11.0/welcome/login.md | 117 ---- .../11.0/welcome/passwordmanagement.md | 62 -- .../11.0/welcome/request/_category_.json | 10 - .../11.0/welcome/request/allrequest.md | 142 ---- .../11.0/welcome/request/myrequest.md | 24 - .../11.0/welcome/request/overview.md | 109 --- .../11.0/welcome/request/pending.md | 31 - .../_category_.json | 10 - .../authenticateaccount.md | 85 --- .../enrollaccount.md | 95 --- .../passwordreset.md | 183 ----- .../secondfactorauthentication.md | 153 ----- .../11.0/welcome/synchronize/_category_.json | 10 - .../synchronize/create/_category_.json | 10 - .../create/chooseyourjobcollectiontemplate.md | 23 - .../create/chooseyourjobtemplate.md | 31 - .../11.0/welcome/synchronize/create/create.md | 84 --- .../welcome/synchronize/create/create_1.md | 64 -- .../synchronize/create/mappingfield.md | 112 --- .../messagingsystemoverview/_category_.json | 10 - .../messagingsystemoverview/exchange.md | 53 -- .../messagingsystemoverview/googleapp.md | 127 ---- .../messagingsystemoverview.md | 21 - .../messagingsystemoverview/office365.md | 136 ---- .../create/objectfieldsandmapping.md | 168 ----- .../create/scheduleandnotification.md | 102 --- .../create/schedulingandnotification.md | 54 -- .../synchronize/create/selectedfield.md | 109 --- .../create/sourceanddestination.md | 103 --- .../create/synchronizedjobcollection.md | 36 - .../11.0/welcome/synchronize/dashboard.md | 68 -- .../synchronize/dtmscript/_category_.json | 10 - .../synchronize/dtmscript/dtmscript.md | 174 ----- .../dtmscript/samplecontainerscript.md | 84 --- .../dtmscript/sampletransformscript.md | 108 --- .../dtmscript/visualbasicnetbasic.md | 189 ------ .../synchronize/manage/_category_.json | 10 - .../11.0/welcome/synchronize/manage/job.md | 231 ------- .../synchronize/manage/jobcollection.md | 250 ------- .../manage/jobcollectiontemplate.md | 143 ---- .../welcome/synchronize/manage/jobtemplate.md | 134 ---- .../welcome/synchronize/manage/overview.md | 18 - .../welcome/synchronize/manage/schedule.md | 19 - .../11.0/welcome/synchronize/overview.md | 79 --- .../11.0/welcome/synchronize/provider.md | 134 ---- .../transformation/_category_.json | 10 - .../autogenerateuniquepassword.md | 124 ---- .../synchronize/transformation/overview.md | 157 ----- .../11.0/welcome/user/_category_.json | 10 - .../11.0/welcome/user/create/_category_.json | 10 - .../create/activedirectory/_category_.json | 10 - .../user/create/activedirectory/account.md | 41 -- .../user/create/activedirectory/contact.md | 49 -- .../user/create/activedirectory/exchange.md | 23 - .../user/create/activedirectory/mailbox.md | 48 -- .../user/create/activedirectory/messaging.md | 28 - .../user/create/activedirectory/overview.md | 17 - .../user/create/activedirectory/password.md | 22 - .../user/create/activedirectory/summary.md | 20 - .../user/create/activedirectory/user.md | 77 --- .../welcome/user/create/azure/_category_.json | 10 - .../11.0/welcome/user/create/azure/account.md | 30 - .../user/create/azure/directoryrole.md | 23 - .../welcome/user/create/azure/exchange.md | 34 - .../11.0/welcome/user/create/azure/mailbox.md | 41 -- .../welcome/user/create/azure/overview.md | 16 - .../welcome/user/create/azure/password.md | 26 - .../11.0/welcome/user/create/azure/user.md | 42 -- .../11.0/welcome/user/create/overview.md | 26 - .../11.0/welcome/user/linkedaccounts.md | 128 ---- .../11.0/welcome/user/manage/_category_.json | 10 - .../welcome/user/manage/changepassword.md | 63 -- .../11.0/welcome/user/manage/directreport.md | 59 -- .../11.0/welcome/user/manage/disableduser.md | 73 -- .../user/manage/organizationalheirarchy.md | 43 -- .../11.0/welcome/user/manage/overview.md | 19 - .../11.0/welcome/user/manage/resetpassword.md | 33 - .../11.0/welcome/user/manage/unlockaccount.md | 216 ------ .../welcome/user/manage/validateprofile.md | 127 ---- .../11.0/welcome/user/manage/viewprofile.md | 39 -- .../11.0/welcome/user/overview.md | 56 -- .../welcome/user/properties/_category_.json | 10 - .../activedirectory/_category_.json | 10 - .../activedirectory/contact/_category_.json | 10 - .../activedirectory/contact/advanced.md | 31 - .../activedirectory/contact/memberof.md | 31 - .../activedirectory/contact/overview.md | 27 - .../activedirectory/mailbox/_category_.json | 10 - .../activedirectory/mailbox/advanced.md | 59 -- .../activedirectory/mailbox/autoreply.md | 58 -- .../activedirectory/mailbox/limits.md | 34 - .../activedirectory/mailbox/overview.md | 31 - .../properties/activedirectory/overview.md | 50 -- .../useroverview/_category_.json | 10 - .../activedirectory/useroverview/account.md | 30 - .../activedirectory/useroverview/advanced.md | 63 -- .../activedirectory/useroverview/email.md | 29 - .../useroverview/entitlement.md | 54 -- .../activedirectory/useroverview/general.md | 101 --- .../activedirectory/useroverview/memberof.md | 42 -- .../useroverview/organization.md | 111 --- .../activedirectory/useroverview/phonenote.md | 49 -- .../useroverview/useroverview.md | 29 - .../user/properties/azure/_category_.json | 10 - .../user/properties/azure/contactinfo.md | 29 - .../user/properties/azure/directoryrole.md | 23 - .../welcome/user/properties/azure/identity.md | 78 --- .../welcome/user/properties/azure/jobinfo.md | 23 - .../welcome/user/properties/azure/overview.md | 29 - .../11.0/welcome/user/properties/overview.md | 83 --- docs/directorymanager/11.0/welcome/welcome.md | 52 -- 778 files changed, 60674 deletions(-) delete mode 100644 docs/directorymanager/11.0/about/_category_.json delete mode 100644 docs/directorymanager/11.0/about/about.md delete mode 100644 docs/directorymanager/11.0/about/configure/_category_.json delete mode 100644 docs/directorymanager/11.0/about/configure/configure.md delete mode 100644 docs/directorymanager/11.0/about/configure/database.md delete mode 100644 docs/directorymanager/11.0/about/configure/gidserver.md delete mode 100644 docs/directorymanager/11.0/about/configure/overview.md delete mode 100644 docs/directorymanager/11.0/about/configure/setupauthentication.md delete mode 100644 docs/directorymanager/11.0/about/installer/_category_.json delete mode 100644 docs/directorymanager/11.0/about/installer/install.md delete mode 100644 docs/directorymanager/11.0/about/installer/installer.md delete mode 100644 docs/directorymanager/11.0/about/installer/preparationtool.md delete mode 100644 docs/directorymanager/11.0/about/installer/uninstall.md delete mode 100644 docs/directorymanager/11.0/about/installer/whatprepinstall.md delete mode 100644 docs/directorymanager/11.0/about/upgrade/_category_.json delete mode 100644 docs/directorymanager/11.0/about/upgrade/backuprestore.md delete mode 100644 docs/directorymanager/11.0/about/upgrade/notes.md delete mode 100644 docs/directorymanager/11.0/about/upgrade/overview.md delete mode 100644 docs/directorymanager/11.0/about/upgrade/upgrade.md delete mode 100644 docs/directorymanager/11.0/apis/_category_.json delete mode 100644 docs/directorymanager/11.0/apis/commonerrors.md delete mode 100644 docs/directorymanager/11.0/apis/contact/_category_.json delete mode 100644 docs/directorymanager/11.0/apis/contact/contactapis.md delete mode 100644 docs/directorymanager/11.0/apis/contact/createcontact.md delete mode 100644 docs/directorymanager/11.0/apis/contact/deletecontact.md delete mode 100644 docs/directorymanager/11.0/apis/contact/deletecontacts.md delete mode 100644 docs/directorymanager/11.0/apis/contact/getcontact.md delete mode 100644 docs/directorymanager/11.0/apis/contact/getcontacts.md delete mode 100644 docs/directorymanager/11.0/apis/contact/updatecontact.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/_category_.json delete mode 100644 docs/directorymanager/11.0/apis/datasource/createds/_category_.json delete mode 100644 docs/directorymanager/11.0/apis/datasource/createds/createds.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/createds/dsaccess.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/createds/dsexcel.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/createds/dsodbc.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/createds/dsoracle.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/createds/dssql.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/createds/dstext.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/datasourceapis.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/deleteds.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/gefsmdtype.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/getallds.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/getalldstype.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/getds.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/getdsparameter.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/getdspo.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/getdstypeid.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/getdstypename.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/getfilterds.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/getfntype.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/getmd.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/getmdtypest.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/parsecs.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/updateds.md delete mode 100644 docs/directorymanager/11.0/apis/datasource/validatedc.md delete mode 100644 docs/directorymanager/11.0/apis/gettoken.md delete mode 100644 docs/directorymanager/11.0/apis/group/_category_.json delete mode 100644 docs/directorymanager/11.0/apis/group/createsmartgroup.md delete mode 100644 docs/directorymanager/11.0/apis/group/createstaticgroup.md delete mode 100644 docs/directorymanager/11.0/apis/group/deletegroup.md delete mode 100644 docs/directorymanager/11.0/apis/group/deletegroups.md delete mode 100644 docs/directorymanager/11.0/apis/group/expiregroup.md delete mode 100644 docs/directorymanager/11.0/apis/group/expiregroups.md delete mode 100644 docs/directorymanager/11.0/apis/group/getgroup.md delete mode 100644 docs/directorymanager/11.0/apis/group/getgroups.md delete mode 100644 docs/directorymanager/11.0/apis/group/groupapis.md delete mode 100644 docs/directorymanager/11.0/apis/group/joingroup.md delete mode 100644 docs/directorymanager/11.0/apis/group/joingrouponbehalf.md delete mode 100644 docs/directorymanager/11.0/apis/group/leavegroup.md delete mode 100644 docs/directorymanager/11.0/apis/group/leavegrouponbehalf.md delete mode 100644 docs/directorymanager/11.0/apis/group/previewmembership.md delete mode 100644 docs/directorymanager/11.0/apis/group/renewgroup.md delete mode 100644 docs/directorymanager/11.0/apis/group/renewgroups.md delete mode 100644 docs/directorymanager/11.0/apis/group/updategroup.md delete mode 100644 docs/directorymanager/11.0/apis/group/updategroups.md delete mode 100644 docs/directorymanager/11.0/apis/group/updatesmartgroup.md delete mode 100644 docs/directorymanager/11.0/apis/group/updatesmartgroups.md delete mode 100644 docs/directorymanager/11.0/apis/jobs/_category_.json delete mode 100644 docs/directorymanager/11.0/apis/jobs/createjob.md delete mode 100644 docs/directorymanager/11.0/apis/jobs/createnewjobcollection.md delete mode 100644 docs/directorymanager/11.0/apis/jobs/deletejob.md delete mode 100644 docs/directorymanager/11.0/apis/jobs/deletejobcollections.md delete mode 100644 docs/directorymanager/11.0/apis/jobs/getcollectionsdetails.md delete mode 100644 docs/directorymanager/11.0/apis/jobs/getjcdetailsbyjcid.md delete mode 100644 docs/directorymanager/11.0/apis/jobs/getjobcollections.md delete mode 100644 docs/directorymanager/11.0/apis/jobs/getjobs.md delete mode 100644 docs/directorymanager/11.0/apis/jobs/getjobsdetails.md delete mode 100644 docs/directorymanager/11.0/apis/jobs/getjobsname.md delete mode 100644 docs/directorymanager/11.0/apis/jobs/jobsapis.md delete mode 100644 docs/directorymanager/11.0/apis/jobs/updatjobcollection.md delete mode 100644 docs/directorymanager/11.0/apis/logs/_category_.json delete mode 100644 docs/directorymanager/11.0/apis/logs/admincenter.md delete mode 100644 docs/directorymanager/11.0/apis/logs/dataservice.md delete mode 100644 docs/directorymanager/11.0/apis/logs/emailservice.md delete mode 100644 docs/directorymanager/11.0/apis/logs/logsapis.md delete mode 100644 docs/directorymanager/11.0/apis/logs/portal.md delete mode 100644 docs/directorymanager/11.0/apis/logs/replicationservice.md delete mode 100644 docs/directorymanager/11.0/apis/logs/schedulerservice.md delete mode 100644 docs/directorymanager/11.0/apis/logs/securityservice.md delete mode 100644 docs/directorymanager/11.0/apis/user/_category_.json delete mode 100644 docs/directorymanager/11.0/apis/user/createuser.md delete mode 100644 docs/directorymanager/11.0/apis/user/deleteuser.md delete mode 100644 docs/directorymanager/11.0/apis/user/deleteusers.md delete mode 100644 docs/directorymanager/11.0/apis/user/getallgroups.md delete mode 100644 docs/directorymanager/11.0/apis/user/getmydynasties.md delete mode 100644 docs/directorymanager/11.0/apis/user/getmyexpiredgroups.md delete mode 100644 docs/directorymanager/11.0/apis/user/getmyexpiringgroups.md delete mode 100644 docs/directorymanager/11.0/apis/user/getmyexpiringgroupscount.md delete mode 100644 docs/directorymanager/11.0/apis/user/getmygroups.md delete mode 100644 docs/directorymanager/11.0/apis/user/getmygroupscount.md delete mode 100644 docs/directorymanager/11.0/apis/user/getmymemberships.md delete mode 100644 docs/directorymanager/11.0/apis/user/getmymemebershipcount.md delete mode 100644 docs/directorymanager/11.0/apis/user/getmysmartgroups.md delete mode 100644 docs/directorymanager/11.0/apis/user/getuser.md delete mode 100644 docs/directorymanager/11.0/apis/user/getusers.md delete mode 100644 docs/directorymanager/11.0/apis/user/updateuser.md delete mode 100644 docs/directorymanager/11.0/apis/user/userapis.md delete mode 100644 docs/directorymanager/11.0/apis/welcome.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/_category_.json delete mode 100644 docs/directorymanager/11.0/apis/workflow/allwfroutes.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/approvereq.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/configurepowerautomate.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/createroute.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/deletereqstatus.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/deleteroute.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/deletewfreq.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/denyreq.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/getapprovers.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/getdefroute.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/getmyreq.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/getpendingreq.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/getpowerautomatesettings.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/getwfreq.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/getwfroute.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/updatepowerautomatesettings.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/updateroute.md delete mode 100644 docs/directorymanager/11.0/apis/workflow/workflowapis.md delete mode 100644 docs/directorymanager/11.0/authenticate/_category_.json delete mode 100644 docs/directorymanager/11.0/authenticate/asidentityprovider/_category_.json delete mode 100644 docs/directorymanager/11.0/authenticate/asidentityprovider/metadata.md delete mode 100644 docs/directorymanager/11.0/authenticate/asidentityprovider/overview.md delete mode 100644 docs/directorymanager/11.0/authenticate/asidentityprovider/register.md delete mode 100644 docs/directorymanager/11.0/authenticate/asidentityprovider/signin.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/_category_.json delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/_category_.json delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configureadfsindirectorymanager.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configurerelayingpartytrust.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/generateurls.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/overview.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/signin.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/_category_.json delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/configureinentra.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/configureproviderindirectorymanager.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/generateurls.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/overview.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/signin.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/okta/_category_.json delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/okta/configureinokta.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/okta/configureoktaindirectorymanager.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/okta/generateurls.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/okta/overview.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/okta/signin.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/_category_.json delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/configureinonelogin.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/configureoneloginindirectorymanager.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/generateurls.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/overview.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/signin.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/overview.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/_category_.json delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/configureinpingone.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/configurepingoneindirectorymanager.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/generatemetadata.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/overview.md delete mode 100644 docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/signin.md delete mode 100644 docs/directorymanager/11.0/authenticate/overview.md delete mode 100644 docs/directorymanager/11.0/configureentraid/_category_.json delete mode 100644 docs/directorymanager/11.0/configureentraid/create.md delete mode 100644 docs/directorymanager/11.0/configureentraid/create_1.md delete mode 100644 docs/directorymanager/11.0/configureentraid/overview.md delete mode 100644 docs/directorymanager/11.0/configureentraid/register/_category_.json delete mode 100644 docs/directorymanager/11.0/configureentraid/register/apppermissions.md delete mode 100644 docs/directorymanager/11.0/configureentraid/register/appregister.md delete mode 100644 docs/directorymanager/11.0/configureentraid/register/modauth.md delete mode 100644 docs/directorymanager/11.0/configureentraid/register/overview.md delete mode 100644 docs/directorymanager/11.0/credentialprovider/_category_.json delete mode 100644 docs/directorymanager/11.0/credentialprovider/credentialprovider.md delete mode 100644 docs/directorymanager/11.0/credentialprovider/installcp.md delete mode 100644 docs/directorymanager/11.0/credentialprovider/uninstallcp.md delete mode 100644 docs/directorymanager/11.0/index.md delete mode 100644 docs/directorymanager/11.0/introduction/_category_.json delete mode 100644 docs/directorymanager/11.0/introduction/gettingstarted.md delete mode 100644 docs/directorymanager/11.0/introduction/introduction.md delete mode 100644 docs/directorymanager/11.0/introduction/whatsnew.md delete mode 100644 docs/directorymanager/11.0/managementshell/_category_.json delete mode 100644 docs/directorymanager/11.0/managementshell/commands.md delete mode 100644 docs/directorymanager/11.0/managementshell/contact/_category_.json delete mode 100644 docs/directorymanager/11.0/managementshell/contact/getcontact.md delete mode 100644 docs/directorymanager/11.0/managementshell/contact/newcontact.md delete mode 100644 docs/directorymanager/11.0/managementshell/contact/overview.md delete mode 100644 docs/directorymanager/11.0/managementshell/contact/removecontact.md delete mode 100644 docs/directorymanager/11.0/managementshell/contact/setcontact.md delete mode 100644 docs/directorymanager/11.0/managementshell/dynasty/_category_.json delete mode 100644 docs/directorymanager/11.0/managementshell/dynasty/newdynasty.md delete mode 100644 docs/directorymanager/11.0/managementshell/dynasty/overview.md delete mode 100644 docs/directorymanager/11.0/managementshell/dynasty/setdynasty.md delete mode 100644 docs/directorymanager/11.0/managementshell/general/_category_.json delete mode 100644 docs/directorymanager/11.0/managementshell/general/getcomputer.md delete mode 100644 docs/directorymanager/11.0/managementshell/general/getconnectedstoreinformation.md delete mode 100644 docs/directorymanager/11.0/managementshell/general/getconnecteduser.md delete mode 100644 docs/directorymanager/11.0/managementshell/general/getdirectorymanagerinformation.md delete mode 100644 docs/directorymanager/11.0/managementshell/general/getimanamicommand.md delete mode 100644 docs/directorymanager/11.0/managementshell/general/getreplicationstatus.md delete mode 100644 docs/directorymanager/11.0/managementshell/general/gettombstoneobject.md delete mode 100644 docs/directorymanager/11.0/managementshell/general/invokereplication.md delete mode 100644 docs/directorymanager/11.0/managementshell/general/newcontainer.md delete mode 100644 docs/directorymanager/11.0/managementshell/general/overview.md delete mode 100644 docs/directorymanager/11.0/managementshell/general/removecontainer.md delete mode 100644 docs/directorymanager/11.0/managementshell/general/restoretombstoneobject.md delete mode 100644 docs/directorymanager/11.0/managementshell/general/sendnotification.md delete mode 100644 docs/directorymanager/11.0/managementshell/group/_category_.json delete mode 100644 docs/directorymanager/11.0/managementshell/group/convertgroup.md delete mode 100644 docs/directorymanager/11.0/managementshell/group/expiregroup.md delete mode 100644 docs/directorymanager/11.0/managementshell/group/getgroup.md delete mode 100644 docs/directorymanager/11.0/managementshell/group/movegroup.md delete mode 100644 docs/directorymanager/11.0/managementshell/group/newgroup.md delete mode 100644 docs/directorymanager/11.0/managementshell/group/overview.md delete mode 100644 docs/directorymanager/11.0/managementshell/group/remove-group.md delete mode 100644 docs/directorymanager/11.0/managementshell/group/renewgroup.md delete mode 100644 docs/directorymanager/11.0/managementshell/group/setgroup.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/_category_.json delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/clearmessagingserver.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/clearnotifications.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/clearsmtpserver.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/getavailablemessagingservers.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/getclient.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/getidentitystore.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/getidentitystoreroles.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/getlogsettings.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/getrolepermissionnames.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/getschemaattributes.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/getsmsgateways.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/getuserrole.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/newidentitystore.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/overview.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/removeidentitystore.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/sendtestnotification.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/setidentitystore.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/setidentitystorerole.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/setmessagingserver.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/setnotifications.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystore/setsmtpserver.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystoreconnection/_category_.json delete mode 100644 docs/directorymanager/11.0/managementshell/identitystoreconnection/connectidentitystore.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystoreconnection/gettoken.md delete mode 100644 docs/directorymanager/11.0/managementshell/identitystoreconnection/overview.md delete mode 100644 docs/directorymanager/11.0/managementshell/mailbox/_category_.json delete mode 100644 docs/directorymanager/11.0/managementshell/mailbox/getmailbox.md delete mode 100644 docs/directorymanager/11.0/managementshell/mailbox/newmailbox.md delete mode 100644 docs/directorymanager/11.0/managementshell/mailbox/overview.md delete mode 100644 docs/directorymanager/11.0/managementshell/mailbox/removemailbox.md delete mode 100644 docs/directorymanager/11.0/managementshell/mailbox/setmailbox.md delete mode 100644 docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/_category_.json delete mode 100644 docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/disabledistributiongroup.md delete mode 100644 docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/enabledistributiongroup.md delete mode 100644 docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/overview.md delete mode 100644 docs/directorymanager/11.0/managementshell/membership/_category_.json delete mode 100644 docs/directorymanager/11.0/managementshell/membership/addgroupmember.md delete mode 100644 docs/directorymanager/11.0/managementshell/membership/getgroupmember.md delete mode 100644 docs/directorymanager/11.0/managementshell/membership/getobject.md delete mode 100644 docs/directorymanager/11.0/managementshell/membership/overview.md delete mode 100644 docs/directorymanager/11.0/managementshell/membership/removegroupmember.md delete mode 100644 docs/directorymanager/11.0/managementshell/membership/setobject.md delete mode 100644 docs/directorymanager/11.0/managementshell/overview.md delete mode 100644 docs/directorymanager/11.0/managementshell/parameters.md delete mode 100644 docs/directorymanager/11.0/managementshell/scheduling/_category_.json delete mode 100644 docs/directorymanager/11.0/managementshell/scheduling/getschedule.md delete mode 100644 docs/directorymanager/11.0/managementshell/scheduling/gettargetschedule.md delete mode 100644 docs/directorymanager/11.0/managementshell/scheduling/invokeschedule.md delete mode 100644 docs/directorymanager/11.0/managementshell/scheduling/newschedule.md delete mode 100644 docs/directorymanager/11.0/managementshell/scheduling/overview.md delete mode 100644 docs/directorymanager/11.0/managementshell/scheduling/removeschedule.md delete mode 100644 docs/directorymanager/11.0/managementshell/scheduling/setschedule.md delete mode 100644 docs/directorymanager/11.0/managementshell/scheduling/stopschedule.md delete mode 100644 docs/directorymanager/11.0/managementshell/setthecredential.md delete mode 100644 docs/directorymanager/11.0/managementshell/smartgroup/_category_.json delete mode 100644 docs/directorymanager/11.0/managementshell/smartgroup/converttostaticgroup.md delete mode 100644 docs/directorymanager/11.0/managementshell/smartgroup/getsmartgroup.md delete mode 100644 docs/directorymanager/11.0/managementshell/smartgroup/newsmartgroup.md delete mode 100644 docs/directorymanager/11.0/managementshell/smartgroup/overview.md delete mode 100644 docs/directorymanager/11.0/managementshell/smartgroup/setsmartgroup.md delete mode 100644 docs/directorymanager/11.0/managementshell/smartgroup/updategroup.md delete mode 100644 docs/directorymanager/11.0/managementshell/smartgroup/upgradegroup.md delete mode 100644 docs/directorymanager/11.0/managementshell/user/_category_.json delete mode 100644 docs/directorymanager/11.0/managementshell/user/getuser.md delete mode 100644 docs/directorymanager/11.0/managementshell/user/getuserenrollment.md delete mode 100644 docs/directorymanager/11.0/managementshell/user/newuser.md delete mode 100644 docs/directorymanager/11.0/managementshell/user/overview.md delete mode 100644 docs/directorymanager/11.0/managementshell/user/removeuser.md delete mode 100644 docs/directorymanager/11.0/managementshell/user/setuser.md delete mode 100644 docs/directorymanager/11.0/managementshell/userlifecycle/_category_.json delete mode 100644 docs/directorymanager/11.0/managementshell/userlifecycle/extenduser.md delete mode 100644 docs/directorymanager/11.0/managementshell/userlifecycle/getstatus.md delete mode 100644 docs/directorymanager/11.0/managementshell/userlifecycle/overview.md delete mode 100644 docs/directorymanager/11.0/managementshell/userlifecycle/reinstateuser.md delete mode 100644 docs/directorymanager/11.0/managementshell/userlifecycle/terminatedirectreports.md delete mode 100644 docs/directorymanager/11.0/managementshell/userlifecycle/transferdirectreports.md delete mode 100644 docs/directorymanager/11.0/requirements/_category_.json delete mode 100644 docs/directorymanager/11.0/requirements/database.md delete mode 100644 docs/directorymanager/11.0/requirements/exchange_servers.md delete mode 100644 docs/directorymanager/11.0/requirements/hardware.md delete mode 100644 docs/directorymanager/11.0/requirements/moreinfo/_category_.json delete mode 100644 docs/directorymanager/11.0/requirements/moreinfo/adserviceaccount.md delete mode 100644 docs/directorymanager/11.0/requirements/moreinfo/gmsarequirements.md delete mode 100644 docs/directorymanager/11.0/requirements/moreinfo/overview.md delete mode 100644 docs/directorymanager/11.0/requirements/requirements.md delete mode 100644 docs/directorymanager/11.0/requirements/windowsserver.md delete mode 100644 docs/directorymanager/11.0/signin/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/applications/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/applications/admincenter.md delete mode 100644 docs/directorymanager/11.0/signin/applications/applications.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/categories/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/categories/categories.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/categories/custom.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/categories/dropdownlist.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/categories/grid.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/categories/image.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/details.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/fileformat.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/overview.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/schema.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/categories/linkeddropdown.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/categories/multilinetextbox.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/categories/radio.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/categories/textbox.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/create.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/delete.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/badwords.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/createobject.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/importexport.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/navigationbar.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/objectcard.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/objectlist.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/objectproperties.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/organizationalhierarchy.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/propertyvalidation.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/queryattributes.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/quicksearch.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/searchforms.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/searchresults.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/sendasonbehalf.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/displaytype/toolbars.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/overview.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/server/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/server/advanced.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/server/general.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/server/log.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/server/nativeiis.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/server/overview.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/server/remoteiis.md delete mode 100644 docs/directorymanager/11.0/signin/applications/portal/server/support.md delete mode 100644 docs/directorymanager/11.0/signin/applications/remoteiisprerequisites.md delete mode 100644 docs/directorymanager/11.0/signin/authpolicy/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/authpolicy/authenticate.md delete mode 100644 docs/directorymanager/11.0/signin/authpolicy/authpolicy.md delete mode 100644 docs/directorymanager/11.0/signin/authpolicy/enroll.md delete mode 100644 docs/directorymanager/11.0/signin/authpolicy/mfa.md delete mode 100644 docs/directorymanager/11.0/signin/authpolicy/setupauth/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/authpolicy/setupauth/authenticator.md delete mode 100644 docs/directorymanager/11.0/signin/authpolicy/setupauth/email.md delete mode 100644 docs/directorymanager/11.0/signin/authpolicy/setupauth/linkedaccount.md delete mode 100644 docs/directorymanager/11.0/signin/authpolicy/setupauth/overview.md delete mode 100644 docs/directorymanager/11.0/signin/authpolicy/setupauth/securityquestions.md delete mode 100644 docs/directorymanager/11.0/signin/authpolicy/setupauth/windowshello.md delete mode 100644 docs/directorymanager/11.0/signin/authpolicy/setupauth/yubikey.md delete mode 100644 docs/directorymanager/11.0/signin/authpolicy/sfa.md delete mode 100644 docs/directorymanager/11.0/signin/concepts/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/concepts/accessapplications.md delete mode 100644 docs/directorymanager/11.0/signin/concepts/changepassword.md delete mode 100644 docs/directorymanager/11.0/signin/concepts/concepts.md delete mode 100644 docs/directorymanager/11.0/signin/concepts/dashboard.md delete mode 100644 docs/directorymanager/11.0/signin/concepts/globalpool.md delete mode 100644 docs/directorymanager/11.0/signin/concepts/history.md delete mode 100644 docs/directorymanager/11.0/signin/concepts/history_1.md delete mode 100644 docs/directorymanager/11.0/signin/concepts/licensing.md delete mode 100644 docs/directorymanager/11.0/signin/concepts/logs.md delete mode 100644 docs/directorymanager/11.0/signin/concepts/navigation.md delete mode 100644 docs/directorymanager/11.0/signin/concepts/switchaccount.md delete mode 100644 docs/directorymanager/11.0/signin/datasource/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/datasource/create.md delete mode 100644 docs/directorymanager/11.0/signin/datasource/manage.md delete mode 100644 docs/directorymanager/11.0/signin/datasource/overview.md delete mode 100644 docs/directorymanager/11.0/signin/entitlement/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/entitlement/manage.md delete mode 100644 docs/directorymanager/11.0/signin/entitlement/manage_1.md delete mode 100644 docs/directorymanager/11.0/signin/entitlement/overview.md delete mode 100644 docs/directorymanager/11.0/signin/helpdesk/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/helpdesk/history.md delete mode 100644 docs/directorymanager/11.0/signin/helpdesk/operation/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/helpdesk/operation/asktoenroll.md delete mode 100644 docs/directorymanager/11.0/signin/helpdesk/operation/export.md delete mode 100644 docs/directorymanager/11.0/signin/helpdesk/operation/overview.md delete mode 100644 docs/directorymanager/11.0/signin/helpdesk/operation/resetpassword.md delete mode 100644 docs/directorymanager/11.0/signin/helpdesk/operation/search.md delete mode 100644 docs/directorymanager/11.0/signin/helpdesk/operation/unenroll.md delete mode 100644 docs/directorymanager/11.0/signin/helpdesk/operation/unlockaccount.md delete mode 100644 docs/directorymanager/11.0/signin/helpdesk/overview.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/identitystore/advsentraid.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/circularreference.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/configure.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/dynastysettings.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/groupexpirydeletion.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/historytracking.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/membershiplifecycle.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/messagingprovider.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/outofbounds.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/passwordoptions.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/prefixes.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/profilevalidation.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/secondwayauthentication.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/securityquestions.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/smsauthentication.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/create.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/link/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/identitystore/link/manage.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/link/overview.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/manage.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/overview.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/replication.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/view/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/identitystore/view/details.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/view/eventlogging.md delete mode 100644 docs/directorymanager/11.0/signin/identitystore/view/view.md delete mode 100644 docs/directorymanager/11.0/signin/notification/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/notification/customize.md delete mode 100644 docs/directorymanager/11.0/signin/notification/overview.md delete mode 100644 docs/directorymanager/11.0/signin/notification/queue.md delete mode 100644 docs/directorymanager/11.0/signin/replication/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/replication/overview.md delete mode 100644 docs/directorymanager/11.0/signin/replication/settings.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/schedule/entitlement.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/entitlementscope.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/entitlementtemporarypermissions.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/grouplifecycle.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/groupusageservice.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/historyretention.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/manage.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/managedbylifecycle.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/membershiplifecycle.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/orphangroupupdate.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/overview.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/reports.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/schemareplication.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/smartgroupupdate.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/synchronize.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/userlifecycle.md delete mode 100644 docs/directorymanager/11.0/signin/schedule/workflowacceleration.md delete mode 100644 docs/directorymanager/11.0/signin/securityrole/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/securityrole/checkrole.md delete mode 100644 docs/directorymanager/11.0/signin/securityrole/create.md delete mode 100644 docs/directorymanager/11.0/signin/securityrole/criteria.md delete mode 100644 docs/directorymanager/11.0/signin/securityrole/manage.md delete mode 100644 docs/directorymanager/11.0/signin/securityrole/overview.md delete mode 100644 docs/directorymanager/11.0/signin/securityrole/permissions.md delete mode 100644 docs/directorymanager/11.0/signin/securityrole/policy/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/securityrole/policy/authentication.md delete mode 100644 docs/directorymanager/11.0/signin/securityrole/policy/groupowners.md delete mode 100644 docs/directorymanager/11.0/signin/securityrole/policy/helpdesk.md delete mode 100644 docs/directorymanager/11.0/signin/securityrole/policy/newobject.md delete mode 100644 docs/directorymanager/11.0/signin/securityrole/policy/overview.md delete mode 100644 docs/directorymanager/11.0/signin/securityrole/policy/password.md delete mode 100644 docs/directorymanager/11.0/signin/securityrole/policy/querydesigner.md delete mode 100644 docs/directorymanager/11.0/signin/securityrole/policy/search.md delete mode 100644 docs/directorymanager/11.0/signin/securityrole/policy/synchronize.md delete mode 100644 docs/directorymanager/11.0/signin/service/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/service/dataservice/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/service/dataservice/create.md delete mode 100644 docs/directorymanager/11.0/signin/service/dataservice/manage.md delete mode 100644 docs/directorymanager/11.0/signin/service/dataservice/overview.md delete mode 100644 docs/directorymanager/11.0/signin/service/emailservice.md delete mode 100644 docs/directorymanager/11.0/signin/service/mobileservice/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/service/mobileservice/create.md delete mode 100644 docs/directorymanager/11.0/signin/service/mobileservice/delete.md delete mode 100644 docs/directorymanager/11.0/signin/service/mobileservice/design/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/service/mobileservice/design/objectproperties.md delete mode 100644 docs/directorymanager/11.0/signin/service/mobileservice/design/overview.md delete mode 100644 docs/directorymanager/11.0/signin/service/mobileservice/design/permissions.md delete mode 100644 docs/directorymanager/11.0/signin/service/mobileservice/design/propertyvalidation.md delete mode 100644 docs/directorymanager/11.0/signin/service/mobileservice/design/quicksearch.md delete mode 100644 docs/directorymanager/11.0/signin/service/mobileservice/design/searchresults.md delete mode 100644 docs/directorymanager/11.0/signin/service/mobileservice/overview.md delete mode 100644 docs/directorymanager/11.0/signin/service/mobileservice/phonesetup.md delete mode 100644 docs/directorymanager/11.0/signin/service/mobileservice/server/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/service/mobileservice/server/deployment.md delete mode 100644 docs/directorymanager/11.0/signin/service/mobileservice/server/general.md delete mode 100644 docs/directorymanager/11.0/signin/service/mobileservice/server/overview.md delete mode 100644 docs/directorymanager/11.0/signin/service/overview.md delete mode 100644 docs/directorymanager/11.0/signin/service/replicationservice.md delete mode 100644 docs/directorymanager/11.0/signin/service/schedulerservice.md delete mode 100644 docs/directorymanager/11.0/signin/service/securityservice/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/service/securityservice/create.md delete mode 100644 docs/directorymanager/11.0/signin/service/securityservice/manage.md delete mode 100644 docs/directorymanager/11.0/signin/service/securityservice/overview.md delete mode 100644 docs/directorymanager/11.0/signin/signin.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/accountid.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/class/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/class/accesscode.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/class/class.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/class/class_1.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/class/exceptionmessage.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/class/maxlength.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/class/message.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/class/message_1.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/class/phonenumbers.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/class/referenceid.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/class/success.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/class/validate.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/clone.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/overview.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/password.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/proxydomain.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/proxyhostname.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/proxypassword.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/proxyport.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/proxyusername.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/sendshortmessage.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/testconnection.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/testcredentials.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/testproxy.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/url.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/custom/userid.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/implementcustom.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/manage.md delete mode 100644 docs/directorymanager/11.0/signin/smsgateway/overview.md delete mode 100644 docs/directorymanager/11.0/signin/workflow/_category_.json delete mode 100644 docs/directorymanager/11.0/signin/workflow/advancedsettings.md delete mode 100644 docs/directorymanager/11.0/signin/workflow/approveracceleration.md delete mode 100644 docs/directorymanager/11.0/signin/workflow/implement.md delete mode 100644 docs/directorymanager/11.0/signin/workflow/integrate.md delete mode 100644 docs/directorymanager/11.0/signin/workflow/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/dashboard.md delete mode 100644 docs/directorymanager/11.0/welcome/dashboard/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/dashboard/computer.md delete mode 100644 docs/directorymanager/11.0/welcome/dashboard/contact.md delete mode 100644 docs/directorymanager/11.0/welcome/dashboard/dashboard.md delete mode 100644 docs/directorymanager/11.0/welcome/dashboard/generate.md delete mode 100644 docs/directorymanager/11.0/welcome/dashboard/group.md delete mode 100644 docs/directorymanager/11.0/welcome/dashboard/manage.md delete mode 100644 docs/directorymanager/11.0/welcome/dashboard/user.md delete mode 100644 docs/directorymanager/11.0/welcome/entitlement/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/entitlement/fileservers.md delete mode 100644 docs/directorymanager/11.0/welcome/entitlement/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/entitlement/sharepointsites.md delete mode 100644 docs/directorymanager/11.0/welcome/generalfeatures/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/generalfeatures/find.md delete mode 100644 docs/directorymanager/11.0/welcome/generalfeatures/generalfeatures.md delete mode 100644 docs/directorymanager/11.0/welcome/generalfeatures/portal.md delete mode 100644 docs/directorymanager/11.0/welcome/generalfeatures/querysearch.md delete mode 100644 docs/directorymanager/11.0/welcome/generalfeatures/search.md delete mode 100644 docs/directorymanager/11.0/welcome/generalfeatures/toolbar.md delete mode 100644 docs/directorymanager/11.0/welcome/generalfeatures/user.md delete mode 100644 docs/directorymanager/11.0/welcome/group/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/group/allgroups/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/group/allgroups/alldynasties.md delete mode 100644 docs/directorymanager/11.0/welcome/group/allgroups/allexpiredgroups.md delete mode 100644 docs/directorymanager/11.0/welcome/group/allgroups/allexpiringgroups.md delete mode 100644 docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md delete mode 100644 docs/directorymanager/11.0/welcome/group/allgroups/allsmartgroups.md delete mode 100644 docs/directorymanager/11.0/welcome/group/allgroups/passwordexpirygroups.md delete mode 100644 docs/directorymanager/11.0/welcome/group/allgroups/privategroups.md delete mode 100644 docs/directorymanager/11.0/welcome/group/allgroups/publicgroups.md delete mode 100644 docs/directorymanager/11.0/welcome/group/allgroups/semiprivategroups.md delete mode 100644 docs/directorymanager/11.0/welcome/group/allgroups/teams.md delete mode 100644 docs/directorymanager/11.0/welcome/group/create/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/group/create/create.md delete mode 100644 docs/directorymanager/11.0/welcome/group/create/group/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/group/create/group/general.md delete mode 100644 docs/directorymanager/11.0/welcome/group/create/group/general_1.md delete mode 100644 docs/directorymanager/11.0/welcome/group/create/group/group.md delete mode 100644 docs/directorymanager/11.0/welcome/group/create/group/group_1.md delete mode 100644 docs/directorymanager/11.0/welcome/group/create/group/members.md delete mode 100644 docs/directorymanager/11.0/welcome/group/create/group/owners.md delete mode 100644 docs/directorymanager/11.0/welcome/group/create/group/smartgroup.md delete mode 100644 docs/directorymanager/11.0/welcome/group/create/grouptype.md delete mode 100644 docs/directorymanager/11.0/welcome/group/create/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/group/dynasty/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/createdynasty.md delete mode 100644 docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/createdynasty_1.md delete mode 100644 docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsmanagerial.md delete mode 100644 docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsorggeocus.md delete mode 100644 docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/general.md delete mode 100644 docs/directorymanager/11.0/welcome/group/dynasty/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/group/mygroups/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/group/mygroups/mydeletedgroups.md delete mode 100644 docs/directorymanager/11.0/welcome/group/mygroups/mydynasties.md delete mode 100644 docs/directorymanager/11.0/welcome/group/mygroups/myexpiredgroups.md delete mode 100644 docs/directorymanager/11.0/welcome/group/mygroups/myexpiringgroups.md delete mode 100644 docs/directorymanager/11.0/welcome/group/mygroups/mygroups.md delete mode 100644 docs/directorymanager/11.0/welcome/group/mygroups/mymemberships.md delete mode 100644 docs/directorymanager/11.0/welcome/group/mygroups/mysmartgroups.md delete mode 100644 docs/directorymanager/11.0/welcome/group/mygroups/myteams.md delete mode 100644 docs/directorymanager/11.0/welcome/group/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/advanced.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/attributes.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/channels.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/deliveryrestrictions.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/dynastyoptions.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/email.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/entitlements.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/general.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/history.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/importadditionalowners.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/importmembers.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/memberof.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/members.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/owner.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/similargroups.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/smartgroup.md delete mode 100644 docs/directorymanager/11.0/welcome/group/properties/treeview.md delete mode 100644 docs/directorymanager/11.0/welcome/group/querydesigner/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/group/querydesigner/database.md delete mode 100644 docs/directorymanager/11.0/welcome/group/querydesigner/filtercriteria.md delete mode 100644 docs/directorymanager/11.0/welcome/group/querydesigner/general.md delete mode 100644 docs/directorymanager/11.0/welcome/group/querydesigner/includeexclude.md delete mode 100644 docs/directorymanager/11.0/welcome/group/querydesigner/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/group/querydesigner/passwordexpiryoptions.md delete mode 100644 docs/directorymanager/11.0/welcome/group/querydesigner/script.md delete mode 100644 docs/directorymanager/11.0/welcome/group/querydesigner/storage.md delete mode 100644 docs/directorymanager/11.0/welcome/group/recyclebin/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/group/recyclebin/general.md delete mode 100644 docs/directorymanager/11.0/welcome/group/recyclebin/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/group/transferownership.md delete mode 100644 docs/directorymanager/11.0/welcome/group/workingwithgroups/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/group/workingwithgroups/attestation.md delete mode 100644 docs/directorymanager/11.0/welcome/group/workingwithgroups/dynastyfunction.md delete mode 100644 docs/directorymanager/11.0/welcome/group/workingwithgroups/generalfunction.md delete mode 100644 docs/directorymanager/11.0/welcome/group/workingwithgroups/groupaccess.md delete mode 100644 docs/directorymanager/11.0/welcome/group/workingwithgroups/groupdeletion.md delete mode 100644 docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md delete mode 100644 docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiryfunction.md delete mode 100644 docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md delete mode 100644 docs/directorymanager/11.0/welcome/group/workingwithgroups/groupmembershipfunction.md delete mode 100644 docs/directorymanager/11.0/welcome/group/workingwithgroups/groupownershipfunction.md delete mode 100644 docs/directorymanager/11.0/welcome/group/workingwithgroups/scheduleupdate.md delete mode 100644 docs/directorymanager/11.0/welcome/group/workingwithgroups/sendassendonbehalf.md delete mode 100644 docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md delete mode 100644 docs/directorymanager/11.0/welcome/history/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/history/mydirectorygroup.md delete mode 100644 docs/directorymanager/11.0/welcome/history/mydirectreport.md delete mode 100644 docs/directorymanager/11.0/welcome/history/myhistory.md delete mode 100644 docs/directorymanager/11.0/welcome/history/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/login.md delete mode 100644 docs/directorymanager/11.0/welcome/passwordmanagement.md delete mode 100644 docs/directorymanager/11.0/welcome/request/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/request/allrequest.md delete mode 100644 docs/directorymanager/11.0/welcome/request/myrequest.md delete mode 100644 docs/directorymanager/11.0/welcome/request/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/request/pending.md delete mode 100644 docs/directorymanager/11.0/welcome/secondfactorauthentication/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/secondfactorauthentication/authenticateaccount.md delete mode 100644 docs/directorymanager/11.0/welcome/secondfactorauthentication/enrollaccount.md delete mode 100644 docs/directorymanager/11.0/welcome/secondfactorauthentication/passwordreset.md delete mode 100644 docs/directorymanager/11.0/welcome/secondfactorauthentication/secondfactorauthentication.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/chooseyourjobcollectiontemplate.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/chooseyourjobtemplate.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/create.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/create_1.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/mappingfield.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/exchange.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/googleapp.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/messagingsystemoverview.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/office365.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/objectfieldsandmapping.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/scheduleandnotification.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/schedulingandnotification.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/selectedfield.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/sourceanddestination.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/create/synchronizedjobcollection.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/dashboard.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/dtmscript/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/dtmscript/dtmscript.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/dtmscript/samplecontainerscript.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/dtmscript/sampletransformscript.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/dtmscript/visualbasicnetbasic.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/manage/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/manage/job.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/manage/jobcollection.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/manage/jobcollectiontemplate.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/manage/jobtemplate.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/manage/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/manage/schedule.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/provider.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/transformation/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md delete mode 100644 docs/directorymanager/11.0/welcome/synchronize/transformation/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/user/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/user/create/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/user/create/activedirectory/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/user/create/activedirectory/account.md delete mode 100644 docs/directorymanager/11.0/welcome/user/create/activedirectory/contact.md delete mode 100644 docs/directorymanager/11.0/welcome/user/create/activedirectory/exchange.md delete mode 100644 docs/directorymanager/11.0/welcome/user/create/activedirectory/mailbox.md delete mode 100644 docs/directorymanager/11.0/welcome/user/create/activedirectory/messaging.md delete mode 100644 docs/directorymanager/11.0/welcome/user/create/activedirectory/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/user/create/activedirectory/password.md delete mode 100644 docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md delete mode 100644 docs/directorymanager/11.0/welcome/user/create/activedirectory/user.md delete mode 100644 docs/directorymanager/11.0/welcome/user/create/azure/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/user/create/azure/account.md delete mode 100644 docs/directorymanager/11.0/welcome/user/create/azure/directoryrole.md delete mode 100644 docs/directorymanager/11.0/welcome/user/create/azure/exchange.md delete mode 100644 docs/directorymanager/11.0/welcome/user/create/azure/mailbox.md delete mode 100644 docs/directorymanager/11.0/welcome/user/create/azure/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/user/create/azure/password.md delete mode 100644 docs/directorymanager/11.0/welcome/user/create/azure/user.md delete mode 100644 docs/directorymanager/11.0/welcome/user/create/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/user/linkedaccounts.md delete mode 100644 docs/directorymanager/11.0/welcome/user/manage/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/user/manage/changepassword.md delete mode 100644 docs/directorymanager/11.0/welcome/user/manage/directreport.md delete mode 100644 docs/directorymanager/11.0/welcome/user/manage/disableduser.md delete mode 100644 docs/directorymanager/11.0/welcome/user/manage/organizationalheirarchy.md delete mode 100644 docs/directorymanager/11.0/welcome/user/manage/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/user/manage/resetpassword.md delete mode 100644 docs/directorymanager/11.0/welcome/user/manage/unlockaccount.md delete mode 100644 docs/directorymanager/11.0/welcome/user/manage/validateprofile.md delete mode 100644 docs/directorymanager/11.0/welcome/user/manage/viewprofile.md delete mode 100644 docs/directorymanager/11.0/welcome/user/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/advanced.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/memberof.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/advanced.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/autoreply.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/limits.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/account.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/advanced.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/email.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/entitlement.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/general.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/memberof.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/organization.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/phonenote.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/useroverview.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/azure/_category_.json delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/azure/contactinfo.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/azure/directoryrole.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/azure/identity.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/azure/jobinfo.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/azure/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/user/properties/overview.md delete mode 100644 docs/directorymanager/11.0/welcome/welcome.md diff --git a/docs/directorymanager/11.0/about/_category_.json b/docs/directorymanager/11.0/about/_category_.json deleted file mode 100644 index 55497ef024..0000000000 --- a/docs/directorymanager/11.0/about/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Installation", - "position": 30, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "about" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/about/about.md b/docs/directorymanager/11.0/about/about.md deleted file mode 100644 index 058b49f2c3..0000000000 --- a/docs/directorymanager/11.0/about/about.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "Installation" -description: "Installation" -sidebar_position: 30 ---- - -# Installation - -The GroupID installer auto detects the prerequisite software and Windows features that GroupID -requires, and installs them without any manual intervention. This has practically simplified GroupID -installation, reduced workloads, and diminished installation time. - -Furthermore, GroupID configuration and upgrade has been seamlessly integrated into the installation -experience. - -See Also - -- [Requirements](/docs/directorymanager/11.0/requirements/requirements.md) -- [Preparation Tool](/docs/directorymanager/11.0/about/installer/preparationtool.md) -- [Installation Tool](/docs/directorymanager/11.0/about/installer/install.md) -- [Configuration Tool](/docs/directorymanager/11.0/about/configure/configure.md) diff --git a/docs/directorymanager/11.0/about/configure/_category_.json b/docs/directorymanager/11.0/about/configure/_category_.json deleted file mode 100644 index d50e6b1f43..0000000000 --- a/docs/directorymanager/11.0/about/configure/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Configuration", - "position": 20, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/about/configure/configure.md b/docs/directorymanager/11.0/about/configure/configure.md deleted file mode 100644 index 984895a605..0000000000 --- a/docs/directorymanager/11.0/about/configure/configure.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: "Configuration Tool" -description: "Configuration Tool" -sidebar_position: 10 ---- - -# Configuration Tool - -You can configure GroupID immediately after installing it or later. - -1. Run the Configuration Tool in one of the following ways: - - - To configure GroupID right after installation, click **Next** on the **Run Configuration - Tool** page. See the - [Installation Tool](/docs/directorymanager/11.0/about/installer/install.md) topic. - - When GroupID is installed, the Configuration Tool is also installed as a separate program on - the machine. Launch the GroupID Configuration Tool from the Windows Start screen. - - In either case, the tool opens to the **Introduction** page. - - ![Introduction page](/images/directorymanager/11.0/install/configure/intro.webp) - -2. Read the welcome message and click **Next**. - - ![Create new server page](/images/directorymanager/11.0/install/configure/select_to_create_a_new_server-new.webp) - -3. To configure a GroupID server or a GroupID client, select the relevant option. - - - **Configure a new GroupID server with new or existing database** – configures the GroupID - server and the GroupID Data Service on the machine where GroupID is being installed. - - It also configures the GroupID Elasticsearch Service as a master node for the Elasticsearch - service cluster to support load balancing. - - See the - [Configure a new GroupID server with a new or an existing database](/docs/directorymanager/11.0/about/configure/gidserver.md) - topic for additional information. - - - **Configure a new GroupID 11 server to add it into an existing GroupID 11 cluster with an - existing database** – configures a GroupID server that has its own Data Service. This data - service gets the configurations (paraphrase and database settings) of the Data Service - deployed for another GroupID server in your environment. - - This option also configures the GroupID Elasticsearch Service as a slave node to the master - node for the Elasticsearch Service cluster configured on the GroupID server. - See the - [Configure a new GroupID server to add it into an existing GroupID 11 cluster with an existing database](/docs/directorymanager/11.0/about/configure/database.md) - topic for additional information. - -See Also - -- [Requirements](/docs/directorymanager/11.0/requirements/requirements.md) -- [Preparation Tool](/docs/directorymanager/11.0/about/installer/preparationtool.md) -- [Installation Tool](/docs/directorymanager/11.0/about/installer/install.md) diff --git a/docs/directorymanager/11.0/about/configure/database.md b/docs/directorymanager/11.0/about/configure/database.md deleted file mode 100644 index fe95ca62ff..0000000000 --- a/docs/directorymanager/11.0/about/configure/database.md +++ /dev/null @@ -1,205 +0,0 @@ ---- -title: "Configure a new GroupID server to add it into an existing GroupID 11 cluster with an existing database" -description: "Configure a new GroupID server to add it into an existing GroupID 11 cluster with an existing database" -sidebar_position: 30 ---- - -# Configure a new GroupID server to add it into an existing GroupID 11 cluster with an existing database - -While installing GroupID, you can choose to create a GroupID server with load balancing support, -where load will be balanced in real time with multiple Data Services, portals and Elasticsearch -instances. - -This option also configures the GroupID Elasticsearch Service as a slave node to the master node for -the Elasticsearch Service cluster configured on the GroupID server. - -To configure a GroupID server with existing database: - -1. On the **Select to create new server or use existing server** page of the Configuration Tool, - select - [Configure a new GroupID server with a new or an existing database](/docs/directorymanager/11.0/about/configure/gidserver.md) - option. See point # 2 on the - [Configuration Tool](/docs/directorymanager/11.0/about/configure/configure.md) topic. -2. Click **Next**. - - ![database settings](/images/directorymanager/11.0/install/configure/databasesettings.webp) - -3. In the **SQL Server** list, select the SQL Server to use with this new GroupID Server. The - SQL Server must be the same used with the master node of GroupID. - - If the required server does not appear in the list, make sure that **the SQL Server Browser** - service is running on the SQL Server machine and then click the **Refresh** button. - -4. In the **Authentication** list, select an authentication mode to be used when connecting to the - SQL Server database. Modes are: - - - **SQL Server Authentication** - To set SQL Server to work with GroupID using an SQL Server - account. See the - [Authentication Modes](/docs/directorymanager/11.0/about/configure/setupauthentication.md) - topic for additional information. - - **Windows Authentication** - To set SQL Server to work with GroupID using a Windows user - account. See the - [Authentication Modes](/docs/directorymanager/11.0/about/configure/setupauthentication.md) - topic for additional details. - -5. Depending on the authentication mode selected, do the following: - - - For SQL Server Authentication: enter the user name and password of the selected SQL Server in - the **SQL Username** and **SQL Password** boxes. - - For Windows Authentication: User name and password fields will be disabled with Windows - Authentication. The logged-in user credentials will be populated here. - -6. In the **SQL Database** box, specify name of the SQL database being used by the master - GroupID node. This new GroupID instance will use the same database. - - NOTE: While configuring a new GroupID machine with an existing database option, the Copy - Database button has no relevance here. - -7. Click **Next**. - - ![License page](/images/directorymanager/11.0/install/configure/license_w_existing_db_option.webp) - -8. On the **License** page, license information of GroupID installed on the master node is - displayed. A valid license and key enable the **Next** button. If the **Next** button remains - disabled, check your entries for errors. -9. Click **Next**. - - ![GroupID Service Configurations](/images/directorymanager/11.0/install/configure/servicesconfiguration.webp) - -10. GroupID requires two services: - - - **GroupID Data Service**: This is a web-based service that GroupID uses to communicate with - Microsoft SQL Server for storing and fetching data in the database. - - **GroupID Security Service**: This is also a web-based service that GroupID uses to: - - - Authenticate and authorize users on different GroupID functionalities in accordance with - their roles. - - Encrypt and decrypt data that GroupID Data Service stores and fetches from the SQL - database. - - To deploy these services, the Configuration Tool creates and configures a new website in IIS - with the name GroupIDSite11. By default, it binds this site to any of the available ports. - However, if you have a different preference, you can change the port. - - Click **Advanced Options** and enter the port in **the Port Number** box. - - - **Replication service**: This service replicates object attributes from the provider (such as - Active Directory) to Elasticsearch. - - **Admin Center**: Admin Center is a web-based application that can be accessed over the - Internet and Intranet. - - NOTE: This GroupID instance will use Email and Scheduler services of the selected cluster. - -11. Click **Next**. - - ![Elasticsearch Settings page](/images/directorymanager/11.0/install/configure/elasticsearchsettings.webp) - -12. GroupID provides the following two options for Elasticsearch configuration. Select the relevant - option: - - - **Let GroupID install and manage Elasticsearch**: If you select this option, GroupID - Configuration Tool will install Elasticsearch. It presents you default configuration of - Elasticsearch cluster it will create: - - ![Select Elastic Cluster page](/images/directorymanager/11.0/install/configure/select_cluster_w_existing_db_option.webp) - - 1. **Cluster Name**: lists all the clusters defined so far. Select one to create an - Elasticsearch node within the selected cluster. - 2. **Port**: the default port for Elasticsearch API communication. Modify the port number if - the mentioned default port is not available. - 3. **TCP Port**: the default port for communication between nodes within the cluster. Modify - the port number if the mentioned default port is not available. - - NOTE: Make sure that the specified ports are available and unblocked. - - - **I will install and manage Elasticsearch myself**: If you select this option, the following - page is displayed: - - ![Elasticsearch settings page](/images/directorymanager/11.0/install/configure/elasticsearchsettings-2.webp) - - Provide configurations of Elasticsearch you want to use with GroupID: - - - **Elasticsearch URL**: URL for accessing the Elasticsearch. - - **Elasticsearch Username**: service account for Elasticsearch. - - **Elasticsearch Password**: password of the Elasticsearch service account. - -13. Click **Next**. - - ![Service Account Settings page](/images/directorymanager/11.0/install/configure/service_account_settings_w_existing_db.webp) - - NOTE: If you configure a Group Managed Service Account (gMSA) as an App Pool service account - then the GroupID Configuration tool will add this account in the local administrators and - IIS_IUSRS groups. - - NOTE: If you configure a normal user account as an App Pool service account and an AD identity - store is created with a gMSA service account, then the App Pool service account must have the - _PrincipalsAllowedToRetrieveManagedPassword_ property. The App Pool service account also must be - a member of Backup Operators and IIS_IUSRS groups. - -14. The **Service Account Settings** page, specify the service account to use for the GroupID app - pool in IIS and Windows services. - - - Use a domain account or a Group Managed Service Account (gMSA). - - The account must be a member of the Administrators group or both the Backup Operators and - IIS_IUSRS groups. - - The account you specify will be used to manage the GroupID app pool in IIS. GroupID Data - Service, Mobile Service, Security Service, and the portals run under the app pool. - - By default, a local account, GroupIDSSuser, is set for the GroupID app pool, but you cannot - proceed unless you change it to a domain account or gMSA. - - You can specify a local account (with local administrator rights) in app pool for a machine - that is not joined to any domain (this applies to an Microsoft Entra ID identity store only). - - NOTE: For GroupID App Pool, a domain account can be used for a machine joined to a domain. - - NOTE: Before you use a Group Managed Service Account, make sure that: - - - Key Distribution Service (KDS) is enabled on the GroupID machine. - - Microsoft AD module for PowerShell is installed on the machine. - -15. You can specify a service accounts for the app pool in any of the following ways: - - - **Use an existing account**: Click **Browse**. - - ![Find Service Account page](/images/directorymanager/11.0/install/configure/findserviceaccount.webp) - - On the **Find Service Account** dialog box, search and select the required account and click - **OK**. - - - **Create a new service account**: Click the **Create New** button on the Service Account - Setting page. - - ![Create a new service account page](/images/directorymanager/11.0/install/configure/createserviceaccount.webp) - - On the **Create Service Account** dialog box, select the kind of account you want to create. - Enter a name, container and password for the account. Click **Create**. - - NOTE: The logged-in user must have appropriate rights to create a new account. - - NOTE: If Key Distribution Service (KDS) is not configured in the environment, a warning will - be displayed that you cannot use a Group Managed Service Account. - -16. Provide password for the App Pool service account (except for a Group Managed Service Account) - in the Password box. -17. Click **Configure**. - - ![Configuring GroupID ](/images/directorymanager/11.0/install/configure/configuring.webp) - -18. The next page displays the progress while a GroupID server is configured on the machine. - - ![GroupID Configured successfully](/images/directorymanager/11.0/install/configure/configuresuccess.webp) - -19. This completes the configuration of GroupID as a slave node on your machine. - Click **Launch GroupID** to start using GroupID. The Sign In page opens: - - ![GroupID Sign In page](/images/directorymanager/11.0/install/configure/launchgid.webp) - - To login in to GroupID Admin Center for the first time, provide GroupID Administrator user name - and password. - - or - - click **Next** to launch the Upgrade wizard for upgrading GroupID. - -See Also - -- [Configuration Tool](/docs/directorymanager/11.0/about/configure/configure.md) diff --git a/docs/directorymanager/11.0/about/configure/gidserver.md b/docs/directorymanager/11.0/about/configure/gidserver.md deleted file mode 100644 index 1c5986625d..0000000000 --- a/docs/directorymanager/11.0/about/configure/gidserver.md +++ /dev/null @@ -1,215 +0,0 @@ ---- -title: "Configure a new GroupID server with a new or an existing database" -description: "Configure a new GroupID server with a new or an existing database" -sidebar_position: 20 ---- - -# Configure a new GroupID server with a new or an existing database - -This option configures the GroupID server and the GroupID Data Service on the machine where GroupID -is being installed. It also configures the GroupID Elasticsearch Service as a master node for the -Elasticsearch service cluster to support load balancing. - -To configure GroupID server on the machine where the Configuration Tool is being run: - -1. Select the **Configure a new GroupID server with new or existing database** option on the - **Select to create new server or use existing server** page of the Configuration Tool and select - **Next**. - - ![Database Settings page](/images/directorymanager/11.0/install/configure/databasesettings.webp) - -2. In the **SQL Server** list, select the SQL Server to use with GroupID. - - If the required server does not appear in the list, make sure that **the SQL Server Browser** - service is running on the SQL Server machine and then click the **Refresh** button. - -3. In the **Authentication** list, select an authentication mode to be used when connecting to the - SQL Server database. Modes are: - - - **SQL Server Authentication** - To set SQL Server to work with GroupID using an SQL Server - account. See SQL Authentication in - [Authentication Modes](/docs/directorymanager/11.0/about/configure/setupauthentication.md) - topic. - - **Windows Authentication** - To set SQL Server to work with GroupID using a Windows user - account. See Windows Authentication in in - [Authentication Modes](/docs/directorymanager/11.0/about/configure/setupauthentication.md) - topic. - -4. Depending on the authentication mode selected, do the following: - - - For SQL Server Authentication: enter the user name and password of the selected SQL Server in - the **SQL Username** and **SQL Password** boxes. - - For Windows Authentication: provide the credentials of a domain account or a Windows local - account that GroupID will use to connect with SQL Server. On clicking **OK**, the system - authenticates with that account on SQL Server via Windows authentication. - -5. In the **SQL Database** box, specify name of a new SQL database to use for GroupID. - - NOTE: For GroupID 11.0 Beta, you have to create a new database. You cannot use an existing - database or a copy of an existing database. - - A message is displayed to inform that the database does not exist. Click Yes to create it. - -6. Click **Next**. - - ![Security Settings page](/images/directorymanager/11.0/install/configure/securitysettings.webp) - -7. On the **Security Settings** page, enter an encryption key in the **Passphrase** and **Confirm - Passphrase** boxes to secure GroupID data. - - GroupID Data Service uses this key to encrypt and decrypt the data that it stores in, and - retrieves from, the SQL Server database. - - - The passphrase must have at least eight characters. - - Be sure to save this passphrase with you. Providing an incorrect passphrase at any later point - will result in the loss of GroupID data. - -8. Click **Next**. - - ![License page](/images/directorymanager/11.0/install/configure/license.webp) - -9. On the **License** page, enter a valid license number and key in the respective boxes. A valid - license and key enable the **Next** button. If the **Next** button remains disabled, check your - entries for errors. -10. Click **Next**. - - ![Elasticsearch setting page](/images/directorymanager/11.0/install/configure/elasticsearchsettings.webp) - -11. GroupID provides the following two options for Elasticsearch configuration. Select the relevant - option: - - - **Let GroupID install and manage Elasticsearch**: If you select this option, GroupID - Configuration Tool will install Elasticsearch. It presents you default configuration of - Elasticsearch cluster it will create: - - ![Select Elastic Cluster page](/images/directorymanager/11.0/install/configure/selectelasticcluster.webp) - - 1. Cluster Name: for Elasticsearch node(s) within the cluster. You can modify the name. - 2. Port: the default port for Elasticsearch API communication. Modify the port number if the - mentioned default port is not available. - 3. TCP Port: the default port for communication between nodes within the cluster. Modify the - port number if the mentioned default port is not available. - - NOTE: Make sure that the specified ports are available and unblocked. - - - **I will install and manage Elasticsearch myself**: If you select this option, the following - page is displayed: - - ![Elasticsearch settings page](/images/directorymanager/11.0/install/configure/elasticsearchsettings-2.webp) - - Provide configurations of Elasticsearch you want to use with GroupID: - - - **Elasticsearch URL**: URL for accessing the Elasticsearch. - - **Elasticsearch Username**: service account for Elasticsearch. - - **Elasticsearch Password**: password of the Elasticsearch service account. - -12. Click **Next**. - - ![Services Configuration page](/images/directorymanager/11.0/install/configure/servicesconfiguration.webp) - -13. At this point, GroupID configures the following: - - - **GroupID Data Service**: This is a web-based service that GroupID uses to communicate with - Microsoft SQL Server for storing and fetching data in the database. - - **GroupID Security Service**: This is also a web-based service that GroupID uses to: - - - Authenticate and authorize users on different GroupID functionalities in accordance with - their roles. - - Encrypt and decrypt data that GroupID Data Service stores and fetches from the SQL - database. - - To deploy these services, the Configuration Tool creates and configures a new website in IIS - with the name GroupIDSite11. By default, it binds this site to any of the available ports. - However, if you have a different preference, you can change the port. - - Click **Advanced Options** and enter the port in **the Port Number** box. - - - **Replication service**: This service replicates object attributes from the provider (such as - Active Directory) to Elasticsearch. - - **Admin Center**: Admin Center is a web-based application that can be accessed over the - Internet and Intranet. - - **Email service**: It maintains a queue of all notification requests generated by identity - stores, and sends them one by one. This service is deployed for each cluster. - - **Scheduler service**: This service initiates schedule runs for scheduled jobs defined in - GroupID. GroupID configures this service for each cluster. - -14. Click **Next**. - - ![Service Account Setting page](/images/directorymanager/11.0/install/configure/serviceaccount.webp) - - NOTE: If you configure a Group Managed Service Account (gMSA) as an App Pool service account - then the GroupID Configuration tool will add this account in the local administrators and - IIS_IUSRS groups. - - NOTE: If you configure a normal user account as an App Pool service account and an AD identity - store is created with a gMSA service account, then the App Pool service account must have the - _PrincipalsAllowedToRetrieveManagedPassword_ property. The App Pool service account also must be - a member of Backup Operators and IIS_IUSRS groups. - -15. GroupID enables you to specify the service accounts to use for the GroupID App Pool and a - default Administrative account for GroupID Admin Center. - - | Service | Service Account Description | - | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | GroupID App Pool | Use a domain account or a Group Managed Service Account (gMSA). The account must be a member of the Administrators group or both the Backup Operators and IIS_IUSRS groups. The account you specify will be used to manage the GroupID app pool in IIS. GroupID Data Service, Mobile Service, Security Service, and the portals run under the app pool. By default, a local account, GroupIDSSuser, is set for the GroupID app pool, but you cannot proceed unless you change it to a domain account or gMSA. NOTE: You can specify a local account (with local administrator rights) in app pool for a machine that is not joined to any domain (this applies to an Microsoft Entra ID identity store only). | - | GroupID Administrator | Use this account as default Administrative account for first time login to GroupID Admin Center. This account is not associated with any identity store, but one that is specific to GroupID. This account works as an Admin of all Admin accounts of defined identity stores in Admin Center. | - - NOTE: For GroupID App Pool, a domain account can be used for a machine joined to a domain. - - NOTE: Before you use a Group Managed Service Account, make sure that: - - - Key Distribution Service (KDS) is enabled on the GroupID machine. - - Microsoft AD module for PowerShell is installed on the machine. - -16. You can specify a service accounts for the app pool in any of the following ways: - - - **Use an existing account**: Click **Browse**. - - ![Find Service Account page](/images/directorymanager/11.0/install/configure/findserviceaccount.webp) - - On the **Find Service Account** dialog box, search and select the required account and click - **OK**. - - - **Create a new service account**: Click the **Create New** button on the Service Account - Setting page. - - ![Create a new service account page](/images/directorymanager/11.0/install/configure/createserviceaccount.webp) - - On the **Create Service Account** dialog box, select the kind of account you want to create. - Enter a name, container and password for the account. Click **Create**. - - NOTE: The logged-in user must have appropriate rights to create a new account. - - NOTE: If Key Distribution Service (KDS) is not configured in the environment, a warning will - be displayed that you cannot use a Group Managed Service Account. - -17. Provide password for the App Pool service account (except for a Group Managed Service Account) - in the Password box. -18. Provide password for the GroupID Administrator account in the **Password** box. -19. Click **Configure**. - - ![Configuring GroupID page](/images/directorymanager/11.0/install/configure/configuring.webp) - - **We are configuring GroupID** page displays the progress while a GroupID server is configured - on the machine. On successful configuration, the **GroupID is successfully configured** page - opens. - - ![GroupID successfully configured page](/images/directorymanager/11.0/install/configure/configuresuccess.webp) - -20. GroupID is configured on your machine. - - Click **Launch GroupID** to start using GroupID. The Sign In page opens: - - ![GroupID Sign In page](/images/directorymanager/11.0/install/configure/launchgid.webp) - - To login in to GroupID Admin Center for the first time, provide GroupID Administrator user name - and password. - - or - - click **Next** to launch the Upgrade wizard for upgrading GroupID - -See Also - -- [Installation Tool](/docs/directorymanager/11.0/about/installer/install.md) -- [Configuration Tool](/docs/directorymanager/11.0/about/configure/configure.md) diff --git a/docs/directorymanager/11.0/about/configure/overview.md b/docs/directorymanager/11.0/about/configure/overview.md deleted file mode 100644 index 1cfe26229b..0000000000 --- a/docs/directorymanager/11.0/about/configure/overview.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Configuration" -description: "Configuration" -sidebar_position: 20 ---- - -# Configuration - -Use the Configuration Tool to configure a new GroupID server. The tool configures: - -- A valid license for GroupID -- Scheduling, Email and Replication services -- Elasticsearch settings -- An encryption key to encrypt GroupID data -- An SQL Server and database -- Service account for GroupID App Pool -- Admin Center -- A default account for Admin Center - -See Also - -- [Configuration Tool](/docs/directorymanager/11.0/about/configure/configure.md) diff --git a/docs/directorymanager/11.0/about/configure/setupauthentication.md b/docs/directorymanager/11.0/about/configure/setupauthentication.md deleted file mode 100644 index 24ab2969ab..0000000000 --- a/docs/directorymanager/11.0/about/configure/setupauthentication.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: "Authentication Modes" -description: "Authentication Modes" -sidebar_position: 40 ---- - -# Authentication Modes - -While setting up GroupID, you must select an authentication mode for connecting to SQL Server (that -hosts the GroupID database). There are two possible modes: - -- [SQL Server Authentication](#sql-server-authentication) -- [Windows Authentication](#windows-authentication) - -## SQL Server Authentication - -It is recommended that you create a new SQL Server account for GroupID. You must add the account to -the _db_creator_ server role so that it can create and maintain the GroupID database. - -The account must also be part of the _db_owner_ database role, so that it can execute DDL (Data -Definition Language) and DML (Data Manipulation Language) commands. However, unlike Windows -Authentication mode setup, you do not need to add the account to the _db_owner_ role because SQL -Server _db_creator_ is mapped to the _db_owner_ database role by default. - -NOTE: Note: For SQL Server 2016, 2017, 2019 and 2022 families, every SQL Server account is assigned -the _public_ role. Therefore, the GroupID SQL account belongs to two server roles: _db_creator_ and -_public_. - -To add the GroupID SQL account to the db_creator role: - -1. Launch SQL Server Management Console. -2. Create a new account for GroupID 11, if needed. -3. Connect to the server using your new GroupID SQL account. -4. Right-click the database server node and click **Properties**. -5. On the **Properties** dialog box, select the **Permissions** page. -6. Scroll down on the **Explicit** tab to the **Connect SQL** permission and select the **Grant** - check box for it. -7. Click the **Effective** tab. You should have the following permissions listed here: - - - Connect SQL - - Create any database - - View any database - -8. Click **OK**. - -## Windows Authentication - -GroupID works with SQL Server (which hosts the GroupID database) using the Windows Authentication -mode in context of the account configured in GroupIDAppPool11 (when SQL Server is available locally -or remotely). GroupID detects this account and authenticates with it on SQL Server via Windows -authentication. - -You can configure a domain account in GroupIDAppPool11 and use it to connect GroupID to SQL Server, -provided that it has the following permissions on SQL Server. - -- The user account type on SQL Server must be a Windows account with db_owner permissions on the - GroupID database. -- For creating a new database, the user account must have the db_creator role and db_owner - permissions on the master database. - -Use a domain account when SQL Server is available remotely or locally. A local Windows account will -work only when GroupID and SQL Server are running on the same machine). - -The domain account used to connect GroupID with SQL Server must: - -- Be a member of the IIS_IUSR and Backup Operators groups. -- Have read/write permissions on the GroupID 11 installation folder: [GroupID installation - drive]:\Program Files\Imanami\GroupID 11.0. - -See Also - -- [Configuration Tool](/docs/directorymanager/11.0/about/configure/configure.md) diff --git a/docs/directorymanager/11.0/about/installer/_category_.json b/docs/directorymanager/11.0/about/installer/_category_.json deleted file mode 100644 index f662f635f0..0000000000 --- a/docs/directorymanager/11.0/about/installer/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Installer", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "installer" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/about/installer/install.md b/docs/directorymanager/11.0/about/installer/install.md deleted file mode 100644 index 793ccc4274..0000000000 --- a/docs/directorymanager/11.0/about/installer/install.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "Installation Tool" -description: "Installation Tool" -sidebar_position: 30 ---- - -# Installation Tool - -Installing GroupID is a simple process; it asks you to agree to the license agreement then it -installs GroupID on the default location: - -``` -C:\Program Files\Imanami\GroupID 11.0\ -``` - -To install GroupID: - -1. Run _directorymanagerInstallTool.exe_ from the GroupID `` folder in the GroupID Installation - package. It launches the Installation Tool. - - ![Welcome page](/images/directorymanager/11.0/install/installer/introduction.webp) - -2. Read the welcome message and click **Next**. - - ![End User License Agreement](/images/directorymanager/11.0/install/installer/eula.webp) - -3. On the **End User License Agreement** page, review and accept the licensing agreement and click - **Next**. - - ![installationprogress](/images/directorymanager/11.0/install/installer/installationprogress.webp) - -4. The progress bar shows the installation progress while all files are copied and GroupID is - installed. - - On successful installation, the **Run Configuration Tool** page is displayed. - - ![Run Configuration Tool](/images/directorymanager/11.0/install/installer/runconfigurationtool.webp) - -5. Click **Next** to proceed with configuring GroupID. - - OR - - Click **Close** on the title bar to close the GroupID Installer and configure GroupID later. - See the - [Configuration Tool](/docs/directorymanager/11.0/about/configure/configure.md) topic - to configure GroupID. - -See Also - -- [Requirements](/docs/directorymanager/11.0/requirements/requirements.md) -- [Preparation Tool](/docs/directorymanager/11.0/about/installer/preparationtool.md) -- [Configuration Tool](/docs/directorymanager/11.0/about/configure/configure.md) diff --git a/docs/directorymanager/11.0/about/installer/installer.md b/docs/directorymanager/11.0/about/installer/installer.md deleted file mode 100644 index bc0a633b99..0000000000 --- a/docs/directorymanager/11.0/about/installer/installer.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: "Installer" -description: "Installer" -sidebar_position: 10 ---- - -# Installer - -To install GroupID, you have to run the following tools in the given order: - -- **[Preparation Tool](/docs/directorymanager/11.0/about/installer/preparationtool.md)** - - Detects and instals the prerequisite software and Windows features that GroupID requires. - -- **[Installation Tool](/docs/directorymanager/11.0/about/installer/install.md)** - - Installs GroupID. - -- **[Configuration Tool](/docs/directorymanager/11.0/about/configure/configure.md)** - - Configures GroupID services, database, and other components. - -## GroupID Installation Package - -The GroupID installation package consists of: - -- GroupID 11 Prerequisites Tool (file folder) -- GroupID `` (file folder) - -## Who can install GroupID - -Before installing GroupID, make sure that the logged-in user is a member of the local Administrators -group on that machine. - -NOTE: (1) There should be a dedicated server for GroupID. -(2) Do not install GroupID on the domain controller. -(3) Do not install GroupID and Microsoft Exchange Server on the same machine. - -## Installation Cases - -Choose one of the four installation cases for GroupID 11: - -- **Case # 1**: GroupIDID 11 to co-exist with GroupID 10 on the same machine - -- **Case # 2**: GroupID 11 to co-exist with GroupID 10.0 / 9.0 in the same environment -- **Case # 3**: In-place installation of GroupID 11 on the same machine -- **Case # 4**: In-place installation of GroupID 11 in the environment - -The GroupID 11 installation and configuration process is the same for all four cases. You must -create a copy of the database being used with the previous GroupID version and bind the copy with -GroupID 11. - -Next, run the Upgrade wizard to make the copied database compatible with GroupID 11. Once upgraded, -the database schema changes, making it incompatible with the previous GroupID version. - -NOTE: When GroupID 11 co-exists with a previous GroupID version (case # 1 and 2), the two must have -separate databases. Data is not replicated between these databases. - -NOTE: This section does not apply to a fresh GroupID installation. - -See Also - -- [Preparation Tool](/docs/directorymanager/11.0/about/installer/preparationtool.md) -- [Installation Tool](/docs/directorymanager/11.0/about/installer/install.md) -- [Configuration Tool](/docs/directorymanager/11.0/about/configure/configure.md) diff --git a/docs/directorymanager/11.0/about/installer/preparationtool.md b/docs/directorymanager/11.0/about/installer/preparationtool.md deleted file mode 100644 index c66a9de7c7..0000000000 --- a/docs/directorymanager/11.0/about/installer/preparationtool.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: "Preparation Tool" -description: "Preparation Tool" -sidebar_position: 10 ---- - -# Preparation Tool - -The preparation tool installs all prerequisites software on a machine to prepare it for GroupID. - -What do you want to do? - -- [Run the Preparation Tool first time on a fresh machine](#run-the-preparation-tool-first-time-on-a-fresh-machine) -- [Run the Preparation Tool on an existing GroupID server](#run-the-preparation-tool-on-an-existing-groupidserver) - -## Run the Preparation Tool first time on a fresh machine - -To run the GroupID preparation tool: - -1. Open **GroupID 11 Prerequisites Tool** folder from the GroupID Installation package. -2. Run _directorymanagerPrereqTool.exe_ file. It launches the Preparation Tool. - - ![Preparation Tool Welcome page](/images/directorymanager/11.0/install/installer/welcome.webp) - -3. Read the welcome message and click **Next**. - - ![Ready to Begin page](/images/directorymanager/11.0/install/installer/ready_to_begin.webp) - -4. The **Ready to begin** page lists the required software and Windows features that the Preparation - Tool has identified for GroupID. - Click **Install** to begin. - - ![We are preparing page](/images/directorymanager/11.0/install/installer/wearepreparing.webp) - -5. On the **We are preparing this machine for GroupID ...** page the progress bar shows the - installation progress while prerequisites are installed. - - ![Ready to install](/images/directorymanager/11.0/install/installer/ready_to_install.webp) - - The **You are ready to install GroupID!** page displays the status of each prerequisite software - and Windows feature as _Passed_ or _Failed_. - - Expand the node for a perquisite to view its details. - - - A Passed prerequisite has one of these statuses: - - - was already installed (no action taken) - - Configured Successfully - - - For a Failed prerequisite, read the given message and take appropriate action. That done, - click **Retry** to verify whether the prerequisite has been installed. - -6. After viewing the information, click **Close**. - - If you are installing the prerequisites for the first time, a message to restart the machine is - displayed. Click **OK** to restart. - -## Run the Preparation Tool on an existing GroupID server - -If you have an earlier version of GroupID 11.0 installed on a machine, then before running the -preparation tool make sure no other version of the following prerequisite than the mentioned below -is installed, otherwise uninstall them manually: - -- Microsoft .NET Desktop Runtime 6.0.30 -- Microsoft ASP.NET Core Hosting Bundle 6.0.30 -- Microsoft Access Database Engine 2016 -- Microsoft Access Database Engine version later to 2016 -- PowerShell 7.3.6 -- Exchange Online Management versions from 3.2.0 to 3.4.0 - - If a higher version is installed, uninstall that using the following cmdlet: - - `uninstal-Module-Name exchangeonlinemanagement -force` - -- Microsoft Edge Webview2 Rnntime - - NOTE: If you need to re-run the preparation tool, uninstall this component first. - -After uninstalling the prerequisites, follow the steps given in the -[Run the Preparation Tool first time on a fresh machine](#run-the-preparation-tool-first-time-on-a-fresh-machine) -section above. - -See Also - -- [What does the Preparation Tool Install](/docs/directorymanager/11.0/about/installer/whatprepinstall.md) -- [ Installer](/docs/directorymanager/11.0/about/installer/installer.md) diff --git a/docs/directorymanager/11.0/about/installer/uninstall.md b/docs/directorymanager/11.0/about/installer/uninstall.md deleted file mode 100644 index 025bf450ac..0000000000 --- a/docs/directorymanager/11.0/about/installer/uninstall.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: "Uninstall GroupID" -description: "Uninstall GroupID" -sidebar_position: 40 ---- - -# Uninstall GroupID - -Before you uninstall GroupID , make sure that the logged-in user is a member of the local -Administrators group on that machine. - -To uninstall the current GroupID version to upgrade to a newer version, follow these steps: - -1. Click **Start**. -2. Type **Control Panel** and select it. -3. Select **Uninstall a program**. -4. From the **Name** column, right-click **Imanami GroupID ``**and select **Uninstall**. -5. On the **User Account Control** window, click **Yes**. - -This will uninstall GroupID from your machine. - -## Complete Uninstall - -To uninstall GroupID completely, remove the GroupID folders and registry keys from your machine. -This done, you do not have the option to upgrade to a newer version of GroupID. - -First, uninstall GroupID using the steps described above. - -Next, to completely uninstall GroupID from your machine, remove: - -- The GroupID installation directory -- Other relevant directories -- Registry keys -- GroupID Site -- GroupID application pools -- GroupID certificates - -Remove the GroupID installation directory - -1. Go to the location: - X:\Program Files\Imanami - (X represents the GroupID installation drive). -2. Delete the directory named GroupID 11.0. - -Remove other relevant directories - -1. On the Windows **Run** dialog box, type the command: - - ``` - %ALLUSERSPROFILE%\Imanami - ``` - -2. From the location referenced by the given command, delete the folder: GroupID 11.0. - -Remove registry keys - -1. Open the **Registry Editor** by typing **regedit** in the Windows **Run** dialog box. -2. Delete the following registry keys: - - ``` - HKEY_LOCAL_MACHINE\SOFTWARE\Imanami\GroupID\Version 11.0 - ``` - -Remove the GroupID Site - -Follow these steps to remove the GroupID site from IIS: - -1. Open the Internet Information Service console by typing _inetmgr_ in the Windows **Run** dialog - box. -2. Expand the `` node in the console tree and click **Sites**. -3. On the **Sites** page, delete _GroupIDSite11_. - -Remove the GroupID applications and services pools - -Follow these steps to remove the GroupID Admin Center, app pool, services and portal from IIS: - -1. Open the Internet Information Service console by typing _inetmgr_ in the Windows **Run** dialog - box. -2. Expand the `` node in the console tree and click **Application Pools**. -3. On the **Application Pools** page, delete all app pools for GroupID Admin Center, applications, - portals and services. - -Remove GroupID Certificates - -Follow these steps to remove GroupID certificates from IIS: - -1. Open the Internet Information Service console by typing _inetmgr_ in the Windows **Run** dialog - box. -2. Click the `` node in the console tree. On the **Features View** tab, select - **Server Certificates** in the IIS section. -3. Delete these certificates bound to GroupIDSite11 (the site deploying GroupID Data Service): - - - GroupIDSecurityService - - Imanami GroupID Certificate - -NOTE: Do not remove these certificates if another GroupID version is installed on the machine. - -See Also - -- [Back Up and Restore GroupID Data](/docs/directorymanager/11.0/about/upgrade/backuprestore.md) diff --git a/docs/directorymanager/11.0/about/installer/whatprepinstall.md b/docs/directorymanager/11.0/about/installer/whatprepinstall.md deleted file mode 100644 index e145a62402..0000000000 --- a/docs/directorymanager/11.0/about/installer/whatprepinstall.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "What does the Preparation Tool Install" -description: "What does the Preparation Tool Install" -sidebar_position: 20 ---- - -# What does the Preparation Tool Install - -When the -[Preparation Tool](/docs/directorymanager/11.0/about/installer/preparationtool.md) runs, -it installs the following software and Windows features: - -| Software | Comments | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Required by all modules of GroupID** | | -| Microsoft Internet Information Services (IIS) with the following role services: - Common HTTP Features - Default Document - Static Content - WebDAV Publishing - **Performance** - Static Content Compression - **Security** - Request Filtering - Windows Authentication - Application Development - NET Extensibility - ASP.NET - ISAPI Extensions - ISAPI Filters - **Management Tools** - IIS Management Console - IIS 6 Management Compatibility (with sub options _IIS 6 Metabase Compatibility_ & _IIS 6 Management Console_) | | -| Windows server features: - Windows Process Activation Service - Process Model - Configuration APIs | | -| Microsoft .NET Desktop Runtime 6.0.30 Click [here](https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-6.0.30-windows-x64-installer) to download. Microsoft ASP.NET Core Hosting Bundle 6.0.30 Click [here](https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-aspnetcore-6.0.30-windows-hosting-bundle-installer) to download. | GroupID runs on Microsoft .NET 6. The .NET Core Hosting bundle is an installer for the .NET Core Runtime and the [ASP.NET Core Module](https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-aspnetcore-6.0.30-windows-hosting-bundle-installer). The bundle allows ASP.NET Core apps to run with IIS. GroupID Installer, Configuration Tool and Upgarde Wizard need this specific version of .Net Framework. | -| PowerShell Core 7.3.6 | | -| Microsoft AD module for PowerShell | | -| Visual C++ | | -| Visual Studio 2015 Redistributable Tool | | -| Microsoft Edge WebView2 Runtime | | -| Microsoft Distributed Transaction Coordinator | The Microsoft Distributed Transaction Coordinator service (MSDTC) is installed during the installation of the Windows OS. Errors that occur during installation may stop the component from working properly. Any errors that occur during an upgrade process may also stop the component from working properly More information: [Microsoft Distributed Transaction Coordinator Service Installation and Setup](http://technet.microsoft.com/en-us/library/dd353812%28v=ws.10%29.aspx) | -| Elasticsearch 8.0.0 | If 95% of space is consumed on C drive, Elasticsearch will stop responding intermittently and will require a restart after more than 95% space is available. When Elasticsearch is locked, any object created or modified in GroupID will be committed in provider but not in the Elasticsearch repository. NOTE: While configuring an Elasticsearch cluster on all GroupID Instances, make sure that port TCP IP 9305 or a custom port (configured in the yml file for the Elasticsearch cluster) is unblocked and remains the same on each GroupID instance that is part of the master-slave cluster. NOTE: If you do not want to use this version of Elasticsearch, select the **I will install and manage Elasicsearch myself** option on the Elasticsearch Settings page of the Configuration Tool. | -| Exchange Online Management Module | Required for Microsoft Entra ID | -| WinRM IIS Extension | For GroupID to make a connection to Exchange, configure WinRM in one of the following ways. - **Option 1: intra-Domain** Both GroupID and the destination Exchange host must be in the same domain. Both systems must have WinRM configured (use the PowerShell command winrm /quickconfig for this). The default value for the necessary listener(s) is \* and that is all that is necessary to make a remote connection when the “–authentication” parameter is not specified. - **Option 2: Inter-Domain** Both systems must have WinRM configured (use the PowerShell command winrm /quickconfig for this). Design the hosts to trust each other by configuring “Trusted Hosts” either by GPO or locally. - By GPO — Computer > Windows > Admin Templates > Windows Components > Windows Remote Management > WinRM Client > Trusted Hosts - Use this PowerShell command to configure locally: Set-Item wsman:\localhost\Client\TrustedHosts –Value `` | -| **Required by Synchronize** | | -| Microsoft Access Database Engine 2016 Click [here](https://www.microsoft.com/en-us/download/details.aspx?id=54920) to download. | Required if Microsoft Office Access 2016 or Microsoft Office Excel 2016 is used in a Synchronize job, either as a source or a destination. Install manually since the Preparation tool will not detect and install it automatically. | -| Microsoft Access Runtime 2016 Click [here](https://www.microsoft.com/en-us/download/details.aspx?id=50040") to download. | Required if Microsoft Office Access 2016 is used in a Synchronize job, either as a source or a destination. Install manually since the Preparation tool will not detect and install it automatically. | - -See Also - -- [Requirements](/docs/directorymanager/11.0/requirements/requirements.md) -- [Preparation Tool](/docs/directorymanager/11.0/about/installer/preparationtool.md) -- [Configuration Tool](/docs/directorymanager/11.0/about/configure/configure.md) diff --git a/docs/directorymanager/11.0/about/upgrade/_category_.json b/docs/directorymanager/11.0/about/upgrade/_category_.json deleted file mode 100644 index e1bde30168..0000000000 --- a/docs/directorymanager/11.0/about/upgrade/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Upgrade", - "position": 30, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/about/upgrade/backuprestore.md b/docs/directorymanager/11.0/about/upgrade/backuprestore.md deleted file mode 100644 index a095264d57..0000000000 --- a/docs/directorymanager/11.0/about/upgrade/backuprestore.md +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: "Back Up and Restore GroupID Data" -description: "Back Up and Restore GroupID Data" -sidebar_position: 30 ---- - -# Back Up and Restore GroupID Data - -This topic provides instructions for backing up and restoring the data from previous versions of -GroupID. While upgrading to GroupID 11.0. - -- [GroupID database on SQL Server](#groupid-database-on-sql-server) -- [Elasticsearch data](#elasticsearch-data) -- [GroupID Self-Service Portals](#groupid-self-service-portals) -- [GroupID Password Center Portals](#groupid-password-center-portals) -- [GroupID Synchronize Jobs](#groupid-synchronize-jobs) -- [GroupID Reports](#groupid-reports) - -## GroupID database on SQL Server - -Take a backup of the GroupID database that you will use to upgrade to GroupID 11.0. - -Follow Microsoft standards to back up this SQL Server database. - -Whenever this database is restored, any changes you made using GroupID 11 would be lost. - -## Elasticsearch data - -Before you upgrade from GroupID 10 to 11.0, take a backup of the Elasticsearch data folder. The -default folder location is: - -C:/ProgramData/Imanami/GroupID 10.0/Replication/data/ - -``` -ldifde -f c:\groupinfobeforedirectorymanager.ldf -r "(&(objectClass=group)(objectCategory=group)(|(extensionData=*)(extensionAttribute15=*)(extensionAttribute14=*)(extensionAttribute13=*)(extensionAttribute12=*)" -p Subtree -l extensionData,extensionAttribute15,extensionAttribute14,extensionAttribute13,extensionAttribute12 -``` - -## GroupID Self-Service Portals - -### Back Up - -Follow these steps to back up the Self-Service portals created using GroupID 9.0, and 10.0: - -1. Go to the Inetpub folder of the product for which you want to take a backup. - - - **GroupID 9** — X:\Program Files\Imanami\GroupID 9.0\SelfService\Inetpub - - **GroupID 10** — X:\Program Files\Imanami\GroupID 10.0\SelfService\Inetpub - -2. Copy the folders for each virtual server or portal. -3. Create a new folder (ideally on a different drive) and paste the copied data into that folder. - -### Restore - -Follow these steps to restore GroupID Self-Service portals: - -1. Copy the folders containing the portals from the backup folder you created in the previous steps. -2. Go to the Inetpub\ folder of the product’s installation directory: - - - **GroupID 9** — X:\Program Files\Imanami\GroupID 9.0\SelfService\Inetpub - - **GroupID 10** — X:\Program Files\Imanami\GroupID 10.0\SelfService\Inetpub - -3. Paste the copied data in the location, replacing any existing files. - -## GroupID Password Center Portals - -### Back Up - -Follow these steps to back up Password Center User and Helpdesk portals created using GroupID 9.0 -and 10.0: - -1. Go to the PasswordCenter\ folder of the product’s installation directory: - - - **GroupID 9** — X:\Program Files\Imanami\GroupID 9.0\PasswordCenter\Inetpub - (for Password Center User portals) - - **GroupID 9** — X:\Program Files\Imanami\GroupID 9.0\PasswordCenter\Helpdesk\Inetpub - (for Password Center Helpdesk portals) - - **GroupID 10** — X:\Program Files\Imanami\GroupID 10.0\PasswordCenter\Inetpub - (for Password Center User portals) - - **GroupID 10** — X:\Program Files\Imanami\GroupID 10.0\PasswordCenter\Helpdesk\Inetpub - (for Password Center Helpdesk portals) - -2. Copy the folders of each portal. -3. Create a new folder (on a different drive) and paste the copied data into that folder. - -### Restore - -Follow these steps to restore Password Center portals to GroupID: - -1. Copy the folders containing the Password Center portals from the backup folder you created in the - previous steps. -2. Go to the PasswordCenter\ folder of the product’s installation directory: - - - **GroupID 9** — X:\Program Files\Imanami\GroupID 9.0\PasswordCenter\Inetpub - (for Password Center User portals) - - **GroupID 9** — X:\Program Files\Imanami\GroupID 9.0\PasswordCenter\Helpdesk\Inetpub - (for Password Center Helpdesk portals) - - **GroupID 10** — X:\Program Files\Imanami\GroupID 10.0\PasswordCenter\Inetpub - (for Password Center User portals) - - **GroupID 10** — X:\Program Files\Imanami\GroupID 10.0\PasswordCenter\Helpdesk\Inetpub - (for Password Center Helpdesk portals) - -3. Paste the copied data into the location, replacing any existing files. - -## GroupID Synchronize Jobs - -### Back Up - -Follow these steps to create a backup of jobs created with GroupID 9.0 and 10.0 Synchronize: - -1. On the Windows **Run** dialog box, type one of the following paths and run the command: - - - **GroupID 9** — %ALLUSERSPROFILE%\Imanami\GroupID 9.0\Synchronize - - **GroupID 10** — %ALLUSERSPROFILE%\Imanami\GroupID 10.0\Synchronize - -2. Copy the **Jobs** folder. -3. Create a new folder (ideally on a different drive) and paste the **Jobs** folder into it. - -NOTE: If some scheduled tasks are defined for Synchronize jobs, you do not need to create their -backup. On restoring, the scheduled tasks remain functional for Synchronize jobs. - -### Restore - -Follow these steps to restore jobs from GroupID 9.0 and 9.0: - -1. Copy the **Jobs** folder from the backup folder you created in the preceding steps. -2. On the Windows **Run** dialog box, type one of the following paths and run the command: - - - **GroupID 9** — %ALLUSERSPROFILE%\Imanami\GroupID 9.0\Synchronize - - **GroupID 10** — %ALLUSERSPROFILE%\Imanami\GroupID 10.0\Synchronize - -3. Paste the **Jobs** folder into the location, replacing any existing files. - -## GroupID Reports - -### Back Up - -Follow these steps to create a backup of GroupID 9.0 and 10.0 Reports: - -1. Browse to the location where the reports generated by these products are saved. The default - locations are: - - - **GroupID 9** — X:\ProgramData\Imanami\GroupID 9.0\Reports - - **GroupID 10** — X:\ProgramData\Imanami\GroupID 10.0\Reports - -2. Copy all data at the location. -3. Create a new folder (ideally on a different drive) and paste the copied data into that folder. - -NOTE: Note: You do not need to create a backup of scheduled tasks that include report criteria. On -restoring, the scheduled tasks remain functional for these reports. - -### Restore - -Follow these steps to restore GroupID 9.0 and 10.0 Reports: - -1. Copy the data from the backup folder you created in the previous steps. -2. On the Windows **Run** dialog box, type the path of the location where the reports are saved and - run the command: - - - **GroupID 9** — X:\ProgramData\Imanami\GroupID 9.0\Reports - - **GroupID 10** — X:\ProgramData\Imanami\GroupID 10.0\Reports - -3. Paste the copied data in the location, replacing any existing file. - -See Also - -- [Uninstall GroupID](/docs/directorymanager/11.0/about/installer/uninstall.md) -- [Installation Tool](/docs/directorymanager/11.0/about/installer/install.md) diff --git a/docs/directorymanager/11.0/about/upgrade/notes.md b/docs/directorymanager/11.0/about/upgrade/notes.md deleted file mode 100644 index edb3791192..0000000000 --- a/docs/directorymanager/11.0/about/upgrade/notes.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: "Notes on Upgrade" -description: "Notes on Upgrade" -sidebar_position: 20 ---- - -# Notes on Upgrade - -Consider the following when upgrading to GroupID 11 from GroupID 9 and 10. - -NOTE: In the following text, the term ‘source version’ refers to the GroupID version you are -upgrading from. - -**Notes** - -1. Portals from the source version will not be upgraded to GroupID 11. -2. To upgrade to GroupID 11 on a different box, the GroupID source version file system must be - available on the GroupID 11 server. To ensure this, follow step 1 in the - [Prerequisites for Upgrade](/docs/directorymanager/11.0/about/upgrade/overview.md#prerequisites-for-upgrade) - topic. - - The source version file system is required for the following: - - - When you create a new portal in GroupID 11, you can import the advanced settings and design - settings of a Self-Service portal from the source version. See step 12 in the - [Create a Portal in Native IIS](/docs/directorymanager/11.0/signin/applications/portal/create.md#create-a-portal-in-native-iis) - topic. - - In the source version, you specified a list of attributes to replicate for an identity store. - These attributes are saved to a file on the GroupID file system. - To upgrade on a different box, the file containing the selected attributes for each identity - store must be present on the GroupID 11 server. If the wizard does not find it, GroupID 11 - will display the default attributes for identity store replication (rather than your selected - attributes). - - File name: `_.xml` - Example: techinfo.local_4.xml, techinfo.onmicrosoft.com_6.xml - A separate file exists for each identity store. - - File Path on the GroupID 11 server: - `C:\Program Files\Imanami\GroupID \Replication\IdentityStoresReplicationAttributes\` - - - To upgrade schedules, Synchronize jobs, and generated reports on a different box, the relevant - files must be available on the GroupID 11 server. - - If you have uploaded a CSV file containing a list of disallowed passwords for an identity - store, that file should also be available on the GroupID 11 server for the Upgrade wizard to - process it. - - File name: The name of the uploaded file. - For example: DisallowedPasswords.txt - - File Path on the GroupID 11 server: - `C:\Program Files\Imanami\GroupID \GroupIDDataService\PasswordCenter\PasswordExceptionLists\_\` - - Example: C:\Program Files\Imanami\GroupID - 10.0\GroupIDDataService\PasswordCenter\PasswordExceptionLists\ADStore_4\ - -3. When importing design settings of a Self-Service portal on the same box or on a different box, - remember the following: - - - Design settings for the toolbars and navigation bars will not be imported due to architectural - changes in GroupID 11. - - The Group Search and User Search forms will not be upgraded as they are not available in - GroupiD 11. - - Portal branding, logo, and any customizations to a Self-Service portal will be lost. - -4. When importing advanced settings for a portal on the same box or on a different box, remember the - following: - If, in the source version, you have set the value of the Self-Service portal’s advanced setting - _Default Startup Page_ to ‘Group Search’ or ‘Organizational Hierarchy’, then it will not be - upgraded. The ‘Group Search’ page has been removed from GroupID 11 while the ‘Organizational - Hierarchy’ page is not supported as a startup page. -5. Any notifications pending in the notification queue in the source version will not be upgraded. -6. An identity store created for G Suite will not be upgraded. -7. In case of upgrade on a different box, the DC Priority settings for an Active Directory domain - are not upgraded to GroupID version 11.0.23315.04. -8. In the source version, the debug logs for upgrade were created in a temporary folder for the - logged-on user, that could be accessed using the %TEMP% environment variable. - File name: ~GroupID10_Upgrade - - In GroupID 11, these debug logs will be created at the following location on the GroupID 11 - server: - C:\ProgramData\Imanami\GroupID 11.0\Upgrade Tool\ - File name: directorymanager11_Upgrade.log - -9. In the GroupID source version, Replication service logs were captured under the _debug_ mode, - with no user interface to change this setting. On upgrade to GroupID 11, the file logging and - Windows logging mode is set to default, i.e., ‘Error’. After upgrade, it is recommended that you - go to Replication service settings and change file logging to the ‘Debug’ mode (if required). See - the - [Specify Log Settings for a Service](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#specify-log-settings-for-a-service) - topic. -10. In the GroupID source version, log settings for an identity store inherently applied to Date - service logs. On upgrade to GroupID 11, these log settings are moved to the Data service, with - the file logging mode set to default, i.e., ‘Error’. To change the mode in GroupID 11, go to - Data service settings and change it as required. See the - [Specify Log Settings for a Service](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#specify-log-settings-for-a-service) - topic. -11. The following applies in case of upgrade from GroupID 10 SR1. - When the approver in pending workflow requests is a variable, such as managedBy, - additionalOwner, etc., then during upgrade, the variable will be resolved to the GUID of the - object that it represents at that point in time. Hence, the variable is replaced with a static - value. -12. SAML configurations with the Self-Service portals, Password Center portals, Automate, or any - other GroupID client will be lost during upgrade, and will not be available in GroupID 11. -13. Reports will no longer be available on a shared location, as was in the source version. In - GroupID 11, users can download reports in different formats, including PDF, from the GroupID - portal. -14. When upgraded on a different box, file-based Synchronize jobs available on shared locations will - move to the data sources created for them on the GroupID 11 file system. -15. During upgrade, scripts for Smart Groups and Synchronize jobs are upgraded to GroupID 11 without - any change. If a script contains a location in a variable (for example, for exporting files), - that setting will not work in case of upgrade on a different box. Make sure you change the - location after upgrade. -16. In the GroupID source version, source and destination providers in Synchronize jobs were saved - as connection strings in a file. Similarly, when using an external data source for Smart Groups, - connection was established on the basis of a connection string. On upgrade, a data source will - be created for each distinct connection string. - The Upgrade wizard will process connection strings for Smart Groups first. Then while processing - Synchronize jobs, it will not create another data source if the same connection strings come up - again. -17. In case of upgrade on a different box, OBBC connections defined using system DSN will be lost. - As a result: - - - Smart Groups whose memberships are determined using system DSN (external data source) will be - affected. - - Synchronize jobs with the source or destination provider configured using system DSN will not - work. - -18. Insights in GroupID 10 has been renamed to Entitlement in GroupID 11. - In GroupID 10, one schedule named ‘Insights’ existed for Insights, which will be upgraded and - renamed to ‘GroupID Entitlement’. GroupID 11 will also have two new schedules for Entitlement; - ‘Entitlement Scope’ and ‘Entitlement Temporary Permissions’. These new schedules will be auto - created for identity stores that have Entitlement settings defined. -19. You cannot run the Configuration Tool and the Upgrade wizard more than once using the same - database (for upgrade to GroupID version 11.0.23315.04). - -See Also - -- [Upgrade to GroupID 11](/docs/directorymanager/11.0/about/upgrade/upgrade.md) diff --git a/docs/directorymanager/11.0/about/upgrade/overview.md b/docs/directorymanager/11.0/about/upgrade/overview.md deleted file mode 100644 index 3d813ad188..0000000000 --- a/docs/directorymanager/11.0/about/upgrade/overview.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: "Upgrade" -description: "Upgrade" -sidebar_position: 30 ---- - -# Upgrade - -GroupID 11 supports upgrade from the following: - -- GroupID 10.0 -- GroupID 9.0 - -## Prerequisites for Upgrade - -The following must be in place before you run the Upgrade wizard. - -NOTE: In the following text, the term ‘source version’ refers to the GroupID version you are -upgrading from. - -1. For upgrade on a different box, the GroupID source version file system must be present on the - GroupID 11 server. For that, do the following: - - 1. On the GroupID source version server, for example, GroupID 10 server, go to [GroupID - Installation Drive]:\Program Files\Imanami\ and copy the GroupID 10 folder. - 2. Go to the GroupID 11 server, create a path as follows, and paste the GroupID 10 folder - there: - C:\Program Files\Imanami\ - On pasting the GroupID 10 folder, it will be as: - C:\Program Files\Imanami\GroupID 10\ - -2. The following applies to upgrade on a different box. - If a gMSA is used as the service account for an identity store in the source version, you must - configure that gMSA on the GroupID 11 server before you upgrade. - To configure a gMSA, see the - [gMSA for Active Directory](/docs/directorymanager/11.0/requirements/moreinfo/gmsarequirements.md) - topic. -3. A disabled identity store in the source version will not be upgraded to GroupID 11. - To upgrade a disabled identity store, you must enable it in the source version before upgrade. - Then disable it in GroupID 11 immediately after upgrade. -4. To upgrade schedules and Synchronize jobs on a different box, you must run a utility on the - GroupID 11 server before running the Upgrade wizard. Contact Netwrix Customer Support for more - info. -5. If you forget the passphrase you used to encrypt GroupID data, upgrade is not possible. - -## Upgrade Logs - -Two log files are created on upgrade: - -- File name: UpgradeLog - Path: X:\[GroupID Installation folder]\Imanami\GroupID 11.0\GroupIDUpgradeTool\ - (X represents the GroupID installation drive.) -- File name: directorymanager11_Upgrade.log - Path: C:\ProgramData\Imanami\GroupID 11.0\Upgrade Tool\ - (This file contains debug logs.) - -See Also - -- [Upgrade to GroupID 11](/docs/directorymanager/11.0/about/upgrade/upgrade.md) -- [Notes on Upgrade](/docs/directorymanager/11.0/about/upgrade/notes.md) diff --git a/docs/directorymanager/11.0/about/upgrade/upgrade.md b/docs/directorymanager/11.0/about/upgrade/upgrade.md deleted file mode 100644 index 1a35c1b24d..0000000000 --- a/docs/directorymanager/11.0/about/upgrade/upgrade.md +++ /dev/null @@ -1,184 +0,0 @@ ---- -title: "Upgrade to GroupID 11" -description: "Upgrade to GroupID 11" -sidebar_position: 10 ---- - -# Upgrade to GroupID 11 - -The topic guides you to upgrade to GroupID 11 from GroupID 9 and 10. - -Follow the steps to upgrade. - -1. To launch the Upgrade wizard, click **Next** on the **GroupID Successfully Configured** page of - the Configuration Tool. - - OR - - Click the Windows Start menu > Imanami > GroupID Upgrade Tool 11.0. - - ![Welcome page](/images/directorymanager/11.0/install/upgrade/1-welcome.webp) - -2. Read the welcome message and click **Next**. - - ![2-select_source_version](/images/directorymanager/11.0/install/upgrade/2-select_source_version.webp) - -3. From the **Select the previous version to upgrade** list, select the GroupID version to upgrade - from. - - NOTE: The following steps discuss the upgrade process with GroupID 10 as the source version. The - process may vary for different source versions. - -4. Click **Next**. - - ![Select modules to upgrade](/images/directorymanager/11.0/install/upgrade/3-select_modules.webp) - - On the **Select Modules to upgrade** page, select the type of GroupID data for upgrade. You can - choose to upgrade all or selective data of the previous version. Options are: - - - **Everything** – upgrades all data, which covers all options discussed under Custom. - - **Custom** – choose what data you want to upgrade. On selecting it, the following options are - listed, from where you can choose the data to upgrade. - - ![3-select_modules-custom](/images/directorymanager/11.0/install/upgrade/3-select_modules-custom.webp) - -5. Click **Next**. -6. If you have an Microsoft Entra ID based identity store in GroupID 10, the following page appears. - - ![Microsoft Entra ID Store Upgrade page](/images/directorymanager/11.0/install/upgrade/entraidstore.webp) - - Provide the following information: - - - Registered Client Secret on EntraID: provide the client secret value generated against the - certificate uploaded to Microsoft Entra Admin Center while registering the GroupID - application. - - **PFX Certificate**: Click Browse to navigate to the folder where the certificate is saved. - This certificate must be the same uploaded for the registered GroupID app in Microsoft Entra - ID. - - **PFX Certificate Password**: Provide password of the PFX certificate. - -7. Click **Next**. -8. If in the GroupID source version, Office 365 messaging provider is configured in a Microsoft - Entra ID based identity store or in an AD identity store, the Upgrade wizard displays the - following page. - - ![ Upgrade wizard Microsoft Entra ID Messaging System page](/images/directorymanager/11.0/install/upgrade/entraidmessagingsystem.webp) - - Provide the following information: - - - **Client Secret**: provide the client secret value generated against the certificate uploaded - to Microsoft Entra Admin Center while registering the GroupID application. - - **PFX Certificate**: Click Browse to navigate to the folder where the certificate is saved. - This certificate must be the same uploaded for the registered GroupID app in Microsoft Entra - ID. - - **PFX Certificate Password**: Provide password of the PFX certificate. - -9. If any Synchronize jobs exist in GroupID 10 or the version you are upgrading from, then the - wizard checks the destination domain set for them. Let's assume you have 5 jobs that connect to - different child domains in a forest with different service accounts and different messaging - providers. - - - If an identity store already exists in GroupID 10 for the destination domains that the jobs - connect to, then jobs are moved to the respective identity stores in GroupID 11. - - When there is no identity store in GroupID 10 for the destination domain that the jobs connect - to, the Upgrade wizard reads the FQDN of the destination domains used in the jobs and tries to - create a forest structure. On identifying one, it proceeds to create an identity store for the - forest, requiring you to provide a service account. (The user name and password fields will be - auto populated but you can change them.) All jobs with destination provider for that forest - domain or any of its child domains will be moved to the new identity store. - - ![synchronize_upgrade](/images/directorymanager/11.0/install/upgrade/synchronize_upgrade.webp) - - NOTE: The service account you provide here should have at least _read_ permission in the - entire forest, so that all objects from the forest can be replicated to Elasticsearch. - - The wizard does not create a separate identity store for each child domain in the same - forest. In case it cannot determine a forest structure, it creates separate identity stores - for each domain. - -10. For Synchronize jobs that use Office 365 as messaging provider in GroupID 10, the wizard would - require you to provide the PFX certificate. All Synchronize jobs that use Office 365 as - messaging provider will be listed on the wizard page. Expand each job and provide the PFX - certificate along with its password. - - ![Upgrade wizard Synchronize Messaging System page](/images/directorymanager/11.0/install/upgrade/entraidsynmessagingsystem.webp) - - Provide the following information: - - - **Certificate**: Click Browse to navigate to the folder where the certificate is saved. This - certificate must be the same uploaded for the registered GroupID app in Microsoft Entra ID. - - **Password**: Provide password of the PFX certificate. - - **Client Secret**: provide the client secret value generated against the certificate uploaded - to Microsoft Entra Admin Center while registering the GroupID application. - -11. Click **Next**. -12. In GroupID 10 and earlier versions, reports were generated for the domain that the GroupID - server was joined to. During upgrade, the wizard checks if an identity store for that domain - exists or not. - - - If an identity store for that domain exists or if it being created for a Synchronize job in - this upgrade process, GroupID will bind the reports to it. - - If an identity store for that domain does not exist, then you have to create an identity store - for it. It must essentially be an Active Directory identity store. The wizard will bind the - reports generated in GroupID 10 to the identity store, so you will be able to view them in - GroupID 11. - ![reports_upgrade](/images/directorymanager/11.0/install/upgrade/reports_upgrade.webp) - - NOTE: If no report has been generated in GroupID 10, the page related to reports upgrade will - not be displayed. - -13. During upgrade, Synchronize schedules are also moved to identity stores. - The Upgrade wizard will check the jobs added to a schedule. If the destination in a job is a - directory provider, it will automatically move the schedule to the respective identity store. - - Remember, during upgrade, identity stores are created for destination directory providers of - Synchronize jobs (i.e., for providers that do not have an identity store in the source version). - - Consider the following: - - - If a schedule has Synchronize jobs where one job uses an Active Directory domain (DomainA) as - destination and another job uses a file-based provider as destination, then the schedule will - auto move to the identity store created for DomainA. - - For schedules with Synchronize jobs that use file-based providers as destination, the Upgrade - wizard will display the following page that will list all such schedules. Select an identity - store for each schedule, so that the schedule moves to that identity store. - - ![store_selection_for_schedules](/images/directorymanager/11.0/install/upgrade/store_selection_for_schedules.webp) - - - The rules stated above also apply to schedules with job collections added to them. - -14. Click **Next**. - - ![Summary page](/images/directorymanager/11.0/install/upgrade/5-summary.webp) - - This page displays a complete summary of the data to be copied/upgraded for your selected - options. These options were selected on the **Select modules to upgrade** page.. - - NOTE: If there are any disabled identity store(s) in the source GroupID version, GroupID will - not upgrade those identity store(s). However, data of those identity store(s) will remain intact - in the source GroupID version. - -15. Review the summary and click **Next**. - - ![Upgrade Progress page](/images/directorymanager/11.0/install/upgrade/6-upgrade_process_complete.webp) - - GroupID is upgraded while the Upgrade Process displays the upgrade progress. On successful - upgrade, the **Upgradce Completed** message above the progress bar is displayed. - -16. Click **Next**. - ![Upgrade Completed page](/images/directorymanager/11.0/install/upgrade/7-upgrade_complete.webp) - - The **Upgrade Completed** page displays the status of features selected for upgrade. - -17. You can click: - - - **View Details**: to view log file generated during the Upgrade process. - - **Launch GroupID**: to start using GroupID 11. - - **Close**: to close the Upgrade wizard. - -See Also - -- [Installation Tool](/docs/directorymanager/11.0/about/installer/install.md) -- [Configuration Tool](/docs/directorymanager/11.0/about/configure/configure.md) -- [Uninstall GroupID](/docs/directorymanager/11.0/about/installer/uninstall.md) -- [Notes on Upgrade](/docs/directorymanager/11.0/about/upgrade/notes.md) diff --git a/docs/directorymanager/11.0/apis/_category_.json b/docs/directorymanager/11.0/apis/_category_.json deleted file mode 100644 index c68c0bd0e7..0000000000 --- a/docs/directorymanager/11.0/apis/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "APIs", - "position": 90, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "welcome" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/apis/commonerrors.md b/docs/directorymanager/11.0/apis/commonerrors.md deleted file mode 100644 index 4d336aa073..0000000000 --- a/docs/directorymanager/11.0/apis/commonerrors.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "Common Errors" -description: "Common Errors" -sidebar_position: 90 ---- - -# Common Errors - -This section lists the errors common to all APIs. For errors specific to an API, see the topic for -that API. - -| Sr. # | Error Code | Error | Description | -| ----- | ---------- | --------------------- | ------------------------------------------- | -| 1. | 400 | Bad request | Wrong parameters | -| 2. | 401 | Unauthorized | Wrong or expired token | -| 3. | 404 | Not found | The URL is incorrect or object is not found | -| 4. | 405 | Method not allowed | Wrong HTTP verb is used in the request | -| 5. | 500 | Internal server error | An exception or error occurred in API | -| 6. | 501 | Not implemented | Required function is not implemented by API | -| 7. | 503 | Service unavailable | API service is not available | - -See Also - -- GroupID APIs -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/contact/_category_.json b/docs/directorymanager/11.0/apis/contact/_category_.json deleted file mode 100644 index 3eb3a10468..0000000000 --- a/docs/directorymanager/11.0/apis/contact/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Contact APIs", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "contactapis" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/apis/contact/contactapis.md b/docs/directorymanager/11.0/apis/contact/contactapis.md deleted file mode 100644 index d586560d35..0000000000 --- a/docs/directorymanager/11.0/apis/contact/contactapis.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Contact APIs" -description: "Contact APIs" -sidebar_position: 10 ---- - -# Contact APIs - -GroupID provides the following APIs to perform contact-specific functions: - -- [Create a Contact](/docs/directorymanager/11.0/apis/contact/createcontact.md) -- [Delete a Contact](/docs/directorymanager/11.0/apis/contact/deletecontact.md) -- [Delete Contacts](/docs/directorymanager/11.0/apis/contact/deletecontacts.md) -- [Get a Contact](/docs/directorymanager/11.0/apis/contact/getcontact.md) -- [Get Contacts](/docs/directorymanager/11.0/apis/contact/getcontacts.md) -- [Update a Contact](/docs/directorymanager/11.0/apis/contact/updatecontact.md) - -NOTE: The contact object type is not supported in a Microsoft Entra ID based identity store. - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Get Token](/docs/directorymanager/11.0/apis/gettoken.md) -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) -- [Logs APIs](/docs/directorymanager/11.0/apis/logs/logsapis.md) -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/contact/createcontact.md b/docs/directorymanager/11.0/apis/contact/createcontact.md deleted file mode 100644 index 5f2189a78b..0000000000 --- a/docs/directorymanager/11.0/apis/contact/createcontact.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: "Create a Contact" -description: "Create a Contact" -sidebar_position: 10 ---- - -# Create a Contact - -Using this API you can create a contact in the specified identity store. - -NOTE: The contact object type is not supported in a Microsoft Entra ID based identity store. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Contacts - -## HTTP Method - -POST - -#### Sample Request Syntax - -``` -{ -    "container": "OU=API,DC=groupid,DC=lab", -    "attributes": { -        "attributesCollection": { -            "CN": [ -                { -                    "value": "Demo Contact 4", -                    "action": 0 -                } -            ], -            "objectClass": [ -                { -                    "value": "contact", -                    "action": 0 -                } -            ] -        } -    } -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 0, -    "status": 0, -    "message": null, -    "data": "bf1c9efb-5e60-4d42-9899-5d33fe70d818", -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": "dc.directorymanager.lab", -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Contact APIs](/docs/directorymanager/11.0/apis/contact/contactapis.md) diff --git a/docs/directorymanager/11.0/apis/contact/deletecontact.md b/docs/directorymanager/11.0/apis/contact/deletecontact.md deleted file mode 100644 index 478a1ebe05..0000000000 --- a/docs/directorymanager/11.0/apis/contact/deletecontact.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Delete a Contact" -description: "Delete a Contact" -sidebar_position: 20 ---- - -# Delete a Contact - -Using this API you can delete a specified contact from the specified identity store. - -NOTE: The contact object type is not supported in a Microsoft Entra ID based identity store. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Contacts/{userIdentity} - -## HTTP Method - -DELETE - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 0, -    "status": 0, -    "message": null, -    "data": "", -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Contact APIs](/docs/directorymanager/11.0/apis/contact/contactapis.md) diff --git a/docs/directorymanager/11.0/apis/contact/deletecontacts.md b/docs/directorymanager/11.0/apis/contact/deletecontacts.md deleted file mode 100644 index bbbec74eaa..0000000000 --- a/docs/directorymanager/11.0/apis/contact/deletecontacts.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: "Delete Contacts" -description: "Delete Contacts" -sidebar_position: 30 ---- - -# Delete Contacts - -This API is for deleting multiple contacts from a specified identity store. - -NOTE: The contact object type is not supported in a Microsoft Entra ID based identity store. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Contacts - -## HTTP Method - -DELETE - -#### Sample Request Syntax - -``` -[ -    "aaa92db4-b912-49a8-9f85-56da5f33daaf", -    "bee3ae99-d1d6-4480-a271-65d567784cca" -] -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 0, -    "status": 0, -    "message": null, -    "data": "", -    "identityStoreObject": null, -    "details": [ -        { -            "name": null, -            "type": 0, -            "status": 0, -            "message": null, -            "data": "", -            "identityStoreObject": null, -            "details": [], -            "currentDirectoryServer": null, -            "errorCode": null, -            "exceptionMessagesAttributeWise": null, -            "isResyncAble": true -        }, -        { -            "name": null, -            "type": 0, -            "status": 0, -            "message": null, -            "data": "", -            "identityStoreObject": null, -            "details": [], -            "currentDirectoryServer": null, -            "errorCode": null, -            "exceptionMessagesAttributeWise": null, -            "isResyncAble": true -        } -    ], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Contact APIs](/docs/directorymanager/11.0/apis/contact/contactapis.md) diff --git a/docs/directorymanager/11.0/apis/contact/getcontact.md b/docs/directorymanager/11.0/apis/contact/getcontact.md deleted file mode 100644 index b0d3940f7a..0000000000 --- a/docs/directorymanager/11.0/apis/contact/getcontact.md +++ /dev/null @@ -1,144 +0,0 @@ ---- -title: "Get a Contact" -description: "Get a Contact" -sidebar_position: 40 ---- - -# Get a Contact - -Use this API to retrieve information about a contact in a specified identity store. - -NOTE: The contact object type is not supported in a Microsoft Entra ID based identity store. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Contacts/{userIdentity} - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -[ -    "displayName" -  ] -``` - -#### Sample Response Syntax - -``` -{ -    "contactClassName": null, -    "displayName": "Contact1,Demo", -    "emailAddress": null, -    "firstName": null, -    "initials": null, -    "lastName": null, -    "alias": null, -    "title": null, -    "department": null, -    "companyName": null, -    "dc": null, -    "city": null, -    "country": null, -    "fax": null, -    "mobilePhone": null, -    "office": null, -    "phoneNumber": null, -    "postalCode": null, -    "state": null, -    "streetAddress": null, -    "objectIdFromIdentityStore": "aaa92db4-b912-49a8-9f85-56da5f33daaf", -    "identityStoreId": 2, -    "identityStore": null, -    "objectType": "contact", -    "objectName": null, -    "objectDisplayName": "Contact1,Demo", -    "stopNotification": false, -    "attributesBusinessObject": { -        "attributesCollection": { -            "displayName": [ -                { -                    "identityStoreId": 0, -                    "value": "Contact1,Demo", -                    "dn": null, -                    "action": 0, -                    "attributeCollection": {}, -                    "nestedAttributes": { -                        "attributesCollection": {}, -                        "filePermissionCollection": {}, -                        "type": null -                    } -                } -            ], -            "objectCategory": [], -            "CN": [ -                { -                    "identityStoreId": 0, -                    "value": "Demo Contact1", -                    "dn": null, -                    "action": 0, -                    "attributeCollection": {}, -                    "nestedAttributes": { -                        "attributesCollection": {}, -                        "filePermissionCollection": {}, -                        "type": null -                    } -                } -            ], -            "container": [ -                { -                    "identityStoreId": 0, -                    "value": "OU=API,DC=groupid,DC=lab", -                    "dn": null, -                    "action": 0, -                    "attributeCollection": {}, -                    "nestedAttributes": { -                        "attributesCollection": {}, -                        "filePermissionCollection": {}, -                        "type": null -                    } -                } -            ], -            "objectClass": [ -                { -                    "identityStoreId": 0, -                    "value": "contact", -                    "dn": null, -                    "action": 0, -                    "attributeCollection": {}, -                    "nestedAttributes": { -                        "attributesCollection": {}, -                        "filePermissionCollection": {}, -                        "type": null -                    } -                } -            ], -            "name": [ -                { -                    "identityStoreId": 0, -                    "value": "Demo Contact1", -                    "dn": null, -                    "action": 0, -                    "attributeCollection": {}, -                    "nestedAttributes": { -                        "attributesCollection": {}, -                        "filePermissionCollection": {}, -                        "type": null -                    } -                } -            ] -        }, -        "filePermissionCollection": {}, -        "type": null -    }, -    "elasticHitScore": 0.0 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Contact APIs](/docs/directorymanager/11.0/apis/contact/contactapis.md) diff --git a/docs/directorymanager/11.0/apis/contact/getcontacts.md b/docs/directorymanager/11.0/apis/contact/getcontacts.md deleted file mode 100644 index c8e1b4bb9c..0000000000 --- a/docs/directorymanager/11.0/apis/contact/getcontacts.md +++ /dev/null @@ -1,257 +0,0 @@ ---- -title: "Get Contacts" -description: "Get Contacts" -sidebar_position: 50 ---- - -# Get Contacts - -Use this API to retrieve information of multiple contacts from a specified identity store. - -NOTE: The contact object type is not supported in a Microsoft Entra ID based identity store. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Contacts - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -  "userIdentities": [ -    "aaa92db4-b912-49a8-9f85-56da5f33daaf", -    "bee3ae99-d1d6-4480-a271-65d567784cca" -  ], -  "attributesToLoad": [ -    "displayName" -  ] -} -``` - -#### Sample Response Syntax - -``` -{ -        "contactClassName": null, -        "displayName": "Contact1,Demo", -        "emailAddress": null, -        "firstName": null, -        "initials": null, -        "lastName": null, -        "alias": null, -        "title": null, -        "department": null, -        "companyName": null, -        "dc": null, -        "city": null, -        "country": null, -        "fax": null, -        "mobilePhone": null, -        "office": null, -        "phoneNumber": null, -        "postalCode": null, -        "state": null, -        "streetAddress": null, -        "objectIdFromIdentityStore": "aaa92db4-b912-49a8-9f85-56da5f33daaf", -        "identityStoreId": 2, -        "identityStore": null, -        "objectType": "contact", -        "objectName": null, -        "objectDisplayName": "Contact1,Demo", -        "stopNotification": false, -        "attributesBusinessObject": { -            "attributesCollection": { -                "displayName": [ -                    { -                        "identityStoreId": 0, -                        "value": "Contact1,Demo", -                        "dn": null, -                        "action": 0, -                        "attributeCollection": {}, -                        "nestedAttributes": { -                            "attributesCollection": {}, -                            "filePermissionCollection": {}, -                            "type": null -                        } -                    } -                ], -                "objectCategory": [], -                "CN": [ -                    { -                        "identityStoreId": 0, -                        "value": "Demo Contact1", -                        "dn": null, -                        "action": 0, -                        "attributeCollection": {}, -                        "nestedAttributes": { -                            "attributesCollection": {}, -                            "filePermissionCollection": {}, -                            "type": null -                        } -                    } -                ], -                "container": [ -                    { -                        "identityStoreId": 0, -                        "value": "OU=API,DC=groupid,DC=lab", -                        "dn": null, -                        "action": 0, -                        "attributeCollection": {}, -                        "nestedAttributes": { -                            "attributesCollection": {}, -                            "filePermissionCollection": {}, -                            "type": null -                        } -                    } -                ], -                "objectClass": [ -                    { -                        "identityStoreId": 0, -                        "value": "contact", -                        "dn": null, -                        "action": 0, -                        "attributeCollection": {}, -                        "nestedAttributes": { -                            "attributesCollection": {}, -                            "filePermissionCollection": {}, -                            "type": null -                        } -                    } -                ], -                "name": [ -                    { -                        "identityStoreId": 0, -                        "value": "Demo Contact1", -                        "dn": null, -                        "action": 0, -                        "attributeCollection": {}, -                        "nestedAttributes": { -                            "attributesCollection": {}, -                            "filePermissionCollection": {}, -                            "type": null -                        } -                    } -                ] -            }, -            "filePermissionCollection": {}, -            "type": null -        }, -        "elasticHitScore": 0.0 -    }, -    { -        "contactClassName": null, -        "displayName": "Demo2,Contact", -        "emailAddress": null, -        "firstName": null, -        "initials": null, -        "lastName": null, -        "alias": null, -        "title": null, -        "department": null, -        "companyName": null, -        "dc": null, -        "city": null, -        "country": null, -        "fax": null, -        "mobilePhone": null, -        "office": null, -        "phoneNumber": null, -        "postalCode": null, -        "state": null, -        "streetAddress": null, -        "objectIdFromIdentityStore": "bee3ae99-d1d6-4480-a271-65d567784cca", -        "identityStoreId": 2, -        "identityStore": null, -        "objectType": "contact", -        "objectName": null, -        "objectDisplayName": "Demo2,Contact", -        "stopNotification": false, -        "attributesBusinessObject": { -            "attributesCollection": { -                "displayName": [ -                    { -                        "identityStoreId": 0, -                        "value": "Demo2,Contact", -                        "dn": null, -                        "action": 0, -                        "attributeCollection": {}, -                        "nestedAttributes": { -                            "attributesCollection": {}, -                            "filePermissionCollection": {}, -                            "type": null -                        } -                    } -                ], -                "objectCategory": [], -                "CN": [ -                    { -                        "identityStoreId": 0, -                        "value": "Contact Demo2", -                        "dn": null, -                        "action": 0, -                        "attributeCollection": {}, -                        "nestedAttributes": { -                            "attributesCollection": {}, -                            "filePermissionCollection": {}, -                            "type": null -                        } -                    } -                ], -                "container": [ -                    { -                        "identityStoreId": 0, -                        "value": "OU=API,DC=groupid,DC=lab", -                        "dn": null, -                        "action": 0, -                        "attributeCollection": {}, -                        "nestedAttributes": { -                            "attributesCollection": {}, -                            "filePermissionCollection": {}, -                            "type": null -                        } -                    } -                ], -                "objectClass": [ -                    { -                        "identityStoreId": 0, -                        "value": "contact", -                        "dn": null, -                        "action": 0, -                        "attributeCollection": {}, -                        "nestedAttributes": { -                            "attributesCollection": {}, -                            "filePermissionCollection": {}, -                            "type": null -                        } -                    } -                ], -                "name": [ -                    { -                        "identityStoreId": 0, -                        "value": "Contact Demo2", -                        "dn": null, -                        "action": 0, -                        "attributeCollection": {}, -                        "nestedAttributes": { -                            "attributesCollection": {}, -                            "filePermissionCollection": {}, -                            "type": null -                        } -                    } -                ] -            }, -            "filePermissionCollection": {}, -            "type": null -        }, -        "elasticHitScore": 0.0 -    } -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Contact APIs](/docs/directorymanager/11.0/apis/contact/contactapis.md) diff --git a/docs/directorymanager/11.0/apis/contact/updatecontact.md b/docs/directorymanager/11.0/apis/contact/updatecontact.md deleted file mode 100644 index 4a23486445..0000000000 --- a/docs/directorymanager/11.0/apis/contact/updatecontact.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: "Update a Contact" -description: "Update a Contact" -sidebar_position: 60 ---- - -# Update a Contact - -Use this API if you want to update a contact's attribute(s) and their value(s) in a specified -identity store. - -NOTE: The contact object type is not supported in a Microsoft Entra ID based identity store. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Contacts - -## HTTP Method - -PATCH - -#### Sample Request Syntax - -``` -{ -    "objectIdentity": "aaa92db4-b912-49a8-9f85-56da5f33daaf", -    "attributesToUpdate": { -        "AttributesCollection": { -            "department": [ -                { -                    "Value": "Operation", -                    "Action": 0 -                } -            ], -            "company": [ -                { -                    "Value": "Imanami - Now part of Netwrix", -                    "Action": 0 -                } -            ] -        } -    } -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 0, -    "status": 0, -    "message": null, -    "data": "", -    "identityStoreObject": null, -    "details": [ -        { -            "name": "department", -            "type": 8, -            "status": 0, -            "message": null, -            "data": "", -            "identityStoreObject": null, -            "details": [], -            "currentDirectoryServer": null, -            "errorCode": null, -            "exceptionMessagesAttributeWise": null, -            "isResyncAble": true -        }, -        { -            "name": "company", -            "type": 8, -            "status": 0, -            "message": null, -            "data": "", -            "identityStoreObject": null, -            "details": [], -            "currentDirectoryServer": null, -            "errorCode": null, -            "exceptionMessagesAttributeWise": null, -            "isResyncAble": true -        } -    ], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Contact APIs](/docs/directorymanager/11.0/apis/contact/contactapis.md) diff --git a/docs/directorymanager/11.0/apis/datasource/_category_.json b/docs/directorymanager/11.0/apis/datasource/_category_.json deleted file mode 100644 index fb1de005bf..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Data Source APIs", - "position": 20, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "datasourceapis" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/apis/datasource/createds/_category_.json b/docs/directorymanager/11.0/apis/datasource/createds/_category_.json deleted file mode 100644 index 4c9bdf25da..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/createds/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Create a Data Source", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "createds" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/apis/datasource/createds/createds.md b/docs/directorymanager/11.0/apis/datasource/createds/createds.md deleted file mode 100644 index f88a62ec4a..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/createds/createds.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Create a Data Source" -description: "Create a Data Source" -sidebar_position: 10 ---- - -# Create a Data Source - -Using this API, you can create data sources for the supported providers. The data sources are -primarily used in Synchronize jobs, but you can also use them in queries to search for directory -objects and in queries for group membership update. - -- [Create a Data Source for a Text/CSV File](/docs/directorymanager/11.0/apis/datasource/createds/dstext.md) -- [Create a Data Source for MS Access](/docs/directorymanager/11.0/apis/datasource/createds/dsaccess.md) -- [Create a Data Source for MS Excel](/docs/directorymanager/11.0/apis/datasource/createds/dsexcel.md) -- [Create a Data Source for ODBC](/docs/directorymanager/11.0/apis/datasource/createds/dsodbc.md) -- [Create a Data Source for Oracle](/docs/directorymanager/11.0/apis/datasource/createds/dsoracle.md) -- [Create a Data Source for SQL Server](/docs/directorymanager/11.0/apis/datasource/createds/dssql.md) - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/createds/dsaccess.md b/docs/directorymanager/11.0/apis/datasource/createds/dsaccess.md deleted file mode 100644 index a0036f1f12..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/createds/dsaccess.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: "Create a Data Source for MS Access" -description: "Create a Data Source for MS Access" -sidebar_position: 20 ---- - -# Create a Data Source for MS Access - -Use this API to create a new data source. - -See the -[Create a Data Source for MS Access](/docs/directorymanager/11.0/signin/datasource/create.md#create-a-data-source-for-ms-access) -section of the -[Create a Data Source](/docs/directorymanager/11.0/signin/datasource/create.md) topic -to create an MS Access data source using the GroupID interface. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/Create - -## HTTP Method - -POST - -#### Sample Request Syntax - -The following request syntax provides you information for creating a data source for an Access -database. GroupID enables you to connect to an Access file that is placed on a local server or on -OneDrive. - -``` -{ -    "name": "Access_API", -    "providerTypeName": "Microsoft Access", -    "type": 2, -    "creationDate": "2024-05-07T04:08:56.95", -    "lastUpdate": null, -    "configurationValues": { -        "FileServer": "LocalServer", -        "FilePath": "C:\\Users\\administrator.directorymanager\\Documents\\directorymanagerAccess.accdb", -        "FilePassword": "", -        "ConnectionString": "", -        "UserName": "", -        "Password": "" -    } -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": 6, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/createds/dsexcel.md b/docs/directorymanager/11.0/apis/datasource/createds/dsexcel.md deleted file mode 100644 index bffb772698..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/createds/dsexcel.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: "Create a Data Source for MS Excel" -description: "Create a Data Source for MS Excel" -sidebar_position: 30 ---- - -# Create a Data Source for MS Excel - -Use this API to create a new data source. - -See the -[Create a Data Source for MS Excel](/docs/directorymanager/11.0/signin/datasource/create.md#create-a-data-source-for-ms-excel) -section of the -[Create a Data Source](/docs/directorymanager/11.0/signin/datasource/create.md) topic -for additional information on creating an Excel data source using GroupID interface. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/Create - -## HTTP Method - -POST - -#### Sample Request Syntax - -The syntax given below provides you information for creating an Excel data source. - -``` -{ -    "name": "Excel_API", -    "providerTypeName": "Microsoft Excel", -    "type": 1, -    "creationDate": "2024-05-07T04:08:56.95", -    "lastUpdate": null, -    "configurationValues": { -        "FileServer": "LocalServer", -        "FilePath": "C:\\Users\\administrator.directorymanager\\Documents\\User5.xls", -        "ConnectionString": "", -        "UserName": "", -        "Password": "" -    } -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": 4, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/createds/dsodbc.md b/docs/directorymanager/11.0/apis/datasource/createds/dsodbc.md deleted file mode 100644 index 9a3b6929a0..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/createds/dsodbc.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "Create a Data Source for ODBC" -description: "Create a Data Source for ODBC" -sidebar_position: 40 ---- - -# Create a Data Source for ODBC - -Use this APi to create a new data source. - -See the -[Create a Data Source for ODBC](/docs/directorymanager/11.0/signin/datasource/create.md#create-a-data-source-for-odbc) -section of the -[Create a Data Source](/docs/directorymanager/11.0/signin/datasource/create.md) topic -to create an ODBC data source using the GroupID interface. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/Create - -## HTTP Method - -POST - -#### Sample Response Syntax - -The following syntax is for creating an ODBC data source which you can use to connect to MS Excel, -an ODBC-compatible provider. - -``` -{ -    "name": "Excel Odbc_API", -    "providerTypeName": null, -    "type": 6, -    "creationDate": "2024-05-23T06:21:01.19", -    "lastUpdate": null, -    "configurationValues": { -        "Server": "Excel", -        "DsnType": "SystemDsn", -        "UserName": "", -        "Password": "" -    }, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -#### Sample Request Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": 6, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/createds/dsoracle.md b/docs/directorymanager/11.0/apis/datasource/createds/dsoracle.md deleted file mode 100644 index 9e5d4a8136..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/createds/dsoracle.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: "Create a Data Source for Oracle" -description: "Create a Data Source for Oracle" -sidebar_position: 50 ---- - -# Create a Data Source for Oracle - -Use this API to create a new data source. - -See the -[Create a Data Source for Oracle](/docs/directorymanager/11.0/signin/datasource/create.md#create-a-data-source-for-oracle) -section of the -[Create a Data Source](/docs/directorymanager/11.0/signin/datasource/create.md) topic -to create an MS Access data source using the GroupID interface. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/Create - -## HTTP Method - -POST - -#### Sample Request Syntax - -The following syntax is for creating an Oracle data source. You can create a data source for an -Oracle server or a specific database on a server. This data source can be used in queries and as -source and destination provider in Synchronize jobs. This provider supports dynamic schema -detection. - -NOTE: Oracle client must be installed to use this provider. Make sure you reboot your computer after -installing the Oracle client. - -``` -{ -    "name": "Oracle1", -    "providerTypeName": null, -    "type": 5, -    "creationDate": "2024-05-29T06:27:55.61", -    "lastUpdate": null, -    "configurationValues": { -        "ConnectionString": "orca", -        "UserName": "HR", -        "Password": "webdir123RR", -        "Protocol": "", -        "HostName": "", -        "PortNumber": "", -        "Database": "" -    }, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": 2, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/createds/dssql.md b/docs/directorymanager/11.0/apis/datasource/createds/dssql.md deleted file mode 100644 index 6c23c0e299..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/createds/dssql.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Create a Data Source for SQL Server" -description: "Create a Data Source for SQL Server" -sidebar_position: 60 ---- - -# Create a Data Source for SQL Server - -Use this API to create a new data source. - -See the -[Create a Data Source for SQL Server](/docs/directorymanager/11.0/signin/datasource/create.md#create-a-data-source-for-sql-server) -section of the -[Create a Data Source](/docs/directorymanager/11.0/signin/datasource/create.md) topic -for creating an SQL data source using the GroupID interface. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/Create - -## HTTP Method - -POST - -#### Sample Request Syntax - -The following syntax is for creating an SQL server data source. This data source can be used in -queries and as source and destination in Synchronize jobs. This provider supports dynamic schema -detection. - -``` -{ -    "name": "SQL_API", -    "providerTypeName": "SQL Server", -    "type": 3, -    "creationDate": "2024-05-07T04:08:56.95", -    "lastUpdate": null, -    "configurationValues": { -        "ConnectionString": "MSSQL", -        "UserName": "sa", -        "Password": "password", -        "WindowsAuthentication": "false", -        "Database": "ExternalDB" -    } -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": 9, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/createds/dstext.md b/docs/directorymanager/11.0/apis/datasource/createds/dstext.md deleted file mode 100644 index 8839e27731..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/createds/dstext.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: "Create a Data Source for a Text/CSV File" -description: "Create a Data Source for a Text/CSV File" -sidebar_position: 10 ---- - -# Create a Data Source for a Text/CSV File - -Use this API to create a new data source. - -See the -[Create a Data Source for a Text/CSV File](/docs/directorymanager/11.0/signin/datasource/create.md#create-a-data-source-for-a-textcsv-file) -section of the -[Create a Data Source](/docs/directorymanager/11.0/signin/datasource/create.md) topic -to create a Text/CSV data source using the GroupID interface. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/Create - -## HTTP Method - -POST - -#### Sample Request Syntax - -The following syntax is for creating a data source for a comma-separated values (.csv) file or a -text (.txt) file. You must also specify the delimiter used in the file to separate values. This data -source can be used in queries and only as a source in Synchronize jobs. GroupID enables you to -connect to a text file that is placed on a local server or on OneDrive. - -``` -{ -    "name": "Text/CSV_API", -    "providerTypeName": "Text/CSV", -    "type": 4, -    "creationDate": "2024-05-07T04:08:56.95", -    "lastUpdate": null, -    "configurationValues": { -        "FileServer": "LocalServer", -        "File": "C:\\Users\\administrator.directorymanager\\Desktop\\PWList.txt", -        "Delimiter": ",", -        "Server": "", -        "UserName": "", -        "Password": "" -    } -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": 11, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/datasourceapis.md b/docs/directorymanager/11.0/apis/datasource/datasourceapis.md deleted file mode 100644 index 8bb9cd4452..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/datasourceapis.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "Data Source APIs" -description: "Data Source APIs" -sidebar_position: 20 ---- - -# Data Source APIs - -GroupID provides the following APIs to perform functions related to data sources: - -- [Create a Data Source](/docs/directorymanager/11.0/apis/datasource/createds/createds.md) - - - [Create a Data Source for a Text/CSV File](/docs/directorymanager/11.0/apis/datasource/createds/dstext.md) - - [Create a Data Source for MS Access](/docs/directorymanager/11.0/apis/datasource/createds/dsaccess.md) - - [Create a Data Source for MS Excel](/docs/directorymanager/11.0/apis/datasource/createds/dsexcel.md) - - [Create a Data Source for ODBC](/docs/directorymanager/11.0/apis/datasource/createds/dsodbc.md) - - [Create a Data Source for Oracle](/docs/directorymanager/11.0/apis/datasource/createds/dsoracle.md) - - [Create a Data Source for SQL Server](/docs/directorymanager/11.0/apis/datasource/createds/dssql.md) - -- [Delete a Data Source](/docs/directorymanager/11.0/apis/datasource/deleteds.md) -- [Get a Data Source](/docs/directorymanager/11.0/apis/datasource/getds.md) -- [Get a Data Source by Type and Name](/docs/directorymanager/11.0/apis/datasource/getdstypename.md) -- [Get a Data Source by Type and with ID](/docs/directorymanager/11.0/apis/datasource/getdstypeid.md) -- [Get All Data Sources](/docs/directorymanager/11.0/apis/datasource/getallds.md) -- [Get All Data Sources by Type](/docs/directorymanager/11.0/apis/datasource/getalldstype.md) -- [Get Filenames by Type](/docs/directorymanager/11.0/apis/datasource/getfntype.md) -- [ Get Filtered Data Sources by isSource](/docs/directorymanager/11.0/apis/datasource/getfilterds.md) -- [Get Parameters of a Data Source](/docs/directorymanager/11.0/apis/datasource/getdsparameter.md) -- [Get File Server Metadata by Type ](/docs/directorymanager/11.0/apis/datasource/gefsmdtype.md) -- [ Get Metadata of Data Source by Server Type and ID ](/docs/directorymanager/11.0/apis/datasource/getmdtypest.md) -- [Get Metadata of Data Sources](/docs/directorymanager/11.0/apis/datasource/getmd.md) -- [Get Provider Options of a Data Source](/docs/directorymanager/11.0/apis/datasource/getdspo.md) -- [Parse a Connection String](/docs/directorymanager/11.0/apis/datasource/parsecs.md) -- [Update a Data Source](/docs/directorymanager/11.0/apis/datasource/updateds.md) -- [Validate Data Connectivity of a Data Source](/docs/directorymanager/11.0/apis/datasource/validatedc.md) - -See the[ Data Sources](/docs/directorymanager/11.0/signin/datasource/overview.md) -topic for additional information on data sources. - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Get Token](/docs/directorymanager/11.0/apis/gettoken.md) -- [Contact APIs](/docs/directorymanager/11.0/apis/contact/contactapis.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) -- [Logs APIs](/docs/directorymanager/11.0/apis/logs/logsapis.md) -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/datasource/deleteds.md b/docs/directorymanager/11.0/apis/datasource/deleteds.md deleted file mode 100644 index e93703bca9..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/deleteds.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: "Delete a Data Source" -description: "Delete a Data Source" -sidebar_position: 20 ---- - -# Delete a Data Source - -This API can be used for deleting a specified data source. - -NOTE: Deleting a data source corrupts all Synchronize jobs, membership queries, and search queries -using that data source. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/{dataSourceId} - -## HTTP Method - -DELETE - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": true, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/gefsmdtype.md b/docs/directorymanager/11.0/apis/datasource/gefsmdtype.md deleted file mode 100644 index e7ebe4186f..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/gefsmdtype.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: "Get File Server Metadata by Type" -description: "Get File Server Metadata by Type" -sidebar_position: 100 ---- - -# Get File Server Metadata by Type - -Using this API you can get metadata information of data source(s) by server type. For example, all -Excel data source(s) defined so far in GroupID that have their source files in cloud. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/GetFileServerMetaDataByType??fileServerType=OneDrive - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": { -        "name": null, -        "type": 0, -        "icon": null, -        "fileServerType": "OneDrive", -        "configurations": [ -            { -                "name": "FileServer", -                "displayName": "File Server", -                "dataType": "dropdown", -                "defaultValue": "OneDrive", -                "regularExpression": null, -                "validationMessage": null, -                "minLength": null, -                "maxLength": null, -                "isRequired": true, -                "isDisabled": false, -                "isNewOnly": false, -                "renderingOrder": 1, -                "values": [ -                    "LocalServer", -                    "OneDrive" -                ] -            }, -            { -                "name": "ServiceAccounUserName", -                "displayName": "Service Account (e.g. admin@xyz.onmicrosoft.com)", -                "dataType": "System.String", -                "defaultValue": "", -                "regularExpression": null, -                "validationMessage": null, -                "minLength": null, -                "maxLength": null, -                "isRequired": true, -                "isDisabled": false, -                "isNewOnly": false, -                "renderingOrder": 2, -                "values": null -            }, -            { -                "name": "ServiceAccountPassword", -                "displayName": "Service Account Password", -                "dataType": "System.Security.SecureString", -                "defaultValue": "", -                "regularExpression": null, -                "validationMessage": null, -                "minLength": null, -                "maxLength": null, -                "isRequired": true, -                "isDisabled": false, -                "isNewOnly": false, -                "renderingOrder": 3, -                "values": null -            }, -            { -                "name": "ApplicationId", -                "displayName": "Registered Application ID on Azure Active Directory", -                "dataType": "System.String", -                "defaultValue": "", -                "regularExpression": null, -                "validationMessage": null, -                "minLength": null, -                "maxLength": null, -                "isRequired": true, -                "isDisabled": false, -                "isNewOnly": false, -                "renderingOrder": 4, -                "values": null -            }, -            { -                "name": "TenantId", -                "displayName": "Registered Tenant ID on Azure Active Directory", -                "dataType": "System.String", -                "defaultValue": "", -                "regularExpression": null, -                "validationMessage": null, -                "minLength": null, -                "maxLength": null, -                "isRequired": true, -                "isDisabled": false, -                "isNewOnly": false, -                "renderingOrder": 5, -                "values": null -            }, -            { -                "name": "FileName", -                "displayName": "File_Name", -                "dataType": "dropdown-search", -                "defaultValue": "", -                "regularExpression": null, -                "validationMessage": null, -                "minLength": null, -                "maxLength": null, -                "isRequired": true, -                "isDisabled": false, -                "isNewOnly": false, -                "renderingOrder": 6, -                "values": null -            } -        ] -    }, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/getallds.md b/docs/directorymanager/11.0/apis/datasource/getallds.md deleted file mode 100644 index b8292ce2d4..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/getallds.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: "Get All Data Sources" -description: "Get All Data Sources" -sidebar_position: 60 ---- - -# Get All Data Sources - -Using this API you can get information of all data source defined so far in GroupID. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/GetAll - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` -[ -    { -        "id": 4, -        "name": "Excel_API", -        "providerTypeName": "Microsoft Excel", -        "type": 1, -        "creationDate": "2024-05-07T04:20:17.663", -        "lastUpdate": null, -        "configurationValues": { -            "FileServer": "LocalServer", -            "FilePath": "C:\\Users\\administrator.directorymanager\\Documents\\User5.xls", -            "ConnectionString": "", -            "UserName": "", -            "Password": "" -        } -    }, -    { -        "id": 6, -        "name": "Access_API", -        "providerTypeName": "Microsoft Access", -        "type": 2, -        "creationDate": "2024-05-07T04:25:48.297", -        "lastUpdate": null, -        "configurationValues": { -            "FileServer": "LocalServer", -            "FilePath": "C:\\Users\\administrator.directorymanager\\Documents\\directorymanagerAccess.accdb", -            "FilePassword": "", -            "ConnectionString": "", -            "UserName": "", -            "Password": "" -        } -    }, -    { -        "id": 9, -        "name": "SQL_API", -        "providerTypeName": "SQL Server", -        "type": 3, -        "creationDate": "2024-05-07T04:29:45.393", -        "lastUpdate": null, -        "configurationValues": { -            "ConnectionString": "MSSQL", -            "UserName": "sa", -            "Password": "webdir123R", -            "WindowsAuthentication": "false", -            "Database": "ExternalDB" -        } -    }, -    { -        "id": 11, -        "name": "Text/CSV_API", -        "providerTypeName": "Text/CSV", -        "type": 4, -        "creationDate": "2024-05-07T04:34:50.44", -        "lastUpdate": null, -        "configurationValues": { -            "FileServer": "LocalServer", -            "File": "C:\\Users\\administrator.directorymanager\\Desktop\\PWList.txt", -            "Delimiter": ",", -            "Server": "", -            "UserName": "", -            "Password": "" -        } -    } -] -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/getalldstype.md b/docs/directorymanager/11.0/apis/datasource/getalldstype.md deleted file mode 100644 index 810aa0d6a8..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/getalldstype.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: "Get All Data Sources by Type" -description: "Get All Data Sources by Type" -sidebar_position: 70 ---- - -# Get All Data Sources by Type - -Use this API to retrieve information of all data sources of a specific type such as all SQL server -data sources or all MS Excel type data sources. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/GetAllByType/{type} - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` -[ -    { -        "id": 9, -        "name": "SQL_API", -        "providerTypeName": "SQL Server", -        "type": 3, -        "creationDate": "2024-05-07T04:29:45.393", -        "lastUpdate": null, -        "configurationValues": { -            "ConnectionString": "MSSQL", -            "UserName": "sa", -            "Password": "webdir123R", -            "WindowsAuthentication": "false", -            "Database": "ExternalDB" -        } -    } -] -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/getds.md b/docs/directorymanager/11.0/apis/datasource/getds.md deleted file mode 100644 index 210dfdcb4d..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/getds.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: "Get a Data Source" -description: "Get a Data Source" -sidebar_position: 30 ---- - -# Get a Data Source - -Using this API you can retrieve information of a specific data source specified in the end point -URL. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/{dataSourceId} - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -true -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": { -        "id": 4, -        "name": "Excel_API", -        "providerTypeName": null, -        "type": 1, -        "creationDate": "2024-05-07T04:20:17.663", -        "lastUpdate": null, -        "configurationValues": { -            "FileServer": "LocalServer", -            "FilePath": "C:\\Users\\administrator.directorymanager\\Documents\\User5.xls", -            "ConnectionString": "", -            "UserName": "", -            "Password": "" -        } -    }, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/getdsparameter.md b/docs/directorymanager/11.0/apis/datasource/getdsparameter.md deleted file mode 100644 index 61e443f95d..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/getdsparameter.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: "Get Parameters of a Data Source" -description: "Get Parameters of a Data Source" -sidebar_position: 130 ---- - -# Get Parameters of a Data Source - -Using this API, you can retrieve parameters information of a data source specified in end point URL. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/GetDataSourceParameter/{DatasourceId} - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` -[ -    { -        "identityStoreId": 2, -        "connectionString": "Data Source='SQL\\MSSQL';Initial Catalog=External;Password='webdir123R';User ID='sa';Integrated Security=false;", -        "commandString": "SELECT * FROM []", -        "columnNames": [ -            "EmployeeID", -            "FirstName", -            "LastName", -            "DepartmentID" -        ], -        "tableNames": [ -            "[dbo].[Employee]", -            "[dbo].[Department]", -            "[dbo].[EmployeeDepartmentView]" -        ], -        "selectedTable": "[dbo].[Employee]", -        "name": "SQLView", -        "provideTypeName": "MSSQL" -    } -] -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/getdspo.md b/docs/directorymanager/11.0/apis/datasource/getdspo.md deleted file mode 100644 index bd40459d48..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/getdspo.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "Get Provider Options of a Data Source" -description: "Get Provider Options of a Data Source" -sidebar_position: 140 ---- - -# Get Provider Options of a Data Source - -Use this API to retrieve information about the provider of a specified data source. - -Get DataSource provider options - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/GetDataSourceProviderOptions/{id} - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` -{ -    "isDirectoryProvider": false, -    "isTableProvider": true, -    "capabilityMappings": { -        "Source": [ -            "Active Directory", -            "Text/CSV" -        ] -    }, -    "providerType": "Text/CSV", -    "creatableObjects": [ -        { -            "ldapName": "Object", -            "displayName": "Object" -        } -    ] -} -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/getdstypeid.md b/docs/directorymanager/11.0/apis/datasource/getdstypeid.md deleted file mode 100644 index 4f4228298f..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/getdstypeid.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: "Get a Data Source by Type and with ID" -description: "Get a Data Source by Type and with ID" -sidebar_position: 50 ---- - -# Get a Data Source by Type and with ID - -Using this API, you can retrieve information of a data source by its type and ID. For example, an -SQL data source with a specific id. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/GetByType/{dataSourceTypeId} - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -    "LoadConfigurations": false, -    "FilterCriteria": { -        "Operator": "and", -        "Attribute": null, -        "Value": null, -        "ValueType": 0, -        "ValueTypes": [], -        "DonotEscapeValue": false, -        "Child": [ -            { -                "Operator": "Contains", -                "Attribute": "Datasource Name", -                "Value": "Excel_API_Updated", -                "ValueType": 0, -                "ValueTypes": [ -                    0 -                ], -                "DonotEscapeValue": false, -                "Child": null -            } -        ] -    }, -    "SearchOption": { -        "PageSize": 10, -        "PageIndex": 1, -        "SortColumnName": "", -        "SortOrder": 1 -    } -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": { -        "count": 1, -        "data": [ -            { -                "id": 4, -                "name": "Excel_API_Updated", -                "providerTypeName": "Microsoft Excel", -                "type": 1, -                "creationDate": "2024-05-07T04:20:17.663", -                "lastUpdate": "2024-05-08T05:03:08.973", -                "configurationValues": { -                    "FileServer": "LocalServer", -                    "FilePath": "C:\\Users\\administrator.directorymanager\\Documents\\User5.xls", -                    "ConnectionString": "", -                    "UserName": "", -                    "Password": "" -                } -            } -        ], -        "status": 0, -        "message": null -    }, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/getdstypename.md b/docs/directorymanager/11.0/apis/datasource/getdstypename.md deleted file mode 100644 index 3de5a1fbeb..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/getdstypename.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: "Get a Data Source by Type and Name" -description: "Get a Data Source by Type and Name" -sidebar_position: 40 ---- - -# Get a Data Source by Type and Name - -Using this API you can retrieve information of specific type data source, let's say a Text/CSV based -data source, with a specific name. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/Get?type=4&name=Text/CSV_API - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": [ -        { -            "id": 11, -            "name": "Text/CSV_API", -            "providerTypeName": "Text/CSV", -            "type": 4, -            "creationDate": "2024-05-07T04:34:50.44", -            "lastUpdate": null, -            "configurationValues": {} -        } -    ], -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/getfilterds.md b/docs/directorymanager/11.0/apis/datasource/getfilterds.md deleted file mode 100644 index b28fe922ad..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/getfilterds.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: "Get Filtered Data Sources by isSource" -description: "Get Filtered Data Sources by isSource" -sidebar_position: 90 ---- - -# Get Filtered Data Sources by isSource - -This API is for getting information of data sources filtered on the basis of your role policy if -value of isSource is true in the end point URL. - -Filtered based on role policy, if isSource true then it ll filter otherwise it ll not - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/GetFilteredDataSources?isSource=true - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` -[ -    { -        "id": 4, -        "name": "Excel_API", -        "providerTypeName": "Microsoft Excel", -        "type": 1, -        "creationDate": "2024-05-07T04:20:17.663", -        "lastUpdate": null, -        "configurationValues": { -            "FileServer": "LocalServer", -            "FilePath": "C:\\Users\\administrator.directorymanager\\Documents\\User5.xls", -            "ConnectionString": "", -            "UserName": "", -            "Password": "" -        } -    }, -    { -        "id": 6, -        "name": "Access_API", -        "providerTypeName": "Microsoft Access", -        "type": 2, -        "creationDate": "2024-05-07T04:25:48.297", -        "lastUpdate": null, -        "configurationValues": { -            "FileServer": "LocalServer", -            "FilePath": "C:\\Users\\administrator.directorymanager\\Documents\\directorymanagerAccess.accdb", -            "FilePassword": "", -            "ConnectionString": "", -            "UserName": "", -            "Password": "" -        } -    }, -    { -        "id": 9, -        "name": "SQL_API", -        "providerTypeName": "SQL Server", -        "type": 3, -        "creationDate": "2024-05-07T04:29:45.393", -        "lastUpdate": null, -        "configurationValues": { -            "ConnectionString": "MSSQL", -            "UserName": "sa", -            "Password": "webdir123R", -            "WindowsAuthentication": "false", -            "Database": "ExternalDB" -        } -    }, -    { -        "id": 11, -        "name": "Text/CSV_API", -        "providerTypeName": "Text/CSV", -        "type": 4, -        "creationDate": "2024-05-07T04:34:50.44", -        "lastUpdate": null, -        "configurationValues": { -            "FileServer": "LocalServer", -            "File": "C:\\Users\\administrator.directorymanager\\Desktop\\PWList.txt", -            "Delimiter": ",", -            "Server": "", -            "UserName": "", -            "Password": "" -        } -    } -] -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) diff --git a/docs/directorymanager/11.0/apis/datasource/getfntype.md b/docs/directorymanager/11.0/apis/datasource/getfntype.md deleted file mode 100644 index 90dc2ab666..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/getfntype.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "Get Filenames by Type" -description: "Get Filenames by Type" -sidebar_position: 80 ---- - -# Get Filenames by Type - -Use this API to get source file name(s) residing on local server(s) or in cloud for a specific type -of a data source(s), let's say source file name(s) residing in OneDrive for Excel data source(s). - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/GetFilesNameByType - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -    "type": 1, -    "configurationValues": { -        "FileServer": "OneDrive", -        "ServiceAccounUserName": "sqatestautomation@5cjshm.onmicrosoft.com", -        "ServiceAccountPassword": "webdir123R!", -        "ApplicationId": "5556091a-8f10-41ed-88cd-41c43e8c3041", -        "TenantId": "60a911a6-e22c-44f1-90f2-fa8d846eb070" -    } -} -``` - -#### Sample Response Syntax - -``` -[ -    "User5.xls" -] -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/getmd.md b/docs/directorymanager/11.0/apis/datasource/getmd.md deleted file mode 100644 index 9dd3f6a8d5..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/getmd.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Get Metadata of Data Sources" -description: "Get Metadata of Data Sources" -sidebar_position: 120 ---- - -# Get Metadata of Data Sources - -Using this API, you can get metadata information of data sources defined so far in GroupID. - -See the -[Create a Data Source](/docs/directorymanager/11.0/signin/datasource/create.md) topic -for creating a data source using the GroupID interface. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/GetMetaData - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": [ -        { -            "name": "Microsoft Excel", -            "type": 1, -            "icon": "iVBORw0KGgoAAAANSUhEUgAACcQAAAmwCAYAAAC+wLrqAAAABmJLR0QA/wD/AP+gvaeTAAEP2UlEQVQYGezBe6wfZn0f4M/39d0JcU7jNvTA8M+HLEBZQn1p08TJlk4LkIJAK3PptrLRLj4uqGFLkdbu0nDsUkTLbqoqdWhrM2yHTabrKvXCSldaiAmZwAUFMU39o5d/dmEDVo0m8bHP713VoamjtuPLOfY573meJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK6cCAABcsdtOPHzT0tKzk7Sa9GR3pb4hyc5e2Vk9tyS5Jcn2JDck2Zz/ayYAAAADmtk9O61UCwAAwHj+V5Ke5GySryR5tpIv9uSLSf9iUv8jPf89vf/+tNrvtm2bf+/0/h/+g3DNVQAAgOd1+wfndy6dm9651NqdmeaOqtyRZC7JLQEAAOCPzUxmU1UBAADgj305ye8k/XOp9rk2nT59puXppw8sfCGsmAoAAPD/2ff++U1furHt6X16T/V+oFJ39+RFAQAA4KJmJrOpqgAAAHBR/zXJU6k6NU0+uXjz9PTnX7mwGJZFBQAAyO7jh1/Vk9e23l/TK3cl2R4AAAAuy8xkNlUVAAAALsuzlXxqmvrV1vLhT9/9I59NVQ9XpAIAAOvQi08+sm3D4lde23peV6nX9uRFAQAA4KrMTGZTVQEAAOCq/Lek//v0+pVs6798ev/CM+GSVQAAYJ247Scf3rJ08+Kr0/rB9LwxyU0BAABg2cxMZlNVAQAAYNk8m6pfr2k+9Oy56c9//tsXvhIuqgIAAIObnHjo2zJth6rypiQ7AgAAwIqYmcymqgIAAMCK+ErSf76n/cvfuvfRJ8J5VQAAYEBzJ+d39DP15qS/Lck3BwAAgBU3M5lNVQUAAIAV99vp+dmzrT/29IGFL4T/pwIAAAOZfHD+5XWufjDVvyfJtgAAAHDNzExmU1UBAADgmjmT9H+d1v7J6Xse/VxIBQAABjB3bP7e3vKO9Hxnkg0BAADgmpuZzKaqAgAAwHXxid7z479176O/lKqedaoCAABr2K4Thx5svY4k+ZYAAABwXc1MZlNVAQAA4Lr6bKW/69MH3vWLqepZZyoAALAGzR2bv7dX/9Gk7g8AAACrwsxkNlUVAAAAVoWn0/Pu0/e960NZRyoAALCGzB07vL/X9H1J3R8AAABWlZnJbKoqAAAArCqfaK3/3U/ds/Bk1oEKAACsAbuOz39jSxaS/K0kGwIAAMCqMzOZTVUFAACAVajql5ba9OHP3r3wexlYBQAAVrHJY2/d2jZseqRX/f0kNwYAAIBVa2Yym6oKAAAAq9YzvfITtaW/7/T+hWcyoAoAAKxSc8fm7+3Jv0jl5QEAAGDVm5nMpqoCAADAqve7qf79pw8sfCSDqQAAwCozd3J+R1/M0fT8QJIWAAAA1oSZyWyqKgAAAKwRlQ9lsb/99Lcv/M8MogUAAFaR3ccPvaGfyX9KzzuStAAAAAAAAAAro+dgNtXn9546+l0ZRAUAAFaBF598ZNumxT98b3reEQAAANakmclsqioAAACsQZUPLU43H/7cfX/vy1nDWgAA4DqbO3Z4/6Yzf/jZ9LwjAAAAAAAAwLXXc3BzLX5m76mj92UNawEAgOulpybHD/9Qr/5kktsDAAAAAAAAXE+7Kv2j+04dfTR9oWUNqgAAwHXwsp/5vhcsbt74WJI3BQAAgCHMTGZTVQEAAGDt68mHt7T+PZ+8Z+FLWUNaAADgGtt9/G0vO7t541NJ3hQAAAAAAABg1ankwcVpfWbPqYX9WUNaAADgGtp14tBfTpY+1ZNvCgAAAAAAALCavaSlPrb/iSN/NWtECwAAXCOT44f+duv1c0leEAAAAAAAAGAt2N4rj+9/4shCeq+schUAAFhpJw9u2H1m5p8l+YEAAAAwrJnJbKoqAAAAjKr/q2z9xvnT+w+fzSpVAQCAFXTrsbfcsD3b/02qvz4AAAAMbWYym6oKAAAA4+qp/1BbN/+V0/t/+A+yCrUAAMAKmTs5v2NbbftIqr8+AAAAAAAAwJpX6X8pZ858dM/H3/P1WYVaAABgBbzk8bfN9Of6Ryq5JwAAAAAAAMA4eva2OvuxVz357hdllWkBAIBltvuDD926Ybr0m6n61gAAAAAAAADjqbxi43TpiW95YmEuq0gLAAAso8ljb39hltrHk9wZAAAAAAAAYGS7p1Uf3Xdq4SVZJVoAAGCZTB5768218dyvJLk9AAAAAAAAwHqwK6lf33NqYTarQAsAACyD2048fFNt3PxrSfYEAAAAAAAAWE9ua6mP3vXUj92a66wFAACu0q3H3nLDuX7mw0n2BwAAAAAAAFiPXnbu3Llf3vfp9+7IddQCAABX4+TBDduz9fFK7gkAAAAAAACwnu3Lc4u/8MrPL2zOddICAABXYfdzN//TVL0xAAAAAAAAAOn3b/tS/fNcJy0AAHCF5o4f/sFUPRwAAAAAAACAr+qV79136siP5DpoAQCAKzD5wOE39vT3BQAAAAAAAOBPO7Lv1NG/lmusBQAALtPcBw7dXq1/IEkLAAAAAAAAwJ9WSf+ZvU8c3ZdrqAUAAC7DK0++/ca0+ndJdgQAAAAAAADgwrZW9X+77zcWduYaaQEAgEvVU88snvvZnnxTAAAAAAAAAJ7frmyqDx48eXJDroEWAAC4RLtPHHpneg4GAAAAAAAA4NI98Duz//kf5BqoAADAJdh1fH5vSz6ZZHMAAADgPGYms6mqAAAAwHlM27T+4qf+/KMfywpqAQCA5zH7/vntrefxJJsDAAAAAAAAcPnatPXH7npq4aasoBYAAHgeW2/o/ziVlwcAAAAAAADgyu0+u1Q/lRXUAgAAFzF34tDre6/DAQAAAAAAALhK1fOWvaeOvDkrpAUAAC7gthMP39R7/XSSCgAAAAAAAMAyqOSn9nz8PV+fFdACAAAXcK6feW+SFwcAAAAAAABg+exsbfEfZQW0AADAeUxOPPRtlRwOAAAAAAAAwLKrv7H3ySOvyTJrAQCAr3HbTz68pabtsSQtAAAAAAAAACugpvnpfZ9e2J5l1AIAAF/j3Mzi30nl5QEAAAAAAABYObvzXH4oy6gCAAB/wkuPff83TGv620l2BAAAAC7DzGQ2VRUAAAC4DM9Oa8MrPnPgH/5+lkELAAD8CdNaek+SHQEAAAAAAABYedtqeu69WSYtAADwVZPHD31zUm8NAAAAAAAAwDVSVd+999TR+7IMWgAA4Ktqmp9IsiEAAAAAAAAA11BL//EsgxYAAPgjc8fm703qgQAAAAAAAABcYz25e/+pIw/mKrUAAMAf6ZV3BwAAAAAAAOA66cmPpvfKVWgBAGDd23388ANJ/kIAAAAAAAAArp99+588+oZchRYAAKh+JAAAAAAAAADXWe85kt4rV6gFAIB1be7Y/L3puTsAAAAAAAAA19+r9n7y6KtzhVoAAFjfKu8MAAAAAAAAwCpR07wzV6gFAIB1a+7xw3+2J28IAAAAAAAAwOrxwP4nj+7JFWgBAGDdmk77I0laAAAAAAAAAFaRae+P5ApUAABYl2478fBNS/3Mf0lyQwAAAGAZzExmU1UBAACAZbB4tvqfefrAwhdyGVoAAFiXpv3MX09yQwAAAAAAAABWn80be/3NXKYWAADWq4cCAAAAAAAAsEpV8lB6r1yGFgAA1p2XPv7Qvp7sDQAAAAAAAMDqdfueJ4/cl8vQAgDAutOn7VAAAAAAAAAAVrkNPYdyGVoAAFhX9r1/flPvORgAAAAAAACAVa6nvvPOX33fDblELQAArCtf3lYPpPJ1AQAAAAAAAFj9tm/a/sx35BK1AACwrvTq3xUAAAAAAACANaJX3pxL1AIAwLrxypMHNyd5QwAAAAAAAADWiEped9dTCzflErQAALBuPHtm5oEkMwEAAAAAAABYO7YuLbXvyCVoAQBg/aj++gAAAAAAAACsNX36ulyCFgAA1o3e69UBAAAAAAAAWGN66rXpCy3PowUAgHVh17GHXpFkLgAAAAAAAABrz849n8jePI8WAADWhQ214cEAAAAAAAAArFEt9WCeRwsAAOtCr7w6AAAAAAAAAGvXa/I8WgAAGN/JgxvS+90BAAAAAAAAWLv23/8bC1tzES0AAAxvcvbmO5LcFAAAAAAAAIC1a8v/3pT9uYgWAACGV0t1IAAAAAAAAABrXa8DuYgWAACG16sfCAAAAAAAAMAaV5UDuYgWAACGV6m7AgAAAAAAALDG9eTuXEQLAABDmzs5vyPJ7gAAAAAAAACsfTtf9eS7X5QLaAEAYGzP5Y4kFQAAAAAAAIABbJou3ZkLaAEAYGyt3xkAAAAAAACAUVTdkQtoAQBgdHcEAAAAAAAAYBR9ekcuoAUAgKH1Xn8uAAAAAAAAAIPoqTtyAS0AAIzupQEAAAAAAAAYx1wuoAUAgGFNHnvr1iQvDAAAAAAAAMA4XvCt//E9t+Q8WgAAGFZt3LYrSQUAAAAAAABgIGfPLu7OebQAADCsnunuAAAAAAAAAAym9dqd82gBAGBgfVcAAAAAAAAABtMrk5xHCwAAI3thAAAAAAAAAAZTlVtzHi0AAAyrer8lAAAAAAAAAKPp/ZacRwsAAMPqlZ0BAAAAAAAAGE21nTmPFgAAhlWpWwIAAAAAAAAwmOr9lpxHCwAAw6pkZwAAAAAAAAAG0ys7cx4tAAAMqyc3BgAAAAAAAGA0PTfmPFoAABhXZXMAAAAAAAAAxrMl59ECAMC4erYEAAAAAAAAYDxbch4tAACMbHMAAAAAAAAAxrMl59ECAMDItgQAAAAAAABgPBvTF1q+RgsAACPbGAAAAAAAAIAB3f+b2Zyv0QIAAAAAAAAAAAADaAEAAAAAAAAAAIABtAAAAAAAAAAAAMAAWgAAAAAAAAAAAGAALQAAAAAAAAAAADCAFgAAAAAAAAAAABhACwAAAAAAAAAAAAygBQAAAAAAAAAAAAbQAgAAAAAAAAAAAANoAQAAAAAAAAAAgAG0AAAAAAAAAAAAwABaAAAAAAAAAAAAYAAtAAAAAAAAAAAAMIAWAAAAAAAAAAAAGEALAAAAAAAAAAAADKAFAAAAAAAAAAAABtACAAAAAAAAAAAAA2gBAAAAAAAAAACAAbQAAAAAAAAAAADAAFoAAAAAAAAAAABgAC0AAAAAAAAAAAAwgBYAAAAAAAAAAAAYQAsAAAAAAAAAAAAMoAUAAAAAAAAAAAAG0AIAAAAAAAAAAAADaAEAAAAAAAAAAIABtAAAAAAAAAAAAMAAWgAAAAAAAAAAAGAALQAAAAAAAAAAADCAFgAAAAAAAAAAABhACwAAAAAAAAAAAAygBQAAAAAAAAAAAAbQAgAAAAAAAAAAAANoAQAAAAAAAAAAgAG0AAAAAAAAAAAAwABaAAAAAAAAAAAAYAAtAAAAAAAAAAAAMIAWAAAAAAAAAAAAGEALAAAAAAAAAAAADKAFAAAAAAAAAAAABtACAAAAAAAAAAAAA2gBAAAAAAAAAACAAbQAAAAAAAAAAADAAFoAAAAAAAAAAABgAC0AAAAAAAAAAAAwgBYAAAAAAAAAAAAYQAsAAAAAAAAAAAAMoAUAAAAAAAAAAAAG0AIAAAAAAAAAAAADaAEAAAAAAAAAAIABtAAAAAAAAAAAAMAAWgAAAAAAAAAAAGAALQAAAAAAAAAAADCAFgAAAAAAAAAAABhACwAAAAAAAAAAAAygBQAAAAAAAAAAAAbQAgAAAAAAAAAAAANoAQAAAAAAAAAAgAG0AAAAAAAAAAAAwABaAAAAAAAAAAAAYAAtAAAAAAAAAAAAMIAWAAAAAAAAAAAAGEALAAAAAAAAAAAADKAFAAAAAAAAAAAABtACAAAAAAAAAAAAA2gBAAAAAAAAAACAAbQAAAAAAAAAAADAAFoAAAAAAAAAAABgAC0AAAAAAAAAAAAwgBYAAAAAAAAAAAAYQAsAAAAAAAAAAAAMoAUAAAAAAAAAAAAG0AIAAAAAAAAAAAADaAEAAAAAAAAAAIABtAAAAAAAAAAAAMAAWgAAAAAAAAAAAGAALQAAAAAAAAAAADCAFgAAAAAAAAAAABhACwAAAAAAAAAAAAygBQAAAAAAAAAAAAbQAgAAAAAAAAAAAANoAQAAAAAAAAAAgAG0AAAAAAAAAAAAwABaAAAAAAAAAAAAYAAtAAAAAAAAAAAAMIAWAAAAAAAAAAAAGEALAAAAAAAAAAAADKAFAAAAAAAAAAAABtACAAAAAAAAAAAAA2gBAAAAAAAAAACAAbQAAAAAAAAAAADAAFoAAAAAAPg/7MHbr+f7XRfg1+f9+641hz0za2afEaKISSEkoGg9ADWZFoI0okRJ4413Ro0J1BSJle6abDUaE2L0L9B4wZ2JXmmCN8YLY+KF3oBUSyBND2w2u3s6e82s9Tt8vx/b7gr0NHvN3nNY6/N7ngcAAACAAVQAAAAAAAAAAABgABUAAAAAAAAAAAAYQAUAAAAAAAAAAAAGUAEAAAAAAAAAAIABVAAAAAAAAAAAAGAAFQAAAAAAAAAAABhABQAAAAAAAAAAAAZQAQAAAAAAAAAAgAFUAAAAAAAAAAAAYAAVAAAAAAAAAAAAGEAFAAAAAAAAAAAABlABAAAAAAAAAACAAVQAAAAAAAAAAABgABUAAAAAAAAAAAAYQAUAAAAAAAAAAAAGUAEAAAAAAAAAAIABVAAAAAAAAAAAAGAAFQAAAAAAAAAAABhABQAAAAAAAAAAAAZQAQAAAAAAAAAAgAFUAAAAAAAAAAAAYAAVAAAAAAAAAAAAGEAFAAAAAAAAAAAABlABAAAAAAAAAACAAVQAAAAAAAAAAABgABUAAAAAAAAAAAAYQAUAAAAAAAAAAAAGUAEAAAAAAAAAAIABVAAAAAAAAAAAAGAAFQAAAAAAAAAAABhABQAAAAAAAAAAAAZQAQAAAAAAAAAAgAFUAAAAAAAAAAAAYAAVAAAAAAAAAAAAGEAFAAAAAAAAAAAABlABAAAAAAAAAACAAVQAAAAAAAAAAABgABUAAAAAAAAAAAAYQAUAAAAAAAAAAAAGUAEAAAAAAAAAAIABVAAAAAAAAAAAAGAAFQAAAAAAAAAAABhABQAAAAAAAAAAAAZQAQAAAAAAAAAAgAFUAAAAAAAAAAAAYAAVAAAAAAAAAAAAGEAFAAAAAAAAAAAABlABAAAAAAAAAACAAVQAAAAAAAAAAABgABUAAAAAAAAAAAAYQAUAAAAAAAAAAAAGUAEAAAAAAAAAAIABVAAAAAAAAAAAAGAAFQAAAAAAAAAAABhABQAAAAAAAAAAAAZQAQAAAAAAAAAAgAFUAAAAAAAAAAAAYAAVAAAAAAAAAAAAGEAFAAAAAAAAAAAABlABAAAAAAAAAACAAVQAAAAAAAAAAABgABUAAAAAAAAAAAAYQAUAAAAAAAAAAAAGUAEAAAAAAAAAAIABVAAAAAAAAAAAAGAAFQAAAAAAAAAAABhABQAAAAAAAAAAAAZQAQAAAAAAAAAAgAFUAAAAAAAAAAAAYAAVAAAAAAAAAAAAGEAFAAAAAAAAAAAABlABAAAAAAAAAACAAVQAAAAAAAAAAABgABUAAAAAAAAAAAAYQAUAAAAAAAAAAAAGUAEAAAAAAAAAAIABVAAAAAAAAAAAAGAAFQAAAAAAAAAAABhABQAAAAAAAAAAAAZQAQAAAAAAAAAAgAFUAAAAAAAAAAAAYAAVAAAAAAAAAAAAGEAFAAAAAAAAAAAABlABAAAAAAAAAACAAVQAAAAAAAAAAABgABUAAAAAAAAAAAAYQAUAAAAAAAAAAAAGUAEAAAAAAAAAAIABVAAAAAAAAAAAAGAAFQAAAAAAAAAAABhABQAAAAAAAAAAAAZQAQAAAAAAAAAAgAFUAAAAAAAAAAAAYAAVAAAAAAAAAAAAGEAFAAAAAAAAAAAABlABAAAAAAAAAACAAVQAAAAAAAAAAABgABUAAAAAAAAAAAAYQAUAAAAAAAAAAAAGUAEAAAAAAAAAAIABVAAAAAAAAAAAAGAAFQAAAAAAAAAAABhABQAAAAAAAAAAAAZQAQAAAAAAAAAAgAFUAAAAAAAAAAAAYAAVAAAAAAAAAAAAGEAFAAAAAAAAAAAABlABAAAAAAAAAACAAVQAAAAAAAAAAABgABUAAAAAAAAAAAAYQAUAAAAAAAAAAAAGUAEAAAAAAAAAAIABVAAAAAAAAAAAAGAAFQAAAAAAAAAAABhABQAAAAAAAAAAAAZQAQAAAAAAAAAAgAFUAAAAAAAAAAAAYAAVAAAAAAAAAAAAGEAFAAAAAAAAAAAABlABAAAAAAAAAACAAVQAAAAAAAAAAABgABUAAAAAAAAAAAAYQAUAAAAAAAAAAAAGUAEAAAAAAAAAAIABVAAAAAAAAAAAAGAAFQAAAAAAAAAAABhABQAAAAAAAAAAAAZQAQAAAAAAAAAAgAFUAAAAAAAAAAAAYAAVAAAAAAAAAAAAGEAFAAAAAAAAAAAABlABAAAAAAAAAACAAVQAAAAAAAAAAABgABUAAAAAAAAAAAAYQAUAAAAAAAAAAAAGUAEAAAAAAAAAAIABVAAAAAAAAAAAAGAAFQAAAAAAAAAAABhABQAAAAAAAAAAAAZQAQAAAAAAAAAAgAFUAAAAAAAAAAAAYAAVAAAAAAAAAAAAGEAFAAAAAAAAAAAABlABAAAAAAAAAACAAVQAAAAAAAAAAABgABUAAAAAAAAAAAAYQAUAAAAAAAAAAAAGUAEAAAAAAAAAAIABVAAAAAAAAAAAAGAAFQAAAAAAAAAAABhABQAAAAAAAAAAAAZQAQAAAAAAAAAA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AAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOUAAAAAAAAAAAAQAOU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 -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/getmdtypest.md b/docs/directorymanager/11.0/apis/datasource/getmdtypest.md deleted file mode 100644 index 08b4d1130b..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/getmdtypest.md +++ /dev/null @@ -1,142 +0,0 @@ ---- -title: "Get Metadata of Data Source by Server Type and ID" -description: "Get Metadata of Data Source by Server Type and ID" -sidebar_position: 110 ---- - -# Get Metadata of Data Source by Server Type and ID - -Use this API to retrieve metadata information of all data sources defined so far in GroupID by File -Server type (i.e., local server or a cloud server) and by data source type (i.e., MS Excel or -Text/CSV or MS Access or SQL server). - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/GetMetaDataByType/{serverType}/{datasourceType} - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": { -        "name": "Text/CSV", -        "type": 4, -        "icon": "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", -        "fileServerType": "LocalServer", -        "configurations": [ -            { -                "name": "FileServer", -                "displayName": "File Server", -                "dataType": "dropdown", -                "defaultValue": "LocalServer", -                "regularExpression": null, -                "validationMessage": null, -                "minLength": null, -                "maxLength": null, -                "isRequired": true, -                "isDisabled": false, -                "isNewOnly": false, -                "renderingOrder": 1, -                "values": [ -                    "LocalServer", -                    "OneDrive" -                ] -            }, -            { -                "name": "File", -                "displayName": "File Path", -                "dataType": "System.String", -                "defaultValue": "", -                "regularExpression": "(\\\\\\\\|[\\w]:\\\\)([^\\\\:*?\"<>|]+\\\\)*[^\\\\:*?\"<>|]+\\.((csv)|(txt))", -                "validationMessage": null, -                "minLength": null, -                "maxLength": null, -                "isRequired": true, -                "isDisabled": false, -                "isNewOnly": false, -                "renderingOrder": 2, -                "values": null -            }, -            { -                "name": "Delimiter", -                "displayName": "Delimiter", -                "dataType": "System.String", -                "defaultValue": "", -                "regularExpression": "^([^\\s]|(tab)|(Tab)|(TAB))$", -                "validationMessage": null, -                "minLength": null, -                "maxLength": null, -                "isRequired": true, -                "isDisabled": false, -                "isNewOnly": false, -                "renderingOrder": 3, -                "values": null -            }, -            { -                "name": "Server", -                "displayName": "Domain/Hostname (Optional)", -                "dataType": "System.String", -                "defaultValue": "", -                "regularExpression": null, -                "validationMessage": null, -                "minLength": null, -                "maxLength": null, -                "isRequired": false, -                "isDisabled": false, -                "isNewOnly": false, -                "renderingOrder": 4, -                "values": null -            }, -            { -                "name": "UserName", -                "displayName": "Username (Optional)", -                "dataType": "System.String", -                "defaultValue": "", -                "regularExpression": null, -                "validationMessage": null, -                "minLength": null, -                "maxLength": null, -                "isRequired": false, -                "isDisabled": false, -                "isNewOnly": false, -                "renderingOrder": 5, -                "values": null -            }, -            { -                "name": "Password", -                "displayName": "Password (Optional)", -                "dataType": "System.Security.SecureString", -                "defaultValue": "", -                "regularExpression": null, -                "validationMessage": null, -                "minLength": null, -                "maxLength": null, -                "isRequired": false, -                "isDisabled": false, -                "isNewOnly": false, -                "renderingOrder": 6, -                "values": null -            } -        ] -    }, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) diff --git a/docs/directorymanager/11.0/apis/datasource/parsecs.md b/docs/directorymanager/11.0/apis/datasource/parsecs.md deleted file mode 100644 index c48b40ad29..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/parsecs.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: "Parse a Connection String" -description: "Parse a Connection String" -sidebar_position: 150 ---- - -# Parse a Connection String - -This API parses the connection string given in one line format. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/ParseConnectionString - -## HTTP Method - -POST - -#### Sample Request Syntax - -``` -{ -    "connectionString": "Data Source='MSSQL';Initial Catalog=ExternalDB;Password='webdir123R';User ID='sa';Integrated Security=false;", -    "dataSourceType": 3 -} -``` - -#### Sample Response Syntax - -``` -{ -    "ConnectionString": "'MSSQL'", -    "Database": "ExternalDB", -    "Password": "'webdir123R'", -    "UserName": "'sa'", -    "WindowsAuthentication": "true" -} -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/updateds.md b/docs/directorymanager/11.0/apis/datasource/updateds.md deleted file mode 100644 index 7514055726..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/updateds.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: "Update a Data Source" -description: "Update a Data Source" -sidebar_position: 160 ---- - -# Update a Data Source - -Using this API you can update information of an already created data source. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/Update - -## HTTP Method - -PUT - -#### Sample Request Syntax - -``` -{ -    "id": 4, -    "name": "Excel_API_Updated", -    "providerTypeName": "Microsoft Excel", -    "type": 1, -    "creationDate": "2024-05-07T04:08:56.95", -    "lastUpdate": null, -    "configurationValues": { -        "FileServer": "LocalServer", -        "FilePath": "C:\\Users\\administrator.directorymanager\\Documents\\User5.xls", -        "ConnectionString": "", -        "UserName": "", -        "Password": "" -    } -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": true, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/datasource/validatedc.md b/docs/directorymanager/11.0/apis/datasource/validatedc.md deleted file mode 100644 index 6a803f1f4e..0000000000 --- a/docs/directorymanager/11.0/apis/datasource/validatedc.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: "Validate Data Connectivity of a Data Source" -description: "Validate Data Connectivity of a Data Source" -sidebar_position: 170 ---- - -# Validate Data Connectivity of a Data Source - -Use this API to validate connection of a data source with the provider or with a source file. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSource/ValidateServerConnectivity - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -    "name": "Excel_API", -    "providerTypeName": "Microsoft Excel", -    "type": 1, -    "creationDate": "2024-05-07T04:08:56.95", -    "lastUpdate": null, -    "configurationValues": { -        "FileServer": "LocalServer", -        "FilePath": "C:\\Users\\administrator.directorymanager\\Documents\\User5.xls", -        "ConnectionString": "", -        "UserName": "", -        "Password": "" -    } -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": "Excel_API", -    "type": 5, -    "status": 0, -    "message": "Connection Succeeded", -    "data": null, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": "", -    "errorCode": "", -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/gettoken.md b/docs/directorymanager/11.0/apis/gettoken.md deleted file mode 100644 index da7f229147..0000000000 --- a/docs/directorymanager/11.0/apis/gettoken.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: "Get Token" -description: "Get Token" -sidebar_position: 80 ---- - -# Get Token - -This API generates a token for a user to access the GroupID APIs. This API is also used to get a -valid token in case the token expires in a session. - -## Endpoint - -https://demomachine:4443/GroupIDSecurityService/connect/token - -## HTTP Method - -POST - -### Parameters Values and Description - -Pass the parameters listed in the table in the request body using the following format: - -``` -application/x-www-form-urlencoded -``` - -| Name | Description | -| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------- | -| grant_type | Password | -| username | Send the username against this parameter to access APIs | -| password | Password of the user | -| client_Id | Secret of GroupID API from the SVC.Client database table | -| client_secret | Secret of GroupID API from the SVC.Client database table | -| identity_store_id | The ID of the identity store in which the user exists. You can get the identity store ID from the SVC.Identitystore database table. | - -#### Sample Response Syntax - -``` -{ -    "access_token":   -    "refresh_token":   -    "scope": "directorymanager.api groupid_identity offline_access openid profile", -    "token_type": "Bearer", -    "expires_in": 1200 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- Get Token -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/group/_category_.json b/docs/directorymanager/11.0/apis/group/_category_.json deleted file mode 100644 index be10a7daf8..0000000000 --- a/docs/directorymanager/11.0/apis/group/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Group APIs", - "position": 30, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "groupapis" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/apis/group/createsmartgroup.md b/docs/directorymanager/11.0/apis/group/createsmartgroup.md deleted file mode 100644 index 2cc8f994c6..0000000000 --- a/docs/directorymanager/11.0/apis/group/createsmartgroup.md +++ /dev/null @@ -1,191 +0,0 @@ ---- -title: "Create a Smart Group" -description: "Create a Smart Group" -sidebar_position: 10 ---- - -# Create a Smart Group - -Using this API, you can create a Smart Group in the identity store specified in the endpoint URL. -You have to provide the mandatory information for creating a Smart Group in the request syntax. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Groups/DynamicGroup - -## HTTP Method - -POST - -#### Sample Request Syntax - -``` -{ -  "UpdateOption":0, -  "IdentityStoreID": 2, -  "GroupName": "DemoSmartGroup1", -  "Container": "OU=Groups,DC=demo,DC=local", -  "AttributesCollection": { -    "AttributesCollection": { -      "name": [ -        { -          "Value": "DemoSmartGroup1", -          "Action": 1 -        } -      ], -      "sAMAccountName": [ -        { -          "Value": "DemoSmartGroup1", -          "Action": 1 -        } -      ], -      "GroupType": [ -        { -          "Value": "8", -          "Action": 0 -        } -      ], -      "IMSGManagedGroupType": [ -        { -          "Value": "2", -          "Action": 0 -        } -      ], -      "XGroupSecurity": [ -        { -          "Value": "Semi_Private", -          "Action": 1 -        } -      ], -      "description": [ -        { -          "Value": "Its the description!", -          "Action": 1 -        } -      ], -      "UpdateOptions": [ -        { -          "Value": "false", -          "Action": 1 -        } -      ], -      "managedBy": [ -        { -          "Value": "19a1822e-e7ef-4206-af75-1c2d8b1d15eb", -          "Action": 1 -        } -      ], -      "identityStoreId": [ -        { -          "Value": "2", -          "Action": 1 -        } -      ], -      "IMSGObjectTypes": [ -        { -          "Value": "6", -          "Action": 1 -        } -      ], -      "IMSGCriteria": [ -        { -          "Value": "(department Contains \"engineering\")", -          "Action": 1 -        } -      ], -      "IMSGStartPath": [ -        { -          "Value": "DC=demo,DC=local", -          "Action": 1, -          "AttributeCollection": { -            "Scope": "2" -          } -        } -      ], -      "SmartGroupMainType": [ -        { -          "Value": "X.SmartGroup", -          "Action": 0 -        } -      ], -      "info": [ -        { -          "Value": "This is an automated group, please do not modify membership. Membership is controlled by GroupID.", -          "Action": 0 -        } -      ], -      "mailNickname": [ -        { -          "Value": "DemoSmartGroup1", -          "Action": 0 -        } -      ], -      "displayName": [ -        { -          "Value": "DemoSmartGroup1", -          "Action": 0 -        } -      ], -      "CN": [ -        { -          "Value": "DemoSmartGroup1", -          "Action": 0 -        } -      ], -      "objectClass": [ -        { -          "Value": "MailEnabledGroup", -          "Action": 0 -        } -      ], -      "objectCategory": [ -        { -          "Value": "group", -          "Action": 0 -        } -      ], -      "ContainerDistinguishedName": [ -        { -          "Value": "OU=Groups,DC=demo,DC=local", -          "Action": 0 -        } -      ] -    } -  } -} -``` - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": "DC.demo.local", -    "exceptionMessagesAttributeWise": null, -    "data": "f8bc4524-fdcb-4b85-9f3f-d6c0af7c58ae", -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": null, -            "errorCode": null, -            "details": [ -            ], -            "type": 0, -            "message": "", -            "status": 0 -        } -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/group/createstaticgroup.md b/docs/directorymanager/11.0/apis/group/createstaticgroup.md deleted file mode 100644 index 28313e6f7a..0000000000 --- a/docs/directorymanager/11.0/apis/group/createstaticgroup.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: "Create a Static Group" -description: "Create a Static Group" -sidebar_position: 20 ---- - -# Create a Static Group - -Using this API, you can create a normal directory group, also called an unmanaged or static group, -in the given identity store. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Groups/StaticGroup - -## HTTP Method - -POST - -## Sample Request Syntax - -``` -{ -    "GroupName": "DemoGroup", -    "Container": "OU=Groups,DC=demo,DC=local", -    "AttributesCollection": { -        "AttributesCollection": { -            "sAMAccountName": [{ -                "Value": "DemoGroup", -                "Action": 0 -            }], -            "name": [{ -                "Value": "DemoGroup", -                "Action": 0 -            }], -            "CN": [{ -                "Value": "DemoGroup", -                "Action": 0 -            }], -            "objectClass": [{ -                "Value": "group", -                "Action": 0 -            }], -            "groupType": [{ -                "Value": "-2147483640", -                "Action": 0 -            }], -            "XGroupScope": [{ -                "Value": "Universal Group", -                "Action": 0 -            }], -            "XGroupSecurity": [{ -                "Value": "Semi_Private", -                "Action": 0 -            }], -            "managedBy": [{ -                "Value": "CN=Administrator,CN=Users,DC=demo,DC=local", -                "Action": 0 -            }] -        } -    } -} -``` - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": "DC.demo.local", -    "exceptionMessagesAttributeWise": null, -    "data": "6bd67b4a-eb06-4b05-94a8-43914fb2e19a", -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": null, -            "errorCode": null, -            "details": [ -            ], -            "type": 0, -            "message": "", -            "status": 0 -        } -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/group/deletegroup.md b/docs/directorymanager/11.0/apis/group/deletegroup.md deleted file mode 100644 index e7816ecfc5..0000000000 --- a/docs/directorymanager/11.0/apis/group/deletegroup.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Delete a Group" -description: "Delete a Group" -sidebar_position: 30 ---- - -# Delete a Group - -Use this API to delete a group from an identity store. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Groups/{GroupIdentity} - -## HTTP Method - -DELETE - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": null, -    "exceptionMessagesAttributeWise": null, -    "data": null, -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/group/deletegroups.md b/docs/directorymanager/11.0/apis/group/deletegroups.md deleted file mode 100644 index c55c411718..0000000000 --- a/docs/directorymanager/11.0/apis/group/deletegroups.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: "Delete Groups" -description: "Delete Groups" -sidebar_position: 40 ---- - -# Delete Groups - -The Delete Groups API deletes multiple groups from an identity store. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Groups - -## HTTP Method - -DELETE - -#### Sample Request Syntax - -``` -[ -  "24bda903-2afd-408a-a55c-c18adcfb543e", -  "124b2528-a08a-41a1-9e8e-b1d5e6434153" -] -``` - -#### sample Response Syntax - -``` -{ -    "currentDirectoryServer": null, -    "exceptionMessagesAttributeWise": null, -    "data": null, -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": null, -            "errorCode": null, -            "details": [ -            ], -            "type": 0, -            "message": null, -            "status": 0 -        }, -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": null, -            "errorCode": null, -            "details": [ -            ], -            "type": 0, -            "message": null, -            "status": 0 -        } -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/group/expiregroup.md b/docs/directorymanager/11.0/apis/group/expiregroup.md deleted file mode 100644 index ec3a5eba10..0000000000 --- a/docs/directorymanager/11.0/apis/group/expiregroup.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Expire a Group" -description: "Expire a Group" -sidebar_position: 50 ---- - -# Expire a Group - -This API expires the group whose identity is provided in the endpoint URL. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identityStoreId}/Groups/{groupIdentity}/Expire?ReplicationRequired=true - -## HTTP Method - -POST - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": null, -    "exceptionMessagesAttributeWise": null, -    "data": null, -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/group/expiregroups.md b/docs/directorymanager/11.0/apis/group/expiregroups.md deleted file mode 100644 index 435ad7e51c..0000000000 --- a/docs/directorymanager/11.0/apis/group/expiregroups.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: "Expire Groups" -description: "Expire Groups" -sidebar_position: 60 ---- - -# Expire Groups - -This API expires multiple groups whose identities are provided in the request body. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identityStoreId}/Groups/Expire - -## HTTP Method - -POST - -#### Sample Request Syntax - -``` -[ -"eef9c2ae-32db-401b-b844-6ea6e5f21307", -"8b13bcc7-c51a-4840-a9f5-f1c03bba85d4", -"4ba9f608-8011-4a1d-80eb-777d605ac19e" -] -``` - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": null, -    "exceptionMessagesAttributeWise": null, -    "data": null, -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": null, -            "errorCode": null, -            "details": [ -            ], -            "type": 0, -            "message": null, -            "status": 0 -        }, -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": null, -            "errorCode": null, -            "details": [ -            ], -            "type": 0, -            "message": null, -            "status": 0 -        }, -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": null, -            "errorCode": null, -            "details": [ -            ], -            "type": 0, -            "message": null, -            "status": 0 -        } -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/group/getgroup.md b/docs/directorymanager/11.0/apis/group/getgroup.md deleted file mode 100644 index 7d482e7329..0000000000 --- a/docs/directorymanager/11.0/apis/group/getgroup.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: "Get a Group" -description: "Get a Group" -sidebar_position: 70 ---- - -# Get a Group - -This Get Group API retrieves details of a specified group. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Groups/{GroupIdentity} - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -[ -    "displayName", -    "ObjectGuid" -  ] -``` - -#### Sample Response Syntax - -``` -{ -    "groupType": null, -    "attributesBusinessObject": { -        "attributesCollection": { -            "container": [ -                { -                    "attributeCollection": { -                    }, -                    "action": 0, -                    "dn": null, -                    "value": "OU=Groups,DC=demo,DC=local", -                    "identityStoreId": 0 -                } -            ], -            "displayName": [ -                { -                    "attributeCollection": { -                    }, -                    "action": 0, -                    "dn": null, -                    "value": "", -                    "identityStoreId": 0 -                } -            ], -            "objectClass": [ -                { -                    "attributeCollection": { -                    }, -                    "action": 0, -                    "dn": null, -                    "value": "group", -                    "identityStoreId": 0 -                } -            ], -            "name": [ -                { -                    "attributeCollection": { -                    }, -                    "action": 0, -                    "dn": null, -                    "value": "DemoGroup", -                    "identityStoreId": 0 -                } -            ], -            "ObjectGuid": [ -                { -                    "attributeCollection": { -                    }, -                    "action": 0, -                    "dn": null, -                    "value": "6bd67b4a-eb06-4b05-94a8-43914fb2e19a", -                    "identityStoreId": 0 -                } -            ], -            "CN": [ -                { -                    "attributeCollection": { -                    }, -                    "action": 0, -                    "dn": null, -                    "value": "DemoGroup", -                    "identityStoreId": 0 -                } -            ], -            "objectCategory": [ -            ] -        }, -        "type": null, -        "filePermissionCollection": { -        } -    }, -    "hiddenFromAddressListsEnabled": false, -    "objectIdFromIdentityStore": "6bd67b4a-eb06-4b05-94a8-43914fb2e19a", -    "displayName": "DemoGroup", -    "samAccountName": null, -    "isGroupInExludedContainer": false, -    "msExchRequireAuthToSendTo": null, -    "objectType": "group", -    "emailAddress": null, -    "groupScope": null, -    "elasticHitScore": 0.0, -    "objectDisplayName": "DemoGroup", -    "name": null, -    "stopNotification": false, -    "alias": "", -    "objectName": null, -    "groupClassName": null, -    "identityStore": null, -    "dc": null, -    "identityStoreId": 2 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/group/getgroups.md b/docs/directorymanager/11.0/apis/group/getgroups.md deleted file mode 100644 index c98db4e8a9..0000000000 --- a/docs/directorymanager/11.0/apis/group/getgroups.md +++ /dev/null @@ -1,211 +0,0 @@ ---- -title: "Get Groups" -description: "Get Groups" -sidebar_position: 80 ---- - -# Get Groups - -Using this API, you can fetch multiple groups from an identity store. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Groups - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -  "attributes": [ -    "displayname", -    "description" -  ], -  "groupIdentities": [ -    "24bda903-2afd-408a-a55c-c18adcfb543e", -    "124b2528-a08a-41a1-9e8e-b1d5e6434153"     -  ] -} -``` - -#### Sample Response Syntax - -``` -[ -    { -        "groupType": null, -        "attributesBusinessObject": { -            "attributesCollection": { -                "container": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "OU=Groups,DC=demo,DC=local", -                        "identityStoreId": 0 -                    } -                ], -                "displayname": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "", -                        "identityStoreId": 0 -                    } -                ], -                "objectClass": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "group", -                        "identityStoreId": 0 -                    } -                ], -                "name": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "DemoGroup1", -                        "identityStoreId": 0 -                    } -                ], -                "description": [ -                ], -                "CN": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "DemoGroup1", -                        "identityStoreId": 0 -                    } -                ], -                "objectCategory": [ -                ] -            }, -            "type": null, -            "filePermissionCollection": { -            } -        }, -        "hiddenFromAddressListsEnabled": false, -        "objectIdFromIdentityStore": "24bda903-2afd-408a-a55c-c18adcfb543e", -        "displayName": "DemoGroup1", -        "samAccountName": null, -        "isGroupInExludedContainer": false, -        "msExchRequireAuthToSendTo": null, -        "objectType": "group", -        "emailAddress": null, -        "groupScope": null, -        "elasticHitScore": 0.0, -        "objectDisplayName": "DemoGroup1", -        "name": null, -        "stopNotification": false, -        "alias": "", -        "objectName": null, -        "groupClassName": null, -        "identityStore": null, -        "dc": null, -        "identityStoreId": 2 -    }, -    { -        "groupType": null, -        "attributesBusinessObject": { -            "attributesCollection": { -                "container": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "OU=Groups,DC=demo,DC=local", -                        "identityStoreId": 0 -                    } -                ], -                "displayname": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "", -                        "identityStoreId": 0 -                    } -                ], -                "objectClass": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "group", -                        "identityStoreId": 0 -                    } -                ], -                "name": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "DemoGroup2", -                        "identityStoreId": 0 -                    } -                ], -                "description": [ -                ], -                "CN": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "DemoGroup2", -                        "identityStoreId": 0 -                    } -                ], -                "objectCategory": [ -                ] -            }, -            "type": null, -            "filePermissionCollection": { -            } -        }, -        "hiddenFromAddressListsEnabled": false, -        "objectIdFromIdentityStore": "124b2528-a08a-41a1-9e8e-b1d5e6434153", -        "displayName": "DemoGroup2", -        "samAccountName": null, -        "isGroupInExludedContainer": false, -        "msExchRequireAuthToSendTo": null, -        "objectType": "group", -        "emailAddress": null, -        "groupScope": null, -        "elasticHitScore": 0.0, -        "objectDisplayName": "DemoGroup2", -        "name": null, -        "stopNotification": false, -        "alias": "", -        "objectName": null, -        "groupClassName": null, -        "identityStore": null, -        "dc": null, -        "identityStoreId": 2 -    } -] -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) -- [Contact APIs](/docs/directorymanager/11.0/apis/contact/contactapis.md) diff --git a/docs/directorymanager/11.0/apis/group/groupapis.md b/docs/directorymanager/11.0/apis/group/groupapis.md deleted file mode 100644 index b0547595a3..0000000000 --- a/docs/directorymanager/11.0/apis/group/groupapis.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Group APIs" -description: "Group APIs" -sidebar_position: 30 ---- - -# Group APIs - -GroupID provides the following APIs for performing group-specific functions: - -- [Create a Smart Group](/docs/directorymanager/11.0/apis/group/createsmartgroup.md) -- [Create a Static Group](/docs/directorymanager/11.0/apis/group/createstaticgroup.md) -- [Delete a Group](/docs/directorymanager/11.0/apis/group/deletegroup.md) -- [Delete Groups](/docs/directorymanager/11.0/apis/group/deletegroups.md) -- [Expire a Group](/docs/directorymanager/11.0/apis/group/expiregroup.md) -- [Expire Groups](/docs/directorymanager/11.0/apis/group/expiregroups.md) -- [Get a Group](/docs/directorymanager/11.0/apis/group/getgroup.md) -- [Get Groups](/docs/directorymanager/11.0/apis/group/getgroups.md) -- [Join a Group](/docs/directorymanager/11.0/apis/group/joingroup.md) -- [Join a Group on behalf of another user](/docs/directorymanager/11.0/apis/group/joingrouponbehalf.md) -- [Leave a Group](/docs/directorymanager/11.0/apis/group/leavegroup.md) -- [Leave a Group on behalf of another user](/docs/directorymanager/11.0/apis/group/leavegrouponbehalf.md) -- [Get Preview of a Smart Group Membership](/docs/directorymanager/11.0/apis/group/previewmembership.md) -- [Renew a Group](/docs/directorymanager/11.0/apis/group/renewgroup.md) -- [Renew a Group](/docs/directorymanager/11.0/apis/group/renewgroup.md) -- [Update a Group](/docs/directorymanager/11.0/apis/group/updategroup.md) -- [Update Groups](/docs/directorymanager/11.0/apis/group/updategroups.md) -- [Update a Smart Group](/docs/directorymanager/11.0/apis/group/updatesmartgroup.md) -- [Update Smart Groups](/docs/directorymanager/11.0/apis/group/updatesmartgroups.md) - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Get Token](/docs/directorymanager/11.0/apis/gettoken.md) -- [Contact APIs](/docs/directorymanager/11.0/apis/contact/contactapis.md) -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Logs APIs](/docs/directorymanager/11.0/apis/logs/logsapis.md) -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/group/joingroup.md b/docs/directorymanager/11.0/apis/group/joingroup.md deleted file mode 100644 index 1746800f39..0000000000 --- a/docs/directorymanager/11.0/apis/group/joingroup.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: "Join a Group" -description: "Join a Group" -sidebar_position: 90 ---- - -# Join a Group - -Using this API, you can join a group as per the specified membership type. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Groups/{GroupIdentity}/Join - -## HTTP Method - -POST - -#### Sample Request Syntax - -``` -{ -  "IdentityStoreID": 2, -  "ReplicationRequired": true, -  "JoinType": { -    "MembershipType": 1, -    "StartDate": "0001-01-01T00:00:00", -    "EndDate": "0001-01-01T00:00:00", -    "Reason": "test" - } -} -``` - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": null, -    "exceptionMessagesAttributeWise": null, -    "data": null, -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": null, -            "errorCode": null, -            "details": [ -            ], -            "type": 0, -            "message": null, -            "status": 0 -        } -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/group/joingrouponbehalf.md b/docs/directorymanager/11.0/apis/group/joingrouponbehalf.md deleted file mode 100644 index f647e63c05..0000000000 --- a/docs/directorymanager/11.0/apis/group/joingrouponbehalf.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: "Join a Group on behalf of another user" -description: "Join a Group on behalf of another user" -sidebar_position: 100 ---- - -# Join a Group on behalf of another user - -Using this API, you can join the group specified in the endpoint URL on behalf of another user. You -have to specify the identity store where the group exists, the identity of the other user on behalf -of whom you are joining the group, and membership type details. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Groups/{GroupIdentity}/JoinOnBehalf - -## HTTP Method - -POST - -#### Sample Request Syntax - -``` -{ -  "IdentityStoreID": 2, -  "ReplicationRequired": true, -  "joiningUserIdentity": "a79934a7-c6a0-4a1c-8860-f9aeb4788e98", -  "joinType": { -    "MembershipType": 1, -    "StartDate": "0001-01-01T00:00:00", -    "EndDate": "0001-01-01T00:00:00", -    "Reason": "test" -  } -} -``` - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": null, -    "exceptionMessagesAttributeWise": null, -    "data": null, -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": null, -            "errorCode": null, -            "details": [ -            ], -            "type": 0, -            "message": null, -            "status": 0 -        } -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/group/leavegroup.md b/docs/directorymanager/11.0/apis/group/leavegroup.md deleted file mode 100644 index 416e01c70f..0000000000 --- a/docs/directorymanager/11.0/apis/group/leavegroup.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Leave a Group" -description: "Leave a Group" -sidebar_position: 110 ---- - -# Leave a Group - -Using this API, you can leave a group according to the parameters specified in the body, such as -membership type, start date, and end date. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Groups/{GroupIdentity}/Leave - -## HTTP Method - -POST - -#### Sample Request Syntax - -``` -{ -  "IdentityStoreID": 2, -  "ReplicationRequired": true, -  "leaveType": { -    "MembershipType": 1, -    "StartDate": "0001-01-01T00:00:00", -    "EndDate": "0001-01-01T00:00:00", -    "Reason": "test" -  } -} -``` - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": null, -    "exceptionMessagesAttributeWise": null, -    "data": null, -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": null, -            "errorCode": null, -            "details": [ -            ], -            "type": 0, -            "message": null, -            "status": 0 -        } -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/group/leavegrouponbehalf.md b/docs/directorymanager/11.0/apis/group/leavegrouponbehalf.md deleted file mode 100644 index ba04ed0762..0000000000 --- a/docs/directorymanager/11.0/apis/group/leavegrouponbehalf.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: "Leave a Group on behalf of another user" -description: "Leave a Group on behalf of another user" -sidebar_position: 120 ---- - -# Leave a Group on behalf of another user - -Using this API, you can leave a group on behalf of another user. You have to specify the identity -store where the group exists, the identity of the other user on behalf of whom you are leaving the -group, and membership type details. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Groups/{GroupIdentity}/LeaveOnBehalf - -## HTTP Method - -POST - -#### Sample Request Syntax - -``` -{ -  "IdentityStoreID": 2, -  "ReplicationRequired": true, -  "leavingUserId": "a79934a7-c6a0-4a1c-8860-f9aeb4788e98", -  "leaveType": { -    "MembershipType": 1, -    "StartDate": "0001-01-01T00:00:00", -    "EndDate": "0001-01-01T00:00:00", -    "Reason": "test" -  } -} -``` - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": null, -    "exceptionMessagesAttributeWise": null, -    "data": null, -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": null, -            "errorCode": null, -            "details": [ -            ], -            "type": 0, -            "message": null, -            "status": 0 -        } -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/group/previewmembership.md b/docs/directorymanager/11.0/apis/group/previewmembership.md deleted file mode 100644 index be9e450b76..0000000000 --- a/docs/directorymanager/11.0/apis/group/previewmembership.md +++ /dev/null @@ -1,260 +0,0 @@ ---- -title: "Get Preview of a Smart Group Membership" -description: "Get Preview of a Smart Group Membership" -sidebar_position: 130 ---- - -# Get Preview of a Smart Group Membership - -Using this API, you can preview membership changes that will occur in a Smart Group membership as -per the query given in the body. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Groups/SmartGroups/Members?sortOrder=1&pageNo=1&pageSize=2 - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -  "ExtensionDataAttributes": { -    "AttributesCollection": { -      "IMSGObjectTypes": [ -        { -          "IdentityStoreId": 0, -          "Value": "6", -          "DN": null, -          "Action": 1, -          "AttributeCollection": { -          } -        } -      ], -      "IMSGCriteria": [ -        { -          "IdentityStoreId": 0, -          "Value": "(department contains \"eng\"", -          "DN": null, -          "Action": 1, -          "AttributeCollection": { -          } -        } -      ], -      "IMSGStartPath": [ -        { -          "IdentityStoreId": 0, -          "Value": "GC=DC.demo.local", -          "DN": null, -          "Action": 1, -          "AttributeCollection": { -            "Scope": "2" -          } -        } -      ] -    } -  }, -  "AttributesToLoad": [ -    "displayName", -    "description", -    "IMSGManagedGroupType", -    "isdisabled", -    "ismailbox" -  ] -} -``` - -#### Sample Response Syntax - -``` -{ -  "total": 5528, -  "data": [ -    { -      "attributesBusinessObject": { -        "attributesCollection": { -          "container": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "CN=Users,DC=demo,DC=local", -              "identityStoreId": 0 -            } -          ], -          "isdisabled": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "True", -              "identityStoreId": 0 -            } -          ], -          "displayName": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "", -              "identityStoreId": 0 -            } -          ], -          "IMSGManagedGroupType": [ -          ], -          "objectClass": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "user", -              "identityStoreId": 0 -            } -          ], -          "name": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "DefaultAccount", -              "identityStoreId": 0 -            } -          ], -          "description": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "A user account managed by the system.", -              "identityStoreId": 0 -            } -          ], -          "ismailbox": [ -          ], -          "CN": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "DefaultAccount", -              "identityStoreId": 0 -            } -          ], -          "objectCategory": [ -          ] -        }, -        "type": null, -        "filePermissionCollection": { -        } -      }, -      "objectIdFromIdentityStore": "75c037f8-83ea-4036-86ff-e5c23af839a0", -      "elasticHitScore": 1.0, -      "objectDisplayName": "DefaultAccount", -      "stopNotification": false, -      "objectName": null, -      "identityStore": null, -      "identityStoreId": 2, -      "objectType": "user" -    }, -    { -      "attributesBusinessObject": { -        "attributesCollection": { -          "container": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "CN=Users,DC=demo,DC=local", -              "identityStoreId": 0 -            } -          ], -          "isdisabled": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "True", -              "identityStoreId": 0 -            } -          ], -          "displayName": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "", -              "identityStoreId": 0 -            } -          ], -          "IMSGManagedGroupType": [ -          ], -          "objectClass": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "user", -              "identityStoreId": 0 -            } -          ], -          "name": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "Exchange Online-ApplicationAccount", -              "identityStoreId": 0 -            } -          ], -          "description": [ -          ], -          "ismailbox": [ -          ], -          "CN": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "Exchange Online-ApplicationAccount", -              "identityStoreId": 0 -            } -          ], -          "objectCategory": [ -          ] -        }, -        "type": null, -        "filePermissionCollection": { -        } -      }, -      "objectIdFromIdentityStore": "2b1b1353-cd78-4e76-b372-7debbd71229f", -      "elasticHitScore": 1.0, -      "objectDisplayName": "Exchange Online-ApplicationAccount", -      "stopNotification": false, -      "objectName": null, -      "identityStore": null, -      "identityStoreId": 2, -      "objectType": "user" -    } -  ] -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/group/renewgroup.md b/docs/directorymanager/11.0/apis/group/renewgroup.md deleted file mode 100644 index 86547aa0c5..0000000000 --- a/docs/directorymanager/11.0/apis/group/renewgroup.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Renew a Group" -description: "Renew a Group" -sidebar_position: 140 ---- - -# Renew a Group - -It renews a group, identity of which is provided in the endpoint URL. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identityStoreId}/Groups/{groupIdentity}/Renew?ReplicationRequired=true - -## HTTP Method - -POST - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": null, -    "exceptionMessagesAttributeWise": null, -    "data": null, -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/group/renewgroups.md b/docs/directorymanager/11.0/apis/group/renewgroups.md deleted file mode 100644 index 96413c1e13..0000000000 --- a/docs/directorymanager/11.0/apis/group/renewgroups.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: "Renew Groups" -description: "Renew Groups" -sidebar_position: 150 ---- - -# Renew Groups - -This API renews multiple groups, identities of which are provided in the request body. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identityStoreId}/Groups/Renew - -## HTTP Method - -POST - -#### Sample Request Syntax - -``` -[ -"eef9c2ae-32db-401b-b844-6ea6e5f21307", -"8b13bcc7-c51a-4840-a9f5-f1c03bba85d4", -"4ba9f608-8011-4a1d-80eb-777d605ac19e" -] -``` - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": null, -    "exceptionMessagesAttributeWise": null, -    "data": null, -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": null, -            "errorCode": null, -            "details": [ -            ], -            "type": 0, -            "message": null, -            "status": 0 -        }, -        null, -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": null, -            "errorCode": null, -            "details": [ -            ], -            "type": 0, -            "message": null, -            "status": 0 -        }, -        null, -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": null, -            "errorCode": null, -            "details": [ -            ], -            "type": 0, -            "message": null, -            "status": 0 -        }, -        null -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/group/updategroup.md b/docs/directorymanager/11.0/apis/group/updategroup.md deleted file mode 100644 index f76d2cf528..0000000000 --- a/docs/directorymanager/11.0/apis/group/updategroup.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: "Update a Group" -description: "Update a Group" -sidebar_position: 160 ---- - -# Update a Group - -Using this API, you can update a group's details. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identityStoreId}/Groups/{groupIdentity} - -## HTTP Method - -PATCH - -#### Sample Request Syntax - -``` -{ -  "AttributesCollection": { -    "AttributesCollection": { -      "description": [ -        { -          "Value": "Its a demo group!", -          "Action": 0 -        } -      ], -      "company": [ -        { -          "Value": "Imanami - Now part of Netwrix", -          "Action": 0 -        } -      ] -    } -  } -} -``` - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": null, -    "exceptionMessagesAttributeWise": null, -    "data": null, -    "identityStoreObject": null, -    "name": "6bd67b4a-eb06-4b05-94a8-43914fb2e19a", -    "errorCode": null, -    "details": [ -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": "description", -            "errorCode": null, -            "details": [ -            ], -            "type": 8, -            "message": null, -            "status": 0 -        }, -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": "company", -            "errorCode": null, -            "details": [ -            ], -            "type": 8, -            "message": null, -            "status": 0 -        }, -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": "IMSGManagedGroupType", -            "errorCode": null, -            "details": [ -            ], -            "type": 8, -            "message": null, -            "status": 0 -        } -    ], -    "type": 8, -    "message": null, -    "status": 0 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/group/updategroups.md b/docs/directorymanager/11.0/apis/group/updategroups.md deleted file mode 100644 index b8aaef2fce..0000000000 --- a/docs/directorymanager/11.0/apis/group/updategroups.md +++ /dev/null @@ -1,153 +0,0 @@ ---- -title: "Update Groups" -description: "Update Groups" -sidebar_position: 170 ---- - -# Update Groups - -Using this API, you can update multiple groups. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Groups/ - -## HTTP Method - -PATCH - -#### Sample Request Syntax - -``` -[ -  { -    "objectIdFromIdentityStore": "24bda903-2afd-408a-a55c-c18adcfb543e", -    "identityStoreId": 2, -    "attributesBusinessObject": { -      "attributesCollection": { -        "description": [ -          { -            "identityStoreId": 2, -            "value": "This is DemoGroup1 description" -          } -        ] -      } -    } -  }, -  { -    "objectIdFromIdentityStore": "124b2528-a08a-41a1-9e8e-b1d5e6434153", -    "identityStoreId": 2, -    "attributesBusinessObject": { -      "attributesCollection": { -        "description": [ -          { -            "identityStoreId": 2, -            "value": "This is DemoGroup2 description" -          } -        ] -      } -    } -  } -] -``` - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": null, -    "exceptionMessagesAttributeWise": null, -    "data": null, -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": "24bda903-2afd-408a-a55c-c18adcfb543e", -            "errorCode": null, -            "details": [ -                { -                    "currentDirectoryServer": null, -                    "exceptionMessagesAttributeWise": null, -                    "data": null, -                    "identityStoreObject": null, -                    "name": "description", -                    "errorCode": null, -                    "details": [ -                    ], -                    "type": 8, -                    "message": null, -                    "status": 0 -                }, -                { -                    "currentDirectoryServer": null, -                    "exceptionMessagesAttributeWise": null, -                    "data": null, -                    "identityStoreObject": null, -                    "name": "IMSGManagedGroupType", -                    "errorCode": null, -                    "details": [ -                    ], -                    "type": 8, -                    "message": null, -                    "status": 0 -                } -            ], -            "type": 8, -            "message": null, -            "status": 0 -        }, -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": null, -            "identityStoreObject": null, -            "name": "124b2528-a08a-41a1-9e8e-b1d5e6434153", -            "errorCode": null, -            "details": [ -                { -                    "currentDirectoryServer": null, -                    "exceptionMessagesAttributeWise": null, -                    "data": null, -                    "identityStoreObject": null, -                    "name": "description", -                    "errorCode": null, -                    "details": [ -                    ], -                    "type": 8, -                    "message": null, -                    "status": 0 -                }, -                { -                    "currentDirectoryServer": null, -                    "exceptionMessagesAttributeWise": null, -                    "data": null, -                    "identityStoreObject": null, -                    "name": "IMSGManagedGroupType", -                    "errorCode": null, -                    "details": [ -                    ], -                    "type": 8, -                    "message": null, -                    "status": 0 -                } -            ], -            "type": 8, -            "message": null, -            "status": 0 -        } -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/group/updatesmartgroup.md b/docs/directorymanager/11.0/apis/group/updatesmartgroup.md deleted file mode 100644 index 40af47448e..0000000000 --- a/docs/directorymanager/11.0/apis/group/updatesmartgroup.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Update a Smart Group" -description: "Update a Smart Group" -sidebar_position: 180 ---- - -# Update a Smart Group - -This API updates a Smart Group, identity of which is provided in the endpoint URL. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identityStoreId}/Groups/SmartGroups/{GroupIdentity}/Update - -## HTTP Method - -POST - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": null, -    "exceptionMessagesAttributeWise": null, -    "data": 4, -    "identityStoreObject": null, -    "name": "b3529c0e-e62e-44d7-ba1e-b89f610bd186", -    "errorCode": null, -    "details": [ -    ], -    "type": 8, -    "message": null, -    "status": 0 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/group/updatesmartgroups.md b/docs/directorymanager/11.0/apis/group/updatesmartgroups.md deleted file mode 100644 index 472b5d581c..0000000000 --- a/docs/directorymanager/11.0/apis/group/updatesmartgroups.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: "Update Smart Groups" -description: "Update Smart Groups" -sidebar_position: 190 ---- - -# Update Smart Groups - -This API updates multiple Smart Groups whose identities are provided in the request body. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identityStoreId}/Groups/SmartGroups/Update - -## HTTP Method - -POST - -#### Sample Request Syntax - -``` -[ -  "9ba5dc8f-bdf0-4cc8-bc53-5012e94508c8", -  "424eea5a-7781-4c46-851f-28348b597a72" -] -``` - -#### Sample Response Syntax - -``` -{ -    "clientID": "b3529c0e-e62e-44d7-ba1e-b89f610bd186", -    "details": [ -        { -            "groupID": "9ba5dc8f-bdf0-4cc8-bc53-5012e94508c8", -            "message": null, -            "taskID": 8, -            "status": 0 -        }, -        { -            "groupID": "424eea5a-7781-4c46-851f-28348b597a72", -            "message": null, -            "taskID": 9, -            "status": 0 -        } -    ], -    "message": null, -    "status": 0 -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) diff --git a/docs/directorymanager/11.0/apis/jobs/_category_.json b/docs/directorymanager/11.0/apis/jobs/_category_.json deleted file mode 100644 index b3fe380e98..0000000000 --- a/docs/directorymanager/11.0/apis/jobs/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Synchronize Jobs APIs", - "position": 50, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "jobsapis" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/apis/jobs/createjob.md b/docs/directorymanager/11.0/apis/jobs/createjob.md deleted file mode 100644 index 44588912e1..0000000000 --- a/docs/directorymanager/11.0/apis/jobs/createjob.md +++ /dev/null @@ -1,403 +0,0 @@ ---- -title: "Create a New Job" -description: "Create a New Job" -sidebar_position: 10 ---- - -# Create a New Job - -Use this API to create a new Synchronize job which is a set of sequential commands that run in the -background to move data from one data source to another data source. - -See the [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) topic -for more information about creating a job. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSyncJobs - -## HTTP Method - -POST - -#### Sample Request Syntax - -``` -{ -    "isTemplate": false, -    "jobInfo": { -        "jobId": 0, -        "templateId": null, -        "jobGuid": null, -        "name": "DataSyncJob", -        "type": 1, -        "description": "DataSyncJob", -        "sourceProvider": "ExcelOne", -        "destinationProvider": "ADEnt", -        "lastRun": null, -        "lastOutCome": "None", -        "lastOutComeDisplayText": null, -        "nextRun": null, -        "timesRun": 0, -        "created": "2024-06-04T09:45:25.373Z", -        "modified": null, -        "schedule": "", -        "smartgroupSchedule": "", -        "enabled": false, -        "onFailure": "Abort", -        "runOrder": 0, -        "isEnable": true, -        "action": 0, -        "collectionId": null, -        "scheduledTask": null -    }, -    "fieldsMap": [ -        { -            "action": 0, -            "sourceField": "", -            "destinationField": "cn", -            "id": 61, -            "delimiter": "", -            "transform": "Join:field=First;separator=_api_;field=Last", -            "forCreateOnly": true, -            "objectType": 1, -            "isKey": false, -            "options": null -        }, -        { -            "action": 0, -            "sourceField": "First", -            "destinationField": "givenName", -            "id": 62, -            "delimiter": "", -            "transform": "", -            "forCreateOnly": true, -            "objectType": 1, -            "isKey": false, -            "options": null -        }, -        { -            "action": 0, -            "sourceField": "", -            "destinationField": "sAMAccountName", -            "id": 63, -            "delimiter": "", -            "transform": "Join:field=First;separator=_api_;field=Last", -            "forCreateOnly": true, -            "objectType": 1, -            "isKey": true, -            "options": null -        }, -        { -            "action": 0, -            "sourceField": "Last", -            "destinationField": "sn", -            "id": 64, -            "delimiter": "", -            "transform": "", -            "forCreateOnly": true, -            "objectType": 1, -            "isKey": false, -            "options": null -        }, -        { -            "action": 0, -            "sourceField": "", -            "destinationField": "password", -            "id": 65, -            "delimiter": "", -            "transform": "Static:value=webdir123R", -            "forCreateOnly": true, -            "objectType": 1, -            "isKey": false, -            "options": "{\"passwordLength\":7,\"includeUppercaseAlphabets\":true,\"includeLowercaseAlphabets\":true,\"includeDigits\":true,\"includeSpecialSymbols\":false,\"specialSymbols\":\"%^&*(\",\"excludeSimilarSymbols\":false,\"managerNotification\":false,\"passwordType\":0}" -        } -    ], -    "objectsOption": [ -        { -            "objectType": 1, -            "id": 0, -            "jobId": 0, -            "isCreate": true, -            "displayName": "User", -            "isDelete": false, -            "isSelected": true, -            "containerOption": "1", -            "containerOptionValue": "OU=API,DC=groupid,DC=lab", -            "createObjectContainerStrategy": 1, -            "isDeprovisioning": false, -            "objectTypeSettings": null, -            "action": 0 -        } -    ], -    "syncQuery": [ -        { -            "action": 0, -            "id": 0, -            "queryFor": null, -            "objectType": 1, -            "query": "SELECT * FROM [TTSheet1$]", -            "queryType": "SQL", -            "isSource": true, -            "timeStampField": "", -            "updateAll": true -        }, -        { -            "action": 0, -            "id": 0, -            "queryFor": null, -            "objectType": 1, -            "query": "objectClass is exactly \"user\"", -            "queryType": "GroupID", -            "isSource": false, -            "timeStampField": null, -            "updateAll": false -        } -    ], -    "settings": [ -        { -            "action": 0, -            "id": 0, -            "key": "Source.Type", -            "value": "4", -            "dataType": "System.Int32", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "SourceProvider", -            "value": "4", -            "dataType": "System.Int32", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "JobOwners", -            "value": "Administrator#b9989fd7-bdbf-41cb-9aa4-eca35a329682", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "JobOwnerIds", -            "value": "b9989fd7-bdbf-41cb-9aa4-eca35a329682", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Source.ProviderName", -            "value": "Microsoft Excel", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Source.Provider", -            "value": "4", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Source.ProviderType", -            "value": "2", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Source.IsDirectoryProvider", -            "value": "False", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Source.IsTableProvider", -            "value": "True", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Source.Table", -            "value": "TTSheet1", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Destination.Type", -            "value": "24", -            "dataType": "System.Int32", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "DestinationProvider", -            "value": "24", -            "dataType": "System.Int32", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Destination.ProviderName", -            "value": "Active Directory", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Destination.Provider", -            "value": "24", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Destination.Type", -            "value": "24", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Destination.ProviderType", -            "value": "1", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Destination.IsDirectoryProvider", -            "value": "True", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Destination.IsTableProvider", -            "value": "False", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Destination.ChangeServiceAccount", -            "value": "", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Destination.ContainerDetails", -            "value": "{\r\n  \"id\": \"efc6ad49-9091-47f4-91f0-0e033177e87e\",\r\n  \"name\": \"API\",\r\n  \"children\": [],\r\n  \"parentId\": \"8ce5599b-5589-487d-aff8-bb5ffd073e5d\",\r\n  \"showChildren\": false,\r\n  \"hasChildren\": false,\r\n  \"nodeType\": \"Container\",\r\n  \"DistinguishedName\": \"OU=API,DC=groupid,DC=lab\",\r\n  \"IdFromIdentityStore\": \"efc6ad49-9091-47f4-91f0-0e033177e87e\",\r\n  \"DisplayName\": \"API\",\r\n  \"isSelected\": true,\r\n  \"isFocused\": true\r\n}", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Destination.ShouldIncludeSubTree", -            "value": "True", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Destination.Container", -            "value": "OU=API,DC=groupid,DC=lab", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Destination.ScriptingLanguage", -            "value": "0", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "Destination.ExposedScriptCode", -            "value": "Option Strict Off\r\n\r\nImports System\r\nImports System.Text\r\nImports System.Text.RegularExpressions\r\nImports System.IO\r\nImports System.Math\r\nImports Microsoft.VisualBasic\r\nImports Imanami.DataSyncServices.Scripting\r\n\r\nModule ImanamiExposedCode\r\n\r\n#Region \"Imanami Generated Code\"\r\n'<--- PowerTool Instance Definitions --->\t\r\n#End Region\r\n\r\n#Region \" User-definable code \"\r\n    Sub DTM_Startup(ByVal dtmsource As Object, ByVal args As EventArgs) Handles DTM.Startup\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_BuildSourceQuery(ByVal dtmsource As Object, ByVal args As QueryEventArgs) Handles DTM.BuildSourceQuery\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowStarting(ByVal dtmsource As Object, ByVal args As EventArgs) Handles DTM.RowStarting\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n\r\n    Sub DTM_BuildDestinationQuery(ByVal dtmsource As Object, ByVal args As QueryEventArgs) Handles DTM.BuildDestinationQuery\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowChanging(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowChanging\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowChanged(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowChanged\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowAdding(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowAdding\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowAdded(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowAdded\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowDeleting(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowDeleting\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowDeleted(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowDeleted\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowFinishing(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowFinishing\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowFinished(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowFinished\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowFailed(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowFailed\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_Shutdown(ByVal dtmsource As Object, ByVal args As EventArgs) Handles DTM.Shutdown\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n#End Region\r\n\r\nend Module ' ImanamiExposedCode\r\n", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "IsNotificationEnabled", -            "value": "False", -            "dataType": "System.Boolean", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "ScheduledTask", -            "value": "", -            "dataType": "System.String", -            "objectType": null -        }, -        { -            "action": 0, -            "id": 0, -            "key": "SmartGroupScheduleTask", -            "value": "", -            "dataType": "System.String", -            "objectType": null -        } -    ], -    "delimiterSchema": null, -    "sourceSchema": null, -    "destinationSchema": null, -    "hasAccess": true -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": 16, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) diff --git a/docs/directorymanager/11.0/apis/jobs/createnewjobcollection.md b/docs/directorymanager/11.0/apis/jobs/createnewjobcollection.md deleted file mode 100644 index dc51eed63c..0000000000 --- a/docs/directorymanager/11.0/apis/jobs/createnewjobcollection.md +++ /dev/null @@ -1,458 +0,0 @@ ---- -title: "Create a New Job Collection" -description: "Create a New Job Collection" -sidebar_position: 20 ---- - -# Create a New Job Collection - -Using this API you can create a new job collection which is a group of individual jobs that run in a -particular order. - -See the -[Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md)topic -for additional information on the Job collection. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSyncJobs/Collections - -## HTTP Method - -POST - -#### Sample Request Syntax - -``` -{ -    "isTemplate": false, -    "description": null, -    "isNotificationEnabled": false, -    "notificationSendIndividualEmail": false, -    "notifyWhen": 3, -    "notificationRecipients": "", -    "jobCollectionInfo": { -        "id": 0, -        "jobCollectionGuid": "", -        "name": "TestCollection", -        "description": "TestCollection", -        "totalJobs": 0, -        "timesRun": 0, -        "lastRunDate": null, -        "lastOutCome": "None", -        "lastOutComeDisplayText": null, -        "nextRun": null, -        "created": "2024-06-04T10:46:33.13Z", -        "modified": "2024-06-04T10:45:47Z", -        "schedule": "0", -        "smartgroupSchedule": null, -        "enabled": false, -        "jobs": [ -            { -                "jobId": 0, -                "templateId": null, -                "jobGuid": null, -                "name": "Sync_API", -                "type": 2, -                "description": "Sync_API", -                "sourceProvider": "ExcelOne", -                "destinationProvider": "ADEnt", -                "lastRun": null, -                "lastOutCome": "None", -                "lastOutComeDisplayText": null, -                "nextRun": null, -                "timesRun": 0, -                "created": "2024-06-04T10:46:33.13Z", -                "modified": null, -                "schedule": "", -                "smartgroupSchedule": null, -                "enabled": true, -                "onFailure": "Abort", -                "runOrder": 1, -                "isEnable": true, -                "action": 0, -                "collectionId": null, -                "scheduledTask": null -            } -        ] -    }, -    "jobs": [ -        { -            "isTemplate": false, -            "jobInfo": { -                "jobId": 0, -                "templateId": null, -                "jobGuid": null, -                "name": "Sync_API", -                "type": 2, -                "description": "Sync_API", -                "sourceProvider": "ExcelOne", -                "destinationProvider": "ADEnt", -                "lastRun": null, -                "lastOutCome": "None", -                "lastOutComeDisplayText": null, -                "nextRun": null, -                "timesRun": 0, -                "created": "2024-06-04T10:46:33.13Z", -                "modified": null, -                "schedule": "", -                "smartgroupSchedule": "", -                "enabled": false, -                "onFailure": "Abort", -                "runOrder": 1, -                "isEnable": true, -                "action": 0, -                "collectionId": 0, -                "scheduledTask": null -            }, -            "fieldsMap": [ -                { -                    "action": 0, -                    "sourceField": "", -                    "destinationField": "cn", -                    "id": 0, -                    "delimiter": "", -                    "transform": "Join:field=First;separator=_api_;field=Last", -                    "forCreateOnly": true, -                    "objectType": 1, -                    "isKey": false, -                    "options": null -                }, -                { -                    "action": 0, -                    "sourceField": "First", -                    "destinationField": "givenName", -                    "id": 0, -                    "delimiter": "", -                    "transform": "", -                    "forCreateOnly": true, -                    "objectType": 1, -                    "isKey": false, -                    "options": null -                }, -                { -                    "action": 0, -                    "sourceField": "", -                    "destinationField": "sAMAccountName", -                    "id": 0, -                    "delimiter": "", -                    "transform": "Join:field=First;separator=_api_;field=Last", -                    "forCreateOnly": true, -                    "objectType": 1, -                    "isKey": true, -                    "options": null -                }, -                { -                    "action": 0, -                    "sourceField": "Last", -                    "destinationField": "sn", -                    "id": 0, -                    "delimiter": "", -                    "transform": "", -                    "forCreateOnly": true, -                    "objectType": 1, -                    "isKey": false, -                    "options": null -                }, -                { -                    "action": 0, -                    "sourceField": "", -                    "destinationField": "password", -                    "id": 0, -                    "delimiter": "", -                    "transform": "Static:value=webdir123R", -                    "forCreateOnly": true, -                    "objectType": 1, -                    "isKey": false, -                    "options": "{\"passwordLength\":7,\"includeUppercaseAlphabets\":true,\"includeLowercaseAlphabets\":true,\"includeDigits\":true,\"includeSpecialSymbols\":false,\"specialSymbols\":\"%^&*(\",\"excludeSimilarSymbols\":false,\"managerNotification\":false,\"passwordType\":0}" -                } -            ], -            "objectsOption": [ -                { -                    "objectType": 1, -                    "id": 0, -                    "jobId": 0, -                    "isCreate": true, -                    "displayName": "User", -                    "isDelete": false, -                    "isSelected": true, -                    "containerOption": "1", -                    "containerOptionValue": "OU=API,DC=groupid,DC=lab", -                    "createObjectContainerStrategy": 1, -                    "isDeprovisioning": false, -                    "objectTypeSettings": null, -                    "action": 0 -                } -            ], -            "syncQuery": [ -                { -                    "action": 0, -                    "id": 0, -                    "queryFor": null, -                    "objectType": 1, -                    "query": "SELECT * FROM [TTSheet1$]", -                    "queryType": "SQL", -                    "isSource": true, -                    "timeStampField": "", -                    "updateAll": true -                }, -                { -                    "action": 0, -                    "id": 0, -                    "queryFor": null, -                    "objectType": 1, -                    "query": "objectClass is exactly \"user\"", -                    "queryType": "GroupID", -                    "isSource": false, -                    "timeStampField": null, -                    "updateAll": false -                } -            ], -            "settings": [ -                { -                    "action": 0, -                    "id": 0, -                    "key": "Source.Type", -                    "value": "4", -                    "dataType": "System.Int32", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "SourceProvider", -                    "value": "4", -                    "dataType": "System.Int32", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "JobOwners", -                    "value": "Administrator#b9989fd7-bdbf-41cb-9aa4-eca35a329682", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "JobOwnerIds", -                    "value": "b9989fd7-bdbf-41cb-9aa4-eca35a329682", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Source.Provider", -                    "value": "4", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Source.ProviderName", -                    "value": "Microsoft Excel", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Source.ProviderType", -                    "value": "2", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Source.IsDirectoryProvider", -                    "value": "False", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Source.IsTableProvider", -                    "value": "True", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Source.Table", -                    "value": "TTSheet1", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Destination.Type", -                    "value": "24", -                    "dataType": "System.Int32", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "DestinationProvider", -                    "value": "24", -                    "dataType": "System.Int32", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Destination.Type", -                    "value": "24", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Destination.Provider", -                    "value": "24", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Destination.ProviderName", -                    "value": "Active Directory", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Destination.ProviderType", -                    "value": "1", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Destination.IsDirectoryProvider", -                    "value": "True", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Destination.IsTableProvider", -                    "value": "False", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Destination.ChangeServiceAccount", -                    "value": "", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Destination.ContainerDetails", -                    "value": "{\r\n  \"id\": \"efc6ad49-9091-47f4-91f0-0e033177e87e\",\r\n  \"name\": \"API\",\r\n  \"children\": [],\r\n  \"parentId\": \"8ce5599b-5589-487d-aff8-bb5ffd073e5d\",\r\n  \"showChildren\": false,\r\n  \"hasChildren\": false,\r\n  \"nodeType\": \"Container\",\r\n  \"DistinguishedName\": \"OU=API,DC=groupid,DC=lab\",\r\n  \"IdFromIdentityStore\": \"efc6ad49-9091-47f4-91f0-0e033177e87e\",\r\n  \"DisplayName\": \"API\",\r\n  \"isSelected\": true,\r\n  \"isFocused\": true\r\n}", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Destination.ShouldIncludeSubTree", -                    "value": "True", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Destination.Container", -                    "value": "OU=API,DC=groupid,DC=lab", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Destination.ScriptingLanguage", -                    "value": "0", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "Destination.ExposedScriptCode", -                    "value": "Option Strict Off\r\n\r\nImports System\r\nImports System.Text\r\nImports System.Text.RegularExpressions\r\nImports System.IO\r\nImports System.Math\r\nImports Microsoft.VisualBasic\r\nImports Imanami.DataSyncServices.Scripting\r\n\r\nModule ImanamiExposedCode\r\n\r\n#Region \"Imanami Generated Code\"\r\n'<--- PowerTool Instance Definitions --->\t\r\n#End Region\r\n\r\n#Region \" User-definable code \"\r\n    Sub DTM_Startup(ByVal dtmsource As Object, ByVal args As EventArgs) Handles DTM.Startup\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_BuildSourceQuery(ByVal dtmsource As Object, ByVal args As QueryEventArgs) Handles DTM.BuildSourceQuery\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowStarting(ByVal dtmsource As Object, ByVal args As EventArgs) Handles DTM.RowStarting\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n\r\n    Sub DTM_BuildDestinationQuery(ByVal dtmsource As Object, ByVal args As QueryEventArgs) Handles DTM.BuildDestinationQuery\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowChanging(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowChanging\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowChanged(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowChanged\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowAdding(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowAdding\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowAdded(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowAdded\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowDeleting(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowDeleting\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowDeleted(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowDeleted\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowFinishing(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowFinishing\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowFinished(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowFinished\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowFailed(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowFailed\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_Shutdown(ByVal dtmsource As Object, ByVal args As EventArgs) Handles DTM.Shutdown\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n#End Region\r\n\r\nend Module ' ImanamiExposedCode\r\n", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "IsNotificationEnabled", -                    "value": "False", -                    "dataType": "System.Boolean", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "ScheduledTask", -                    "value": "", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 0, -                    "key": "SmartGroupScheduleTask", -                    "value": "", -                    "dataType": "System.String", -                    "objectType": null -                } -            ], -            "hasAccess": false -        } -    ], -    "totalJobs": 0, -    "hasAccess": false -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": 21, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) diff --git a/docs/directorymanager/11.0/apis/jobs/deletejob.md b/docs/directorymanager/11.0/apis/jobs/deletejob.md deleted file mode 100644 index 94e4e44968..0000000000 --- a/docs/directorymanager/11.0/apis/jobs/deletejob.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "Delete Jobs" -description: "Delete Jobs" -sidebar_position: 30 ---- - -# Delete Jobs - -After creating job, you can modify a job or even delete a job if it is no more required. Use this -API to delete job(s) specified in the end point URL. - -See the -[Deleting a Job](/docs/directorymanager/11.0/welcome/synchronize/manage/job.md#deleting-a-job) -section of the [Manage a Job](/docs/directorymanager/11.0/welcome/synchronize/manage/job.md) -topic for additional information. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSyncJobs?jobids=1&jobids=2 - -## HTTP Method - -DELETE - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 7, -    "status": 0, -    "message": null, -    "data": null, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) diff --git a/docs/directorymanager/11.0/apis/jobs/deletejobcollections.md b/docs/directorymanager/11.0/apis/jobs/deletejobcollections.md deleted file mode 100644 index a082ea8f35..0000000000 --- a/docs/directorymanager/11.0/apis/jobs/deletejobcollections.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "Delete Job Collections" -description: "Delete Job Collections" -sidebar_position: 40 ---- - -# Delete Job Collections - -Use this API to delete job collections specified in the end point URL. - -See the -[Delete a Job Collection](/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollection.md#delete-a-job-collection) -section of the -[Manage a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollection.md) -topic for additional information on job collection. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSyncJobs/Collections?jobids=1&jobids=2 - -## HTTP Method - -DELETE - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 7, -    "status": 0, -    "message": null, -    "data": null, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) diff --git a/docs/directorymanager/11.0/apis/jobs/getcollectionsdetails.md b/docs/directorymanager/11.0/apis/jobs/getcollectionsdetails.md deleted file mode 100644 index 353f35ac2b..0000000000 --- a/docs/directorymanager/11.0/apis/jobs/getcollectionsdetails.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: "Get Job Collections Details" -description: "Get Job Collections Details" -sidebar_position: 50 ---- - -# Get Job Collections Details - -Use this API to retrieve information about jobs within a job collection based on the criteria -provided in the request syntax. - -See the -[Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md)for -additional information on Job Collections. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSyncJobs/Collections/Details - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -    "filters": { -        "Operator": "is exactly", -        "Attribute": "Name", -        "Value": "TestCollection", -        "ValueType": 0, -        "ValueTypes": [], -        "DonotEscapeValue": false, -        "Child": null -    }, -    "SearchOption": { -        "PageSize": 10, -        "PageIndex": 1, -        "SortColumnName": "modified", -        "SortOrder": 1 -    }, -    "jobCollectionId": 21 -} -``` - -#### Sample Response Syntax - -``` -{ -    "count": 2, -    "data": [ -        { -            "jobId": 17, -            "templateId": null, -            "jobGuid": null, -            "name": "Sync_API", -            "type": 2, -            "description": "Sync_API", -            "sourceProvider": "ExcelOne", -            "destinationProvider": "ADEnt", -            "lastRun": null, -            "lastOutCome": "None", -            "lastOutComeDisplayText": null, -            "nextRun": null, -            "timesRun": 0, -            "created": "2024-06-05T07:42:45.18Z", -            "modified": null, -            "schedule": "", -            "smartgroupSchedule": null, -            "enabled": true, -            "onFailure": "Abort", -            "runOrder": 1, -            "isEnable": true, -            "action": 0, -            "collectionId": null, -            "scheduledTask": null -        }, -        { -            "jobId": 18, -            "templateId": null, -            "jobGuid": null, -            "name": "NewJob", -            "type": 2, -            "description": "NewJob", -            "sourceProvider": "AdStore", -            "destinationProvider": "Azure", -            "lastRun": null, -            "lastOutCome": "None", -            "lastOutComeDisplayText": null, -            "nextRun": null, -            "timesRun": 0, -            "created": "2024-06-05T08:04:14.413Z", -            "modified": null, -            "schedule": "", -            "smartgroupSchedule": null, -            "enabled": true, -            "onFailure": "Abort", -            "runOrder": 2, -            "isEnable": true, -            "action": 0, -            "collectionId": null, -            "scheduledTask": null -        } -    ], -    "status": 0, -    "message": null -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) diff --git a/docs/directorymanager/11.0/apis/jobs/getjcdetailsbyjcid.md b/docs/directorymanager/11.0/apis/jobs/getjcdetailsbyjcid.md deleted file mode 100644 index 1132f767dc..0000000000 --- a/docs/directorymanager/11.0/apis/jobs/getjcdetailsbyjcid.md +++ /dev/null @@ -1,639 +0,0 @@ ---- -title: "Get Job Collection Details By Job Collection ID" -description: "Get Job Collection Details By Job Collection ID" -sidebar_position: 60 ---- - -# Get Job Collection Details By Job Collection ID - -Using this API you can retrieve information about a job collection ID of which is given in the -endpoint URL. - -See the -[Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md)topic -for additional information. - -## Endpoint - -`https://demomachine:4443/GroupIDDataService/api/DataSyncJobs/Collections/{jobCollectionId}/Details` - -## HTTP Method - -GET - -#### Sample Response Syntax - -```json -{ -    "count": 2, -    "data": { -        "isTemplate": false, -        "description": null, -        "isNotificationEnabled": false, -        "notificationSendIndividualEmail": false, -        "notifyWhen": 3, -        "notificationRecipients": "", -        "jobCollectionInfo": { -            "id": 1, -            "jobCollectionGuid": "", -            "name": "DataSync_API", -            "description": "DataSync_API", -            "totalJobs": 0, -            "timesRun": 0, -            "lastRunDate": null, -            "lastOutCome": "None", -            "lastOutComeDisplayText": null, -            "nextRun": null, -            "created": "2024-06-04T10:08:43.887Z", -            "modified": "2024-06-04T10:08:24Z", -            "schedule": "0", -            "smartgroupSchedule": null, -            "enabled": false, -            "jobs": [ -                { -                    "jobId": 7, -                    "templateId": null, -                    "jobGuid": null, -                    "name": "NewJob", -                    "type": 2, -                    "description": "NewJob", -                    "sourceProvider": "AdStore", -                    "destinationProvider": "Azure", -                    "lastRun": null, -                    "lastOutCome": "None", -                    "lastOutComeDisplayText": null, -                    "nextRun": null, -                    "timesRun": 0, -                    "created": "2024-06-04T10:08:43.89Z", -                    "modified": null, -                    "schedule": "", -                    "smartgroupSchedule": null, -                    "enabled": true, -                    "onFailure": "Abort", -                    "runOrder": 1, -                    "isEnable": true, -                    "action": 0, -                    "collectionId": null, -                    "scheduledTask": null -                }, -                { -                    "jobId": 8, -                    "templateId": null, -                    "jobGuid": null, -                    "name": "Sync_API", -                    "type": 2, -                    "description": "Sync_API", -                    "sourceProvider": "ExcelOne", -                    "destinationProvider": "ADEnt", -                    "lastRun": null, -                    "lastOutCome": "None", -                    "lastOutComeDisplayText": null, -                    "nextRun": null, -                    "timesRun": 0, -                    "created": "2024-06-04T10:08:43.89Z", -                    "modified": null, -                    "schedule": "", -                    "smartgroupSchedule": null, -                    "enabled": true, -                    "onFailure": "Abort", -                    "runOrder": 2, -                    "isEnable": true, -                    "action": 0, -                    "collectionId": null, -                    "scheduledTask": null -                } -            ] -        }, -        "jobs": [ -            { -                "isTemplate": false, -                "jobInfo": { -                    "jobId": 7, -                    "templateId": null, -                    "jobGuid": null, -                    "name": "NewJob", -                    "type": 2, -                    "description": "NewJob", -                    "sourceProvider": "AdStore", -                    "destinationProvider": "Azure", -                    "lastRun": null, -                    "lastOutCome": "None", -                    "lastOutComeDisplayText": null, -                    "nextRun": null, -                    "timesRun": 0, -                    "created": "2024-06-04T10:08:43.89Z", -                    "modified": null, -                    "schedule": "", -                    "smartgroupSchedule": "", -                    "enabled": false, -                    "onFailure": "Abort", -                    "runOrder": 1, -                    "isEnable": true, -                    "action": 0, -                    "collectionId": 1, -                    "scheduledTask": null -                }, -                "fieldsMap": [ -                    { -                        "action": 0, -                        "sourceField": "description", -                        "destinationField": "description", -                        "id": 66, -                        "delimiter": "", -                        "transform": "", -                        "forCreateOnly": true, -                        "objectType": 4, -                        "isKey": false, -                        "options": null -                    }, -                    { -                        "action": 0, -                        "sourceField": "displayName", -                        "destinationField": "displayname", -                        "id": 67, -                        "delimiter": "", -                        "transform": "", -                        "forCreateOnly": true, -                        "objectType": 4, -                        "isKey": true, -                        "options": null -                    }, -                    { -                        "action": 0, -                        "sourceField": "", -                        "destinationField": "grouptype", -                        "id": 68, -                        "delimiter": "", -                        "transform": "Static:value=8", -                        "forCreateOnly": true, -                        "objectType": 4, -                        "isKey": false, -                        "options": null -                    }, -                    { -                        "action": 0, -                        "sourceField": "", -                        "destinationField": "mailNickname", -                        "id": 69, -                        "delimiter": "", -                        "transform": "Script:text=DTM.Result = DTM.Source(\"cn\") & \"_\" & DTM.Source(\"cn\") & \"@5cjshm.onmicrosoft.com\"", -                        "forCreateOnly": true, -                        "objectType": 4, -                        "isKey": false, -                        "options": "" -                    } -                ], -                "objectsOption": [ -                    { -                        "objectType": 4, -                        "id": 9, -                        "jobId": 7, -                        "isCreate": true, -                        "displayName": "Group", -                        "isDelete": false, -                        "isSelected": true, -                        "containerOption": "1", -                        "containerOptionValue": "DC=5cjshm,DC=onmicrosoft,DC=com", -                        "createObjectContainerStrategy": 1, -                        "isDeprovisioning": false, -                        "objectTypeSettings": null, -                        "action": 0 -                    } -                ], -                "syncQuery": [ -                    { -                        "action": 0, -                        "id": 5, -                        "queryFor": null, -                        "objectType": 4, -                        "query": "objectClass is exactly \"group\"", -                        "queryType": "GroupID", -                        "isSource": true, -                        "timeStampField": "", -                        "updateAll": true -                    }, -                    { -                        "action": 0, -                        "id": 6, -                        "queryFor": null, -                        "objectType": 4, -                        "query": "odatatype is exactly \"#microsoft.graph.group\"", -                        "queryType": "GroupID", -                        "isSource": false, -                        "timeStampField": null, -                        "updateAll": false -                    } -                ], -                "settings": [ -                    { -                        "action": 0, -                        "id": 95, -                        "key": "Source.Type", -                        "value": "2", -                        "dataType": "System.Int32", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 96, -                        "key": "SourceProvider", -                        "value": "2", -                        "dataType": "System.Int32", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 97, -                        "key": "JobOwners", -                        "value": "Administrator#b9989fd7-bdbf-41cb-9aa4-eca35a329682", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 98, -                        "key": "JobOwnerIds", -                        "value": "b9989fd7-bdbf-41cb-9aa4-eca35a329682", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 99, -                        "key": "Source.Provider", -                        "value": "2", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 100, -                        "key": "Source.ProviderName", -                        "value": "Active Directory", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 101, -                        "key": "Source.ProviderType", -                        "value": "1", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 102, -                        "key": "Source.IsDirectoryProvider", -                        "value": "True", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 103, -                        "key": "Source.IsTableProvider", -                        "value": "False", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 104, -                        "key": "Source.ContainerDetails", -                        "value": "{\r\n  \"id\": \"efc6ad49-9091-47f4-91f0-0e033177e87e\",\r\n  \"name\": \"API\",\r\n  \"children\": [],\r\n  \"parentId\": \"8ce5599b-5589-487d-aff8-bb5ffd073e5d\",\r\n  \"showChildren\": false,\r\n  \"hasChildren\": false,\r\n  \"nodeType\": \"Container\",\r\n  \"DistinguishedName\": \"OU=API,DC=groupid,DC=lab\",\r\n  \"IdFromIdentityStore\": \"efc6ad49-9091-47f4-91f0-0e033177e87e\",\r\n  \"DisplayName\": \"API\",\r\n  \"isSelected\": true,\r\n  \"isFocused\": true\r\n}", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 105, -                        "key": "Source.ShouldIncludeSubTree", -                        "value": "True", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 106, -                        "key": "Source.Container", -                        "value": "OU=API,DC=groupid,DC=lab", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 107, -                        "key": "Destination.Type", -                        "value": "3", -                        "dataType": "System.Int32", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 108, -                        "key": "DestinationProvider", -                        "value": "3", -                        "dataType": "System.Int32", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 109, -                        "key": "Destination.Type", -                        "value": "3", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 110, -                        "key": "Destination.Provider", -                        "value": "3", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 111, -                        "key": "Destination.ProviderName", -                        "value": "Microsoft Entra ID", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 112, -                        "key": "Destination.ProviderType", -                        "value": "1", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 113, -                        "key": "Destination.IsDirectoryProvider", -                        "value": "True", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 114, -                        "key": "Destination.IsTableProvider", -                        "value": "False", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 115, -                        "key": "Destination.ContainerDetails", -                        "value": "{\r\n  \"id\": \"5cjshm.onmicrosoft.com\",\r\n  \"name\": \"5cjshm\",\r\n  \"children\": [],\r\n  \"parentId\": \"5cjshm.onmicrosoft.com-gc\",\r\n  \"showChildren\": true,\r\n  \"hasChildren\": false,\r\n  \"nodeType\": \"Domain\",\r\n  \"DistinguishedName\": \"DC=5cjshm,DC=onmicrosoft,DC=com\",\r\n  \"IdFromIdentityStore\": \"5cjshm.onmicrosoft.com\",\r\n  \"DisplayName\": \"5cjshm\",\r\n  \"isSelected\": true,\r\n  \"isLoading\": false,\r\n  \"isFocused\": true\r\n}", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 116, -                        "key": "Destination.Container", -                        "value": "DC=5cjshm,DC=onmicrosoft,DC=com", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 117, -                        "key": "Destination.ConfiguredMessagingProvider", -                        "value": "6", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 118, -                        "key": "Destination.ConfiguredMessagingProviderName", -                        "value": "Office 365", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 119, -                        "key": "Destination.MessagingProviderConfiguredFrom", -                        "value": "1", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 120, -                        "key": "Destination.MessagingProviderCloud", -                        "value": "Global", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 121, -                        "key": "Destination.MessagingProviderHostName", -                        "value": "5cjshm.onmicrosoft.com", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 122, -                        "key": "Destination.MessagingProviderUserName", -                        "value": "sqatestautomation@5cjshm.onmicrosoft.com", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 123, -                        "key": "Destination.MessagingProviderCertificatePassword", -                        "value": "0AA##0PV7#/UpeaeHwXI8b+g==+Rd63Vt8VsM3G91yz+iE4IVWAck7fP/YG3U8F+oa6iQ=", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 124, -                        "key": "Destination.MessagingProviderCertificate", -                        "value": "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", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 125, -                        "key": "Destination.MessagingProviderPassword", -                        "value": "0AA##0PV7#vROlrrh+SfW0uw==HMzEF/RUhCc5iKNZpSoqnbJ6pS85HaOCbLNVyFtHfw0=", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 126, -                        "key": "Destination.MessagingProviderApplicationId", -                        "value": "5556091a-8f10-41ed-88cd-41c43e8c3041", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 127, -                        "key": "Destination.MessagingProviderServer", -                        "value": "ps.outlook.com", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 128, -                        "key": "Destination.ScriptingLanguage", -                        "value": "0", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 129, -                        "key": "Destination.ExposedScriptCode", -                        "value": "Option Strict Off\r\n\r\nImports System\r\nImports System.Text\r\nImports System.Text.RegularExpressions\r\nImports System.IO\r\nImports System.Math\r\nImports Microsoft.VisualBasic\r\nImports Imanami.DataSyncServices.Scripting\r\n\r\nModule ImanamiExposedCode\r\n\r\n#Region \"Imanami Generated Code\"\r\n'<--- PowerTool Instance Definitions --->\t\r\n#End Region\r\n\r\n#Region \" User-definable code \"\r\n    Sub DTM_Startup(ByVal dtmsource As Object, ByVal args As EventArgs) Handles DTM.Startup\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_BuildSourceQuery(ByVal dtmsource As Object, ByVal args As QueryEventArgs) Handles DTM.BuildSourceQuery\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowStarting(ByVal dtmsource As Object, ByVal args As EventArgs) Handles DTM.RowStarting\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n\r\n    Sub DTM_BuildDestinationQuery(ByVal dtmsource As Object, ByVal args As QueryEventArgs) Handles DTM.BuildDestinationQuery\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowChanging(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowChanging\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowChanged(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowChanged\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowAdding(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowAdding\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowAdded(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowAdded\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowDeleting(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowDeleting\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowDeleted(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowDeleted\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowFinishing(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowFinishing\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowFinished(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowFinished\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowFailed(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowFailed\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_Shutdown(ByVal dtmsource As Object, ByVal args As EventArgs) Handles DTM.Shutdown\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n#End Region\r\n\r\nend Module ' ImanamiExposedCode\r\n", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 130, -                        "key": "IsNotificationEnabled", -                        "value": "False", -                        "dataType": "System.Boolean", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 131, -                        "key": "ScheduledTask", -                        "value": "", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 132, -                        "key": "SmartGroupScheduleTask", -                        "value": "", -                        "dataType": "System.String", -                        "objectType": null -                    }, -                    { -                        "action": 0, -                        "id": 133, -                        "key": "memberkey", -                        "value": "sAMAccountName", -                        "dataType": "System.String", -                        "objectType": null -                    } -                ], -                "delimiterSchema": null, -                "sourceSchema": null, -                "destinationSchema": null, -                "hasAccess": false -            }, -            { -                "isTemplate": false, -                "jobInfo": { -                    "jobId": 8, -                    "templateId": null, -                    "jobGuid": null, -                    "name": "Sync_API", -                    "type": 2, -                    "description": "Sync_API", -                    "sourceProvider": "ExcelOne", -                    "destinationProvider": "ADEnt", -                    "lastRun": null, -                    "lastOutCome": "None", -                    "lastOutComeDisplayText": null, -                    "nextRun": null, -                    "timesRun": 0, -                    "created": "2024-06-04T10:08:43.89Z", -                    "modified": null, -                    "schedule": "", -                    "smartgroupSchedule": "", -                    "enabled": false, -                    "onFailure": "Abort", -                    "runOrder": 2, -                    "isEnable": true, -                    "action": 0, -                    "collectionId": 1, -                    "scheduledTask": null -                }, -                "fieldsMap": [ -                    { -                        "action": 0, -                        "sourceField": "", -                        "destinationField": "cn", -                        "id": 70, -                        "delimiter": "", -                        "transform": "Join:field=First;separator=_api_;field=Last", -                        "forCreateOnly": true, -                        "objectType": 1, -                        "isKey": false, -                        "options": null -                    }, -                    { -                        "action": 0, -                        "sourceField": "First", -                        "destinationField": "givenName", -                        "id": 71, -                        "delimiter": "", -                        "transform": "", -                        "forCreateOnly": true, -                        "objectType": 1, -                        "isKey": false, -                        "options": null -                    }, -                    { -                        "action": 0, -                        "sourceField": "", -                        "destinationField": "sAMAccountName", -                        "id": 72, -                        "delimiter": "", -                        "transform": "Join:field=First;separator=_api_;field=Last", -                        "forCreateOnly": true, -                        "objectType": 1, -                        "isKey": true, -                        "options": null -                    }, -                    { -                        "action": 0, -                        "sourceField": "Last", -                        "destinationField": "sn", -                        "id": 73, -                        "delimiter": "", -                        "transform": "", -                        "forCreateOnly": true, -                        "objectType": 1, -                        "isKey": false, -                        "options": null -                    }, -                    { -                        "action": 0, -                        "sourceField": "", -                        "destinationField": "password", -                        "id": 74, -                        "delimiter": "", -                        "transform": "Static:value=webdir123R", -                        "forCreateOnly": true, -                        "objectType": 1, -                        "isKey": false, -                        "options": "{\"passwordLength\":7,\"includeUppercaseAlphabets\":true,\"includeLowercaseAlphabets\":true,\"includeDigits\":true,\"includeSpecialSymbols\":false,\"specialSymbols\":\"%^&*(\",\"excludeSimilarSymbols\":false,\"managerNotification\":false,\"passwordType\":0}"           -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) diff --git a/docs/directorymanager/11.0/apis/jobs/getjobcollections.md b/docs/directorymanager/11.0/apis/jobs/getjobcollections.md deleted file mode 100644 index af3460e1af..0000000000 --- a/docs/directorymanager/11.0/apis/jobs/getjobcollections.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: "Get Job Collections" -description: "Get Job Collections" -sidebar_position: 70 ---- - -# Get Job Collections - -Use this API to retrieve information of job collection(s) based on filters provided in the request -syntax. - -See the -[Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md)for -additional information on job collections. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSyncJobs/Collections - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -    "filterCriteria": { -        "operator": "is exactly", -        "attribute": "Name", -        "value": "DataSync_API", -        "valueType": 0, -        "valueTypes": [ -            0 -        ], -        "donotEscapeValue": true, -        "child": [ -            { -                "Operator": "string", -                "Attribute": "string", -                "Value": "string", -                "ValueType": 0, -                "ValueTypes": [ -                    0 -                ], -                "Child": null -            } -        ] -    }, -    "SearchOption": { -        "PageSize": 10, -        "PageIndex": 1, -        "SortColumnName": "", -        "SortOrder": 1 -    } -} -``` - -#### Sample Response Syntax - -``` -{ -    "count": 1, -    "data": [ -        { -            "id": 1, -            "jobCollectionGuid": null, -            "name": "DataSync_API", -            "description": "DataSync_API", -            "totalJobs": 2, -            "timesRun": 0, -            "lastRunDate": null, -            "lastOutCome": "None", -            "lastOutComeDisplayText": null, -            "nextRun": null, -            "created": "2024-06-04T10:08:43.887Z", -            "modified": "2024-06-04T10:08:24Z", -            "schedule": "0", -            "smartgroupSchedule": null, -            "enabled": true, -            "jobs": [] -        } -    ], -    "status": 0, -    "message": null -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) diff --git a/docs/directorymanager/11.0/apis/jobs/getjobs.md b/docs/directorymanager/11.0/apis/jobs/getjobs.md deleted file mode 100644 index b103976195..0000000000 --- a/docs/directorymanager/11.0/apis/jobs/getjobs.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: "Get Jobs" -description: "Get Jobs" -sidebar_position: 80 ---- - -# Get Jobs - -Use this API to get information about jobs based on the filters provided in the request syntax. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSyncJobs - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -    "filterCriteria": { -        "operator": "is exactly", -        "attribute": "Name", -        "value": "Sync_API", -        "valueType": 0, -        "valueTypes": [ -            0 -        ], -        "donotEscapeValue": true, -        "child": [ -            { -                "Operator": "string", -                "Attribute": "string", -                "Value": "string", -                "ValueType": 0, -                "ValueTypes": [ -                    0 -                ], -                "Child": null -            } -        ] -    }, -    "SearchOption": { -        "PageSize": 10, -        "PageIndex": 1, -        "SortColumnName": "", -        "SortOrder": 1 -    } -} -``` - -#### Sample Response Syntax - -``` -{ -    "count": 1, -    "data": [ -        { -            "jobId": 6, -            "templateId": null, -            "jobGuid": null, -            "name": "Sync_API", -            "type": 1, -            "description": "Sync_API", -            "sourceProvider": "ExcelOne", -            "destinationProvider": "ADEnt", -            "lastRun": null, -            "lastOutCome": "None", -            "lastOutComeDisplayText": null, -            "nextRun": null, -            "timesRun": 0, -            "created": "2024-06-04T09:45:25.373Z", -            "modified": null, -            "schedule": "", -            "smartgroupSchedule": null, -            "enabled": true, -            "onFailure": "Abort", -            "runOrder": 0, -            "isEnable": true, -            "action": 0, -            "collectionId": null, -            "scheduledTask": null -        } -    ], -    "status": 0, -    "message": null -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) diff --git a/docs/directorymanager/11.0/apis/jobs/getjobsdetails.md b/docs/directorymanager/11.0/apis/jobs/getjobsdetails.md deleted file mode 100644 index 1f195db429..0000000000 --- a/docs/directorymanager/11.0/apis/jobs/getjobsdetails.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -title: "Get a Job Details" -description: "Get a Job Details" -sidebar_position: 90 ---- - -# Get a Job Details - -Use this API to get details of a job specified in endpoint URL. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSyncJobs/{jobId}/Details - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` -{ -    "count": 0, -    "data": { -        "isTemplate": false, -        "jobInfo": { -            "jobId": 6, -            "templateId": null, -            "jobGuid": null, -            "name": "Sync_API", -            "type": 1, -            "description": "Sync_API", -            "sourceProvider": "ExcelOne", -            "destinationProvider": "ADEnt", -            "lastRun": null, -            "lastOutCome": "None", -            "lastOutComeDisplayText": null, -            "nextRun": null, -            "timesRun": 0, -            "created": "2024-06-04T09:45:25.373Z", -            "modified": null, -            "schedule": "", -            "smartgroupSchedule": "", -            "enabled": false, -            "onFailure": "Abort", -            "runOrder": 0, -            "isEnable": true, -            "action": 0, -            "collectionId": null, -            "scheduledTask": null -        }, -        "fieldsMap": [ -            { -                "action": 0, -                "sourceField": "", -                "destinationField": "cn", -                "id": 61, -                "delimiter": "", -                "transform": "Join:field=First;separator=_api_;field=Last", -                "forCreateOnly": true, -                "objectType": 1, -                "isKey": false, -                "options": null -            }, -            { -                "action": 0, -                "sourceField": "First", -                "destinationField": "givenName", -                "id": 62, -                "delimiter": "", -                "transform": "", -                "forCreateOnly": true, -                "objectType": 1, -                "isKey": false, -                "options": null -            }, -            { -                "action": 0, -                "sourceField": "", -                "destinationField": "sAMAccountName", -                "id": 63, -                "delimiter": "", -                "transform": "Join:field=First;separator=_api_;field=Last", -                "forCreateOnly": true, -                "objectType": 1, -                "isKey": true, -                "options": null -            }, -            { -                "action": 0, -                "sourceField": "Last", -                "destinationField": "sn", -                "id": 64, -                "delimiter": "", -                "transform": "", -                "forCreateOnly": true, -                "objectType": 1, -                "isKey": false, -                "options": null -            }, -            { -                "action": 0, -                "sourceField": "", -                "destinationField": "password", -                "id": 65, -                "delimiter": "", -                "transform": "Static:value=webdir123R", -                "forCreateOnly": true, -                "objectType": 1, -                "isKey": false, -                "options": "{\"passwordLength\":7,\"includeUppercaseAlphabets\":true,\"includeLowercaseAlphabets\":true,\"includeDigits\":true,\"includeSpecialSymbols\":false,\"specialSymbols\":\"%^&*(\",\"excludeSimilarSymbols\":false,\"managerNotification\":false,\"passwordType\":0}" -            } -        ], -        "objectsOption": [ -            { -                "objectType": 1, -                "id": 8, -                "jobId": 6, -                "isCreate": true, -                "displayName": "User", -                "isDelete": false, -                "isSelected": true, -                "containerOption": "1", -                "containerOptionValue": "OU=API,DC=groupid,DC=lab", -                "createObjectContainerStrategy": 1, -                "isDeprovisioning": false, -                "objectTypeSettings": null, -                "action": 0 -            } -        ], -        "syncQuery": [ -            { -                "action": 0, -                "id": 3, -                "queryFor": null, -                "objectType": 1, -                "query": "SELECT * FROM [TTSheet1$]", -                "queryType": "SQL", -                "isSource": true, -                "timeStampField": "", -                "updateAll": true -            }, -            { -                "action": 0, -                "id": 4, -                "queryFor": null, -                "objectType": 1, -                "query": "objectClass is exactly \"user\"", -                "queryType": "GroupID", -                "isSource": false, -                "timeStampField": null, -                "updateAll": false -            } -        ], -        "settings": [ -            { -                "action": 0, -                "id": 68, -                "key": "Source.Type", -                "value": "4", -                "dataType": "System.Int32", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 69, -                "key": "SourceProvider", -                "value": "4", -                "dataType": "System.Int32", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 70, -                "key": "JobOwners", -                "value": "Administrator#b9989fd7-bdbf-41cb-9aa4-eca35a329682", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 71, -                "key": "JobOwnerIds", -                "value": "b9989fd7-bdbf-41cb-9aa4-eca35a329682", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 72, -                "key": "Source.ProviderName", -                "value": "Microsoft Excel", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 73, -                "key": "Source.Provider", -                "value": "4", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 74, -                "key": "Source.ProviderType", -                "value": "2", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 75, -                "key": "Source.IsDirectoryProvider", -                "value": "False", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 76, -                "key": "Source.IsTableProvider", -                "value": "True", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 77, -                "key": "Source.Table", -                "value": "TTSheet1", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 78, -                "key": "Destination.Type", -                "value": "24", -                "dataType": "System.Int32", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 79, -                "key": "DestinationProvider", -                "value": "24", -                "dataType": "System.Int32", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 80, -                "key": "Destination.ProviderName", -                "value": "Active Directory", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 81, -                "key": "Destination.Provider", -                "value": "24", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 82, -                "key": "Destination.Type", -                "value": "24", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 83, -                "key": "Destination.ProviderType", -                "value": "1", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 84, -                "key": "Destination.IsDirectoryProvider", -                "value": "True", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 85, -                "key": "Destination.IsTableProvider", -                "value": "False", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 86, -                "key": "Destination.ChangeServiceAccount", -                "value": "", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 87, -                "key": "Destination.ContainerDetails", -                "value": "{\r\n  \"id\": \"efc6ad49-9091-47f4-91f0-0e033177e87e\",\r\n  \"name\": \"API\",\r\n  \"children\": [],\r\n  \"parentId\": \"8ce5599b-5589-487d-aff8-bb5ffd073e5d\",\r\n  \"showChildren\": false,\r\n  \"hasChildren\": false,\r\n  \"nodeType\": \"Container\",\r\n  \"DistinguishedName\": \"OU=API,DC=groupid,DC=lab\",\r\n  \"IdFromIdentityStore\": \"efc6ad49-9091-47f4-91f0-0e033177e87e\",\r\n  \"DisplayName\": \"API\",\r\n  \"isSelected\": true,\r\n  \"isFocused\": true\r\n}", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 88, -                "key": "Destination.ShouldIncludeSubTree", -                "value": "True", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 89, -                "key": "Destination.Container", -                "value": "OU=API,DC=groupid,DC=lab", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 90, -                "key": "Destination.ScriptingLanguage", -                "value": "0", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 91, -                "key": "Destination.ExposedScriptCode", -                "value": "Option Strict Off\r\n\r\nImports System\r\nImports System.Text\r\nImports System.Text.RegularExpressions\r\nImports System.IO\r\nImports System.Math\r\nImports Microsoft.VisualBasic\r\nImports Imanami.DataSyncServices.Scripting\r\n\r\nModule ImanamiExposedCode\r\n\r\n#Region \"Imanami Generated Code\"\r\n'<--- PowerTool Instance Definitions --->\t\r\n#End Region\r\n\r\n#Region \" User-definable code \"\r\n    Sub DTM_Startup(ByVal dtmsource As Object, ByVal args As EventArgs) Handles DTM.Startup\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_BuildSourceQuery(ByVal dtmsource As Object, ByVal args As QueryEventArgs) Handles DTM.BuildSourceQuery\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowStarting(ByVal dtmsource As Object, ByVal args As EventArgs) Handles DTM.RowStarting\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n\r\n    Sub DTM_BuildDestinationQuery(ByVal dtmsource As Object, ByVal args As QueryEventArgs) Handles DTM.BuildDestinationQuery\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowChanging(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowChanging\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowChanged(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowChanged\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowAdding(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowAdding\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowAdded(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowAdded\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowDeleting(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowDeleting\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowDeleted(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowDeleted\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowFinishing(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowFinishing\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowFinished(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowFinished\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowFailed(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowFailed\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_Shutdown(ByVal dtmsource As Object, ByVal args As EventArgs) Handles DTM.Shutdown\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n#End Region\r\n\r\nend Module ' ImanamiExposedCode\r\n", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 92, -                "key": "IsNotificationEnabled", -                "value": "False", -                "dataType": "System.Boolean", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 93, -                "key": "ScheduledTask", -                "value": "", -                "dataType": "System.String", -                "objectType": null -            }, -            { -                "action": 0, -                "id": 94, -                "key": "SmartGroupScheduleTask", -                "value": "", -                "dataType": "System.String", -                "objectType": null -            } -        ], -        "delimiterSchema": null, -        "sourceSchema": null, -        "destinationSchema": null, -        "hasAccess": true -    }, -    "status": 0, -    "message": null -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) diff --git a/docs/directorymanager/11.0/apis/jobs/getjobsname.md b/docs/directorymanager/11.0/apis/jobs/getjobsname.md deleted file mode 100644 index fdf4d633b5..0000000000 --- a/docs/directorymanager/11.0/apis/jobs/getjobsname.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "Get Jobs Names" -description: "Get Jobs Names" -sidebar_position: 100 ---- - -# Get Jobs Names - -Using this API you can get a list of job names both predefined and user created. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSyncJobs/Names - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` -[ -    { -        "name": "Move and Disable Objects In Active Directory", -        "type": "3" -    }, -    { -        "name": "Linked Mailbox Creation In Active Directory", -        "type": "3" -    }, -    { -        "name": "Move Objects in Active Directory", -        "type": "3" -    }, -    { -        "name": "Sync GAL In Active Directory", -        "type": "3" -    }, -    { -        "name": "NewJob", -        "type": "1" -    }, -    { -        "name": "Sync_API", -        "type": "1" -    } -] -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) diff --git a/docs/directorymanager/11.0/apis/jobs/jobsapis.md b/docs/directorymanager/11.0/apis/jobs/jobsapis.md deleted file mode 100644 index 5e90c8da9d..0000000000 --- a/docs/directorymanager/11.0/apis/jobs/jobsapis.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: "Synchronize Jobs APIs" -description: "Synchronize Jobs APIs" -sidebar_position: 50 ---- - -# Synchronize Jobs APIs - -GroupID Synchronize is used for transferring data from one data source to another. The data sources -may include directory servers, databases or files. The following APIs can be used for performing -Synchronize jobs-specific functions: - -- [Create a New Job](/docs/directorymanager/11.0/apis/jobs/createjob.md) -- [Create a New Job Collection](/docs/directorymanager/11.0/apis/jobs/createnewjobcollection.md) -- [Delete Jobs](/docs/directorymanager/11.0/apis/jobs/deletejob.md) -- [Delete Job Collections](/docs/directorymanager/11.0/apis/jobs/deletejobcollections.md) -- [Get Job Collections Details](/docs/directorymanager/11.0/apis/jobs/getcollectionsdetails.md) -- [Get Job Collection Details By Job Collection ID](/docs/directorymanager/11.0/apis/jobs/getjcdetailsbyjcid.md) -- [Get Jobs](/docs/directorymanager/11.0/apis/jobs/getjobs.md) -- [Get Job Collections](/docs/directorymanager/11.0/apis/jobs/getjobcollections.md) -- [Get a Job Details](/docs/directorymanager/11.0/apis/jobs/getjobsdetails.md) -- [Get Jobs Names ](/docs/directorymanager/11.0/apis/jobs/getjobsname.md) -- [Update a Job Collection](/docs/directorymanager/11.0/apis/jobs/updatjobcollection.md) - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Get Token](/docs/directorymanager/11.0/apis/gettoken.md) -- [Contact APIs](/docs/directorymanager/11.0/apis/contact/contactapis.md) -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) -- [Logs APIs](/docs/directorymanager/11.0/apis/logs/logsapis.md) -- Synchronize Jobs APIs -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/jobs/updatjobcollection.md b/docs/directorymanager/11.0/apis/jobs/updatjobcollection.md deleted file mode 100644 index 544d768d39..0000000000 --- a/docs/directorymanager/11.0/apis/jobs/updatjobcollection.md +++ /dev/null @@ -1,456 +0,0 @@ ---- -title: "Update a Job Collection" -description: "Update a Job Collection" -sidebar_position: 110 ---- - -# Update a Job Collection - -Use this API to update information of a job collection. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/DataSyncJobs/Collections - -## HTTP Method - -PATCH - -#### Sample Request Syntax - -``` -{ -    "isTemplate": false, -    "description": null, -    "isNotificationEnabled": false, -    "notificationSendIndividualEmail": false, -    "notifyWhen": 3, -    "notificationRecipients": "", -    "jobCollectionInfo": { -        "id": 7, -        "jobCollectionGuid": "", -        "name": "TestCollection", -        "description": "TestCollection", -        "totalJobs": 0, -        "timesRun": 0, -        "lastRunDate": null, -        "lastOutCome": "None", -        "lastOutComeDisplayText": null, -        "nextRun": null, -        "created": "2024-06-04T10:46:33.13Z", -        "modified": "2024-06-04T10:45:47Z", -        "schedule": "0", -        "smartgroupSchedule": null, -        "enabled": false, -        "jobs": [ -            { -                "jobId": 9, -                "templateId": null, -                "jobGuid": null, -                "name": "Sync_API", -                "type": 2, -                "description": "Sync_API", -                "sourceProvider": "ExcelOne", -                "destinationProvider": "ADEnt", -                "lastRun": null, -                "lastOutCome": "None", -                "lastOutComeDisplayText": null, -                "nextRun": null, -                "timesRun": 0, -                "created": "2024-06-04T10:46:33.13Z", -                "modified": null, -                "schedule": "", -                "smartgroupSchedule": null, -                "enabled": true, -                "onFailure": "Abort", -                "runOrder": 1, -                "isEnable": true, -                "action": 0, -                "collectionId": null, -                "scheduledTask": null -            } -        ] -    }, -    "jobs": [ -        { -            "isTemplate": false, -            "jobInfo": { -                "jobId": 9, -                "templateId": null, -                "jobGuid": null, -                "name": "Sync_API", -                "type": 2, -                "description": "Sync_API", -                "sourceProvider": "ExcelOne", -                "destinationProvider": "ADEnt", -                "lastRun": null, -                "lastOutCome": "None", -                "lastOutComeDisplayText": null, -                "nextRun": null, -                "timesRun": 0, -                "created": "2024-06-04T10:46:33.13Z", -                "modified": null, -                "schedule": "", -                "smartgroupSchedule": "", -                "enabled": false, -                "onFailure": "Abort", -                "runOrder": 1, -                "isEnable": true, -                "action": 0, -                "collectionId": 7, -                "scheduledTask": null -            }, -            "fieldsMap": [ -                { -                    "action": 0, -                    "sourceField": "", -                    "destinationField": "cn", -                    "id": 75, -                    "delimiter": "", -                    "transform": "Join:field=First;separator=_api_;field=Last", -                    "forCreateOnly": true, -                    "objectType": 1, -                    "isKey": false, -                    "options": null -                }, -                { -                    "action": 0, -                    "sourceField": "First", -                    "destinationField": "givenName", -                    "id": 76, -                    "delimiter": "", -                    "transform": "", -                    "forCreateOnly": true, -                    "objectType": 1, -                    "isKey": false, -                    "options": null -                }, -                { -                    "action": 0, -                    "sourceField": "", -                    "destinationField": "sAMAccountName", -                    "id": 77, -                    "delimiter": "", -                    "transform": "Join:field=First;separator=_api_;field=Last", -                    "forCreateOnly": true, -                    "objectType": 1, -                    "isKey": true, -                    "options": null -                }, -                { -                    "action": 0, -                    "sourceField": "Last", -                    "destinationField": "sn", -                    "id": 78, -                    "delimiter": "", -                    "transform": "", -                    "forCreateOnly": true, -                    "objectType": 1, -                    "isKey": false, -                    "options": null -                }, -                { -                    "action": 0, -                    "sourceField": "", -                    "destinationField": "password", -                    "id": 79, -                    "delimiter": "", -                    "transform": "Static:value=webdir123R", -                    "forCreateOnly": true, -                    "objectType": 1, -                    "isKey": false, -                    "options": "{\"passwordLength\":7,\"includeUppercaseAlphabets\":true,\"includeLowercaseAlphabets\":true,\"includeDigits\":true,\"includeSpecialSymbols\":false,\"specialSymbols\":\"%^&*(\",\"excludeSimilarSymbols\":false,\"managerNotification\":false,\"passwordType\":0}" -                } -            ], -            "objectsOption": [ -                { -                    "objectType": 1, -                    "id": 11, -                    "jobId": 9, -                    "isCreate": true, -                    "displayName": "User", -                    "isDelete": false, -                    "isSelected": true, -                    "containerOption": "1", -                    "containerOptionValue": "OU=API,DC=groupid,DC=lab", -                    "createObjectContainerStrategy": 1, -                    "isDeprovisioning": false, -                    "objectTypeSettings": null, -                    "action": 0 -                } -            ], -            "syncQuery": [ -                { -                    "action": 0, -                    "id": 9, -                    "queryFor": null, -                    "objectType": 1, -                    "query": "SELECT * FROM [TTSheet1$]", -                    "queryType": "SQL", -                    "isSource": true, -                    "timeStampField": "", -                    "updateAll": true -                }, -                { -                    "action": 0, -                    "id": 10, -                    "queryFor": null, -                    "objectType": 1, -                    "query": "objectClass is exactly \"user\"", -                    "queryType": "GroupID", -                    "isSource": false, -                    "timeStampField": null, -                    "updateAll": false -                } -            ], -            "settings": [ -                { -                    "action": 0, -                    "id": 161, -                    "key": "Source.Type", -                    "value": "4", -                    "dataType": "System.Int32", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 162, -                    "key": "SourceProvider", -                    "value": "4", -                    "dataType": "System.Int32", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 163, -                    "key": "JobOwners", -                    "value": "Administrator#b9989fd7-bdbf-41cb-9aa4-eca35a329682", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 164, -                    "key": "JobOwnerIds", -                    "value": "b9989fd7-bdbf-41cb-9aa4-eca35a329682", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 165, -                    "key": "Source.Provider", -                    "value": "4", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 166, -                    "key": "Source.ProviderName", -                    "value": "Microsoft Excel", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 167, -                    "key": "Source.ProviderType", -                    "value": "2", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 168, -                    "key": "Source.IsDirectoryProvider", -                    "value": "False", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 169, -                    "key": "Source.IsTableProvider", -                    "value": "True", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 170, -                    "key": "Source.Table", -                    "value": "TTSheet1", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 171, -                    "key": "Destination.Type", -                    "value": "24", -                    "dataType": "System.Int32", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 172, -                    "key": "DestinationProvider", -                    "value": "24", -                    "dataType": "System.Int32", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 173, -                    "key": "Destination.Type", -                    "value": "24", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 174, -                    "key": "Destination.Provider", -                    "value": "24", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 175, -                    "key": "Destination.ProviderName", -                    "value": "Active Directory", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 176, -                    "key": "Destination.ProviderType", -                    "value": "1", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 177, -                    "key": "Destination.IsDirectoryProvider", -                    "value": "True", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 178, -                    "key": "Destination.IsTableProvider", -                    "value": "False", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 179, -                    "key": "Destination.ChangeServiceAccount", -                    "value": "", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 180, -                    "key": "Destination.ContainerDetails", -                    "value": "{\r\n  \"id\": \"efc6ad49-9091-47f4-91f0-0e033177e87e\",\r\n  \"name\": \"API\",\r\n  \"children\": [],\r\n  \"parentId\": \"8ce5599b-5589-487d-aff8-bb5ffd073e5d\",\r\n  \"showChildren\": false,\r\n  \"hasChildren\": false,\r\n  \"nodeType\": \"Container\",\r\n  \"DistinguishedName\": \"OU=API,DC=groupid,DC=lab\",\r\n  \"IdFromIdentityStore\": \"efc6ad49-9091-47f4-91f0-0e033177e87e\",\r\n  \"DisplayName\": \"API\",\r\n  \"isSelected\": true,\r\n  \"isFocused\": true\r\n}", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 181, -                    "key": "Destination.ShouldIncludeSubTree", -                    "value": "True", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 182, -                    "key": "Destination.Container", -                    "value": "OU=API,DC=groupid,DC=lab", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 183, -                    "key": "Destination.ScriptingLanguage", -                    "value": "0", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 184, -                    "key": "Destination.ExposedScriptCode", -                    "value": "Option Strict Off\r\n\r\nImports System\r\nImports System.Text\r\nImports System.Text.RegularExpressions\r\nImports System.IO\r\nImports System.Math\r\nImports Microsoft.VisualBasic\r\nImports Imanami.DataSyncServices.Scripting\r\n\r\nModule ImanamiExposedCode\r\n\r\n#Region \"Imanami Generated Code\"\r\n'<--- PowerTool Instance Definitions --->\t\r\n#End Region\r\n\r\n#Region \" User-definable code \"\r\n    Sub DTM_Startup(ByVal dtmsource As Object, ByVal args As EventArgs) Handles DTM.Startup\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_BuildSourceQuery(ByVal dtmsource As Object, ByVal args As QueryEventArgs) Handles DTM.BuildSourceQuery\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowStarting(ByVal dtmsource As Object, ByVal args As EventArgs) Handles DTM.RowStarting\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n\r\n    Sub DTM_BuildDestinationQuery(ByVal dtmsource As Object, ByVal args As QueryEventArgs) Handles DTM.BuildDestinationQuery\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowChanging(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowChanging\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowChanged(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowChanged\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowAdding(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowAdding\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowAdded(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowAdded\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowDeleting(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowDeleting\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowDeleted(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowDeleted\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowFinishing(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowFinishing\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowFinished(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowFinished\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_RowFailed(ByVal dtmsource As Object, ByVal args As JobEventArgs) Handles DTM.RowFailed\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n\r\n    Sub DTM_Shutdown(ByVal dtmsource As Object, ByVal args As EventArgs) Handles DTM.Shutdown\r\n        ' User-definable script goes here -----------------\r\n\r\n        ' -------------------------------------------------\r\n    End Sub\r\n#End Region\r\n\r\nend Module ' ImanamiExposedCode\r\n", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 185, -                    "key": "IsNotificationEnabled", -                    "value": "False", -                    "dataType": "System.Boolean", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 186, -                    "key": "ScheduledTask", -                    "value": "", -                    "dataType": "System.String", -                    "objectType": null -                }, -                { -                    "action": 0, -                    "id": 187, -                    "key": "SmartGroupScheduleTask", -                    "value": "", -                    "dataType": "System.String", -                    "objectType": null -                } -            ], -            "delimiterSchema": null, -            "sourceSchema": null, -            "destinationSchema": null, -            "hasAccess": false -        } -    ], -    "totalJobs": 0, -    "hasAccess": false -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 6, -    "status": 0, -    "message": null, -    "data": 7, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) diff --git a/docs/directorymanager/11.0/apis/logs/_category_.json b/docs/directorymanager/11.0/apis/logs/_category_.json deleted file mode 100644 index 9398a847aa..0000000000 --- a/docs/directorymanager/11.0/apis/logs/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Logs APIs", - "position": 40, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "logsapis" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/apis/logs/admincenter.md b/docs/directorymanager/11.0/apis/logs/admincenter.md deleted file mode 100644 index a9cdddc73d..0000000000 --- a/docs/directorymanager/11.0/apis/logs/admincenter.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Admin Center Logs" -description: "Admin Center Logs" -sidebar_position: 10 ---- - -# Admin Center Logs - -Use this API to get Admin Center logs. See the -[Admin Center History](/docs/directorymanager/11.0/signin/concepts/history_1.md) topic -for additional information. - -## Endpoint - -https://demomachine:4443/AdminCenter/api/Logs/Download - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` - -``` - -Save the encrypted response as a zip file to a desired location. - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Logs APIs](/docs/directorymanager/11.0/apis/logs/logsapis.md) diff --git a/docs/directorymanager/11.0/apis/logs/dataservice.md b/docs/directorymanager/11.0/apis/logs/dataservice.md deleted file mode 100644 index 9262c66948..0000000000 --- a/docs/directorymanager/11.0/apis/logs/dataservice.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Data Service Logs" -description: "Data Service Logs" -sidebar_position: 20 ---- - -# Data Service Logs - -Use this API to get GroupID Data service log. See the -[Data Service](/docs/directorymanager/11.0/signin/service/dataservice/overview.md) for -additional information on Data service. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/Logs/Download - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` - -``` - -Save the encrypted response as a zip file to a desired location. - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Logs APIs](/docs/directorymanager/11.0/apis/logs/logsapis.md) diff --git a/docs/directorymanager/11.0/apis/logs/emailservice.md b/docs/directorymanager/11.0/apis/logs/emailservice.md deleted file mode 100644 index ac331177a3..0000000000 --- a/docs/directorymanager/11.0/apis/logs/emailservice.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Email Service Logs" -description: "Email Service Logs" -sidebar_position: 30 ---- - -# Email Service Logs - -Use this API to get Email service logs. See the -[Email Service](/docs/directorymanager/11.0/signin/service/emailservice.md) topic for -additional on Email service. - -## Endpoint - -https://demomachine:4443/GroupIDEmailService/api/Logs/Download - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` - -``` - -Save the encrypted response as a zip file to a desired location. - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Logs APIs](/docs/directorymanager/11.0/apis/logs/logsapis.md) diff --git a/docs/directorymanager/11.0/apis/logs/logsapis.md b/docs/directorymanager/11.0/apis/logs/logsapis.md deleted file mode 100644 index 146ac3e21e..0000000000 --- a/docs/directorymanager/11.0/apis/logs/logsapis.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Logs APIs" -description: "Logs APIs" -sidebar_position: 40 ---- - -# Logs APIs - -GroupID generates logs for its services, clients, and Windows events. Using the following APIs, you -can collect and dump your required logs to a desired location. - -See the [Get Logs](/docs/directorymanager/11.0/signin/concepts/logs.md) topic for -additional information on logs. - -- [Admin Center Logs](/docs/directorymanager/11.0/apis/logs/admincenter.md) -- [Data Service Logs](/docs/directorymanager/11.0/apis/logs/dataservice.md) -- [Email Service Logs](/docs/directorymanager/11.0/apis/logs/emailservice.md) -- [Portal Logs](/docs/directorymanager/11.0/apis/logs/portal.md) -- [Replication Service Logs](/docs/directorymanager/11.0/apis/logs/replicationservice.md) -- [Scheduler Service Logs](/docs/directorymanager/11.0/apis/logs/schedulerservice.md) -- [Security Service Logs](/docs/directorymanager/11.0/apis/logs/securityservice.md) - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Get Token](/docs/directorymanager/11.0/apis/gettoken.md) -- [Contact APIs](/docs/directorymanager/11.0/apis/contact/contactapis.md) -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) -- Logs APIs -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/logs/portal.md b/docs/directorymanager/11.0/apis/logs/portal.md deleted file mode 100644 index cb10f72ea0..0000000000 --- a/docs/directorymanager/11.0/apis/logs/portal.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Portal Logs" -description: "Portal Logs" -sidebar_position: 40 ---- - -# Portal Logs - -Use this API to get GroupID portal logs. See the -[History](/docs/directorymanager/11.0/welcome/history/overview.md) topic for additional -information on Portal history. - -## Endpoint - -https://demomachine:4443/GroupIDPortal/api/Logs/Download - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` - -``` - -Save the encrypted response as a zip file to a desired location. - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Logs APIs](/docs/directorymanager/11.0/apis/logs/logsapis.md) diff --git a/docs/directorymanager/11.0/apis/logs/replicationservice.md b/docs/directorymanager/11.0/apis/logs/replicationservice.md deleted file mode 100644 index 9939308a86..0000000000 --- a/docs/directorymanager/11.0/apis/logs/replicationservice.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Replication Service Logs" -description: "Replication Service Logs" -sidebar_position: 50 ---- - -# Replication Service Logs - -Use this API to get Replication Service logs. See the -[Replication Service](/docs/directorymanager/11.0/signin/service/replicationservice.md) -topic for additional information on Replication service. - -## Endpoint - -https://demomachine:4443/GroupIDReplicationService/api/Logs/Download - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` - -``` - -Save the encrypted response as a zip file to a desired location. - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Logs APIs](/docs/directorymanager/11.0/apis/logs/logsapis.md) diff --git a/docs/directorymanager/11.0/apis/logs/schedulerservice.md b/docs/directorymanager/11.0/apis/logs/schedulerservice.md deleted file mode 100644 index 6a37fd5c98..0000000000 --- a/docs/directorymanager/11.0/apis/logs/schedulerservice.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Scheduler Service Logs" -description: "Scheduler Service Logs" -sidebar_position: 60 ---- - -# Scheduler Service Logs - -Using this API you can get Scheduler Service logs. See the -[Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md)topic -for additional information on Scheduler service. - -## Endpoint - -https://demomachine:4443/GroupIDSchedulerService/api/Logs/Download - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` - -``` - -Save the encrypted response as a zip file to a desired location. - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Logs APIs](/docs/directorymanager/11.0/apis/logs/logsapis.md) diff --git a/docs/directorymanager/11.0/apis/logs/securityservice.md b/docs/directorymanager/11.0/apis/logs/securityservice.md deleted file mode 100644 index ea555f53ab..0000000000 --- a/docs/directorymanager/11.0/apis/logs/securityservice.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Security Service Logs" -description: "Security Service Logs" -sidebar_position: 70 ---- - -# Security Service Logs - -This API fetches GroupID Security service logs. See the -[Security Service](/docs/directorymanager/11.0/signin/service/securityservice/overview.md) -topic for additional information on Security service. - -## Endpoint - -https://demomachine:4443/GroupIDSecurityService/api/Logs/Download - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` - -``` - -Save the encrypted response as a zip file to a desired location. - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Logs APIs](/docs/directorymanager/11.0/apis/logs/logsapis.md) diff --git a/docs/directorymanager/11.0/apis/user/_category_.json b/docs/directorymanager/11.0/apis/user/_category_.json deleted file mode 100644 index 8f8d71a990..0000000000 --- a/docs/directorymanager/11.0/apis/user/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "User APIs", - "position": 60, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "userapis" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/apis/user/createuser.md b/docs/directorymanager/11.0/apis/user/createuser.md deleted file mode 100644 index 99c4c01138..0000000000 --- a/docs/directorymanager/11.0/apis/user/createuser.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: "Create a User" -description: "Create a User" -sidebar_position: 10 ---- - -# Create a User - -This API creates a user in the identity store specified in the endpoint URL. Provide mandatory -information for the to be created user in the request syntax such as container in which user will be -created, given name, display name and so on. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Users - -## HTTP Methods - -POST - -#### Sample Request Syntax - -``` -{ -  "Container": "OU=Users,DC=demo,DC=local", -  "Attributes": { -    "attributesCollection": { -      "givenName": [ -        { -          "value": "Demo", -          "action": 0 -        } -      ], -      "displayName": [ -        { -          "value": "DemoUser1", -          "action": 0 -        } -      ], -      "sn": [ -        { -          "value": "User1", -          "action": 0 -        } -      ], -      "samAccountName": [ -        { -          "value": "DemoUser1", -          "action": 0 -        } -      ], -      "userPrincipalName": [ -        { -          "value": "DemoUser1@demo.local", -          "action": 0 -        } -      ], -      "mail": [ -        { -          "value": "DemoUser1@demo.local", -          "action": 0 -        } -      ], -      "proxyAddresses": [ -        { -          "value": "SMTP:DemoUser1@demo.local", -          "action": 0 -        } -      ], -      "CN": [ -        { -          "value": "DemoUser1", -          "action": 0 -        } -      ], -      "objectClass": [ -        { -          "value": "user", -          "action": 0 -        } -      ] -    } -  }, -  "IdentityStoreID": "2" -} -``` - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": "SAMSUNG-DC.askari.local", -    "exceptionMessagesAttributeWise": null, -    "data": "2c49fc27-dbe8-4c86-9c9e-f1a52b9d95f8", -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- Common Errors -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/user/deleteuser.md b/docs/directorymanager/11.0/apis/user/deleteuser.md deleted file mode 100644 index 75a424d537..0000000000 --- a/docs/directorymanager/11.0/apis/user/deleteuser.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Delete a User" -description: "Delete a User" -sidebar_position: 20 ---- - -# Delete a User - -Using this API, you can delete a single user. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Users/{userIdentity} - -## HTTP Method - -DELETE - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": null, -    "exceptionMessagesAttributeWise": null, -    "data": "", -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- Common Errors -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/user/deleteusers.md b/docs/directorymanager/11.0/apis/user/deleteusers.md deleted file mode 100644 index 60d9fb9c5d..0000000000 --- a/docs/directorymanager/11.0/apis/user/deleteusers.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: "Delete Users" -description: "Delete Users" -sidebar_position: 30 ---- - -# Delete Users - -This API deletes multiple users from the identity store given in the endpoint URL. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Users - -## HTTP Method - -DELETE - -#### Sample Request Syntax - -``` -[ -  "4ecb2fea-bf6a-412b-8df4-b72691904cc4", -  "c50c2235-00fa-4069-8f0d-f69bf48d7ca6" -] -``` - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": null, -    "exceptionMessagesAttributeWise": null, -    "data": "", -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": "", -            "identityStoreObject": null, -            "name": null, -            "errorCode": null, -            "details": [ -            ], -            "type": 0, -            "message": null, -            "status": 0 -        }, -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": "", -            "identityStoreObject": null, -            "name": null, -            "errorCode": null, -            "details": [ -            ], -            "type": 0, -            "message": null, -            "status": 0 -        } -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- Common Errors -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/user/getallgroups.md b/docs/directorymanager/11.0/apis/user/getallgroups.md deleted file mode 100644 index 9cf97c3b24..0000000000 --- a/docs/directorymanager/11.0/apis/user/getallgroups.md +++ /dev/null @@ -1,181 +0,0 @@ ---- -title: "Get All Groups" -description: "Get All Groups" -sidebar_position: 40 ---- - -# Get All Groups - -Use this API to retrieve all groups in the directory for the specified user in the endpoint. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Users/{userIdentity}/Groups/All?sortOrder=1&pageNo=1&pageSize=2&displayNestedOwnership=true&displayAdditionalGroups=true&calculateTotal=true&searchMode=0 - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -  "attributesToLoad": [ -    "displayName" -  ] -} -``` - -#### Sample Response Syntax - -``` -{ -  "total": 1896, -  "data": [ -    { -      "attributesBusinessObject": { -        "attributesCollection": { -          "container": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "CN=Builtin,DC=demo,DC=local", -              "identityStoreId": 0 -            } -          ], -          "displayName": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "Administrators", -              "identityStoreId": 0 -            } -          ], -          "objectClass": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "group", -              "identityStoreId": 0 -            } -          ], -          "name": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "Administrators", -              "identityStoreId": 0 -            } -          ], -          "CN": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "Administrators", -              "identityStoreId": 0 -            } -          ], -          "objectCategory": [ -          ] -        }, -        "type": null, -        "filePermissionCollection": { -        } -      }, -      "objectIdFromIdentityStore": "6791c6ed-3e1b-4516-9c67-c72b64f6beeb", -      "elasticHitScore": 1.0, -      "objectDisplayName": "Administrators", -      "stopNotification": false, -      "objectName": null, -      "identityStore": null, -      "identityStoreId": 2, -      "objectType": "group" -    }, -    { -      "attributesBusinessObject": { -        "attributesCollection": { -          "container": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "CN=Builtin,DC=demo,DC=local", -              "identityStoreId": 0 -            } -          ], -          "displayName": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "Users", -              "identityStoreId": 0 -            } -          ], -          "objectClass": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "group", -              "identityStoreId": 0 -            } -          ], -          "name": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "Users", -              "identityStoreId": 0 -            } -          ], -          "CN": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "Users", -              "identityStoreId": 0 -            } -          ], -          "objectCategory": [ -          ] -        }, -        "type": null, -        "filePermissionCollection": { -        } -      }, -      "objectIdFromIdentityStore": "9480dd41-384e-4bf5-a9f5-98866c49142f", -      "elasticHitScore": 1.0, -      "objectDisplayName": "Users", -      "stopNotification": false, -      "objectName": null, -      "identityStore": null, -      "identityStoreId": 2, -      "objectType": "group" -    } -  ] -} -``` - -See Also - -- Common Errors -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/user/getmydynasties.md b/docs/directorymanager/11.0/apis/user/getmydynasties.md deleted file mode 100644 index 9d5a1ffc4c..0000000000 --- a/docs/directorymanager/11.0/apis/user/getmydynasties.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: "Get My Dynasties" -description: "Get My Dynasties" -sidebar_position: 50 ---- - -# Get My Dynasties - -Use this API to retrieve the dynasties of the authenticated user. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Users/{userIdentity}/Groups/Dynasties?sortOrder=1&pageNo=1&pageSize=2&displayNestedOwnership=true&displayAdditionalGroups=true&calculateTotal=true&searchMode=0 - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -  "attributesToLoad": [ -    "displayName" -  ] -} -``` - -#### Sample Response Syntax - -``` -{ -  "total": 1, -  "data": [ -    { -      "attributesBusinessObject": { -        "attributesCollection": { -          "container": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "OU=Groups,DC=demo,DC=local", -              "identityStoreId": 0 -            } -          ], -          "displayName": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "DemoDynasty1", -              "identityStoreId": 0 -            } -          ], -          "objectClass": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "group", -              "identityStoreId": 0 -            } -          ], -          "name": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "DemoDynasty1", -              "identityStoreId": 0 -            } -          ], -          "CN": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "DemoDynasty1", -              "identityStoreId": 0 -            } -          ], -          "objectCategory": [ -          ] -        }, -        "type": null, -        "filePermissionCollection": { -        } -      }, -      "objectIdFromIdentityStore": "1df856b1-1511-4167-be59-5b7b9680d6c8", -      "elasticHitScore": 1.0, -      "objectDisplayName": "DemoDynasty1", -      "stopNotification": false, -      "objectName": null, -      "identityStore": null, -      "identityStoreId": 2, -      "objectType": "group" -    } -  ] -} -``` - -See Also - -- Common Errors -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/user/getmyexpiredgroups.md b/docs/directorymanager/11.0/apis/user/getmyexpiredgroups.md deleted file mode 100644 index b14a5df214..0000000000 --- a/docs/directorymanager/11.0/apis/user/getmyexpiredgroups.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: "Get My Expired Groups" -description: "Get My Expired Groups" -sidebar_position: 60 ---- - -# Get My Expired Groups - -This API retrieves the expired groups of the authenticated user. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Users/{userIdentity}/Groups/Expired?sortOrder=1&pageNo=1&pageSize=2&displayNestedOwnership=true&displayAdditionalGroups=true&calculateTotal=true&searchMode=0 - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -  "attributesToLoad": [ -    "displayName" -  ] -} -``` - -#### Sample Response Syntax - -``` -{ -  "total": 1, -  "data": [ -    { -      "attributesBusinessObject": { -        "attributesCollection": { -          "container": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "OU=Groups,DC=demo,DC=local", -              "identityStoreId": 0 -            } -          ], -          "displayName": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "Expired_demogroup1", -              "identityStoreId": 0 -            } -          ], -          "objectClass": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "group", -              "identityStoreId": 0 -            } -          ], -          "name": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup1", -              "identityStoreId": 0 -            } -          ], -          "CN": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup1", -              "identityStoreId": 0 -            } -          ], -          "objectCategory": [ -          ] -        }, -        "type": null, -        "filePermissionCollection": { -        } -      }, -      "objectIdFromIdentityStore": "4ba9f608-8011-4a1d-80eb-777d605ac19e", -      "elasticHitScore": 1.0, -      "objectDisplayName": "Expired_demogroup1", -      "stopNotification": false, -      "objectName": null, -      "identityStore": null, -      "identityStoreId": 2, -      "objectType": "group" -    } -  ] -} -``` - -See Also - -- Common Errors -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/user/getmyexpiringgroups.md b/docs/directorymanager/11.0/apis/user/getmyexpiringgroups.md deleted file mode 100644 index 9351fa66b8..0000000000 --- a/docs/directorymanager/11.0/apis/user/getmyexpiringgroups.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: "Get My Expiring Groups" -description: "Get My Expiring Groups" -sidebar_position: 70 ---- - -# Get My Expiring Groups - -Use this API to retrieve the expiring groups of the authenticated user. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Users/{userIdentity}/Groups/Expiring?sortOrder=1&pageNo=1&pageSize=1&displayNestedOwnership=true&displayAdditionalGroups=true&calculateTotal=true&searchMode=0 - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -  "attributesToLoad": [ -    "displayName" -  ] -} -``` - -#### Sample Response Syntax - -``` -{ -  "total": 1, -  "data": [ -    { -      "attributesBusinessObject": { -        "attributesCollection": { -          "container": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "OU=Groups,DC=demo,DC=local", -              "identityStoreId": 0 -            } -          ], -          "displayName": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup1", -              "identityStoreId": 0 -            } -          ], -          "objectClass": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "group", -              "identityStoreId": 0 -            } -          ], -          "name": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup1", -              "identityStoreId": 0 -            } -          ], -          "CN": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup1", -              "identityStoreId": 0 -            } -          ], -          "objectCategory": [ -          ] -        }, -        "type": null, -        "filePermissionCollection": { -        } -      }, -      "objectIdFromIdentityStore": "22409d19-f89c-4c13-81cc-131a212044a7", -      "elasticHitScore": 1.0, -      "objectDisplayName": "demogroup1", -      "stopNotification": false, -      "objectName": null, -      "identityStore": null, -      "identityStoreId": 2, -      "objectType": "group" -    } -  ] -} -``` - -See Also - -- Common Errors -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/user/getmyexpiringgroupscount.md b/docs/directorymanager/11.0/apis/user/getmyexpiringgroupscount.md deleted file mode 100644 index 4017496207..0000000000 --- a/docs/directorymanager/11.0/apis/user/getmyexpiringgroupscount.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Get My Expiring Groups Count" -description: "Get My Expiring Groups Count" -sidebar_position: 80 ---- - -# Get My Expiring Groups Count - -This API retrieves the number of expiring groups of the authenticate user. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Users/{userIdentity}/Groups/Expiring/count?includeAdditionalOwnershipGroups=true&includeNestedOwnershipGroups=true&searchMode=0 - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -  "includeAdditionalOwnershipGroups": true, -  "includeNestedOwnershipGroups": true -} -``` - -#### Sample Response Syntax - -``` -{ -  "count": 1 -} -``` - -See Also - -- Common Errors -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/user/getmygroups.md b/docs/directorymanager/11.0/apis/user/getmygroups.md deleted file mode 100644 index ad4f12d229..0000000000 --- a/docs/directorymanager/11.0/apis/user/getmygroups.md +++ /dev/null @@ -1,181 +0,0 @@ ---- -title: "Get My Groups" -description: "Get My Groups" -sidebar_position: 90 ---- - -# Get My Groups - -The Get My Groups API retrieves groups of the authenticated user. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Users/{userIdentity}/Groups?sortOrder=1&pageNo=1&pageSize=2&displayNestedOwnership=false&displayAdditionalGroups=false&calculateTotal=true&searchMode=0&isManagedBy=false - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -  "attributesToLoad": [ -    "displayName" -  ] -} -``` - -#### Sample Response Syntax - -``` -{ -  "total": 1305, -  "data": [ -    { -      "attributesBusinessObject": { -        "attributesCollection": { -          "container": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "OU=Groups,DC=demo,DC=local", -              "identityStoreId": 0 -            } -          ], -          "displayName": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup1", -              "identityStoreId": 0 -            } -          ], -          "objectClass": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "group", -              "identityStoreId": 0 -            } -          ], -          "name": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup1", -              "identityStoreId": 0 -            } -          ], -          "CN": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup1", -              "identityStoreId": 0 -            } -          ], -          "objectCategory": [ -          ] -        }, -        "type": null, -        "filePermissionCollection": { -        } -      }, -      "objectIdFromIdentityStore": "9ff16022-6669-44dc-a330-e0cc888a639e", -      "elasticHitScore": 1.0, -      "objectDisplayName": "demogroup1", -      "stopNotification": false, -      "objectName": null, -      "identityStore": null, -      "identityStoreId": 2, -      "objectType": "group" -    }, -    { -      "attributesBusinessObject": { -        "attributesCollection": { -          "container": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "OU=Groups,DC=demo,DC=local", -              "identityStoreId": 0 -            } -          ], -          "displayName": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup2", -              "identityStoreId": 0 -            } -          ], -          "objectClass": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "group", -              "identityStoreId": 0 -            } -          ], -          "name": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup2", -              "identityStoreId": 0 -            } -          ], -          "CN": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup2", -              "identityStoreId": 0 -            } -          ], -          "objectCategory": [ -          ] -        }, -        "type": null, -        "filePermissionCollection": { -        } -      }, -      "objectIdFromIdentityStore": "1f3b65f6-6851-4504-a4d3-97b461eb3db5", -      "elasticHitScore": 1.0, -      "objectDisplayName": "demogroup2", -      "stopNotification": false, -      "objectName": null, -      "identityStore": null, -      "identityStoreId": 2, -      "objectType": "group" -    } -  ] -} -``` - -See Also - -- Common Errors -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/user/getmygroupscount.md b/docs/directorymanager/11.0/apis/user/getmygroupscount.md deleted file mode 100644 index d1973ec24c..0000000000 --- a/docs/directorymanager/11.0/apis/user/getmygroupscount.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Get My Groups Count" -description: "Get My Groups Count" -sidebar_position: 100 ---- - -# Get My Groups Count - -This API retrieves the number of groups of the authenticated user. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Users/{userIdentity}/Groups/count?sortOrder=1&pageNo=1&pageSize=2&displayNestedOwnership=false&displayAdditionalGroups=false&calculateTotal=true&searchMode=0&isManagedBy=false - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -  "includeAdditionalOwnershipGroups": true, -  "includeNestedOwnershipGroups": true -} -``` - -#### Sample Response Syntax - -``` -{ -    "count": 1305 -} -``` - -See Also - -- Common Errors -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/user/getmymemberships.md b/docs/directorymanager/11.0/apis/user/getmymemberships.md deleted file mode 100644 index bc7f604750..0000000000 --- a/docs/directorymanager/11.0/apis/user/getmymemberships.md +++ /dev/null @@ -1,181 +0,0 @@ ---- -title: "Get My Membership" -description: "Get My Membership" -sidebar_position: 110 ---- - -# Get My Membership - -Use this API to retrieve membership information of the authenticated user. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Users/{userIdentity}/Groups/Membership?sortOrder=1&pageNo=1&pageSize=8&displayAdditionalGroups=true&calculateTotal=true&searchMode=0 - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -  "attributesToLoad": [ -    "displayName" -  ] -} -``` - -#### Sample Response Syntax - -``` -{ -  "total": 32, -  "data": [ -    { -      "attributesBusinessObject": { -        "attributesCollection": { -          "container": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "CN=Builtin,DC=demo,DC=local", -              "identityStoreId": 0 -            } -          ], -          "displayName": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "Administrators", -              "identityStoreId": 0 -            } -          ], -          "objectClass": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "group", -              "identityStoreId": 0 -            } -          ], -          "name": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "Administrators", -              "identityStoreId": 0 -            } -          ], -          "CN": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "Administrators", -              "identityStoreId": 0 -            } -          ], -          "objectCategory": [ -          ] -        }, -        "type": null, -        "filePermissionCollection": { -        } -      }, -      "objectIdFromIdentityStore": "6791c6ed-3e1b-4516-9c67-c72b64f6beeb", -      "elasticHitScore": 1.0, -      "objectDisplayName": "Administrators", -      "stopNotification": false, -      "objectName": null, -      "identityStore": null, -      "identityStoreId": 2, -      "objectType": "group" -    }, -    { -      "attributesBusinessObject": { -        "attributesCollection": { -          "container": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "CN=Users,DC=demo,DC=local", -              "identityStoreId": 0 -            } -          ], -          "displayName": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "Schema Admins", -              "identityStoreId": 0 -            } -          ], -          "objectClass": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "group", -              "identityStoreId": 0 -            } -          ], -          "name": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "Schema Admins", -              "identityStoreId": 0 -            } -          ], -          "CN": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "Schema Admins", -              "identityStoreId": 0 -            } -          ], -          "objectCategory": [ -          ] -        }, -        "type": null, -        "filePermissionCollection": { -        } -      }, -      "objectIdFromIdentityStore": "51d667dd-6c81-41a3-af8a-5ab6339832a0", -      "elasticHitScore": 1.0, -      "objectDisplayName": "Schema Admins", -      "stopNotification": false, -      "objectName": null, -      "identityStore": null, -      "identityStoreId": 2, -      "objectType": "group" -    } -  ] -} -``` - -See Also - -- Common Errors -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/user/getmymemebershipcount.md b/docs/directorymanager/11.0/apis/user/getmymemebershipcount.md deleted file mode 100644 index 931df91254..0000000000 --- a/docs/directorymanager/11.0/apis/user/getmymemebershipcount.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Get My Membership Count" -description: "Get My Membership Count" -sidebar_position: 120 ---- - -# Get My Membership Count - -Using this API, the authenticated user can get the number of groups the user is a member of. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Users/{userIdentity}/Groups/Membership/count?sortOrder=1&pageNo=1&pageSize=8&displayAdditionalGroups=true&calculateTotal=true&searchMode=0 - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -  "includeAdditionalOwnershipGroups": true, -  "includeNestedOwnershipGroups": true -} -``` - -#### Sample Response Syntax - -``` -{ -    "count": 32 -} -``` - -See Also - -- Common Errors -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/user/getmysmartgroups.md b/docs/directorymanager/11.0/apis/user/getmysmartgroups.md deleted file mode 100644 index 86fcdddb39..0000000000 --- a/docs/directorymanager/11.0/apis/user/getmysmartgroups.md +++ /dev/null @@ -1,181 +0,0 @@ ---- -title: "Get My Smart Groups" -description: "Get My Smart Groups" -sidebar_position: 130 ---- - -# Get My Smart Groups - -Using this API, information about the authentiacated user's Smart Groups can be retrieved. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Users/{userIdentity}/Groups/SmartGroups?sortOrder=1&pageNo=1&pageSize=2&displayNestedOwnership=true&displayAdditionalGroups=true&calculateTotal=true&searchMode=0 - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -  "attributesToLoad": [ -    "displayName" -  ] -} -``` - -#### Sample Response Syntax - -``` -{ -  "total": 2, -  "data": [ -    { -      "attributesBusinessObject": { -        "attributesCollection": { -          "container": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "OU=Groups,DC=demo,DC=local", -              "identityStoreId": 0 -            } -          ], -          "displayName": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup2", -              "identityStoreId": 0 -            } -          ], -          "objectClass": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "group", -              "identityStoreId": 0 -            } -          ], -          "name": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup2", -              "identityStoreId": 0 -            } -          ], -          "CN": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup2", -              "identityStoreId": 0 -            } -          ], -          "objectCategory": [ -          ] -        }, -        "type": null, -        "filePermissionCollection": { -        } -      }, -      "objectIdFromIdentityStore": "bb32b778-6b3e-4ba2-987b-c830605d4e60", -      "elasticHitScore": 1.0, -      "objectDisplayName": "demogroup2", -      "stopNotification": false, -      "objectName": null, -      "identityStore": null, -      "identityStoreId": 2, -      "objectType": "group" -    }, -    { -      "attributesBusinessObject": { -        "attributesCollection": { -          "container": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "OU=Groups,DC=demo,DC=local", -              "identityStoreId": 0 -            } -          ], -          "displayName": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup1", -              "identityStoreId": 0 -            } -          ], -          "objectClass": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "group", -              "identityStoreId": 0 -            } -          ], -          "name": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup1", -              "identityStoreId": 0 -            } -          ], -          "CN": [ -            { -              "attributeCollection": { -              }, -              "action": 0, -              "dn": null, -              "value": "demogroup1", -              "identityStoreId": 0 -            } -          ], -          "objectCategory": [ -          ] -        }, -        "type": null, -        "filePermissionCollection": { -        } -      }, -      "objectIdFromIdentityStore": "11e353c0-4073-417a-ba7d-ff863b97d667", -      "elasticHitScore": 1.0, -      "objectDisplayName": "demogroup1", -      "stopNotification": false, -      "objectName": null, -      "identityStore": null, -      "identityStoreId": 2, -      "objectType": "group" -    } -  ] -} -``` - -See Also - -- Common Errors -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/user/getuser.md b/docs/directorymanager/11.0/apis/user/getuser.md deleted file mode 100644 index 0e93b0a79b..0000000000 --- a/docs/directorymanager/11.0/apis/user/getuser.md +++ /dev/null @@ -1,169 +0,0 @@ ---- -title: "Get a User" -description: "Get a User" -sidebar_position: 140 ---- - -# Get a User - -Use this API to get information of a single user. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identityStoreId}/Users/{userIdentity} - -## HTTP Method - -GET - -#### Sample Response Syntax - -``` -{ -  "country": null, -  "passwordNeverExpires": null, -  "attributesBusinessObject": { -    "attributesCollection": { -      "proxyAddresses": [ -        { -          "attributeCollection": { -          }, -          "action": 0, -          "dn": null, -          "value": "SMTP:demouser1@demo.local", -          "identityStoreId": 0 -        } -      ], -      "container": [ -        { -          "attributeCollection": { -          }, -          "action": 0, -          "dn": null, -          "value": "CN=Users,DC=demo,DC=local", -          "identityStoreId": 0 -        } -      ], -      "mail": [ -        { -          "attributeCollection": { -          }, -          "action": 0, -          "dn": null, -          "value": "demouser1@demo.local", -          "identityStoreId": 0 -        } -      ], -      "displayName": [ -        { -          "attributeCollection": { -          }, -          "action": 0, -          "dn": null, -          "value": "demo,demouser1", -          "identityStoreId": 0 -        } -      ], -      "objectClass": [ -        { -          "attributeCollection": { -          }, -          "action": 0, -          "dn": null, -          "value": "user", -          "identityStoreId": 0 -        } -      ], -      "name": [ -        { -          "attributeCollection": { -          }, -          "action": 0, -          "dn": null, -          "value": "demouser1 demo", -          "identityStoreId": 0 -        } -      ], -      "CN": [ -        { -          "attributeCollection": { -          }, -          "action": 0, -          "dn": null, -          "value": "demouser1 demo", -          "identityStoreId": 0 -        } -      ], -      "userPrincipalName": [ -        { -          "attributeCollection": { -          }, -          "action": 0, -          "dn": null, -          "value": "demouser1@demo.local", -          "identityStoreId": 0 -        } -      ], -      "objectCategory": [ -      ] -    }, -    "type": null, -    "filePermissionCollection": { -    } -  }, -  "postalCode": null, -  "samAccountName": null, -  "office": null, -  "serverSetting": null, -  "logonName": null, -  "identityStoreName": null, -  "objectType": "user", -  "password": null, -  "homeDataBase": null, -  "familyName": null, -  "action": 0, -  "state": null, -  "fax": null, -  "identityStore": null, -  "upnSuffix": null, -  "primaryEmail": null, -  "initials": null, -  "telephone": null, -  "linkedIdentities": null, -  "firstName": null, -  "objectDisplayName": "demo,demouser1", -  "stopNotification": false, -  "objectSid": null, -  "lastName": null, -  "preferredLanguage": null, -  "objectIdFromIdentityStore": "a79934a7-c6a0-4a1c-8860-f9aeb4788e98", -  "city": null, -  "displayName": "demo,demouser1", -  "passwordNoChange": null, -  "roles": null, -  "title": null, -  "alias": null, -  "company": null, -  "department": null, -  "applicationName": null, -  "accountLocked": false, -  "passwordLastSet": null, -  "userClassName": null, -  "storeType": null, -  "mobile": null, -  "passwordForceChange": false, -  "streetAddress": null, -  "elasticHitScore": 0.0, -  "accountDisabled": null, -  "objectName": null, -  "usageLocation": null, -  "dc": null, -  "identityStoreId": 2 -} -``` - -See Also - -- Common Errors -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/user/getusers.md b/docs/directorymanager/11.0/apis/user/getusers.md deleted file mode 100644 index a2fdbbbc7e..0000000000 --- a/docs/directorymanager/11.0/apis/user/getusers.md +++ /dev/null @@ -1,289 +0,0 @@ ---- -title: "Get Users" -description: "Get Users" -sidebar_position: 150 ---- - -# Get Users - -Use this API to retrieve information of multiple users from the specified identity store. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identityStoreId}/Users - -## HTTP Method - -GET - -#### Sample Request Syntax - -``` -{ -  "identityStoreID": 2, -  "objectIdentities": [ -    "a79934a7-c6a0-4a1c-8860-f9aeb4788e98", -    "3130b400-45bf-4ed2-b4bd-a461fe4ae949" -  ], -  "addAndResolveAdditionalDirectReports": true, -  "attributesToLoad": [ -    "displayName", -    "department" -  ] -} -``` - -#### Sample Response Syntax - -``` -[ -    { -        "country": null, -        "passwordNeverExpires": null, -        "attributesBusinessObject": { -            "attributesCollection": { -                "container": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "OU=Users,DC=demo,DC=local", -                        "identityStoreId": 0 -                    } -                ], -                "displayName": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "AbbeyCrawford", -                        "identityStoreId": 0 -                    } -                ], -                "objectClass": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "user", -                        "identityStoreId": 0 -                    } -                ], -                "name": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "AbbeyCrawford", -                        "identityStoreId": 0 -                    } -                ], -                "CN": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "AbbeyCrawford", -                        "identityStoreId": 0 -                    } -                ], -                "department": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "Engineering", -                        "identityStoreId": 0 -                    } -                ], -                "objectCategory": [ -                ] -            }, -            "type": null, -            "filePermissionCollection": { -            } -        }, -        "postalCode": null, -        "samAccountName": null, -        "office": null, -        "serverSetting": null, -        "logonName": null, -        "identityStoreName": null, -        "objectType": "user", -        "password": null, -        "homeDataBase": null, -        "familyName": null, -        "action": 0, -        "state": null, -        "fax": null, -        "identityStore": null, -        "upnSuffix": null, -        "primaryEmail": null, -        "initials": null, -        "telephone": null, -        "linkedIdentities": null, -        "firstName": null, -        "objectDisplayName": "AbbeyCrawford", -        "stopNotification": false, -        "objectSid": null, -        "lastName": null, -        "preferredLanguage": null, -        "objectIdFromIdentityStore": "3130b400-45bf-4ed2-b4bd-a461fe4ae949", -        "city": null, -        "displayName": "AbbeyCrawford", -        "passwordNoChange": null, -        "roles": null, -        "title": null, -        "useras": null, -        "company": null, -        "department": null, -        "applicationName": null, -        "accountLocked": false, -        "passwordLastSet": null, -        "userClassName": null, -        "storeType": null, -        "mobile": null, -        "passwordForceChange": false, -        "streetAddress": null, -        "elasticHitScore": 0.0, -        "accountDisabled": null, -        "objectName": null, -        "usageLocation": null, -        "dc": null, -        "identityStoreId": 2 -    }, -    { -        "country": null, -        "passwordNeverExpires": null, -        "attributesBusinessObject": { -            "attributesCollection": { -                "container": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "CN=Users,DC=demo,DC=local", -                        "identityStoreId": 0 -                    } -                ], -                "displayName": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "user,demo", -                        "identityStoreId": 0 -                    } -                ], -                "objectClass": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "user", -                        "identityStoreId": 0 -                    } -                ], -                "name": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "demo user", -                        "identityStoreId": 0 -                    } -                ], -                "CN": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "demo user", -                        "identityStoreId": 0 -                    } -                ], -                "department": [ -                    { -                        "attributeCollection": { -                        }, -                        "action": 0, -                        "dn": null, -                        "value": "QA", -                        "identityStoreId": 0 -                    } -                ], -                "objectCategory": [ -                ] -            }, -            "type": null, -            "filePermissionCollection": { -            } -        }, -        "postalCode": null, -        "samAccountName": null, -        "office": null, -        "serverSetting": null, -        "logonName": null, -        "identityStoreName": null, -        "objectType": "user", -        "password": null, -        "homeDataBase": null, -        "familyName": null, -        "action": 0, -        "state": null, -        "fax": null, -        "identityStore": null, -        "upnSuffix": null, -        "primaryEmail": null, -        "initials": null, -        "telephone": null, -        "linkedIdentities": null, -        "firstName": null, -        "objectDisplayName": "user,demo", -        "stopNotification": false, -        "objectSid": null, -        "lastName": null, -        "preferredLanguage": null, -        "objectIdFromIdentityStore": "a79934a7-c6a0-4a1c-8860-f9aeb4788e98", -        "city": null, -        "displayName": "user,demo", -        "passwordNoChange": null, -        "roles": null, -        "title": null, -        "alias": null, -        "company": null, -        "department": null, -        "applicationName": null, -        "accountLocked": false, -        "passwordLastSet": null, -        "userClassName": null, -        "storeType": null, -        "mobile": null, -        "passwordForceChange": false, -        "streetAddress": null, -        "elasticHitScore": 0.0, -        "accountDisabled": null, -        "objectName": null, -        "usageLocation": null, -        "dc": null, -        "identityStoreId": 2 -    } -] -``` - -See Also - -- Common Errors -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/user/updateuser.md b/docs/directorymanager/11.0/apis/user/updateuser.md deleted file mode 100644 index 9f58e9780d..0000000000 --- a/docs/directorymanager/11.0/apis/user/updateuser.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "Update a User" -description: "Update a User" -sidebar_position: 160 ---- - -# Update a User - -This API updates a user's information in the specified identity store. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Users - -## HTTP Method - -PATCH - -#### Sample Request Syntax - -``` -{ -  "AttributesToUpdate": { -    "AttributesCollection": { -      "department": [ -        { -          "Value": "Engineering", -          "Action": 0 -        } -      ] -    } -  }, -  "ObjectIdentity": "a79934a7-c6a0-4a1c-8860-f9aeb4788e98", -  "IdentityStoreID": "2" -} -``` - -#### Sample Response Syntax - -``` -{ -    "currentDirectoryServer": null, -    "exceptionMessagesAttributeWise": null, -    "data": "", -    "identityStoreObject": null, -    "name": null, -    "errorCode": null, -    "details": [ -        { -            "currentDirectoryServer": null, -            "exceptionMessagesAttributeWise": null, -            "data": "", -            "identityStoreObject": null, -            "name": "department", -            "errorCode": null, -            "details": [ -            ], -            "type": 8, -            "message": null, -            "status": 0 -        } -    ], -    "type": 0, -    "message": null, -    "status": 0 -} -``` - -See Also - -- Common Errors -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) -- Group APIs diff --git a/docs/directorymanager/11.0/apis/user/userapis.md b/docs/directorymanager/11.0/apis/user/userapis.md deleted file mode 100644 index 2dd314713f..0000000000 --- a/docs/directorymanager/11.0/apis/user/userapis.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "User APIs" -description: "User APIs" -sidebar_position: 60 ---- - -# User APIs - -GroupID provides the following APIs to perform user-specific functions: - -- [Create a User](/docs/directorymanager/11.0/apis/user/createuser.md) -- [Delete a User](/docs/directorymanager/11.0/apis/user/deleteuser.md) -- [Delete Users](/docs/directorymanager/11.0/apis/user/deleteusers.md) -- [Get All Groups](/docs/directorymanager/11.0/apis/user/getallgroups.md) -- [Get My Dynasties](/docs/directorymanager/11.0/apis/user/getmydynasties.md) -- [Get My Expired Groups](/docs/directorymanager/11.0/apis/user/getmyexpiredgroups.md) -- [Get My Expiring Groups](/docs/directorymanager/11.0/apis/user/getmyexpiringgroups.md) -- [Get My Expiring Groups Count](/docs/directorymanager/11.0/apis/user/getmyexpiringgroupscount.md) -- [Get My Groups](/docs/directorymanager/11.0/apis/user/getmygroups.md) -- [Get My Groups Count](/docs/directorymanager/11.0/apis/user/getmygroupscount.md) -- [Get My Membership](/docs/directorymanager/11.0/apis/user/getmymemberships.md) -- [Get My Membership Count](/docs/directorymanager/11.0/apis/user/getmymemebershipcount.md) -- [Get My Smart Groups](/docs/directorymanager/11.0/apis/user/getmysmartgroups.md) -- [Get a User](/docs/directorymanager/11.0/apis/user/getuser.md) -- [Get Users](/docs/directorymanager/11.0/apis/user/getusers.md) - -See Also - -- Common Errors -- Get Token -- Contact APIs -- Data Source APIs -- Group APIs -- [Logs APIs](/docs/directorymanager/11.0/apis/logs/logsapis.md) -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) -- Workflow APIs diff --git a/docs/directorymanager/11.0/apis/welcome.md b/docs/directorymanager/11.0/apis/welcome.md deleted file mode 100644 index a0d8a6e311..0000000000 --- a/docs/directorymanager/11.0/apis/welcome.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "GroupID APIs" -description: "GroupID APIs" -sidebar_position: 90 ---- - -# GroupID APIs - -GroupID APIs enable developers to quickly intergrate their applications with GroupID to "perform -actions" such as group creation and lifecycle operations using a relevant GroupID API. - -Various GroupID functions can be performed using these APIs. The response can be returned in JSON -format. - -These URLs represent various resources — any information or content accessed at that location, which -can be returned in JSON format. Often resources have one or more methods that can be performed on -them over HTTP, like `GET`, `POST`, `PUT`, `PATCH`, and `DELETE`. The action represented by the -first and last of these is clear, but `POST` and `PATCH` have specific meanings. How they are -defined is confusing, but the general rule is: use `POST` to create resources, `PUT` and `PATCH` to -update resources. - -NOTE: All the APIs documented in the API section are for an Active Directory based identity store. -In each API, the **Sample Request Syntax** and the **Sample Response Syntax** sections have -attributes that are supported in an Active Directory based identity store. - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) diff --git a/docs/directorymanager/11.0/apis/workflow/_category_.json b/docs/directorymanager/11.0/apis/workflow/_category_.json deleted file mode 100644 index 13cf792801..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Workflow APIs", - "position": 70, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "workflowapis" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/apis/workflow/allwfroutes.md b/docs/directorymanager/11.0/apis/workflow/allwfroutes.md deleted file mode 100644 index 07be5d0f0e..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/allwfroutes.md +++ /dev/null @@ -1,409 +0,0 @@ ---- -title: "All Workflow Routes" -description: "All Workflow Routes" -sidebar_position: 10 ---- - -# All Workflow Routes - -Use this API to get information about all workflow routes, system defined and user defined, in a -specified identity store. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Workflows/Routes - -## HTTP Methods - -GET - -#### Sample Response Syntax - -``` -[ -    { -        "workflowRouteId": 2, -        "identityStoreID": 2, -        "name": "Workflow to Reset Password", -        "description": "Apply workflow when a user tries to reset its password.", -        "isEnabled": false, -        "type": 2, -        "typeDTO": null, -        "event": 12, -        "eventDTO": null, -        "routeFieldDTOList": [], -        "routeFilterDTOList": [], -        "routeApproverDTOList": [ -            { -                "workflowRouteApproverId": 2, -                "approver": "ManagerAndAdditionalManager", -                "approverIdentityStoreID": 2, -                "workflowRouteId": 2, -                "approverType": 4, -                "approverName": null -            } -        ], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 2, -                "objectTypeId": 2, -                "workflowRouteId": 2, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": false, -        "portalUrl": null, -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    }, -    { -        "workflowRouteId": 3, -        "identityStoreID": 2, -        "name": "Workflow to Change Group Expiration Policy", -        "description": "Apply workflow when Group Expiration Policy is changed.", -        "isEnabled": false, -        "type": 2, -        "typeDTO": null, -        "event": 7, -        "eventDTO": null, -        "routeFieldDTOList": [], -        "routeFilterDTOList": [], -        "routeApproverDTOList": [], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 3, -                "objectTypeId": 1, -                "workflowRouteId": 3, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": false, -        "portalUrl": null, -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    }, -    { -        "workflowRouteId": 4, -        "identityStoreID": 2, -        "name": "Workflow to Nest a Group", -        "description": "Apply workflow when groups are added into the membership of other groups.", -        "isEnabled": true, -        "type": 2, -        "typeDTO": null, -        "event": 6, -        "eventDTO": null, -        "routeFieldDTOList": [ -            { -                "workflowRouteFieldId": 1, -                "field": "member", -                "workflowRouteId": 4 -            } -        ], -        "routeFilterDTOList": [], -        "routeApproverDTOList": [ -            { -                "workflowRouteApproverId": 3, -                "approver": "OwnerAndAdditionalOwner", -                "approverIdentityStoreID": 2, -                "workflowRouteId": 4, -                "approverType": 5, -                "approverName": null -            } -        ], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 4, -                "objectTypeId": 1, -                "workflowRouteId": 4, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": false, -        "portalUrl": null, -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    }, -    { -        "workflowRouteId": 5, -        "identityStoreID": 2, -        "name": "Workflow to Join a Group", -        "description": "Apply workflow when a user joins a semi-private group.", -        "isEnabled": true, -        "type": 2, -        "typeDTO": null, -        "event": 4, -        "eventDTO": null, -        "routeFieldDTOList": [ -            { -                "workflowRouteFieldId": 2, -                "field": "member", -                "workflowRouteId": 5 -            } -        ], -        "routeFilterDTOList": [], -        "routeApproverDTOList": [ -            { -                "workflowRouteApproverId": 4, -                "approver": "OwnerAndAdditionalOwner", -                "approverIdentityStoreID": 2, -                "workflowRouteId": 5, -                "approverType": 5, -                "approverName": null -            } -        ], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 5, -                "objectTypeId": 1, -                "workflowRouteId": 5, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": false, -        "portalUrl": null, -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    }, -    { -        "workflowRouteId": 6, -        "identityStoreID": 2, -        "name": "Workflow to Leave a Group", -        "description": "Apply workflow when a user leaves a semi-private group.", -        "isEnabled": true, -        "type": 2, -        "typeDTO": null, -        "event": 5, -        "eventDTO": null, -        "routeFieldDTOList": [ -            { -                "workflowRouteFieldId": 3, -                "field": "member", -                "workflowRouteId": 6 -            } -        ], -        "routeFilterDTOList": [], -        "routeApproverDTOList": [ -            { -                "workflowRouteApproverId": 5, -                "approver": "OwnerAndAdditionalOwner", -                "approverIdentityStoreID": 2, -                "workflowRouteId": 6, -                "approverType": 5, -                "approverName": null -            } -        ], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 6, -                "objectTypeId": 1, -                "workflowRouteId": 6, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": false, -        "portalUrl": null, -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    }, -    { -        "workflowRouteId": 7, -        "identityStoreID": 2, -        "name": "Workflow to Transfer a User", -        "description": "Apply workflow when a manager transfer direct report.", -        "isEnabled": true, -        "type": 2, -        "typeDTO": null, -        "event": 10, -        "eventDTO": null, -        "routeFieldDTOList": [ -            { -                "workflowRouteFieldId": 4, -                "field": "directReports", -                "workflowRouteId": 7 -            } -        ], -        "routeFilterDTOList": [], -        "routeApproverDTOList": [ -            { -                "workflowRouteApproverId": 6, -                "approver": "NewManager", -                "approverIdentityStoreID": 2, -                "workflowRouteId": 7, -                "approverType": 7, -                "approverName": null -            } -        ], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 7, -                "objectTypeId": 2, -                "workflowRouteId": 7, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": false, -        "portalUrl": null, -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    }, -    { -        "workflowRouteId": 8, -        "identityStoreID": 2, -        "name": "Workflow to Terminate a User", -        "description": "Apply workflow when a manager terminate direct report.", -        "isEnabled": false, -        "type": 2, -        "typeDTO": null, -        "event": 11, -        "eventDTO": null, -        "routeFieldDTOList": [ -            { -                "workflowRouteFieldId": 5, -                "field": "directReports", -                "workflowRouteId": 8 -            } -        ], -        "routeFilterDTOList": [], -        "routeApproverDTOList": [], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 8, -                "objectTypeId": 2, -                "workflowRouteId": 8, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": false, -        "portalUrl": null, -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    }, -    { -        "workflowRouteId": 9, -        "identityStoreID": 2, -        "name": "Workflow to Change manager", -        "description": "Apply workflow when a user tries to change manager.", -        "isEnabled": true, -        "type": 2, -        "typeDTO": null, -        "event": 2, -        "eventDTO": null, -        "routeFieldDTOList": [ -            { -                "workflowRouteFieldId": 6, -                "field": "manager", -                "workflowRouteId": 9 -            }, -            { -                "workflowRouteFieldId": 7, -                "field": "XAdditionalManager", -                "workflowRouteId": 9 -            } -        ], -        "routeFilterDTOList": [], -        "routeApproverDTOList": [ -            { -                "workflowRouteApproverId": 7, -                "approver": "ManagerAndAdditionalManager", -                "approverIdentityStoreID": 2, -                "workflowRouteId": 9, -                "approverType": 4, -                "approverName": null -            } -        ], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 9, -                "objectTypeId": 2, -                "workflowRouteId": 9, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": false, -        "portalUrl": null, -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    }, -    { -        "workflowRouteId": 10, -        "identityStoreID": 2, -        "name": "UserDefinied", -        "description": "UserDefinied", -        "isEnabled": true, -        "type": 1, -        "typeDTO": null, -        "event": 2, -        "eventDTO": null, -        "routeFieldDTOList": [ -            { -                "workflowRouteFieldId": 8, -                "field": "department", -                "workflowRouteId": 10 -            } -        ], -        "routeFilterDTOList": [ -            { -                "workflowRouteFilterId": 1, -                "name": "department", -                "operator": "Present", -                "value": "", -                "workflowRouteId": 10 -            } -        ], -        "routeApproverDTOList": [ -            { -                "workflowRouteApproverId": 9, -                "approver": "80ffbf0d-142c-4822-b843-1840bf50c05a", -                "approverIdentityStoreID": 2, -                "workflowRouteId": 10, -                "approverType": 0, -                "approverName": null -            } -        ], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 10, -                "objectTypeId": 2, -                "workflowRouteId": 10, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": true, -        "portalUrl": "https://gidauto:4443/GroupIDPortal", -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    } -]  -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/approvereq.md b/docs/directorymanager/11.0/apis/workflow/approvereq.md deleted file mode 100644 index 0266bbe46a..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/approvereq.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: "Approve a Request" -description: "Approve a Request" -sidebar_position: 20 ---- - -# Approve a Request - -Using this API you can approve a specified workflow request. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Workflows/Approve - -## HTTP Methods - -POST - -#### Sample Request Syntax - -``` -{ -    "workflowRequestID": 3 -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 0, -    "status": 0, -    "message": null, -    "data": "", -    "identityStoreObject": null, -    "details": [ -        { -            "name": "department", -            "type": 8, -            "status": 0, -            "message": null, -            "data": "", -            "identityStoreObject": null, -            "details": [], -            "currentDirectoryServer": null, -            "errorCode": null, -            "exceptionMessagesAttributeWise": null, -            "isResyncAble": true -        } -    ], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/configurepowerautomate.md b/docs/directorymanager/11.0/apis/workflow/configurepowerautomate.md deleted file mode 100644 index a1a0838a16..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/configurepowerautomate.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "Configure Power Automate" -description: "Configure Power Automate" -sidebar_position: 30 ---- - -# Configure Power Automate - -You can link an identity store in GroupID to Power Automate to trigger a flow from GroupID. Use this -API to connect an identity tore to Power Automate. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Workflows/MsFlow/Settings - -## HTTP Methods - -POST - -#### Sample Request Syntax - -``` -{ -    "msFlowID": 0, -    "msFlowUserID": "69d41d70-9b80-492d-aee8-56458db65582", -    "groupIDServiceUrl": "https://powerautomate-netwrix1.msappproxy.net/directorymanagerdataservice", -    "identityStoreID": 2, -    "isAuthenticated": true, -    "organizationalCode": "Netwrix-US", -    "region": "US", -    "tenantID": "69d41d70-9b80-492d-aee8-56458db65582" -} -``` - -#### Sample Response Syntax - -``` -{ -    "msFlowID": 3, -    "msFlowUserID": "69d41d70-9b80-492d-aee8-56458db65582", -    "groupIDServiceUrl": "https://powerautomate-netwrix1.msappproxy.net/directorymanagerdataservice", -    "identityStoreID": 2, -    "isAuthenticated": true, -    "organizationalCode": "Netwrix-US", -    "region": "US", -    "tenantID": "69d41d70-9b80-492d-aee8-56458db65582" -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/createroute.md b/docs/directorymanager/11.0/apis/workflow/createroute.md deleted file mode 100644 index afd73fb863..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/createroute.md +++ /dev/null @@ -1,150 +0,0 @@ ---- -title: "Create a Route" -description: "Create a Route" -sidebar_position: 40 ---- - -# Create a Route - -Use this API to create a new workflow route. To create a workflow, you have to specify the -following: - -- name - name of the workflow. -- Description - description of the workflow. -- Object - the object(s) - user, contact, group - to apply the workflow to. -- Event - a create, edit, or delete event that, when performed for the object(s), would trigger the - workflow. -- Field - one or more fields (attributes) that the workflow would apply to. When the values of these - attributes change for the object, an approval request is triggered. -- Filter - a condition that prevents the workflow from triggering, even when the object, event, and - field criterion is met. -- Approver - the object to send the workflow request for approval. - -See the -[Create a New Workflow](/docs/directorymanager/11.0/signin/workflow/implement.md#create-a-new-workflow) -section of the -[Implement Workflows](/docs/directorymanager/11.0/signin/workflow/implement.md) topic -for additional information. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Workflows/Routes - -## HTTP Methods - -POST - -#### Sample Request Syntax - -``` -{ -    "items": [ -        { -            "workflowRouteId": 0, -            "identityStoreID": 0, -            "name": "API_Definied", -            "description": "API_Definied", -            "isEnabled": true, -            "type": 1, -            "typeDTO": null, -            "event": 2, -            "eventDTO": null, -            "routeFieldDTOList": [ -                { -                    "workflowRouteFieldId": 0, -                    "field": "department", -                    "workflowRouteId": 0 -                } -            ], -            "routeFilterDTOList": [ -                { -                    "workflowRouteFilterId": 0, -                    "name": "department", -                    "operator": "Present", -                    "value": "", -                    "workflowRouteId": 0 -                } -            ], -            "routeApproverDTOList": [ -                { -                    "workflowRouteApproverId": 0, -                    "approver": "80ffbf0d-142c-4822-b843-1840bf50c05a", -                    "approverIdentityStoreID": 2, -                    "workflowRouteId": 0, -                    "approverType": 0, -                    "approverName": null -                } -            ], -            "routeObjectDTOList": [ -                { -                    "workflowRouteObjectId": 0, -                    "objectTypeId": 2, -                    "workflowRouteId": 0, -                    "objectTypeDTO": { -                        "objectTypeId": 0, -                        "name": null -                    } -                } -            ], -            "enableEmailApproval": false, -            "disableApproverAcceleration": true, -            "portalUrl": "https://gidauto:4443/GroupIDPortal", -            "msFlowRequestUrl": null, -            "msFlowToken": null, -            "isMsFlowTemplateRouteCreated": false, -            "updateMsFlowToken": false -        } -    ] -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 0, -    "status": 0, -    "message": null, -    "data": "", -    "identityStoreObject": null, -    "details": [ -        { -            "name": null, -            "type": 0, -            "status": 0, -            "message": null, -            "data": "", -            "identityStoreObject": null, -            "details": [ -                { -                    "name": "API_Definied", -                    "type": 5, -                    "status": 0, -                    "message": "", -                    "data": 13, -                    "identityStoreObject": null, -                    "details": [], -                    "currentDirectoryServer": "", -                    "errorCode": "", -                    "exceptionMessagesAttributeWise": null, -                    "isResyncAble": true -                } -            ], -            "currentDirectoryServer": null, -            "errorCode": null, -            "exceptionMessagesAttributeWise": null, -            "isResyncAble": true -        } -    ], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/deletereqstatus.md b/docs/directorymanager/11.0/apis/workflow/deletereqstatus.md deleted file mode 100644 index 5644fb9cdb..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/deletereqstatus.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Delete Request Status" -description: "Delete Request Status" -sidebar_position: 70 ---- - -# Delete Request Status - -Use this API to delete a request which has the specified status for more than specified days. For -example, if a request has approved status and is 60 days older, you can delete such requests using -this API. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Workflows/Status/{RequestStatus}?RequestsOlderThanInDays=1 - -## HTTP Methods - -DELETE - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 0, -    "status": 0, -    "message": null, -    "data": 1, -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/deleteroute.md b/docs/directorymanager/11.0/apis/workflow/deleteroute.md deleted file mode 100644 index 4593ad8bd9..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/deleteroute.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: "Delete a Route" -description: "Delete a Route" -sidebar_position: 50 ---- - -# Delete a Route - -You can use this API to delete a user-defined workflow route. - -NOTE: You cannot delete a system workflow. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Workflows/Routes?ids=1 - -## HTTP Methods - -DELETE - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 0, -    "status": 0, -    "message": null, -    "data": "", -    "identityStoreObject": null, -    "details": [ -        { -            "name": null, -            "type": 0, -            "status": 0, -            "message": null, -            "data": "", -            "identityStoreObject": null, -            "details": [], -            "currentDirectoryServer": null, -            "errorCode": null, -            "exceptionMessagesAttributeWise": null, -            "isResyncAble": true -        } -    ], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/deletewfreq.md b/docs/directorymanager/11.0/apis/workflow/deletewfreq.md deleted file mode 100644 index 17b176e5b1..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/deletewfreq.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Delete a Workflow Request" -description: "Delete a Workflow Request" -sidebar_position: 60 ---- - -# Delete a Workflow Request - -Delete a workflow request from a specified identity store ID of which is specified in the endpoint -URL. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Workflows/{WorkflowRequestID} - -## HTTP Methods - -DELETE - -#### Sample Response Syntax - -``` -true -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/denyreq.md b/docs/directorymanager/11.0/apis/workflow/denyreq.md deleted file mode 100644 index 4638dbe796..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/denyreq.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "Deny a Request" -description: "Deny a Request" -sidebar_position: 80 ---- - -# Deny a Request - -If you want to deny a workflow request in a specified identity store, you can use this API. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Workflows/Deny - -## HTTP Methods - -POST - -#### Sample Request Syntax - -``` -{ -    "workflowRequestID": 4, -    "reason": "Denied From API" -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 0, -    "status": 0, -    "message": null, -    "data": "", -    "identityStoreObject": null, -    "details": [], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/getapprovers.md b/docs/directorymanager/11.0/apis/workflow/getapprovers.md deleted file mode 100644 index bf47ecfde5..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/getapprovers.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: "Get Approvers" -description: "Get Approvers" -sidebar_position: 100 ---- - -# Get Approvers - -This API provides information about the approver(s) of a workflow request. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identityStoreId}/Workflows/Approvers - -## HTTP Methods - -GET - -#### Sample Request Syntax - -``` -{ -    "pageIndex": 1, -    "pageSize": 10, -    "filterCriteria": { -        "operator": null, -        "attribute": null, -        "value": null, -        "valueType": 0, -        "valueTypes": [ -            0 -        ], -        "donotEscapeValue": true, -        "child": [ -            { -                "operator": "Contains", -                "attribute": "Route.description", -                "value": "UserDefinied" -            } -        ] -    }, -    "getRecent": true, -    "totalFound": 0, -    "sortOrder": "asc", -    "loadDetails": true, -    "workflowRequestID": 8, -    "resolveApprovers": true, -    "excludedApprovers": [ -        "string" -    ] -}    -``` - -#### Sample Response Syntax - -``` -{ -    "total": 1, -    "data": [ -        { -            "workflowRequestApproverId": 0, -            "approver": "Jonathan Blackwell", -            "approverIdentityStoreID": 2, -            "workflowRequestId": 0, -            "approverType": 0, -            "approverName": "80ffbf0d-142c-4822-b843-1840bf50c05a", -            "approverClass": 6, -            "approverIdFromIdentityStore": null, -            "isDefaultApprover": false, -            "parentApproverIdentity": "" -        } -    ] -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/getdefroute.md b/docs/directorymanager/11.0/apis/workflow/getdefroute.md deleted file mode 100644 index 4da61ad800..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/getdefroute.md +++ /dev/null @@ -1,362 +0,0 @@ ---- -title: "Get Default Routes" -description: "Get Default Routes" -sidebar_position: 110 ---- - -# Get Default Routes - -Use this API to retrieve information about GroupID default workflows. These workflows are predefine -in GroupID that trigger when their associated events occur. - -See the -[System Workflows](/docs/directorymanager/11.0/signin/workflow/overview.md#system-workflows) -section of the [Workflows](/docs/directorymanager/11.0/signin/workflow/overview.md) -topic for additional information. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Workflows/Routes/Default - -## HTTP Methods - -GET - -#### Sample Response Syntax - -``` -[ -    { -        "workflowRouteId": 0, -        "identityStoreID": 2, -        "name": "Workflow to Reset Password", -        "description": "Apply workflow when a user tries to reset its password.", -        "isEnabled": false, -        "type": 2, -        "typeDTO": null, -        "event": 12, -        "eventDTO": null, -        "routeFieldDTOList": null, -        "routeFilterDTOList": null, -        "routeApproverDTOList": [ -            { -                "workflowRouteApproverId": 0, -                "approver": "ManagerAndAdditionalManager", -                "approverIdentityStoreID": 2, -                "workflowRouteId": 0, -                "approverType": 4, -                "approverName": null -            } -        ], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 0, -                "objectTypeId": 2, -                "workflowRouteId": 0, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": false, -        "portalUrl": null, -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    }, -    { -        "workflowRouteId": 0, -        "identityStoreID": 2, -        "name": "Workflow to Change Group Expiration Policy", -        "description": "Apply workflow when Group Expiration Policy is changed.", -        "isEnabled": false, -        "type": 2, -        "typeDTO": null, -        "event": 7, -        "eventDTO": null, -        "routeFieldDTOList": null, -        "routeFilterDTOList": null, -        "routeApproverDTOList": [], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 0, -                "objectTypeId": 1, -                "workflowRouteId": 0, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": false, -        "portalUrl": null, -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    }, -    { -        "workflowRouteId": 0, -        "identityStoreID": 2, -        "name": "Workflow to Nest a Group", -        "description": "Apply workflow when groups are added into the membership of other groups.", -        "isEnabled": true, -        "type": 2, -        "typeDTO": null, -        "event": 6, -        "eventDTO": null, -        "routeFieldDTOList": [ -            { -                "workflowRouteFieldId": 0, -                "field": "member", -                "workflowRouteId": 0 -            } -        ], -        "routeFilterDTOList": null, -        "routeApproverDTOList": [ -            { -                "workflowRouteApproverId": 0, -                "approver": "OwnerAndAdditionalOwner", -                "approverIdentityStoreID": 2, -                "workflowRouteId": 0, -                "approverType": 5, -                "approverName": null -            } -        ], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 0, -                "objectTypeId": 1, -                "workflowRouteId": 0, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": false, -        "portalUrl": null, -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    }, -    { -        "workflowRouteId": 0, -        "identityStoreID": 2, -        "name": "Workflow to Join a Group", -        "description": "Apply workflow when a user joins a semi-private group.", -        "isEnabled": true, -        "type": 2, -        "typeDTO": null, -        "event": 4, -        "eventDTO": null, -        "routeFieldDTOList": [ -            { -                "workflowRouteFieldId": 0, -                "field": "member", -                "workflowRouteId": 0 -            } -        ], -        "routeFilterDTOList": null, -        "routeApproverDTOList": [ -            { -                "workflowRouteApproverId": 0, -                "approver": "OwnerAndAdditionalOwner", -                "approverIdentityStoreID": 2, -                "workflowRouteId": 0, -                "approverType": 5, -                "approverName": null -            } -        ], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 0, -                "objectTypeId": 1, -                "workflowRouteId": 0, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": false, -        "portalUrl": null, -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    }, -    { -        "workflowRouteId": 0, -        "identityStoreID": 2, -        "name": "Workflow to Leave a Group", -        "description": "Apply workflow when a user leaves a semi-private group.", -        "isEnabled": true, -        "type": 2, -        "typeDTO": null, -        "event": 5, -        "eventDTO": null, -        "routeFieldDTOList": [ -            { -                "workflowRouteFieldId": 0, -                "field": "member", -                "workflowRouteId": 0 -            } -        ], -        "routeFilterDTOList": null, -        "routeApproverDTOList": [ -            { -                "workflowRouteApproverId": 0, -                "approver": "OwnerAndAdditionalOwner", -                "approverIdentityStoreID": 2, -                "workflowRouteId": 0, -                "approverType": 5, -                "approverName": null -            } -        ], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 0, -                "objectTypeId": 1, -                "workflowRouteId": 0, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": false, -        "portalUrl": null, -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    }, -    { -        "workflowRouteId": 0, -        "identityStoreID": 2, -        "name": "Workflow to Transfer a User", -        "description": "Apply workflow when a manager transfer direct report.", -        "isEnabled": true, -        "type": 2, -        "typeDTO": null, -        "event": 10, -        "eventDTO": null, -        "routeFieldDTOList": [ -            { -                "workflowRouteFieldId": 0, -                "field": "directReports", -                "workflowRouteId": 0 -            } -        ], -        "routeFilterDTOList": null, -        "routeApproverDTOList": [ -            { -                "workflowRouteApproverId": 0, -                "approver": "NewManager", -                "approverIdentityStoreID": 2, -                "workflowRouteId": 0, -                "approverType": 7, -                "approverName": null -            } -        ], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 0, -                "objectTypeId": 2, -                "workflowRouteId": 0, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": false, -        "portalUrl": null, -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    }, -    { -        "workflowRouteId": 0, -        "identityStoreID": 2, -        "name": "Workflow to Terminate a User", -        "description": "Apply workflow when a manager terminate direct report.", -        "isEnabled": false, -        "type": 2, -        "typeDTO": null, -        "event": 11, -        "eventDTO": null, -        "routeFieldDTOList": [ -            { -                "workflowRouteFieldId": 0, -                "field": "directReports", -                "workflowRouteId": 0 -            } -        ], -        "routeFilterDTOList": null, -        "routeApproverDTOList": [], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 0, -                "objectTypeId": 2, -                "workflowRouteId": 0, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": false, -        "portalUrl": null, -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    }, -    { -        "workflowRouteId": 0, -        "identityStoreID": 2, -        "name": "Workflow to Change manager", -        "description": "Apply workflow when a user tries to change manager.", -        "isEnabled": true, -        "type": 2, -        "typeDTO": null, -        "event": 2, -        "eventDTO": null, -        "routeFieldDTOList": [ -            { -                "workflowRouteFieldId": 0, -                "field": "manager", -                "workflowRouteId": 0 -            }, -            { -                "workflowRouteFieldId": 0, -                "field": "XAdditionalManager", -                "workflowRouteId": 0 -            } -        ], -        "routeFilterDTOList": null, -        "routeApproverDTOList": [ -            { -                "workflowRouteApproverId": 0, -                "approver": "ManagerAndAdditionalManager", -                "approverIdentityStoreID": 2, -                "workflowRouteId": 0, -                "approverType": 4, -                "approverName": null -            } -        ], -        "routeObjectDTOList": [ -            { -                "workflowRouteObjectId": 0, -                "objectTypeId": 2, -                "workflowRouteId": 0, -                "objectTypeDTO": null -            } -        ], -        "enableEmailApproval": false, -        "disableApproverAcceleration": false, -        "portalUrl": null, -        "msFlowRequestUrl": null, -        "msFlowToken": null, -        "isMsFlowTemplateRouteCreated": false, -        "updateMsFlowToken": false -    } -] -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/getmyreq.md b/docs/directorymanager/11.0/apis/workflow/getmyreq.md deleted file mode 100644 index 8adcf7a64e..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/getmyreq.md +++ /dev/null @@ -1,145 +0,0 @@ ---- -title: "Get My Requests" -description: "Get My Requests" -sidebar_position: 120 ---- - -# Get My Requests - -Using this API the logged in user can get information about his/her workflow request(s). - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identityStoreId}/Workflows/MyRequests - -## HTTP Methods - -GET - -#### Sample Response Syntax - -``` -[ -    { -        "workflowRequestId": 2, -        "legacyRequestId": null, -        "requesterIdentityStoreID": 2, -        "requester": "e4fbe0f3-8b8d-4cd0-8c4f-07c6f12a4743", -        "requesterClass": 6, -        "targetObjectIdentityStoreID": 2, -        "targetObject": "7ea556f0-b5fc-46f9-96d0-7212c2cd831d", -        "targetObjectClass": 6, -        "actualApproverIdentityStoreID": 0, -        "actualApprover": null, -        "createdOn": "2024-05-14T04:07:08.93", -        "workflowRouteId": 10, -        "statusId": 1, -        "objectName": "Usr_Martha Sevy", -        "container": null, -        "workflowStatusDTO": { -            "statusId": 1, -            "description": "Pending" -        }, -        "workflowRouteDTO": { -            "workflowRouteId": 10, -            "identityStoreID": 2, -            "name": "UserDefinied", -            "description": "UserDefinied", -            "isEnabled": true, -            "type": 1, -            "typeDTO": null, -            "event": 2, -            "eventDTO": null, -            "routeFieldDTOList": [ -                { -                    "workflowRouteFieldId": 8, -                    "field": "department", -                    "workflowRouteId": 10 -                } -            ], -            "routeFilterDTOList": [ -                { -                    "workflowRouteFilterId": 1, -                    "name": "department", -                    "operator": "Present", -                    "value": "", -                    "workflowRouteId": 10 -                } -            ], -            "routeApproverDTOList": [ -                { -                    "workflowRouteApproverId": 9, -                    "approver": "80ffbf0d-142c-4822-b843-1840bf50c05a", -                    "approverIdentityStoreID": 2, -                    "workflowRouteId": 10, -                    "approverType": 0, -                    "approverName": null -                } -            ], -            "routeObjectDTOList": [ -                { -                    "workflowRouteObjectId": 10, -                    "objectTypeId": 2, -                    "workflowRouteId": 10, -                    "objectTypeDTO": null -                } -            ], -            "enableEmailApproval": false, -            "disableApproverAcceleration": true, -            "portalUrl": "https://gidauto:4443/GroupIDPortal", -            "msFlowRequestUrl": null, -            "msFlowToken": null, -            "isMsFlowTemplateRouteCreated": false, -            "updateMsFlowToken": false -        }, -        "requestApproverDTOList": [ -            { -                "workflowRequestApproverId": 2, -                "approver": "80ffbf0d-142c-4822-b843-1840bf50c05a", -                "approverIdentityStoreID": 2, -                "workflowRequestId": 2, -                "approverType": 0, -                "approverName": "Jonathan Blackwell", -                "approverClass": 0, -                "approverIdFromIdentityStore": null, -                "isDefaultApprover": false, -                "parentApproverIdentity": "" -            } -        ], -        "fieldDTOList": [ -            { -                "fieldId": 2, -                "workflowRequestId": 2, -                "name": "department", -                "value": "QA_test", -                "oldValue": "QA", -                "valueType": 2, -                "fieldValueDTOList": [], -                "oldFieldValueDTOList": [], -                "fieldValueResolved": null, -                "oldFieldValueResolved": null -            } -        ], -        "objectType": 2, -        "statusUpdatedOn": "2024-05-14T00:00:00", -        "reason": null, -        "smartUpdateOption": null, -        "jobId": null, -        "description": null, -        "requesterName": "Administrator", -        "actualApproverName": null, -        "schedule": null, -        "accelerationStatus": 4, -        "currentAccelerationLevel": 0, -        "maxAccelerationLevel": 3, -        "whenAccelerated": "2024-05-14T00:00:00", -        "clientId": "442139c9-dba6-4d2b-8c54-a20babae0b2f", -        "workflowRequestConfigurations": "" -    } -]          -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/getpendingreq.md b/docs/directorymanager/11.0/apis/workflow/getpendingreq.md deleted file mode 100644 index a807cd1d0a..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/getpendingreq.md +++ /dev/null @@ -1,294 +0,0 @@ ---- -title: "Get Pending Requests" -description: "Get Pending Requests" -sidebar_position: 130 ---- - -# Get Pending Requests - -Use this API to retrieve information about all those requests with pending status provided you have -the required permissions to manage all requests. See the -[Miscellaneous](/docs/directorymanager/11.0/signin/securityrole/permissions.md#miscellaneous) -section of the -[Security Role – Permissions](/docs/directorymanager/11.0/signin/securityrole/permissions.md) -topic. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identityStoreId}/Workflows/Pending - -## HTTP Methods - -GET. - -#### Sample Request Syntax - -``` -{ -    "pageIndex": 1, -    "pageSize": 10, -    "filterCriteria": { -        "operator": "Contains", -        "attribute": "Route.description", -        "value": "UserDefinied", -        "valueType": 0, -        "valueTypes": [ -            0 -        ], -        "donotEscapeValue": true, -        "child": [ -            null -        ] -    }, -    "getRecent": true, -    "totalFound": 0, -    "sortOrder": "string" -} -``` - -#### Sample Response Syntax - -``` -{ -    "total": 2, -    "data": [ -        { -            "workflowRequestId": 2, -            "legacyRequestId": null, -            "requesterIdentityStoreID": 2, -            "requester": "e4fbe0f3-8b8d-4cd0-8c4f-07c6f12a4743", -            "requesterClass": 6, -            "targetObjectIdentityStoreID": 2, -            "targetObject": "7ea556f0-b5fc-46f9-96d0-7212c2cd831d", -            "targetObjectClass": 6, -            "actualApproverIdentityStoreID": 0, -            "actualApprover": null, -            "createdOn": "2024-05-14T04:07:08.93", -            "workflowRouteId": 10, -            "statusId": 1, -            "objectName": "Usr_Martha Sevy", -            "container": null, -            "workflowStatusDTO": { -                "statusId": 1, -                "description": "Pending" -            }, -            "workflowRouteDTO": { -                "workflowRouteId": 10, -                "identityStoreID": 2, -                "name": "UserDefinied", -                "description": "UserDefinied", -                "isEnabled": true, -                "type": 1, -                "typeDTO": null, -                "event": 2, -                "eventDTO": null, -                "routeFieldDTOList": [ -                    { -                        "workflowRouteFieldId": 8, -                        "field": "department", -                        "workflowRouteId": 10 -                    } -                ], -                "routeFilterDTOList": [ -                    { -                        "workflowRouteFilterId": 1, -                        "name": "department", -                        "operator": "Present", -                        "value": "", -                        "workflowRouteId": 10 -                    } -                ], -                "routeApproverDTOList": [ -                    { -                        "workflowRouteApproverId": 9, -                        "approver": "80ffbf0d-142c-4822-b843-1840bf50c05a", -                        "approverIdentityStoreID": 2, -                        "workflowRouteId": 10, -                        "approverType": 0, -                        "approverName": null -                    } -                ], -                "routeObjectDTOList": [ -                    { -                        "workflowRouteObjectId": 10, -                        "objectTypeId": 2, -                        "workflowRouteId": 10, -                        "objectTypeDTO": null -                    } -                ], -                "enableEmailApproval": false, -                "disableApproverAcceleration": true, -                "portalUrl": "https://gidauto:4443/GroupIDPortal", -                "msFlowRequestUrl": null, -                "msFlowToken": null, -                "isMsFlowTemplateRouteCreated": false, -                "updateMsFlowToken": false -            }, -            "requestApproverDTOList": [ -                { -                    "workflowRequestApproverId": 0, -                    "approver": "Jonathan Blackwell", -                    "approverIdentityStoreID": 0, -                    "workflowRequestId": 0, -                    "approverType": 0, -                    "approverName": "80ffbf0d-142c-4822-b843-1840bf50c05a", -                    "approverClass": 6, -                    "approverIdFromIdentityStore": null, -                    "isDefaultApprover": false, -                    "parentApproverIdentity": "" -                } -            ], -            "fieldDTOList": [ -                { -                    "fieldId": 2, -                    "workflowRequestId": 2, -                    "name": "department", -                    "value": "QA_test", -                    "oldValue": "QA", -                    "valueType": 2, -                    "fieldValueDTOList": [], -                    "oldFieldValueDTOList": [], -                    "fieldValueResolved": null, -                    "oldFieldValueResolved": null -                } -            ], -            "objectType": 2, -            "statusUpdatedOn": "2024-05-14T00:00:00", -            "reason": null, -            "smartUpdateOption": null, -            "jobId": null, -            "description": null, -            "requesterName": "Administrator", -            "actualApproverName": null, -            "schedule": null, -            "accelerationStatus": 4, -            "currentAccelerationLevel": 0, -            "maxAccelerationLevel": 3, -            "whenAccelerated": "2024-05-14T00:00:00", -            "clientId": "442139c9-dba6-4d2b-8c54-a20babae0b2f", -            "workflowRequestConfigurations": "" -        }, -        { -            "workflowRequestId": 1, -            "legacyRequestId": null, -            "requesterIdentityStoreID": 2, -            "requester": "376cf368-8fdb-4a6e-8cbc-c2f679815f55", -            "requesterClass": 6, -            "targetObjectIdentityStoreID": 2, -            "targetObject": "b6eb66b7-81d8-4fa5-a6f9-3707ad52076e", -            "targetObjectClass": 6, -            "actualApproverIdentityStoreID": 0, -            "actualApprover": null, -            "createdOn": "2024-05-14T04:02:28.89", -            "workflowRouteId": 10, -            "statusId": 1, -            "objectName": "Usr_Malik Schuld", -            "container": null, -            "workflowStatusDTO": { -                "statusId": 1, -                "description": "Pending" -            }, -            "workflowRouteDTO": { -                "workflowRouteId": 10, -                "identityStoreID": 2, -                "name": "UserDefinied", -                "description": "UserDefinied", -                "isEnabled": true, -                "type": 1, -                "typeDTO": null, -                "event": 2, -                "eventDTO": null, -                "routeFieldDTOList": [ -                    { -                        "workflowRouteFieldId": 8, -                        "field": "department", -                        "workflowRouteId": 10 -                    } -                ], -                "routeFilterDTOList": [ -                    { -                        "workflowRouteFilterId": 1, -                        "name": "department", -                        "operator": "Present", -                        "value": "", -                        "workflowRouteId": 10 -                    } -                ], -                "routeApproverDTOList": [ -                    { -                        "workflowRouteApproverId": 9, -                        "approver": "80ffbf0d-142c-4822-b843-1840bf50c05a", -                        "approverIdentityStoreID": 2, -                        "workflowRouteId": 10, -                        "approverType": 0, -                        "approverName": null -                    } -                ], -                "routeObjectDTOList": [ -                    { -                        "workflowRouteObjectId": 10, -                        "objectTypeId": 2, -                        "workflowRouteId": 10, -                        "objectTypeDTO": null -                    } -                ], -                "enableEmailApproval": false, -                "disableApproverAcceleration": true, -                "portalUrl": "https://gidauto:4443/GroupIDPortal", -                "msFlowRequestUrl": null, -                "msFlowToken": null, -                "isMsFlowTemplateRouteCreated": false, -                "updateMsFlowToken": false -            }, -            "requestApproverDTOList": [ -                { -                    "workflowRequestApproverId": 0, -                    "approver": "Administrator", -                    "approverIdentityStoreID": 0, -                    "workflowRequestId": 0, -                    "approverType": 0, -                    "approverName": "e4fbe0f3-8b8d-4cd0-8c4f-07c6f12a4743", -                    "approverClass": 6, -                    "approverIdFromIdentityStore": null, -                    "isDefaultApprover": false, -                    "parentApproverIdentity": "" -                } -            ], -            "fieldDTOList": [ -                { -                    "fieldId": 1, -                    "workflowRequestId": 1, -                    "name": "department", -                    "value": "TestDataNew", -                    "oldValue": "TestData", -                    "valueType": 2, -                    "fieldValueDTOList": [], -                    "oldFieldValueDTOList": [], -                    "fieldValueResolved": null, -                    "oldFieldValueResolved": null -                } -            ], -            "objectType": 2, -            "statusUpdatedOn": "2024-05-14T00:00:00", -            "reason": null, -            "smartUpdateOption": null, -            "jobId": null, -            "description": null, -            "requesterName": "Shah Elahi", -            "actualApproverName": null, -            "schedule": null, -            "accelerationStatus": 4, -            "currentAccelerationLevel": 0, -            "maxAccelerationLevel": 3, -            "whenAccelerated": "2024-05-14T00:00:00", -            "clientId": "442139c9-dba6-4d2b-8c54-a20babae0b2f", -            "workflowRequestConfigurations": "" -        } -    ] -}    -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/getpowerautomatesettings.md b/docs/directorymanager/11.0/apis/workflow/getpowerautomatesettings.md deleted file mode 100644 index 16cd3f830d..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/getpowerautomatesettings.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "Get Power Automate Settings" -description: "Get Power Automate Settings" -sidebar_position: 140 ---- - -# Get Power Automate Settings - -If in GroupID you have linked an identity store to Power Automate, you can retrieve the Power -Automate setting using this API. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Workflows/MsFlow/Settings - -## HTTP Methods - -GET - -#### Sample Response Syntax - -``` -{ -    "msFlowID": 1, -    "msFlowUserID": "69d41d70-9b80-492d-aee8-56458db65582", -    "groupIDServiceUrl": "https://powerautomate-netwrix1.msappproxy.net/directorymanagerdataservice", -    "identityStoreID": 2, -    "isAuthenticated": false, -    "organizationalCode": "Netwrix", -    "region": "US", -    "tenantID": "69d41d70-9b80-492d-aee8-56458db65582" -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/getwfreq.md b/docs/directorymanager/11.0/apis/workflow/getwfreq.md deleted file mode 100644 index e8a4216c61..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/getwfreq.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: "Get Workflow Requests" -description: "Get Workflow Requests" -sidebar_position: 150 ---- - -# Get Workflow Requests - -Using this API you can retrieve information about a workflow request ID(s) of which are specified in -the end point URL. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identityStoreId}/Workflows?ids=1 - -## HTTP Methods - -GET - -#### Sample Response Syntax - -``` -[ -    { -        "workflowRequestId": 1, -        "legacyRequestId": null, -        "requesterIdentityStoreID": 2, -        "requester": "376cf368-8fdb-4a6e-8cbc-c2f679815f55", -        "requesterClass": 0, -        "targetObjectIdentityStoreID": 2, -        "targetObject": "b6eb66b7-81d8-4fa5-a6f9-3707ad52076e", -        "targetObjectClass": 0, -        "actualApproverIdentityStoreID": 0, -        "actualApprover": null, -        "createdOn": "2024-05-14T04:02:28.89", -        "workflowRouteId": 10, -        "statusId": 1, -        "objectName": "Usr_Malik Schuld", -        "container": null, -        "workflowStatusDTO": { -            "statusId": 1, -            "description": "Pending" -        }, -        "workflowRouteDTO": { -            "workflowRouteId": 10, -            "identityStoreID": 2, -            "name": "UserDefinied", -            "description": "UserDefinied", -            "isEnabled": true, -            "type": 1, -            "typeDTO": null, -            "event": 2, -            "eventDTO": null, -            "routeFieldDTOList": null, -            "routeFilterDTOList": null, -            "routeApproverDTOList": null, -            "routeObjectDTOList": null, -            "enableEmailApproval": false, -            "disableApproverAcceleration": true, -            "portalUrl": "https://gidauto:4443/GroupIDPortal", -            "msFlowRequestUrl": null, -            "msFlowToken": null, -            "isMsFlowTemplateRouteCreated": false, -            "updateMsFlowToken": false -        }, -        "requestApproverDTOList": [ -            { -                "workflowRequestApproverId": 0, -                "approver": "Administrator", -                "approverIdentityStoreID": 0, -                "workflowRequestId": 0, -                "approverType": 0, -                "approverName": "e4fbe0f3-8b8d-4cd0-8c4f-07c6f12a4743", -                "approverClass": 6, -                "approverIdFromIdentityStore": null, -                "isDefaultApprover": false, -                "parentApproverIdentity": "" -            } -        ], -        "fieldDTOList": [ -            { -                "fieldId": 1, -                "workflowRequestId": 1, -                "name": "department", -                "value": "TestDataNew", -                "oldValue": "TestData", -                "valueType": 2, -                "fieldValueDTOList": [], -                "oldFieldValueDTOList": [], -                "fieldValueResolved": null, -                "oldFieldValueResolved": null -            } -        ], -        "objectType": 2, -        "statusUpdatedOn": "2024-05-14T00:00:00", -        "reason": null, -        "smartUpdateOption": null, -        "jobId": null, -        "description": null, -        "requesterName": "Shah Elahi", -        "actualApproverName": null, -        "schedule": null, -        "accelerationStatus": 4, -        "currentAccelerationLevel": 0, -        "maxAccelerationLevel": 3, -        "whenAccelerated": "2024-05-14T00:00:00", -        "clientId": "442139c9-dba6-4d2b-8c54-a20babae0b2f", -        "workflowRequestConfigurations": "" -    } -]    -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/getwfroute.md b/docs/directorymanager/11.0/apis/workflow/getwfroute.md deleted file mode 100644 index 338990cd39..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/getwfroute.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: "Get a Workflow Route" -description: "Get a Workflow Route" -sidebar_position: 90 ---- - -# Get a Workflow Route - -Use this API to get workflow route id of which is specidied in the end point URL. - -Change filename . add Get - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Workflows/Routes/{WorkflowRouteID} - -## HTTP Methods - -GET - -#### Sample Response Syntax - -``` -{ -    "workflowRouteId": 10, -    "identityStoreID": 2, -    "name": "UserDefinied", -    "description": "UserDefinied", -    "isEnabled": true, -    "type": 1, -    "typeDTO": null, -    "event": 2, -    "eventDTO": null, -    "routeFieldDTOList": [ -        { -            "workflowRouteFieldId": 8, -            "field": "department", -            "workflowRouteId": 10 -        } -    ], -    "routeFilterDTOList": [ -        { -            "workflowRouteFilterId": 1, -            "name": "department", -            "operator": "Present", -            "value": "", -            "workflowRouteId": 10 -        } -    ], -    "routeApproverDTOList": [ -        { -            "workflowRouteApproverId": 9, -            "approver": "80ffbf0d-142c-4822-b843-1840bf50c05a", -            "approverIdentityStoreID": 2, -            "workflowRouteId": 10, -            "approverType": 0, -            "approverName": null -        } -    ], -    "routeObjectDTOList": [ -        { -            "workflowRouteObjectId": 10, -            "objectTypeId": 2, -            "workflowRouteId": 10, -            "objectTypeDTO": null -        } -    ], -    "enableEmailApproval": false, -    "disableApproverAcceleration": true, -    "portalUrl": "https://gidauto:4443/GroupIDPortal", -    "msFlowRequestUrl": null, -    "msFlowToken": null, -    "isMsFlowTemplateRouteCreated": false, -    "updateMsFlowToken": false -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/updatepowerautomatesettings.md b/docs/directorymanager/11.0/apis/workflow/updatepowerautomatesettings.md deleted file mode 100644 index e45eb2c572..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/updatepowerautomatesettings.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "Update Power Automate Settings" -description: "Update Power Automate Settings" -sidebar_position: 170 ---- - -# Update Power Automate Settings - -If you have defined Power-Automate settings for an identity store, you can use this API to update -those settings. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Workflows/MsFlow/Settings - -## HTTP Methods - -PATCH - -#### Sample Request Syntax - -``` -{ -    "msFlowID": 1, -    "msFlowUserID": "69d41d70-9b80-492d-aee8-56458db65582", -    "groupIDServiceUrl": "https://powerautomate-netwrix1.msappproxy.net/directorymanagerdataservice", -    "identityStoreID": 2, -    "isAuthenticated": true, -    "organizationalCode": "Netwrix-US", -    "region": "US", -    "tenantID": "69d41d70-9b80-492d-aee8-56458db65582" -} -``` - -#### Sample Response Syntax - -``` -true -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/updateroute.md b/docs/directorymanager/11.0/apis/workflow/updateroute.md deleted file mode 100644 index f526e7004c..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/updateroute.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: "Update a Route" -description: "Update a Route" -sidebar_position: 160 ---- - -# Update a Route - -You can use this API to update a workflow route in a specified identity store. - -## Endpoint - -https://demomachine:4443/GroupIDDataService/api/IdentityStores/{identitystoreId}/Workflows/Route - -## HTTP Methods - -PATCH - -#### Sample Request Syntax - -``` -{ -    "items": [ -        { -            "workflowRouteId": 13, -            "identityStoreID": 0, -            "name": "API_Definied", -            "description": "API_Definied", -            "isEnabled": true, -            "type": 1, -            "typeDTO": null, -            "event": 2, -            "eventDTO": null, -            "routeFieldDTOList": [ -                { -                    "workflowRouteFieldId": 11, -                    "field": "department", -                    "workflowRouteId": 13 -                } -            ], -            "routeFilterDTOList": [ -                { -                    "workflowRouteFilterId": 4, -                    "name": "department", -                    "operator": "Present", -                    "value": "", -                    "workflowRouteId": 13 -                } -            ], -            "routeApproverDTOList": [ -                { -                    "workflowRouteApproverId": 12, -                    "approver": "80ffbf0d-142c-4822-b843-1840bf50c05a", -                    "approverIdentityStoreID": 2, -                    "workflowRouteId": 13, -                    "approverType": 0, -                    "approverName": null -                } -            ], -            "routeObjectDTOList": [ -                { -                    "workflowRouteObjectId": 13, -                    "objectTypeId": 2, -                    "workflowRouteId": 13, -                    "objectTypeDTO": null -                } -            ], -            "enableEmailApproval": true, -            "disableApproverAcceleration": true, -            "portalUrl": "https://gidauto:4443/GroupIDPortal", -            "msFlowRequestUrl": null, -            "msFlowToken": null, -            "isMsFlowTemplateRouteCreated": false, -            "updateMsFlowToken": false -        } -    ] -} -``` - -#### Sample Response Syntax - -``` -{ -    "name": null, -    "type": 0, -    "status": 0, -    "message": null, -    "data": "", -    "identityStoreObject": null, -    "details": [ -        { -            "name": null, -            "type": 0, -            "status": 0, -            "message": null, -            "data": "", -            "identityStoreObject": null, -            "details": [], -            "currentDirectoryServer": null, -            "errorCode": null, -            "exceptionMessagesAttributeWise": null, -            "isResyncAble": true -        } -    ], -    "currentDirectoryServer": null, -    "errorCode": null, -    "exceptionMessagesAttributeWise": null, -    "isResyncAble": true -} -``` - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Workflow APIs](/docs/directorymanager/11.0/apis/workflow/workflowapis.md) diff --git a/docs/directorymanager/11.0/apis/workflow/workflowapis.md b/docs/directorymanager/11.0/apis/workflow/workflowapis.md deleted file mode 100644 index a8da531f3e..0000000000 --- a/docs/directorymanager/11.0/apis/workflow/workflowapis.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "Workflow APIs" -description: "Workflow APIs" -sidebar_position: 70 ---- - -# Workflow APIs - -GroupID provides the following APIs to perform functions related to GroupID Workflows: - -- [All Workflow Routes](/docs/directorymanager/11.0/apis/workflow/allwfroutes.md) -- [Approve a Request](/docs/directorymanager/11.0/apis/workflow/approvereq.md) -- [Configure Power Automate](/docs/directorymanager/11.0/apis/workflow/configurepowerautomate.md) -- [Create a Route](/docs/directorymanager/11.0/apis/workflow/createroute.md) -- [Delete a Route](/docs/directorymanager/11.0/apis/workflow/deleteroute.md) -- [Delete a Workflow Request](/docs/directorymanager/11.0/apis/workflow/deletewfreq.md) -- [Delete Request Status](/docs/directorymanager/11.0/apis/workflow/deletereqstatus.md) -- [Deny a Request](/docs/directorymanager/11.0/apis/workflow/denyreq.md) -- [Get a Workflow Route](/docs/directorymanager/11.0/apis/workflow/getwfroute.md) -- [Get Approvers](/docs/directorymanager/11.0/apis/workflow/getapprovers.md) -- [Get Default Routes](/docs/directorymanager/11.0/apis/workflow/getdefroute.md) -- [Get My Requests](/docs/directorymanager/11.0/apis/workflow/getmyreq.md) -- [Get Pending Requests](/docs/directorymanager/11.0/apis/workflow/getpendingreq.md) -- [Get Power Automate Settings](/docs/directorymanager/11.0/apis/workflow/getpowerautomatesettings.md) -- [Get Workflow Requests](/docs/directorymanager/11.0/apis/workflow/getwfreq.md) -- [Update a Route](/docs/directorymanager/11.0/apis/workflow/updateroute.md) -- [Update Power Automate Settings](/docs/directorymanager/11.0/apis/workflow/updatepowerautomatesettings.md) - -See Also - -- [Common Errors](/docs/directorymanager/11.0/apis/commonerrors.md) -- [Get Token](/docs/directorymanager/11.0/apis/gettoken.md) -- [Contact APIs](/docs/directorymanager/11.0/apis/contact/contactapis.md) -- [Data Source APIs](/docs/directorymanager/11.0/apis/datasource/datasourceapis.md) -- [Group APIs](/docs/directorymanager/11.0/apis/group/groupapis.md) -- [Logs APIs](/docs/directorymanager/11.0/apis/logs/logsapis.md) -- [Synchronize Jobs APIs](/docs/directorymanager/11.0/apis/jobs/jobsapis.md) -- [User APIs](/docs/directorymanager/11.0/apis/user/userapis.md) diff --git a/docs/directorymanager/11.0/authenticate/_category_.json b/docs/directorymanager/11.0/authenticate/_category_.json deleted file mode 100644 index d991255b57..0000000000 --- a/docs/directorymanager/11.0/authenticate/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Authenticate", - "position": 70, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/authenticate/asidentityprovider/_category_.json b/docs/directorymanager/11.0/authenticate/asidentityprovider/_category_.json deleted file mode 100644 index 55e5bfea32..0000000000 --- a/docs/directorymanager/11.0/authenticate/asidentityprovider/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "GroupID as an Identity Provider", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/authenticate/asidentityprovider/metadata.md b/docs/directorymanager/11.0/authenticate/asidentityprovider/metadata.md deleted file mode 100644 index d12222f6e7..0000000000 --- a/docs/directorymanager/11.0/authenticate/asidentityprovider/metadata.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "Specify Default Metadata Values" -description: "Specify Default Metadata Values" -sidebar_position: 20 ---- - -# Specify Default Metadata Values - -You can specify default values for the following GroupID metadata: - -- Issuer URL -- Signing certificate - -## Specify the Default Issuer URL - -1. In GroupID Authenticate, go to the **Settings** tab. -2. On the **Settings** page, the **Base URL** box displays the default Issuer URL, which is - displayed in the **Provider Issuer** box on the **Create Application** page. See the - [GroupID Metadata for Service Provider Configurations](/docs/directorymanager/11.0/authenticate/asidentityprovider/register.md#groupid-metadata-for-service-provider-configurations) - topic. - You may want to change the default base/Issuer URL for any reason, for example, replace it with a - sub-domain URL or a load balancer URL. - Replace or update the URL in the **Base URL** box and click **Save**. - -## Update the Default Signing Certificate - -1. In GroupID Authenticate, go to the **Settings** tab. -2. On the **Settings** page, the **Signing Certificate** box displays the GroupID certificate - created in IIS. It displays the certificate along with the private key. This certificate is - displayed in the **Provider Signing Certificate** box on the **Create Application** page, though - without the private key. See the - [GroupID Metadata for Service Provider Configurations](/docs/directorymanager/11.0/authenticate/asidentityprovider/register.md#groupid-metadata-for-service-provider-configurations) - topic. - You may choose to use this certificate or create a custom certificate and use that in third-party - applications. -3. To use another certificate, do the following: - - 1. Create your custom certificate and export it to a PFX file. - 2. On the **Settings** page, click **Upload PFX**. - 3. On the **Import Windows Exported Certificate File** dialog box, click **Browse** to select - the exported certificate file. As it is password protected, enter the password and click - **Load Certificate File**. - 4. Click **Save**. - - The new certificate is displayed in the **Signing Certificate** box on the **Settings** page and - also on the **Create Application** page. diff --git a/docs/directorymanager/11.0/authenticate/asidentityprovider/overview.md b/docs/directorymanager/11.0/authenticate/asidentityprovider/overview.md deleted file mode 100644 index 81af8dfd51..0000000000 --- a/docs/directorymanager/11.0/authenticate/asidentityprovider/overview.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "GroupID as an Identity Provider" -description: "GroupID as an Identity Provider" -sidebar_position: 10 ---- - -# GroupID as an Identity Provider - -GroupID can provide the services of an identity provider. You can register a third-party application -as a service provider in GroupID to authenticate users in that application through GroupID. - -To use GroupID as an identity provider, you have to register an application (service provider) in -GroupID. - -You can also specify default values for the issuer URL and signing certificate, that are used to -configure GroupID in the service provider. - -See Also - -- [Authenticate](/docs/directorymanager/11.0/authenticate/overview.md) -- [Register an Application (Service Provider) in GroupID](/docs/directorymanager/11.0/authenticate/asidentityprovider/register.md) -- [Specify Default Metadata Values](/docs/directorymanager/11.0/authenticate/asidentityprovider/metadata.md) -- [Sign In Using GroupID](/docs/directorymanager/11.0/authenticate/asidentityprovider/signin.md) diff --git a/docs/directorymanager/11.0/authenticate/asidentityprovider/register.md b/docs/directorymanager/11.0/authenticate/asidentityprovider/register.md deleted file mode 100644 index 2efb86da5a..0000000000 --- a/docs/directorymanager/11.0/authenticate/asidentityprovider/register.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: "Register an Application (Service Provider) in GroupID" -description: "Register an Application (Service Provider) in GroupID" -sidebar_position: 10 ---- - -# Register an Application (Service Provider) in GroupID - -To register a service provider in GroupID, you have to create an application for the provider in -GroupID. - -Next, while configuring GroupID in the service provider, you have to provide GroupID metadata. You -can copy metadata values and paste them in the service provider. - -## Create an Application for a Service Provider in GroupID - -1. In GroupID Authenticate, go to the **SAML Applications** tab and click **New Application**. -2. On the **Create Application** page, enter a name for the application in the **Name** box. The - application will be displayed on the GroupID Login page with this name. -3. Copy the consumer URL from the service provider and enter it In the **Consumer URL** box. -4. Copy the audience URL from the service provider and enter it In the **Entity ID/Audience** box. -5. From the **Identity store** drop-down list, select the identity store to use for authenticating - users. - For single sign-on, third-party application users must authenticate through an identity store - defined in GroupID. For example, to authenticate users through Active Directory, select an - AD-based identity store. -6. Next, specify an attribute as a claim. Service provider application users are authenticated in - GroupID based on this attribute. - Enter the attribute name in the **Claims** box. As you type, the system displays the attributes - in the selected identity store that start with the text. Select the required attribute. - GroupID will match the value of this attribute in the application and in the identity store for - authentication. -7. Click **Browse** under **Identity Provider Image** to upload an image for the application, such - as the application logo. - - NOTE: Supported image formats: .jpg, .bmp, .webp, and .gif - Image file dimensions: 210 x 60 pixels - -Specify advanced settings for the application: - -8. Expand the **Advanced** section by clicking the down arrow head. -9. Select _Enabled_ or _Disabled_ in the **Response Signing**drop-down list, depending on whether it - is enabled or disabled in the service provider. -10. Select a response signing method from the **Response Signing Method** drop-down list. This - method should be the same for the identity provider (GroupID) and the service provider - (third-party application). -11. Select _Post_ or _Redirect_ in the **Response Binding** drop-down list, depending on how the - service provider accepts the response. -12. If you are not using assertion encryption, make sure _Disabled_ is selected in the **Assertion - Encryption** drop-down list. - To use assertion encryption as an advanced security feature, select **Enabled**. Then provide - the certificate, key transport algorithm, and encryption algorithm to encrypt the response. -13. Generate a logout URL in the service provider and enter it in the **Single Logout URL** box. - When a user clicks this URL, he or she will be logged out of all applications that have been - authenticated through GroupID (i.e., applications that he or she is single signed in through - GroupID). -14. Provide the GroupID metadata in the service provider to register GroupID as an identity provider - in it. See the - [GroupID Metadata for Service Provider Configurations](#groupid-metadata-for-service-provider-configurations) - topic. -15. Click **Create Application** to create the service provider in GroupID. - -### GroupID Metadata for Service Provider Configurations - -As part of registering an application in GroupID, you also have to provide GroupID metadata in the -service provider. - -**To copy metadata:** - -1. On the **Create Application** page, expand the **Metadata** section by clicking the down arrow - head. -2. Copy the Issuer URL and GroupID certificate from the **Provider Issuer** and **Provider Signing - Certificate** boxes and paste them in the service provider. -3. Both the **Provider IDP Redirect Endpoint** and **Provider IDP POST Endpoint** are given here. - Depending on how the service provider sends the request or the mechanism used, copy the - appropriate URL and paste it in the service provider. -4. The **Single Logout Endpoint POST** box displays a URL. Requests are posted on this URL for - logging out from the current and all other third-party applications configured in GroupID. -5. The **Login URL** box displays a URL. On clicking it, the user is redirected to the GroupID Login - page where GroupID is acting as an identity provider. If the user is already logged into GroupID, - he/she will be auto-authenticated; else the user will have to provide the credentials. diff --git a/docs/directorymanager/11.0/authenticate/asidentityprovider/signin.md b/docs/directorymanager/11.0/authenticate/asidentityprovider/signin.md deleted file mode 100644 index 7e73fccb52..0000000000 --- a/docs/directorymanager/11.0/authenticate/asidentityprovider/signin.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "Sign In Using GroupID" -description: "Sign In Using GroupID" -sidebar_position: 30 ---- - -# Sign In Using GroupID - -Let’s assume that we configured three service providers in GroupID. Users should be able to access -these applications through GroupID. - -For single sign-on using GroupID, we can choose any of the following ways: - -- SP-initiated single sign-on - when the SSO operation is initiated from the SP end, i.e., from any - of the registered service providers. -- IdP-initiated single sign-on - when the SSO operation is initiated from the IdP end, i.e., from - GroupID. - -### IdP-Initiated Single Sign-On - -1. In GroupID Authenticate, go to the **SAML Applications** tab and click **New Application**. -2. On the **Create Application** page, click the _Login URL_ displayed in the **Metadata** - section. - On clicking it, the user is redirected to the GroupID login page where GroupID is acting as an - identity provider. If the user is already logged into GroupID, he/she will be auto-authenticated; - else the user will have to provide the credentials. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/_category_.json b/docs/directorymanager/11.0/authenticate/asserviceprovider/_category_.json deleted file mode 100644 index c03622a0ea..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "GroupID as a Service Provider", - "position": 20, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/_category_.json b/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/_category_.json deleted file mode 100644 index b29a363706..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "SAML Configuration for GroupID using AD FS", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configureadfsindirectorymanager.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configureadfsindirectorymanager.md deleted file mode 100644 index 9fc7dc61c0..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configureadfsindirectorymanager.md +++ /dev/null @@ -1,127 +0,0 @@ -# Configure the AD FS Provider In GroupID - -To configure a SAML provider in GroupID, you have to specify the following: - -- Issuer URL -- IDP Login URL -- Token signing certificate -- An image for the identity provider -- Advanced configurations - -What do you want to do? - -- Configure the AD FS Provider in GroupID - -## Configure the AD FS Provider in GroupID - -1. In GroupID Authenticate, click the **SAML Providers** tab. -2. On the **SAML Providers** page, click **New Provider**. -3. On the **Create New Provider** page, enter a name for the provider. -4. Make sure the **Client** box displays the name of the GroupID client foe which you generated the - Entity ID/Audience URL and provided that in AD FS. - -Keep this page open while we copy configurations from AD FS and provide them here. - -### Provide Issuer URL - -The issuer URL is provided by the federation service, i.e., AD FS. Copy this URL from AD FS and -provide it in GroupID. - -**To fetch and enter Issuer URL:** - -1. In the AD FS console, right-click **Service** and select **Edit Federation Service Properties**. -2. On the **Federation Service Properties** dialog box, copy the URL displayed in the **Federation - Service Identifier** box and paste it in the **Issuer** box on the **Create New Provider** page, - -### Provide IDP Login URL - -The IDP Login URL is the URL of the AD FS sign-in page. - -**To fetch and enter IDP Login URL:** - -1. Launch the AD FS login page and copy the URL displayed in the address bar. -2. We only need the initial part of the URL, up to _ls_. Copy it and paste it in the **IDP Login - URL** box on the **Create New Provider** page - -### Get Token-Signing Certificate - -The next step is to get the token-signing certificate from AD FS and provide it in GroupID. - -1. Go to the AD FS console and click **Certificates**. The certificates are displayed. -2. Double-click the token-signing certificate to open its properties. -3. On the Certificate Properties dialog box, go to the **Details** tab and click the **Copy to - File** button to launch the Certificate Export Wizard. -4. Read the welcome message and click **Next**. -5. On the **Export File Format** page, select the **Base-64 encoded X.509 (.CER)** option button and - click **Next**. -6. On the **File to Export** page, specify a name for the certificate file and click **Browse** to - specify a location to save it. Then click **Next**. -7. On the next page, click **Finish** to complete the wizard. -8. Open the certificate file in Notepad and select the entire content. Copy this certificate and - paste it in the **IDP Certificate** box on the **Create New Provider** page. Make sure there is - no trailing space after the dashes that mark the end of the certificate. - -### Upload an Image for the Identity Provider - -When AD FS is configured with a GroupID client, say the GroupID portal _Wizard_, it will be -available on _Wizard's_ login page for single sign-on. You can choose to display the AD FS option as -an image or as a button. - -To display the AD FS option as an image, you have to upload an image for it. On the **Create New -Provider** page, use the **Browse** button under **Identity Provider Image** to upload an image for -AD FS. - -NOTE: Supported image formats are: .jpg, .bmp, .webp, and .gif. -Required dimensions for the image file are: 210 x 60 pixels. - -If you do not upload an image, AD FS authentication will be shown as a button. This button would -have the same name as you entered in the **Name** box on the **Create New Provider** page. - -Users can click the AD FS image or the button on the login page of the GroupID portal _Wizard_ for -single sign-on. - -### Specify Advanced Configurations - -Next, specify some advanced configurations for the identity provider. Expand the **Advanced** -section on the **Create New Provider** page. - -1. Make sure that _RSA-SHA-256_ is selected in the **Response Signing Method** box. -2. The **Disable GroupID Authentication** option indicates whether to display the GroupID - authentication login on the GroupID client's logiin page ( i.e., Wizard portal's login page in - our example). - - - By default, 'No' is selected, which means that when users access the Wizard portal's login - page, they will be shown the GroupID login and password option along with the AD FS identity - provider's button. - - Selecting 'Yes' means that the GroupID login and password option will not be available on the - Wizard portal's login page. Moreover, when a single identity store and a single SAML provider - is configured, the login page for the provider is displayed rather than the Wizard portal's - login page. - -3. Select _Post_ in the **Request Binding** drop-down list. - To verify that you have selected the correct binding type, do the following: - - 1. In the AD FS console click **Relying Party Trust** in the left pane; the middle pane displays - the relying party trusts already configured. - 2. Double-click the relying party trust that you created for the GroupID portal _Wizard_. This - launches the Properties dialog box for the relying party trust. - 3. Click the **Endpoints** tab and confirm that the binding type is _POST_. - -4. In AD FS, we configured an Active Directory attribute that the identity provider will use for - authenticating users (see step 16 in the - [Configure Relaying Party Trust in AD FS](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configurerelayingpartytrust.md) - topic). In our example, we used the UPN attribute that stores the user principal name. Now in the - **Advanced** section, we have to refer to this attribute. - In the **Identity Location** list, select the _Identity is an attribute element_ option. -5. On selecting it, the **Identity Location Attribute** box is displayed. - The attribute location will be in the form of a URL. Get this URL from AD FS. - - 1. In the AD FS console, click **Claim Descriptions** in the left pane and then select the - Active Directory attribute you specified for authentication. In our example, it is the UPN - attribute. - 2. Double-click the attribute to open its properties. - 3. On the **Attribute Properties** dialog box, copy the URL displayed in the **Claim type** box - and paste it in the **Identity Location Attribute** box. - -6. With all configurations completed, click the **Create Provider** button. The identity provider, - i.e., AD FS, is created and displayed on the **SAML Providers** page. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configurerelayingpartytrust.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configurerelayingpartytrust.md deleted file mode 100644 index a8b69340ee..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configurerelayingpartytrust.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: "Configure Relaying Party Trust in AD FS" -description: "Configure Relaying Party Trust in AD FS" -sidebar_position: 20 ---- - -# Configure Relaying Party Trust in AD FS - -In AD FS, you have to configure the GroupID client with which you want to set up AD FS. You also -have to specify the claim rules for authentication. - -## Configure Relaying Party Trust in AD FS - -1. Launch the AD FS console. In the left pane, select **AD FS > Trust Relationships**. Right-click - **Relying Party Trusts** and click **Add Relying Party Trust** on the shortcut menu. - The **Add Relying Party Trust** wizard opens to the **Welcome** page. -2. Read the welcome message and click **Start**. -3. Use the options on the **Select Data Source** page to either import relying party trust data from - a file, such as a metadata file, or enter the information manually. - To enter information manually, select the **Enter data about the relying party manually** option - and click **Next**. -4. On the **Specify Display Name** page, specify a friendly display name for this configuration in - the **Display name** box. Then enter any additional notes in the **Notes** box and click - **Next**. -5. To use the SAML 2.0 protocol as profile, select the **AD FS profile** option button on the - **Choose Profile** page and click **Next**. -6. On the **Configure Certificate** page, click **Next**. -7. On the **Configure URL** page, select the **Enable support for the SAML 2.0 Web SSO protocol** - option button. Then in the **Relying party SAML 2.0 SSL service URL** box, provide the consumer - URL you generated for the GroupID client. See the - [Generate the Consumer URL for a GroupID Client](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/generateurls.md#generate-the-consumer-url-for-a-groupid-client) - topic. - The consumer URL is the relying party trust URL, used by AD FS to authenticate. - Click **Next**. -8. On the **Configure Identifiers** page, use the **Relying party trust identifier** box to provide - the audience URL you generated for the GroupID client. Click **Add** next to this box and then - click **Next**. - See the - [Generate Entity ID/Audience URL](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/generateurls.md#generate-entity-idaudience-url) - topic. -9. Use the **Configure Multi-factor Authentication Now?** page to configure multi-factor - authentication. At present, we will not configure it, so select the **I do not want to configure - multi-factor authentications settings for this relying party trust at this time** option button - and click **Next**. -10. Use the **Choose Issuance Authorization Rules** page to permit all users to get authenticated on - the relying party trust using AD FS. User credentials will be parsed with Active Directory. - Select the **Permit all users to access this relying party** option button and click **Next**. -11. Use the tabs on the **Ready to Add Trust** page to review some preconfigured settings; then - click **Next**. -12. Click **Close** on the **Finish** page to complete the wizard. The wizard closes and the **Edit - Claim Rules** dialog box is displayed, where you have to specify claim rules for authentication. - -**Specify claim rules for authentication:** - -13. On the **Edit Claim Rules** dialog box, the **Issuance Transform Rules** option correlates to - the option of authenticating using an Active Directory attribute. Click **Add Rule**. -14. To add a rule, select _Transform an Incoming Claim_ from the **Claim rule template** drop-down - list on the **Select Rule Template** page and click **Next**. -15. On the **Configure Rule** page, specify a rule name in the **Claim rule name** box. -16. In the **Incoming claim type** and **Outgoing claim type** boxes, select an Active Directory - attribute for authentication, such as the UPN attribute. The incoming and outgoing claim types - should be the same as we will not specify a different text or different data for the logon - process. It will be the exact user principal name for authentication. -17. Make sure that the **Pass through all claim values** option is selected; then click **Finish**. - The new rule is configured and displayed on the **Issuance Transform Rules** tab. -18. Click the **Issuance Authorization Rules** tab and notice that the issuance authorization rule - is already completed. -19. Click the **Delegation Authorization Rules** tab. We do not need to delegate, so click **Apply** - and then **OK**. The AD FS console is displayed with the new relying party trust added. - The next step is to configure the AD FS provider in GroupID. See the - [Configure the AD FS Provider In GroupID](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configureadfsindirectorymanager.md) - topic. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/generateurls.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/generateurls.md deleted file mode 100644 index 5ecf4caf97..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/generateurls.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "Generate URLs" -description: "Generate URLs" -sidebar_position: 10 ---- - -# Generate URLs - -Generate the consumer URL and audience URL for the GroupID client with which you want to configure -AD FS. These URLs are required while creating the relying party trust in AD FS. - -The consumer URL and audience URL are unique for each GroupID client. Clients include: - -- Admin Center -- GroupID portals (each portal is treated as a separate client) -- Management Shell -- GroupID APIs - -With multiple instances of GroupID, multiple Admin Centers and Management Shells are available as -separate clients. - -What do you want to do? - -- [Generate the Consumer URL for a GroupID Client](#generate-the-consumer-url-for-a-groupid-client) -- [Generate Entity ID/Audience URL](#generate-entity-idaudience-url) - -## Generate the Consumer URL for a GroupID Client - -1. In Authenticate, click the **Generate URL's** tab. The **Generate URL's** page is displayed. -2. In the **Select Client to Generate Consumer URL** drop-down list, select a GroupID client to set - up AD FS with it. Let’s suppose you select the GroupID portal named _Wizard_. -3. The URL displayed in the **Consumer URL** box is a unique identifier for the selected client. It - is used to set up relying party trust in AD FS. Click **Copy** to copy it. Then paste it in a - file, preferably a text file, to save it. - -NOTE: On upgrade to GroupID 11, you must generate the consumer URL again for the GroupID client -configured with AD FS, and update it in AD FS. - -## Generate Entity ID/Audience URL - -1. In Authenticate, click the **SAML Providers** tab. The **SAML Providers** page is displayed. -2. Click **New Provider**. -3. On the **Create New Provider** page, the **Identity stores** drop-down list displays the identity - stores defined in GroupID. Select an identity store. - - The **Client** drop-down list displays the GroupID clients with respect to the identity store. - Select the client with which you want to set up the SAML provider. - The client you select must be the one for which you generated the consumer URL. - To continue with the example, select the GroupID portal named _Wizard_ in the **Client** - drop-down list. - -4. The **Entity ID/Audience** box displays a URL. Click **Copy** to copy it. Then paste it in a - file, preferably a text file, to save it. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/overview.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/overview.md deleted file mode 100644 index 056f70fa33..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/overview.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "SAML Configuration for GroupID using AD FS" -description: "SAML Configuration for GroupID using AD FS" -sidebar_position: 10 ---- - -# SAML Configuration for GroupID using AD FS - -Active Directory Federation Services (AD FS) provides users with single sign-on access to systems -and applications located across organizational boundaries. - -## The AD FS Console - -Use the AD FS console to configure services and policies related to the deployment of a federation -server. - -- Manage the trust relationships of the federation service by using the **Trust Relationships** node - in the AD FS console tree: - - - Add and configure relying party trusts. - - Add and modify claim rules for relying party trusts. - -- Configure the federation service by using the options in the **Service** node in the AD FS console - tree: - - - Configure the certificates that AD FS uses for issuing and receiving tokens and publishing - metadata. - - Configure the types of claims that are supported by AD FS. - -To learn more about the AD FS console, see -[AD FS Console](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/gg557729(v=ws.10)?redirectedfrom=MSDN). - -## Configuration Steps - -Follow these steps to set up AD FS as an SSO solution for GroupID: - -- Generate the consumer URL and audience URL for the GroupID client with which you want to configure - AD FS. -- Configure relaying party trust in AD FS. As part of the process, provide the consumer URL and - audience URL in AD FS. You must also specify the claim rules for authentication. -- Configure the AD FS provider in GroupID. - -That done, you can sign into GroupID using AD FS. - -See Also - -- [Generate URLs](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/generateurls.md) -- [Configure Relaying Party Trust in AD FS](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configurerelayingpartytrust.md) -- [Configure the AD FS Provider In GroupID](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configureadfsindirectorymanager.md) -- [Sign In Using AD FS](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/signin.md) diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/signin.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/signin.md deleted file mode 100644 index 0d5ed65376..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/signin.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Sign In Using AD FS" -description: "Sign In Using AD FS" -sidebar_position: 30 ---- - -# Sign In Using AD FS - -We configured the ADS FS provider with a GroupID client, that is the GroupID portal _Wizard_ in our -example. For single sign-on using AD FS, we can choose any of the following ways: - -- SP-initiated single sign-on - when the SSO operation is initiated from the SP end, i.e., from the - GroupID portal, Wizard. -- IdP-initiated single sign-on - when the SSO operation is initiated from the IdP end, i.e., from AD - FS. - -### SP-Initiated Single Sign-On - -1. Launch the GroupID portal _Wizard_. - On the **Login** page, the availability of the user name and password fields depends on whether - you disabled GroupID Authentication or not (see step 2 in the - [Specify Advanced Configurations](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configureadfsindirectorymanager.md#specify-advanced-configurations) - topic). - The AD FS option may be displayed as a button or an image. -2. Click the AD FS button or image; you will be redirected to the AD FS authentication page with the - URL you provided as the IDP login URL (see the - [Provide IDP Login URL](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configureadfsindirectorymanager.md#provide-idp-login-url) - topic). -3. Sign in as an Active Directory regular user. On signing in, the authentication is routed to AD - FS, that will validate the user with respect to the specified attribute (i.e., user principal - name – UPN in our case) and log him or her into the GroupID portal. - -With single sign-on, you can now launch any GroupID client without having to sign in again. - -### IdP-Initiated Single Sign-On - -1. Launch the ADF FS portal using the URL provided by your organization and sign in. The AD FS - dashboard will be displayed. -2. From the **Sign in to one of the following sites** list, select a relying party trust. - This list contains the relying party trusts configured with AD FS for single sign-on. -3. Click **Sign in**; you will be redirected to it. Authentication will not be required. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/_category_.json b/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/_category_.json deleted file mode 100644 index aa75ca0a1a..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "SAML Configuration for GroupID using Microsoft Entra ID SSO", - "position": 20, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/configureinentra.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/configureinentra.md deleted file mode 100644 index 922ee791f7..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/configureinentra.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: "Configure GroupID in Microsoft Entra ID for SSO" -description: "Configure GroupID in Microsoft Entra ID for SSO" -sidebar_position: 20 ---- - -# Configure GroupID in Microsoft Entra ID for SSO - -Following are the steps to create and configure the GroupID application in Microsoft Entra Admin -Center: - -- Create an application for GroupID in Microsoft Entra Admin Center. -- Assign owners to the application. -- Assign users to log into GroupID using Microsoft Entra ID SSO. -- Specify SAML SSO configurations for the application. - -## Configure GroupID in Microsoft Entra ID - -1. Sign into Microsoft Entra Admin Center. -2. Go to **Microsoft Entra ID > Enterprise applications**. -3. On the **Enterprise applications** page, click **New application** to add a new application. -4. On the **Browse Microsoft Entra Gallery** page, click **Create your own application**. -5. On the **Create your own application** pane, do the following: - - 1. Enter a name for your application In the **What's the name of your app?** box (for example, - Entra SSO). - 2. Select the **Integrate any other application you don't find in the gallery (Non-gallery)** - option button. - 3. Click **Create**. - On creating an application, an Overview page is displayed for it. - -6. On the **Overview** page, click **Properties** in the left pane to navigate to the application's - properties. -7. On the Properties page, make sure the application is enabled so that users can sign in. For this, - the **Enabled for Users to sign in** option should be set to _Yes_. -8. The **Name** box displays the application name. You can change the application logo. Your - application is displayed with the logo in the Access Panel Applications. -9. Make sure **Assignment required?** is set to _Yes_. We will be assigning users manually, who - would be able to log into the GroupID portal _Wizard_ using Microsoft Entra SSO. - -**Assign owners to the application:** - -10. To assign one or more users as owners of the application, click **Owners** under **Manage** in - the left pane. -11. On the **Owners** page, click **Add** and search the user(s) you want to assign as owners. For - example, you can specify your service account as an owner. - -**Assign users to log into GroupID using Microsoft Entra ID SSO:** - -12. The next step is to assign users who can sign into the GroupID portal _Wizard_ using Microsoft - Entra ID SSO. You can specify users and groups. - Click **Users and groups** under **Manage** in the left pane. On the **Users and groups** page, - click **Add user/group**. On the **Add Assignment** page, search for your required user or - group, select it and click **Assign**. - -**Specify SAML SSO configurations for the application:** - -13. Click **Single sign-on** under **Manage** in the left pane. The **Single sign-on** page displays - different methods that Microsoft Entra ID provides for single sign on. Select _SAML_. - The **SAML-based Sign-on** page is displayed, where you have to set single sign-on options for - GroupID. -14. On the **Basic SAML Configuration** card, click **Edit** -15. On the **Basic SAML Configuration** pane, provide the Entity ID and Consumer URL that you copied - earlier. See the - [Generate URLs](/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/generateurls.md) - topic. - After adding the information, click **Save**. -16. Back on the **SAML-based sign-on** page, the **Attributes & Claims** card displays the - attributes used for logging in. Let’s keep the defaults. -17. On the **SAML Certificates** card, download _Certificate (Base64)_. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/configureproviderindirectorymanager.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/configureproviderindirectorymanager.md deleted file mode 100644 index c9e2f25ef0..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/configureproviderindirectorymanager.md +++ /dev/null @@ -1,34 +0,0 @@ -# Configure the Microsoft Entra SSO Application in GroupID - -To configure a SAML provider in GroupID, you have to specify the following: - -- IDP certificate -- IDP Login URL -- Issuer URL -- Advanced configurations - -## Configure the Provider in GroupID - -1. In GroupID Authenticate, click the **SAML Providers** tab. -2. On the **SAML Providers** page, click **New Provider**. -3. On the **Create New Provider** page, enter a name for the provider in the **Name** box. For - example, Entra ID SSO. -4. Make sure the **Client** box displays the name of the GroupID client for which you generated the - Entity ID/Audience URL and provided that while creating the GroupID application in Microsoft - Entra Admin Center. -5. Open the Certificate (Base64) file that you downloaded from Microsoft Entra Admin Center and copy - the certificate information. - On the **Create New Provider** page, paste it in the **IDP Certificate** box. Make sure you have - not copied any trailing space. -6. In Microsoft Entra Admin Center, copy the Login URL from the **Set up Azure SSO** card on the - **SAML-based sign-on** page and paste it in the **IDP Login URL** box on the **Create New - Provider** page. -7. Again, copy the Azure AD Identifier URL from the **Set up Azure SSO** card on the **SAML-based - sign-on** page and paste it in the **Issuer** box on the **Create New Provider** page. -8. Expand the **Advanced** section on the **Create New Provider** page. -9. Select _Post_ in the **Request Binding** drop-down list. -10. For _Disable GroupID Authentication_, see step 2 in the - [Specify Advanced Configurations](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configureadfsindirectorymanager.md#specify-advanced-configurations) - topic. Replace references to AD FS with the Microsoft Entra SSO provider. -11. Click the **Create Provider** button. The identity provider is created and displayed on the - **SAML Providers** page. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/generateurls.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/generateurls.md deleted file mode 100644 index 95f1321ec7..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/generateurls.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "Generate URLs" -description: "Generate URLs" -sidebar_position: 10 ---- - -# Generate URLs - -To generate the consumer URL and audience URL, see the -[Generate URLs](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/generateurls.md) -topic. Replace references to AD FS with Microsoft Entra ID SSO. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/overview.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/overview.md deleted file mode 100644 index 1824a3d714..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/overview.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "SAML Configuration for GroupID using Microsoft Entra ID SSO" -description: "SAML Configuration for GroupID using Microsoft Entra ID SSO" -sidebar_position: 20 ---- - -# SAML Configuration for GroupID using Microsoft Entra ID SSO - -Microsoft Entra ID SSO enables users to conveniently access all their apps from any location, on any -device, from a centralized and branded portal for a simplified user experience and better -productivity. - -Here are the steps to configure single sign-on in GroupID using Microsoft Entra ID as a provider: - -- Generate the consumer URL and audience URL for the GroupID client with which you want to configure - Microsoft Entra ID SSO. -- Configure GroupID in Microsoft Entra ID. -- Configure the Microsoft Entra ID SSO application in GroupID. - -That done, you can sign into GroupID using Microsoft Entra ID SSO. - -See Also - -- [Generate URLs](/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/generateurls.md) -- [Configure GroupID in Microsoft Entra ID for SSO](/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/configureinentra.md) -- [Configure the Microsoft Entra SSO Application in GroupID](/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/configureproviderindirectorymanager.md) -- [Sign In Using Microsoft Entra ID SSO](/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/signin.md) diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/signin.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/signin.md deleted file mode 100644 index 1b1a1a99a2..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/signin.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Sign In Using Microsoft Entra ID SSO" -description: "Sign In Using Microsoft Entra ID SSO" -sidebar_position: 30 ---- - -# Sign In Using Microsoft Entra ID SSO - -We configured Microsoft Entra ID SSO with a GroupID client, that is the GroupID portal _Wizard_ in -our example. For single sign-on using Microsoft Entra ID SSO, we can choose any of the following -ways: - -- SP-initiated single sign-on - when the SSO operation is initiated from the SP end, i.e., from the - GroupID portal, Wizard. -- IdP-initiated single sign-on - when the SSO operation is initiated from the IdP end, i.e., from - the Microsoft Entra ID SSO application. - -### SP-Initiated Single Sign-On - -1. Launch the GroupID portal _Wizard_. - On the **Login** page, notice the Microsoft Entra ID SSO button. You can login using your GroupID - credentials or click this button to log in. - The availability of the user name and password fields depends on whether you disabled GroupID - Authentication or not (see step 10 in the - [Configure the Provider in GroupID](/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/configureproviderindirectorymanager.md#configure-the-provider-in-groupid) - topic). -2. Click the button or image for Microsoft Entra ID SSO; the Microsoft Sign In page is displayed. -3. Enter your credentials and click **Sign In**. You will be routed to the main page of the GroupID - portal _Wizard_. - Only users defined for our app in Microsoft Entra Admin Center can log in by entering their user - names and passwords. See step 11 in the - [Configure GroupID in Microsoft Entra ID](/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/configureinentra.md#configure-groupid-in-microsoft-entra-id) - topic. - -With single sign-on, you can now launch any GroupID client without having to sign in again. - -### IdP-Initiated Single Sign-On - -1. Launch the Microsoft My Apps portal using the following URL and sign in. - https://myapps.microsoft.com -2. Click the GroupID app that we created to work with the _Wizard_ portal for single sign-on; it - will redirect you to your portal. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/_category_.json b/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/_category_.json deleted file mode 100644 index d78ef53fa5..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "SAML Configuration for GroupID using Okta", - "position": 30, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/configureinokta.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/configureinokta.md deleted file mode 100644 index f22733deb1..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/configureinokta.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: "Configure GroupID In Okta" -description: "Configure GroupID In Okta" -sidebar_position: 20 ---- - -# Configure GroupID In Okta - -To configure GroupID in Okta, follow these steps: - -- Create an app for GroupID in Okta. -- Download the Okta metadata file. -- Configure Users in Okta. - -## Configure GroupID In Okta - -1. Launch Okta and sign in. -2. On signing in, the Okta dashboard is displayed. -3. To configure the GroupIDapplication in Okta, click **Applications** in the ribbon at the top. -4. On the **Applications** page, click the **Add Application** button. -5. The **Add Application** page displays some preconfigured options. Click the **Create New App** - button. -6. On the **Create a New Application Integration** dialog box, select the **SAML 2.0** option button - and click **Create**. -7. On the **General Settings** tab of the **Create SAML Integration** page, provide a user-friendly - name for the app (for example, GroupID Okta Sign-On) in the **App name** box. -8. Use the **App Logo** option to upload a logo for the GroupID app. This logo will be displayed on - the Okta dashboard. When a user signs into Okta, he or she will be redirected to the dashboard - that will have GroupID and other applications listed for single sign-on. -9. Click **Next**. -10. On the **Configure SAML** tab of the **Create SAML Integration** page, provide the consumer URL - and audience URL that you generated for the GroupID client In the **Single sign on URL** and - **Audience URI (SP Entity ID)** boxes respectively. See the - [Generate URLs](/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/generateurls.md) - topic. -11. We will not specify any default relay state, so leave the **Default Relay State** field blank. -12. Leave the **Name ID format** field selected to _Unspecified_. -13. In the **Application username** list, make sure _Okta username_ is selected. This implies that - only users defined in Okta can authenticate on the GroupID portal _Wizard_ using the Okta single - sign-on option. See the [Configure Users in Okta](#configure-users-in-okta) topic. -14. Click **Show Advanced Settings**. -15. The **Attribute Statements** area is for specifying an attribute that will be used to - authenticate users who will be signing into GroupID using Okta. Hence, this attribute is meant - for user identification. - Skip this section and leave the selections to default. The Okta provider would authenticate - users on the basis of the username. -16. Click **Next**. -17. On the **Feedback** tab of the **Create SAML Integration** page, select the option, **I’m a - software vendor. I’d like to integrate my app with Okta** and click **Finish**. - -With this, the GroupID OKTA SSO app is successfully added in Okta, and the **Sign-On** page is -displayed. - -### Download the Okta Metadata File - -You can download a metadata file from Okta and import it into GroupID to configure the Okta provider -in GroupID. - -**To download the file:** - -1. On the **Sign-On** page, go to the **Sign On** tab. In the **Sign On Methods** area, click the - **Identity Provider metadata** link. -2. On the **Opening metadata** dialog box, make sure the **Save File** option is selected and click - **OK**. The file downloads and the **Library** dialog box opens, showing the downloaded file. -3. Right-click the metadata file and select the **Open Containing Folder** option on the shortcut - menu. -4. The next dialog box displays the file at its download location. Either copy the file to your - desktop for simplicity or save its location, so that you can easily locate it for import into - GroupID. - -### Configure Users in Okta - -You must define users in Okta. Only these users can authenticate on the GroupID portal _Wizard_ -using Okta. See the -[Sign In Using Okta](/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/signin.md) -topic. - -There are multiple ways to define users in Okta, such as: - -- Add users manually -- Use a CSV file to import users -- Use the Active Directory tool provided by Okta (that syncs Active Directory users to Okta) - -For all of these, if Okta finds an existing user in its own database, it will link the GroupID -application to the existing account. If not, it will create a new Okta account for the user. For new -users, Okta generates a password and sends it to them by email. - -**To configure users:** - -1. Click the **People** tab on the **Sign-On** page. -2. To create users manually, visit the - [Add users manually](https://help.okta.com/en-us/content/topics/users-groups-profiles/usgp-add-users.htm) - page. - To import users into Okta, visit the - [Import users](https://help.okta.com/en-us/content/topics/users-groups-profiles/usgp-import-users-main.htm) - page. - To use an Active Directory tool for adding users, see the - [Import Active Directory users on demand](https://help.okta.com/en-us/content/topics/directory/ad-agent-import-users-on-demand.htm) - page. -3. After defining users, you must manually add these users. On the **People** tab, click the - **Assign to People** button. -4. On the **Assign Okta Sign-On to People** dialog box, click **Assign** for a user so that they can - authenticate on the GroupID portal _Wizard_ using Okta. -5. The next page on the dialog box displays the **User Name** field populated with the user name. - Remove the domain after the user’s name, i.e., the part starting with ‘@’. After removing the - domain, we are left with the user name. The user will use this name to authenticate on the - _Wizard_ portal using Okta. - This done, click **Save and Go Back**. -6. Repeat steps 4 and 5 for all the required users and then click **Done** on the **Assign Okta - Sign-On to People** dialog box. The users will be displayed on the **People** page. -7. The next step is to activate the user accounts. Click the **Directory** link in the ribbon at the - top. -8. On the **Directory** page, click the **Activate** link for the required user. -9. On the **Activate Person** dialog box, click **Activate User**. - With this, we have successfully configured users within the Okta provider. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/configureoktaindirectorymanager.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/configureoktaindirectorymanager.md deleted file mode 100644 index 68b0799ad6..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/configureoktaindirectorymanager.md +++ /dev/null @@ -1,31 +0,0 @@ -# Configure the Okta Provider In GroupID - -While creating the Okta provider in GroupID, you simply have to import the Okta metadata file to -configure all settings for this identity provider. - -## Configure the Provider in GroupID - -1. In GroupID Authenticate, click the **SAML Providers** tab. -2. On the **SAML Providers** page, click **New Provider**. -3. On the **Create New Provider** page, enter a name for the provider in the **Name** box. -4. Make sure the **Client** box displays the name of the GroupID client for which you generated the - Entity ID/Audience URL and provided that while creating the GroupID application in Okta. -5. While creating the GroupID application in Okta, we downloaded a metadata file. See the - [Download the Okta Metadata File](/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/configureinokta.md#download-the-okta-metadata-file) - topic. - To import this file, click the **Import from Metadata** button under the **Advanced** section. -6. On the **Import Settings from IDP provided Metadata File** dialog box, click **Browse** to select - the Okta metadata file downloaded earlier. Then click **Upload**. With this, several fields on - the **Create New Provider** page are automatically filled in. -7. When Okta is configured with a GroupID client, it will be available on the login page of that - client (the Wizard portal in our example) for single sign-on. You can choose to display the Okta - authentication option as an image or a button. See the - [Upload an Image for the Identity Provider](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configureadfsindirectorymanager.md#upload-an-image-for-the-identity-provider) - topic for details, replacing references to AD FS with Okta. -8. Expand the **Advanced** section on the **Create New Provider** page. - View the settings and leave them to defaults. -9. For _Disable GroupID Authentication_, see step 2 in the - [Specify Advanced Configurations](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configureadfsindirectorymanager.md#specify-advanced-configurations) - topic. Replace references to AD FS with the Okta provider. -10. Click the **Create Provider** button. The identity provider is created and displayed on the - **SAML Providers** page. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/generateurls.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/generateurls.md deleted file mode 100644 index 96233a13eb..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/generateurls.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "Generate URLs" -description: "Generate URLs" -sidebar_position: 10 ---- - -# Generate URLs - -To generate the consumer URL and audience URL, see the -[Generate URLs](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/generateurls.md) -topic. Replace references to AD FS with Okta. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/overview.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/overview.md deleted file mode 100644 index ff288ef3a9..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/overview.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "SAML Configuration for GroupID using Okta" -description: "SAML Configuration for GroupID using Okta" -sidebar_position: 30 ---- - -# SAML Configuration for GroupID using Okta - -Okta provides secure identity management and single sign-on to any application, whether in the -cloud, on-premises or on a mobile device for the employees in an organization. - -Here are the steps to configure single sign-on in GroupID using Okta as a provider: - -- Generate the consumer URL and audience URL for the GroupID client with which you want to configure - Okta. -- Configure GroupID in Okta. -- Configure the Okta provider in GroupID. - -That done, you can sign into GroupID using Okta. - -See Also - -- [Generate URLs](/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/generateurls.md) -- [Configure GroupID In Okta](/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/configureinokta.md) -- [Configure the Okta Provider In GroupID](/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/configureoktaindirectorymanager.md) -- [Sign In Using Okta](/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/signin.md) diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/signin.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/signin.md deleted file mode 100644 index 43cd99ed7b..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/signin.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Sign In Using Okta" -description: "Sign In Using Okta" -sidebar_position: 30 ---- - -# Sign In Using Okta - -We configured Okta with a GroupID client, that is the GroupID portal _Wizard_ in our example. For -single sign-on using Okta, we can choose any of the following ways: - -- SP-initiated single sign-on - when the SSO operation is initiated from the SP end, i.e., from the - GroupID portal, Wizard. -- IdP-initiated single sign-on - when the SSO operation is initiated from the IdP end, i.e., from - Okta. - -### SP-Initiated Single Sign-On - -1. Launch the GroupID portal _Wizard_. - On the **Login** page, notice the Okta button. You can login using your GroupID credentials or - click Okta to log in. - The availability of the user name and password fields depends on whether you disabled GroupID - Authentication or not (see step 9 in the - [Configure the Provider in GroupID](/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/configureoktaindirectorymanager.md#configure-the-provider-in-groupid) - topic). -2. Click the button/image/link for Okta; the Okta Sign In page is displayed. -3. Enter your credentials and click **Sign In**. You will be routed to the main page of the GroupID - portal _Wizard_. - Only users defined for our app in Okta can log in by entering their user names and passwords. See - the - [Configure Users in Okta](/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/configureinokta.md#configure-users-in-okta) - topic. - -With single sign-on, you can now launch any GroupID client without having to sign in again. - -### IdP-Initiated Single Sign-On - -1. Launch the Okta portal using the URL provided by your organization and sign in. The Okta - dashboard displays the apps configured with Okta for single sign-on. -2. On clicking an app, you will be redirected to it. Authentication will not be required. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/_category_.json b/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/_category_.json deleted file mode 100644 index ce34a61441..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "SAML Configuration for GroupID using OneLogin", - "position": 40, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/configureinonelogin.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/configureinonelogin.md deleted file mode 100644 index 26eec861d6..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/configureinonelogin.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: "Configure GroupID In OneLogin" -description: "Configure GroupID In OneLogin" -sidebar_position: 20 ---- - -# Configure GroupID In OneLogin - -Configuring GroupID in OneLogin involve the following steps: - -- Create an app for the GroupID portal _Wizard_ in OneLogin. -- Configure this app by specifying the consumer URL and audience URL. -- Specify an attribute for authenticating users who use the OneLogin single sign-on option to log - into the _Wizard_ portal. -- Define SSO settings. - -You also have to: - -- Define users in OneLogin, who can authenticate on the _Wizard_ portal using OneLogin. -- Download the OneLogin metadata file, that will be used to configure the OneLogin provider in - GroupID. - -## Create an App for GroupID in OneLogin - -1. Launch OneLogin. -2. On the Home page, click **New App** to add a new application in the OneLogin control panel. - To continue with our example, we will be adding the GroupID portal _Wizard_. -3. The **Find Applications** page is displayed, with a list of already created applications. In the - **Find Applications** box, type ‘SAML’ to search for single sign-on applications. -4. In the search results, select the **SAML Test Connector (IdP)** option (without any attributes or - any sign responses). -5. On the **Add SAML Test Connector (IdP)** page, specify a user-friendly name for the application - in the **Display Name** box. -6. You can also upload an image for the GroupID app that will be displayed on the user dashboard in - OneLogin. - When a user logs into OneLogin, he or she will be redirected to the dashboard that will have - GroupID and other applications listed for single sign-on. -7. Click **Save**. - A message is displayed that the app is added and a few links are displayed under the message. - Using them, you can specify certain settings for the app. - -**Provide consumer URL and audience URL:** - -8. Click the **Configurations** link. The **Configurations** page for the new app is displayed. -9. In the **ACS (Consumer) URL Validator** and **ACS (Consumer) URL** boxes, provide the consumer - URL that you generated for the GroupID client _Wizard_. See the - [Generate URLs](/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/generateurls.md) - topic. -10. In the **Audience** box. provide the audience URL that you generated for the GroupID client - _Wizard_. - -**Specify attribute for user authentication:** - -11. Click the **Parameters** link at the top. -12. On the **Parameters** page, _Email_ is already set as the entity ID that will be used for - authenticating users who opt to sign into GroupID using the OneLogin single sign-on option. - Leave all settings to default. - -**Configure SSO settings:** - -13. Click the **SSO** link at the top. -14. In the **SAML Signature Algorithm** list on the **SSO** page, select _SHA-256_. -15. The page also displays the Issuer URL and the endpoint URLs for both the post and redirect - methods. You will have to provide the Issuer URL and the SAML 2.0 Endpoint (HTTP) URL while - configuring the OneLogin provider in GroupID. Copy and paste them in a file, preferably a text - file, to save them. - -**Define users:** - -16. Click the **Access** link at the top. The **Policy** list displays any policies that you may - have configured for users. You can select a policy to enforce it. -17. Click the **Users** link at the top. To define and manage users, see the - [Define Users in OneLogin](#define-users-in-onelogin) topic. -18. Click **Save**. - -### Download the OneLogin Metadata File - -You can download a metadata file from OneLogin and import it into GroupID to configure the OneLogin -provider in GroupID. - -**To download the file:** - -1. On the OneLogin Home page, click **More Actions** in the top right corner and select **SAML - Metadata**. This will download the OneLogin metadata file on your machine. -2. For convenience, either copy the file to your desktop or save its location, so that you can - easily locate it for import into GroupID. - Importing the metadata file will being in all the configurations for the OneLogin identity - provider in GroupID. - -### Define Users in OneLogin - -You must define users in OneLogin. Only these users can authenticate on the GroupID portal _Wizard_ -using OneLogin. See the -[Sign In Using OneLogin](/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/signin.md) -topic. - -**To define a user:** - -1. In OneLogin, click **Users** in the ribbon at the top; the **All Users** page is displayed. -2. Click the **New User** button. -3. On the **New User** page, create a new user, for example, Leo Ferguson. Enter the required - information for this user and click **Save User** to create the user. - A message is displayed that the user is created and a few links are displayed under the message. - Using them, you can specify certain settings for the user. - Notice that we specified a user name but no password for the user. We will specify it later. -4. Click the **Authentication** link. -5. On the Authentication page, make sure _OneLogin_ is selected in the **Authenticated By** - drop-down list. -6. In the **User Security Policy** drop-down list, select _Default policy_. -7. Click the **Applications** link. -8. On the **Applications** page, click the plus sign to specify the application that the user (i.e., - Leo Ferguson in our example) will be able to log on to. -9. On the **Assign New Login** dialog box, use the **Select Application** drop-down list to select - the app that you created for GroupID in OneLogin. Then click **Continue**. -10. Another dialog box opens to display the user's email. you provided this email while creating the - user. Click **Save**. -11. Back on the **Applications** page, click **Save User**. -12. Next, you have to update the user’s password in OneLogin. Click the **User Info** link. Them - click **More Actions** and select _Change Password_. -13. On the **Change Password** dialog box, specify a new password for the user and click **Update**. -14. Click **Save User**. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/configureoneloginindirectorymanager.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/configureoneloginindirectorymanager.md deleted file mode 100644 index e215341918..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/configureoneloginindirectorymanager.md +++ /dev/null @@ -1,63 +0,0 @@ -# Configure the OneLogin Provider in GroupID - -While creating the OneLogin provider in GroupID, you simply have to import the OneLogin metadata -file to configure all settings for it. - -## Configure the Provider in GroupID - -1. In GroupID Authenticate, click the **SAML Providers** tab. -2. On the **SAML Providers** page, click **New Provider**. -3. On the **Create New Provider** page, enter a name for the provider in the **Name** box. -4. Make sure the **Client** box displays the name of the GroupID client for which you generated the - consumer URL and audience URL (see the - [Generate URLs](/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/generateurls.md) - topic). - To continue with the example, select the GroupID portal named _Wizard_. - -**Import the OneLogin metadata file:** - -5. Click the **Import from Metadata** button under the **Advanced** section to import the OneLogin - metadata file that you downloaded earlier. See the - [Download the OneLogin Metadata File](/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/configureinonelogin.md#download-the-onelogin-metadata-file) - topic. -6. On the **Import Settings from IDP provided Metadata File** dialog box, click **Browse** to select - the PingOne metadata file. Then click **Upload**. With this, several fields on the **Create New - Provider** page are automatically filled in. However, you still have to provide the Issuer URL - and IDP Login URL. - -**Provide Issuer URL and IDP Login URL:** - -7. In the **Issuer** box, enter the issuer URL you copied from the SSO page in OneLogin. See step 15 - in - the[Create an App for GroupID in OneLogin](/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/configureinonelogin.md#create-an-app-for-groupid-in-onelogin) - topic. -8. In the **IDP Login URL** box, enter the endpoint URL for the post method. You copied this URL - earlier from the **SAML 2.0 Endpoint (HTTP)** box on the **SSO** page in OneLogin. See step 15 in - the[Create an App for GroupID in OneLogin](/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/configureinonelogin.md#create-an-app-for-groupid-in-onelogin) - topic. - -**Upload an image for the identity provider:** - -9. When OneLogin is configured with a GroupID client, it will be available on the login page of that - client (the Wizard portal in our example) for single sign-on. You can choose to display the - OneLogin authentication option as an image or a button. See the - [Upload an Image for the Identity Provider](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configureadfsindirectorymanager.md#upload-an-image-for-the-identity-provider) - topic for details, replacing references to AD FS with OneLogin. - -**Specify advanced settings:** - -10. Expand the **Advanced** section on the **Create New Provider** page. -11. For _Disable GroupID Authentication_, see step 2 in the - [Specify Advanced Configurations](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configureadfsindirectorymanager.md#specify-advanced-configurations) - topic. Replace references to AD FS with the OneLogin provider. -12. In the **Request Binding** drop-down list, select _POST_, since we used the endpoint URL for the - post method in the **IDP Login URL** box. -13. We will not use the assertion encryption, so make sure _Disabled_ is selected in the **Assertion - Encryption** drop-down list. -14. In the **Response Signing Method**drop-down list, select _RSA-SHA-256_, since we configured this - method as the signing algorithm in the **SAML Signature Algorithm** list on the **SSO** page in - OneLogin. See step 14 in - the[Create an App for GroupID in OneLogin](/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/configureinonelogin.md#create-an-app-for-groupid-in-onelogin) - topic. -15. Click the **Create Provider** button. The identity provider is created and displayed on the - **SAML Providers** page. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/generateurls.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/generateurls.md deleted file mode 100644 index 8402865a85..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/generateurls.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "Generate URLs" -description: "Generate URLs" -sidebar_position: 10 ---- - -# Generate URLs - -To generate the consumer URL and audience URL, see the -[Generate URLs](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/generateurls.md) -topic. Replace references to AD FS with OneLogin. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/overview.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/overview.md deleted file mode 100644 index 9cfb832c6b..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/overview.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "SAML Configuration for GroupID using OneLogin" -description: "SAML Configuration for GroupID using OneLogin" -sidebar_position: 40 ---- - -# SAML Configuration for GroupID using OneLogin - -OneLogin provides single sign-on and identity management for organizations that embrace cloud -computing. - -Here are the steps to configure single sign-on in GroupID using OneLogin as a provider: - -- Generate the consumer URL and audience URL for the GroupID client with which you want to configure - OneLogin. -- Configure GroupID in OneLogin. -- Configure the OneLogin provider in GroupID. - -That done, you can sign into GroupID using OneLogin. - -See Also - -- [Generate URLs](/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/generateurls.md) -- [Configure GroupID In OneLogin](/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/configureinonelogin.md) -- [Configure the OneLogin Provider in GroupID](/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/configureoneloginindirectorymanager.md) -- [Sign In Using OneLogin](/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/signin.md) diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/signin.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/signin.md deleted file mode 100644 index 7db8139d4d..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/signin.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Sign In Using OneLogin" -description: "Sign In Using OneLogin" -sidebar_position: 30 ---- - -# Sign In Using OneLogin - -We configured OneLogin with a GroupID client, that is the GroupID portal _Wizard_ in our example. We -also created a user, Leo Ferguson, in OneLogin who should be able to log into the _Wizard_ portal -using the OneLogin single sign-on option. - -For single sign-on using OneLogin, we can choose any of the following ways: - -- SP-initiated single sign-on - when the SSO operation is initiated from the SP end, i.e., from the - GroupID portal, Wizard. -- IdP-initiated single sign-on - when the SSO operation is initiated from the IdP end, i.e., from - OneLogin. - -### SP-Initiated Single Sign-On - -1. Launch the GroupID portal _Wizard_. - The availability of the user name and password fields depends on whether you disabled GroupID - Authentication or not (see step 11 in the - [Configure the Provider in GroupID](/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/configureoneloginindirectorymanager.md#configure-the-provider-in-groupid) - topic). -2. Click the button or image for OneLogin; the OneLogin sign in page is displayed. -3. Enter Leo Ferguson’s login name and password, and click **Login**. The user is successfully - logged into the _Wizard_ portal using the OneLogin single sign on option. - Only users defined for our app in OneLogin can log in by entering their user names and passwords. - See the - [Define Users in OneLogin](/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/configureinonelogin.md#define-users-in-onelogin) - topic. - -With single sign-on, you can now launch any GroupID client without having to sign in again. - -### IdP-Initiated Single Sign-On - -1. Launch the OneLogin portal using the URL provided by your organization and log in. The OneLogin - dashboard displays the apps configured with OneLogin for single sign-on. -2. On clicking an app, you will be redirected to it. Authentication will not be required. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/overview.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/overview.md deleted file mode 100644 index 1e9173d221..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/overview.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "GroupID as a Service Provider" -description: "GroupID as a Service Provider" -sidebar_position: 20 ---- - -# GroupID as a Service Provider - -You can configureGroupID as a service provider with the following identity providers: - -- AD FS -- Microsoft Entra ID SSO -- Okta -- PingOne -- OneLogin - -See Also - -- [Authenticate](/docs/directorymanager/11.0/authenticate/overview.md) -- [SAML Configuration for GroupID using AD FS](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/overview.md) -- [SAML Configuration for GroupID using Microsoft Entra ID SSO](/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/overview.md) -- [SAML Configuration for GroupID using Okta](/docs/directorymanager/11.0/authenticate/asserviceprovider/okta/overview.md) -- [SAML Configuration for GroupID using PingOne](/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/overview.md) -- [SAML Configuration for GroupID using OneLogin](/docs/directorymanager/11.0/authenticate/asserviceprovider/onelogin/overview.md) diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/_category_.json b/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/_category_.json deleted file mode 100644 index bc1cc514eb..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "SAML Configuration for GroupID using PingOne", - "position": 50, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/configureinpingone.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/configureinpingone.md deleted file mode 100644 index 878da08556..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/configureinpingone.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: "Configure GroupID In PingOne" -description: "Configure GroupID In PingOne" -sidebar_position: 20 ---- - -# Configure GroupID In PingOne - -To configure GroupID in PingOne, follow these steps: - -- Create an app for GroupID in PingOne -- Download the PingOne metadata file -- Map attributes for user authentication -- Configure users in PingOne - -## Configure GroupID In PingOne - -1. Launch the PingOne Identity dashboard. -2. Click **Applications** in the ribbon at the top. -3. On the **My Applications** tab of the **Applications** page, click **Add Application** and select - the **New SAML Application** option to configure the GroupID client _Wizard_ in PingOne. - The new application is added and displayed in the **My Applications** area. The **Application - Details** section is also displayed. -4. In the **Application Name** box, provide a name for the application. -5. In the **Application Description** box, provide a description. For example, you can specify the - GroupID client with which you want to set up PingOne for single sign-on. -6. Select an option from the **Category** drop-down list, for example, Information Technology. -7. You can choose to upload an image for the GroupID app. This image will be displayed on the - PingOne dashboard. When a user signs into PingOne, he or she will be redirected to the dashboard - that has GroupID and other applications listed for single sign-on. -8. Click the **Continue to Next Step** button. -9. On the next page, make sure the **I have the SAML configuration** tile is selected. -10. Use the metadata file you generated for the _Wizard_ portal in GroupID to configure certain - settings on this page. See the - [Generate the Metadata File](/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/generatemetadata.md#generate-the-metadata-file) - topic. - Click the **Select File** button next to **Upload Metadata**. Simply select the metadata file - and it will be uploaded, thereby bringing in the required settings to configure the GroupID - client _Wizard_ within PingOne. For example, the **Entity ID** box is populated with the - required URL. -11. In the **Application URL** box, copy the same URL as displayed in the **Assertion Consumer - Service (ACS)** box. -12. Select the _Post_ option button for **Single Logout Binding Type**. -13. In the **Signing Algorithm** drop-down list, select _RSA_SHA256_. -14. Click the **Download** link next to **SAML Metadata** to download the metadata file from the - PingOne identity provider. - While creating the PingOne provider in GroupID, you can import this file to bring in all the - configurations for PingOne. -15. No further configurations are required on this page. Scroll down and click the **Continue to - Next Step** button. The **SSO Attribute Mapping** area is displayed. - -### Attribute Mapping in PingOne - -The next step is to specify an attribute that will be used to authenticate users who will be signing -into GroupID using the PingOne single sign-on facility. Hence, this attribute is meant for user -identification. - -1. In the **SSO Attribute Mapping** area, click the **Add new attribute** button. A new row is - displayed. -2. Click the **Advanced** button in this row; the **Advanced Attribute Options** dialog box is - displayed. -3. In the **NameFormat** drop-down list, select the first option, i.e., the one ending with - _unspecified_. -4. In the **IDP Attribute Name or Literal Value** box, type or select the Active Directory attribute - you want to use for authentication. For example, _E-mail_. This attribute facilitates user - identification. - To define users in PingOne, see the [Configure Users in PingOne](#configure-users-in-pingone) - topic. -5. In the **Function** list, you can select the conversion methodology. For example, you can convert - the first name or last name to upper case, lower case, or even use regular expressions. We will - not use any conversion methodology here. -6. Click **Save** on the **Advanced Attribute Options** dialog box. -7. The specified attribute is displayed in the **Identity Bridge Attribute or Literal Value** box in - the **SSO Attribute Mapping** area. Provide a user-friendly name for the attribute in the - **Application Attribute** box. -8. There is one change we have to make. For attribute mapping, the email listed should be accurate, - since we selected E-mail as the unique identifier. - Click the **Advanced** button in the row; the **Advanced Attribute Options** dialog box is - displayed. -9. On clicking _E-mail_ in the **IDP Attribute Name or Literal Value** box, a drop-down is - displayed. Select the _Email_ option. With this, users will be authenticated with their email - address. Click **Save**. -10. Back on the **SSO Attribute Mapping** area, click the **Save & Publish** button. -11. The configurations we made in PingOne will be displayed. Click **Finish**. - The new GroupID application you created in PingOne is displayed under **My Applications**. - -### Configure Users in PingOne - -You must define users in PingOne. These users are authenticated in GroupID on the basis of an -attribute, as discussed in the [Attribute Mapping in PingOne](#attribute-mapping-in-pingone) topic. - -Only the users you define here can authenticate on the GroupID portal _Wizard_ using PingOne. See -the -[Sign In Using PingOne](/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/signin.md) -topic. - -**To configure users:** - -1. In PingOne, click **Users** in the ribbon at the top. The **Users** page is displayed. -2. Click the **Add Users** button and select the **Create New User** option to create a user. -3. On the **User** page, specify a password in the **New Password** and **Confirm New Password** - boxes. -4. Specify a user name in the **Username** box. - The user will use this user name and password for single sign-on into GroupID using PingOne. -5. Enter other details of the user, such as first name, last name, and the email address. -6. Click **Save** to create the user. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/configurepingoneindirectorymanager.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/configurepingoneindirectorymanager.md deleted file mode 100644 index f75d2f7c20..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/configurepingoneindirectorymanager.md +++ /dev/null @@ -1,35 +0,0 @@ -# Configure the PingOne Provider In GroupID - -While creating the PingOne provider in GroupID, you simply have to import the PingOne metadata file -to configure all settings for this identity provider. - -## Configure the Provider in GroupID - -1. In GroupID Authenticate, click the **SAML Providers** tab. -2. On the **SAML Providers** page, click **New Provider**. -3. On the **Create New Provider** page, enter a name for the provider in the **Name** box. -4. Make sure the **Client** box displays the name of the GroupID client for which you generated the - consumer URL and the GroupID metadata file (see the - [Generate the Consumer URL and Metadata File](/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/generatemetadata.md) - topic). - To continue with the example, select the GroupID portal named _Wizard_. -5. Click the **Import from Metadata** button under the **Advanced** section to import the PingOne - metadata file. -6. On the **Import Settings from IDP provided Metadata File** dialog box, click **Browse** to select - the PingOne metadata file downloaded earlier. Then click **Upload**. With this, several fields on - the **Create New Provider** page are automatically filled in. -7. When PingOne is configured with a GroupID client, it will be available on the login page of that - client (the Wizard portal in our example) for single sign-on. You can choose to display the - PingOne authentication option as an image or a button. See the - [Upload an Image for the Identity Provider](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configureadfsindirectorymanager.md#upload-an-image-for-the-identity-provider) - topic for details, replacing references to AD FS with PingOne. -8. Expand the **Advanced** section on the **Create New Provider** page. -9. The **Response Signing Method** box displays _RSA-SHA-256_ as the signing method type. We - configured this method as the signing algorithm in PingOne. -10. For _Disable GroupID Authentication_, see step 2 in the - [Specify Advanced Configurations](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/configureadfsindirectorymanager.md#specify-advanced-configurations) - topic. Replace references to AD FS with the PingOne provider. -11. In the **Request Binding** list, select _POST_, since the **Single Logout Binding Type** is set - to _Post_ in PingOne. -12. Click the **Create Provider** button. The identity provider is created and displayed on the - **SAML Providers** page. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/generatemetadata.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/generatemetadata.md deleted file mode 100644 index 5143c73b20..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/generatemetadata.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Generate the Consumer URL and Metadata File" -description: "Generate the Consumer URL and Metadata File" -sidebar_position: 10 ---- - -# Generate the Consumer URL and Metadata File - -In GroupID Authenticate, you can generate a metadata file for the GroupID client with which you want -to set up the PingOne identity provider. - -When you import this file into PingOne, it populates all GroupID-related configurations into the -provider. - -In Authenticate, you have to: - -- Generate the consumer URL for the GroupID client you want to set up the PingOne identity provider - with -- Generate the metadata file - -## Generate Consumer URL - -To generate the consumer URL, see the -[Generate URLs](/docs/directorymanager/11.0/authenticate/asserviceprovider/adfs/generateurls.md) -topic. Replace references to AD FS with PingOne. - -## Generate the Metadata File - -In Authenticate, use the **Metadata** section on the **Generate URLs** page to generate the metadata -file for the GroupID client with which you want to set up PingOne for single sign-on. - -Since we generated the consumer URL for the _Wizard_ portal, we should generate the metadata file -for this same portal. - -**To generate the file:** - -1. In Authenticate, click the **Generate URL's** tab. The **Generate URL's** page is displayed. -2. In the **Metadata** section, select an identity store in the **Identity store** drop-down list. - Users will be authenticated in this identity store when they use PingOne for single sign-on. -3. The **Client** drop-down list displays the GroupID clients for the identity store. Select the - client for which you have already generated the consumer URL. -4. Click **Download** to download the metadata file to your machine. diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/overview.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/overview.md deleted file mode 100644 index 28f5283ddc..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/overview.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "SAML Configuration for GroupID using PingOne" -description: "SAML Configuration for GroupID using PingOne" -sidebar_position: 50 ---- - -# SAML Configuration for GroupID using PingOne - -PingOne is an Identity as a Service (IDaaS) solution that enables organizations to deliver single -sign-on with just one username and password. - -Here are the steps to configure single sign-on in GroupID using PingOne as a provider: - -- Generate the consumer URL andGroupID metadata file for the GroupID client with which you want to - configure PingOne. -- Configure GroupID in PingOne. -- Configure the PingOne provider in GroupID. - -That done, you can sign into GroupID using PingOne. - -See Also - -- [Generate the Consumer URL and Metadata File](/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/generatemetadata.md) -- [Configure GroupID In PingOne](/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/configureinpingone.md) -- [Configure the PingOne Provider In GroupID](/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/configurepingoneindirectorymanager.md) -- [Sign In Using PingOne](/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/signin.md) diff --git a/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/signin.md b/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/signin.md deleted file mode 100644 index a34c98538d..0000000000 --- a/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/signin.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Sign In Using PingOne" -description: "Sign In Using PingOne" -sidebar_position: 30 ---- - -# Sign In Using PingOne - -We configured PingOne with a GroupID client, that is the GroupID portal _Wizard_ in our example. We -also created a user in PingOne who should be able to sign into the _Wizard_ portal using the PingOne -single sign-on option. - -For single sign-on using PingOne, we can choose any of the following ways: - -- SP-initiated single sign-on - when the SSO operation is initiated from the SP end, i.e., from the - GroupID portal, Wizard. -- IdP-initiated single sign-on - when the SSO operation is initiated from the IdP end, i.e., from - PingOne. - -### SP-Initiated Single Sign-On - -1. Launch the GroupID portal _Wizard_. - The availability of the user name and password fields depends on whether you disabled GroupID - Authentication or not (see step 10 in the - [Configure the Provider in GroupID](/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/configurepingoneindirectorymanager.md#configure-the-provider-in-groupid) - topic). -2. Click the button for PingOne; the PingOne Sign In page is displayed. -3. Enter your credentials and sign in. You will be routed to the main page of the GroupID portal - _Wizard_. - Only users defined for our app in PingOne can log in using PingOne single sign-on. See the - [Configure Users in PingOne](/docs/directorymanager/11.0/authenticate/asserviceprovider/pingone/configureinpingone.md#configure-users-in-pingone) - topic. - -With single sign-on, you can now launch any GroupID client without having to sign in again. - -### IdP-Initiated Single Sign-On - -1. Launch the PingOne portal using the URL provided by your organization and sign in. - The PingOne dashboard will be displayed. It lists the apps configured with PingOne for single - sign-on. -2. On clicking an app, you will be redirected to it. Authentication will not be required. diff --git a/docs/directorymanager/11.0/authenticate/overview.md b/docs/directorymanager/11.0/authenticate/overview.md deleted file mode 100644 index c8c421cdf9..0000000000 --- a/docs/directorymanager/11.0/authenticate/overview.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: "Authenticate" -description: "Authenticate" -sidebar_position: 70 ---- - -# Authenticate - -Authenticate is a federation service that verifies a user's identity in an identity store before -allowing them to log in and use a GroupID application. With Authenticate, users are provided single -sign-on support across all GroupID applications that use the same identity store. - -You can use GroupID both as a service provider and as an identity provider. - -#### As a Service Provider - -Authenticate can be extended with third party single sign-on solutions that support the SAML 2.0 -standard. Supported identity providers include: - -- AD FS -- Microsoft Entra ID SSO -- Okta -- PingOne -- OneLogin - -You can also implement multifactor authentication in `GroupID using a third-party single sign-on -solution or with the options available in GroupID. - -#### As an Identity Provider - -GroupID can be implemented as an identity provider in your organization. The administrator can -configure third-party applications (service providers) with GroupID, in which case GroupID -authenticates and authorizes users for those applications. - -## Launch Authenticate - -In Admin Center, click **Manage SAML** in the top right corner to launch Authenticate. - -The Authenticate page has four tabs. Of these, the following are used when configuring GroupID as a -service provider: - -- **SAML Providers** - This tab displays the identity providers that have been configured for - GroupID. if any. Use the **New Provider** button to add an identity provider. -- **Generate URLs** - This tab contains settings (such as the consumer URL and the metadata URL) - that are used to configure GroupID in an identity provider. - -The following tabs are used when configuring GroupID as an identity provider: - -- **SAML Applications** - This tab displays the third-party applications that use GroupID as an - identity provider. Use the **New Application** button to add a service provider. -- **Settings** - This tab contains default settings that are used while configuring GroupID as an - identity provider within third-party applications. - -See Also - -- [GroupID as a Service Provider](/docs/directorymanager/11.0/authenticate/asserviceprovider/overview.md) -- [GroupID as an Identity Provider](/docs/directorymanager/11.0/authenticate/asidentityprovider/overview.md) diff --git a/docs/directorymanager/11.0/configureentraid/_category_.json b/docs/directorymanager/11.0/configureentraid/_category_.json deleted file mode 100644 index e997bd1089..0000000000 --- a/docs/directorymanager/11.0/configureentraid/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Configure in Microsoft Entra ID", - "position": 80, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/configureentraid/create.md b/docs/directorymanager/11.0/configureentraid/create.md deleted file mode 100644 index bdc5bb59e3..0000000000 --- a/docs/directorymanager/11.0/configureentraid/create.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: "Microsoft Entra ID Identity Store" -description: "Microsoft Entra ID Identity Store" -sidebar_position: 20 ---- - -# Microsoft Entra ID Identity Store - -Once you have registered GroupID and created a user with required directory role in Microsoft Entra -ID, you can now create an Microsoft Entra ID identity store in GroupID. This topic walks you through -the steps to create an Microsoft Entra ID identity store and assign a role to the Microsoft Entra ID -user in GroupID. - -## To create an Microsoft Entra ID Identity Store - -See the -[Create an Identity Store for Microsoft Entra ID](/docs/directorymanager/11.0/signin/identitystore/create.md#create-an-identity-store-for-microsoft-entra-id) -topic for creating an Microsoft Entra ID identity store. - -NOTE: If you intend to use a service account user with Global Administrator directory role, then no -change is required in the default GroupID security roles settings of Microsoft Entra ID identity -store. And if you intend to use a service account user with any role, other than Global -administrator directory role (i.e. User Administrator + Exchange Administrator), then the GroupID -Administrator security role criteria group must be changed to User Account Administrator. - -## GroupID Security Role Setting - -If you want to use a service account user with a role other than Global administrator role for -Microsoft Entra ID identity store, you have to assign it _User Account Administrator_ role in -GroupID. - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for Microsoft Entra ID identity store - and select **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for the administrator security role. -5. On the **Edit Security Role** page, the **Criteria** area displays the role criteria. Click **Add - Criteria** to change it. On the **Add Criteria** dialog box, delete the existing criteria and - search for User account administrator. Click **Save**. -6. Click **Update Security Role**. -7. On the **Security Roles** page, click **Save**. - -## Limitations of Minimum Service Account Permissions - -If you are using a service account with minimum directory role assignments, the following -limitations apply: - -- Only the User role can be assigned to newly created users and mailboxes objects from GroupID. The - same applies to existing users and mailboxes, as Directory Roles cannot be changed, using a - service account with minimum directory role assignments. - -- The password reset functionality would be limited to objects falling in the User role, User - Administrator role, and Helpdesk role. - -See Also - -- [Registration and Permissions Assignment](/docs/directorymanager/11.0/configureentraid/register/appregister.md) diff --git a/docs/directorymanager/11.0/configureentraid/create_1.md b/docs/directorymanager/11.0/configureentraid/create_1.md deleted file mode 100644 index 042768e4c0..0000000000 --- a/docs/directorymanager/11.0/configureentraid/create_1.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: "Microsoft Entra ID User" -description: "Microsoft Entra ID User" -sidebar_position: 30 ---- - -# Microsoft Entra ID User - -Once your application has been registered with Microsoft Entra ID, formerly Azure Active Directory, -create a user that will be set as a service account while creating an identity store for in -Microsoft Entra ID GroupID. - -To create a user in Microsoft Entra ID: - -1. In the Microsoft Entra Admin Center, go to Microsoft Entra ID> Users and click **New User** > - **Create new user**. - - ![create_user](/images/directorymanager/11.0/configureentraid/register/create_user.webp) - -2. On the **User** page: - - ![create_new_user_page](/images/directorymanager/11.0/configureentraid/register/create_new_user_page.webp) - - - The **Basics** tab contains the core fields required to create a new user. - - - **User principal name**: Enter a unique username and select a domain from the menu after - the @ symbol. Select **Domain not listed** if you need to create a new domain. For more - information, see - [Add your custom domain name](https://learn.microsoft.com/en-us/entra/fundamentals/add-custom-domain). - - **Mail nickname**: If you need to enter an email nickname that is different from the user - principal name you entered, uncheck the **Derive from user principal name** option, then - enter the mail nickname. - - **Display name**: Enter the user's name. - - **Password**: Provide a password for the user to use during their initial sign-in. Uncheck - the **Auto-generate password** option to enter a different password. - - **Account enabled**: This option is checked by default. Uncheck to prevent the new user - from being able to sign-in. You can change this setting after the user is created. - - Either select the **Review + create** button to create the new user or **Next: Properties** - to complete the next section. - - - The **Properties** tab has some categories of user properties you can provide. These - properties can be added or updated after the user is created. The properties are: - - - **Identity**: Enter the user's first and last name. Set the User type as either Member or - Guest. - - **Job information**: Add any job-related information, such as the user's job title, - department, or manager. - - **Contact information**: Add any relevant contact information for the user. - - **Settings**: Specify the user's global location. - - Either select the **Review + create** button to create the new user or **Next: Assignments** - to complete the next section. - - - The **Assignments** tab. You can assign the user: - - - an administrative unit - - group(s), select a group if you want to add the user to one or more existing groups - - role(s), assign the user a Global administrator role - Members of this role can create/manage groups, create/manage groups settings like naming - and expiration policies, and view groups activity and audit reports. - - Select the **Review + create** button. - - By default, the GroupID Administrator security role in a Microsoft Entra ID identity store binds - to Global Administrator. If minimum role assignment for the service account is used, the default - Admin Security role criteria should also be changed to the User Account Administrators group. - -The user is created and added to your Microsoft Entra ID tenant. - -You can now create an identity store for Microsoft Entra ID GroupID. - -Make sure you copy the application ID which is generated by Microsoft Entra ID when the application -is registered. This application ID will be required while creating an identity store for Microsoft -Entra ID. - -See Also - -- [Registration and Permissions Assignment](/docs/directorymanager/11.0/configureentraid/register/appregister.md) diff --git a/docs/directorymanager/11.0/configureentraid/overview.md b/docs/directorymanager/11.0/configureentraid/overview.md deleted file mode 100644 index 64823f18ad..0000000000 --- a/docs/directorymanager/11.0/configureentraid/overview.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Configure in Microsoft Entra ID" -description: "Configure in Microsoft Entra ID" -sidebar_position: 80 ---- - -# Configure in Microsoft Entra ID - -In GroupID, you can create an identity store for an identity provider and perform different -functions in that provider using its identity store. These functions include group management tasks, -such as creating groups, scheduling group updates, and expiring groups; user management tasks, such -as creating users and mailboxes, managing users’ profiles, and more. - -GroupID supports multiple identity providers for creating an identity store, including Microsoft -Entra ID, formerly Azure Active Directory. This section provides information that will help -configure GroupID in Microsoft Entra ID. - -See Also - -- [Registration and Permissions Assignment](/docs/directorymanager/11.0/configureentraid/register/appregister.md) diff --git a/docs/directorymanager/11.0/configureentraid/register/_category_.json b/docs/directorymanager/11.0/configureentraid/register/_category_.json deleted file mode 100644 index b8f27a0a7f..0000000000 --- a/docs/directorymanager/11.0/configureentraid/register/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Register in Microsoft Entra ID", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/configureentraid/register/apppermissions.md b/docs/directorymanager/11.0/configureentraid/register/apppermissions.md deleted file mode 100644 index 3ced841bc6..0000000000 --- a/docs/directorymanager/11.0/configureentraid/register/apppermissions.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Microsoft Entra ID Permissions" -description: "Microsoft Entra ID Permissions" -sidebar_position: 20 ---- - -# Microsoft Entra ID Permissions - -While using a Microsoft Entra ID identity store with GroupID, the user must have certain role -assignments and application permissions on the registered app in Microsoft Entra ID. - -This topic lists those roles and permissions GroupID needs to perform operations in a Microsoft -Entra ID provider. - -See the [ License GroupID](/docs/directorymanager/11.0/signin/concepts/licensing.md) -topic for additional information on GroupID licensing. - -## Graph API Application Permissions - -The following application permissions are required. - -![Microsoft Entra ID Application Permissions - Channel](/images/directorymanager/11.0/configureentraid/register/channel.webp) - -![Microsoft Entra ID Application Permissions - Directory](/images/directorymanager/11.0/configureentraid/register/directory.webp) - -![Microsoft Entra ID Application Permissions - Group](/images/directorymanager/11.0/configureentraid/register/group.webp) - -![Microsoft Entra ID Application Permissions - Mail](/images/directorymanager/11.0/configureentraid/register/mail.webp) - -![Microsoft Entra ID Application Permissions - Mail](/images/directorymanager/11.0/configureentraid/register/role.webp) - -![Microsoft Entra ID Application Permissions - User](/images/directorymanager/11.0/configureentraid/register/user.webp) - -![Microsoft Entra ID Application Permissions - User Password and Phone](/images/directorymanager/11.0/configureentraid/register/user-pw-phone.webp) - -## Office 365 Exchange Online Permissions - -![Microsoft Entra ID Office 365 Exchange Online Permissions - ExchangeManageAsApp](/images/directorymanager/11.0/configureentraid/register/exchange.webp) - -## SharePoint Delegated Permissions - -![allsites](/images/directorymanager/11.0/configureentraid/register/allsites.webp) diff --git a/docs/directorymanager/11.0/configureentraid/register/appregister.md b/docs/directorymanager/11.0/configureentraid/register/appregister.md deleted file mode 100644 index a4cb97b38b..0000000000 --- a/docs/directorymanager/11.0/configureentraid/register/appregister.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: "Registration and Permissions Assignment" -description: "Registration and Permissions Assignment" -sidebar_position: 10 ---- - -# Registration and Permissions Assignment - -This section discusses the GroupID application registration and permission assignment procedure. - -1. Login to Microsoft Entra Admin Center (https://portal.azure.com/) with a user that is part of the - “Global Administrator” role or any role that has rights to register an app, such as the - “Application administrator” role. This is required in order to give consent to certain - permissions in the application. -2. In the Microsoft Entra Admin Center, go to Microsoft Entra ID > App registration and click **New - registration**. - - ![App registeration page](/images/directorymanager/11.0/configureentraid/register/app_registeration.webp) - -3. On the **Register an application** page, specify a name for the app. Select **Supported account - types** as _Accounts in any organizational directory (Any Microsoft Entra ID – Multitenant_). - Leave the Redirect URI as is and click **Register**. - - ![Register an application](/images/directorymanager/11.0/configureentraid/register/register_an_application.webp) - -4. The **Overview** page is displayed. Copy the Application (client) ID and keep it safe. - - ![Overview page](/images/directorymanager/11.0/configureentraid/register/app_registeration_overview.webp) - -5. Go to the **Authentication** node and set it as follows: - - ![Authenticate node](/images/directorymanager/11.0/configureentraid/register/authenticate_node.webp) - -6. Click **Save**. -7. Click **Roles and administrators** node. - - ![Roles and Administration page](/images/directorymanager/11.0/configureentraid/register/roles_and_administration.webp) - -8. On the **All roles** page, add your registered application to a directory role. - - - **Global administrator**: For Global administrator, type global to filter out the Global - administrator role. Click **Global administrator**. - - ![All roles page](/images/directorymanager/11.0/configureentraid/register/all_roles.webp) - - Click **Add assignments**. On the Add assignment page, search your application and select - it. Click the **Add** button. The application will be listed on the Assignments page. - - ![Add assignment page](/images/directorymanager/11.0/configureentraid/register/add_assignment.webp) - - - For any role other than Global administrator, add the registered application to the following - two directory roles: - - - **Exchange administrators**: can manage all aspects of the Exchange product - - **User administrators**: (User Account Administrator) can manage all aspects of users and - groups, including resetting passwords for limited administrators. - - For example, this role does not allow deleting a global administrator. User Account - Administrators can change passwords for users, Helpdesk administrators, and other User - Account Administrators only. - - NOTE: By default, the GroupID Administrator security role in a Microsoft Entra - IDidentity store binds to Global Administrator. If minimum role assignment for the - service account is used, the default Admin Security role criteria should also be changed - to the _User Account Administrators_ group. - -9. Click **Add**. -10. Go to the **API permissions** node and select **Add a permission**. - - ![API Permission page](/images/directorymanager/11.0/configureentraid/register/add_a_permission.webp) - -11. The Request API permissions page opens. Click the **Microsoft Graph** API tab. - - ![Request API permissions page](/images/directorymanager/11.0/configureentraid/register/request_api_permissions.webp) - -12. Click the **Application permissions** tab: - - ![Application permissions tab](/images/directorymanager/11.0/configureentraid/register/application_permission.webp) - - Permissions get listed on the page. See the - [Microsoft Entra ID Permissions](/docs/directorymanager/11.0/configureentraid/register/apppermissions.md) - topic for the mandatory permissions that are required for creating the desired directory object. - -13. [Optional] To add a permission from Office 365 Exchange Online API, click the **Add a - permission** button (before the Grant admin consent for `` button in the snapshot - given in point # 14. - - Follow the steps shown on the following snapshot: - - ![Office 365 Exchange Online API](/images/directorymanager/11.0/configureentraid/register/office365_permission.webp) - -14. [Optional] To access the SharePoint API for Entitlement management, click the **Add a - permission** button (before the Grant admin consent for `` button in the snapshot - given in point # 14). Select the SharePoint API: - - ![SharePoint API card](/images/directorymanager/11.0/configureentraid/register/sharepoint_api_card.webp) - -15. Select the Delegated permissions tab: - - ![SharePoint Delegated permissions](/images/directorymanager/11.0/configureentraid/register/sharepoint_delegated_permissions.webp) - - See - [SharePoint Delegated Permissions](/docs/directorymanager/11.0/configureentraid/register/apppermissions.md#sharepoint-delegated-permissions) - section of the - [Microsoft Entra ID Permissions](/docs/directorymanager/11.0/configureentraid/register/apppermissions.md) - topic for the required permission name. - -This completes the registration process of GroupID in Microsoft Entra ID. - -See Also - -- [Register in Microsoft Entra ID](/docs/directorymanager/11.0/configureentraid/register/overview.md) diff --git a/docs/directorymanager/11.0/configureentraid/register/modauth.md b/docs/directorymanager/11.0/configureentraid/register/modauth.md deleted file mode 100644 index 794cb7f5e3..0000000000 --- a/docs/directorymanager/11.0/configureentraid/register/modauth.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: "Certificate for Modern Authentication" -description: "Certificate for Modern Authentication" -sidebar_position: 30 ---- - -# Certificate for Modern Authentication - -While configuring GroupID application in Microsoft Entra ID you must provide a certificate. You can -generate this certificate using GroupID PowerShell or any other third-party application. - -To generate a certificate using GroupID PowerShell: - -1. Login to GroupID server and run GroupID PowerShell as an administrator. -2. Run the following command: - - ``` - $mycert = New-SelfSignedCertificate -DnsName "contoso.org" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(1) -KeySpec KeyExchange - $mycert | Export-Certificate -FilePath c:\mycert.cer - ``` - - ![GroupID PowerShell Command ](/images/directorymanager/11.0/configureentraid/register/modern_auth_command.webp) - - The generated certificate will be saved at the root level of Drive C:. - - In Microsoft Entra Admin Center portal, while configuring the GroupID application, upload this - certificate using the Certificate & secrets node. - - ![certificates_n_secrets](/images/directorymanager/11.0/configureentraid/register/certificates_n_secrets.webp) - - On the **Upload certificate** page: - - 1. Click browse to select the generated certificate, mycert.cer, from Drive C. - 2. Provide a brief description for the certificate in the **Description** box. - 3. Click **Add**. - -3. After uploading the certificate successfully, Certificate Thumbprint is displayed. Copy it and - keep it safe. - - ![Generated Thumbprint ](/images/directorymanager/11.0/configureentraid/register/thumbprint.webp) - - The certificate Thumbprint will be used: - - - While creating a Microsoft Entra ID identity store (on the Identity Store Details page of new - identity store creation wizard). - - On the Messaging System page in identity store properties when Exchange Online/Office 365 is - set as a messaging provider. - - In Synchronize, in a Synchronize job, when you select AD as destination, and Office 365 as a - messaging provider on the Sync Object page, you must provide the certificate Thumbprint. - -## Verify Modern Authentication - -You can test Modern Authentication from GroupID Powershell in your tenant. First, verify that -Exchange Online module is installed on your GroupID server using the following cmdlet: - -``` -Get-InstallModule -name exchangeonlinemanagement -``` - -Connect to Exchange Online using the cmdlet shown below and fetch some data: - -NOTE: For that you need Certificate Thumbprint and Application ID of the registered app. - -``` -Connect-ExchangeOnline -certificateThumbprint Thumbprint -AppId App ID -organization organization name -``` - -To disconnect the Exchange Online session, use the following cmdlet: - -``` -Disconnect-ExchangeOnline -``` - -After this verification process, you can use the certificate Thumbprint in GroupID. - -See Also - -- [Registration and Permissions Assignment](/docs/directorymanager/11.0/configureentraid/register/appregister.md) diff --git a/docs/directorymanager/11.0/configureentraid/register/overview.md b/docs/directorymanager/11.0/configureentraid/register/overview.md deleted file mode 100644 index df251280a3..0000000000 --- a/docs/directorymanager/11.0/configureentraid/register/overview.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Register in Microsoft Entra ID" -description: "Register in Microsoft Entra ID" -sidebar_position: 10 ---- - -# Register in Microsoft Entra ID - -To use Microsoft Entra ID, formerly Azure Active Directory, identity provider, GroupID must first be -registered in Microsoft Entra Admin Center portal. The registration grants GroupID access to a -particular Microsoft Entra ID Directory and its data, such as Microsoft Entra ID groups and users. - -GroupID requires: - -- An application registered for GroupID in Microsoft Entra ID (with the Microsoft Graph API and - Exchange API permissions). -- A Microsoft Entra ID Directory Role for the service account for the Microsoft Entra ID identity - store. - - NOTE: See the - [All Role](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference#all-role) - section for - [User Administrator](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference#user-administrator) - and - [Exchange Administrator](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference#exchange-administrator) - role permissions in - [Microsoft Entra built-in roles](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference#microsoft-entra-built-in-roles). - -See Also - -- [Registration and Permissions Assignment](/docs/directorymanager/11.0/configureentraid/register/appregister.md) diff --git a/docs/directorymanager/11.0/credentialprovider/_category_.json b/docs/directorymanager/11.0/credentialprovider/_category_.json deleted file mode 100644 index ec1070bf89..0000000000 --- a/docs/directorymanager/11.0/credentialprovider/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "GroupID Credential Provider", - "position": 60, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "credentialprovider" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/credentialprovider/credentialprovider.md b/docs/directorymanager/11.0/credentialprovider/credentialprovider.md deleted file mode 100644 index 86c3fc16cc..0000000000 --- a/docs/directorymanager/11.0/credentialprovider/credentialprovider.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "GroupID Credential Provider" -description: "GroupID Credential Provider" -sidebar_position: 60 ---- - -# GroupID Credential Provider - -GroupID Credential Provider is a web interface for unlocking user accounts and resetting passwords. - -You must install it on each client workstation to make the password reset and account unlock -features available to all users. It provides links on the Windows logon screen, which route users to -the web page(s) where they can unlock their accounts and reset their passwords. - -## Files in the download package - -The Credential Provider package consists of: - -| | | -| ---------------------------------------------------------- | -------------- | -| NetwrixdirectorymanagerCredentialprovider.msi | Application | -| CPSettings.xml (contains settings for Credential Provider) | File | -| MST Guide | File folder | -| 838060235bcd28bf40ef7532c50ee032.cab | Cab file | -| a35cd6c9233b6ba3da66eecaa9190436.cab | Cab file | -| fe38b2fd0d440e3c6740b626f51a22fc.cab | Cab file | -| Orca-x86_en-us.msi | Orca installer | -| readme.txt | .txt file | - -See Also - -- [Install GroupID Credential Provider](/docs/directorymanager/11.0/credentialprovider/installcp.md) diff --git a/docs/directorymanager/11.0/credentialprovider/installcp.md b/docs/directorymanager/11.0/credentialprovider/installcp.md deleted file mode 100644 index 3e63656655..0000000000 --- a/docs/directorymanager/11.0/credentialprovider/installcp.md +++ /dev/null @@ -1,182 +0,0 @@ ---- -title: "Install GroupID Credential Provider" -description: "Install GroupID Credential Provider" -sidebar_position: 10 ---- - -# Install GroupID Credential Provider - -You can install GroupID Credential Provider in one of the following ways: - -- [Install GroupID Credential Provider Manually](#install-groupid-credential-provider-manually) -- [Install GroupID Credential Provider via a Group Policy Object (GPO)](#install-groupid-credential-provider-via-a-group-policy-object-gpo) - -### Install GroupID Credential Provider Manually - -Browse to the folder where you have copied the package: - -1. Click the _NetwrixdirectorymanagerCredentialprovider.msi_ file. The wizard opens and installs GroupID - Credential Provider. -2. After the installation, it asks you to restart your machine. -3. After the restart, the Windows logon screen appears as follows: - - ![Windows Logon screen](/images/directorymanager/11.0/portal/user/manage/windows_screen.webp) - - The **Forgot Password** and **Unlock Account** options are now available on the Windows logon - screen. They route you to the URLs provided for these options in the _CPSettings.xml_ file. You - can modify the URLs as well as the text of these options. - - Let’s have a look at the settings which are available in the _CPsettings.xml_ file: - - - `` - - Provide the text for the ForgotPasswordText key. This text will appear on the Windows logon - screen for the Forgot Password option. - - - `` - - Provide the text for the UnlockAccountText key. This text will appear on the Windows logon - screen for Unlock Account option. - - - `` - - Provide the URL to which you want to redirect the user to reset his/her forgotten password. - - - **For GroupID 10**: - `https://MachineName:port/portalname` - - **For GroupID 11**: - `https://MachineName:port/portalname/Home/PasswordReset` - -4. `` - - Provide the URL to which you want to redirect the user to unlock his/her locked account. - - - **For GroupID 10:** `https://MachineName:port/Portalname` - - **For GroupID 11:** `https://MachineName:port/portalname/Home/UnlockAccount` - -5. `` - - Provide the text for the CPTitle key. This text will appear as title under the Netwrix logo on - the Windows logon screen. - -## Install GroupID Credential Provider via a Group Policy Object (GPO) - -Instead of installing Credential Provider manually on each individual client workstation, you can -distribute it for automatic installation using a GPO, for substantial time savings (especially with -larger networks). The GPO can be defined for an organizational unit or applied on the entire domain. -Credential Provider is installed automatically at the next Windows startup. - -Installing Credential Provider is a two-step process: - -1. [Install Orca](#install-orca) -2. [Deploy Credential Provider via a GPO](#deploy-credential-provider-via-a-gpo) - -### Install Orca - -Before Credential Provider’s installation via GPO, Orca software is to be installed: - -1. Browse to the folder where you have copied the Credential Provider package. -2. Go to the MST Guide folder and run the _Orca-x86_en-us.msi_ application. The Orca console opens: - - ![Orca console](/images/directorymanager/11.0/portal/user/manage/orca_console.webp) - -3. In Orca, click **File** > **Open**. Browse to the Netwrix GroupID Credential Provider folder and - load the _NetwrixdirectorymanagerCredentialprovider.msi_ in Orca. - - ![Credential Provider in Orca](/images/directorymanager/11.0/portal/user/manage/cp_loaded.webp) - -4. From the menu, select **Transform** > **New Transform**: - - ![New Transform option](/images/directorymanager/11.0/portal/user/manage/new_transform.webp) - -5. Click **Property** in the left pane, list of the properties are displayed in the **Property** - main window: - - ![Property page](/images/directorymanager/11.0/portal/user/manage/property.webp) - -6. On your machine, create a new folder and copy the following files to it: - - - CPsettings.xml - - NetwrixdirectorymanagerCredentialprovider.msi - -7. Share the folder with the Everyone group with Read permission. -8. Provide the path of this newly created folder in the **SOURCEPATH** box. - - ![Property path](/images/directorymanager/11.0/portal/user/manage/property_path.webp) - -9. From the menu, select **Transform** > **Generate Transform**: - - ![Generate Transform option](/images/directorymanager/11.0/portal/user/manage/generate_transform.webp) - -10. Type a filename for the generated .mst file and save it into the shared folder you just created. -11. Close **Orca**. - -### Deploy Credential Provider via a GPO - -Having Orca successfully installed, follow these steps to deploy Credential Provider via a GPO. - -1. Launch **Group Policy Management** console by typing _gpmc.msc_ in the **Run** box and clicking - **OK**. The Group Policy Management Editor opens. - - ![Group Policy Management console](/images/directorymanager/11.0/portal/user/manage/gp_policy.webp) - - NOTE: Group Policy Management console is available if the Group Policy Management feature has - been installed. - -2. Right-click the domain or organizational unit for the computers that you want the Credential - Provider installed on. Select **Create a GPO in this domain, and link it here...**: - - ![CCreate a GPO in this domain and link it here option](/images/directorymanager/11.0/portal/user/manage/new_gpo.webp) - - Or - - Right-click the Select **Default Domain Policy** and select **Edit**: - - ![Edit Default Domain Policy option](/images/directorymanager/11.0/portal/user/manage/edit_gpo.webp) - -3. In the **Group Policy Management Editor**, click **Computer Configuration** > **Policies** > - **Software Settings** > **Software installation** > **New** > **Package**. - - ![New Package option](/images/directorymanager/11.0/portal/user/manage/software_installation.webp) - - NOTE: This documentation describes steps for editing the default policy. - -4. Browse to the shared folder. The folder must have the following files in it: - - - CPSettings.xml - - Netwrixdirectorymanagercredentialprovider.msi - - .mst file - - Select the _Netwrixdirectorymanagercredentialprovider.msi_ and click **Ok**. - - ![Deploy Software ](/images/directorymanager/11.0/portal/user/manage/deploy_cp.webp) - -5. Select **Advanced** and click **Ok**. The following window opens: - - ![Modifications tab](/images/directorymanager/11.0/portal/user/manage/modification_tab.webp) - -6. Select the **Modifications** tab. Click **Add**. -7. Browse to the shared folder where you saved the generated .mst file. Select that file and click - **Ok**. -8. Close the Group Policy Management Editor. - -The GroupID Credential provider is deployed on your machine via the default domain policy. - -## Run the credential provider - -1. Restart the machine - or - Run Command Prompt as administrator and type the following command in the cmd window: - gpupdate /force - -## Run the credential provider on client machines - -The modified domain policy will be installed on the client machines, which are in the scope of the -Group Policy Object, upon their next restart. The Windows logon screen appear as follows: - -![Windows Logon screen](/images/directorymanager/11.0/portal/user/manage/windows_screen.webp) - -See Also - -- [ GroupID Credential Provider](/docs/directorymanager/11.0/credentialprovider/credentialprovider.md) -- [Uninstall GroupID Credential Provider](/docs/directorymanager/11.0/credentialprovider/uninstallcp.md) diff --git a/docs/directorymanager/11.0/credentialprovider/uninstallcp.md b/docs/directorymanager/11.0/credentialprovider/uninstallcp.md deleted file mode 100644 index e47377df44..0000000000 --- a/docs/directorymanager/11.0/credentialprovider/uninstallcp.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: "Uninstall GroupID Credential Provider" -description: "Uninstall GroupID Credential Provider" -sidebar_position: 20 ---- - -# Uninstall GroupID Credential Provider - -You can uninstall GroupID Credential Provider using one of the following: - -- Windows Control Panel: If you have installed GroupID Credential Provider manually, you can - uninstall it using Windows Control Panel. -- Group Policy Object: If you have installed the GroupID Credential Provider via Group Policy Object - you can uninstall it using the following steps: - - 1. Open Group Policy Management by typing _gpmc.msc_ in the **Run** box and clicking **OK**. - 2. Right-click the required GPO under the domain or organizational unit that contains the GPO - distributing GroupID Credential Provider and click **Edit**. The Group Policy Management - Editor opens. - 3. Click **Computer Configurations** > **Policies** > **Software Settings** > **Software - Installation**. - 4. Right-click the GroupID Credential Provider package, point to **All Tasks** and click - **Remove**. - 5. In the **Remove Software** dialog box, select **Immediately uninstall the software from users - and computers** and click **OK**. - 6. Click **Close** to close the **Group Policy Object Editor**. - 7. When a client workstation restarts, the GPO, now without the Credential Provider object, is - applied on it. This removes the installed GroupID Credential Provider from all client - workstations. Once it is removed from the client workstation, the user must restart it again - to remove the links from the Windows logon screen. - -See Also - -- [Install GroupID Credential Provider](/docs/directorymanager/11.0/credentialprovider/installcp.md) -- [ GroupID Credential Provider](/docs/directorymanager/11.0/credentialprovider/credentialprovider.md) diff --git a/docs/directorymanager/11.0/index.md b/docs/directorymanager/11.0/index.md deleted file mode 100644 index 1696a76d9b..0000000000 --- a/docs/directorymanager/11.0/index.md +++ /dev/null @@ -1 +0,0 @@ -# GroupID 11.0 diff --git a/docs/directorymanager/11.0/introduction/_category_.json b/docs/directorymanager/11.0/introduction/_category_.json deleted file mode 100644 index 91876c6ee3..0000000000 --- a/docs/directorymanager/11.0/introduction/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Netwrix GroupID v11.0 Documentation", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "introduction" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/introduction/gettingstarted.md b/docs/directorymanager/11.0/introduction/gettingstarted.md deleted file mode 100644 index 10a99ec3a6..0000000000 --- a/docs/directorymanager/11.0/introduction/gettingstarted.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: "Getting Started" -description: "Getting Started" -sidebar_position: 20 ---- - -# Getting Started - -To get started with GroupID, it would be helpful to get an understanding of the following: - -- GroupID clients -- Initial Admin Center configurations after installation -- Compatible devices and browsers -- Supported languages - -## GroupID Clients - -The GroupID application comprises of the following main modules or clients: - -- **Admin Center** - The administrative console that enables administrators to configure settings - and controls that are essential to the functioning of GroupID. -- **GroupID portal** - The user-facing portal that enables administrators and users to create and - manage directory objects, sync data between providers, manage entitlements for file servers and - SharePoint sites, and generate reports to analyze your directory. -- **GroupID mobile app** - The app provides limited functions, like searching the directory and - joining/leaving groups. These operations can also be performed through the GroupID portal, but - it's handy to use the app. -- **Management Shell** - This command-line interface is intended for users who are comfortable with - scripts. Use Management Shell cmdlets to perform several group and user management functions, as - an alternative to performing those same functions from the GroupID portal. -- **APIs** - Integrate other applications with GroupID to perform several user management and group - management functions. - -## Initial Admin Center Configurations - -After installing and configuring GroupID, the Super Admin is the only user who can sign into Admin -Center. (See the [Access Admin Center](/docs/directorymanager/11.0/signin/signin.md) -topic.) This user must create an identity store and configure security roles, so that other users -can sign in and use the application. The Super Admin can choose to configure further settings or let -another admin user in an identity store do so. - -The following settings must be configured in Admin Center, so that administrators and users can -perform identity and access management tasks using GroupID: - -- **Create and configure identity stores** - An identity store is built on an identity provider and - enables you to manage objects and object permissions in the provider. See the - [Identity Stores](/docs/directorymanager/11.0/signin/identitystore/overview.md) - topic for additional information. -- **Create data sources** - A data source is built on a provider, such as directories, databases and - files. Data sources are used as source and destination in Synchronize jobs, in query-based - searches, and in group membership queries. See the - [ Data Sources](/docs/directorymanager/11.0/signin/datasource/overview.md) topic. -- **Create a GroupID portal** - Create a web-based GroupID portal and link it to an identity store, - so that users can carry out user, group, and entitlement management tasks. See the - [GroupID Portal](/docs/directorymanager/11.0/signin/applications/portal/overview.md) topic. -- **Create an SMS gateway account** - Using an SMS gateway account, GroupID sends text messages to - users’ mobile numbers, which may include verification codes and password reset links. See the - [SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/overview.md) topic. - -See the -[Menu Pane](/docs/directorymanager/11.0/signin/concepts/navigation.md#menu-pane) topic -for additional information. - -## Compatibility - -This section lists the browsers, devices, and languages that GroupID supports. - -- **Supported devices** - Admin Center and the GroupID portal can run on all modern desktop, laptop, - and tablet devices. -- **Supported browsers** - Admin Center and the GroupID portal support the latest versions of the - following browsers: - - - Microsoft Edge - - Safari - - Google Chrome - - Mozilla Firefox - -## Localization - -GroupID detects the language settings of the web browser accessing Admin Center or the GroupID -portal, and attempts to serve the application’s content in that language. Supported languages are: - -- Danish -- Dutch -- English (default) -- Finnish -- French -- German -- Icelandic -- Italian -- Portuguese -- Spanish -- Swedish -- Turkish - -If GroupID does not support the browser’s language set or if it cannot detect it, English is used to -serve the content. - -See Also - -- [ Installation](/docs/directorymanager/11.0/about/about.md) -- [Access Admin Center](/docs/directorymanager/11.0/signin/signin.md) -- [Access Portal](/docs/directorymanager/11.0/welcome/login.md) -- [GroupID Management Shell](/docs/directorymanager/11.0/managementshell/overview.md) -- [GroupID APIs](/docs/directorymanager/11.0/apis/welcome.md) diff --git a/docs/directorymanager/11.0/introduction/introduction.md b/docs/directorymanager/11.0/introduction/introduction.md deleted file mode 100644 index 8cbdc26538..0000000000 --- a/docs/directorymanager/11.0/introduction/introduction.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: "Netwrix GroupID v11.0 Documentation" -description: "Netwrix GroupID v11.0 Documentation" -sidebar_position: 10 ---- - -# Netwrix GroupID v11.0 Documentation - -Managing directory objects (for example, Active Directory users and groups) can be a challenge: -Employees move locations, change departments, and start new groups all the time. As a result, IT -professionals are faced with the daunting task of continually managing and updating security and -distribution groups — often having to do so manually. - -GroupID is an IAM solution that makes it easy to stay on top of all the changes, requests, and -requirements that IT sees every day. - -## GroupID Functions - -GroupID works with a directory service, such as Active Directory, to facilitate the following: - -- Group management -- User management -- Entitlement management -- Password management - -### Group Management - -GroupID offers administration and automation features for directory groups. You can: - -- Define rules to manage group memberships dynamically as changes occur within your organization. -- Automate group lifecycle through membership attestation, auto expiry, and deletion. -- Link identical groups in different directory services, such as Active Directory and Microsoft - Entra ID. -- Create hierarchy-based nested groups to mirror the geographical, organizational, and managerial - structure of your organization. -- Delegate group management to end users by enabling them to: - - - Create and manage their own groups - - Create teams and channels in MS Teams - - Join and leave the membership of groups - -### User Management - -With GroupID, you can: - -- Automate user provisioning and deprovisioning in bulk. -- Establish ownership by defining a clear managerial hierarchy with dotted line management. -- Delegate user management to end users by enabling them to: - - - Create and manage users, contacts, and mailboxes in the directory. - - Manage their direct reports. - - Update their profiles in the directory. - -- Link identical users in different directory services, such as Active Directory and Microsoft Entra - ID. - -### Entitlement Management - -Stay informed on the permissions assigned to objects residing on your Active Directory file servers -and SharePoint sites. - -- View entitlements from both an object’s perspective and a resource’s perspective. -- Evaluate entitlements to limit users and groups to the least privileges. -- Manage entitlements by assigning necessary permissions, modifying permissions, and revoking - unnecessary permissions on the go. - -### Password Management - -Different password management functions are available for administrators, helpdesk, and end users. - -- Administrators can define stringent password checks, such as disallow passwords starting with, - ending with, or containing certain words or phrases; define regular expressions to set a syntax - for allowed passwords; and even specify a list of disallowed passwords using an external file. -- Users can reset their own passwords and unlock their own accounts after passing multifactor - authentication. -- Helpdesk can reset passwords and unlock accounts for users after authentication. diff --git a/docs/directorymanager/11.0/introduction/whatsnew.md b/docs/directorymanager/11.0/introduction/whatsnew.md deleted file mode 100644 index fe91873398..0000000000 --- a/docs/directorymanager/11.0/introduction/whatsnew.md +++ /dev/null @@ -1,269 +0,0 @@ ---- -title: "What's New" -description: "What's New" -sidebar_position: 10 ---- - -# What's New - -## New Netwrix Community! - -All Netwrix product announcements have moved to the new Netwrix Community. See announcements for -Netrix GroupID in the [GroupID](https://community.netwrix.com/c/directorymanager/announcements/110) area of -our new community. - -The following information highlights the new and enhanced features introduced in Netwrix GroupID -version 11.0. - -Here is a list of the new features in GroupID 11: - -- [General](#general) -- [Admin Center](#admin-center) -- [GroupID Portal](#groupid-portal) -- [Synchronize](#synchronize) -- [Entitlement](#entitlement) - -### General - -General features that apply to all GroupID areas are listed below. - -Web-based application - -GroupID 11 is a web-based application. It has two portals: - -- Admin Center - Has replaced the MMC-based Windows application. -- GroupID portal - Self-Service portal, Password Center user portal, Password Center helpdesk - portal, Insights portal, Automate, Synchronize, and Reports have been merged into a single portal. - -Elasticsearch support - -Earlier you could only use Elasticsearch deployed by GroupID. Now you can use your own instance of -Elasticsearch. GroupID 11 supports Elasticsearch v 8.0.0. - -GroupID as an identity provider - -GroupID 11 can serve as an identity provider. You can register a third-party application as a -service provider in GroupID to authenticate users in that application through GroupID. - -GroupID Scheduler Service in IIS - -Scheduled jobs are now saved in the GroupID database. The GroupIDSchedulerService, created in the -GroupIDSite11 site in native IIS, is responsible for initiating schedule runs. - -Web-based Replication and Email services - -Earlier Replication service and Email service were Windows services. Now they are web-based services -deployed in native IIS. - -Passwordless authentication with QR code - -With the QR code option enabled for an identity store, users can simply scan the QR code with the -GroupID mobile app on their smartphones to connect GroupID Admin Center or the GroupID portal to an -identity store and sign in, without the need to provide a username and password. - -Core services deployment in Docker - -You can now deploy core GroupID services, Data Service and Security Service, in Docker. (Preview) - -### Admin Center - -The Admin Center portal offers the following new features: - -Linked identity store - -You can link Active Directory and Microsoft Entra ID identity stores in GroupID. In this way, -identical user and group objects existing in these identity stores (domains) can be linked and -auto-synced. - -Deployment of services and GroupID portals in native IIS, remote IIS, and Docker - -Earlier versions of GroupID supported deployments in native IIS only. Now, you can create as many -portals, Data services, Security services, and Mobile services as needed, while deploying them in -any of the supported web srervers. - -Elastic health check facility - -You can monitor the Elasticsearch service for the following: - -- The status of the Elasticsearch service as stopped or running. -- Elasticsearch cluster health stats, that include cluster health status, node info, and shards - info. -- Cluster indices information, like health, number of documents, and status. - -Modern authentication support - -In addition to basic authentication, GroupID 11 also supports modern authentication. - -Power Automate integration - -Link a workflow in an identity store to a Power Automate flow. When the GroupID workflow is -triggered, the linked flow is auto-triggered. - -Admin Center history tracking - -In earlier GroupID versions, history was partially tracked for actions performed in GroupID -Management Console. In GroupID 11, the history tracking function has been extended to include Admin -Center history. GroupID auto-tracks actions such as the creation and deletion of identity stores, -the creation and deletion of SMS gateway accounts, changes to replication settings, modifications to -notification templates, and much more. - -Circular reference in membership and direct reports - -GroupID checks for circular reference when users update objects manually or when objects are auto -updated via a GroupID schedule. If a circular reference occurs, GroupID displays an error and -prevents the user from saving the change. - -Multiple deployments of applications - -For load balancing and high availability, GroupID facilitates you to create multiple instances of -the following applications: - -- GroupID portal -- Data Service -- Security Service -- Mobile Service - -Now you can create an application, such as a portal, and host different instances of this portal on -different web servers, i.e., native IIS, remote IIS, and Docker. All instances of this portal share -the same design settings and the same server settings, except that each instance has its own -deployment settings. - -### GroupID Portal - -In GroupID portal, end users can perform functions according to the role(s) assigned to them. - -Single portal for end-users - -The following GroupID modules and portals have been merged into a single portal – GroupID portal. - -| Modules/Nodes | Portals | -| ------------- | ------------------------------- | -| Automate | Self-Service portal | -| Synchronize | Password Center User portal | -| Reports | Password Center Helpdesk portal | -| | Insights (now Entitlement) | - -DL support in a Microsoft Entra ID identity store - -GroupID 11 allows users to manage distribution lists in a Microsoft Entra ID Identity store. - -Query-based search in the GroupID portal - -In addition to Advanced Search, users can use a Query Designer to define criteria for searching -objects and save each query for later use. - -Dynasties in the GroupID portal - -Dynasties, which were previously only managed by Automate, are now available in the GroupID portal. -Just like Smart Groups and static groups, users can easily create and manage Dynasties through the -GroupID portal. - -Upgrade a static group to a Managerial Dynasty - -Using the GroupID portal, you can upgrade a static group to a Managerial Dynasty. It’s a one-step -process that converts the static group to a Dynasty with all attributes intact. - -Specify new manager while transferring direct report - -Portal users can transfer their direct reports and specify a new manager for them. - -Membership preview for Smart Groups and Dynasties - -The membership preview option enables you to preview the objects (along with their membership) that -will be created/added when you update the membership of a Smart Group or Dynasty. If out-of-bounds -configurations are specified, the membership preview takes them into account as well. - -Microsoft Teams groups - -The GroupID portal enables you to create teams and channels in MS Teams. You can create static teams -and smart teams, where smart team memberships are defined through queries. Your teams can have -temporary and permanent members as well as temporary and permanent owners. Moreover you can also set -expiry dates for teams. - -Channels in teams can be public and private. Users can join public channels while private channel -membership is determined by the team owner. - -### Synchronize - -Synchronize is now web-based and available in the GroupID portal. Synchronize jobs now use identity -stores and data sources defined in Admin Center as source and destination. Earlier, only IT admins -could run Synchronize since it was part of the GroupID Management Console but now end users can use -it too. Proper checks are in place to control access via the Synchronize policy and -Synchronize-related permissions. - -Support for Microsoft Entra ID and Google Workspace providers - -GroupID 11 now supports Microsoft Entra ID and Google Workspace as source and destination providers. -You must create their identity stores in Admin Center to use them as source or destination providers -in Synchronize jobs. - -Data sources for Synchronize - -GroupID 11 supports data sources (databases and files) as source and destination providers for -Synchronize jobs. Users can create Synchronize jobs to provision, de-provision, or synchronize data -using these data sources. Amongst others, support for SCIM is also available. - -Data source for files on local server and one drive - -The Excel, Access, and Text/CSV files used for creating a data source can be placed on a local -server or OneDrive. - -Synchronize policy - -Using the Synchronize policy, you can allow or disallow: - -- a provider to be used as a source or destination. -- an identity store/data source to be used as a source or destination. - -You can choose the object types that can be created or synced at the destination using a Synchronize -job. For each object type in an identity store and data source, you can also specify the attributes -that will be available for mapping the source and destination fields in a Synchronize job. - -Synchronize permissions - -Using Synchronize permission, you can control different actions that role members can perform in -Synchronize. For example, if the permission to create a Synchronize job is disabled for a role, the -_Create Job_ option will not be available to role members. - -Workflows support in Synchronize - -If a Synchronize job performs an operation in the destination identity store and a workflow is -configured for that operation in that identity store, then a workflow request is generated on the -job run. If the approver approves the request, the job will run successfully. If the approver denies -the request, you will be unable to run the job. - -Python scripting in Synchronize - -Along with VB scripting, GroupID 11 introduces Python scripting while creating a job. You can choose -either of the two to modify the script for a job. - -Messaging provider of destination - -Synchronize supports different messaging providers that can be configured while creating a job. -However, instead of configuring a new messaging provider, you can also select the messaging provider -of the destination identity store. - -Notification server of destination - -If notifications are enabled for a Synchronize job, then email notifications are sent to the -specified recipients using the notification server of destination identity store. If a notification -server is not configured in the destination identity store, you can configure it while creating the -job. - -### Entitlement - -In earlier GroupID versions, you only view the effective NTFS permissions that a user or group had -on file server shares in your environment. With GroupID 11, you can now view and update permissions -for file server shares and SharePoint sites. - -Entitlement for SharePoint - -You can assign and revoke permission on: - -- perpetual basis -- temporary basis - -For this, two new scheduled jobs have been added: - -- Entitlement Scope -- Entitlement Temporary Permissions diff --git a/docs/directorymanager/11.0/managementshell/_category_.json b/docs/directorymanager/11.0/managementshell/_category_.json deleted file mode 100644 index c3b37955ea..0000000000 --- a/docs/directorymanager/11.0/managementshell/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "GroupID Management Shell", - "position": 100, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/managementshell/commands.md b/docs/directorymanager/11.0/managementshell/commands.md deleted file mode 100644 index 424f6123dd..0000000000 --- a/docs/directorymanager/11.0/managementshell/commands.md +++ /dev/null @@ -1,135 +0,0 @@ ---- -title: "All Commands" -description: "All Commands" -sidebar_position: 10 ---- - -# All Commands - -You can get a list of all GroupID Management Shell cmdlets using the _Get-ImanamiCommand_ cmdlet. - -## Contact Cmdlets - -1. [Get-Contact](/docs/directorymanager/11.0/managementshell/contact/getcontact.md) -2. [New-Contact](/docs/directorymanager/11.0/managementshell/contact/newcontact.md) -3. [Remove-Contact](/docs/directorymanager/11.0/managementshell/contact/removecontact.md) -4. [Set-Contact](/docs/directorymanager/11.0/managementshell/contact/setcontact.md) - -## Dynasty Cmdlets - -1. [New-Dynasty](/docs/directorymanager/11.0/managementshell/dynasty/newdynasty.md) -2. [Set-Dynasty](/docs/directorymanager/11.0/managementshell/dynasty/setdynasty.md) - -## General Cmdlets - -1. [Get-Computer](/docs/directorymanager/11.0/managementshell/general/getcomputer.md) -2. [Get-ConnectedStoreInformation](/docs/directorymanager/11.0/managementshell/general/getconnectedstoreinformation.md) -3. [Get-ConnectedUser](/docs/directorymanager/11.0/managementshell/general/getconnecteduser.md) -4. [Get-GroupIdInformation](/docs/directorymanager/11.0/managementshell/general/getdirectorymanagerinformation.md) -5. [Get-ImanamiCommand](/docs/directorymanager/11.0/managementshell/general/getimanamicommand.md) -6. [Get-ReplicationStatus](/docs/directorymanager/11.0/managementshell/general/getreplicationstatus.md) -7. [Get-TombStoneObject](/docs/directorymanager/11.0/managementshell/general/gettombstoneobject.md) -8. [Invoke-Replication](/docs/directorymanager/11.0/managementshell/general/invokereplication.md) -9. [New-Container](/docs/directorymanager/11.0/managementshell/general/newcontainer.md) -10. [Remove-Container](/docs/directorymanager/11.0/managementshell/general/removecontainer.md) -11. [Restore-TombStoneObject](/docs/directorymanager/11.0/managementshell/general/restoretombstoneobject.md) -12. [Send-Notification](/docs/directorymanager/11.0/managementshell/general/sendnotification.md) - -## Group Cmdlets - -1. [Convert-Group](/docs/directorymanager/11.0/managementshell/group/convertgroup.md) -2. [Expire-Group](/docs/directorymanager/11.0/managementshell/group/expiregroup.md) -3. [Get-Group](/docs/directorymanager/11.0/managementshell/group/getgroup.md) -4. [Move-Group](/docs/directorymanager/11.0/managementshell/group/movegroup.md) -5. [New-Group](/docs/directorymanager/11.0/managementshell/group/newgroup.md) -6. [Remove-Group](/docs/directorymanager/11.0/managementshell/group/remove-group.md) -7. [Renew-Group](/docs/directorymanager/11.0/managementshell/group/renewgroup.md) -8. [Set-Group](/docs/directorymanager/11.0/managementshell/group/setgroup.md) - -## Identity Store Cmdlets - -1. [Clear-MessagingServer](/docs/directorymanager/11.0/managementshell/identitystore/clearmessagingserver.md) -2. [Clear-Notifications](/docs/directorymanager/11.0/managementshell/identitystore/clearnotifications.md) -3. [Clear-SmtpServer](/docs/directorymanager/11.0/managementshell/identitystore/clearsmtpserver.md) -4. [Get-AvailableMessagingServers](/docs/directorymanager/11.0/managementshell/identitystore/getavailablemessagingservers.md) -5. [Get-Client](/docs/directorymanager/11.0/managementshell/identitystore/getclient.md) -6. [Get-IdentityStore](/docs/directorymanager/11.0/managementshell/identitystore/getidentitystore.md) -7. [Get-IdentityStoreRoles](/docs/directorymanager/11.0/managementshell/identitystore/getidentitystoreroles.md) -8. [Get-LogSettings](/docs/directorymanager/11.0/managementshell/identitystore/getlogsettings.md) -9. [Get-RolePermissionNames](/docs/directorymanager/11.0/managementshell/identitystore/getrolepermissionnames.md) -10. [Get-SchemaAttributes](/docs/directorymanager/11.0/managementshell/identitystore/getschemaattributes.md) -11. [Get-SmsGateways](/docs/directorymanager/11.0/managementshell/identitystore/getsmsgateways.md) -12. [Get-UserRole](/docs/directorymanager/11.0/managementshell/identitystore/getuserrole.md) -13. [New-IdentityStore](/docs/directorymanager/11.0/managementshell/identitystore/newidentitystore.md) -14. [Remove-IdentityStore](/docs/directorymanager/11.0/managementshell/identitystore/removeidentitystore.md) -15. [Send-TestNotification](/docs/directorymanager/11.0/managementshell/identitystore/sendtestnotification.md) -16. [Set-IdentityStore](/docs/directorymanager/11.0/managementshell/identitystore/setidentitystore.md) -17. [Set-IdentityStoreRole](/docs/directorymanager/11.0/managementshell/identitystore/setidentitystorerole.md) -18. [Set-MessagingServer](/docs/directorymanager/11.0/managementshell/identitystore/setmessagingserver.md) -19. [Set-Notifications](/docs/directorymanager/11.0/managementshell/identitystore/setnotifications.md) -20. [Set-SmtpServer](/docs/directorymanager/11.0/managementshell/identitystore/setsmtpserver.md) - -## Identity Store Connection Cmdlets - -1. [Connect-IdentityStore](/docs/directorymanager/11.0/managementshell/identitystoreconnection/connectidentitystore.md) -2. [Get-Token](/docs/directorymanager/11.0/managementshell/identitystoreconnection/gettoken.md) - -## Mailbox Cmdlets - -1. [Get-Mailbox](/docs/directorymanager/11.0/managementshell/mailbox/getmailbox.md) -2. [New-Mailbox](/docs/directorymanager/11.0/managementshell/mailbox/newmailbox.md) -3. [Remove-Mailbox](/docs/directorymanager/11.0/managementshell/mailbox/removemailbox.md) -4. [Set-Mailbox](/docs/directorymanager/11.0/managementshell/mailbox/setmailbox.md) - -## Mail-Enable/Disable Groups Cmdlets - -1. [Disable-DistributionGroup](/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/disabledistributiongroup.md) -2. [Enable-DistributionGroup](/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/enabledistributiongroup.md) - -## Membership Cmdlets - -1. [Add-GroupMember](/docs/directorymanager/11.0/managementshell/membership/addgroupmember.md) -2. [Get-GroupMember](/docs/directorymanager/11.0/managementshell/membership/getgroupmember.md) -3. [Get-Object](/docs/directorymanager/11.0/managementshell/membership/getobject.md) -4. [Remove-GroupMember](/docs/directorymanager/11.0/managementshell/membership/removegroupmember.md) -5. [Set-Object](/docs/directorymanager/11.0/managementshell/membership/setobject.md) - -## Scheduling Cmdlets - -1. [Get-Schedule](/docs/directorymanager/11.0/managementshell/scheduling/getschedule.md) -2. [Get-TargetSchedules](/docs/directorymanager/11.0/managementshell/scheduling/gettargetschedule.md) -3. [ Invoke-Schedule](/docs/directorymanager/11.0/managementshell/scheduling/invokeschedule.md) -4. [New-Schedule](/docs/directorymanager/11.0/managementshell/scheduling/newschedule.md) -5. [Remove-Schedule](/docs/directorymanager/11.0/managementshell/scheduling/removeschedule.md) -6. [Set-Schedule](/docs/directorymanager/11.0/managementshell/scheduling/setschedule.md) -7. [Stop-Schedule](/docs/directorymanager/11.0/managementshell/scheduling/stopschedule.md) - -## Smart Group Cmdlets - -1. [ConvertTo-StaticGroup](/docs/directorymanager/11.0/managementshell/smartgroup/converttostaticgroup.md) -2. [Get-SmartGroup](/docs/directorymanager/11.0/managementshell/smartgroup/getsmartgroup.md) -3. [New-SmartGroup](/docs/directorymanager/11.0/managementshell/smartgroup/newsmartgroup.md) -4. [Set-SmartGroup](/docs/directorymanager/11.0/managementshell/smartgroup/setsmartgroup.md) -5. [Update-Group](/docs/directorymanager/11.0/managementshell/smartgroup/updategroup.md) -6. [Upgrade-Group](/docs/directorymanager/11.0/managementshell/smartgroup/upgradegroup.md) - -## User Cmdlets - -1. [Get-User](/docs/directorymanager/11.0/managementshell/user/getuser.md) -2. [Get-UserEnrollment](/docs/directorymanager/11.0/managementshell/user/getuserenrollment.md) -3. [New-User](/docs/directorymanager/11.0/managementshell/user/newuser.md) -4. [Remove-User](/docs/directorymanager/11.0/managementshell/user/removeuser.md) -5. [Set-User ](/docs/directorymanager/11.0/managementshell/user/setuser.md) - -## User Lifecycle Cmdlets - -1. [Extend-User](/docs/directorymanager/11.0/managementshell/userlifecycle/extenduser.md) -2. [Get-Status](/docs/directorymanager/11.0/managementshell/userlifecycle/getstatus.md) -3. [Reinstate-User](/docs/directorymanager/11.0/managementshell/userlifecycle/reinstateuser.md) -4. [Terminate-DirectReports](/docs/directorymanager/11.0/managementshell/userlifecycle/terminatedirectreports.md) -5. [Transfer-DirectReports ](/docs/directorymanager/11.0/managementshell/userlifecycle/transferdirectreports.md) - -See Also - -- [GroupID Management Shell](/docs/directorymanager/11.0/managementshell/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/contact/_category_.json b/docs/directorymanager/11.0/managementshell/contact/_category_.json deleted file mode 100644 index 802977bdd5..0000000000 --- a/docs/directorymanager/11.0/managementshell/contact/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Contact Commands", - "position": 40, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/managementshell/contact/getcontact.md b/docs/directorymanager/11.0/managementshell/contact/getcontact.md deleted file mode 100644 index 0c7fe87bf3..0000000000 --- a/docs/directorymanager/11.0/managementshell/contact/getcontact.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: "Get-Contact" -description: "Get-Contact" -sidebar_position: 10 ---- - -# Get-Contact - -Use the **Get-Contact** cmdlet to retrieve basic information about a contact. - -## Syntax - -``` -Get-Contact -[[-Identity] ] -[-SearchContainer ] -[-SearchContainersScopeList ] -[-ShouldReturnCollection] -[-MaxItemsToDisplay ] -[-ObjectType ] -[-LdapFilter ] -[-SmartFilter ] -[-ServerFilter ] -[-AttributesToLoad ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- None - -Example: - -The following command retrieves a contact from the specified container of the identity store. - -``` -Get-Contact -SearchContainer "OU=osamamu,DC=naveed,DC=local" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Contact Commands](/docs/directorymanager/11.0/managementshell/contact/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/contact/newcontact.md b/docs/directorymanager/11.0/managementshell/contact/newcontact.md deleted file mode 100644 index 583a933658..0000000000 --- a/docs/directorymanager/11.0/managementshell/contact/newcontact.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: "New-Contact" -description: "New-Contact" -sidebar_position: 20 ---- - -# New-Contact - -Use the **New-Contact** cmdlet to create a new contact in the directory. Most contact properties can -be directly added by using the parameters supported by this cmdlet. - -## Syntax - -``` -New-Contact --Name --OrganizationalUnit --FirstName --LastName --DisplayName -[-UPNSuffix ] -[-Title ] -[-City ] -[-State ] -[-Zip ] -[-Country ] -[-Initials ] -[-Address ] -[-Office ] -[-Business ] -[-Business2 ] -[-Alias ] -[-EmailAddress ] -[-Department ] -[-Company ] -[-Mobile ] -[-Home ] -[-Manager ] -[-HomePage ] -[-Assistant ] -[-Notes ] -[-MailEnabled ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameters - -- Name -- OrganizationalUnit -- FirstName -- LastName -- DisplayName - -Example: - -The following command creates a new contact in the container specified by the _OrganizationalUnit_ -parameter. The command also specifies the logon name, first name, last name and display name of the -new contact. - -``` -New-Contact -Name "OsamaContact" -OrganizationalUnit "OU=osamamu,DC=naveed,DC=local" -FirstName "OsamaContact" -LastName "OsamaContact" -DisplayName "OsamaContact" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Contact Commands](/docs/directorymanager/11.0/managementshell/contact/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/contact/overview.md b/docs/directorymanager/11.0/managementshell/contact/overview.md deleted file mode 100644 index e2d1dca59d..0000000000 --- a/docs/directorymanager/11.0/managementshell/contact/overview.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Contact Commands" -description: "Contact Commands" -sidebar_position: 40 ---- - -# Contact Commands - -GroupID provides the following cmdlets to perform contact-related tasks, such as: - -- [Get-Contact](/docs/directorymanager/11.0/managementshell/contact/getcontact.md): - retrieves a contact that matches the given criteria. -- [New-Contact](/docs/directorymanager/11.0/managementshell/contact/newcontact.md): creates - a new contact. -- [Remove-Contact](/docs/directorymanager/11.0/managementshell/contact/removecontact.md): - removes a contact from the directory. -- [Set-Contact](/docs/directorymanager/11.0/managementshell/contact/setcontact.md): - modifies a contact in the directory. - -See Also - -- [GroupID Management Shell](/docs/directorymanager/11.0/managementshell/overview.md) -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/contact/removecontact.md b/docs/directorymanager/11.0/managementshell/contact/removecontact.md deleted file mode 100644 index fa6a628a4e..0000000000 --- a/docs/directorymanager/11.0/managementshell/contact/removecontact.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "Remove-Contact" -description: "Remove-Contact" -sidebar_position: 30 ---- - -# Remove-Contact - -Use the **Remove-Contact** cmdlet to delete a contact from the directory. - -## Syntax - -``` -Remove-Contact --Identity -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- Identity - -Example: - -The following command deletes the specified contact from the identity store. - -``` -Remove-Contact -Identity "OsamaContact" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Contact Commands](/docs/directorymanager/11.0/managementshell/contact/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/contact/setcontact.md b/docs/directorymanager/11.0/managementshell/contact/setcontact.md deleted file mode 100644 index 60d52bfd6d..0000000000 --- a/docs/directorymanager/11.0/managementshell/contact/setcontact.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: "Set-Contact" -description: "Set-Contact" -sidebar_position: 40 ---- - -# Set-Contact - -The _Set-User_ cmdlet modifies a user in the directory. Most user properties can be directly -modified by using the parameters supported by this cmdlet. - -## Syntax - -``` -Set-Contact --Identity -[-FirstName ] -[-LastName ] -[-Title ] -[-City ] -[-State ] -[-Zip ] -[-Country ] -[-Initials ] -[-Address ] -[-Office ] -[-Business ] -[-Add ] -[-Remove ] -[-Replace ] -[-Clear ] -[-Department ] -[-Company ] -[-Assistant ] -[-HomePage ] -[-Alias ] -[-EmailAddress ] -[-Description ] -[-Notes ] -[-AdministrativeNotes ] -[-DisplayName ] -[-SimpleDisplayName ] -[-CustomAttribute1 ] -[-CustomAttribute2 ] -[-CustomAttribute3 ] -[-CustomAttribute4 ] -[-CustomAttribute5 ] -[-CustomAttribute6 ] -[-CustomAttribute7 ] -[-CustomAttribute8 ] -[-CustomAttribute9 ] -[-CustomAttribute10 ] -[-CustomAttribute11 ] -[-CustomAttribute12 ] -[-CustomAttribute13 ] -[-CustomAttribute14 ] -[-CustomAttribute15 ] -[-Delimiter ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] - -``` - -## Required Parameter - -- Identity - -Example: - -The following command modifies the city of the specified contact. - -``` -Set-Contact -Identity "OsamaContact" -City "Islamabad" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Contact Commands](/docs/directorymanager/11.0/managementshell/contact/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/dynasty/_category_.json b/docs/directorymanager/11.0/managementshell/dynasty/_category_.json deleted file mode 100644 index efc071e5b6..0000000000 --- a/docs/directorymanager/11.0/managementshell/dynasty/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Dynasty Commands", - "position": 50, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/managementshell/dynasty/newdynasty.md b/docs/directorymanager/11.0/managementshell/dynasty/newdynasty.md deleted file mode 100644 index 89b17676a8..0000000000 --- a/docs/directorymanager/11.0/managementshell/dynasty/newdynasty.md +++ /dev/null @@ -1,133 +0,0 @@ ---- -title: "New-Dynasty" -description: "New-Dynasty" -sidebar_position: 10 ---- - -# New-Dynasty - -The **New-Dynasty** cmdlet creates a new Dynasty in Directory. A Dynasty is a Smart Group that can -create and maintain the membership of other Smart Groups. A Dynasty retrieves data from Directory in -the same manner as a Smart Group, but it divides the result set into child groups based on group-by -field values. - -You can specify multiple group-by fields. For instance, with the group-by fields Country, State, and -City, this commandlet creates a group for every distinct country value, then for each state within a -country, and finally for each city in that state. All created child groups inherit those attributes -of the parent that are set in the **InheritedAttrs** option. - -You can view events related to this commandlet in GroupID portal, against the **History** node in -the left panel. - -## Syntax - -``` -New-Dynasty --TopManager --SamAccountName --Name --OrganizationalUnit --GroupScope --Type --SecurityType -[-ChildContainer ] -[-Filters ] -[-Separator ] -[-ExcludeNestedLists ] -[-CreateFlatManagerialList ] -[-IncludeManagerAsMember ] -[-ChildPath ] -[-DynastyInheritance ] -[-SearchContainers ] -[-SearchContainersScopeList ] -[-ObjectTypes ] -[-LdapFilter ] -[-IncludeRecipients ] -[-ExcludeRecipients ] -[-Storage ] -[-DataSourceType ] -[-SystemDSN ] -[-TableorView ] -[-DataSourceUserName ] -[-DataSourcePassword ] -[-FilePath ] -[-Server ] -[-Port ] -[-LDAPSearchContainer ] -[-DataSourceName ] -[-DataSourceConnection ] -[-DataSourceQuery ] -[-KeyMapDB ] -[-KeyMapAD ] -[-WindowsAthentication] -[-IsPasswordExpiryGroup] -[-DomainExpiration ] -[-ExpirationRange ] -[-IncludeDisabledUsers ] -[-IncludePasswordNeverExpireUsers ] -[-Script ] -[-ScriptFilePath ] -[-Sun_Container ] -[-GroupAlias ] -[-ManagedBy ] -[-DisplayName ] -[-MailEnabled ] -[-Description ] -[-AdditionalOwners ] -[-NotifyOptOutAdditionalOwners ] -[-Members ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameters - -- TopManager -- SamAccountName -- Name -- OrganizationalUnit -- GroupScope -- Type -- SecurityType - -Example 1: - -The following command creates a new mail-enabled, universal, distribution Dynasty and constructs its -child groups for every distinct department value in the container specified by the -**OrganizationalUnit** parameter using the credentials of current user logged-on to the identity -store. - -``` -New-Dynasty -OrganizationalUnit "OU=Recruiting,DC=HR,DC=Imanami,DC=US" -Name "Departmental" -SamAccountName  "Departmental" -Type "Distribution" -GroupScope "Universal Group" -MailEnable True -GroupAlias "Departmental" -GroupBy  "Department" -``` - -Example 2: - -The following command creates a new mail-enabled, universal, distribution, multi-level Dynasty with -the group-by attributes **Country, State** and **City** based on the specified filters and -separator, using the credentials set in the **$Credentials** environment variable. See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in an environment variable. - -``` -New-Dynasty -OrganizationalUnit "OU=Recruiting,DC=HR,DC=Imanami,DC=US" -Name "Geographical" -GroupAlias "Geographical" -MailEnable True -SamAccountName "Geographical" -GroupScope "Universal Group" -Type "Distribution" -GroupBy "co","st","l" -Filters "Left 3","Left 3","%GROUPBY%\*" -Separator "_","_","_" -Credential $Cred -``` - -Example 3: - -The following command creates a new universal, distribution Managerial Dynasty in the container -specified by the **OrganizationalUnit** parameter, searches the direct reports of the top manager in -the containers specified in the **SearchContainers** parameter including sub containers and creates -them in the same container where the Top Manager resides. - -``` -New-Dynasty -OrganizationalUnit "OU=Recruiting,DC=HR,DC=Imanami,DC=US" -Name "Managerial" -SamAccountName "Managerial" -GroupScope "Universal Group" -Type "Distribution" -SearchContainers "OU=Recruiting,OU=HR,DC=Imanami,DC=US","OU=Outsourcing,OU=HR,DC=Imanami,DC=US" -SearchContainersScopeList "2","2" -TopManager "CN=BrianRegan,CN=Users,DC=HR,DC=Imanami,DC=US" -ExcludeNestedLists False -ChildContainer "" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Dynasty Commands](/docs/directorymanager/11.0/managementshell/dynasty/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/dynasty/overview.md b/docs/directorymanager/11.0/managementshell/dynasty/overview.md deleted file mode 100644 index 4cbdba461e..0000000000 --- a/docs/directorymanager/11.0/managementshell/dynasty/overview.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Dynasty Commands" -description: "Dynasty Commands" -sidebar_position: 50 ---- - -# Dynasty Commands - -This section covers the following cmdlets for managing Dynasties. - -- [New-Dynasty](/docs/directorymanager/11.0/managementshell/dynasty/newdynasty.md): creates - a new Dynasty. -- [Set-Dynasty](/docs/directorymanager/11.0/managementshell/dynasty/setdynasty.md): - modifies a Dynasty or its children. - -See Also - -- [GroupID Management Shell](/docs/directorymanager/11.0/managementshell/overview.md) -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/dynasty/setdynasty.md b/docs/directorymanager/11.0/managementshell/dynasty/setdynasty.md deleted file mode 100644 index ad0700e0dd..0000000000 --- a/docs/directorymanager/11.0/managementshell/dynasty/setdynasty.md +++ /dev/null @@ -1,194 +0,0 @@ ---- -title: "Set-Dynasty" -description: "Set-Dynasty" -sidebar_position: 20 ---- - -# Set-Dynasty - -The **Set-Dynasty** commandlet lets you to modify a Dynasty or its children in Directory. - -GroupID maintains a history for this commandlet, which you can view against the **History** node in -the left panel. - -## Syntax - -``` -Set-Dynasty --Identity -[-GroupBy ] -[-AliasTemplate ] -[-DisplayNameTemplate ] -[-InheritanceBehaviour -{InheritSelectedAttributeOnCreation | -AlwaysInheritSelectedAttributes | -NeverInheritSelectedAttributes}] -[-TopManager ] -[-ChildContainer ] -[-ExcludeNestedLists ] -[-CreateFlatManagerialList ] -[-IncludeManagerAsMember ] -[-Filters ] -[-Separator ] -[-SearchContainers ] -[-SearchContainersScopeList ] -[-ObjectTypes ] -[-LdapFilter ] -[-IncludeRecipients ] -[-ExcludeRecipients ] -[-Storage ] -[-DataSourceType ] -[-SystemDSN ] -[-TableOrView ] -[-DataSourceUserName ] -[-DataSourcePassword ] -[-FilePath ] -[-Server ] -[-Port ] -[-LDAPSearchContainer ] -[-DataSourceName ] -[-DataSourceQuery ] -[-WindowsAuthentication] -[-EnableUpdate ] -[-IsPasswordExpirySmartDL] -[-ExpirationRange ] -[-DomainExpiration ] -[-MaximumPasswordAge ] -[-MinimumPasswordAge ] -[-IncludeDisabledUsers ] -[-IncludePasswordNeverExpireUsers ] -[-SendEmail ] -[-EmailTemplatePath ] -[-Script ] -[-ScriptFilePath ] -[-Provider_Container ] -[-PowerTools ] -[-KeyMapAD ] -[-KeyMapDB ] -[-ExtendGroupLife] -[-ExpirationPolicy ] -[-MsExchCoManagedByLink ] -[-IsExpired ] -[-GroupScope ] -[-Type ] -[-Prefix ] -[-SecurityType ] -[-ManagedBy ] -[-MaxSendSize ] -[-AcceptMessagesOnlyFrom ] -[-RejectMessagesFrom ] -[-AcceptMessagesOnlyFromGroups ] -[-RejectMessagesFromGroup ] -[-AdditionalOwners ] -[-NotifyOptOutAdditionalOwners ] -[-ExpansionServer ] -[-BypassOwnersPolicy ] -[-MsExchRequireAuthToSendTo ] -[-HiddenFromAddressListEnabled ] -[-SendOofMessageToOriginatorEnabled ] -[-HideMembershipFromAddressListEnabled ] -[-ReportToManagerEnabled ] -[-ReportToOriginatorEnabled ] -[-UpdateMembershipByManagerEnabled ] -[-Add ] -[-Remove ] -[-Replace ] -[-Clear ] -[-Department ] -[-Company ] -[-Assistant ] -[-HomePage ] -[-Alias ] -[-EmailAddress ] -[-Description ] -[-Notes ] -[-AdministrativeNotes ] -[-DisplayName ] -[-SimpleDisplayName ] -[-CustomAttribute1 ] -[-CustomAttribute2 ] -[-CustomAttribute3 ] -[-CustomAttribute4 ] -[-CustomAttribute5 ] -[-CustomAttribute6 ] -[-CustomAttribute7 ] -[-CustomAttribute8 ] -[-CustomAttribute9 ] -[-CustomAttribute10 ] -[-CustomAttribute11 ] -[-CustomAttribute12 ] -[-CustomAttribute13 ] -[-CustomAttribute14 ] -[-CustomAttribute15 ] -[-Delimiter ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- Identity - -Example 1: - -The following command modifies the **Departmental** Dynasty by changing the **Group-by** attributes -list using the credentials of current user logged-on to the identity store. - -``` -Set-Dynasty -Identity "CN=DepartmentalOU=Recruiting,DC=HR,DC=Imanami,DC=US" -GroupBy "Department","Company","Title" -``` - -Example 2: - -The command below modifies the **Top Manager** of a Managerial Dynasty, changes the alias name and -display name templates for the Dynasty children, sets the scope to search Dynasty children in the -containers specified in the **Add** parameter excluding sub-containers using the credentials set in -the **$Credentials** environment variable. See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in an environment variable. - -``` -Set-Dynasty -Identity "CN=Managerial,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -TopManager "CN=Administrator,CN=Users,DC=HR,DC=Imanami,DC=US" -Add @{ SearchContainers="OU=Recruiting,OU=HR,DC=Imanami,DC=US#1","OU=Outsourcing,OU=HR,DC=Imanami,DC=US#1"}-ExcludeNestedLists False -ChildContainer "" -AliasTemplate "%Manager% -DirectReports" -DisplayNameTemplate "Direct reports of %Manager%" -Credential $Cred -``` - -Example 3: - -The following command modifies the search criteria for the Managerial Dynasty to retrieve all -mail-enabled objects who are the member of the **Training** group. - -``` -Set-Dynasty -Identity "CN=Managerial,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -ObjectTypes "ExchangeUsers","ExternalUsers","ExternalContacts","EmailGroups" -LdapFilter "(MemberOf=Training)" -``` - -Example 4: - -The following command adds three group-by levels to an **Organizational Dynasty**. - -``` -Set-Dynasty -Identity "CN=Organizational,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -Add @{GroupBy="Company#OU=Recruiting,DC=HR,DC=Imanami,DC=US#Left 3#-","Department#OU=Recruiting,DC=HR,DC=Imanami,DC=US#Right 5#-","OU=Recruiting,DC=HR,DC=Imanami,DC=US#With %GROUPBY%\*#^"} -``` - -Example 5: - -The following command modifies additional owners, **Includes** and **Excludes** lists and replaces -Search Scope of a Managerial Dynasty. - -``` -Set- Dynasty -Identity "CN=Managerial,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -Add @{AdditionalOwners="CN=Roger Manson,OU=Recruiting,OU=HR,DC=Imanami,DC=US","Robin Soto"; Includes="USWing","PKWing"; Excludes="UAEWing"} -Replace @{SearchContainers="OU=Recruiting,OU=HR,DC=Imanami,DC=US#1","OU=Outsourcing,OU=HR,DC=Imanami,DC=US#1"} -``` - -Example 6: - -The following command clears the groups specified in the **Includes** list of a Managerial Dynasty. - -``` -Set-Dynasty -Identity "CN=Managerial,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -Clear "Includes" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Dynasty Commands](/docs/directorymanager/11.0/managementshell/dynasty/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/general/_category_.json b/docs/directorymanager/11.0/managementshell/general/_category_.json deleted file mode 100644 index 47281e80ed..0000000000 --- a/docs/directorymanager/11.0/managementshell/general/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "General Commands", - "position": 60, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/managementshell/general/getcomputer.md b/docs/directorymanager/11.0/managementshell/general/getcomputer.md deleted file mode 100644 index 7e75c5c015..0000000000 --- a/docs/directorymanager/11.0/managementshell/general/getcomputer.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: "Get-Computer" -description: "Get-Computer" -sidebar_position: 10 ---- - -# Get-Computer - -The **Get-Computer** commandlet retrieves the information about a computer object from the connected -identity store. The computer can be a domain controller or an exchange server or just a simple -client connected to the domain. - -## Syntax - -``` -Get-Computer -[-Identity ] -[] -``` - -## Required Parameter - -- None - -Example 1: - -This example retrieves a computer with a name _arsalanahmadsvm_. - -``` -Get-computer -Identity arslanahmadsvm -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [General Commands](/docs/directorymanager/11.0/managementshell/general/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/general/getconnectedstoreinformation.md b/docs/directorymanager/11.0/managementshell/general/getconnectedstoreinformation.md deleted file mode 100644 index 4794ff17b1..0000000000 --- a/docs/directorymanager/11.0/managementshell/general/getconnectedstoreinformation.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Get-ConnectedStoreInformation" -description: "Get-ConnectedStoreInformation" -sidebar_position: 20 ---- - -# Get-ConnectedStoreInformation - -The **Get-ConnectedStoreInformation** commandlet retrieves information about the identity store -connected to the current instance of the Management Shell. - -## Syntax - -``` -Get-ConnectedStoreInformation -[] -``` - -## Required Parameter - -- None - -Example 1: - -The example displays name of the connected identity store, the last replication time to -Elasticsearch, and messaging servers configured in the connected identity store. - -``` -Get-ConnectedStoreInformation -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [General Commands](/docs/directorymanager/11.0/managementshell/general/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/general/getconnecteduser.md b/docs/directorymanager/11.0/managementshell/general/getconnecteduser.md deleted file mode 100644 index 87a8199527..0000000000 --- a/docs/directorymanager/11.0/managementshell/general/getconnecteduser.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "Get-ConnectedUser" -description: "Get-ConnectedUser" -sidebar_position: 30 ---- - -# Get-ConnectedUser - -The **Get-ConnectedUser** commandlet retrieves the general information about the user connected to -the current instance of Management Shell. - -## Syntax - -``` -Get-ConnectedUser -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[-WarningAction ] -[-InformationAction ] -[-WarningVariable ] -[-InformationVariable ] -[-PipelineVariable ] -[] -``` - -## Required Parameter - -- None - -Example 1: - -The example displays the logon name of the connected user, account locked information, identity -store name, role name(s), and ObjectGuid. - -``` -Get-ConnectedUser -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [General Commands](/docs/directorymanager/11.0/managementshell/general/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/general/getdirectorymanagerinformation.md b/docs/directorymanager/11.0/managementshell/general/getdirectorymanagerinformation.md deleted file mode 100644 index 6ef33787bb..0000000000 --- a/docs/directorymanager/11.0/managementshell/general/getdirectorymanagerinformation.md +++ /dev/null @@ -1,29 +0,0 @@ -# Get-GroupIdInformation - -The **Get-GroupIdInformation** commandlet retrieves general information about GroupID. - -## Syntax - -``` -Get-GroupIdInformation -[] -``` - -## Required Parameter - -- None - -Example 1: - -This example displays the name of the database and name of the SQL server being used by GroupID, -GroupID version and the installation path of GroupID. - -``` -Get-GroupIdInformation -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [General Commands](/docs/directorymanager/11.0/managementshell/general/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/general/getimanamicommand.md b/docs/directorymanager/11.0/managementshell/general/getimanamicommand.md deleted file mode 100644 index 3f0ac8e07f..0000000000 --- a/docs/directorymanager/11.0/managementshell/general/getimanamicommand.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: "Get-ImanamiCommand" -description: "Get-ImanamiCommand" -sidebar_position: 40 ---- - -# Get-ImanamiCommand - -Use the **Get-ImanamiCommand** cmdlet to retrieve basic information about GroupID Management Shell -commandlets and command elements. - -## Syntax - -``` -Get-ImanamiCommand -[-Name ] -[-Verb ] -[-Noun ] -[-AttributesToLoad ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- None - -Example 1: - -The following command shows information about all commandlets. - -``` -Get-ImanamiCommand -``` - -Example 2: - -The following command gets all commandlets and command elements with the word Set in their name. - -``` -Get-ImanamiCommand -Name Set* -``` - -Example 3: - -The following command gets all commandlets and command elements with the letter Y anywhere in the -verb of their name. - -``` -Get-ImanamiCommand -Verb *Y* -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [General Commands](/docs/directorymanager/11.0/managementshell/general/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/general/getreplicationstatus.md b/docs/directorymanager/11.0/managementshell/general/getreplicationstatus.md deleted file mode 100644 index b6ef5fde55..0000000000 --- a/docs/directorymanager/11.0/managementshell/general/getreplicationstatus.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "Get-ReplicationStatus" -description: "Get-ReplicationStatus" -sidebar_position: 50 ---- - -# Get-ReplicationStatus - -The **Get-ReplicationStatus** commandlet retrieves the replication status of the connected identity -store. The commandlet provides replication status of each object (such as users, groups, contact, -computer, public folders and OUs) in the provider. - -## Syntax - -``` -Get-ReplicationStatus -[-IdentityStoreName] -[] -``` - -## Required Parameter - -- IdentityStoreName - -Example 1: - -The following commandlet provides date and time information when the objects of an identity store -are replicated to Elasticsearch and the time elapsed since last replication. - -``` -Get-ReplicationStatus -IdentityStoreName AdStore8 -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [General Commands](/docs/directorymanager/11.0/managementshell/general/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/general/gettombstoneobject.md b/docs/directorymanager/11.0/managementshell/general/gettombstoneobject.md deleted file mode 100644 index efd3ea63e5..0000000000 --- a/docs/directorymanager/11.0/managementshell/general/gettombstoneobject.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: "Get-TombStoneObject" -description: "Get-TombStoneObject" -sidebar_position: 60 ---- - -# Get-TombStoneObject - -When you delete an object from Directory, the object is not physically removed from the database. -Instead, Directory marks the object as deleted, strips most of the properties from the object and -moves it to a special container. The object becomes invisible to normal directory operations and is -referred to as a tombstone object. - -The **Get-TomStoneObject** commandlet let you view the information of these tombstone objects. - -## Syntax - -``` -Get-TombstoneObject -[[-Identity] ] -[-SearchContainer ] -[-SearchContainersScopeList ] -[-ShouldReturnCollection] -[-MaxItemsToDisplay ] -[-ObjectType ] -[-LdapFilter ] -[-SmartFilter ] -[-ServerFilter ] -[-AttributesToLoad ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- None - -Example 1: - -The following command retrieves all tombstone objects from Directory, using the credentials of -current user logged-on to the identity store. - -``` -Get-TombStoneObject -``` - -Example 2: - -The following command retrieves the tombstone group _Event Management_, using the credentials set in -the $Credentials environment variable. For information about setting credentials, see Appendix A. - -``` -Get-TombStoneObject -identity "Event Management" -Credential $Cred -``` - -Example 3: - -The following command retrieves all tombstone objects with display names starting with the letter S. - -``` -Get-TombStoneObject -LdapFilter "(CN = S*)" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [General Commands](/docs/directorymanager/11.0/managementshell/general/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/general/invokereplication.md b/docs/directorymanager/11.0/managementshell/general/invokereplication.md deleted file mode 100644 index 0ff410db5d..0000000000 --- a/docs/directorymanager/11.0/managementshell/general/invokereplication.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: "Invoke-Replication" -description: "Invoke-Replication" -sidebar_position: 70 ---- - -# Invoke-Replication - -The **Invoke-Replication** commandlet starts replication process for all the identity stores or a -specific identity store. - -## Syntax - -``` -Invoke-Replication -[-IdentityStoreId ] -[-DeletedObjects] -[-RestoreReplication] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- None - -Example 1: - -The following command replicate identity store with ID 1. - -``` -Invoke-Replication -IdentitystoreId 1 -``` - -Example 2: - -The following command replicate deleted objects for identity store with ID 1. - -``` -Invoke-Replication -IdentitystoreId 1 -DeletedObjects -``` - -Example 3: - -The following command will start restoration of replication for identity store with ID 1. - -``` -Invoke-Replication -IdentitystoreId 1 -RestoreReplication -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [General Commands](/docs/directorymanager/11.0/managementshell/general/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/general/newcontainer.md b/docs/directorymanager/11.0/managementshell/general/newcontainer.md deleted file mode 100644 index a3d8609d3f..0000000000 --- a/docs/directorymanager/11.0/managementshell/general/newcontainer.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: "New-Container" -description: "New-Container" -sidebar_position: 80 ---- - -# New-Container - -The **New-Container** commandlet creates a new organizational unit in Directory. You can also use it -to create nested organizational units by repeatedly executing the commandlet and changing the value -of the ParentContainer parameter. - -## Syntax - -``` -New-Container --ContainerName --OrganizationalUnit -[-AccidentalDeletion] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameters - -- ContainerName -- OrganizationalUnit - -Example 1: - -The following command creates the organizational unit _Recruiting_ at the root level in Directory, -using the credentials of current user logged-on to the identity store. - -``` -New-Container -OrganizationalUnit "DC=HR,DC=Imanami,DC=US" -ContainerName "Recruiting" -``` - -Example 2: - -The following command creates the organizational unit _Local Recruiting_ inside the _Recruiting_ -container in Directory using the credentials set in the $Credentials environment variable. See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials. - -``` -New-Container - OrganizationalUnit "OU=Recruiting,DC=HR,DC=Imanami,DC=US" -ContainerName "Local Recruiting" -Credential $Cred -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [General Commands](/docs/directorymanager/11.0/managementshell/general/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/general/overview.md b/docs/directorymanager/11.0/managementshell/general/overview.md deleted file mode 100644 index c87265f47a..0000000000 --- a/docs/directorymanager/11.0/managementshell/general/overview.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "General Commands" -description: "General Commands" -sidebar_position: 60 ---- - -# General Commands - -You can use the following Management Shell cmdlets to perform tasks such as: - -- [Get-Computer](/docs/directorymanager/11.0/managementshell/general/getcomputer.md): - provides information about a computer object. -- [Get-ConnectedStoreInformation](/docs/directorymanager/11.0/managementshell/general/getconnectedstoreinformation.md): - provides information about the connected identity store. -- [Get-ConnectedUser](/docs/directorymanager/11.0/managementshell/general/getconnecteduser.md): - provides information about the connected user. -- [Get-GroupIdInformation](/docs/directorymanager/11.0/managementshell/general/getdirectorymanagerinformation.md): - provides information about GroupID. -- [Get-ImanamiCommand](/docs/directorymanager/11.0/managementshell/general/getimanamicommand.md): - provides basic information about GroupID Management Shell cmdlets. -- [Get-ReplicationStatus](/docs/directorymanager/11.0/managementshell/general/getreplicationstatus.md): - provides the replication status of objects in an identity store. -- [Get-TombStoneObject](/docs/directorymanager/11.0/managementshell/general/gettombstoneobject.md): - displays information about tombstone objects. -- [Invoke-Replication](/docs/directorymanager/11.0/managementshell/general/invokereplication.md): - starts the replication process for all the identity stores or for a specific identity store. -- [New-Container](/docs/directorymanager/11.0/managementshell/general/newcontainer.md): - creates a new organizational unit. -- [Remove-Container](/docs/directorymanager/11.0/managementshell/general/removecontainer.md): - removes an empty organizational unit. -- [Restore-TombStoneObject](/docs/directorymanager/11.0/managementshell/general/restoretombstoneobject.md): - restores tombstone objects from the directory. -- [Send-Notification](/docs/directorymanager/11.0/managementshell/general/sendnotification.md): - sends notifications to a group or a user. - -See Also - -- [GroupID Management Shell](/docs/directorymanager/11.0/managementshell/overview.md) -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/general/removecontainer.md b/docs/directorymanager/11.0/managementshell/general/removecontainer.md deleted file mode 100644 index 07853dc18a..0000000000 --- a/docs/directorymanager/11.0/managementshell/general/removecontainer.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "Remove-Container" -description: "Remove-Container" -sidebar_position: 90 ---- - -# Remove-Container - -Use the **Remove-Container** commandlet to delete organizational units from Directory. The -commandlet only supports deletion of containers at leaf level, having no objects. If the container -contains objects or sub-containers, the commandlet does not process the request and throws an -exception. - -## Syntax - -``` -Remove-Container --Identity -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- Identity - -Example 1: - -The following command removes the _Miscellaneous_ container, using the credentials of current user -logged-on to the identity store. - -``` -Remove-Container -identity "OU=Miscellaneous,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -``` - -Example 2: - -The following command first shows the changes that result from executing the command. The command -uses the credentials set in the $Credentials environment variable to perform the deletion. See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in the environment variable. - -``` -Remove-Container -identity "OU=Miscellaneous,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -Credential $Cred -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [General Commands](/docs/directorymanager/11.0/managementshell/general/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/general/restoretombstoneobject.md b/docs/directorymanager/11.0/managementshell/general/restoretombstoneobject.md deleted file mode 100644 index b71a631da9..0000000000 --- a/docs/directorymanager/11.0/managementshell/general/restoretombstoneobject.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: "Restore-TombStoneObject" -description: "Restore-TombStoneObject" -sidebar_position: 100 ---- - -# Restore-TombStoneObject - -The **Restore-TombStoneObject** commandlet restores tombstone objects from Directory. A tombstone -object is restored as an unmanaged group with all supported attributes to its original container. If -the parent container has been deleted, the commandlet also reinstates the container for the group. - -## Syntax - -``` -Restore-TombstoneObject -[-Identity] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- None - -Example: - -The following command restores the tombstone group Event Management, using the credentials set in -the $Creds environment variable. See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in an environment variable. - -``` -Restore-TombStoneObject -identity "Event Management" -Credential $Cred -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [General Commands](/docs/directorymanager/11.0/managementshell/general/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/general/sendnotification.md b/docs/directorymanager/11.0/managementshell/general/sendnotification.md deleted file mode 100644 index d92a86d783..0000000000 --- a/docs/directorymanager/11.0/managementshell/general/sendnotification.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: "Send-Notification" -description: "Send-Notification" -sidebar_position: 110 ---- - -# Send-Notification - -Use the **Send-Notification** commandlet to send notifications to a group or a user. GroupID modules -automatically generate e-mail notifications upon the occurrence of certain events; for example, -expiry of groups, execution of a job, and generation of workflow requests. The modules use template -files for generating the contents of the notification e-mails. These template files are located at: - -``` -X:\Program Files\Imanami\GroupID 8.0\Automate\Templates\Notifications -``` - -Where X is the drive where the GroupID installation directory resides. - -The **Send-Notification** commandlet also requires a template file for generating an e-mail -notification. You can utilize one from the available templates or create your own. The commandlet -also requires an **SMTP server** and a **From** e-mail address that you can configure using the -**Set-Options** commandlet. - -## Syntax - -``` -Send-Notification --Identity --Subject --TemplateFile -[-InlineImageFile ] -[-QueueEmail] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] - -``` - -## Required Parameters - -- Identity -- Subject -- TemplateFile - -Example 1: - -The following commands first configure the SMTP Server, then set a From e-mail address, and finally -send a group expiry notification to UserA using the credentials of current user logged-on to the -identity store. - -``` -Set-Options -SmtpServer "HR.Imanami.US" -Set-Options -FromAddress "Administrator@HR.Imanami.US" -Send-Notification -Identity "CN=UserA,CN=Users,DC=HR,DC=Imanami,DC=US" -Subject "Expiry Notification" -TemplateFile "C:\Program Files\Imanami\GroupID  -8.0\Automate\Templates\Notifications\ExpiringTemplate.html" -QueueEmail - -``` - -Example 2: - -The following command sends a notification to the New Arrivals group. It uses a custom template with -an in-line image and uses the credentials of the user set in the $Credentials environment variable. -See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in an environment variable. - -``` -Send-Notification -Identity "CN=New Arrivals,CN=Users,DC=HR,DC=Imanami,DC=US" -Subject "Welcome to Imanami" -TemplateFile "C:\Welcome.html" -InlineImageFile "C:\WelcomeNote.jpg" -QueueEmail -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [General Commands](/docs/directorymanager/11.0/managementshell/general/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/group/_category_.json b/docs/directorymanager/11.0/managementshell/group/_category_.json deleted file mode 100644 index 1411c09fdd..0000000000 --- a/docs/directorymanager/11.0/managementshell/group/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Group Commands", - "position": 70, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/managementshell/group/convertgroup.md b/docs/directorymanager/11.0/managementshell/group/convertgroup.md deleted file mode 100644 index 4cbbb3770c..0000000000 --- a/docs/directorymanager/11.0/managementshell/group/convertgroup.md +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: "Convert-Group" -description: "Convert-Group" -sidebar_position: 10 ---- - -# Convert-Group - -The **Convert-Group** commandlet converts an unmanaged group to a Smart Group. - -GroupID Management Shell prompts for the identity of the unmanaged group you want to convert into a -Smart Group. After executing, the commandlet displays the status that update is successful as shown -in the following snapshot: - -![managementshell](/images/directorymanager/11.0/managementshell/group/managementshell.webp) - -The converted Smart Group will not have an LDAP query attached to it. You have to define it -manually. - -## Syntax - -``` -Convert-Group --Identity -[-SearchContainers ] -[-SearchContainersScopeList ] -[-ObjectTypes ] -[-LdapFilter ] -[-IncludeRecipients ] -[-ExcludeRecipients ] -[-Storage ] -[-DataSourceType ] -[-SystemDSN ] -[-TableOrView ] -[-DataSourceUserName ] -[-DataSourcePassword ] -[-FilePath ] -[-Server ] -[-Port ] -[-LDAPSearchContainer ] -[-DataSourceName ] -[-DataSourceQuery ] -[-WindowsAuthentication] -[-EnableUpdate ] -[-IsPasswordExpirySmartDL] -[-ExpirationRange ] -[-DomainExpiration ] -[-MaximumPasswordAge ] -[-MinimumPasswordAge ] -[-IncludeDisabledUsers ] -[-IncludePasswordNeverExpireUsers ] -[-SendEmail ] -[-EmailTemplatePath ] [-Script ] -[-ScriptFilePath ] -[-Provider_Container ] -[-PowerTools ] -[-KeyMapAD ] -[-KeyMapDB ] -[-ExtendGroupLife] -[-ExpirationPolicy ] -[-MsExchCoManagedByLink ] -[-IsExpired ] -[-GroupScope ] -[-Type ] -[-Prefix ] -[-SecurityType ] -[-ManagedBy ] -[-MaxSendSize ] -[-AcceptMessagesOnlyFrom ] -[-RejectMessagesFrom ] -[-AcceptMessagesOnlyFromGroups ] -[-RejectMessagesFromGroup ] -[-AdditionalOwners ] -[-NotifyOptOutAdditionalOwners ] -[-ExpansionServer ] -[-BypassOwnersPolicy ] -[-MsExchRequireAuthToSendTo ] -[-HiddenFromAddressListEnabled ] -[-SendOofMessageToOriginatorEnabled ] -[-HideMembershipFromAddressListEnabled ] -[-ReportToManagerEnabled ] -[-ReportToOriginatorEnabled ] -[-UpdateMembershipByManagerEnabled ] -[-Add ] -[-Remove ] -[-Replace ] -[-Clear ] -[-Department ] -[-Company ] -[-Assistant ] -[-HomePage ] -[-Alias ] -[-EmailAddress ] -[-Description ] -[-Notes ] -[-AdministrativeNotes ] -[-DisplayName ] -[-SimpleDisplayName ] -[-CustomAttribute1 ] -[-CustomAttribute2 ] -[-CustomAttribute3 ] -[-CustomAttribute4 ] -[-CustomAttribute5 ] -[-CustomAttribute6 ] -[-CustomAttribute7 ] -[-CustomAttribute8 ] -[-CustomAttribute9 ] -[-CustomAttribute10 ] -[-CustomAttribute11 ] -[-CustomAttribute12 ] -[-CustomAttribute13 ] -[-CustomAttribute14 ] -[-CustomAttribute15 ] -[-Delimiter ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- Identity - -Example: - -The following commandlet converts a group _Clay2_ group to a Smart Group using the credentials of -current logged-on user. - -``` -Convert-Group -Identity "Clay2" -Credential $Cred -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Group Commands](/docs/directorymanager/11.0/managementshell/group/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/group/expiregroup.md b/docs/directorymanager/11.0/managementshell/group/expiregroup.md deleted file mode 100644 index 603df9900e..0000000000 --- a/docs/directorymanager/11.0/managementshell/group/expiregroup.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Expire-Group" -description: "Expire-Group" -sidebar_position: 20 ---- - -# Expire-Group - -The **Expire-Group** commandlet expires a group temporarily. All notifications to the expired group -will be stopped. - -You can view events related to this commandlet in GroupID portal, against the **History** node in -the left panel. - -## Syntax - -``` -Expire-Group --Identity -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- Identity - -Example: - -The following command expires the specified group from the connected identity store. - -``` -Expire-Group –Identity "CN=Training,OU=Local Recruiting,DC=HR,DC=Imanami,DC=US" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Group Commands](/docs/directorymanager/11.0/managementshell/group/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/group/getgroup.md b/docs/directorymanager/11.0/managementshell/group/getgroup.md deleted file mode 100644 index eb32486447..0000000000 --- a/docs/directorymanager/11.0/managementshell/group/getgroup.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: "Get-Group" -description: "Get-Group" -sidebar_position: 30 ---- - -# Get-Group - -This **Get-Group** commandlet retrieves both managed and unmanaged groups that are in one or more -containers in the identity store matching the given criteria. - -## Syntax - -``` -Get-Group -[[-Identity] ] -[-SearchContainer ] -[-SearchContainersScopeList ] -[-ShouldReturnCollection] -[-MaxItemsToDisplay ] -[-ObjectType ] -[-LdapFilter ] -[-SmartFilter ] -[-ServerFilter ] -[-AttributesToLoad ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- None - -Example 1: - -The following command retrieves all groups in the base container specified by the SearchContainer -parameter including its sub-containers, using the credentials of logged-in user. - -``` -Get-Group -SearchContainer "OU=Recuriting,DC=HR,DC=Imanami,DC=US" -``` - -Example 2: - -The following command retrieves all groups with a display name beginning with S in the base -containers specified by the SearchContainer parameter including sub-containers of the first base -container and excluding sub-containers of the second one using the credentials set in the -$Credentials environment variable. See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in an environment variable. - -``` -Get-Group -SearchContainer "OU=Recuriting,DC=HR,DC=Imanami,DC=US","OU=OutSourcing,DC=HR,DC=Imanami,DC=US" -SearchContainersScopeList "2","1" -LdapFilter "(DisplayName = S*)" -Credential $Cred -``` - -Example 3: - -The following command retrieves all Smart Groups from the connected identity store with Security -Type Private and John Smith as their additional owner. The OUT-NULL commandlet is useful for -preventing the retrieved groups' information from appearing on the console. - -``` -Get-Group -SmartFilter "(SecurityType = Private)" | Set-Group -AdditionalOwners "CN=JohnSmith,DC=HR,DC=Imanami,DC=US" | OUT-NULL -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Group Commands](/docs/directorymanager/11.0/managementshell/group/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/group/movegroup.md b/docs/directorymanager/11.0/managementshell/group/movegroup.md deleted file mode 100644 index bfcb4676e7..0000000000 --- a/docs/directorymanager/11.0/managementshell/group/movegroup.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: "Move-Group" -description: "Move-Group" -sidebar_position: 40 ---- - -# Move-Group - -The **Move-Group** commandlet enables you to move a group to a different container in the same -domain or in a different domain within the same forest. Movement of groups across forests is not -allowed. - -You can view events related to this commandlet in GroupID portal, against the **History** node in -the left panel. - -## Syntax - -``` -Move-Group --Identity --DestinationContainer -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameters - -- Identity -- DestinationContainer - -Example 1: - -The following command moves the group _Training_ to the _Local Recruiting_ organizational unit using -the credentials of current user logged-on to the identity store. - -``` -Move-Group -Identity "CN=Training,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -DestinationContainer "OU=Local Recruiting,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -``` - -Example 2: - -The following command moves the group _Training_ to the _OffShore Recruiting_ organizational unit. -The command uses the credentials set in the $Credentials environment variable for moving a group. -See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in an environment variable. - -``` -Move-Group -Identity "CN=Training,OU=Local Recruiting,DC=HR,DC=Imanami,DC=US" -DestinationContainer "OU=OffShore Recruiting,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -Credential $Cred -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Group Commands](/docs/directorymanager/11.0/managementshell/group/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/group/newgroup.md b/docs/directorymanager/11.0/managementshell/group/newgroup.md deleted file mode 100644 index 1dd94f88a4..0000000000 --- a/docs/directorymanager/11.0/managementshell/group/newgroup.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: "New-Group" -description: "New-Group" -sidebar_position: 50 ---- - -# New-Group - -Use the **New-Group** commandlet to create a new unmanaged group in a particular container in -directory. - -You can view events related to this commandlet in GroupID portal, against the **History** node in -the left panel. - -## Syntax - -``` -New-Group --SamAccountName --Name --OrganizationalUnit --GroupScope --Type --SecurityType -[-GroupAlias ] -[-ManagedBy ] -[-DisplayName ] -[-MailEnabled ] -[-Description ] -[-AdditionalOwners ] -[-NotifyOptOutAdditionalOwners ] -[-Members ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameters - -- SamAccountName -- Name -- OrganizationalUnit -- GroupScope -- Type -- SecurityType - -Example 1: - -The following command creates a new unmanaged, mail-disabled, global, distribution group in the -container specified by the **OrganizationalUnit** parameter, using the credentials of current user -logged-on to the identity store. - -``` -New-Group -Name "Event Management" -OrganizationalUnit "OU=Local Recruiting,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -GroupAlias "EventManagement" -SamAccountName "Event Management" -GroupScope "Global Group" -Type "Distribution" -``` - -Example 2: - -The command below creates a new mail-enabled, domain-local, semi-private, security group in the -container specified by the **OrganizationalUnit** parameter, using the credentials set in the -**$Credentials** environment variable. See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in an environment variable. - -``` -New-Group -Name "Enrollment" -OrganizationalUnit "OU=Local Recruiting,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -GroupAlias "Enrollment" -MailEnable True -SamAccountName "Enrollment" -GroupScope "Domain Local" -Type "Security" -SecurityType "Semi_Private" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Group Commands](/docs/directorymanager/11.0/managementshell/group/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/group/overview.md b/docs/directorymanager/11.0/managementshell/group/overview.md deleted file mode 100644 index bb9e55ac02..0000000000 --- a/docs/directorymanager/11.0/managementshell/group/overview.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Group Commands" -description: "Group Commands" -sidebar_position: 70 ---- - -# Group Commands - -This section covers cmdlets for performing tasks related to managed and unmanaged groups. - -- [Convert-Group](/docs/directorymanager/11.0/managementshell/group/convertgroup.md): - converts an unmanaged group to a Smart Group. -- [Expire-Group](/docs/directorymanager/11.0/managementshell/group/expiregroup.md): expires - a group temporarily. -- [Get-Group](/docs/directorymanager/11.0/managementshell/group/getgroup.md): retrieves - groups from one or more containers. -- [Move-Group](/docs/directorymanager/11.0/managementshell/group/movegroup.md): moves a - group to a different container in the same domain or in a different domain. -- [New-Group](/docs/directorymanager/11.0/managementshell/group/newgroup.md): creates an - unmanaged group. -- [Remove-Group](/docs/directorymanager/11.0/managementshell/group/remove-group.md): - deletes a managed group, unmanaged group, or Dynasty in the directory. -- [Renew-Group](/docs/directorymanager/11.0/managementshell/group/renewgroup.md): - reactivates an expired group. -- [Set-Group](/docs/directorymanager/11.0/managementshell/group/setgroup.md): modifies an - unmanaged group in the directory. - -See Also - -- [GroupID Management Shell](/docs/directorymanager/11.0/managementshell/overview.md) -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/group/remove-group.md b/docs/directorymanager/11.0/managementshell/group/remove-group.md deleted file mode 100644 index 3b6940494b..0000000000 --- a/docs/directorymanager/11.0/managementshell/group/remove-group.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: "Remove-Group" -description: "Remove-Group" -sidebar_position: 60 ---- - -# Remove-Group - -Use this commandlet to delete a group (managed or unmanaged) or Dynasty in directory. Removing a -parent Dynasty using this commandlet removes all its children as well. - -You can view events related to this commandlet in GroupID portal, against the **History** node in -the left panel. - -## Syntax - -``` -Remove-Group --Identity -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- Identity - -Example 1: - -The following command removes the **Event Management** group, using the credentials of current user -logged-on to the identity store. - -``` -Remove-Group -identity "OU=Event Management,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -``` - -Example 2: - -The following command first shows the changes that will be made by executing the command (a -deletion). The command uses the credentials set in the **$Credentials** environment variable to -perform the deletion. See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in an environment variable. - -``` -Remove-Group -identity "OU=Event Management,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -Credential $Cred -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Group Commands](/docs/directorymanager/11.0/managementshell/group/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/group/renewgroup.md b/docs/directorymanager/11.0/managementshell/group/renewgroup.md deleted file mode 100644 index fae53ef03a..0000000000 --- a/docs/directorymanager/11.0/managementshell/group/renewgroup.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Renew-Group" -description: "Renew-Group" -sidebar_position: 70 ---- - -# Renew-Group - -The **Renew-Group** re-activates an expired group. - -You can view events related to this commandlet in GroupID portal, against the **History** node in -the left panel. - -## Syntax - -``` -Renew-Group --Identity -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- Identity - -Example: - -The following command renews the specified group in the connected identity store. - -``` -Renew-Group -Identity "CN=Training,OU=Local Recruiting,DC=HR,DC=Imanami,DC=US" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Group Commands](/docs/directorymanager/11.0/managementshell/group/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/group/setgroup.md b/docs/directorymanager/11.0/managementshell/group/setgroup.md deleted file mode 100644 index 64ccbdca0a..0000000000 --- a/docs/directorymanager/11.0/managementshell/group/setgroup.md +++ /dev/null @@ -1,132 +0,0 @@ ---- -title: "Set-Group" -description: "Set-Group" -sidebar_position: 80 ---- - -# Set-Group - -The **Set-Group** commandlet modifies an unmanaged group in directory. However, you can use this -commandlet to modify those parameters of a Smart Group that are native attributes of an unmanaged -group in Directory. For modifying Smart Group-specific attributes, you can use the -[Set-SmartGroup](/docs/directorymanager/11.0/managementshell/smartgroup/setsmartgroup.md) -commandlet. - -You can view events related to this commandlet in GroupID portal, against the **History** node in -the left panel. - -## Syntax - -``` -Set-Group --Identity -[-ExtendGroupLife] -[-ExpirationPolicy ] -[-MsExchCoManagedByLink ] -[-IsExpired ] -[-GroupScope ] -[-Type ] -[-Prefix ] -[-SecurityType ] -[-ManagedBy ] -[-MaxSendSize ] -[-AcceptMessagesOnlyFrom ] -[-RejectMessagesFrom ] -[-AcceptMessagesOnlyFromGroups ] -[-RejectMessagesFromGroup ] -[-AdditionalOwners ] -[-NotifyOptOutAdditionalOwners ] -[-ExpansionServer ] -[-BypassOwnersPolicy ] -[-MsExchRequireAuthToSendTo ] -[-HiddenFromAddressListEnabled ] -[-SendOofMessageToOriginatorEnabled ] -[-HideMembershipFromAddressListEnabled ] -[-ReportToManagerEnabled ] -[-ReportToOriginatorEnabled ] -[-UpdateMembershipByManagerEnabled ] -[-Add ] -[-Remove ] -[-Replace ] -[-Clear ] -[-Department ] -[-Company ] -[-Assistant ] -[-HomePage ] -[-Alias ] -[-EmailAddress ] -[-Description ] -[-Notes ] -[-AdministrativeNotes ] -[-DisplayName ] -[-SimpleDisplayName ] -[-CustomAttribute1 ] -[-CustomAttribute2 ] -[-CustomAttribute3 ] -[-CustomAttribute4 ] -[-CustomAttribute5 ] -[-CustomAttribute6 ] -[-CustomAttribute7 ] -[-CustomAttribute8 ] -[-CustomAttribute9 ] -[-CustomAttribute10 ] -[-CustomAttribute11 ] -[-CustomAttribute12 ] -[-CustomAttribute13 ] -[-CustomAttribute14 ] -[-CustomAttribute15 ] -[-Delimiter ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- Identity - -Example 1: - -The following command changes the expiration policy of the **Training** group to 60 days and assigns -a manager to the group, using the credentials of current user logged-on to the identity store. - -``` -Set-Group -Identity "CN=Training,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -ExpirationPolicy "60" -ExtendGroupLife -ManagedBy "CN=John Smith,CN=Users,DC=HR,DC=Imanami,DC=US" -``` - -Example 2: - -The following command expires the group **Training**, using the credentials set in the -**$Credentials** environment variable. See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in an environment variable. - -``` -Set-Group -Identity "CN=Training,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -IsExpired True -Credential $Cred -``` - -Example 3: - -The following command gets all groups in the container **Recruiting**, clears their additional owner -lists and sets their expiration policy to **Never Expire.** The **OUT-NULL** commandlet has been -used to prevent the retrieved groups information from appearing on the console. - -``` -Get-Group -searchcontainer "OU=Recruiting,DC=HR,DC=Imanami,DC=US" | Set-Group -AdditionalOwners "" -ExpirationPolicy "0" -ExtendGroupLife | OUT-NULL -``` - -Example 4: - -The following command removes two additional owners from the **Training** group and adds three new -additional owners to the group and excludes an additional owner from receiving e-mail notifications. - -``` -Set-Group -Identity "CN=Training,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -Remove @{AdditionalOwners = "CN=Roger_Manson,OU=ResignedStaff,DC=HR,DC=Imanami,DC=US","KillenEdward"} -Add @{AdditionalOwners = "RobinSoto","MeganFox","DollyChan"} -NotifyOptOutAdditionalOwners "RobinSoto" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Group Commands](/docs/directorymanager/11.0/managementshell/group/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/_category_.json b/docs/directorymanager/11.0/managementshell/identitystore/_category_.json deleted file mode 100644 index d4e1a37813..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Identity Store Commands", - "position": 80, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/managementshell/identitystore/clearmessagingserver.md b/docs/directorymanager/11.0/managementshell/identitystore/clearmessagingserver.md deleted file mode 100644 index a4e5834b3e..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/clearmessagingserver.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Clear-MessagingServer" -description: "Clear-MessagingServer" -sidebar_position: 10 ---- - -# Clear-MessagingServer - -The commandlet **Clear-MessagingServer** removes the configured messaging server from the specified -identity store. - -NOTE: This cmdlet will also clear the SMTP settings, notification settings, password expiry -settings, membership lifecycle notification settings, and managed by notification settings for the -identity store. - -## Syntax - -``` -Clear-MessagingServer --IdentityStoreName -[] -``` - -## Required Parameter - -- IdentityStoreName - -Example 1: - -This example clears configured messaging server for AdStore8 identity store. - -``` -Clear-MessagingServer -IdentityStoreName AdStore8 -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/clearnotifications.md b/docs/directorymanager/11.0/managementshell/identitystore/clearnotifications.md deleted file mode 100644 index 4fd26df464..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/clearnotifications.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: "Clear-Notifications" -description: "Clear-Notifications" -sidebar_position: 20 ---- - -# Clear-Notifications - -The commandlet **Clear-Notifications** removes notifications settings from an identity store. The -notifications settings can be removed individually or in sets. - -## Syntax - -``` -Clear-Notifications --IdentityStoreName -[-PrimaryRecepients] -[-CarbonCopy] -[-NotifyLoggedInUsers] -[-NotifyOwners] -[-NotifyModifiedObject] -[-NotifyPublicGroupOwner] -[-NotifyAddedMembers] -[-PasswordPortalUrl] -[-NotifyUserGroupJoinML] -[-NotifyUserGroupLeaveML] -[-XDaysBeforeLeaveNotificationML] -[-NotifyUserGroupJoinMB] -[-NotifyUserGroupLeaveMB] -[-XDaysBeforeLeaveNotificationMB] -[] -Clear-Notifications --IdentityStoreName -[-ClearSet {All | Recipients | PasswordExpiry | ML | MB}] -[] -``` - -## Required Parameter - -- IdentityStoreName - -Example 1: - -This example individually removes the Membership Lifecycle notification option – X days before user -is going to leave the group for the AdStore9 identity store. - -``` -Clear-Notifications -IdentityStoreName AdStore9 -NotifyLoggedInUsers –XdaysBeforeLeaveNotificationML 10 -``` - -Example 2: - -This example removes recipients in sets mentioned under the Recipients section on the Notification -page of AdStore9 identity store properties. - -``` -Clear-Notifications -IdentityStoreName AdStore9 -ClearSet Recipients -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/clearsmtpserver.md b/docs/directorymanager/11.0/managementshell/identitystore/clearsmtpserver.md deleted file mode 100644 index eb6d653ee8..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/clearsmtpserver.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "Clear-SmtpServer" -description: "Clear-SmtpServer" -sidebar_position: 30 ---- - -# Clear-SmtpServer - -The commandlet **Clear-SmtpServer** removes the SMTP server configurations from an identity store. - -NOTE: This cmdlet will also clear the notification settings for the identity store recipients, -password expiry group notifications, membership lifecycle notifications, and managed by notification -options for the specified identity store. - -## Syntax - -``` -Clear-SmtpServer --IdentityStoreName -[] -``` - -## Required Parameter - -- IdentityStoreName - -Example 1: - -This example clears the configured SMTP server in AdStore9 identity store. - -``` -Clear-SmtpServer -IdentityStoreName AdStore9 -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/getavailablemessagingservers.md b/docs/directorymanager/11.0/managementshell/identitystore/getavailablemessagingservers.md deleted file mode 100644 index 329ff6a027..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/getavailablemessagingservers.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: "Get-AvailableMessagingServers" -description: "Get-AvailableMessagingServers" -sidebar_position: 40 ---- - -# Get-AvailableMessagingServers - -The commandlet **Get-AvailableMessagingServers** retrieves the messaging server(s) available for the -configured messaging provider. - -## Syntax - -``` -Get-AvailableMessagingServers --IdentityStoreName --Provider {o365 | gsuite | exchange2013 | exchange2016 | exchange2019} --UserName -[-Password ] -] -Get-AvailableMessagingServers --IdentityStoreName --Provider {o365 | gsuite | exchange2013 | exchange2016 | exchange2019} --Credential -[] -``` - -## Required Parameters - -- IdentityStoreName -- Provider -- Credential - -Example 1: - -This example retrieves the available messaging server(s) configured in AdStore1 identity store for -Exchange 2013 messaging provider. - -``` -Get-AvailableMessagingServers -IdentityStoreName AdStore1 -Provider exchange2013 -UserName administrator -Password webdir123R -Domain pucit.local -``` - -Example 2: - -This example retrieves the available messaging server(s) configured in Adstore1 identity store for -Office365 messaging provider. - -``` -Get-AvailableMessagingServers -IdentityStoreName AdStore1 -Provider o365 -UserName admin@mydomain.onmicrosoft.com -Password webdir123R -Domain mydomain.onmicrosoft.com -AppId 'eeeeeeee-aaaa-dddd-bbbb-cccccccccccc' -``` - -Example 3: - -This example retrieves the available messaging server(s) in AdStore1 identity store for GSuite -(Google Apps) messaging provider. - -``` -Get-AvailableMessagingServers -IdentityStoreName AdStore1 -Provider gsuite -UserName svcaccount@myproject-219211.iam.gserviceaccount.com -AdminUsername 'arslan@mydomain.com' -P12CertificatePath 'C:\Keys\gsuite\key.p12' -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/getclient.md b/docs/directorymanager/11.0/managementshell/identitystore/getclient.md deleted file mode 100644 index e19be4dcde..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/getclient.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "Get-Client" -description: "Get-Client" -sidebar_position: 50 ---- - -# Get-Client - -The commandlet **Get-Client** gets information about the GroupID clients such as Admin center, -GroupID portal(s), management shell, GroupID services such as replication service, scheduler -service, data service and so on. The information includes client name, client type, and its status -whether enabled or disabled. - -## Syntax - -``` -Get-Client -[[-ClientName] ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[-WarningAction ] -[-InformationAction ] -[-WarningVariable ] -[-InformationVariable ] -[-PipelineVariable ] -[] -``` - -## Required Parameter - -- None - -Example 1: - -This example retrieves information about a client Admin Center. - -``` -Get-Client –ClientName ‘Admin Center’ -``` - -Example 2: - -This example retrieves information about two clients – ManagementShell `` and -GroupIDPortal1 – through the pipeline operator. - -``` -‘ManagementShell ’, ‘GroupIDPortal1’ | Get-Client -``` - -Example 3: - -This example lists all GroupID clients available on the GroupID machine. - -``` -Get-Client -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/getidentitystore.md b/docs/directorymanager/11.0/managementshell/identitystore/getidentitystore.md deleted file mode 100644 index 4af9b817b0..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/getidentitystore.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -title: "Get-IdentityStore" -description: "Get-IdentityStore" -sidebar_position: 60 ---- - -# Get-IdentityStore - -The commandlet **Get-IdentityStore** retrieves information about the specified identity store or -retrieves information of identity store(s) as per the given switches such as _All_, _Connected_, -_Enabled_ or _Disabled_. - -The information includes identity store name, description, connection string, notification status, -roles in identity store, and so on. - -## Syntax - -``` -Get-IdentityStore  -  -IdentityStoreName -  [-IdentityStoreId ] -  [-SecurityToken ]   -  [-Credential ] -  [-WarningAction ] -  [-InformationAction ] -  [-WarningVariable ] -  [-InformationVariable ] -  [-PipelineVariable ] -  [] -``` - -``` -Get-IdentityStore -  -All  -  [-IdentityStoreId ] -  [-SecurityToken ] -  [-Credential ] -  [-WarningAction ] -  [-InformationAction ] -  [-WarningVariable ] -  [-InformationVariable ] -  [-PipelineVariable ] - []  -``` - -``` -Get-IdentityStore -  -Connected  -  [-IdentityStoreId ] -  [-SecurityToken ] -  [-Credential ] -  [-WarningAction ] -  [-InformationAction ] -  [-WarningVariable ] -  [-InformationVariable ] -  [-PipelineVariable ] -  [] -``` - -``` -Get-IdentityStore -  -Enabled  -  [-IdentityStoreId ] -  [-SecurityToken ] -  [-Credential ] -  [-WarningAction ] -  [-InformationAction ] -  [-WarningVariable ] -  [-InformationVariable ] -  [-PipelineVariable ] -  [] -``` - -``` -Get-IdentityStore -  -Disabled  -  [-IdentityStoreId ] -  [-SecurityToken ] -  [-Credential ] -  [-WarningAction ] -  [-InformationAction ] -  [-WarningVariable ] -  [-InformationVariable ] -  [-PipelineVariable ] -  [] -``` - -## Required Parameter - -- IdentityStoreName or a switch `{ All | Connected | Enabled | Disabled }` - -Example 1: - -This example retrieves information of AdStore1 identity store. - -``` -Get-IdentityStore -IdentityStoreName AdStore1 -``` - -Example 2: - -This example retrieves information of two identity stores – AdStore1 and AdStore2 – through the -pipeline operator. - -``` -'AdStore1','AdStore2' | Get-IdentityStore -``` - -Example 3: - -This example retrieves information of all identity stores available on the GroupID machine. - -``` -Get-IdentityStore -All -``` - -Example 4: - -This example retrieves information of identity store connected to the current instance of the -GroupID Management Shell. - -``` -Get-IdentityStore -Connected -``` - -Example 5: - -This example displays information of all enabled identity store(s). - -``` -Get-IdentityStore -Enabled -``` - -Example 6: - -This example is for getting information of all disabled identity store(s). - -``` -Get-IdentityStore -Disabled -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/getidentitystoreroles.md b/docs/directorymanager/11.0/managementshell/identitystore/getidentitystoreroles.md deleted file mode 100644 index baa2617273..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/getidentitystoreroles.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "Get-IdentityStoreRoles" -description: "Get-IdentityStoreRoles" -sidebar_position: 70 ---- - -# Get-IdentityStoreRoles - -The commandlet **Get-IdentityStoreRoles** retrieves information about the security roles associated -with an identity store. The information includes role name, role priority, role criteria and role -permissions. - -## Syntax - -``` -Get-IdentityStoreRoles -[-IdentityStoreName] [[-RoleName] ] -[[-Subset] ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[-WarningAction ] -[-InformationAction ] -[-WarningVariable ] -[-InformationVariable ] -[-PipelineVariable ] -[] -``` - -## Required Parameter - -- IdentityStoreName - -Example 1: - -This example retrieves information of customrole1 role in AdStore1 identity store. - -``` -Get-IdentityStoreRoles -IdentityStoreName AdStore1 -RoleName customrole1 -``` - -Example 2: - -This example provides information about all roles in adstore1 identity store. - -``` -Get-IdentityStoreRoles -IdentityStoreName adstore1 -``` - -Example 3: - -This example retrieves information about two security roles – customrole1 and customrole2 – in -AdStore1 identity store through the pipeline operator. - -``` -'customrole1', 'customrole2' | Get-IdentityStoreRoles -IdentityStoreName AdStore1 -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/getlogsettings.md b/docs/directorymanager/11.0/managementshell/identitystore/getlogsettings.md deleted file mode 100644 index 31539bf57e..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/getlogsettings.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: "Get-LogSettings" -description: "Get-LogSettings" -sidebar_position: 80 ---- - -# Get-LogSettings - -The commandlet **Get-LogSettings** provides information about the global log settings of the -identity store connected with this instance of GroupID Management Shell. - -## Syntax - -``` -Get-LogSettings -[] -``` - -## Required Parameter - -- None - -Example: - -This example retrieves the log settings of the connected identity store. - -``` -Get-LogSettings -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/getrolepermissionnames.md b/docs/directorymanager/11.0/managementshell/identitystore/getrolepermissionnames.md deleted file mode 100644 index f7feec6934..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/getrolepermissionnames.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "Get-RolePermissionNames" -description: "Get-RolePermissionNames" -sidebar_position: 90 ---- - -# Get-RolePermissionNames - -The commandlet **Get-RolePermissionNames** helps user to see the names of the permissions that can -be assigned to / revoked from a security role in an identity store. - -## Syntax - -``` -Get-RolePermissionNames -[-IncludeEntityTypes] -[] -``` - -## Required Parameter - -- None - -Example 1: - -This example provides a list of permission names for a security role. - -``` -Get-RolePermissionNames -``` - -Example 2: - -This example provides a list of permission names along with the category of a permission. - -``` -Get-RolePermissionNames -IncludeEntityTypes -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/getschemaattributes.md b/docs/directorymanager/11.0/managementshell/identitystore/getschemaattributes.md deleted file mode 100644 index 449da83d42..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/getschemaattributes.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Get-SchemaAttributes" -description: "Get-SchemaAttributes" -sidebar_position: 100 ---- - -# Get-SchemaAttributes - -The commandlet **Get-SchemaAttribute** enables you to retrieve comprehensive list of schema -attributes available for an identity store. - -This cmdlet can be used to enlist the names of schema attributes required for various cmdlets like -cmdlets related to identity store roles etc. - -## Syntax - -``` -Get-SchemaAttributes -[-IdentityStoreName] -[] -``` - -## Required Parameter - -- IdentityStoreName - -Example: - -This example retrieves a list of available schema attributes in alphabetical order for the AdStore9 -identity store. - -``` -Get-SchemaAttributes -IdentityStoreName AdStore9 -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/getsmsgateways.md b/docs/directorymanager/11.0/managementshell/identitystore/getsmsgateways.md deleted file mode 100644 index a6ff1a5927..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/getsmsgateways.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "Get-SmsGateways" -description: "Get-SmsGateways" -sidebar_position: 110 ---- - -# Get-SmsGateways - -The commandlet **Get-SmsGateways** provides information of the SMS gateways configured in GroupID. - -## Syntax - -``` -Get-SmsGateways -[] -``` - -## Required Parameter - -- None - -Example: - -This example lists all the configured SMS gateways in GroupID. - -``` -Get-SmsGateways -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/getuserrole.md b/docs/directorymanager/11.0/managementshell/identitystore/getuserrole.md deleted file mode 100644 index aaa7f9faf5..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/getuserrole.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: "Get-UserRole" -description: "Get-UserRole" -sidebar_position: 120 ---- - -# Get-UserRole - -The commandlet **Get-UserRole** displays information about the role of the specified user in an -identity store. - -If a user has different roles in different GroupID clients of an identity store; and ClientName -parameter is not specified, this commandlet displays the highest priority role of the user. If the -identity store name is not specified, the connected identity store is used by this cmdlet. - -## Syntax - -``` -Get-UserRole -[-Identity] -[-IdentityStoreName ] -[-ClientName ] -[-All] -[] -``` - -## Required Parameter - -- Identity - -Example 1: - -This example provides role information of the user _testingaccount_ in the Admin Center client of -the AdStore1 identity store. - -``` -Get-UserRole -Identity testingaccount -IdentityStoreName AdStore1 -ClientName 'Admin Center' -``` - -Example 2: - -This example displays the highest priority role information of the _testingaccount@pucit.local_ user -for all clients of AdStore1 identity store. - -``` -Get-UserRole -Identity testingaccount@pucit.local -IdentityStoreName AdStore1 -``` - -Example 3: - -This example displays role information of the _testingaccount@pucit.local_ user in the -_ManagementShell ``_ client of the connected identity store. - -``` -Get-UserRole -Identity testingaccount@pucit.local -ClientName 'ManagementShell ``' -``` - -Example 4: - -This example retrieves the highest priority role of _testingaccount_ user in the connected identity -store. If the user has different roles in different GroupID clients, only the role having the -highest priority is retrieved. - -``` -Get-UserRole -Identity testingaccount -``` - -Example 5: - -This example retrieves information of all roles of _testingaccount_ user in all client of the -connected identity store. - -``` -Get-UserRole -Identity testingaccount -All -``` - -Example 6: - -This example retrieves all roles of _euser1_ and _euser2_ users in the connected identity store -through pipelining. - -``` -'euser1', 'euser2', 'testingaccount' | Get-UserRole -All -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/newidentitystore.md b/docs/directorymanager/11.0/managementshell/identitystore/newidentitystore.md deleted file mode 100644 index 82758bc333..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/newidentitystore.md +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: "New-IdentityStore" -description: "New-IdentityStore" -sidebar_position: 130 ---- - -# New-IdentityStore - -The commandlet **New-IdentityStore** creates a new identity store. This commandlet requires valid -credentials and connectivity before it creates the store. However, this behavior can be overridden -by specifying the IgnoreConnectionFail parameter. - -This cmdlet uses dynamic parameters based on the value of _IdentityStoreType_ parameter. The -parameters that become available depending on the values of _IdentityStoreType_ are as follows: - -- IdentityStoreType: ActiveDirectory - - Domain: The connection string / domain of the active directory. - -- IdentityStoreType: MicrosoftAzure - - Domain: The domain of the Microsoft Entra ID / Office365 store. - - AppId: The name of GroupID application registered in the Microsoft Entra ID admin panel. - -- IdentityStoreType: GoogleWorkspace - - AdminUsername: The username of the administrator of the Google Workspace account. - - P12CertificatePath: The path where the certificate file (.p12 extension) downloaded from Google - Admin Console is placed (including the filename). - -## Syntax - -``` -New-IdentityStore --IdentityStoreType --IdentityStoreName --Credential -[-Description ] -[-PassThru] -[-IgnoreConnectionFail] -[-IdentityStoreId ] -[-SecurityToken ] -[-WarningAction ] -[-InformationAction ActionPreference>] -[-WarningVariable ] -[-InformationVariable ] -[-PipelineVariable ] -[] -``` - -## Required Parameters - -- IdentityStoreType -- IdentityStoreName -- Credential - -Example 1: - -This example create a new Active Directory based identity store by explicitly specifying the -credentials for the new identity store. - -``` -New-IdentityStore -IdentityStoreType ActiveDirectory -IdentityStoreName DemoAdStore2 -Credential $cred -Domain pucit.local -``` - -NOTE: For an Active Directory based identity store, Domain parameter is mandatory. - -Example 2: - -This example creates a new Active Directory based identity store by providing the secure -credentials. Here $cred is an object of type PSCredential which was created by Get-Credential -commandlet. - -``` -New-IdentityStore -IdentityStoreType ActiveDirectory -IdentityStoreName DemoAdStore2 -Credential $cred -Domain pucit.local -``` - -Example 3: - -This example creates an Microsoft Entra ID based identity store. - -``` -New-IdentityStore -IdentityStoreType MicrosoftAzure -IdentityStoreName DemoAzStore1 -UserName admin@mydomain.onmicrosoft.com -Password webdir123R -Domain mydomain.onmicrosoft.com -AppId 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee' -``` - -NOTE: In case of an Microsoft Entra ID based identity store, Domain and AppId parameters are -mandatory. - -Example 4: - -This example creates a Google Apps (Google Workspace) based identity store. - -``` -New-IdentityStore -IdentityStoreType GoogleWorkspace -IdentityStoreName DemoGStore1 -UserName svcacc@myproject-111222.iam.gserviceaccount.com -AdminUsername admin@mydomain.com -P12CertificatePath 'C:\Keys\gsuite\key.p12' -``` - -NOTE: For Google Apps based identity store, AdminUserName and P12CertificatePath parameters are -mandatory. However, ‘Password’ parameter is ignored. - -Example 5: - -This example creates Google Apps (G-Suite) based identity store using secure credentials. - -The $creds (an object of type PSCredential) object must contain the service account as username. The -‘Password’ property of this object can be anything but not empty. - -``` -New-IdentityStore -IdentityStoreType GoogleWorkspace -IdentityStoreName DemoGStore2 -Credential $creds -AdminUsername arslan@bibelotz.com -P12CertificatePath 'C:\Keys\gsuite\key.p12' -``` - -Example 6: - -This example creates an Active Directory based identity store by ignoring the credential and -connection details. - -``` -New-IdentityStore -IdentityStoreType ActiveDirectory -IdentityStoreName DemoAdStore3 -UserName nouser -Password wrongpwd -Domain nodomain.local -IgnoreConnectionFail -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/overview.md b/docs/directorymanager/11.0/managementshell/identitystore/overview.md deleted file mode 100644 index a1b42ce7b4..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/overview.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: "Identity Store Commands" -description: "Identity Store Commands" -sidebar_position: 80 ---- - -# Identity Store Commands - -This section covers cmdlets for performing identity store-related tasks such as: - -- [Clear-MessagingServer](/docs/directorymanager/11.0/managementshell/identitystore/clearmessagingserver.md): - removes a configured messaging server. -- [Clear-Notifications](/docs/directorymanager/11.0/managementshell/identitystore/clearnotifications.md): - removes notification settings of an identity store. -- [Clear-SmtpServer](/docs/directorymanager/11.0/managementshell/identitystore/clearsmtpserver.md): - removes a configured SMTP server of an identity store. -- [Get-AvailableMessagingServers](/docs/directorymanager/11.0/managementshell/identitystore/getavailablemessagingservers.md): - retrieves messaging servers for the configured messaging provider. -- [Get-Client](/docs/directorymanager/11.0/managementshell/identitystore/getclient.md): - lists information about the GroupID clients. -- [Get-IdentityStore](/docs/directorymanager/11.0/managementshell/identitystore/getidentitystore.md): - retrieves information about an identity store. -- [Get-IdentityStoreRoles](/docs/directorymanager/11.0/managementshell/identitystore/getidentitystoreroles.md): - retrieves information about the security roles in an identity store -- [Get-LogSettings](/docs/directorymanager/11.0/managementshell/identitystore/getlogsettings.md): - provides information about the global log settings of an identity store. -- [Get-RolePermissionNames](/docs/directorymanager/11.0/managementshell/identitystore/getrolepermissionnames.md): - lists the permissions assigned to the logged-in user. -- [Get-SchemaAttributes](/docs/directorymanager/11.0/managementshell/identitystore/getschemaattributes.md): - lists schema attributes available for an identity store. -- [Get-SmsGateways](/docs/directorymanager/11.0/managementshell/identitystore/getsmsgateways.md): - provides information of the configured SMS gateways. -- [Get-UserRole](/docs/directorymanager/11.0/managementshell/identitystore/getuserrole.md): - displays role information of a user in an identity store. -- [New-IdentityStore](/docs/directorymanager/11.0/managementshell/identitystore/newidentitystore.md): - creates a new identity store. -- [Remove-IdentityStore](/docs/directorymanager/11.0/managementshell/identitystore/removeidentitystore.md): - removes an identity store from GroupID. -- [Send-TestNotification](/docs/directorymanager/11.0/managementshell/identitystore/sendtestnotification.md): - sends a test notification. -- [Set-IdentityStore](/docs/directorymanager/11.0/managementshell/identitystore/setidentitystore.md): - modifies an identity store configuration. -- [Set-IdentityStoreRole](/docs/directorymanager/11.0/managementshell/identitystore/setidentitystorerole.md): - modifies properties of a security role in an identity store. -- [Set-MessagingServer](/docs/directorymanager/11.0/managementshell/identitystore/setmessagingserver.md): - configures a messaging server in an identity store. -- [Set-Notifications](/docs/directorymanager/11.0/managementshell/identitystore/setnotifications.md): - modifies notification settings of an identity store. -- [Set-SmtpServer](/docs/directorymanager/11.0/managementshell/identitystore/setsmtpserver.md): - configures an SMTP server of an identity store. - -See Also - -- [GroupID Management Shell](/docs/directorymanager/11.0/managementshell/overview.md) -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/removeidentitystore.md b/docs/directorymanager/11.0/managementshell/identitystore/removeidentitystore.md deleted file mode 100644 index 3a3790e156..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/removeidentitystore.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "Remove-IdentityStore" -description: "Remove-IdentityStore" -sidebar_position: 140 ---- - -# Remove-IdentityStore - -The commandlet **Remove-IdentityStore** removes an identity store from GroupID. - -## Syntax - -``` -Remove-IdentityStore -[-IdentityStoreName] -[-PassThru] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[-WarningAction ] -[-InformationAction ] -[-WarningVariable ] -[-InformationVariable ] -[-PipelineVariable ] -[] -``` - -## Required Parameter - -- IdentityStoreName - -Example 1: - -This example removes an identity store named DemoAzStore1. - -``` -Remove-IdentityStore -IdentityStoreName DemoAzStore1 -``` - -Example 2: - -This example removes DemoGStore1 and DemoGStore2 identity stores through the pipeline operator. - -``` -'DemoGStore1', 'DemoGStore2' | Remove-IdentityStore -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/sendtestnotification.md b/docs/directorymanager/11.0/managementshell/identitystore/sendtestnotification.md deleted file mode 100644 index 1c4b7604db..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/sendtestnotification.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "Send-TestNotification" -description: "Send-TestNotification" -sidebar_position: 150 ---- - -# Send-TestNotification - -The commandlet **Send-TestNotification** sends a test notification using the email addresses -(specified From/To) through the SMTP server of the specified identity store. This cmdlet can be used -to validate SMTP settings before configuring notifications or SMTP settings. - -## Syntax - -``` -Send-TestNotification --IdentityStorename --SmtpServer --FromEmail --ToEmail --Port -[-Credential ] -[-UseSmptUserAuthentication] -[-SslEnabled] -[] -``` - -## Required Parameters - -- IdentityStoreName -- SmtpSesrver -- FromEmail -- Toemail -- Port - -Example 1: - -This example sends a test notification to euser1@pucit.local using the SMTP server configured on -port 25 for user arsalanahmadsvm in AdStore1 identity store. - -``` -Send-TestNotification -IdentityStorename AdStore9 -SmtpServer arslanahmadsvm.pucit.local -Port 25 -FromEmail noreply@pucit.local -ToEmail euser1@pucit.local -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/setidentitystore.md b/docs/directorymanager/11.0/managementshell/identitystore/setidentitystore.md deleted file mode 100644 index 7066a7e3c8..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/setidentitystore.md +++ /dev/null @@ -1,380 +0,0 @@ ---- -title: "Set-IdentityStore" -description: "Set-IdentityStore" -sidebar_position: 160 ---- - -# Set-IdentityStore - -The commandlet **Set-IdentityStore** modifies the identity store settings and configurations. - -NOTE: Many parameters of this cmdlet require the user to specify schema attribute names. You can use -**Get-SchemaAttributes** commandlet to retrieve a list of attributes available for an identity -store. - -## Syntax - -``` -Set-IdentityStore --IdentityStoreName --Credential -[-NewName ] -[-StoreDescription ] -[-StoreEnabled ] -[-RoleOperation {add | remove | remove all}] -[-RoleName ] -[-RoleDescription ] -[-RolePriority ] -[-RoleCriteriaScope {Group | Container}] -[-RoleCriteriaDN ] -[-RoleCriteriaOperator {Or | And}] -[-RoleCriteriaFilters ] -[-RolePermissions ] -[-RoleNameToCopy ] -[-DefaultAllowRolePermissions] -[-RoleReadonly] -[-RoleSystemOnly] -[-RoleDisabled] -[-GroupExpiryQuantity ] -[-GroupExpiryUnit {Never | Days | Weeks | Months | Years | Indefinite}] -[-GlmContainersPolicy {Exclude | Include}] -[-GlmContainers ] -[-GlmContainersOperation {add | remove | remove all}] -[-EnableSecurityGroupsExpiry] -[-DisableSecurityGroupsExpiry] -[-EnableExpiredGroupDeletion] -[-ExpiredGroupsDeletionInterval ] -[-DisableExpiredGroupDeletion] -[-EnableGUSLifecycle] -[-GroupExtensionPolicy {Extend | Reduce}] -[-GroupLifeDays ] -[-DisableGUSLifecycle] -[-EnableGroupAttestation] -[-DisableGroupAttestation] -[-DefaultApprover ] -[-GlmNotifyOwnersXDaysBeforeOperation {add | remove | remove all}] -[-GlmNotifyOwnersXDaysBefore ] -[-GlmEnableNotificationOfTodaysExpiry] -[-GlmDisableNotificationOfTodaysExpiry] -[-PrefixOperation {add | remove | remove all}] -[-Prefixes ] -[-HistoryTrackingOption {Nothing | All_Actions | Selected_Actions}] -[-HistoryActionsOperation {add | remove | remove all}] -[-HistorySelectedActions {OwnershipChange | AdditionalOwnerChange | ExpirationPolicyChange | GroupExpireRenew | QueryChange | SecurityTypeChange | ObjectCreated | ObjectDeleted | IdentityStoreHistory | SecurityRolesHistory | WorkflowsHistory}] -[-HistoryRetention {All | Last_30_Days | Last_60_Days | Last_90_Days | Last_120_Days | Last_6_Months | Last_1_Year | Last_2_Years | Last_5_Years}] -[-FileLoggingEvent {All | Debug | Info | Warn | Error | Off}] -[-WindowsLoggingEvent {FailureAudit | SuccessAudit | Info | Warn | Error}] -[-MaximumMembersPerGroup ] -[-WhenGroupMembershipThresholdReach {PreventUpdation | NestIntoChildGroups}] -[-EnableOrphanGroupsDeletion] -[-DisableOrphanGroupsDeletion] -[-EnableOutOfBoundsAlerts] -[-DisableOutOfBoundsAlerts] -[-MembershipCountThreshold ] -[-MembershipPercentageThreshold ] -[-ProfileValidationGroupDN ] -[-RegularProfileValidationLifecycle ] -[-EnableNewProfileValidationLifecycle] -[-DisableNewProfileValidationLifecycle] -[-NewProfileValidationLifecycle ] -[-ProfileValidationReminderOperation {add | remove}] -[-ProfileValidationReminders ] -[-ProfileValidationExtensionPeriod ] -[-EnableAttributeUpdation] -[-DisableAttributeUpdation] -[-ProfileValidationAttributeName ] -[-ProfileValidationAttributeValue ] -[-EnableValidationDateRemoval] -[-DisableValidationDateRemoval] -[-ValidationDateRemovalInterval ] -[-EnrollmentEnabled ] -[-AuthenticationTypeOperation {enable | disbale}] -[-AuthenticationType ] -[-QuestionOperation {add | remove | remove all}] -[-SecurityQuestions ] -[-PasswordExceptionOperation {add | remove | remove all}] -[-PasswordExceptions ] -[-PasswordRuleOperation {add | remove | remove all}] -[-PasswordRules ] -[-DisallowingPasswordExceptionFilePath ] -[-EnableSWAuthenticationViaSecurityQuestions] -[-DisableSWAuthenticationViaSecurityQuestions] -[-SWAQuestionsOperation {add | remove}] -[-SWAQuestions ] -[-EnableSWAuthenticationViaMobile] -[-DisableSWAuthenticationViaMobile] -[-SWAMobileAttribute ] -[- EnableSWAuthetnicationViaEmail] -[-DisableSWAuthenticationViaEmail] -[-SWEmailAttribute ] -[-SWAuthenticationFactor ] -[] -``` - -NOTE: You can use the **Set-IdentityStore** commandlet in a secure way by using the _Credential_ -parameter or by specifying the credentials through _Username_ and _Password_ parameters in plain -text format which is not a secure way. - -## Required Parameters - -- IdentityStoreName -- Credential / Username - -Example 1: - -This example changes name of AdStore9 identity store to AdStore9_renamed. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -NewName 'AdStore9_renamed' -Credential $creds -Domain pucit.local -``` - -Example 2: - -This example enables the email verification authentication type for the AdStore9 identity store. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -AuthenticationTypeOperation enable -AuthenticationType 'Email Verification' -``` - -Example 3: - -This example disables enrollment for the AdSore9 identity store. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -EnrollmentEnabled $false -``` - -Example 4: - -This example modifies the group lifecycle expiry policy of the AdStore9 identity store to 21 days. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -GroupExpiryQuantity 21 -``` - -Example 5: - -This example modifies the group lifecycle expiration policy of AdStore9 identity store to 10 months. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -GroupExpiryQuantity 10 -GroupExpiryUnit Months -``` - -Example 6: - -This example sets the group lifecycle expiration policy of the AdStore9 identity store to ‘never’ by -setting value of the GroupExpiryUnit parameter to Indefinite. Even though the GroupExpiryQuantity -parameter is set to any value. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -GroupExpiryQuantity 10 -GroupExpiryUnit Indefinite -``` - -Example 7: - -This example Configures containers policy and add containers. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -GlmContainersPolicy Include -GlmContainersOperation add -GlmContainers 'OU=WorkingOU,DC=pucit,DC=local','OU=ArslanAhmadOU,OU=WorkingOU,DC=pucit,DC=local' -``` - -Example 8: - -This example enables expiry of security groups, deletion of expired groups and sets interval of -group deletion to 45 days. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -EnableSecurityGroupsExpiry -EnableExpiredGroupDeletion -ExpiredGroupsDeletionInterval 45 -``` - -Example 9: - -This example enables GUS lifecycle and reduces group’s life if not used within 25 days. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -EnableGUSLifecycle -GroupExtensionPolicy Reduce -GroupLifeDays 25 -``` - -Example 10: - -This example enables group attestation feature and sets the TestingAccoun@pucit.local user as the -default approver for the AdStore9 identity store. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -EnableGroupAttestation -DefaultApprover 'CN=Testing Account,CN=Users,DC=pucit,DC=local' -``` - -Example 11: - -This example sets the notifications (in number of days) before group expiry. It also enables today’s -expiry reports as well as it enables the group attestation. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -EnableGroupAttestation -GlmNotifyOwnersXDaysBeforeOperation add -GlmNotifyOwnersXDaysBefore 1,3,10 -GlmEnableNotificationOfTodaysExpiry -``` - -Example 12: - -This example creates a new role – DemoRole1 – for the AdStore9 identity store by specifying the -minimum possible parameters. - -NOTE: By default, all permissions are declined to the role created through this commandlet. -Moreover, no criteria filters or scope (group / container) are added to the role. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -RoleOperation add -RoleName DemoRole1 -RolePriority 50 -RoleCriteriaScope Container -``` - -Example 13: - -This example creates a new security role – DemoRole1 – in AdStore9 identity store and a container is -set as its role criteria. - -NOTE: By default, all permissions are declined to the role created through this commandlet. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -RoleOperation add -RoleName DemoRole1 -RolePriority 50 -RoleCriteriaScope Container -RoleCriteriaDN 'ou=workingou,dc=pucit,dc=local' -``` - -Example 14: - -This example creates a new security role by specifying the container and criteria filters. - -The value for RoleCriteriaFilters parameter is specified as 3-length arrays. At first index, specify -the filter name which can be either ‘name’ or ‘type’. Second index holds the operator which is one -of the ‘is exactly’ and ‘is not’ operator. The third index of the array holds the client name or -client type depending upon whether ‘name’ or ‘type’ is specified at the first index. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -RoleOperation add -RoleName DemoRole4 -RolePriority 53 -RoleCriteriaScope Container -RoleCriteriaDN 'ou=workingou,dc=pucit,dc=local' -RoleCriteriaOperator Or -RoleCriteriaFilters @('name', 'is exactly', 'automate arslanahmadvm'), @('type', 'is not', 'managementshell') -``` - -Example 15: - -This example creates a new security role by specifying the container, criteria filters and -permissions. In this example, only Manage My Groups and Create User permissions are granted to the -created role. - -NOTE: By default, all the permissions except those specified in RolePermissions parameter are denied -to the role created through this commandlet. -The role permission names can be retrieved from **Get-RolePermissionNames** commandlet. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -RoleOperation add -RoleName DemoRole6 -RolePriority 55 -RoleCriteriaScope Container -RoleCriteriaDN 'ou=workingou,dc=pucit,dc=local' -RoleCriteriaOperator Or -RoleCriteriaFilters @('name', 'is exactly', 'automate arslanahmadvm'), @('type', 'is not', 'managementshell') -RolePermissions 'manage my groups', 'create user' - -``` - -Example 16: - -This example creates a new security role by specifying a role criterion as container, criteria -filters and permissions. - -By default, all the permissions except those specified in RolePermissions parameter are granted. -This is due to the presence of DefaultAllowPermissions. In this example, only Manage my groups and -Create user permissions are denied (and the remaining ones are granted) to the created role. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -RoleOperation add -RoleName DemoRole5 -RolePriority 54 -RoleCriteriaScope Container -RoleCriteriaDN 'ou=workingou,dc=pucit,dc=local' -RoleCriteriaOperator Or -RoleCriteriaFilters @('name', 'is exactly', 'automate arslanahmadvm'), @('type', 'is not', 'managementshell') -RolePermissions 'manage my groups', 'create user' –DefaultAllowRolePermissions - -``` - -Example 17: - -This example creates two group prefixes – dev and ment –at identity store level. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -PrefixOperation add -Prefixes 'dev', 'ment' -``` - -Example 18: - -This example tracks history of the selected actions for the AdStore9 identity store. The selected -actions are additional owner change, expiration policy change and renewal of group. History -retention period is also specified as last 120 days. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -HistoryTrackingOption Selected_Actions -HistoryActionsOperation add -HistorySelectedActions AdditionalOwnerChange, ExpirationPolicyChange, GroupExpireRenew -HistoryRetention Last_120_Days -``` - -Example 19: - -This example configures file and windows logging settings for the AdStore9 identity store. File -logging is set to Debug level and windows logging to FailureAudit. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -FileLoggingEvent Debug -WindowsLoggingEvent FailureAudit -``` - -Example 20: - -This example configures out of bounds settings for the AdStore9 identity store. - -Maximum 500 members are allowed in each group and when the threshold reaches, the members will be -nested into child groups. The orphan groups will be deleted. Do not update the membership and alert -if the percentage in membership exceeds by more than 65% and either the current or new membership -exceeds 200 members. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -MaximumMembersPerGroup 500 -WhenGroupMembershipThresholdReach NestIntoChildGroups -EnableOrphanGroupsDeletion -EnableOutOfBoundsAlerts -MembershipCountThreshold 200 -MembershipPercentageThreshold 65 -``` - -Example 21: - -This example configures profile validation settings. This example specifies that profile validation -policies should be applied on group specified by distinguished name -‘CN=ProfileValidation1,OU=ArslanAhmadOU,OU=WorkingOU,DC=pucit,DC=local’. Regular profiles should be -validated within 60 days. New profiles should also be validated within 15 days. Validation extension -period should be 7 days. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -ProfileValidationGroupDN 'CN=ProfileValidation1,OU=ArslanAhmadOU,OU=WorkingOU,DC=pucit,DC=local' -RegularProfileValidationLifecycle 60 -EnableNewProfileValidationLifecycle -NewProfileValidationLifecycle 15 -ProfileValidationExtensionPeriod 7 -``` - -Example 22: - -This example configures profile validation settings. This example cmdlet adds two profile validation -reminders. It also causes an attribute named ‘info’ to be updated with value ‘Validation expired’ -when the profile validation is expired. It also causes the validation date to be removed after 5 -days (after which the policies for new users are applied to the users). - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -ProfileValidationReminderOperation add -ProfileValidationReminders @('fourth', 45), @('fifth', 60) -EnableAttributeUpdation -ProfileValidationAttributeName info -ProfileValidationAttributeValue 'Validation expired' -EnableValidationDateRemoval -ValidationDateRemovalInterval 5 -``` - -Example 23: - -This example adds two security questions in the AdStore9 identity store. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -QuestionOperation add -SecurityQuestions 'When was the first time you felt that it was raining even though it was not raining?', 'What would happen if there were no GroupID?' -``` - -Example 24: - -This example configures password options. - -This example enforces the following password policy: Do not allow passwords starting with either -‘webdir123R’ or containing ‘123R’ and allow only those passwords matching -'^(?=.\*[a-z])(?=.\*[A-Z])(?=.\*\d)(?=.\*[^\da-zA-Z]).{8,15}$' regular expression pattern. - -‘PasswordExceptions’ parameter accepts 2-Length arrays having at first index the operator and at -second index the string. Allowed operators contain: ‘equals’; ‘startswith’; ‘endswith’; ‘contains’; -and ‘regexp’. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -PasswordExceptionOperation add -PasswordExceptions @('startswith', 'webdir123R'), @('contains', '123R') -PasswordRuleOperation add -PasswordRules '^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\da-zA-Z]).{8,15}$' -``` - -Example 25: - -This example configures the second way authentication via security questions. - -``` -Set-IdentityStore -IdentityStoreName AdStore9 -Credential $creds -Domain pucit.local -EnableSWAuthenticationViaSecurityQuestions -SWAQuestionsOperation add -SWAQuestions @('when was the first time you felt that it is raining even though it was not raining?', 'info') -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/setidentitystorerole.md b/docs/directorymanager/11.0/managementshell/identitystore/setidentitystorerole.md deleted file mode 100644 index 7b36e274e0..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/setidentitystorerole.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: "Set-IdentityStoreRole" -description: "Set-IdentityStoreRole" -sidebar_position: 170 ---- - -# Set-IdentityStoreRole - -Use the **Set-IdentityStoreRole** commandlet to modify properties of a security role in an identity -store. - -## Syntax - -``` -Set-IdentityStoreRole --RoleName --IdentityStoreName -[-NewName ] -[-Description ] -[-Priority ] -[-Enabled ] -[-CriteriaScope {Group | Container}] -[-DistinguishedName ] -[-Operator {Or | And}] -[-CriteriaFilters ] -[-FilterOperation {Add | Remove | RemoveAll}] -[-Permissions ] -[-PermissionOperation {GrantAll | GrantExcept | Grant | Deny | DenyExcept | DenyAll}] -[] -``` - -## Required Parameters - -- RoleName -- IdentityStoreName - -Example 1: - -This example modifies properties of the DemoRole1 role in AdStore9 identity store. It renames the -role to DemoRole1_Renamed and sets its priority to 45. - -``` -Set-IdentityStoreRole -RoleName DemoRole1 -IdentityStoreName AdStore9 -NewName DemoRole1_Renamed -Priority 45 -Enabled $True -``` - -Example 2: - -This example modifies the DemoRole2 role in the AdStore9 identity store. The scope of the role is -set to a container and removes filters specified in CriteriaFilters parameter. - -``` -Set-IdentityStoreRole -RoleName DemoRole2 -IdentityStoreName AdStore9 -CriteriaScope Container -DistinguishedName 'ou=workingou,dc=pucit,dc=local' -FilterOperation Remove -CriteriaFilters @('type', 'is not', 'managementshell') -``` - -Example 3: - -This example modifies the permissions assigned to the DemoRole2 role. Two permissions _Manage any -group_ and _Create Smart Group_ are being assigned. - -``` -Set-IdentityStoreRole -RoleName DemoRole2 -IdentityStoreName AdStore9 -PermissionOperation Grant -Permissions 'Manage any group', 'create smart group' -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/setmessagingserver.md b/docs/directorymanager/11.0/managementshell/identitystore/setmessagingserver.md deleted file mode 100644 index 6168dd94d2..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/setmessagingserver.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: "Set-MessagingServer" -description: "Set-MessagingServer" -sidebar_position: 180 ---- - -# Set-MessagingServer - -The commandlet **Set-MessagingServer** configures a messaging system in identity store. The -SmtpServer parameter requires the server name of the messaging system to be specified. -[Get-AvailableMessagingServers](/docs/directorymanager/11.0/managementshell/identitystore/getavailablemessagingservers.md) -commandlet can be used to retrieve the server names of the messaging systems. - -This commandlet also has some parameters that appear depending on the value of the Provider -parameter. - -## Syntax - -``` -Set-MessagingServer --IdentityStoreName --Provider {o365 | gsuite | exchange2013 | exchange2016 | exchange2019} --Credential --SmtpServer -[-Priority ] -[-Disabled] -[] -Set-MessagingServer --IdentityStoreName --Provider {o365 | gsuite | exchange2013 | exchange2016 | exchange2019} --UserName --SmtpServer -[-Password ] -[-Priority ] -[-Disabled] -[] -``` - -## Required Parameters - -- IdentityStoreName -- Provider -- Credential -- SmtpServer - -Example 1: - -This example modifies the messaging system of the AsStore9 identity store to Microsoft Office 365. - -``` -Set-MessagingServer -IdentityStoreName AdStore9 -Provider o365 -UserName admin@mydomain.onmicrosoft.com -Password webdir123R -SmtpServer ps.outlook.com -Domain mydomain.onmicrosoft.com -AppId 'a1b2c3d4-e5f6-f6e5-d4c3-b2a1b2c3d4e5' -``` - -Example 2: - -This example modifies the messaging system of the AdStore9 identity store to Exchange 2013. - -``` -Set-MessagingServer -IdentityStoreName AdStore9 -Provider exchange2013 -UserName administrator -Password webdir123R - SmtpServer arslanahmadsvm.pucit.local -Domain pucit.local -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/setnotifications.md b/docs/directorymanager/11.0/managementshell/identitystore/setnotifications.md deleted file mode 100644 index 5ac9ee9ec5..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/setnotifications.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: "Set-Notifications" -description: "Set-Notifications" -sidebar_position: 190 ---- - -# Set-Notifications - -Use the **Set-Notifications** commandlet to modify the notification settings of an identity store. - -## Syntax - -``` -Set-Notifications --IdentityStoreName -[-PrimaryRecepients ] -[-CarbonCopy ] -[-NotifyLoggedInUsers ] -[-NotifyOwners ] -[-NotifyModifiedObject ] -[-NotifyPublicGroupOwner ] -[-NotifyAddedMembers ] -[-PasswordPortalUrl ] -[-NotifyUserGroupJoinML ] -[-NotifyUserGroupLeaveML ] -[-XDaysBeforeLeaveNotificationML ] -[-NotifyUserGroupJoinMB ] -[-NotifyUserGroupLeaveMB ] -[-XDaysBeforeLeaveNotificationMB ] -[] -``` - -## Required Parameter - -- IdentitySoreName - -Example 1: - -This example sets the primary and carbon copy (CC) recipients of the notifications for the AdStore9 -identity store. Additionally, it also sets the group owners / managers and public group owners as -the notification recipients. - -``` -Set-Notifications -IdentityStoreName AdStore9 -PrimaryRecepients 'euser1@pucit.local', 'euser2@pucit.local' -CarbonCopy 'exmb1@pucit.local' -NotifyOwners $true -NotifyPublicGroupOwner $true -``` - -Example 2: - -This example configures recipients for membership lifecycle notifications i.e. it notifies the user -upon joining a group and intimates the user before 7 days it is removed as a member from the group. - -``` -Set-Notifications -IdentityStoreName AdStore9 -NotifyUserGroupJoinML $true -XDaysBeforeLeaveNotificationML 7 -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystore/setsmtpserver.md b/docs/directorymanager/11.0/managementshell/identitystore/setsmtpserver.md deleted file mode 100644 index 458517fcb5..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystore/setsmtpserver.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: "Set-SmtpServer" -description: "Set-SmtpServer" -sidebar_position: 200 ---- - -# Set-SmtpServer - -The **Set-SmtpServer** commandlet configures an SMTP server for an identity store. - -## Syntax - -``` -Set-SmtpServer --IdentityStorename --SmtpServer --FromEmail --ToEmail --Port -[-Credential ] -[-UseSmptUserAuthentication] -[-SslEnabled] -] -``` - -## Required Parameters - -- IdentityStorename -- SmtpServer -- FromEmail -- ToEmail -- Port - -Example 1: - -This example configures arsalanahmadsvm.pucit.local SMTP server for AdStore9 identity store on -port 25. Email address for sending notification is specified as noreply@pucit.local and -euser1@pucit.local as recipient email address. - -``` -Set-SmtpServer -IdentityStorename AdStore9 -SmtpServer arslanahmadsvm.pucit.local -FromEmail noreply@pucit.local -ToEmail euser1@pucit.local -Port 25 -``` - -Example 2: - -This example configures smtp.office365.com SMTP server that is SSL (Secured Socket Layer) enabled -for AdStore9 identity store. The SMTP server is configured on port 587 and it uses credentials -stored in the $creds variable. - -``` -Set-SmtpServer -IdentityStorename AdStore9 -SmtpServer smtp.office365.com -FromEmail admin@mydomain.onmicrosoft.com -ToEmail admin@mydomain.onmicrosoft.com -Port 587 -UseSmptUserAuthentication -SslEnabled -Credential $creds -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Commands](/docs/directorymanager/11.0/managementshell/identitystore/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystoreconnection/_category_.json b/docs/directorymanager/11.0/managementshell/identitystoreconnection/_category_.json deleted file mode 100644 index cb8f83f4d5..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystoreconnection/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Identity Store Connection Commands", - "position": 90, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/managementshell/identitystoreconnection/connectidentitystore.md b/docs/directorymanager/11.0/managementshell/identitystoreconnection/connectidentitystore.md deleted file mode 100644 index f0bf0fa4dd..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystoreconnection/connectidentitystore.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: "Connect-IdentityStore" -description: "Connect-IdentityStore" -sidebar_position: 10 ---- - -# Connect-IdentityStore - -If an identity store of the connected domain is available, then GroupID Management Shell gets -connected to that identity store upon its launch. In case it does not exist the -**Connect-IdentityStore** commandlet establishes a connection with the required identity store. - -After a connection is established with the identity store you can then perform functions in -directory as per your role and permissions. - -## Syntax - -``` -Connect-IdentityStore -[-AuthenticationMode ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- None - -Example: - -The following command connects you to the identity store specified by the IdentityStoreId parameter -using the specified authentication mode and credentials that you set in the $Credentials environment -variable. See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in an environment variable. - -``` -Connect-IdentityStore -AuthenticationMode 2 -IdentityStoreId 2 -Credential $Cred -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Connection Commands](/docs/directorymanager/11.0/managementshell/identitystoreconnection/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystoreconnection/gettoken.md b/docs/directorymanager/11.0/managementshell/identitystoreconnection/gettoken.md deleted file mode 100644 index f304ab002c..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystoreconnection/gettoken.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Get-Token" -description: "Get-Token" -sidebar_position: 20 ---- - -# Get-Token - -When Management Shell is connected to an identity store a token is passed with the commandlet -enabling user to perform the required functions in directory. - -If you want to perform a function in a different identity store Management Shell is connected with -then first, you must have a valid token for the required identity store using the **Get-Token** -commandlet. This commandlet gets a token from GroupID Security Service which was assigned to the -user at the time of authentication. - -**Get-Token** command is also used to get a valid token in case of token expires in a session. - -## Syntax - -``` -Get-Token -[-AuthenticationMode ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- None - -Example: - -The following command returns a token for the identity store specified by the **IdentityStoreId** -parameter using the specified authentication mode and credentials that you set in the -**$Credentials** environment variable. See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in an environment variable. - -``` -Get-Token -AuthenticationMode 2 -IdentityStoreId 2 -Credential $Cred -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Identity Store Connection Commands](/docs/directorymanager/11.0/managementshell/identitystoreconnection/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/identitystoreconnection/overview.md b/docs/directorymanager/11.0/managementshell/identitystoreconnection/overview.md deleted file mode 100644 index 9578981900..0000000000 --- a/docs/directorymanager/11.0/managementshell/identitystoreconnection/overview.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Identity Store Connection Commands" -description: "Identity Store Connection Commands" -sidebar_position: 90 ---- - -# Identity Store Connection Commands - -This section covers cmdlets for establishing a connection with an identity store. - -- [Connect-IdentityStore](/docs/directorymanager/11.0/managementshell/identitystoreconnection/connectidentitystore.md): - connects to an identity store using the authentication mode mentioned. -- [Get-Token](/docs/directorymanager/11.0/managementshell/identitystoreconnection/gettoken.md): - gets a token from the GroupID Security service. - -See Also - -- [GroupID Management Shell](/docs/directorymanager/11.0/managementshell/overview.md) -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/mailbox/_category_.json b/docs/directorymanager/11.0/managementshell/mailbox/_category_.json deleted file mode 100644 index 31588eb4f0..0000000000 --- a/docs/directorymanager/11.0/managementshell/mailbox/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Mailbox Commands", - "position": 100, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/managementshell/mailbox/getmailbox.md b/docs/directorymanager/11.0/managementshell/mailbox/getmailbox.md deleted file mode 100644 index d806bd0fcd..0000000000 --- a/docs/directorymanager/11.0/managementshell/mailbox/getmailbox.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "Get-Mailbox" -description: "Get-Mailbox" -sidebar_position: 10 ---- - -# Get-Mailbox - -Use the **Get-Mailbox** commandlet to retrieve basic information about a mailbox that match your -given criteria. - -## Syntax - -``` -Get-MailBox -[[-Identity] ] -[-SearchContainer ] -[-SearchContainersScopeList ] -[-MailBoxStore ] -[-ShouldReturnCollection] -[-MaxItemsToDisplay ] -[-ObjectType ] -[-LdapFilter ] -[-SmartFilter ] -[-ServerFilter ] -[-AttributesToLoad ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- None - -Example: - -The following command retrieves the specified mailbox from the connected identity store. - -``` -Get-MailBox -Identity "OsamaMailBox" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Mailbox Commands](/docs/directorymanager/11.0/managementshell/mailbox/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/mailbox/newmailbox.md b/docs/directorymanager/11.0/managementshell/mailbox/newmailbox.md deleted file mode 100644 index d82ab76025..0000000000 --- a/docs/directorymanager/11.0/managementshell/mailbox/newmailbox.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: "New-Mailbox" -description: "New-Mailbox" -sidebar_position: 20 ---- - -# New-Mailbox - -Use the **New-Mailbox** commandlet to create a new mailbox in Directory. Most mailbox properties can -be directly added by using the parameters of this commandlet. - -## Syntax - -``` -New-MailBox --MailBoxStore --Alias --Name --OrganizationalUnit --SAMAccountName --Password --FirstName --LastName --DisplayName -[-UPNSuffix ] -[-Title ] -[-City ] -[-State ] -[-Zip ] -[-Country ] -[-Initials ] -[-Address ] -[-Office ] -[-Business ] -[-Business2 ] -[-EmailAddress ] -[-Department ] -[-Company ] -[-Mobile ] -[-Home ] -[-AccountDisabled ] -[-PasswordNeverExpires ] -[-PasswordForceChange ] -[-Manager ] -[-HomePage ] -[-Assistant ] -[-Notes ] -[-MailEnabled ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameters - -- MailBoxStore -- Alias -- Name -- OrganizationalUnit -- SAMAccountName -- Password -- FirstName -- LastName -- DisplayName - -Example: - -The following command creates a new mailbox in the container specified by the **OrganizationalUnit** -parameter of specified mailbox store. The command also specifies the logon name, password, first -name, last name and display name of the new mailbox. - -``` -New-MailBox -MailBoxStore "OsamaMailBoxDb120435" -Name "OsamaMailBox" -OrganizationalUnit "OU=osamamu,DC=naveed,DC=local" -SAMAccountName "OsamaMailBoxUser" -Password "webdir123R" -FirstName "OsamaMailBox" -LastName "MailBoxuser" -DisplayName "OsamaMailBox" -Alias "OsamaMailBox -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Mailbox Commands](/docs/directorymanager/11.0/managementshell/mailbox/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/mailbox/overview.md b/docs/directorymanager/11.0/managementshell/mailbox/overview.md deleted file mode 100644 index a35530a9ed..0000000000 --- a/docs/directorymanager/11.0/managementshell/mailbox/overview.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Mailbox Commands" -description: "Mailbox Commands" -sidebar_position: 100 ---- - -# Mailbox Commands - -This section covers cmdlets for performing mailbox-specific tasks such as: - -- [Get-Mailbox](/docs/directorymanager/11.0/managementshell/mailbox/getmailbox.md): - retrieves a mailbox. -- [New-Mailbox](/docs/directorymanager/11.0/managementshell/mailbox/newmailbox.md): creates - a new mailbox. -- [Remove-Mailbox](/docs/directorymanager/11.0/managementshell/mailbox/removemailbox.md): - deletes a mailbox. -- [Set-Mailbox](/docs/directorymanager/11.0/managementshell/mailbox/setmailbox.md): - modifies a mailbox. - -See Also - -- [GroupID Management Shell](/docs/directorymanager/11.0/managementshell/overview.md) -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/mailbox/removemailbox.md b/docs/directorymanager/11.0/managementshell/mailbox/removemailbox.md deleted file mode 100644 index 50e003063e..0000000000 --- a/docs/directorymanager/11.0/managementshell/mailbox/removemailbox.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "Remove-Mailbox" -description: "Remove-Mailbox" -sidebar_position: 30 ---- - -# Remove-Mailbox - -Use the **Remove-Mailbox** commandlet to delete mailbox from the connected identifty store. - -## Syntax - -``` -Remove-MailBox --Identity -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameters - -- Identity - -Example: - -The following command deletes the specified mailbox from the connected identity store. - -``` -Remove-MailBox -Identity "OsamaMailBox" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Mailbox Commands](/docs/directorymanager/11.0/managementshell/mailbox/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/mailbox/setmailbox.md b/docs/directorymanager/11.0/managementshell/mailbox/setmailbox.md deleted file mode 100644 index 9cb440f2f9..0000000000 --- a/docs/directorymanager/11.0/managementshell/mailbox/setmailbox.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: "Set-Mailbox" -description: "Set-Mailbox" -sidebar_position: 40 ---- - -# Set-Mailbox - -The **Set-Mailbox** commandlet modifies a mailbox in Directory. Most mailbox properties can be -directly modified by using the parameters of this commandlet. - -## Syntax - -``` -Set-MailBox --Identity -[-FirstName ] -[-LastName ] -[-Title ] -[-City ] -[-State ] -[-Zip ] -[-Country ] -[-Initials ] -[-Address ] -[-Office ] -[-Business ] -[-Add ] -[-Remove ] -[-Replace ] -[-Clear ] -[-Department ] -[-Company ] -[-Assistant ] -[-HomePage ] -[-Alias ] -[-EmailAddress ] -[-Description ] -[-Notes ] -[-AdministrativeNotes ] -[-DisplayName ] -[-SimpleDisplayName ] -[-CustomAttribute1 ] -[-CustomAttribute2 ] -[-CustomAttribute3 ] -[-CustomAttribute4 ] -[-CustomAttribute5 ] -[-CustomAttribute6   ] -[-CustomAttribute7 ] -[-CustomAttribute8 ] -[-CustomAttribute9 ] -[-CustomAttribute10 ] -[-CustomAttribute11 ] -[-CustomAttribute12 ] -[-CustomAttribute13 ] -[-CustomAttribute14 ] -[-CustomAttribute15 ] -[-Delimiter ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] - -``` - -## Required Parameter - -- Identity - -Example: - -The following commandlet modifies the country value of the specified mailbox in the connected -identity store. - -``` -Set-MailBox -Identity "OsamaMailBox" -Country "Pakistan" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Mailbox Commands](/docs/directorymanager/11.0/managementshell/mailbox/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/_category_.json b/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/_category_.json deleted file mode 100644 index c48edde7fd..0000000000 --- a/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Mail-Enable/Disable Groups Commands", - "position": 110, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/disabledistributiongroup.md b/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/disabledistributiongroup.md deleted file mode 100644 index 4b179d4a84..0000000000 --- a/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/disabledistributiongroup.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Disable-DistributionGroup" -description: "Disable-DistributionGroup" -sidebar_position: 10 ---- - -# Disable-DistributionGroup - -Use this commandlet to disable the mailing capabilities for a distribution group in Directory. - -GroupID maintains a history for this commandlet, which you can view in GroupID Management Console -using the History tab of the object's properties dialog box. - -## Syntax - -``` -Disable-DistributionGroup --Identity -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- Identity - -Example: - -The following command mail-disables a distribution group specified by the **Identity** parameter, -using the credentials of current user logged-on to the identity store. - -``` -Disable-DistributionGroup -Identity "CN=Smart_Training,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Mail-Enable/Disable Groups Commands](/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/enabledistributiongroup.md b/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/enabledistributiongroup.md deleted file mode 100644 index 911d7ea48f..0000000000 --- a/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/enabledistributiongroup.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Enable-DistributionGroup" -description: "Enable-DistributionGroup" -sidebar_position: 20 ---- - -# Enable-DistributionGroup - -This commandlet makes a distribution group in directory mail-enabled. - -GroupID maintains a history for this commandlet, which you can view in GroupID portal, against the -**History** node in the left panel. - -## Syntax - -``` -Enable-DistributionGroup --Identity -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- Identity - -Example: - -The following command mail-enables a distribution group specified by the **Identity** parameter, -using the credentials of current user logged-on to the identity store. - -``` -Enable-DistributionGroup -Identity "CN=Smart_Training,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Mail-Enable/Disable Groups Commands](/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/overview.md b/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/overview.md deleted file mode 100644 index 3d7dd1ea96..0000000000 --- a/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/overview.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Mail-Enable/Disable Groups Commands" -description: "Mail-Enable/Disable Groups Commands" -sidebar_position: 110 ---- - -# Mail-Enable/Disable Groups Commands - -This section covers cmdlets for enabling and disabling groups for email. - -- [Disable-DistributionGroup](/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/disabledistributiongroup.md): - disables a group's email capability. -- [Enable-DistributionGroup](/docs/directorymanager/11.0/managementshell/mailenableddisabledgroups/enabledistributiongroup.md): - enable a group's email capability. - -See Also - -- [GroupID Management Shell](/docs/directorymanager/11.0/managementshell/overview.md) -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/membership/_category_.json b/docs/directorymanager/11.0/managementshell/membership/_category_.json deleted file mode 100644 index 3147b59c54..0000000000 --- a/docs/directorymanager/11.0/managementshell/membership/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Membership Commands", - "position": 120, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/managementshell/membership/addgroupmember.md b/docs/directorymanager/11.0/managementshell/membership/addgroupmember.md deleted file mode 100644 index 31471587be..0000000000 --- a/docs/directorymanager/11.0/managementshell/membership/addgroupmember.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Add-GroupMember" -description: "Add-GroupMember" -sidebar_position: 10 ---- - -# Add-GroupMember - -The **Add-GroupMember** commandlet helps you to add one or more objects to the membership of a group -in Directory. Two types of membership can exist in GroupID. - -- Perpetual membership -- Temporary membership - -Modifying the membership of a Smart Group or Dynasty using this commandlet is not recommended, since -your changes will be discarded the next time the group is updated. - -GroupID maintains a history for this commandlet, which you can view in GroupID portal, against the -**History** node in the left panel. - -## Syntax - -``` -Add-GroupMember --GroupIdentity --Identity -[-Type ] -[-StartDate ] -[-EndDate ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameters - -- GroupIdentity -- Identity - -Example 1: - -The following command adds the user **Brian Regan** to the membership of the **Event Management** -group using the credentials set in the **$Credentials** environment variable. See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in an environment variable. - -``` -Add-GroupMember -GroupIdentity "CN=Event Management,OU=Local Recruiting,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -Identity "CN=BrianRegan,CN=User,DC=HR,DC=Imanami,DC=US" -Credential $Cred -``` - -Example 2: - -The following command gets all users from the **Local Recruiting** container and adds them to the -membership of the **Event Management** group. For detailed information about the Get-Object -commandlet, see -[Get-Object](/docs/directorymanager/11.0/managementshell/membership/getobject.md). The -**OUT-NULL** commandlet is used here to restrict the retrieved users information from appearing on -the console. - -``` -Get-Object -SearchContainer "OU=Local Recruiting,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -ObjectType "User" | Add-GroupMember -GroupIdentity "CN=Event Management,OU=Local Recruiting,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Membership Commands](/docs/directorymanager/11.0/managementshell/membership/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/membership/getgroupmember.md b/docs/directorymanager/11.0/managementshell/membership/getgroupmember.md deleted file mode 100644 index 0390ffb582..0000000000 --- a/docs/directorymanager/11.0/managementshell/membership/getgroupmember.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "Get-GroupMember" -description: "Get-GroupMember" -sidebar_position: 20 ---- - -# Get-GroupMember - -Use this commandlet to retrieve members of a particular group from directory. You can apply filters -to the results returned by the commandlet. - -## Syntax - -``` -Get-GroupMember -[-Identity] -[[-LdapFilter] ] -[-AttributesToLoad ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- None - -Example 1: - -The following command retrieves all members of the **Password_Expiry** group using the credentials -set in the **$Credentials** environment variable. See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in an environment variable. - -``` -Get-GroupMember -Identity "CN=Password_Expiry,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -Credential $Cred -``` - -Example 2: - -The command below retrieves all members from the **Enrollment** group display name of which starts -with the character S using the credentials of current user logged-on to the identity store. - -``` -Get-GroupMember -Identity "CN=Enrollment,OU=Local Recruiting,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -LdapFilter "(displayname=S*)" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Membership Commands](/docs/directorymanager/11.0/managementshell/membership/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/membership/getobject.md b/docs/directorymanager/11.0/managementshell/membership/getobject.md deleted file mode 100644 index 6e20951279..0000000000 --- a/docs/directorymanager/11.0/managementshell/membership/getobject.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Get-Object" -description: "Get-Object" -sidebar_position: 30 ---- - -# Get-Object - -Use this commandlet to retrieve objects from one or more containers in a domain that match the given -criteria. - -## Syntax - -``` -Get-Object -[[-Identity] ] -[-ShouldReturnCollection] -[-MaxItemsToDisplay ] -[-ObjectType ] -[-SearchContainer ] -[-SearchContainersScopeList ] -[-LdapFilter ] -[-SmartFilter ] -[-ServerFilter ] -[-AttributesToLoad ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- None - -Example 1: - -The following command retrieves all objects from the domain you are connected to. - -``` -Get-Object -``` - -Example 2: - -The command below retrieves the object **Event Management** starting from the container -**Recruiting** excluding its sub-containers using the credentials set in the **$Credentials** -environment variable. See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in an environment variable. - -``` -Get-Object -Identity "HR.Imanami.US\Event Management" -SearchContainer "OU=Recruiting,DC=HR,DC=Imanami,DC=US" -SearchContainersScopeList "1" -Credential $Cred -``` - -Example 3: - -The following command searches all objects in the specified containers including sub-containers with -display names starting with the letter S . - -``` -Get-Object -SearchContainer "OU=Recruiting,DC=HR,DC=Imanami,DC=US","OU=OutSourcing,DC=HR,DC=Imanami,DC=US" -LdapFilter "(DisplayName = S*)" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Membership Commands](/docs/directorymanager/11.0/managementshell/membership/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/membership/overview.md b/docs/directorymanager/11.0/managementshell/membership/overview.md deleted file mode 100644 index 76e03a9141..0000000000 --- a/docs/directorymanager/11.0/managementshell/membership/overview.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "Membership Commands" -description: "Membership Commands" -sidebar_position: 120 ---- - -# Membership Commands - -This section covers cmdlets for managing the memberships of both managed and unmanaged groups. - -- [Add-GroupMember](/docs/directorymanager/11.0/managementshell/membership/addgroupmember.md): - adds objects to the membership of a group. -- [Get-GroupMember](/docs/directorymanager/11.0/managementshell/membership/getgroupmember.md): - retrieves members of a group. -- [Get-Object](/docs/directorymanager/11.0/managementshell/membership/getobject.md): - retrieves objects. -- [Remove-GroupMember](/docs/directorymanager/11.0/managementshell/membership/removegroupmember.md): - removes recipients from a group's membership. -- [Set-Object](/docs/directorymanager/11.0/managementshell/membership/setobject.md): - modifies an object. - -See Also - -- [GroupID Management Shell](/docs/directorymanager/11.0/managementshell/overview.md) -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/membership/removegroupmember.md b/docs/directorymanager/11.0/managementshell/membership/removegroupmember.md deleted file mode 100644 index dbad18fb39..0000000000 --- a/docs/directorymanager/11.0/managementshell/membership/removegroupmember.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "Remove-GroupMember" -description: "Remove-GroupMember" -sidebar_position: 40 ---- - -# Remove-GroupMember - -Use this commandlet to remove one or more members from a group membership. - -GroupID maintains a history for this commandlet, which you can view in GroupID portal, against the -**History** node in the left panel. - -## Syntax - -``` -Remove-GroupMember --GroupIdentity --Identity -[-Type ] -[-StartDate ] -[-EndDate ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameters - -- GroupIdentity -- Identity - -Example: - -The following command removes the user Brian Regan from the membership of the group Event Management -using the credentials set in the $Credentials environment variable. See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in an environment variable. - -``` -Remove-GroupMember -GroupIdentity "CN=Event Management,OU=Local Recruiting,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -Identity "Brian Regan" -Credential $Cred -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Membership Commands](/docs/directorymanager/11.0/managementshell/membership/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/membership/setobject.md b/docs/directorymanager/11.0/managementshell/membership/setobject.md deleted file mode 100644 index 5a0888e589..0000000000 --- a/docs/directorymanager/11.0/managementshell/membership/setobject.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: "Set-Object" -description: "Set-Object" -sidebar_position: 50 ---- - -# Set-Object - -The **Set-Object** commandlet modifies any object such as a user, contact, group (managed or -unmanaged), or mailbox in Directory. - -## Syntax - -``` -Set-Object --Identity -[-Department ] -[-Company ] -[-Assistant ] -[-HomePage ] -[-Alias ] -[-EmailAddress ] -[-Description ] -[-Notes ] -[-AdministrativeNotes ] -[-DisplayName ] -[-SimpleDisplayName ] -[-CustomAttribute1 ] -[-CustomAttribute2 ] -[-CustomAttribute3 ] -[-CustomAttribute4 ] -[-CustomAttribute5 ] -[-CustomAttribute6 ] -[-CustomAttribute7 ] -[-CustomAttribute8 ] -[-CustomAttribute9 ] -[-CustomAttribute10 ] -[-CustomAttribute11 ] -[-CustomAttribute12 ] -[-CustomAttribute13 ] -[-CustomAttribute14 ] -[-CustomAttribute15 ] -[-Delimiter ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- Identity - -Example 1: - -The following example modifies description of a user specified user against the Identity parameter. - -``` -Set-object -identity "Sonia Iqbal" -Description TestUser -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Membership Commands](/docs/directorymanager/11.0/managementshell/membership/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/overview.md b/docs/directorymanager/11.0/managementshell/overview.md deleted file mode 100644 index 3f48d38e3b..0000000000 --- a/docs/directorymanager/11.0/managementshell/overview.md +++ /dev/null @@ -1,160 +0,0 @@ ---- -title: "GroupID Management Shell" -description: "GroupID Management Shell" -sidebar_position: 100 ---- - -# GroupID Management Shell - -GroupID Management Shell is a command-line interface for managing objects like users, contacts, -mailboxes, groups, smart groups, dynasties and for performing other administrative tasks in an -Active Directory and Microsoft Entra ID based identity stores. - -Built with PowerShell Core technology, GroupID Management Shell provides a platform to perform many -of the tasks you can perform with GroupID as well as tasks that the console does not support. - -This documentation is a reference for the GroupID PowerShell commands. It provides detail on their -function, syntax, parameters, and gives ready-to-use examples that you can modify and test in your -own environment. - -The documentation is intended for advanced users familiar with the use of the Windows Command prompt -and PowerShell Core. - -## Identity Store-based Model - -GroupID 11.0 has extensible identity store based model. It supports the following data stores for -creating an identity store: - -- Active Directory -- Microsoft Entra ID -- Generic LDAP -- Google Workspace - -NOTE: The commandlets covered in this section are for Active Directory and Microsoft Entra ID based -identity stores. - -## Access GroupID Management Shell - -Before using GroupID Management Shell, you must connect it to an identity store. - -To access Management Shell: - -1. On the Windows Start menu, search for **GroupID Management Shell 11.0**. Click it to launch - GroupID Management Shell 11.0. -2. On the Netwrix GroupID Authenticate page, select an identity store to connect to. - - ![Login page](/images/directorymanager/11.0/managementshell/login.webp) - - NOTE: If your required identity store is not listed, contact the GroupID administrator. - -3. In the **Username** and **Password** boxes, provide the user name and password of your identity - store account and click **Sign In**. - - ![Login page](/images/directorymanager/11.0/managementshell/login-2.webp) - - NOTE: Click the **Edit** icon if you want to select another identity store to connect to. - - The Management Shell window appears as follows: - - ![GroupID Management Shell 11.0](/images/directorymanager/11.0/managementshell/shell.webp) - - It displays information about the connected identity store. - -You can now run GroupID Management Shell commandlets. - -## Connect GroupID Management Shell Remotely - -To enable remoting on a GroupID machine, the remote machine must have one of the following Operating -Systems: - -- Windows Server 2016 or 2019 or 2022 -- Windows Server Nano (1809 or higher) -- Windows 11 -- Windows 10 1607+ - -Windows network location of that machine must be Domain or Private ("Home" or "Work"). If the -network location is Public, GroupID Management Shell cannot create the required firewall exception -for WS-Management Communication. - -The Windows Management Shell remoting features are supported by the WS-Management protocol and the -Windows Remote Management (WinRM) service that implements WS-Management in Windows. - -Also make sure the following is available at the remote machine: - -- Windows Powershell 7.3.6 -- Windows Remote Management 2.0 - -To enable remoting on a GroupID machine: - -1. Click **Start > Windows Powershell**. - - Right-click Windows PowerShell and select **Run as administrator**. - -2. At the command prompt, type: - - ``` - enable-psremoting - ``` - - ![powershellwindow](/images/directorymanager/11.0/managementshell/powershellwindow.webp) - -NOTE: By default, on Windows Server 2016, Windows PowerShell remoting is enabled. Use this command -to re-enable remoting on Windows Server 2016 if it becomes disabled. - -You have to run this command only one time on each computer that will receive commands. You do not -have to run it on computers that only send commands. Because the configuration starts listeners, it -is prudent to run it only where it is needed. - -To verify that remoting is configured correctly, run a test command: - -``` -new-PSSession –ComputerName -``` - -This command creates a remote session on the local computer and returns an object that represents -the session. The output should look as shown in the following snapshot: - -![Management Shell Remote session](/images/directorymanager/11.0/managementshell/pssessioncommand.webp) - -### Access GroupID Management Shell Remotely - -Log on to the machine through which you want to remotely access the **GroupID Management Shell** and -perform the following steps: - -1. Right-click **Start > PowerShell 7.3.6** using the **Run as Administrator** command to open it - with Administrator privileges. -2. At the prompt, type the following script. It will display the new session created for the remote - machine. - - ``` - $username = "domain\username" - $pass = ConvertTo-SecureString "user password" -AsPlainText -Force - $Cred = New-Object System.Management.Automation.PSCredential ($username, $pass) - $s = New-PSSession -ComputerName "machine name" -Credential $Cred -ConfigurationName PowerShell.7 - Invoke-Command -Session $s -ScriptBlock {$srcu = [reflection.assembly]::LoadFrom('C:\Program Files\PowerShell\7\System.Windows.Forms.dll'); $OnAssemblyResolve = [System.ResolveEventHandler] { param($sender, $e) if ($e.Name -like "System.Windows.Forms, Version=*") { return $srcu }return $null;};[System.AppDomain]::CurrentDomain.add_AssemblyResolve($OnAssemblyResolve);$reg=Get-ItemProperty -Path HKLM:SOFTWARE\Microsoft\PowerShell\1\PowerShellSnapIns\Imanami.Groups.Management.PowerShell.Admin11; $appbase=$reg.ApplicationBase;Import-Module -Name $appbase\directorymanagerManagementShell\bin\Imanami.directorymanager.Management.dll;Set-ModulePath -ModulePath $appbase\GroupIDManagementShell\bin} - Import-PSSession -Session $s -Type cmdlet -AllowClobber - Connect-IdentityStore -mode "2" -IdentityStoreID "identity store id" -Credential $Cred - ``` - - Following line of the above script connects the current user to the identity store (_having ID - 1_). - - ``` - Connect-IdentityStore -mode "2" -IdentityStoreID "1" -Credential $Cred - ``` - - Using the following instructions, you can get the identity store ID from GroupID SQL database in - which the desired identity store exists: - - 1. Login to SQL server (having GroupID database) with account having read permissions. - 2. View the table “Svc.Identitystore” top 100 rows. See the following snapshot for details: - - ![groupiddatabase](/images/directorymanager/11.0/managementshell/directorymanagerdatabase.webp) - -Once the script has run, a remote session will be created. You can now run all GroupID cmdlets -through PowerShell 7 without the need of signing into the GroupID server. - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/parameters.md b/docs/directorymanager/11.0/managementshell/parameters.md deleted file mode 100644 index d92a91d830..0000000000 --- a/docs/directorymanager/11.0/managementshell/parameters.md +++ /dev/null @@ -1,465 +0,0 @@ ---- -title: "Parameters" -description: "Parameters" -sidebar_position: 20 ---- - -# Parameters - -This topic discusses the following: - -- [All Parameters](#all-parameters) -- [Unsupported Parameters](#unsupported-parameters) - -## All Parameters - -The following table lists the GroupID Management Shell commandlet parameters in alphabetical order. -Click on alphabet letter to easily locate the parameter which starts with that letter. - -| Parameter Name | Description | -| ---------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| A B C D E F G H I J K L M N O P Q R S T U V W X Y Z | | -| **A** | | -| AcceptMessagesOnlyFrom | The distinguished names (DN), globally unique identifiers (GUID) or samAccountNames of the mailbox users and mail-enabled contacts who can send e-mail messages to the group. Providing a blank value enables the group to accept messages from all mailbox users and all mail-enabled contacts. (Applies to Distribution groups only). | -| AcceptMessagesOnlyFromGroups | The distinguished name (DN), globally unique identifier (GUID) or samAccountName of one or more groups or users that the group is allowed to accept messages from. Separate multiple objects with commas (,). (Applies to Distribution groups only.) | -| AccidentalDeletion | If the value is set as True, user will be prompted before container deletion. | -| Add | **Set-User, Set-contact, Set-Mailbox** Add will append the values of multi-value attributes and replace the value of single-value attributes. | -| | **Set-Group** This setting applies to the AdditionalOwners parameter and lets you add one or more additional owners for this group. The syntax in which the value is entered for this setting is: `-Add @{ AdditionalOwners = "Owner1","Owner2","Owner3"} -Add @{ AcceptMessagesOnlyFrom = "User1","User2","User3"} -Add @{ AcceptMessagesOnlyFromGroups = "Group1","Group2","Group3"} -Add @{ RejectMessagesFrom = "User1","User2","User3"} -Add @{ AcceptMessagesOnlyFrom = "Group1","Group2","Group3"}` As the value of objects to be added, the setting accepts all the identities supported by the AdditionalOwners parameter, which is the distinguished name (DN), globally unique identifier (GUID) or samAccountName of the user, contact, or security group. | -| | **Set-SmartGroup, Convert-Group, Set-Dynasty** This setting applies to the following multi-valued parameters and lets you add one or more values to these parameters. Parameters and the syntax for their values follows: | -| | Parameter | -| | **SearchContainers** (StartPaths can be used as an alternative name of this parameter for this setting) | -| | **IncludeRecipients** (Includes can be used as an alternative name of this parameter for this setting) | -| | **ExcludeRecipients** (Excludes can be used as an alternative name of this parameter for this setting) | -| | **AdditionalOwners** | -| _Only Set-Dynasty has this attribute._ | **GroupBy** | -| | **AcceptMessagesOnlyFrom** (AuthOrig can be used as an alternative name of this parameter for this setting) | -| | **AcceptMessagesOnlyFromGroups** (DLMemSubmitPerms can be used as an alternative name of this parameter for this setting) | -| | **RejectMessagesFrom** (UnauthOrig can be used as an alternative name of this parameter for this setting) | -| | **RejectMessagesFromGroup** (DLMemRejectPerms can be used as an alternative name of this parameter for this setting) | -| | The setting accepts all the identities supported by the parameter as the value of objects for each parameter. For example, for the SearchContainer parameter, the setting can accept the DN and GUID of the domains or containers being searched for group members. | -| AdditionalOwners | The distinguished name (DN), globally unique identifier (GUID), or samAccountName of one or more users, contacts, or groups (security groups only) to set as the additional owners for the group. Passing a blank value for this parameter will remove additional owners. | -| Address | Home address of a user, contact or mailbox. | -| AdministrativeNotes | Any information about the group that is useful for its maintenance or administration. It appears on the Exchange Advanced tab of Group Properties dialog box. | -| AdminUserName | The admin username for the Google based providers and messaging systems. This parameter becomes available depending on the value of other parameters - _IdentityStoreType_ and _Provider_. | -| Alias | Alias of user, group or mailbox. The alias parameter can be a combination of characters separated by a period without any spaces. Avoid using special characters in the alias. The Exchange alias is limited to 64 characters, must be unique and should not contain spaces. | -| AliasTemplate | Specifies the pattern for creating alias names for Dynasty children. For a Managerial Dynasty, the template must contain the %MANAGER% keyword in the input string. This keyword is replaced with the respective manager. For all other Dynasties, the value must contain the %GROUPBY% keyword in the input string for replacement with the respective GroupBy value. | -| All | Perform action on all types of entities. | -| AppId | Used to provide Microsoft Entra ID application ID for Microsoft Entra ID / Office 365 based identity stores and messaging systems. Note that this parameter appears depending on the values of other parameters. Application ID which is generated by Microsoft Entra ID when the application is registered in Microsoft Entra ID. This parameter becomes available depending on the value of other parameters - IdentityStoreType and Provider. | -| Assistant | It will be a DN or (GUID) of another user or contact. | -| AttributesToLoad | Provide list of attributes which should be loaded with objects. In the absence of the list, object will be loaded with minimal attributes. | -| AuthenticationMode | Following are the possible values for this parameter: - 1 (credentials of the logged-in users) - 2 (works in conjunction with IdentityStoreID and Credentials parameters). - 3 (user is authenticated through the Log in dialog box which is also the default mechanism if no authentication mode is defined by user). | -| AuthenticationType | Supported authentication types in GroupID which are: - Security questions - Email - SMS - Yubikey - Windows Hello - Authenticator - Link account | -| AuthenticationTypeOperation | Enables or disables the specified authentication type(s). | -| **B** | | -| Business | First business phone number of a user, contact or mailbox. | -| Business2 | Second business phone number of a user, contact or mailbox. | -| BypassOwnersPolicy | This parameter bypasses the values set in GroupID configurations both for primary owner and required minimum additional owners at group creation or modification. If the value is 0 (zero) then this parameter has no affect. | -| **C** | | -| CarbonCopy | Email address for carbon copy (CC) of notification to be sent other than the main email addresses. | -| ChangeTrackerActions | The list of GroupID actions to track for history records. The possible values are: - None - AdditionalOwnerChange - Enrollment - ExpirationPolicyChange - GroupExpire_Renew - OobChange - SecurityTypeChange - WorkflowApprovalDenial - OwnershipChange - QueryChange - AllOthers - All - UpgradeSmartGroupChange To track multiple actions, separate each action with a hash (#) sign and set the complete string as a value of this setting. For example, to track changes in additional owners, enrollment details and security types, specify the value as "AdditionalOwnerChange#Enrollment#SecurityTypeChange". | -| ChildContainer | The distinguished name (DN) or globally unique identifier (GUID) of the container where you want to create the child groups. If you have selected multiple group-by attributes, you can specify a different child container for every attribute in the same sequence as the group-by attributes are specified, separating each with a comma (,). For Managerial Dynasty, passing a blank value creates child groups in the container where the top manager resides. | -| City | The city of a user, contact or mailbox. | -| Clear | **Set-User, Set-Contact, Set-Mailbox** It will clear the values of multi-value and single-value attributes. | -| | Set-Group This setting applies to the AdditionalOwners parameter and lets you clear the additional owners list. The syntax for entering the value for this setting is: ` -Clear @{ AdditionalOwners} -Clear @{ AcceptMessagesOnlyFrom } -Clear @{ AcceptMessagesOnlyFromGroups } -Clear @{ RejectMessagesFrom } -Clear @{ AcceptMessagesOnlyFrom }` | -| | **Set-SmartGroup, Convert-Group, Set-Dynasty** This setting works for the following multi-valued parameters and lets you clear all their existing values. Parameters and the syntax for their values follows: | -| | Parameters | -| | SearchContainers (StartPaths can be used as an alternative name of this parameter for this setting) | -| | IncludeRecipients (Includes can be used as an alternative name of this parameter for this setting) | -| | ExcludeRecipients (Excludes can be used as an alternative name of this parameter for this setting) | -| | AdditionalOwners | -| Only Set-Dynasty has this attribute | GroupBy | -| | AcceptMessagesOnlyFrom (AuthOrig can be used as an alternative name of this parameter for this setting) | -| | AcceptMessagesOnlyFromGroups (DLMemSubmitPerms can be used as an alternative name of this parameter for this setting) | -| | RejectMessagesFrom (UnauthOrig can be used as an alternative name of this parameter for this setting) | -| | RejectMessagesFromGroup (DLMemRejectPerms can be used as an alternative name of this parameter for this setting) | -| | As the value of objects for each parameter, the setting accepts all of the identities supported by the parameter. For example, for SearchContainer parameter, the setting can accept the distinguished name (DN) and globally unique identifier (GUID) of the domains or containers to be searched for the group members. | -| ClearSet | Clears the specified notification recipients set. Possible values are: - All - Recipients - PasswordExpiry (Password Expiry group notifications) - ML (Membership life cycle notifications) - MB (Managed by life cycle notifications) | -| ClientName | Name of GroupID client such as Automate, Management Shell, GroupID Mobile Service, each Self-Service portal, each Password Center portal. | -| Company | The company of user, contact or mailbox. | -| ConfiguredExchange | Specifies the messaging system that GroupID uses for creating the e-mail addresses of mail-enabled objects. The default value 1 uses the latest version of Exchange installed if GroupID is connected to a domain with multiple versions of Exchange. You can change the system to any of the following values: - 2013 (for Exchange 2013) - 2016 (for Exchange 2016) - 2019 (for Exchange 2019) - 0 (for AD-only domain) - 2 (other messaging system) | -| Connected | Used to request connected identity store to the current instance of GroupID Management Shell. | -| Container | The distinguished name (DN) or globally unique identifier (GUID) of one or more containers where you want to search for a user, contact or group. Separate multiple values with commas. | -| Country | Country of a user, contact or mailbox, represented as the 2-character country code based on ISO-3166. | -| CreateFlatManagerialList | Setting a True value creates this dynasty as flat managerial list. A flat managerial list is a form of managerial dynasty in which all direct reports of the top manager and sub-level managers are added as members of one group and no separate groups are created for the sub-ordinates of the top manager's direct reports. If this setting is set to True, the flat operation is performed on the next update of the dynasty where it breaks its current hierarchy and re-builds the memberships of the parent group on the flat dynasty logic. (Applies to Managerial Dynasty) | -| CriteriaFilters | Same as RoleCriteriaFilters | -| CriteriaScope | Same as RoleCriteriaScope | -| Credential | The $Credentials environment variable holds the user's authentication information. Use this variable to execute the commandlet using the credentials of a user account other than the one you are logged on to the connected identity store. | -| CustomAttribute1-15 | A value for an attribute that you determine. Use these attributes—up to 15—to store additional information specific to your needs. | -| **D** | | -| Database | SQL database name of previous GroupID version. | -| DataSourceConnection | Set or modify connection string of an external data source in Query Designer of a Smart Group or Dynasty. | -| DataSourceName | The name of the database that contains the table or view you want to use for your query. This parameter is applicable on the following data source types: - Microsoft SQL Driver - Oracle | -| DataSourcePassword | The password for the specified user account to use for connecting to the specified data source. | -| DataSourceQuery | Specifies the database query to execute to retrieve results from the data source. This can be a query statement and can include multiple columns separated by commas (,). The field names are enclosed in brackets ([ ]) to prevent any ambiguity that the query engine might encounter because of spaces between column names. GroupID Management Shell also needs to know how the information in the source relates to the directory so it can find the recipients identified in the data source in the directory and add them to the group. This relation is defined through the LdapFilter parameter. If no match is found, the data source entry will be skipped. | -| DataSourceType | Use this parameter to combine an external data source with Active Directory to determine the group membership. When a connection is configured, GroupID Management Shell connects to the database and retrieves results. It then queries Active Directory to find matching records. The parameter can also be used to connect to external directories. Specify any of the following external data source types: - Text Driver - ODBC Data Source - Sun ONE iPlanet Driver - Lotus Notes - Microsoft SQL Driver - Oracle | -| DataSourceUserName | The username of the account to use for connecting to the specified data source. | -| DaysInterval | Specified the daily interval for daily triggers. | -| DefaultAllowPermissions | By default, all permissions except those specified in RolePermissions are denied. The application of this parameter overrides the default behavior and causes all of the permissions except those specified in RolePermissionNames to be granted. | -| DefaultApprover | Specifies the default approver for an identity store. | -| DefaultExpirationPolicy | The default expiry days to set for new groups at creation, which can later be changed for groups individually using the Set-SmartGroup commandlet. The default value 0 implies that the groups will never expire. | -| DefaultGroupApprover | The distinguished name (DN), globally unique identifier (GUID) or samAccountName of the default approver to whom notifications will be sent for groups having no owners. | -| DefaultGroupDeletionTimeAfterExpiry | The number of days after which an expired group should be deleted. The default value is 30. This parameter only applied if the value of the DeleteExpiredGroups parameter has been set to True. | -| DefaultMaximumNumberOfMembers | The maximum number of members a group can have. | -| DefaultMaximumNumberOfMembersToDisplay | The maximum number of items to display in the Automate groups list. The default limit is set to 1000. | -| DefaultNumberOfOwnersToDisplay | The number of most recently used recipients (set as group owners) to show on the shortcut menu when setting the owner for multiple groups. The default value is 5. | -| DefaultReportToMessageOrginator | Setting its value to True sends non-delivery reports (NDR) to the message originator (sender). By default, it is set to False. | -| DefaultReportToOwner | Setting its value to True sends non-delivery reports (NDR) to the group owner. By default, the value is set to False. | -| DefaultRequestDeletionTime | Workflow requests older than the number of days given in this parameter will be deleted by the CleanupApprovedRequests, CleanupDeniedRequests and CleanupPendingRequests settings. The default value of this setting is 30. NOTE: This setting applies only if the DeleteRequests setting is set to True. | -| DefaultStartWithGlobalCatalogInQueryDesigner | Its default value True sets the Global Catalog as the default scope for searches on the Query Designer. Changing its value to False searches the logged-on domain only. | -| DefaultUnusedGroupsExpirationTime | This setting is related to the group usage lifecycle and applies only if the GroupUsageLifecycleEnabled and ExpireUnusedGroups settings are set to True. Its value is the unused period (in number of days) of the lifecycle period for a mail-enabled distribution group after which its life is reduced to 7 days. The default value of this setting is 60 days. | -| DeletedObjects | It is a switch, if present then delete object replication will be started. | -| DeleteEmpty | Setting its value to True forces Automate to delete Dynasty children when they are empty or when their parents are deleted. The default value is False. | -| DeleteExpiredGroups | The default value True enables the automatic deletion of expired groups according to the number of days specified in the DefaultDeletionTimeAfterExpiry parameter. | -| DeleteNestedOrphanGroups | This parameter deletes nested orphan groups according to the following rules: - If the maximum membership value is reached and the Do not update option is selected, then the parameter has no effect. - If the maximum membership value is reached and the Nest into child groups option is selected, then, upon membership update, more nested child groups are created and orphan nested groups are deleted. - If the maximum membership value is increased then upon the group's membership update, members from the nested child groups are moved into the parent group and the nested groups are orphaned. This parameter deletes the nested groups. | -| DeleteRequests | The default value True enables the removal of older workflow requests, a feature that removes those approved, pending, and denied workflow requests that are older than the number of days specified in the DefaultRequestDeletionTime setting. | -| Department | The department of a user, contact or mailbox. | -| Description | Used to provide description of an entity while: - creating a new group (managed or unmanaged) or dynasty. - modifying a user, contact, group (managed or unmanaged) or dynasty. - converting a static group to a smart group. | -| DestinationContainer | The distinguished name (DN) or globally unique identifier (GUID) of the container that you want to move the group to. The destination container must be part of the same forest. | -| DirectReports | Provide any of the following identity for the direct report: - Distinguished name (DN) - Globally unique identifier (GUID) - Comman-name (Cn) - Name - SamAccountName | -| DisableAttributeUpdation | Specifies that attribute updation should not occur when Profile Validation cycle of a user is expired. | -| Disabled | In some commandlet this parameter is used to retrieve disabled entities such as disabled schedules or identity stores and in some it disables an entity. | -| DisableExpiredGroupDeletion | Disables the deletion of the expired groups. | -| DisableGroupAttestation | Disables the group attestation at identity store level. | -| DisableGUSLifecycle | Disables the group usage life cycle of groups at identity store level. | -| DisableNewProfileValidationLifecycle | Disables the profile validation of new profiles. | -| DisableOrphanGroupDeletion | Disables deletion of orphan groups when, upon membership update, they become orphan. | -| DisableOutOfBoundsAlerts | Disables generation of out of bound alerts to group owners upon membership threshold and does not update the membership. | -| DisableSecurityGroupsExpiry | Disables expiration of the security groups. | -| DisableSWAuthenticationViaEmail | Disables second way authentication via email. | -| DisableSWAuthenticationViaMobile | Disables second way authentication via mobile. | -| DisableSWAuthenticationViaSecurityQuestions | Disables second way authentication via security questions. | -| DisableValidationDateRemoval | Causes the validation date not to be cleared after the profile validation has been expired. | -| DisallowingPasswordExceptionFilePath | Specifies the path to a file containing a list of strings that cannot be set as password. | -| DisplayName | Display name while - creating a user, contact, group (managed & unmanaged), dynasty or mailbox. - modifying a user, contact, group (managed & unmanaged), dynasty or mailbox. - converting a static group to a smart group. - retrieving a tombstone object. | -| DisplayNameTemplate | Specifies the pattern for generating display names for Dynasty children. For the Managerial Dynasty, the template must contain the %MANAGER% keyword in the input string. This keyword is replaced with the respective manager. For all other Dynasties, the value must contain the %GROUPBY% keyword in input string for replacement with the respective GroupBy value. | -| DistinguishedName | Distinguished name of an object in directory. | -| Domain | Domain name of the provider mentioned in a commandlet. The domain name can be of an Active Directory domain, Microsoft Entra ID domain or messaging provider’s domain. This parameter becomes available depending on the value of other parameters. | -| DomainExpiration | (Applies to Password Expiry group.) The domain expiration policy for the group. This policy allows you to specify maximum password age. The default value is 42 days. | -| DynastyManagerAsMember | Set its value to True to add the manager of direct reports to the membership of the direct reports group so that the manager receives a copy of any e-mail sent to the group. The default value is False. | -| **E** | | -| EmailAddress | A valid email address of a user, contact, mailbox or group (if mail-enabled) | -| EmailProviderDomain | This setting applies if the ConfiguredExchange setting is set to 2. Its value is the domain name of the external e-mail provider. For example, googlegroups.com. | -| EmailTemplatePath | Location of the email template that will be used while sending an email notification to a user or group. | -| EnableAttributeUpdation | Enables attribute update when a user is expired in Profile Validation cycle. It sets the given string as the attribute’s value for the user. | -| Enabled | In some commandlet this parameter is used to retrieve enabled entities such as enabled schedules or identity stores and in some it enables an entity. | -| EnableExpiredGroupsDeletion | Enables the deletion of expired groups. | -| EnableGroupAttestation | Enables the group attestation i.e. to review and validate the attributes and membership of an expiring group before renewing it. | -| EnableGUSLiefecycle | Enable group usage life cycle i.e. set the expiry of mail-enabled distribution groups based on their usage. | -| EnableNewProfileValidationLifecycle | Enables profile validation for newly found user objects (by way of newly created objects or by way of disabled object enabled again) in the directory. | -| EnableNotifications | Enables notifications in a schedule. | -| EnableOrphanGroupDeletion | Enables deletion of orphan groups when, upon membership update, they become orphan. | -| EnableOutOfBoundsAlerts | Enables generation of out of bound alerts to group owners upon membership threshold and does not update the membership. | -| EnableSecurityGroupsExpiry | Enables expiry of security groups. | -| EnableSWAuthenticationViaEmail | Enables second way authentication via email. | -| EnableSWAuthenticationViaMobile | Enables second way authentication via mobile. | -| EnableSWAuthenticationViaSecurityQuestions | Enables second way authentication via security questions. | -| EnableUpdate | Specify False to disable the group update and scheduled job process. Default value is True. | -| EnableValidationDateRemoval | Clears the validation date if X number of days have passed since the last validation date. In case of a rehire scenario, the object will be treated as a newly created object and the validation process for new users will apply to it. | -| EndDate | Date on which membership will end or restore. Or Date on which membership will end/restore, or a schedule will end. | -| EnforceOutOfBounds | Enables / Disables enrollment on an identity store. | -| EnrollmentType | Possible values are: - None - Mobile - SecurityQuestions - Email - Authenticator - LinkAccount - Yubikey - WindowsHello - All - Any | -| ExcludeNestedLists | Setting a True value excludes child Dynasties from the membership of the parent Dynasty. The default structure of Managerial Dynasty adds the Smart Group of sub-level manager in the membership list of the top-level manager’s Smart Groups. (Applies to Managerial Dynasty) | -| ExcludeOUs | The default value True excludes from exploration the organizational units specified in the IncludeExcludeOUs parameter. Setting its value to False applies the expiration only on the organizational units specified in the IncludeExcludeOUs parameter and excludes the rest. | -| ExcludeRecipients | The distinguished name (DN), globally unique identifier (GUID) or samAccountName of one or more objects that you want to exclude statically from the group membership regardless of whether they are returned by the query. | -| ExpansionServer | The name of the Expansion server. The Expansion server is the Exchange server responsible for expanding a distribution list and creating a message for each of the members. | -| ExpirationPolicy | Set the expiration policy for the group. This parameter does not work for Dynasty children since they inherit the expiration policy of their parent Dynasty and you cannot change it explicitly at child level. | -| ExpirationRange | The expiration range policy for the group. This policy defines when GroupID Management Shell will include a user in the membership of the Password Expiry group. For example, a domain expiration policy is configured with a maximum password age of 30 days. Setting the expiration range policy to 10 will include users in the membership of the Password Expiry group who have passwords aged 20 days or older. (Applies to Password Expiry group) | -| ExpiredGroupsDeletionInterval | Number of days since groups expiry after which the groups shall be deleted. | -| ExpireUnusedGroups | This setting is related to the group usage lifecycle and applies only if GroupUsageLifecycleEnabled is set to True. The value True reduces the life of mail-enabled distribution groups that have not been sent any e-mail for a particular period. This unused period is defined in the DefaultUnusedGroupsExpirationTime setting. Under its default value False, the life of unused groups is always extended as soon as they reach their expiration date. | -| ExtendGroupLife | Extend the life of the group as per the ExpirationPolicy parameter's value. The default value of this parameter is True, so specifying a value is not required. | -| ExtensionDataAttributes | By default, ExtensionDataAttribute attribute is used for storing the value. In case it has been modified then this parameter must specify the attribute being used for storing the value. | -| **F** | | -| FileLoggingEvent | Set the event for which file logs are generated. | -| FilePath | The path of the text file, if the value of the DataSourceType parameter is Microsoft Text Driver. | -| FilterOperation | Operation to perform on role criteria filters | -| Filters | Specifies how the values of group-by attributes are stripped out for creating the child groups. This parameter allows you to collapse several different values into one. Use any of the following as a value of this parameter: - `` - Do not use any filter and create a group for each distinct value of the attribute. - Left `` - Selects the specified number of characters from the attribute starting from the left-end of the string. Each distinct set of selected characters from the group-by attribute is then used to create a group. - Right `` - Selects the specified number of characters from the attribute starting from the right-end of the string. Each distinct set of selected characters from the group-by attribute is then used to create a group. - %GROUPBY%/`` - Use this filter when you have a character separator. Specifying this filter creates a group for each distinct value of the portion of the attribute selected. %GROUPBY% represents the significant portion of the value. After the slash, you can specify the portion you want to leave out of the attribute's value. Specifying \* after the slash leaves out any portion of the value that occurs after the slash. For multiple group-by attributes, provide a filter values for each attribute separated by a comma (,). | -| FirstName | The first name of a user, contact or mailbox. | -| FromEmail | Email address that SMTP uses to send emails from. | -| FromEmailAddress | The e-mail address to use for sending notifications | -| **G** | | -| GenerateOnedayToExpiryReport | The default value True notifies the group owner of its expiry one day before the expiration date. Set its value to False to disable this notification. | -| GenerateSevenDaysToExpiryReport | The default value True notifies the group owner of its expiry seven days before the expiration date. Set its value to False to disable this notification. | -| GenerateThirtyDaysToExpiryReport | The default value True notifies the group owner of its expiry thirty days before the expiration date. Set its value to False to disable this notification. | -| GroupAlias | Alias for the new group, distribution group or dynasty. The alias can be a combination of characters separated by a period without any spaces. Avoid using special characters in the alias. The Exchange alias is limited to 64 characters, must be unique and should not contain spaces. | -| GroupBy | Name of the group-by attribute. Separate multiple attributes with commas (,). This parameter is required for all Dynasties except the Managerial Dynasty. | -| GroupIdentity | The distinguished name (DN), globally unique identifier (GUID), security identifier (SID), canonical name (CN) or SamAccountName of the group to add members to. | -| GroupIDVersion | Previous GroupID version to upgrade from. This parameter accepts integer values e.g. 7.0, 8.0 and 9.0. - 9.0 = GroupID 9.0 - 10.0 = GroupID 10.0 | -| GroupLifeDays | Specifies the number of days to extend / reduce (depending on the configured extension policy) if the group has not been used this number of days. | -| GroupNamePrefixes | One or more prefixes configured in GroupID configurations. They are prefixed with the group name and display name when you create a new group or modify an old group using the Properties option. | -| GroupScope | Specify the scope for the group or dynasty. The available group scopes are: Universal, Global, and Domain Local. | -| GroupType | Specify the group types for upgrade: 1 = Non-managed groups 2 = Smart Groups 3 = Parent Dynasty 4 = Middle Dynasty 5 = Leaf Dynasty 6 = Password Expiry Smart Group NOTE: When a specific dynasty is upgraded it is recommended to upgrade the whole dynasty using the SearchContainer parameter and update it after running the Upgrade-Group command (provided that the whole Dynasty is in the same container). If a specific parent or middle or leaf Dynasty is upgraded using the Upgrade-Group command, update will be required to link it with the Dynasty chain (provided that all the Dynasties are upgraded to GroupID 8.1). | -| GroupUsageLifecycleEnabled | Set its value to True to enable the group usage lifecycle feature. This lifecycle is executed by Group Management Service (GMS) for mail-enabled distribution groups and adds an additional rule to their regular expiration process. Under this lifecycle, if no e-mail is sent to a mail-enabled distribution group for a particular period, you can set GMS to reduce its expiration date to 7 days. Under its default behavior, unused distributions groups are never expired. As soon as, they reach their expiration date, their life is extended by reapplying the expiration policy on them. | -| **H** | | -| HavingNotifications | Used to select those schedules having notifications enabled. Used only in Get-Schedule | -| HiddenFromAddressListEnabled | Specifying a True value prevents the group from appearing in Exchange address lists. The default value is False. | -| HideMembership | Setting its value to True hides group membership in the Outlook address book. The default value is False. | -| HideMembershipFromAddressListEnabled | A True value prevents the group membership from appearing in the Outlook address book. The default value is False. | -| HistoryActionsOperation | The operation on actions that the history will keep track of. Possible values are: - Add - Remove - Remove all | -| HistoryRetention | Specifies the interval for which the history is tracked. Possible values are: - All - Last_30_Days - Last_60_Days - Last_90_Days - Last_120_Days - Last_6_Months - Last_1_Year - Last_2_Years - Last_5_Years | -| HistorySelectedActions | The actions that the history will keep track of. Possible values are: - OwnershipChange - AdditionalOwnerChange - ExpirationPolicyChange - GroupExpireRenew - QueryChange - SecurityTypeChange - ObjectCreated - ObjectDeleted - IdentityStoreHistory - SecurityRolesHistory - WorkflowsHist | -| HistoryTrackingOption | Specifies what the history will keep track of. Possible values are: - Nothing - All_Actions - Selected_Actions | -| Home | First home phone number of a user, contact or mailbox. | -| Home2 | Second home phone number of a user, contact or mailbox. | -| HomePage | The link of a user, contact, group or mailbox’s profile or home page. | -| **I** | | -| Identity | Supported identities are: - Distinguished name (DN) - Globally unique identifier (GUID) - Comman-name (Cn) - Name - SamAccountName | -| IdentityStoreId | Unique identifier of identity store. | -| IdentityStoreName | Name of an identity store. | -| IdentityStoreType | Specify the type of an identity store. Possible types are: - ActiveDirectory - Microsoft Entra ID - Google Workspace - Generic LDAP | -| IgnoreConnectionFail | While creating an identity store, an active service account and valid credentials are required for connecting to an identity store. This parameter overrides this behavior and creates the identity store even if the connection is not active or the credentials are invalid. | -| IncludeAllContainers | Applies when JobType is set to GUS. This parameter includes all containers in the schedule. | -| IncludeAllMessagingSystems | Applies when JobType is set to GUS. This parameter includes all messaging systems in the schedule. | -| IncludeDisabledUsers | (Applies to Password Expiry group.) Specifying this parameter includes disabled users in the group membership. | -| IncludeEntityTypes | Used only in Get-RolePermissionNames. This parameter retrieves the permission categories alongwith the permission name. | -| IncludeExcludeOUs | The distinguished name (DN) or globally unique identifier (GUID) of one or more organizational units to include in or exclude from expiration. The behavior of this setting depends on the value set for ExcludeOUs parameter. | -| IncludeManagerAsMember | Setting a True value includes each manager as a member of their direct reports group; so that, whenever an e-mail is sent to the direct reports group, their manager also receives a copy of it. (Applies to Managerial Dynasty only) NOTE: If this setting is set to True, the manager will be included to the membership of direct reports on the next update of the dynasty. | -| IncludePasswordNeverExpireUsers | Specifying this parameter includes users whose password never expires in the group membership. Skipping this parameter excludes them from the group membership. (Applies to Password Expiry group) | -| IncludeRecipients | The distinguished name (DN), globally unique identifier (GUID) or samAccountName of one or more objects that you want to include statically in the group membership regardless of whether they are returned by the query. | -| InheritanceBehavior | Specifies whether Dynasty children should inherit attributes from their parent. The attributes that Dynasty children inherit are stored in the InheritedAttrs option, which can be viewed using the Get-Options commandlet. Values are: - 0 (Inherit selected attributes only on creation) - 1 (Always inherit selected attributes) - 3 (Never inherit selected attributes) | -| InheritedAttrs | One or more attributes of the parent Dynasty whose values you want its children to inherit at creation or when it is updated. | -| Initials | The initials of a user, contact or mailbox. | -| InlineImageFile | The path of the image file that you want to include in the e-mail notification. This image is included in the e-mail body; it is not sent as an attachment. | -| IsExpired | A True value of the parameter expires the group and a False value renews the group. This parameter does not work for Dynasty children since they expire with the parent. | -| IsPasswordExpiryGroup | Specifying this parameter creates a Password Expiry group. If skipped, a simple Smart Group will be created. | -| IsPasswordExpirySmartDL | Specifying this parameter is mandatory if you are updating a Password Expiry group. If this parameter is skipped, the group will be converted to a simple Smart Group. | -| IsPreciseSearch | If object types parameter is defined, IsPreciseSearch will force search results for those particular object types only. | -| IsSecurityGroupExpirationPluginEnabled | Set its value to True to enable the security group expiration feature. By default, it is set to False. | -| **J** | | -| JobType | Type of the schedule (e.g. SmartGroup, GUS etc.). This parameter is used in some cmdlets to retrieve the schedules by job type. In New-Schedule, it is used to set the type of schedule. | -| **K** | | -| KeepHistoryOption | Specifies the length of time to retain history records in the GroupID database. The default value 0 retains all history data of the actions specified by the ChangeTrackerActions setting. You can change it to any of the following values: - 1 (for 30 days) - 2 (for 60 days) - 3 (for 90 days) - 4 (for 120 days) - 5 (for 6 months) - 6 (for 1 year) - 7 (for 2 years) - 8 (for 5 years) The setting does not destroy the older history data. Rather, it exports the older data to an Excel file for later reference. This Excel file is created in the HistoryBin folder in the GroupID installation directory. Group Management Service performs the history data export. With every execution of the service, it checks the specified period against Keep History option for the domain and exports the older data to the Excel file (if found). | -| KeepUserHistory | It upgrades the history of the groups. | -| KeyMapAD | Specify the primary key for provider in external data source in Query Designer. | -| KeyMapDB | Specify the primary key for Database in external data source in Query Designer. | -| KillAtDurationEnd | The schedule job will be forced to terminate if it's still running at the end of its duration. | -| **L** | | -| LastName | The last name of user, contact or mailbox. | -| LdapFilter | The LDAP search filter that defines your search criteria. This parameter stores your query. A Smart Group can dynamically build its membership according to the query associated with it. Similar to Smart Group, a Dynasty has the capability to dynamically build its membership according to the query associated with it. | -| LDAPSearchContainer | The container for the Sun ONE iPlanet data source. | -| **M** | | -| MailEnabled | Specifies whether to create a mail-enabled user, contact or group (managed & unmanaged). Provide a True value for mail-enabled object, otherwise a non-mail-enabled object will be created. | -| MailBoxStore | Specifies which mailbox store will be used. | -| ManagedBy | The distinguished name (DN), globally unique identifier (GUID) or samAccountName of the user, contact or group (security groups only) that you want to set as the group owner or manager. Passing a blank value for this parameter will remove the manager. | -| Manager | Provide any of the following identity for the manager of the user: - Distinguished name (DN) - Globally unique identifier (GUID) - Comman-name (Cn) - Name - SamAccountName | -| MatchingCriteria | Used in Get-Schedule. Number of criteria (for example TriggerType and JobType) can be used to retrieve schedules, this parameter describes how to join the criteria by using Or and And. | -| MaximumMembersPerGroup | Specifies the maximum number of members that a group can hold. If this limit is reached, out-of-bounds configurations are applied to the group. | -| MaximumMembersToDisplay | The number of members to display for a group on the Members tab. | -| MaximumPasswordAge | The parameter has no effect on the group to be modified. | -| MaxItemsToDisplay | The maximum number of objects the commandlet should return. | -| MaxiumumAliasLength | This setting works if the ConfiguredExchange setting is set to 2. Its value is the maximum number of characters that an external e-mail alias can contain. The minimum value is 10. The default value is 64. | -| MaxSendSize | The maximum allowed e-mail message size in kilobytes (KB) that can be sent from the group. (Applies to Distribution groups only) | -| MembershipCountThreshold | Triggers an out-of-bound exception if the number for current or new membership exceeded than the specified number. | -| MembershipPercentageThreshold | Specifies that if out-of-bounds alerts are enabled, membership should stop if updation would cause this percentage of members change in the group and generate a notification to owners. | -| MessagingSystems | Applies when JobType is set to GUS. Use this parameter to specify the message systems for GUS job. This parameter and IncludeAllParameters cannot be applied both at the same time. | -| MinimumPasswordAge | The parameter has no effect on the group to be modified. | -| Mobile | Cell number of user, contact or mailbox. | -| MsExchCoManagedByLink (_ExchangeAdditionalOwners can also be used as an alternate name of this parameter)_ | The distinguished name (DN), globally unique identifier (GUID) or samAccountName of one or more users that you want to set as Exchange additional owners. This setting applies only if Exchange Server 2010 is deployed in your environment. | -| MsExchRequireAuthToSendTo | Set its value to True if you want senders to be authenticated for sending e-mails. | -| **N** | | -| Name | The name of the new organizational unit, group, query-based-distribution group or dynasty being created. **Get-ImanamoCommand** Gets information only about commandlets or command elements with the specified name. Wildcard search is also supported. | -| NewName | New name of an identity store or a schedule. | -| NewProfileValidationLifecycle | The number of days within which new users should validate their profiles. | -| Notes | Description text about a user, contact, group, or mailbox that appears on the General tab of their Properties dialog box. | -| NotificationSendingCriteria | When a notification for a scheduled job is to be sent. Possible values are: - Always - OnSuccess - OnFailure | -| NotifyAddedMembers | Notify objects when they are added to the membership of a group. | -| NotifyLoggedInUsers | Specify whether the logged in users should be notified for changes they make to directory objects using Automate, Self-Service portal, Management Shell, GroupID mobile app, and Password Center portal. This setting applies only to mail-enabled users. | -| NotifyModifiedObject | Specify whether to send email notification to an object (group, user, contact) being modified. For group, group members are notified. For contact and user, the particular contact or user is notified about the changes. | -| NotifyOptOutAdditionalOwners | Excludes some or all additional owners from receiving all expiry deletion and renewal notifications. | -| NotifyOwners | Specifies whether the to send notification emails to the primary and additional owners (for groups), and managers of users/contacts about changes made to the respective objects. | -| NotifyPublicGroupOwner | Specify whether to send email notifications to the primary and additional owners of a public group upon membership change. | -| NotifyUserGroupJoinMB | Specify whether to send email notification to users when they are added as additional owner or manager to the membership of a group. | -| NotifyUserGroupJoinML | Specify whether to send email notification to users when they are added in a group. | -| NotifyUserGroupLeaveMB | Specify whether to send email notification to users when they are removed as additional owner or manager of a group. | -| NotifyUserGroupLeaveML | Specify whether to send email notification to users when they are removed as member from a group. | -| Noun | Shows information about commandlets or command elements having the specified noun in their name. Wildcard search is also supported. | -| NumberofOwnersToDisplay | The maximum value that can be set for the DefaultNumberOfOwnersToDisplay parameter. 24 is the maximum. | -| **O** | | -| Office | Office phone number of a user, contact or mailbox. | -| Operator | Same as RoleCriteriaOperator | -| Options | The list of options to be retrieved from the registry. | -| OrganizationalUnit | The distinguished name (DN) or globally unique identifier (GUID) of the container where you want to create a user, contact, group or mailbox. | -| OutOfBoundsAlertEnabled | Set to True to enable out-of-bound exceptions when group memberships change. Out-of-bound exceptions prevent massive changes from occurring to group memberships. When an out-of-bounds exception occurs, the group membership is not updated and the owner or administrator is notified via e-mail. If the owner or administrator determines that the change is valid they can update the group manually. | -| OutOfBoundsMinimum | This setting works in conjunction with OutOfBoundsPercentage. If both the percentage and the current membership or new membership exceeds the number specified for this parameter, an out-of-bounds exception will occur. The setting applies only if the OutOfBoundsAlertEnabled parameter is set to True. | -| OutOfBoundsPercentage | The out of bound percentage that is calculated by adding the number of members being added to the group and the number of recipients being removed from the membership and then dividing the result by the total number of new members. This setting works in conjunction with OutOfBoundsMinimum. If both the percentage and the OutOfBoundsMinimum limit is exceeded, an out-of-bounds exception will occur. The setting applies only if the OutOfBoundsAlertEnabled parameter is set to True. | -| **P** | | -| P12CertificatePath | Specify the location of a P12 certificate file for a Google based identity store. Note that this parameter appears depending on the values of other parameters. | -| PageSize | The number of history records to show on a page on the History tab of the group Properties dialog box. | -| ParentContainer | The distinguished name (DN), globally unique identifier (GUID) or security identifier (SID) of the container where you want to create a new organizational unit. To create the container at root level, pass the DN of the domain as the value of the parameter. | -| Password | Password of SQL user name. | -| PasswordCenterSupportURL | The default URL of the online help for Password Center portals. This URL is set by default for all new portals created using Password Center. | -| PasswordExceptionOperation | The operation to perform on the values supplied in the PasswordExceptions parameter. | -| PasswordExceptions | Specifiy the password exceptions. This parameter accepts 2-Length arrays. First index contains the operator and the second index contains the value. Possible values for operator are: - Equals - Startswith - Endswith - Contains - Regexp Example: @('contains', 'webdir123R) is a valid value | -| PasswordPortalUrl | Specify the Password Portal Url. | -| PasswordRuleOperation | The action to perform on the values supplied in the PasswordRules parameter. | -| PasswordRules | Specify the regular expressions (rules) for passwords. | -| PermissionOperation | The operation to perform on the Permissions parameter. | -| Permissions | Same as RolePermissions | -| Port | Specify the port number for the specified data source. | -| PowerTools | Include respective power tools to execute script in Query Designer of Smart Group. | -| ProfileValidationGroupDN | Specify the distinguished name of a group to apply profile validation on. | -| ProfileValidationReminderOperation | Specify the operation to perform on the value of the ProfileValidationReminders parameter. | -| ProfileValidationReminders | Specify the profile validation reminders. Values are supplied as 2-length array. The first index contains the name of reminder and the second index contains the number of days the reminder is sent to the user relative to the days left for the profile validation period to end. Example: @'first', 15) indicates a reminder named first with 15 days | -| Provider | Specify a provider for messaging server. The supported providers are: - Office 365 - GSuite - Exchange 2013 - Exchange 2016 - Exchange 2019 | -| **Q** | | -| QuestionOperation | Specify the operation to perform on the SecurityQuestions parameter. | -| QueueEmail | Specifying this parameter sends the notification e-mail through Imanami Email Service. Imanami Email Service maintains a queue of all notifications to be sent by GroupID and ensures that they are delivered when the SMTP server is down. If this parameter is left out, the notification e-mail is sent directly without being added to the notification queue. Consequently, if the configured SMTP server is down, the e-mail is lost. Therefore, it is recommended that you use this parameter in every Send-Notification command. | -| **R** | | -| Recipients | Specify recipients for the job completion email notifications. | -| RegularProfileValidationLifecycle | Specify the number of days for the profile validation life cycle period. | -| RejectMessagesFrom | The distinguished names (DN), globally unique identifiers (GUID) or samAccountNames of the mailbox users and mail-enabled contacts who are not allowed to send e-mail messages to the group. (Applies to Distribution groups only) | -| RejectMessagesFromGroup | The distinguished name (DN), globally unique identifier (GUID) or samAccountName of one or more groups or users, the group is restricted to accept messages from. Separate multiple 0bjects with commas (,). (Applies to Distribution groups only.) | -| Remove | **Set-User, Set-Contact, Set-Mailbox** It will remove the values of specified attributes. | -| | **Set-Group** This setting applies to the AdditionalOwners parameter and lets you remove one or more additional owners for this group. The syntax in which the value is entered for this setting is: `-Remove @{ AdditionalOwners = "Owner1","Owner2","Owner3"} -Remove @{ AcceptMessagesOnlyFrom = "User1","User2","User3"} -Remove @{ AcceptMessagesOnlyFromGroups = "Group1","Group2","Group3"} -Remove @{ RejectMessagesFrom = "User1","User2","User3"} -Remove @{ AcceptMessagesOnlyFrom = "Group1","Group2","Group3"}` As the value of objects to be removed, the setting accepts all the identities supported by the AdditionalOwners parameter, which is the distinguished name (DN), globally unique identifier (GUID) or samAccountName of the user contact, or security group. | -| | **Set-SmartGroup, Convert-Group, Set-Dynasty** This setting applies to the following multi-valued parameters and lets you remove one or more values from these parameters. Parameters and the syntax for their values follows: | -| | **Parameter** | -| | **SearchContainers** (StartPaths can be used as an alternative name of this parameter for this setting) | -| | **IncludeRecipients** (Includes can be used as an alternative name of this parameter for this setting) | -| | **ExcludeRecipients** (Excludes can be used as an alternative name of this parameter for this setting) | -| | **AdditionalOwners** | -| Only Set-Dynasty has this attribute. | **GroupBy** | -| | AcceptMessagesOnlyFrom (AuthOrig can be used as an alternative name of this parameter for this setting) | -| | AcceptMessagesOnlyFromGroups (DLMemSubmitPerms can be used as an alternative name of this parameter for this setting) | -| | RejectMessagesFrom (UnauthOrig can be used as an alternative name of this parameter for this setting) | -| | RejectMessagesFromGroup (DLMemRejectPerms can be used as an alternative name of this parameter for this setting) | -| | The setting accepts all the identities supported by the parameter as the value of objects for each parameter. For example, for the SearchContainer parameter, the setting can accept the DN and GUID of the domains or containers being searched for group members. | -| Repeat | Repeats the trigger. | -| RepeatDuration | Applicable only when the Repeat parameter is applied. It specifies the duration in minutes during which the trigger will repeat. | -| RepeatInterval | Applicable only when the Repeat parameter is applied. It specifies the interval in minutes after which the trigger will start again. | -| Replace | **Set-User, Set-Contact, Set-Mailbox** It will replace the old value of attribute with newly specified value. | -| | - Set-Group This setting applies to the AdditionalOwners parameter and lets you entirely overwrite its existing values. The syntax in which the value is entered for this setting is: `-Replace @{ AdditionalOwners = "Owner4","Owner5"} -Replace @{ AcceptMessagesOnlyFrom = "User4","User5"} -Replace @{ AcceptMessagesOnlyFromGroups = "Group4","Group5"} -Replace @{ RejectMessagesFrom = "User4","User5"} -Replace @{ AcceptMessagesOnlyFrom = "Group4","Group5"}` As the value of replacing objects, the setting accepts all the identities supported by the AdditionalOwners parameter, which is the distinguished name (DN), globally unique identifier (GUID) or samAccountName of the user, contact, or security group. | -| | **Set-SmartGroup, Convert-Group, Set-Dynasty** This setting applies to the following multi-valued parameters and lets you entirely overwrite all of their existing values. Parameters and the syntax of their values follows: | -| | Parameter | -| | SearchContainers (StartPaths can be used as an alternative name of this parameter for this setting) | -| | IncludeRecipients (Includes can be used as an alternative name of this parameter for this setting) | -| | ExcludeRecipients (Excludes can be used as an alternative name of this parameter for this setting) | -| | AdditionalOwners | -| Only Set-Dynasty has this attribute. | GroupBy | -| | AcceptMessagesOnlyFrom (AuthOrig can be used as an alternative name of this parameter for this setting) | -| | AcceptMessagesOnlyFromGroups (DLMemSubmitPerms can be used as an alternative name of this parameter for this setting) | -| | RejectMessagesFrom (UnauthOrig can be used as an alternative name of this parameter for this setting) | -| | RejectMessagesFromGroup (DLMemRejectPerms can be used as an alternative name of this parameter for this setting) | -| | The setting accepts all of the identities supported by the parameter as the value of objects for each parameter. For example, for the SearchContainer parameter, the setting can accept the DN and GUID of the domains or containers being searched for group members. | -| ReportToManagerEnabled | Specify True to send non-delivery reports to the group owner or manager. The default value is False. | -| ReportToOriginatorEnabled | Specify True to send non-delivery reports to the message originator. The default value is False. | -| RestoreReplication | It will start the restore replication process. | -| RoleCriteriaDN | Specify the criteria for a role. The criteria can be a group or a container. - Group - users that are members of the specified group will be assigned this role. - Container - users who reside in the specified container will be assigned this role. | -| RoleCriteriaFilters | Specifies the filter criteria for a role. Values to this parameter are supplied as a 3-length array. - The first index contains the filter name which can be one of the 'name' or 'type' representing 'client name' and 'client type' respectively. - The second index contains the operator which can be either 'is exactly' or 'is not'. - The third index contains the value. It can either be the client type or client name, depending on the value in the first index. Example: @('name', 'is exactly', 'automate arslanahmadvm') is a valid filter criteria. However, @('client type', 'is not', 'managementshell') is not valid because the value at first index is not correct. | -| RoleCriteriaOperator | Specify the operator for criteria filters of a role. The operators can be And or Or | -| RoleCriteriaScope | Specify the scope for a role. This parameter can be used in conjunction with RoleCriteriaDN to change the role criteria scope from container to group and vice-versa. | -| RoleDescription | Description of an identity store security role. | -| RoleDisabled | If a new role is created using the Set-IdentityStore commandlet, the role is created as disabled in the identity store. | -| RoleName | Name of an identity store security role. | -| RoleNameToCopy | While creating a new role, specify the name of a role you want to make a copy of. The new role is created using the settings of this role. | -| RoleOperation | While modifying an identity store settings using the Set-IdentityStore commandlet, specify the action to perform on an identity store security role. Possible actions are: - Add - Remove - Remove all | -| RolePermissions | While modifying an identity store settings using the Set-IdentityStore commandlet, specify the permission(s) that are to be granted or denied to the security role. | -| RolePriority | Set a role priority by specifying a value in the range of 1-99. Role priority determines which role is higher than the other, where 1 indicates the highest priority and 99 indicates the lowest priority. | -| RoleReadonly | While modifying an identity store using the Set-IdentityStore commandlet, specify that the role is created as read-only. | -| RoleSystemOnly | While modifying an identity store using the Set-IdentityStore commandlet, specify that the role is created as system only. | -| **S** | | -| SamAccountName | The logon name for the pre-Windows 2000 versions of operating systems. The value is limited to 24 characters only. | -| ScheduleName | Name of a schedule job to identify a schedule. The schedule job is displayed with this name against the Scheduling node on GroupID Management Console. | -| Script | The Smart Script for memberships update. The script should be written in Visual Basic .NET in a format recognized by Group Script Editor. Write the script in a separate file, instead of writing the complete script on the shell, and give the path of the script file using the ScriptFilePath setting. NOTE: If while writing script using this setting, you must use a parameter's value that is enclosed in double-quotes (""), insert an apostrophe (') before every quotation mark. For example, #Region ' "Imanami Generated Code' ". | -| ScriptFilePath | The path to the script file containing Smart Script for memberships update. The script should be written in Visual Basic .NET (having .vb extension) in a format recognized by Group Script Editor. | -| SearchContainer | The distinguished name (DN) or globally unique identifier (GUID) of the domain or one or more containers in which to search for users, contact, group or dynasty members. | -| SearchContainersScopeList | This setting works in conjunction with the SearchContainer setting and sets the scope for the object search. Following are the possible values for this parameter: - 1 (Limits search to the container specified in the SearchContainer parameter and ignores the sub-containers.) - 2 (Searches the whole sub-tree, including the base container specified in the SearchContainer parameter and all its sub-containers. This is also the default setting for this parameter; therefore, if the search scope is not explicitly specified, this value is used.) Although the values are numerical, you must enclose them in double-quotes. For example: "1", "2". | -| SecurityQuestions | Adds a security question in an identity store. | -| SecurityToken | When you the Get-Token command, you get a value against Claims. Provide that value to this parameter. | -| SecurityType | The access level of the group: Private, Semi_Private and Public. If this parameter is not given, the group is created as Private. | -| SendEmail | Specify this parameter to send the password expiry e-mail notifications. The group must have an e-mail address and notifications must be configured. (Applies to Password Expiry group) | -| SendOofMessageToOriginatorEnabled | Specify True to enable the group to send Out-of-Office messages to e-mail senders. The default value is False. | -| SendToOwners | Sends job completion notifications to group owners and additional owners as well as to the other specified recipients. | -| Separator | Specifies a character to use in the display name and the alias to separate group-by values from the each other. | -| Server | The server name for the following data sources, if specified: - Microsoft SQL Driver (Name of the Microsoft SQL Server that contains the database you want to connect to) - Oracle (Name of the Oracle server that contains the database you want to connect to) - Lotus Notes (Name of the Lotus Notes server that contains the database you want to connect to) - Sun ONE iPlanet Driver (DNS name or IP address of SunONE server) | -| SetNotifications | Enables or disables notifications for a scheduled job. | -| ShouldReturnCollection | Specifying this parameter returns a single collection of objects containing all groups | -| SimpleDisplayName | The printable display name for an object. The printable display name is usually the combination of the user's first name, middle initial, and last name. | -| SmartDLNotes | The notes entered here are copied to all smart groups created using Automate. | -| SmartFilter | Adds a smart search filter that applies only on SmartGroups. The smart search filters are: - IsExpired - GroupExpiringIn - SecurityType - ExpirationPolicy. (Functional in **Get-Group** and **Get-Smartgroup** commandlets only) | -| SmartGroupType | The type of Smart Group that you want the commandlet to retrieve. Values of this parameter are: - SmartGroup - SmartDynasty Omitting this parameter retrieves both SmartGroups and Dynasties. | -| SmsGatewayName | The name of an SMS gateway. | -| SmtpPassword | This setting works in conjunction with the UseSmtpUserAuthentication, SmtpServer, SmtpUserName, SmtpPort and SmtpSSLEnabled settings and sets the password of the user account to be used for communicating with an external SMTP server. | -| SmtpPort | This setting works in conjunction with the SmtpServer setting and sets the port number to be used for communicating with an SMTP server. | -| SmtpServer | The fully qualified name or IP address of an SMTP server. GroupID will route messages through this server. | -| SmtpSSLEnabled | This setting works in conjunction with the SmtpServer, SmtpUserName, SmtpPassword, and SmtpPort settings. Enter True if the external SMTP server is SSL-enabled. | -| SmtpUserName | This setting works in conjunction with the UseSmtpUserAuthentication, SmtpServer, SmtpPassword and SmtpPort settings and sets the e-mail address of the user account to be used for communicating with an external SMTP server. | -| SQLServer | SQL server name on which database of previous GroupID version is hosted. | -| StartDate | Date from which membership will be started or revoked or removed. | -| SslEnabled | Specify that the SMTP server is SSL enabled. | -| StartTime | Time of the day at which the schedule is triggered. | -| State | The state for a user, contact or mailbox. | -| Storage | Filters the mailboxes to be returned. If specified, only mailboxes on the specified server or mailbox store (Exchange 2007-SP3 and later/2010/2013/2016) will be returned. Custom recipients, public folders and distribution lists are not affected by this filter. Typing an asterisk (\*) as a value of this parameter searches all mailboxes on any server. | -| StoreDescription | Description of an identity store. | -| StoreEnabled | Enables or disables an identity store. | -| Subject | The subject of the e-mail notification. | -| Sun_Container | Specify distinguished name (DN) of a container in an external datasource (specifically Sun ONE iPlanet datasource) in Query Designer of a smart group. | -| SupportEmail | The e-mail address of the group or contact providing support to users of Password Center and Self-Service portals. This support e-mail address is set by default for all new portals created using Password Center and Self-Service. | -| SupportURL | The default URL of the online help for Self-Service portals. This URL is set by default for all new portals created using Self-Service. | -| SWAMobileAttribute | The name of the attribute used by Second Way Authentication via mobile. | -| SWAQuestions | The question for security questions based Second Way Authentication. The value to this parameter is supplied as 2-length arrays. The first index contains the question text and the second index contains the name of the attribute for that question. | -| SWAQuestionsOperation | The action to perform on the SWAQuestions parameter. | -| SWAuthenticationFactor | Number of authentication types enforced for the security role. | -| SWEmailAttribute | The name of the attribute used by Second Way Authentication via email. | -| SystemDSN | The System Data Source Name (DSN) to use as the data source, if the value of the DataSourceType parameter is ODBC Data Source. | -| **T** | | -| TableorView | The table or view name if the value of the DataSourceType parameter is ODBC Data Source, Microsoft SQL Driver or Oracle. | -| TargetOperation | The actions to perform on targets. Possible values are: - Add - Remove | -| Targets | Provide the names of groups and containers the job will process as per the action provided in the TargetOperation parameter. | -| TemplateFile | The path of the template file that the commandlet should use for generating the e-mail contents. | -| Title | Title of a user, contact or mailbox. | -| ToEmail | Recipient of the email notification. | -| TopLevelOnly | Sets whether the search should return matches only from top-level dynasties or includes sub-level dynasties in the search as well. The default value 0 (zero) returns results from the complete hierarchy of dynasties. Specify the value 1 to return matches from only top-level dynasties. | -| TopManager | The distinguished name (DN), globally unique identifier (GUID) or samAccountName of the top-level manager. The commandlet constructs a Managerial Dynasty structure by creating a Smart Group for all direct reports to the selected top-level manager and continues down the Dynasty structure by creating SmartGroups for all direct reports to sublevel managers. (Applies to Managerial Dynasty) | -| TriggerId | Unique identity of a trigger. The ID can be retrieved from the Triggers property of Get-Schedule commandlet. | -| TriggerOperation | The actions to perform on the provided triggers . Possible actions are: - Add - Remove single by id - Remove by type - remove all | -| TriggerType | The trigger type while adding or removing triggers to/from a schedule. This parameter is also used to select a schedule with a particular trigger type. Possible trigger types are: - RunOnce - RunDaily - RunWeekly - RunMonthly - RunMonthlyDOW - OnIdle - OnSystemStart - OnLogon | -| Type | **New-Group, New-Dynasty, New-SmartGroup, New-Dynasty, Convert-Group** Specifies that the new group or dynasty will be used either for mail distribution (a Distribution group or dynasty) or for securing public folders or other resources (a Security group or Dynasty). Set-Group, Set-SmartGroup, Set-Dynasty The type of the group to be modified. The available types are: Distribution and Security. Add-GroupMember Perpetual, Temporary Member or Addition Pending Remove-GroupMember Removal Pending, Temporary Removed. If no type is given then it will be considered Perpetual remove. | -| **U** | | -| UpdateChildren | The default value True forces Automate to update the children of a Dynasty when it updates the Dynasty itself. Set its value to False to disable this feature. | -| UpdateMembershipByManagerEnabled | A True value enables the group manager to update the group membership list. The default value is False. | -| Username | The name of the user that will be used for the execution of the commandlet in which it is mentioned. This parameter and the Credentials parameter cannot be used simultaneously in a commandlet. | -| UseSmtpUserAuthentication | Set its value to True to use SMTP authentication for communicating with the SMTP server. The default value is False. The authentication details are provided by the SmtpUserName, SmtpPassword, SmtpPort and SmtpSSLEnabled settings. | -| UseSmtpUserAuthentication | Specify if user authentication of SMTP server is to be used. | -| **V** | | -| ValidationDateRemovalInterval | Specify the number of days since the last profile validation date. GroupID clears the validation date and the policies for new users are applied to this user. | -| Verb | Shows information about commandlets or command elements having the specified verb in their name. Wildcard search is also supported. | -| **W** | | -| Weekdays | Specify the weekdays for the weekly triggers. Possible values are: - Sunday - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday - AllDays | -| WeeksInterval | Specify weekly interval in weekly triggers i.e. number of weeks after which a scheduled job is repeated. | -| WhenGroupMembershipThresholdReach | Policy to apply when membership change threshold, specified in out-of-bounds configurations, is reached. Possible values are: - PreventUpdation - NestIntoChildGroups | -| WindowsAuthentication | Enables Windows Authentication mode for SQL Server. In Windows Authentication mode, administrators can enable users to log on to the SQL Server using their Windows credentials. | -| WindowsLoggingEvent | Set events for logging from all GroupID modules in a centralized event log named Imanami GroupID that can be viewed from the Windows Event Viewer. Possible events are: - FailureAudit - SuccessAudit - Info - Warn - Error | -| X | | -| XDaysBeforeLeaveNotificationMB | Specify the number of days. The temporary additional owner / manager of a group receives a notification before the specified number of days he or she is removed as additional owner / manager. | -| XDaysBeforeLeaveNotificationML | Specify the number of days. The user receives a notification before the specified number of days he or she is removed from a group memberships. | -| Y | | -| YearMonths | Specify the months of years for monthly triggers. Possible values are: - January - February - March - April - May - June - July - August - September - October - November - December - AllMonths | -| Z | | -| Zip | The zip code for a user, contact or mailbox. | - -## Unsupported Parameters - -GroupID Management Shell does not support common parameters of PowerShell in its commandlets. The -common parameters are: - -- Debug -- ErrorAction -- ErrorVariable -- InformationAction -- InformationVariable -- OutBuffer -- OutVariable -- PipelineVariable -- Verbose -- WarningAction -- WarningVariable -- Confirm -- WhatIf -- Write-Information - -See -[about_CommonParameters](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_commonparameters?view=powershell-7.3&viewFallbackFrom=powershell-6) -for details on these parameters. - -See Also - -- [GroupID Management Shell](/docs/directorymanager/11.0/managementshell/overview.md) diff --git a/docs/directorymanager/11.0/managementshell/scheduling/_category_.json b/docs/directorymanager/11.0/managementshell/scheduling/_category_.json deleted file mode 100644 index 65603b5e88..0000000000 --- a/docs/directorymanager/11.0/managementshell/scheduling/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Scheduling Commands", - "position": 130, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/managementshell/scheduling/getschedule.md b/docs/directorymanager/11.0/managementshell/scheduling/getschedule.md deleted file mode 100644 index 61a2f3d4bb..0000000000 --- a/docs/directorymanager/11.0/managementshell/scheduling/getschedule.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: "Get-Schedule" -description: "Get-Schedule" -sidebar_position: 10 ---- - -# Get-Schedule - -The commandlet **Get-Schedule** retrieves the scheduled jobs created in the identity store connected -to the current instance of the Management Shell. By default, this cmdlet returns all the jobs -available irrespective of the following: - -- whether the identity store with which they belong is enabled. -- whether the jobs are enabled. - -This commandlet can also filter the job list if provided with the filtration parameters such as -JobType, TriggerType or HavingNotifications. It also accepts a MatchingCriteria parameter that -determines whether the criteria are to be joined on the AND basis or OR basis. - -## Syntax - -``` -Get-Schedule [-ScheduleNames ] -[-IdentityStoreNames ] -[-JobTypes ] -[-TriggerTypes ] -[-HavingNotifications ] -[-MatchingCriteria ] -[-PreventEnumeration] -[-IdentityStoreId ] -[-SecurityToken ] -[-WarningAction ] -[-InformationAction ] -[-WarningVariable ] -[-InformationVariable ] -[-PipelineVariable ] -[] -``` - -## Required Parameter - -- None - -Example 1: - -This example retrieves all the scheduled jobs created in the connected identity store. - -``` -Get-Schedule -``` - -Example 2: - -This example retrieves those Group Usage Service – GUS job(s) that have monthly trigger and -MatchingCriteria on the And basis. - -``` -Get-Schedule -JobType GUS -TriggerType RunMonthly -MatchingCriteria And -``` - -Example 3: - -This example retrieves the scheduled job with GUS1 name. - -``` -Get-Schedule -ScheduleName GUS1 -``` - -Example 4: - -This example retrieves the two scheduled jobs – GUS1 and GLM6 –through the pipeline operator. - -``` -'GUS1','GLM6' | Get-Schedule -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Scheduling Commands](/docs/directorymanager/11.0/managementshell/scheduling/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/scheduling/gettargetschedule.md b/docs/directorymanager/11.0/managementshell/scheduling/gettargetschedule.md deleted file mode 100644 index 8a5a03eb5d..0000000000 --- a/docs/directorymanager/11.0/managementshell/scheduling/gettargetschedule.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: "Get-TargetSchedules" -description: "Get-TargetSchedules" -sidebar_position: 20 ---- - -# Get-TargetSchedules - -The commandlet **Get-TargetSchedules** retrieves the scheduled jobs of the given target (group/OU). - -## Syntax - -``` -Get-TargetSchedules -[-DistinguishedName] -[-Enumerate] -[-IdentityStoreId ] -[-SecurityToken ] -[-WarningAction ] -[-InformationAction ] -[-WarningVariable ] -[-InformationVariable ] -[-PipelineVariable ] -[] -``` - -## Required Parameter - -- DistinguishedName - -Example 1: - -This example retrieves the schedules operating on an OU with distinguished name -OU=WorkingOU,DC=pucit,DC=local. - -``` -Get-TargetSchedules -DistinguishedName ‘OU=WorkingOU,DC=pucit,DC=local’ -``` - -Example 2: - -This example retrieves the schedules operating on a group and an OU through the pipeline operator. - -``` -'OU=WorkingOU,DC=pucit,DC=local', 'CN=SGroup1,OU=ArslanAhmadOU,OU=WorkingOU,DC=pucit,DC=local' | Get-TargetSchedules -``` - -Example 3: - -This example selects only the Names and Job Types of the schedules operating on the specified -targets through the pipeline operator. - -``` -'OU=WorkingOU,DC=pucit,DC=local', 'CN=SGroup1,OU=ArslanAhmadOU,OU=WorkingOU,DC=pucit,DC=local' | Get-TargetSchedules | Select-Object -Property Name,JobType -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Scheduling Commands](/docs/directorymanager/11.0/managementshell/scheduling/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/scheduling/invokeschedule.md b/docs/directorymanager/11.0/managementshell/scheduling/invokeschedule.md deleted file mode 100644 index 4858110396..0000000000 --- a/docs/directorymanager/11.0/managementshell/scheduling/invokeschedule.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: "Invoke-Schedule" -description: "Invoke-Schedule" -sidebar_position: 30 ---- - -# Invoke-Schedule - -The commandlet **Invoke-Schedule** executes the specified schedule job. - -## Syntax - -``` -Invoke-Schedule -[-ScheduleName ] -[-JobId ] -[-PassThru] -[-IdentityStoreId ] -[-SecurityToken ] -[-WarningAction ] -[-InformationAction ] -[-WarningVariable ] -[-InformationVariable ] -[-PipelineVariable ] -[] -``` - -## Required Parameter - -- None - -Example 1: - -This example executes a schedule with name starting smm4_. - -``` -Invoke-Schedule -ScheduleName smm4_ -``` - -Example 2: - -This example executes a schedule with GUS as Job Type. - -``` -Get-Schedule -JobType GUS | Select-Object -Property Name | Invoke-Schedule -``` - -Example 3: - -This example executes all the GUS scheduled jobs with daily running trigger. - -``` -Get-Schedule -JobType GUS -TriggerType RunDaily -MatchingCriteria And | Select-Object -Property Name | Invoke-Schedule -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Scheduling Commands](/docs/directorymanager/11.0/managementshell/scheduling/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/scheduling/newschedule.md b/docs/directorymanager/11.0/managementshell/scheduling/newschedule.md deleted file mode 100644 index 99b9cb999b..0000000000 --- a/docs/directorymanager/11.0/managementshell/scheduling/newschedule.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: "New-Schedule" -description: "New-Schedule" -sidebar_position: 40 ---- - -# New-Schedule - -The commandlet **New-Schedule** creates a new schedule in the identity store connected to the -current instance of Management Shell. - -## Syntax - -``` -New-Schedule --ScheduleName --Targets --TargetType --IdentityStoreName --Credentials --JobType --TriggerType --StartTime -[-WeekDays ] -[-YearMonths ] -[-MonthDate ] -[-EnableNotifications] -[-Recepients ] -[-SendToOwners] -[-NotificationSendingCriteria ] -[-PassThru] [-IdentityStoreId ] -[-SecurityToken ] -[-WarningAction ] -[-InformationAction ] -[-WarningVariable ] -[-InformationVariable ] -[-PipelineVariable ] -[] -``` - -## Required Parameters - -- ScheduleName -- Targets -- TargetType -- IdentityStoreName -- Credentials -- JobType -- TriggerType -- StartTime - -Example 1: - -This example creates a new schedule using minimum possible parameters. This example contains -insecure password. - -``` -New-Schedule -ScheduleName SmuTest1 -IdentityStoreName AdStore8 -UserName user -Password password1 -Targets 'OU=ArslanAhmadOU,OU=WorkingOU,DC=pucit,DC=local', 'OU=ArslanAhmadOU,OU=WorkingOU,DC=pucit,DC=local' -JobType SmartGroup -TriggerType Daily -StartTime '16:56' -``` - -NOTE: This example uses insecure credentials. - -Example 2: - -This example creates a smart-group schedule triggering every 7th of every March, August and -September. - -``` -New-Schedule -ScheduleName SmuTest2 -IdentityStoreName AdStore8 -Credentials $creds -Targets 'OU=ArslanAhmadOU,OU=WorkingOU,DC=pucit,DC=local' -JobType SmartGroup -TriggerType Monthly -StartTime '16:56' -YearMonths 'March','August','September' -MonthDate 7 -``` - -To use secure credentials, first create them and save them to a variable named ‘creds’. - -``` -$creds = Get-Credential -``` - -Example 3: - -This example creates a GUS job by providing a messaging system. - -``` -New-Schedule -ScheduleName GusTest1 -Targets 'OU=ArslanAhmadOU,OU=WorkingOU,DC=pucit,DC=local' -JobType GUS -Credentials $creds -TriggerType Daily -StartTime '16:56' -MessagingSystems 'ARSLANAHMADSVM.PUCIT.LOCAL' -``` - -Example 4: - -This example creates a GUS job specifying that it should include all containers and messaging -systems. - -``` -New-Schedule -ScheduleName GusTest2 -IncludeAllContainers -IncludeAllMessagingSystems -JobType GUS -Credentials $creds -TriggerType Daily -StartTime '16:56' -``` - -Example 5: - -This example creates a job by configuring the notification settings. This commandlet specifies that -the notifications for this schedule are enabled and sent to the specified recipients as well as to -the owners of the schedule targets. The notifications are only sent when the schedule completes its -job successfully. - -``` -New-Schedule -ScheduleName GusTest3 -IncludeAllContainers -IncludeAllMessagingSystems -JobType GUS -Credentials $creds -TriggerType Daily -StartTime '16:56' -EnableNotifications -Recepients 'recep1@gid.com','recep2@gid.com' -SendToOwners -NotificationSendingCriteria OnSuccess -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Scheduling Commands](/docs/directorymanager/11.0/managementshell/scheduling/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/scheduling/overview.md b/docs/directorymanager/11.0/managementshell/scheduling/overview.md deleted file mode 100644 index e9185de9f3..0000000000 --- a/docs/directorymanager/11.0/managementshell/scheduling/overview.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "Scheduling Commands" -description: "Scheduling Commands" -sidebar_position: 130 ---- - -# Scheduling Commands - -This section covers the cmdlets that perform scheduling-related operations. - -- [Get-Schedule](/docs/directorymanager/11.0/managementshell/scheduling/getschedule.md): - retrieves scheduled jobs. -- [Get-TargetSchedules](/docs/directorymanager/11.0/managementshell/scheduling/gettargetschedule.md): - retrieves the scheduled jobs operating on a group or OU. -- [ Invoke-Schedule](/docs/directorymanager/11.0/managementshell/scheduling/invokeschedule.md): - executes a scheduled job. -- [New-Schedule](/docs/directorymanager/11.0/managementshell/scheduling/newschedule.md): - creates a new schedule. -- [Remove-Schedule](/docs/directorymanager/11.0/managementshell/scheduling/removeschedule.md): - removes a schedule from an identity store. -- [Set-Schedule](/docs/directorymanager/11.0/managementshell/scheduling/setschedule.md): - modifies a schedule. -- [Stop-Schedule](/docs/directorymanager/11.0/managementshell/scheduling/stopschedule.md): - stops a running schedule. - -See Also - -- [GroupID Management Shell](/docs/directorymanager/11.0/managementshell/overview.md) -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/scheduling/removeschedule.md b/docs/directorymanager/11.0/managementshell/scheduling/removeschedule.md deleted file mode 100644 index ea15724c99..0000000000 --- a/docs/directorymanager/11.0/managementshell/scheduling/removeschedule.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: "Remove-Schedule" -description: "Remove-Schedule" -sidebar_position: 50 ---- - -# Remove-Schedule - -The commandlet **Remove-Schedule** removes a schedule (by its name or ID) from the identity store -connected to the current instance of the Management Shell. - -## Syntax - -``` -Remove-Schedule --ScheduleName -[-PassThru] -[-IdentityStoreId ] -[-SecurityToken ] -[-WarningAction ] -[-InformationAction ] -[-WarningVariable ] -[-InformationVariable ] -[-PipelineVariable ] -[] -``` - -## Required Parameter - -- ScheduleName or Scheduled - -Example 1: - -This example removes a schedule named GUS811_1. - -``` -Remove-Schedule -ScheduleName GUS811_1 -``` - -Example 2: - -This example removes two schedules – GUS1 and GUS2 using the pipeline operator. - -``` -'GUS_1', 'GUS_2' | Remove-Schedule -``` - -Example 3: - -This example removes all schedules with job type Glm. - -``` -Get-Schedule -JobType Glm | Select-Object -Property Name | Remove-Schedule -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Scheduling Commands](/docs/directorymanager/11.0/managementshell/scheduling/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/scheduling/setschedule.md b/docs/directorymanager/11.0/managementshell/scheduling/setschedule.md deleted file mode 100644 index 6cf0d139bb..0000000000 --- a/docs/directorymanager/11.0/managementshell/scheduling/setschedule.md +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: "Set-Schedule" -description: "Set-Schedule" -sidebar_position: 60 ---- - -# Set-Schedule - -The commandlet **Set-Schedule** modifies the attributes and settings of a schedule in the identity -store connected to the current instance of the Management Shell. - -## Syntax - -``` -Set-Schedule --ScheduleName -[-NewName ] -[-TargetOperation {Add | Remove}] [-Targets ] -[-Credential ] -[-UserName ] -[-Password ] -[-SetNotifications ] -[-Recepients ] -[-SendToOwners ] -[-NotificationSendingCriteria {Always | OnSuccess | OnFailure | OnMembershipChanged}] -[-Enabled ] -[-TriggerOperation {add | remove single by id | remove by type | remove all}] -[-TriggerId ] -[-TriggerType {Event | Time | Daily | Weekly | Monthly | MonthlyDOW | Idle | Registration | Boot | Logon | SessionStateChange | Custom}] -[-StartTime ] -[-MonthDate ] -[-YearMonths {January | February | March | April | May | June | July | August | September | October | November | December | AllMonths}] -[-MonthWeek {FirstWeek | SecondWeek | ThirdWeek | FourthWeek | LastWeek | AllWeeks}] -[-WeekDays {Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | AllDays}] -[-DaysInterval ] -[-WeeksInterval ] -[-Repeat] -[-RepeatInterval ] -[-RepeatDuration ] -[-EndDate ] -[-TriggerDisabled] -[-KillAtDurationEnd] -[-IncludeAllContainers] -[-IncludeSpecifiedContainers] -[-MessagingSystems ] -[-IncludeAllMessagingServers] -[-IncludeSpecifiedMessagingServers] -[] -``` - -## Required Parameter - -- ScheduleName - -Example 1: - -This example renames a schedule from GUS1 to GUS1-renamed. - -``` -Set-Schedule -ScheduleName GUS1 -NewName GUS1_renamed -``` - -Example 2: - -This example updates the authentication information of GUS1 schedule. - -``` -Set-Schedule -SscheduleName GUS1 -Credential $creds -``` - -Example 3: - -This example removes OU targets from smm4 schedule. - -``` -Set-Schedule -ScheduleName smm4_ -TargetOperation Remove -Targets 'OU=ArslanAhmadOU,OU=WorkingOU,DC=pucit,DC=local', 'OU=CustomRole,OU=WorkingOU,DC=pucit,DC=local', 'OU=CustomRole2,OU=WorkingOU,DC=pucit,DC=local' -``` - -Example 4: - -This example modifies smm4_ schedule by removing its targets. - -``` -Set-Schedule -ScheduleName smm4_ -TargetOperation Remove -Targets 'CN=STest1Group,OU=ArslanAhmadOU,OU=WorkingOU,DC=pucit,DC=local', 'OU=CustomRole2,OU=WorkingOU,DC=pucit,DC=local' -``` - -Example 5: - -This example clears configured notification settings of a schedule smm4. - -``` -Set-Schedule -ScheduleName smm4_ -SetNotifications $false -``` - -Example 6: - -This example changes notification settings of a schedule smm4. It sets notification to be sent to -recep1@gid.com every time the job is run. - -``` -Set-Schedule -ScheduleName smm4_ -SetNotifications $true -Recepients 'recep1@gid.com' -NotificationSendingCriteria Always -``` - -Example 7: - -This example adds a monthly trigger for smm4 schedule. It is repeated every 10 minutes for 1 hour on -23rd of March, August and September at 16:56. - -``` -Set-Schedule -ScheduleName smm4_ -TriggerOperation Add -TriggerType Monthly -StartTime '16:56' -MonthDate 23 -YearMonths 'March,August,September' -Repeat -RepeatInterval 10 -RepeatDuration 60 -``` - -Example 8: - -This example adds a monthly repeating trigger for smm4_ schedule and has an end date. It stops if -it runs at the duration end. - -``` -Set-Schedule -ScheduleName smm4_ -TriggerOperation Add -TriggerType Monthly -StartTime '16:56' -MonthDate 23 -YearMonths 'March,August,September' -Repeat -RepeatInterval 10 -RepeatDuration 60 -EndDate '2020/03/29' –KillAtDurationEnd -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Scheduling Commands](/docs/directorymanager/11.0/managementshell/scheduling/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/scheduling/stopschedule.md b/docs/directorymanager/11.0/managementshell/scheduling/stopschedule.md deleted file mode 100644 index d92b56fc26..0000000000 --- a/docs/directorymanager/11.0/managementshell/scheduling/stopschedule.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: "Stop-Schedule" -description: "Stop-Schedule" -sidebar_position: 70 ---- - -# Stop-Schedule - -The commandlet **Stop-Schedule** stops a specified schedule if it is already running. - -## Syntax - -``` -Stop-Schedule -[-ScheduleName ] -[-JobId ] -[-PassThru] -[-IdentityStoreId ] -[-SecurityToken ] -[-WarningAction ] -[-InformationAction ] -[-WarningVariable ] -[-InformationVariable ] -[-PipelineVariable ] -[] -``` - -## Required Parameter - -- ScheduleName - -Example 1: - -This example stops a schedule smm4 by name. - -``` -Stop-Schedule -ScheduleName smm4_ -``` - -Example 2: - -This example stops a schedule with job type as GUS. - -``` -Stop-Schedule -JobType GUS | Select-Object -Property Name | Invoke-Schedule -``` - -Example 3: - -This example stops all the daily running GUS jobs. - -``` -Get-Schedule -JobType GUS -TriggerType RunDaily -MatchingCriteria And | Select-Object -Property Name | Stop-Schedule -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Scheduling Commands](/docs/directorymanager/11.0/managementshell/scheduling/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/setthecredential.md b/docs/directorymanager/11.0/managementshell/setthecredential.md deleted file mode 100644 index 08213e6de5..0000000000 --- a/docs/directorymanager/11.0/managementshell/setthecredential.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Set the $Credentials Environment Variable" -description: "Set the $Credentials Environment Variable" -sidebar_position: 30 ---- - -# Set the $Credentials Environment Variable - -By default, the GroupID Management Shell uses the credentials of the logged-in user for executing -commandlets. If you need to use a different user account for some commandlets, you must set the -**$Credentials** environment variable to the credentials of that user. This user account must also -be part of the same forest. Once set, the variable can be used as a value for the Credential -parameter with those commandlets that you want to execute using this account. The rest of the -commandlets are executed under the credentials of the local user. - -## Syntax - -``` -$Credentials = new-object System.Management.Automation.PsCredential "DomainName\User Name",$(convertto-securestring "Password" -asplaintext -force) -``` - -Example 1: - -The following command sets the **$Credentials** environment variable to the credentials of the user, -John Smith, which exists on the same domain you are logged-on to. - -``` -$Credentials = new-object System.Management.Automation.PsCredential "JohnSmith",$(convertto-securestring "MyP@ssw0rd" -asplaintext -force) -``` - -Example 2: - -The command below sets the credentials of the user, Brian Regan, which exists on a different domain -in the same forest. - -``` -$Credentials = new-object System.Management.Automation.PsCredential "Sales.Imanami.US\BrianRegan",$(convertto-securestring "MyP@ssw0rd" -asplaintext -force) -``` - -Example 3: - -The following command shows how to use the **$Credentials** environment variable with commandlets. - -``` -New-Container -ParentContainer "DC=HR,DC=Imanami,DC=US" -Name "Recruiting" -Credential $Cred -``` - -See Also - -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/smartgroup/_category_.json b/docs/directorymanager/11.0/managementshell/smartgroup/_category_.json deleted file mode 100644 index 87b1027557..0000000000 --- a/docs/directorymanager/11.0/managementshell/smartgroup/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Smart Group Commands", - "position": 140, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/managementshell/smartgroup/converttostaticgroup.md b/docs/directorymanager/11.0/managementshell/smartgroup/converttostaticgroup.md deleted file mode 100644 index 75c7bcf24f..0000000000 --- a/docs/directorymanager/11.0/managementshell/smartgroup/converttostaticgroup.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "ConvertTo-StaticGroup" -description: "ConvertTo-StaticGroup" -sidebar_position: 10 ---- - -# ConvertTo-StaticGroup - -The **ConvertTo-StaticGroup** commandlet converts an existing Smart Group or a dynasty to a static -group by removing the attributes of the Smart Group or the dynasty. - -## Syntax - -``` -ConvertTo-StaticGroup --IdentityStoreName -[-GroupName ] -[-SearchContainers ] -[] -``` - -## Required Parameter - -- IdentityStoreName - -Example 1: - -The following commandlets converts a Smart Group in AdStore9 identity store Smart_Training to a -static group. - -``` -ConvertTo-StaticGroup -IdentityStoreName AdStore9 -GroupName "Smart_Training" -SearchContainers "OU=Recruiting,OU=HR,DC=Imanami,DC=US","OU=Outsourcing,OU=HR,DC=Imanami,DC=US" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Smart Group Commands](/docs/directorymanager/11.0/managementshell/smartgroup/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/smartgroup/getsmartgroup.md b/docs/directorymanager/11.0/managementshell/smartgroup/getsmartgroup.md deleted file mode 100644 index 0ca1335d5e..0000000000 --- a/docs/directorymanager/11.0/managementshell/smartgroup/getsmartgroup.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: "Get-SmartGroup" -description: "Get-SmartGroup" -sidebar_position: 20 ---- - -# Get-SmartGroup - -Use this commandlet to retrieve Smart Groups and Dynasties that match your given criteria in one or -more containers in a domain. - -## Syntax - -``` -Get-SmartGroup -[[-Identity] ] -[-SmartGroupType ] -[-TopLevelOnly ] -[-GroupIDVersion ] -[-SearchContainer ] -[-SearchContainersScopeList ] -[-ShouldReturnCollection] -[-MaxItemsToDisplay ] -[-ObjectType ] -[-LdapFilter ] -[-SmartFilter ] -[-ServerFilter ] -[-AttributesToLoad ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- None - -Example 1: - -The following command retrieves only Smart Groups (not Dynasties) in the base container specified by -the **SearchContainer** parameter including sub-containers, using the credentials of current user -logged-on to the identity store. - -``` -Get-SmartGroup -SmartGroupType "SmartGroup" -SearchContainer "OU=Recuriting,DC=HR,DC=Imanami,DC=US" -``` - -Example 2: - -The following command retrieves both Smart Groups and Dynasties that have display names starting -with S in the containers specified by the **SearchContainer** parameter including sub-containers of -the first base container and excluding sub-containers of the second one, using the credentials -specified in the **$Credentials** environment variable. - -``` -Get-SmartGroup -SearchContainer "OU=Recuriting,DC=HR,DC=Imanami,DC=US","OU=OutSourcing,DC=HR,DC=Imanami,DC=US" -SearchContainersScopeList "2","1" -LdapFilter "(DisplayName = S*)" -Credential $Cred - -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Smart Group Commands](/docs/directorymanager/11.0/managementshell/smartgroup/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/smartgroup/newsmartgroup.md b/docs/directorymanager/11.0/managementshell/smartgroup/newsmartgroup.md deleted file mode 100644 index e0c1bdd915..0000000000 --- a/docs/directorymanager/11.0/managementshell/smartgroup/newsmartgroup.md +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: "New-SmartGroup" -description: "New-SmartGroup" -sidebar_position: 30 ---- - -# New-SmartGroup - -This commandlet helps you to create a new Smart Group (managed group) in Directory. A Smart Group is -a conventional distribution or security group that dynamically maintains its membership based on the -rules applied by a user-defined LDAP query. - -A Smart Group can also be defined as a Password Expiry group. A Password Expiry group is a dynamic -group whose membership is based on password policy conditions defined by the administrator. The LDAP -query defined for a Smart Group can be updated any time using the -[Set-SmartGroup](/docs/directorymanager/11.0/managementshell/smartgroup/setsmartgroup.md) -commandlet. When the LDAP query is changed, you must update the group once to modify its membership -according to the changes made to the query. For information about updating a group, see -[Update-Group](/docs/directorymanager/11.0/managementshell/smartgroup/updategroup.md). - -You can view events related to this commandlet in GroupID portal, against the **History** node in -the left panel. - -## Syntax - -``` -New-SmartGroup --SamAccountName --Name --OrganizationalUnit --GroupScope --Type --SecurityType -[-SearchContainers ] -[-SearchContainersScopeList ] -[-ObjectTypes ] -[-LdapFilter ] -[-IncludeRecipients ] -[-ExcludeRecipients ] -[-Storage ] -[-DataSourceType ] -[-SystemDSN ] -[-TableorView ] -[-DataSourceUserName ] -[-DataSourcePassword ] -[-FilePath ] -[-Server ] -[-Port ] -[-LDAPSearchContainer ] -[-DataSourceName ] -[-DataSourceConnection ] -[-DataSourceQuery ] -[-KeyMapDB ] -[-KeyMapAD ] -[-WindowsAthentication] -[-IsPasswordExpiryGroup] -[-DomainExpiration ] -[-ExpirationRange ] -[-IncludeDisabledUsers ] -[-IncludePasswordNeverExpireUsers ] -[-Script ] -[-ScriptFilePath ] -[-Sun_Container ] -[-GroupAlias ] -[-ManagedBy ] -[-DisplayName ] -[-MailEnabled ] -[-Description ] -[-AdditionalOwners ] -[-NotifyOptOutAdditionalOwners ] -[-Members ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameters - -- SamAccountName -- Name -- OrganizationalUnit -- GroupScope -- Type -- SecurityType - -Example 1: - -The following command creates a new mail-enabled, universal, distribution Smart Group in the -container specified by the **OrganizationalUnit** parameter, using the credentials of current user -logged-on to the identity store. - -``` -New-SmartGroup  -OrganizationalUnit "OU=Recruiting,DC=HR,DC=Imanami,DC=US" -Name "Smart_Training" -GroupAlias "Smart_Training" -MailEnable True -SamAccountName "Smart_Training" -GroupScope "Universal Group" -Type "Distribution" -``` - -NOTE: In Microsoft Exchange 2007 and later, mail-enabled groups are created with _Universal Group -Scope_. - -Example 2: - -The following command creates a new universal, distribution Smart Group in the container specified -by the **OrganizationalUnit** parameter and builds its membership by retrieving those objects from -the containers specified in the **SearchContainers** parameter excluding sub-containers that have -**Display Names** matching the Names in a text file. - -``` -New-SmartGroup -OrganizationalUnit "OU=Recruiting,OU=HR,DC=Imanami,DC=US" -Name "Smart_Enrollment" -SamAccountName "Smart_Enrollment" -GroupScope "Universal Group" -Type "Distribution" -SearchContainers "OU=Recruiting,OU=HR,DC=Imanami,DC=US","OU=Outsourcing,OU=HR,DC=Imanami,DC=US" -SearchContainersScopeList "1","1" -LdapFilter "(displayName=Database.[Name])" -DataSourceType "Microsoft Text Driver (*.txt,*.csv)" -FilePath "D:\Inputs\Names.txt" -DataSourceQuery "SELECT [Name] FROM [Names.txt]" -``` - -Example 3: - -The following command creates a new local, distribution, Password Expiry group, using the -credentials set in the **$Credential**s environment variable. Those users will be members of the -group who have passwords aged 20 days or older. Disabled users will also be included in the -membership. - -``` -New-SmartGroup -OrganizationalUnit "OU=Recruiting,OU=HR,DC=Imanami,DC=US" -Name "Password_Expiry" -GroupAlias "Password_Expiry" -SamAccountName "Password_Expiry" -GroupScope "Domain Local" -Type "Distribution" -IsPasswordExpiryGroup -DomainExpiration 30 -ExpirationRange 10 -IncludeDisabledUsers True -Credential $Cred -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Smart Group Commands](/docs/directorymanager/11.0/managementshell/smartgroup/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/smartgroup/overview.md b/docs/directorymanager/11.0/managementshell/smartgroup/overview.md deleted file mode 100644 index 3f8bef4b42..0000000000 --- a/docs/directorymanager/11.0/managementshell/smartgroup/overview.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "Smart Group Commands" -description: "Smart Group Commands" -sidebar_position: 140 ---- - -# Smart Group Commands - -This section covers cmdlets for managing Smart Groups. - -- [ConvertTo-StaticGroup](/docs/directorymanager/11.0/managementshell/smartgroup/converttostaticgroup.md): - converts a Smart Group or a Dynasty to a static group. -- [Get-SmartGroup](/docs/directorymanager/11.0/managementshell/smartgroup/getsmartgroup.md): - retrieves Smart Groups and Dynasties that match the given criteria. -- [New-SmartGroup](/docs/directorymanager/11.0/managementshell/smartgroup/newsmartgroup.md): - creates a new Smart Group (managed group) in the directory. -- [Set-SmartGroup](/docs/directorymanager/11.0/managementshell/smartgroup/setsmartgroup.md): - modifies a Smart Group in the directory. -- [Update-Group](/docs/directorymanager/11.0/managementshell/smartgroup/updategroup.md): - modifies the membership of a Smart Group or Dynasty according to the results returned by the LDAP - query. -- [Upgrade-Group](/docs/directorymanager/11.0/managementshell/smartgroup/upgradegroup.md): - upgrades managed (Smart Groups and Dynasties) and non-managed groups from GroupID 9 and 10 to - GroupID 11. - -See Also - -- [GroupID Management Shell](/docs/directorymanager/11.0/managementshell/overview.md) -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/smartgroup/setsmartgroup.md b/docs/directorymanager/11.0/managementshell/smartgroup/setsmartgroup.md deleted file mode 100644 index 71cde7a243..0000000000 --- a/docs/directorymanager/11.0/managementshell/smartgroup/setsmartgroup.md +++ /dev/null @@ -1,184 +0,0 @@ ---- -title: "Set-SmartGroup" -description: "Set-SmartGroup" -sidebar_position: 40 ---- - -# Set-SmartGroup - -The **Set-SmartGroup** commandlet modifies a Smart Group in Directory. Attributes that are common to -both Smart Groups and unmanaged groups can also be modified using the -[Set-Group](/docs/directorymanager/11.0/managementshell/group/setgroup.md) commandlet. - -You can view events related to this commandlet in GroupID portal, against the **History** node in -the left panel. - -## Syntax - -``` -Set-SmartGroup --Identity -[-SearchContainers ] -[-SearchContainersScopeList ] -[-ObjectTypes ] -[-LdapFilter ] -[-IncludeRecipients ] -[-ExcludeRecipients ] -[-Storage ] -[-DataSourceType ] -[-SystemDSN ] -[-TableOrView ] -[-DataSourceUserName ] -[-DataSourcePassword ] -[-FilePath ] -[-Server ] -[-Port ] -[-LDAPSearchContainer ] -[-DataSourceName ] -[-DataSourceQuery ] -[-WindowsAuthentication] -[-EnableUpdate ] -[-IsPasswordExpirySmartDL] -[-ExpirationRange ] -[-DomainExpiration ] -[-MaximumPasswordAge ] -[-MinimumPasswordAge ] -[-IncludeDisabledUsers ] -[-IncludePasswordNeverExpireUsers ] -[-SendEmail ] -[-EmailTemplatePath ] -[-Script ] -[-ScriptFilePath ] -[-Provider_Container ] -[-PowerTools ] -[-KeyMapAD ] -[-KeyMapDB ] -[-ExtendGroupLife] -[-ExpirationPolicy ] -[-MsExchCoManagedByLink ] -[-IsExpired ] -[-GroupScope ] -[-Type ] -[-Prefix ] -[-SecurityType ] -[-ManagedBy ] -[-MaxSendSize ] -[-AcceptMessagesOnlyFrom ] -[-RejectMessagesFrom ] -[-AcceptMessagesOnlyFromGroups ] -[-RejectMessagesFromGroup ] -[-AdditionalOwners ] -[-NotifyOptOutAdditionalOwners ] -[-ExpansionServer ] -[-BypassOwnersPolicy ] -[-MsExchRequireAuthToSendTo ] -[-HiddenFromAddressListEnabled ] -[-SendOofMessageToOriginatorEnabled ] -[-HideMembershipFromAddressListEnabled ] -[-ReportToManagerEnabled ] -[-ReportToOriginatorEnabled ] -[-UpdateMembershipByManagerEnabled ] -[-Add ] -[-Remove ] -[-Replace ] -[-Clear ] -[-Department ] -[-Company ] -[-Assistant ] -[-HomePage ] -[-Alias ] -[-EmailAddress ] -[-Description ] -[-Notes ] -[-AdministrativeNotes ] -[-DisplayName ] -[-SimpleDisplayName ] -[-CustomAttribute1 ] -[-CustomAttribute2 ] -[-CustomAttribute3 ] -[-CustomAttribute4 ] -[-CustomAttribute5 ] -[-CustomAttribute6 ] -[-CustomAttribute7 ] -[-CustomAttribute8 ] -[-CustomAttribute9 ] -[-CustomAttribute10 ] -[-CustomAttribute11 ] -[-CustomAttribute12 ] -[-CustomAttribute13 ] -[-CustomAttribute14 ] -[-CustomAttribute15 ] -[-Delimiter ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential  ] -[] -``` - -## Required Parameter - -- Identity - -Example 1: - -The following command modifies a Smart Group by adding **Administrator** statically in the group -membership, regardless of whether it is returned by the query, using the credentials of current user -logged-on to the identity store. - -``` -Set-SmartGroup -Identity "CN=Smart_Training,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -IncludeRecipients "CN=Administrator,CN=Users,DC=HR,DC=Imanami,DC=US" -``` - -Example 2: - -The following command modifies the LDAP query of a Smart Group to retrieve all mail-enabled objects -that are members of the group **Training**, using the credentials set in the **$Credentials** -environment variable. - -``` -Set-SmartGroup -Identity "CN=Smart_Training,OU=Recruiting,DC=HR,DC=Imanami,DC=US" -ObjectTypes "ExchangeUsers","ExternalUsers","ExternalContacts","EmailGroups" -LdapFilter "(MemberOf=Training)" -Credential $Cred -``` - -Example 3: - -The following command modifies the Password Expiry group using the credentials of current user -logged-on to the identity store. To be added are those users who reside in the containers specified -in the **Add** parameter (including sub-containers) and whose password is 20 days or more older and -set to never expire. - -``` -Set-SmartGroup -Identity "CN=Password_Expiry,OU=Recruiting,OU=HR,DC=Imanami,DC=US" -Add @{SearchContainers="OU=Recruiting,OU=HR,DC=Imanami,DC=US#2","OU=Outsourcing,OU=HR,DC=Imanami,DC=US#2" -IsPasswordExpirySmartDL -DomainExpiration 30 -ExpirationRange 10 -IncludePasswordNeverExpireUsers True] -``` - -Example 4: - -The following command modifies the membership of a Smart Group based on the script given in the -script file. - -``` -Set-SmartGroup -Identity "CN=Smart_Training,OU=Recruiting,DC=HR,DC=Imanami,DC=US" –ScriptFilePath "c:\MembershipUpdateScript.vb" -``` - -Example 5: - -The following command overwrites the **Includes** and **Excludes** lists of a Smart Group by adding -two groups in the Includes list and one group in the Excludes list. - -``` -Set-SmartGroup -Identity "CN=imrantest, OU=Testit, DC=minion,DC=local" –Replace @{Includes = "CN=Shizasss,CN=Users,DC=minion,DC=Local","CN=ShezaOfc,CN=Users,DC=minion,DC=Local" ; Excludes="CN=Administrator,CN=Users,DC=minion,DC=local" , "CN=TestMailbox,CN=Users,DC=minion,DC=local"] - -``` - -Exampe 6: - -The following command modifies lists of members a Smart Group can accept and reject messages from. - -``` -Set-SmartGroup -Identity "CN=Smart_Training,OU=Recruiting,DC=HR,DC=Imanami,DC=US" –Add @{ RejectMessagesFrom = "CN=Roger_Manson,OU=ResignedStaff,DC=HR,DC=Imanami,DC=US"} -Add @(AcceptMessageOnlyFrom = "CN=PKWing,OU=Recruiting,DC=HR,DC=Imanami,DC=US","CN=USWing,OU=Recruiting,DC=HR,DC=Imanami,DC=US") -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Smart Group Commands](/docs/directorymanager/11.0/managementshell/smartgroup/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/smartgroup/updategroup.md b/docs/directorymanager/11.0/managementshell/smartgroup/updategroup.md deleted file mode 100644 index 8ac7516583..0000000000 --- a/docs/directorymanager/11.0/managementshell/smartgroup/updategroup.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: "Update-Group" -description: "Update-Group" -sidebar_position: 50 ---- - -# Update-Group - -The **Update-Group** commandlet modifies the membership of a Smart Group or Dynasty according to the -results returned by the LDAP query. This query is associated with the group or Dynasty creation and -can be updated anytime using the **Set-SmartGroup** commandlet. When the **Update-Group** commandlet -is executed, it searches the directory to find recipients matching the criteria defined in the query -and modifies the group membership list with the returned recipients, if any. - -You can view events related to this commandlet in GroupID portal, against the **History** node in -the left panel. - -## Syntax - -``` -Update-Group --Identity -[-SearchContainer ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- Identity - -Example 1: - -The following command updates all the GroupID group(s), by using the credentials of a locally logged -on user, in a container specified by the "SearchContainer" parameter. - -``` -Update-Group -SearchContainer “OU=Sales,DC=Contoso,DC=com” -``` - -Example 2: - -The following command updates all Smart Groups and Dynasties present in the container Training, -using the credentials set in the $Credentials environment variable. See the -[Set the $Credentials Environment Variable](/docs/directorymanager/11.0/managementshell/setthecredential.md) -topic for setting credentials in an environment variable. - -``` -Update-Group -SearchContainer "OU=Training,DC=HR,DC=Imanami,DC=US" -Credential $Cred -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Smart Group Commands](/docs/directorymanager/11.0/managementshell/smartgroup/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/smartgroup/upgradegroup.md b/docs/directorymanager/11.0/managementshell/smartgroup/upgradegroup.md deleted file mode 100644 index b33fd4881b..0000000000 --- a/docs/directorymanager/11.0/managementshell/smartgroup/upgradegroup.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: "Upgrade-Group" -description: "Upgrade-Group" -sidebar_position: 60 ---- - -# Upgrade-Group - -The **Upgrade-Group** commandlet upgrades managed (Smart Groups and Dynasties) and non-managed -Groups of GroupID 9 and 10 to GroupID 11.0 version. - -NOTE: GroupID upgrades groups from the connected database to the current instance of GroupID. This -database can be an upgraded version or copied database from the previous GroupID versions i.e. -GroupID 9 and 10. - -## Syntax - -``` -Upgrade-Group --SQLServer --Database --SQLUserName --Password --GroupIDVersion -[-SearchContainer ] -[-SearchContainerScopeList ] -[-Identity ] -[-GroupType ] -[-KeepUserHistory] -[-ExtensionDataAttributes ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameters - -- SQLServer -- Database -- SQLUserName -- Password -- GroupIDVersion - -Example 1: - -The following command upgrades a GroupID 10.0 Smart Group _GIDSmart1_ using the database _GroupID10_ -which resides on SQL server _sqlexpress_. To upgrade the Smart Group to GroupID 11.0 version, the -command uses _sa_ user account of the specified SQL server. - -``` -Upgrade-Group -Identity "GIDsmart1" -SQLServer "msvr02\sqlexpress" -SQLUserName "sa" -Database "GroupID10" -Password "support123R" -GroupIDVersion "10.0" -GroupType "2" -``` - -Example 2: - -The following command upgrades all GroupID 10.0 Smart Groups in the _Jobs_ container using the -_GroupID10_ database which resides on SQL server _sqlexpress_. To upgrade the Smart Groups to -GroupID 11.0 version, the command use the _sa_ user account of the specified SQL server. - -``` -Upgrade-Group -SearchContainer "OU=Jobs,DC=Demo1,DC=com" -SQLServer "msvr02\sqlexpress" -SQLUserName "sa" -Database "GroupID10" -Password "support123R" -GroupIDVersion "10.0" -GroupType "2" - -``` - -Example 3: - -The following command upgrades all GroupID 10.0 dynasties in _Jobs_ container using the _GroupID10_ -database which resides on SQL server sqlexpress. To upgrade the dynasties to GroupID 11.0 version, -the command uses the _sa_ user account of the specified SQL server. - -``` -Upgrade-Group -SearchContainer "OU=Jobs,DC=Demo1,DC=com" -SQLServer "msvr02\sqlexpress" -SQLUserName "sa" -Database "GroupID10" -Password "support123R" -GroupIDVersion "10.0" -GroupType "3" - -``` - -Example 4: - -The following command upgrades non managed groups in _GID10_ container using the _GroupID10_ -database which resides on SQL server sqlexpress. To upgrade the non-managed groups to GroupID 11.0 -version, the command uses the _sa_ user account of the specified SQL server. - -``` -Upgrade-Group -Identity "departsales" -SearchContainer "OU=GID10,DC=Demo1,DC=com" -SQLServer "msvr02\sqlexpress" -SQLUserName "sa" -Database "GroupID10" -Password "support123R" -GroupIDVersion "10.0" -GroupType "1" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Smart Group Commands](/docs/directorymanager/11.0/managementshell/smartgroup/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/user/_category_.json b/docs/directorymanager/11.0/managementshell/user/_category_.json deleted file mode 100644 index 6f6686ac1a..0000000000 --- a/docs/directorymanager/11.0/managementshell/user/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "User Commands", - "position": 150, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/managementshell/user/getuser.md b/docs/directorymanager/11.0/managementshell/user/getuser.md deleted file mode 100644 index 8a54b807e4..0000000000 --- a/docs/directorymanager/11.0/managementshell/user/getuser.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: "Get-User" -description: "Get-User" -sidebar_position: 10 ---- - -# Get-User - -Use the **Get-User** commandlet to retrieve basic information about a user that match your given -criteria. - -## Syntax - -``` -Get-User -[[-Identity] ] -[-SearchContainer ] -[-SearchContainersScopeList ] -[-ShouldReturnCollection] -[-MaxItemsToDisplay ] -[-ObjectType ] -[-LdapFilter ] -[-SmartFilter ] -[-ServerFilter ] -[-AttributesToLoad ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- None - -Example: - -The following command retrieves the specified user from the connected identity store. - -``` -Get-User -Identity "Osama" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [User Commands](/docs/directorymanager/11.0/managementshell/user/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/user/getuserenrollment.md b/docs/directorymanager/11.0/managementshell/user/getuserenrollment.md deleted file mode 100644 index 7afa6758aa..0000000000 --- a/docs/directorymanager/11.0/managementshell/user/getuserenrollment.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "Get-UserEnrollment" -description: "Get-UserEnrollment" -sidebar_position: 20 ---- - -# Get-UserEnrollment - -The commandlet **Get-UserEnrollment** retrieves enrollment information of a user. - -## Syntax - -``` -Get-UserEnrollment --Identity -[-EnrollmentTypes {None | Mobile | SecurityQuestions | Email | Authenticator | LinkAccount | Yubikey | WindowsHello | All | Any}] -[] -``` - -## Required Parameter - -- Identity - -Example 1: - -If a user is enrolled, this cmdlet will enlist the authentication type(s) the user is enrolled with. - -``` -Get-UserEnrollment -Identity euser1 -``` - -Example 2: - -Check whether the specified user is enrolled in the specified enrollment type(s). - -``` -Get-UserEnrollment -Identity euser1 -EnrollmentTypes SecurityQuestions, Email -``` - -Example 3: - -This example gets user enrollment information through the pipeline operator. - -``` -'euser1', 'euser2' | Get-UserEnrollment -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [User Commands](/docs/directorymanager/11.0/managementshell/user/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/user/newuser.md b/docs/directorymanager/11.0/managementshell/user/newuser.md deleted file mode 100644 index f6fa1fe3ad..0000000000 --- a/docs/directorymanager/11.0/managementshell/user/newuser.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: "New-User" -description: "New-User" -sidebar_position: 30 ---- - -# New-User - -Use the **New-User** commandlet to create a new user in Directory. Most user properties can be -directly added by using the parameters of this commandlet. - -## Syntax - -``` -New-User --Name --OrganizationalUnit --SAMAccountName --Password --FirstName --LastName --DisplayName -[-UPNSuffix ] -[-Title ] -[-City ] -[-State ] -[-Zip ] -[-Country ] -[-Initials ] -[-Address ] -[-Office ] -[-Business ] -[-Business2 ] -[-Alias ] -[-EmailAddress ] -[-Department ] -[-Company ] -[-Mobile ] -[-Home ] -[-AccountDisabled ] -[-PasswordNeverExpires ] -[-PasswordForceChange ] -[-Manager ] -[-HomePage ] -[-Assistant ] -[-Notes ] -[-MailEnabled ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameters - -- Name -- OrganizationalUnit -- SAMAccountName -- Password -- FirstName -- LastName -- DisplayName - -Example: - -The following command creates a new user in the container specified by the OrganizationalUnit -parameter. The command also specifies the logon name, password, first name, last name and display -name of the new user. - -``` -New-User -Name "OsamaUser" -OrganizationalUnit "OU=osamamu,DC=naveed,DC=local" -SAMAccountName "OsamaUser11" -Password "webdir123R" -FirstName "Osama" -LastName "Shahbaz" -DisplayName "Osama" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [User Commands](/docs/directorymanager/11.0/managementshell/user/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/user/overview.md b/docs/directorymanager/11.0/managementshell/user/overview.md deleted file mode 100644 index 1006175666..0000000000 --- a/docs/directorymanager/11.0/managementshell/user/overview.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "User Commands" -description: "User Commands" -sidebar_position: 150 ---- - -# User Commands - -This section covers cmdlets for performing user-related tasks such as: - -- [Get-User](/docs/directorymanager/11.0/managementshell/user/getuser.md): retrieves a - user. -- [Get-UserEnrollment](/docs/directorymanager/11.0/managementshell/user/getuserenrollment.md): - displays information about the status of user enrollment. -- [New-User](/docs/directorymanager/11.0/managementshell/user/newuser.md): creates a new - user. -- [Remove-User](/docs/directorymanager/11.0/managementshell/user/removeuser.md): removes a - user from the directory. -- [Set-User ](/docs/directorymanager/11.0/managementshell/user/setuser.md): modifies a user - in the directory - -See Also - -- [GroupID Management Shell](/docs/directorymanager/11.0/managementshell/overview.md) -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/user/removeuser.md b/docs/directorymanager/11.0/managementshell/user/removeuser.md deleted file mode 100644 index 87bb9fdfb6..0000000000 --- a/docs/directorymanager/11.0/managementshell/user/removeuser.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "Remove-User" -description: "Remove-User" -sidebar_position: 40 ---- - -# Remove-User - -Use the **Remove-User** commandlet to delete a user from directory. - -## Syntax - -``` -Remove-User --Identity -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- Identity - -Example: - -The following command deletes a user with the specified name. - -``` -Remove-User -Identity "osama" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [User Commands](/docs/directorymanager/11.0/managementshell/user/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/user/setuser.md b/docs/directorymanager/11.0/managementshell/user/setuser.md deleted file mode 100644 index ad7e6e00ce..0000000000 --- a/docs/directorymanager/11.0/managementshell/user/setuser.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: "Set-User" -description: "Set-User" -sidebar_position: 50 ---- - -# Set-User - -The **Set-User** commandlet modifies a user in Directory. Most user properties can be directly -modified by using the parameters of this commandlet. - -## Syntax - -``` -Set-User --Identity -[-FirstName ] -[-LastName ] -[-Title ] -[-City ] -[-State ] -[-Zip ] -[-Country ] -[-Initials ] -[-Address ] -[-Office ] -[-Business ] -[-Add ] -[-Remove ] -[-Replace ] -[-Clear ] -[-Department ] -[-Company ] -[-Assistant ] -[-HomePage ] -[-Alias ] -[-EmailAddress ] -[-Description ] -[-Notes ] -[-AdministrativeNotes ] -[-DisplayName ] -[-SimpleDisplayName ] -[-CustomAttribute1 ] -[-CustomAttribute2 ] -[-CustomAttribute3 ] -[-CustomAttribute4 ] -[-CustomAttribute5 ] -[-CustomAttribute6 ] -[-CustomAttribute7 ] -[-CustomAttribute8 ] -[-CustomAttribute9 ] -[-CustomAttribute10 ] -[-CustomAttribute11 ] -[-CustomAttribute12 ] -[-CustomAttribute13 ] -[-CustomAttribute14 ] -[-CustomAttribute15 ] -[-Delimiter ] -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- Identity - -Example: - -The following command modifies the display name of the specified user. - -``` -Set-User -Identity "Osama" -DisplayName "Osama123" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [User Commands](/docs/directorymanager/11.0/managementshell/user/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/userlifecycle/_category_.json b/docs/directorymanager/11.0/managementshell/userlifecycle/_category_.json deleted file mode 100644 index 908326dd20..0000000000 --- a/docs/directorymanager/11.0/managementshell/userlifecycle/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "User Lifecycle Commands", - "position": 160, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/managementshell/userlifecycle/extenduser.md b/docs/directorymanager/11.0/managementshell/userlifecycle/extenduser.md deleted file mode 100644 index 61c133e351..0000000000 --- a/docs/directorymanager/11.0/managementshell/userlifecycle/extenduser.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Extend-User" -description: "Extend-User" -sidebar_position: 10 ---- - -# Extend-User - -Use the **Extend-User** commandlet to extend the user lifecycle of an expired user for specified -period of days. - -## Syntax - -``` -Extend-User --Identity -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] - -``` - -## Required Parameter - -- Identity - -Example: - -The following cmdlet extends the profile validation period for the specified user. The period is -extended up to the specified days for the identity store. - -``` -Extend-User -Identity "CN=ImanamiUser100,OU=BulkUsers,DC=gid,DC=local" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [User Lifecycle Commands ](/docs/directorymanager/11.0/managementshell/userlifecycle/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/userlifecycle/getstatus.md b/docs/directorymanager/11.0/managementshell/userlifecycle/getstatus.md deleted file mode 100644 index 2024b378f4..0000000000 --- a/docs/directorymanager/11.0/managementshell/userlifecycle/getstatus.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Get-Status" -description: "Get-Status" -sidebar_position: 20 ---- - -# Get-Status - -Use the **Get-Status** command to know the status of a specified user as per the profile validation -criteria defined for the identity store. - -## Syntax - -``` -Get-Status --Manager -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- Manager - -Example: - -The following command provides information about the status of the specified user as per the -criteria defined for user lifecycle for the connected identity store. It also provides information -on the number of days left to validate the profile again. - -``` -Get-Status –Manager "Richard" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [User Lifecycle Commands ](/docs/directorymanager/11.0/managementshell/userlifecycle/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/userlifecycle/overview.md b/docs/directorymanager/11.0/managementshell/userlifecycle/overview.md deleted file mode 100644 index b414fe83d4..0000000000 --- a/docs/directorymanager/11.0/managementshell/userlifecycle/overview.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "User Lifecycle Commands" -description: "User Lifecycle Commands" -sidebar_position: 160 ---- - -# User Lifecycle Commands - -This section covers the cmdlets for performing user lifecycle tasks such as: - -- [Extend-User](/docs/directorymanager/11.0/managementshell/userlifecycle/extenduser.md): - activates a user account for a specific number of days -- [Get-Status](/docs/directorymanager/11.0/managementshell/userlifecycle/getstatus.md): - provides the status of a user as per the profile validation criteria. -- [Reinstate-User](/docs/directorymanager/11.0/managementshell/userlifecycle/reinstateuser.md): - activates or disables a user. -- [Terminate-DirectReports](/docs/directorymanager/11.0/managementshell/userlifecycle/terminatedirectreports.md): - terminates direct reports of a user. -- [Transfer-DirectReports ](/docs/directorymanager/11.0/managementshell/userlifecycle/transferdirectreports.md): - transfers direct reports of a user. - -See Also - -- [GroupID Management Shell](/docs/directorymanager/11.0/managementshell/overview.md) -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/userlifecycle/reinstateuser.md b/docs/directorymanager/11.0/managementshell/userlifecycle/reinstateuser.md deleted file mode 100644 index ddef07c4b6..0000000000 --- a/docs/directorymanager/11.0/managementshell/userlifecycle/reinstateuser.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: "Reinstate-User" -description: "Reinstate-User" -sidebar_position: 30 ---- - -# Reinstate-User - -Use the **Reinstate-User** command to activate or disable a user. Users can be disabled for any of -the following reasons: - -- Users that have been disabled for not validating their profiles within the required period. -- Users that have been terminated or disabled by their respective managers. -- Users that are disabled in the directory. - -An administrator or member of Helpdesk role can reinstate a disabled user. - -## Syntax - -``` -Reinstate-User --Identity -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameter - -- Identity - -Example: - -The following command reinstates the specified disabled user of the connected identity store. - -``` -Reinstate-User -Identity "Farzana Jafar" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [User Lifecycle Commands ](/docs/directorymanager/11.0/managementshell/userlifecycle/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/userlifecycle/terminatedirectreports.md b/docs/directorymanager/11.0/managementshell/userlifecycle/terminatedirectreports.md deleted file mode 100644 index a2014212dc..0000000000 --- a/docs/directorymanager/11.0/managementshell/userlifecycle/terminatedirectreports.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: "Terminate-DirectReports" -description: "Terminate-DirectReports" -sidebar_position: 40 ---- - -# Terminate-DirectReports - -Use the **Terminate-DirectRreports** command to terminate user(s). Specify manager of the user you -want to terminate. - -NOTE: You can perform this function in directory as per your role and permissions. - -## Syntax - -``` -Terminate-DirectReports  -  -DirectReports   -  -Manager   -  [-IdentityStoreId ]  -  [-SecurityToken ]  -  [-Credential ]  -  [] - -``` - -## Required Parameters - -- DirectReports -- Manager - -Example: - -The following command terminates the specified users in the connected identity store. Their Manager -is also specified in the command who will receive notification as per the defined workflow. - -``` -Terminate-DirectReports -DirectReports "Irfan","Naeem" -Manager "Raja" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [User Lifecycle Commands ](/docs/directorymanager/11.0/managementshell/userlifecycle/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/managementshell/userlifecycle/transferdirectreports.md b/docs/directorymanager/11.0/managementshell/userlifecycle/transferdirectreports.md deleted file mode 100644 index 31b1d308c1..0000000000 --- a/docs/directorymanager/11.0/managementshell/userlifecycle/transferdirectreports.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: "Transfer-DirectReports" -description: "Transfer-DirectReports" -sidebar_position: 50 ---- - -# Transfer-DirectReports - -Use the **Transfer-DirectReports** commandlet to transfer direct report(s) in the connected identity -store. Specify manager who will approve this transfer. - -NOTE: You can perform this function in directory as per your role and permissions. - -## Syntax - -``` -Transfer-DirectReports --DirectReports --Manager -[-IdentityStoreId ] -[-SecurityToken ] -[-Credential ] -[] -``` - -## Required Parameters - -- DirectReports -- Manager - -Example - -The following command transfers two direct reports to Manager Robin. - -``` -Transfer-DirectReports -DirectReports "F Jafar","azram" -Manager "Robin" -``` - -See Also - -- [All Commands](/docs/directorymanager/11.0/managementshell/commands.md) -- [User Lifecycle Commands ](/docs/directorymanager/11.0/managementshell/userlifecycle/overview.md) -- [Parameters](/docs/directorymanager/11.0/managementshell/parameters.md) diff --git a/docs/directorymanager/11.0/requirements/_category_.json b/docs/directorymanager/11.0/requirements/_category_.json deleted file mode 100644 index e09df45fdf..0000000000 --- a/docs/directorymanager/11.0/requirements/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Requirements", - "position": 20, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "requirements" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/requirements/database.md b/docs/directorymanager/11.0/requirements/database.md deleted file mode 100644 index fd1b0f6cd9..0000000000 --- a/docs/directorymanager/11.0/requirements/database.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Database Requirements" -description: "Database Requirements" -sidebar_position: 40 ---- - -# Database Requirements - -GroupID requires an SQL Server database to store and retrieve data. The SQL database may reside on -any SQL Server in your environment. - -GroupID supports the following versions of SQL Servers: - -| Database Servers | Editions | -| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Microsoft SQL Server 2016 | Express, Standard, Enterprise Express edition available at: [SQL Server 2016 Express edition](https://www.microsoft.com/en-us/download/details.aspx?id=56840) | -| Microsoft SQL Server 2017 | Express, Standard, Enterprise Express edition available at: [SQL Server 2017 Express edition](https://www.microsoft.com/en-us/download/details.aspx?id=55994) | -| Microsoft SQL Server 2019 | Express, Standard, Enterprise Express edition available at: [SQL Server 2019 Express edition](https://www.microsoft.com/en-us/download/details.aspx?id=101064) | -| Microsoft SQL Server 2022 | Express, Standard, Enterprise Express edition available at: [SQL Server 2022 Express edition](https://www.microsoft.com/en-us/sql-server/sql-server-downloads) | - -The SQL Server Browser service is required and during the installation of SQL Server, you can set -its start mode either as Automatic, Disabled or Manual. If it is disabled, SQL Servers are not -listed in the **SQL Server** box on the **Database settings** page of the Configuration Tool. In -that case, you have to type the server name in the **SQL Server** box to select the required server -manually. - -To enable the SQL Server Browser service, see -[How to: Start and Stop the SQL Server Browser Service](http://technet.microsoft.com/en-us/library/ms189093(v=sql.105).aspx). - -See Also - -- [Requirements](/docs/directorymanager/11.0/requirements/requirements.md) diff --git a/docs/directorymanager/11.0/requirements/exchange_servers.md b/docs/directorymanager/11.0/requirements/exchange_servers.md deleted file mode 100644 index 991c7fc428..0000000000 --- a/docs/directorymanager/11.0/requirements/exchange_servers.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "Supported Microsoft Exchange Servers" -description: "Supported Microsoft Exchange Servers" -sidebar_position: 30 ---- - -# Supported Microsoft Exchange Servers - -GroupID supports the following Microsoft Exchange Servers: - -- Microsoft Exchange Server 2013 -- Microsoft Exchange Server 2016 -- Microsoft Exchange Server 2019 - -See Also - -- [Requirements](/docs/directorymanager/11.0/requirements/requirements.md) diff --git a/docs/directorymanager/11.0/requirements/hardware.md b/docs/directorymanager/11.0/requirements/hardware.md deleted file mode 100644 index 840a0fb8c9..0000000000 --- a/docs/directorymanager/11.0/requirements/hardware.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Hardware Requirements" -description: "Hardware Requirements" -sidebar_position: 10 ---- - -# Hardware Requirements - -Minimum hardware requirements for GroupID are: - -- 1.4 GHz or faster with four or more cores on a 64-bit processor -- 8 GB of RAM in case of GroupID-managed Elasticsearch - - 6 GB of RAM in case of self-managed Elasticsearch - - RECOMMENDED: We recommend a dedicated server for GroupID. If you install any other application - on the GroupID server, adjust RAM requirements accordingly. For example, if you install SQL - Server, you may need to add 2-4 GB RAM depending on the edition of the SQL Server. - - Different editions of SQL Server have varying resource requirements. For example: - - - SQL Server Express – Minimal resource usage; 2 GB additional RAM may suffice. - - SQL Server Standard or Enterprise – These require more resources; allocate 4 GB or more - additional RAM for optimal performance. - -- 6 GB or more disk space (for installation only) - - Space requirements are relative to the provider's data size growth for Elasticsearch data. - -See Also - -- [Requirements](/docs/directorymanager/11.0/requirements/requirements.md) diff --git a/docs/directorymanager/11.0/requirements/moreinfo/_category_.json b/docs/directorymanager/11.0/requirements/moreinfo/_category_.json deleted file mode 100644 index 4e3e36b1ec..0000000000 --- a/docs/directorymanager/11.0/requirements/moreinfo/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Service Accounts", - "position": 50, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/requirements/moreinfo/adserviceaccount.md b/docs/directorymanager/11.0/requirements/moreinfo/adserviceaccount.md deleted file mode 100644 index 81af38aff2..0000000000 --- a/docs/directorymanager/11.0/requirements/moreinfo/adserviceaccount.md +++ /dev/null @@ -1,168 +0,0 @@ ---- -title: "Service Account for Active Directory and Exchange" -description: "Service Account for Active Directory and Exchange" -sidebar_position: 10 ---- - -# Service Account for Active Directory and Exchange - -You must have a service account to connect an identity store to an Active Directory domain. GroupID -uses the account to access objects in Active Directory. If Microsoft Exchange is configured as the -messaging provider for the identity store, you can also delegate permissions to this account to -access Exchange objects. - -You can use an existing account, provided it has the required permissions, or you can create a new -one. Instructions for both options are discussed in the following sections, although it is -recommended that you create a new service account rather than using an existing account. - -NOTE: You must add the service account to the membership of the Local Administrator group of the -member server on which GroupID is installed. - -What do you want to do? - -- Use an Existing Account as a Service Account -- Create a New Service Account -- [SQL Server Account and Database Permissions ](#sqlserver-account-and-database-permissions) - -## Use an Existing Account as a Service Account - -Verify that the account that you want to use as a service account has the following Active Directory -and Exchange permissions: - -Exchange permissions are required if Microsoft Exchange is configured as the messaging provider for -the identity store. - -| | | -| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Active Directory | Recommended: **Domain Admins** Minimum permissions: - Grant Permissions to Create and Delete Users, Contacts, and Groups - Grant Permissions to Modify Users, Contacts, and Groups See the Create a New Service Account topic for instructions on modifying the service account to grant the required permissions. | -| Exchange 2013/2016/2019 | Recipient Management | - -## Create a New Service Account - -If you do not have a service account, you need to create one. Follow the three sets of instructions -in this section to: - -1. Create a Service Account: -2. Delegate Active Directory Permissions to the New Account: -3. Delegate Exchange Permissions to the New Account: - - f Exchange is configured as the messaging provider for the identity store) - -### Create a Service Account: - -1. Select either: - - - **Server Manager** from the Windows Start screen. - - Or - - - **Server Manager** from the Quick Launch toolbar available by default on the Windows taskbar. - - Or - - - **Administrative Tools** from the Windows Start screen. - -2. In case of Server Manager selection, select **Tools > Active Directory Users and Computers**. - In case of Administrative Tools selection, select the **Active Directory Users and Computers** - option in the **Name** column. -3. In the directory tree, select the required container, point to **New**, and then click **User**. - The **New User** dialog box is displayed. -4. Enter the required information for the user. - -After creating the user, you can click the container to view the newly created user. - -### Delegate Active Directory Permissions to the New Account: - -In the **Active Directory Users and Computers** console: - -1. Select **Advanced Features** from the **View** menu. -2. In the left pane, right-click the domain name or organizational unit and select the - **Properties** option. On the Properties window, select the **Security** tab. - - ![security_tab](/images/directorymanager/11.0/admincenter/identitystore/moreinfo/security_tab.webp) - -3. Click the **Advanced** button; the **Advanced Security Settings** window is displayed. - - ![advsecsettings](/images/directorymanager/11.0/admincenter/identitystore/moreinfo/advsecsettings.webp) - -4. Click the **Add** button. The **Permission Entry** window is displayed. - - ![permissionentry](/images/directorymanager/11.0/admincenter/identitystore/moreinfo/permissionentry.webp) - -5. Click the **Select a principal** link next to **Principal**. The Select User, Computer, Service - Account, or Group dialog box is displayed. - - ![select_user](/images/directorymanager/11.0/admincenter/identitystore/moreinfo/select_user.webp) - - Type the name of the service account in the **Enter the object name to select** box. Click - **OK**. The **Permissions Entry** window is displayed with all fields enabled (see step 4). - -6. In the **Applies to** box, select **This object and all descendant objects**. -7. Grant Permissions to Create and Delete Users, Contacts, and Groups. - - 1. Scroll down the list of permissions in the **Permissions** box and select the check boxes for - the options shown below: - - ![permissions_list](/images/directorymanager/11.0/admincenter/identitystore/moreinfo/permissions_list.webp) - - 2. Click **OK**. The granted permissions appear in the **Advanced Security Settings** window as - shown below: - - ![advsecsettingsgrantedpermissions](/images/directorymanager/11.0/admincenter/identitystore/moreinfo/advsecsettingsgrantedpermissions.webp) - -8. Grant Permissions to Modify Users, Contacts, and Groups. - - 1. Click the **Add** button on the **Advanced Security Settings** window. The **Permission - Entry** window is displayed (see step 4). - 2. Click the **Select a principal** link next to Principal. The Select User, Computer, Service - Account, or Group dialog box is displayed. Type the name of the service account in the - **Enter the object name to select** box and click **OK**. The **Permissions Entry** window is - displayed. - 3. In the **Applies to** box, select the **Descendant Contact objects** option and select the - **Full control** check box in the _Permissions_ area. It is as follows: - - ![fullcontrolcontact](/images/directorymanager/11.0/admincenter/identitystore/moreinfo/fullcontrolcontact.webp) - - 4. Click **OK**. The granted permissions appear in the **Advanced Security Settings** window as - shown below: - - ![advsecsettingsfullcontrolcontact](/images/directorymanager/11.0/admincenter/identitystore/moreinfo/advsecsettingsfullcontrolcontact.webp) - - 5. Repeat steps a – d for **Descendant Group objects** and **Descendant User objects** on the - Permission Entry window. - The service account now has permissions to modify users, contacts, and groups. These - permissions appear in the **Advanced Security Settings** window. It is as shown below: - - ![advsecsettingsreqpermissions](/images/directorymanager/11.0/admincenter/identitystore/moreinfo/advsecsettingsreqpermissions.webp) - -9. Click **OK**. - -### Delegate Exchange Permissions to the New Account: - -In addition to Active Directory permissions, the service account also needs access permissions for -Exchange, when Exchange is configured as the messaging provider for the identity store. - -Instructions for delegating permissions for each supported Exchange Server version are as follows. - -**For Exchange Server 2013/2016/2019:** - -Launch Exchange Management Shell and type the following command: - -``` -Add-RoleGroupMember "Recipient Management" -Member domain name\user -``` - -## SQL Server Account and Database Permissions - -See the [Authentication Modes](/docs/directorymanager/11.0/about/configure/setupauthentication.md) -topic for information about the roles and permissions the SQL server and database accounts must have -for -[SQL Server Authentication](/docs/directorymanager/11.0/about/configure/setupauthentication.md#sql-server-authentication) -mode and for -[Windows Authentication](/docs/directorymanager/11.0/about/configure/setupauthentication.md#windows-authentication) -mode. - -**See Also** - -- [Create an Identity Store](/docs/directorymanager/11.0/signin/identitystore/create.md) -- [Manage an Identity Store](/docs/directorymanager/11.0/signin/identitystore/manage.md) diff --git a/docs/directorymanager/11.0/requirements/moreinfo/gmsarequirements.md b/docs/directorymanager/11.0/requirements/moreinfo/gmsarequirements.md deleted file mode 100644 index 2ce3b3a682..0000000000 --- a/docs/directorymanager/11.0/requirements/moreinfo/gmsarequirements.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: "gMSA for Active Directory" -description: "gMSA for Active Directory" -sidebar_position: 20 ---- - -# gMSA for Active Directory - -GroupID enables you to use a Group Managed Service Account (gMSA) to connect an Active Directory -identity store to the identity provider. To ensure that the gMSA can be configured and used -effectively, verify the following: - -- General Checks -- Required Permissions -- Allowed Principals - -## General Checks - -- Run the following cmdlet in Windows PowerShell on the GroupID server to verify the gMSA status as - either _true_ or _false_. - - ``` - Test-ADServiceAccount -Identity - ``` - -- In case a gMSA is configured for GroupIDAppPool11 or as a service account for identity store make - sure the account name follows the format: - FQDN\$) - -## Required Permissions - -- The gMSA must have full permissions on the GroupID installation folder. -- It must be a member of the local administrator group (Administrators) on the GroupID server. -- It must be a member of the local IIS group (IIS_IUSRS) on the GroupID server. - -## Allowed Principals - -- The following principals must be allowed to retrieve the managed password for the gMSA that you - use to connect an identity store to an identity provider: - - - GroupID server (type: Computer) - - The account configured for the GroupID app pool (type: Service Account) - -- If any of these principals are not allowed to retrieve the managed password for the gMSA, do the - following depending on the scenario: - - - If a group is mentioned in the 'PrincipalsAllowedToRetrieveManagedPassword' parameter of - the New-ADServiceAccount cmdlet, add the missing principal (GroupID server and/or app pool - account) to the group. - Both these principals must be enlisted directly or indirectly in the - 'PrincipalsAllowedToRetrieveManagedPassword' parameter. - - If an individual principals are mentioned in the 'PrincipalsAllowedToRetrieveManagedPassword' - parameter of the New-ADServiceAccount cmdlet, use the - 'PrincipalsAllowedToRetrieveManagedPassword' parameter of the Set-ADServiceAccount cmdlet to - add the missing principals (GroupID server and/or app pool account). - -NOTE: Restart the GroupID server if you apply any of the above. - -**See Also** - -- [Manage an Identity Store](/docs/directorymanager/11.0/signin/identitystore/manage.md) diff --git a/docs/directorymanager/11.0/requirements/moreinfo/overview.md b/docs/directorymanager/11.0/requirements/moreinfo/overview.md deleted file mode 100644 index c7db96a2a5..0000000000 --- a/docs/directorymanager/11.0/requirements/moreinfo/overview.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "Service Accounts" -description: "Service Accounts" -sidebar_position: 50 ---- - -# Service Accounts - -To connect an Active Directory identity store to a domain, you must use a service account with -elevated privileges. You can also use a Group Managed Service Account (gMSA) for this purpose. - -See the following topics for details on these accounts: - -- [Service Account for Active Directory and Exchange](/docs/directorymanager/11.0/requirements/moreinfo/adserviceaccount.md) -- [gMSA for Active Directory](/docs/directorymanager/11.0/requirements/moreinfo/gmsarequirements.md) diff --git a/docs/directorymanager/11.0/requirements/requirements.md b/docs/directorymanager/11.0/requirements/requirements.md deleted file mode 100644 index 81bd6ae86f..0000000000 --- a/docs/directorymanager/11.0/requirements/requirements.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Requirements" -description: "Requirements" -sidebar_position: 20 ---- - -# Requirements - -This page lists the hardware, operating system, MS Exchange, and database required to run GroupID -11.0. The prerequisites may vary depending on your environment. - -- [Hardware Requirements](/docs/directorymanager/11.0/requirements/hardware.md) -- [Microsoft Windows Servers Requirements ](/docs/directorymanager/11.0/requirements/windowsserver.md) -- [Supported Microsoft Exchange Servers](/docs/directorymanager/11.0/requirements/exchange_servers.md) -- [Database Requirements](/docs/directorymanager/11.0/requirements/database.md) - -Prior to installation, the -[Preparation Tool](/docs/directorymanager/11.0/about/installer/preparationtool.md) -installs the required software and Windows features. See the -[What does the Preparation Tool Install](/docs/directorymanager/11.0/about/installer/whatprepinstall.md) -topic for the list of components the tool installs. - -See Also - -- [Preparation Tool](/docs/directorymanager/11.0/about/installer/preparationtool.md) -- [Installation Tool](/docs/directorymanager/11.0/about/installer/install.md) -- [Configuration Tool](/docs/directorymanager/11.0/about/configure/configure.md) diff --git a/docs/directorymanager/11.0/requirements/windowsserver.md b/docs/directorymanager/11.0/requirements/windowsserver.md deleted file mode 100644 index c6dfcca073..0000000000 --- a/docs/directorymanager/11.0/requirements/windowsserver.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "Microsoft Windows Servers Requirements" -description: "Microsoft Windows Servers Requirements" -sidebar_position: 20 ---- - -# Microsoft Windows Servers Requirements - -GroupID supports the following Microsoft Windows Servers: - -Microsoft Windows Server 2016 Family - -- Windows Server 2016 Standard -- Windows Server 2016 Datacenter - -Microsoft Windows Server 2019 Family - -- Windows Server 2019 Standard -- Windows Server 2019 Datacenter - -Microsoft Windows Server 2022 Family - -- Windows Server 2022 Standard -- Windows Server 2022 Datacenter - -See Also - -- [Requirements](/docs/directorymanager/11.0/requirements/requirements.md) diff --git a/docs/directorymanager/11.0/signin/_category_.json b/docs/directorymanager/11.0/signin/_category_.json deleted file mode 100644 index 12c7ca2b85..0000000000 --- a/docs/directorymanager/11.0/signin/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Access Admin Center", - "position": 40, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "signin" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/applications/_category_.json b/docs/directorymanager/11.0/signin/applications/_category_.json deleted file mode 100644 index f0c8457e02..0000000000 --- a/docs/directorymanager/11.0/signin/applications/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "GroupID Applications", - "position": 120, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "applications" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/applications/admincenter.md b/docs/directorymanager/11.0/signin/applications/admincenter.md deleted file mode 100644 index d7c1799b2b..0000000000 --- a/docs/directorymanager/11.0/signin/applications/admincenter.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: "Admin Center" -description: "Admin Center" -sidebar_position: 10 ---- - -# Admin Center - -Admin Center enables administrators to configure settings that are used by different functions of -the application and manage GroupID clients. - -When multiple instances of GroupID are deployed, a separate Admin Center application is created for -each instance in native IIS. - -What do you want to do? - -- [View Admin Center Hosting Details](#view-admin-center-hosting-details) -- [Launch Admin Center](#launch-admin-center) -- [Change the Application Display Name](#change-the-application-display-name) -- [View Deployment Settings](#view-deployment-settings) -- [Configure Event Logging](#configure-event-logging) - -## View Admin Center Hosting Details - -1. In Admin Center, click **Applications** in the left pane. -2. On the **Applications** page, click the **Admin Center** tab. - The tab displays Admin Center hosted in native IIS. When multiple GroupID instances have been - deployed, you will find multiple Admin Center cards on this tab page, each card representing a - separate instance. See the - [Elasticsearch Clusters, Nodes, and GroupID](/docs/directorymanager/11.0/signin/service/overview.md#elasticsearch-clusters-nodes-and-groupid) - topic. - For details displayed on an Admin Center card, see the table in the - [View Data Service Details](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#view-data-service-details) - topic. - - You cannot create an Admin Center application or delete an existing one from Admin Center. - -## Launch Admin Center - -1. In Admin Center, click **Applications** in the left pane. -2. On the **Admin Center** tab, click **Launch Application** on an Admin Center card. - Provide the Admin Center URL to admin and helpdesk users so they can access it. You can either - copy the URL from the address bar or from Admin Center deployment settings. See the See the - [View the Launch URL for a Service](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#view-the-launch-url-for-a-service) - topic. - -## Change the Application Display Name - -To change the display name of the Admin Center application, see the -[Change a Service’s Display Name](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#change-a-services-display-name) -topic. Replace references to the service with Admin Center. - -## View Deployment Settings - -You can view deployment settings for Admin Center, such as the IIS site that hosts it, the IIS -Application name given to it, and the URL to launch it. - -To view deployment settings: - -1. In Admin Center, click **Applications** in the left pane. -2. On the **Admin Center** tab, click the ellipsis button on an Admin Center card and select - **Settings**. -3. Click **Deployments** under **Server Settings**. The **Deployment Settings** page is displayed, - where you can view Admin Center deployment details in native IIS. - -## Configure Event Logging - -To configure file logging and Windows logging for Admin Center, see the -[Specify Log Settings for a Service](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#specify-log-settings-for-a-service) -topic. - -**See Also** - -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) -- [Services](/docs/directorymanager/11.0/signin/service/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/applications.md b/docs/directorymanager/11.0/signin/applications/applications.md deleted file mode 100644 index 655557798e..0000000000 --- a/docs/directorymanager/11.0/signin/applications/applications.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "GroupID Applications" -description: "GroupID Applications" -sidebar_position: 120 ---- - -# GroupID Applications - -Using Admin Center, you can create and manage the following GroupID applications: - -- [GroupID Portal](/docs/directorymanager/11.0/signin/applications/portal/overview.md) -- [Data Service](/docs/directorymanager/11.0/signin/service/dataservice/overview.md) -- [Security Service](/docs/directorymanager/11.0/signin/service/securityservice/overview.md) -- [Mobile Service](/docs/directorymanager/11.0/signin/service/mobileservice/overview.md) - -Moreover, you can manage some basic deployment and log settings for the following applications: - -- [Admin Center](/docs/directorymanager/11.0/signin/applications/admincenter.md) -- [Replication Service](/docs/directorymanager/11.0/signin/service/replicationservice.md) -- [Email Service](/docs/directorymanager/11.0/signin/service/emailservice.md) -- [Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) - -**See Also** - -- [GroupID Portal](/docs/directorymanager/11.0/signin/applications/portal/overview.md) -- [Services](/docs/directorymanager/11.0/signin/service/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/_category_.json b/docs/directorymanager/11.0/signin/applications/portal/_category_.json deleted file mode 100644 index 348c356c9e..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "GroupID Portal", - "position": 20, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/applications/portal/categories/_category_.json b/docs/directorymanager/11.0/signin/applications/portal/categories/_category_.json deleted file mode 100644 index 65a7dcd192..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/categories/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Display Type Categories", - "position": 40, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "categories" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md b/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md deleted file mode 100644 index f66e32476d..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md +++ /dev/null @@ -1,131 +0,0 @@ ---- -title: "Display Type Categories" -description: "Display Type Categories" -sidebar_position: 40 ---- - -# Display Type Categories - -Using display types, you can publish fields in a GroupID portal to capture and view data. - -A field can be anything from a text box to a drop-down list to a check box, depending on the display -type linked to it. You must also link each field to a schema attribute in the directory. Users can -use the fields in a portal to add and update values for the respective attributes. - -## Schema Attributes and Display Types - -Each schema attribute requires a value of a certain type. - -- Some attributes require a single string value. - Example: Active Directory attributes _name_ and _sAMAccountName_ -- Other attributes can accept multiple values. - Example: Active Directory attribute _proxyAddress_ -- Some attributes accept only one or more distinguished names (DN). - Example: Active Directory attributes _members_ and _memberOf_ -- Some attributes allow only Boolean values (true or false). - Example: Active Directory attributes _hideDLMembership_ and _isDeleted_ - -To ensure that portal users update these attributes as supported by the directory, display types -play an important role. A display type enables you to define the user interface element to use for -an attribute in the portal (for example, text box, drop-down list, check box, etc.). This user -interface element must support the type of data that can be entered as the attribute value, so that -users enter valid data through the portal. - -## Display Type Categories - -Display types support almost all types of schema attributes, such as single-valued, multi-valued, -Boolean, and distinguished name. Based on their characteristics and customization options, display -types are divided into two categories: - -- Basic display types -- Custom display types - -### Basic Display Types - -You can link a basic display type to a schema attribute straight away. Basic display types are: - -- **Text box** - - Use it to collect and display a single value for an attribute. You can link it directly to a - schema attribute. However, to apply additional rules to it, such as assigning a default value or - implementing a regular expression to validate the data entered, you must create a custom display - type from this basic type. See the - [Text Box Display Type](/docs/directorymanager/11.0/signin/applications/portal/categories/textbox.md) - topic. - -- **Password** - - Use this display type with schema attributes that store confidential information. The user - interface element is displayed as a text box in the portal with bullets or asterisks in place of - text. - -- **Multi-value** - - Use it for schema attributes that can accept multiple string values. - A multi-value display type is displayed in the portal as: - - ![multi-value_display_type](/images/directorymanager/11.0/admincenter/portal/displaytype/multi-value_display_type.webp) - - Clicking **Add** launches a dialog box where users can add new values. - -- **Check box** - - Use it for schema attributes that accept true or false values, such as the Active Directory - attributes _reportToOwner_, _reportToOriginator_, and _oOFReplyToOriginator_. - -- **DN** - - Use it for schema attributes that accept a single distinguished name for their value, such as - the Active Directory attributes _Assistant_ and _altRecipient_. The user interface element for - this display type appears as a button that launches the **Find** dialog box, where users can - search and select objects. It is as: - - ![dn](/images/directorymanager/11.0/admincenter/portal/displaytype/dn.webp) - -- **DNs** - - Use it for schema attributes that accept multiple distinguished names, for example, the Active - Directory attributes _member_ and _memberOf_. The user interface element for this display type - is as follows: - - ![multi-value_display_type](/images/directorymanager/11.0/admincenter/portal/displaytype/multi-value_display_type.webp) - - Clicking **Add** displays a quick search field along with an option to launch the **Find** - dialog box where users can search and select the desired objects. - -### Custom Display Types - -Some display types cannot be linked to schema attributes straight away; they must be customized -first. - -Display types that require customization are: - -- Text box - you can use it directly with an attribute, but if you want to apply data validation - checks to it, you must convert it to a custom display type. -- Drop-down list -- Linked-field drop-down list -- Image -- Grid -- Radio -- Multiline text box -- Linked combo - -Some applications of display type are: - -- Define a simple text box type for a telephone number field and apply a validation rule so that it - accepts phone numbers in US format only. -- Define a drop-down list display type containing a list of the departments in your organization. -- Create a linked field drop-down list type where selecting the office address auto populates the - phone number and fax number. - -The default portal template uses several predefined custom display types. See the -[Define Custom Display Types](/docs/directorymanager/11.0/signin/applications/portal/categories/custom.md) -topic to add more display types as needed. - -The **Custom Display Types** page in a portal’s design settings lists all the predefined custom -display types and any custom display types you may have added. - -**See Also** - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) -- [Define Custom Display Types](/docs/directorymanager/11.0/signin/applications/portal/categories/custom.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/categories/custom.md b/docs/directorymanager/11.0/signin/applications/portal/categories/custom.md deleted file mode 100644 index f17f7041db..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/categories/custom.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "Define Custom Display Types" -description: "Define Custom Display Types" -sidebar_position: 10 ---- - -# Define Custom Display Types - -In GroupID, several predefined custom display types are used in the default portal template. To -customize the portal, you can use the predefined custom display types as well as define new ones. - -- [Text Box Display Type](/docs/directorymanager/11.0/signin/applications/portal/categories/textbox.md) -- [Drop-down List Display Type](/docs/directorymanager/11.0/signin/applications/portal/categories/dropdownlist.md) -- [Linked Field Drop-down List Display Type](/docs/directorymanager/11.0/signin/applications/portal/categories/linkeddropdown.md) -- [Image Display Type](/docs/directorymanager/11.0/signin/applications/portal/categories/image.md) -- [Grid Display Type](/docs/directorymanager/11.0/signin/applications/portal/categories/grid.md) -- [Radio Button Display Type](/docs/directorymanager/11.0/signin/applications/portal/categories/radio.md) -- [Multiline Textbox Display Type](/docs/directorymanager/11.0/signin/applications/portal/categories/multilinetextbox.md) -- [Linked Combo Display Type](/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/overview.md) - -## How to Implement Display Types - -On the Search Forms, Properties, Create Object, and Property Validation pages in a portal’s design -settings, select a schema attribute and a display type to link them. - -On linking, the display type is rendered on the portal’s page; enabling users to view or specify a -value for the linked attribute. - -## Delete a Custom Display Type - -You can delete custom display types, including linked combos. - -NOTE: You cannot delete a custom display type that has been linked to a field in the portal. - -To delete a custom display type: - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to delete a custom display type for it. - All identity stores associated with the portal are listed under **Design Settings**. You can - design a different portal for each of these. -4. Click **Custom Display Types** in the left pane. - - - On the **Simple Types** tab, click **Delete** for a custom display type to delete it. - - On the **Linked Combo Types** tab, click **Delete** for a linked combo to delete it. - -5. Click **Save**. - -**See Also** - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) -- [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/categories/dropdownlist.md b/docs/directorymanager/11.0/signin/applications/portal/categories/dropdownlist.md deleted file mode 100644 index 6a5bfb3d25..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/categories/dropdownlist.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: "Drop-down List Display Type" -description: "Drop-down List Display Type" -sidebar_position: 30 ---- - -# Drop-down List Display Type - -Use the drop-down list display type to give portal users a list of options to select from. - -To create a custom drop-down list display type, you have to specify the values (options) to display -in the list. This custom display type can then be linked to a schema attribute. Options in the -drop-down list are the different values that users can select for the schema attribute you link this -display type with. - -### Predefined Drop-down List Display Types - -A few drop-down list display types used in the default portal template are: - -| | Display Type Name | Default Value | Values | -| --- | ------------------ | -------------------------- | ----------------------------------------------------------------------------- | -| 1. | lstSecurity | Private: Closed Membership | Public Semi-Private: Owner Must Approve Private: Closed Membership | -| 2. | lstGroupScope | Universal Group | Domain Local Global Group Universal Group | -| 3. | lstGroupType | None | Security Distribution | -| 4. | membershipeditlist | None | Perpetual Temporary Member Addition Pending Temporary Removed Removal Pending | -| 5. | lstCountry | None | A list of all countries | -| 6. | lstState | None | A list of all states in the US | -| 7. | lstStateProvince | None | A list of all states in the US and provinces in Canada. | -| 8. | lstProvince | None | A list of all provinces in Canada | - -What do you want to do? - -- [Define a Drop-down List Display Type](#define-a-drop-down-list-display-type) - -## Define a Drop-down List Display Type - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to define a custom display type for it. - All identity stores associated with the portal are listed under **Design Settings**. You can - design a different portal for each of these. -4. Click **Custom Display Types** in the left pane. -5. On the **Custom Display Types** page, click **Add** on the **Custom Display Types** tab. -6. On the **New Display Type** pane, enter a name for the display type and select _Dropdown List_ in - the **Type** drop-down list. - You cannot change the name of a custom display type once you have created it. -7. Use the **Values** area to specify the values to be displayed in the drop-down list. - - 1. Click **Add Value**. - 2. Specify a value and a display text for that value in the respective boxes. The display text - will be displayed in the drop-down list, while the value will be saved in the directory or - database when a user selects the display text from the drop-down list. - (The value will be saved in the directory when the drop-down list display type is mapped to a - directory attribute. It will be saved in the database when the display type is mapped to a - database attribute.) - 3. In the **Visibility** drop-down list, select a security role. The value in the drop-down list - will be visible to users of this role and roles with a priority value higher than this role. - See [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - Select _Never_ to hide the value from all users. - 4. Click **OK**. The value is listed in the **Values** area, represented by its display text. - -8. Repeat step 7 to define more values in the list. - - - To edit a value, click **Edit** for it. - - To remove a value from the list, click **Delete** for it. - -9. Select a value in the **Default Selection** list to set it as the default value for the drop-down - list in the portal. - The **Default Selection** list contains all values defined in the **Values** area. -10. Click **OK**. -11. Click **Save** on the **Custom Display Types** page. - -**See Also** - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) -- [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) -- [Define Custom Display Types](/docs/directorymanager/11.0/signin/applications/portal/categories/custom.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/categories/grid.md b/docs/directorymanager/11.0/signin/applications/portal/categories/grid.md deleted file mode 100644 index aa9e8e6690..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/categories/grid.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: "Grid Display Type" -description: "Grid Display Type" -sidebar_position: 60 ---- - -# Grid Display Type - -Use a grid display type to display data in tabular form in the portal. This is especially helpful -when you want to group together multiple attributes of an object. - -For example, use a grid display type to capture information about a group’s additional owners and -members, such as a member’s display name, department, and email. Add a column to the grid for each -attribute required, so that portal users can view or enter values in each column (attribute) for an -object. - -To create a grid, simply define its columns. Each column is mapped to a schema attribute, so each -column represents the value of the attribute it is mapped to. - -After creating the custom grid display type, link it to an appropriate schema attribute to render it -on a portal page. This attribute must support multi-valued distinguished names. Examples of such -Active Directory attributes include _member_ and _memberof_. - -### Predefined Grid Display Types - -A few grid display types used in the default portal template are: - -| Display Type Name | Column Names | Description | -| ----------------- | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | -| membersgrid | Display Name Membership Beginning Ending | Used to display the members in a group, with the display name, membership type, and membership start and end dates for each member. | -| groupMemberOfGrid | Display Name Email Description | Used to display the groups an object is a member of, with the display name, email address, and description shown for each group. | -| directReportsGrid | Display Name Status | Used to display the direct reports of a user, with the display name and status shown for each direct report. | - -What do you want to do? - -- [Define a Grid Display Type](#define-a-grid-display-type) - -## Define a Grid Display Type - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to define a custom display type for it. - All identity stores associated with the portal are listed under **Design Settings**. You can - design a different portal for each of these. -4. Click **Custom Display Types** in the left pane. -5. On the **Custom Display Types** page, click **Add** on the **Custom Display Types** tab. -6. On the **New Display Type** pane, enter a name for the display type and select _Grid_ in the - **Type** drop-down list. - You cannot change the name of a custom display type once you have created it. -7. Use the **Fields** area to specify the columns in the grid. - - 1. Click **Add Field** to define a column. The **Grid Column** pane is displayed. - 2. Select a schema attribute in the **Field** drop-down list. This attribute serves as a column - in the grid. - 3. Enter a name for the column in the **Display Name** box. This name is displayed as the column - name in the portal. - 4. Click **Advanced Options** to specify additional details for the column. - 5. In the **Edit Type** drop-down list, select a display type (for example, a text box or a - drop-down list). In edit mode, the fields in the column will be displayed in the portal using - the display type you select here. - As a prerequisite to making a column editable, make sure that: - - - editing is enabled for the grid (the **Editable** check box is selected on the **New - Display Type** pane), and - - editing is also enabled for the column (the **Editable** check box is selected on the - **Grid Column** pane). - - 6. In the **Search Type** drop-down list, select a display type (for example, a text box or a - drop-down list). The search filter for the column will be displayed in the portal using the - display type you select here. - As a prerequisite to making a column searchable, make sure that: - - - search is enabled for the grid (the **Show Search Filters** check box is selected on the - **New Display Type** pane), and - - search is also enabled for the column (the **Searchable** check box is selected on the - **Grid Column** pane). - - 7. Select the **Searchable** check box to enable search for the column. - 8. Select the **Sortable** check box to enable users to sort the data displayed in the grid on - the basis of the column attribute (by clicking the column header). - 9. Select the **Editable** check box to enable users to update the column value, in which case - the fields in the column are editable. Clear this check box to make the column read-only. - 10. Click **OK**. The column name is displayed in the **Fields** area on the **New Display - Type** pane. - -8. Repeat step 7 to add more columns to the grid. - - - To edit the details of a column, click **Edit** for it. - - To remove a column from the grid, click **Delete** for it. - - To change the order of columns in the grid, click the equal sign for a column and drag to - change its position. - -9. Click **Advanced Options** to specify additional details for the grid. -10. Specify a height and width for the grid by entering values in the **Height** and **Width** - boxes. - From the drop-down list next to each box, select a unit for the height and width. - - - **%:** to specify the height and width of the grid in terms of a percentage of the page's - height and width. - - **px:** to specify the height and width of the grid in pixels. - -11. In the **Page Size** box, type or select a value. This value represents the number of records to - show in the grid, with pagination options to navigate to more records. -12. Select the **Show Search Filters** check box to add a row to the grid that serves as a search - bar. This row appears in the grid, as shown below: - - ![search_row_in_grid](/images/directorymanager/11.0/admincenter/portal/displaytype/search_row_in_grid.webp) - -13. Select the **Editable** check box to make the rows in the grid available for editing. Else, the - grid will be read-only. -14. Click **OK**. -15. Click **Save** on the **Custom Display Types** page. - -**See Also** - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) -- [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) -- [Define Custom Display Types](/docs/directorymanager/11.0/signin/applications/portal/categories/custom.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/categories/image.md b/docs/directorymanager/11.0/signin/applications/portal/categories/image.md deleted file mode 100644 index 4d492adf01..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/categories/image.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: "Image Display Type" -description: "Image Display Type" -sidebar_position: 50 ---- - -# Image Display Type - -Use the image display type for schema attributes of the user object type that can store image data. -The following table lists the supported attributes for Active Directory: - -| AD Attribute | CN | Description | Max. Image Size (KB) | -| -------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | -| jpegPhoto | JpegPhoto | Stores one or more images of a user in JPEG File Interchange Format (JFIF). The image stored in this attribute is mainly used by SharePoint. | 10240 | -| Photo | Photo | An object encoded in G3 fax as explained in recommendation T.4, with an ASN.1 wrapper to make it compatible with an X.400 BodyPart as defined in X.420. | NA | -| thumbnailPhoto | Picture | An image of a user for display in Outlook. A space-efficient format like JPEG or GIF is recommended. | 100 | -| thumbnailLogo | Logo | A small-sized image; a user’s logo. | 32 | - -To define an image display type, specify the image’s display dimensions (height and width), that -would be used to display the image in the portal. You must also specify the maximum image size that -can be uploaded for this display type. - -A custom image display type is rendered on a portal page as: - -![photo_placeholder](/images/directorymanager/11.0/admincenter/portal/displaytype/photo_placeholder.webp) - -Click **Edit** to launch the **Manage Photo** dialog box for uploading a photo. The dialog box also -provides many image editing options, including rotate, crop, flip, and re-size. - -What do you want to do? - -- [Define an Image Display Type](#define-an-image-display-type) - -## Define an Image Display Type - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to define a custom display type for it. - All identity stores associated with the portal are listed under **Design Settings**. You can - design a different portal for each of these. -4. Click **Custom Display Types** in the left pane. -5. On the **Custom Display Types** page, click **Add** on the **Custom Display Types** tab. -6. On the **New Display Type** pane, enter a name for the display type and select _Image_ in the - **Type** drop-down list. - You cannot change the name of a custom display type once you have created it. -7. In the **Height** and **Width** boxes, enter image dimensions (in pixels). The image will be - displayed in the portal with these dimensions. - The default is set to 100 x 100 pixels. -8. In the **Maximum Size (KB)** box, enter the maximum image size (in kilobytes) that users can - upload for this display type. -9. Click **OK**. -10. Click **Save** on the **Custom Display Types** page. - -You can link this custom image display type to a schema attribute (such as the Active Directory -attributes _jpegPhoto_, _Photo_, _thumbnailPhoto_, and _thumbnailLogo_) on the **Search Forms, -Properties, Create Object**, and **Property Validation** pages in **Design Settings**, after which -the image placeholder is displayed on the respective portal page. Users can use it to upload their -photos. - -**See Also** - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) -- [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) -- [Define Custom Display Types](/docs/directorymanager/11.0/signin/applications/portal/categories/custom.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/_category_.json b/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/_category_.json deleted file mode 100644 index 3982186173..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Linked Combo Display Type", - "position": 90, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/details.md b/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/details.md deleted file mode 100644 index f86df8e05f..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/details.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: "Linked Combo Type - Details" -description: "Linked Combo Type - Details" -sidebar_position: 10 ---- - -# Linked Combo Type - Details - -Enter the following details about the linked combo on the **Details** page of the **Linked Combo -Display Type** wozard: - -1. Enter a name for the linked combo in the **Linked Combo Name** box. - You cannot change the name of a custom display type once you have created it. -2. Next, specify the data source for the linked combo. You can either use an already uploaded file - or upload a new one. - - - Use the **Available Data Sources** drop-down list to select an already uploaded file. This may - be required, for example, when your source file contains the data and relationships for - several fields, and you want to manage those relationships using multiple linked combos rather - than one combo. Hence the need to upload the same file for multiple linked combos. - The list displays all the data source files previously used to create linked combos for this - portal. To export a file, select it and click **Export**. The file is saved to the download - location set in your browser settings. - - To upload a new file, click **Browse** next to the **File Name** box and select the XML or - Microsoft Excel file containing the data to populate the linked combo and the display types - linked to it. - - If the source file is a Microsoft Excel (.xls or .xlsx) file, GroupID automatically creates its - XML version to process it. To learn about the Excel file format, see the - [Excel Data File Format](/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/fileformat.md) - topic. - -3. Click **Next**. - -See Also - -- [Linked Combo Display Type](/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/fileformat.md b/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/fileformat.md deleted file mode 100644 index 3f7e4f5875..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/fileformat.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "Excel Data File Format" -description: "Excel Data File Format" -sidebar_position: 30 ---- - -# Excel Data File Format - -The following table explains the rules for the Microsoft Excel workbook to use for the linked combo -display type: - -| | Rule for | Description | -| --- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 1. | Worksheet names | The worksheet names should follow the format: **Number-Name** Where: - _Number_ is the serial number based on the order of the worksheet and it should start from zero. This means that the number for the first worksheet should be 0, the second should be 1, the third should be 2, and so on. - _Name_ is the name of the worksheet that identifies the data it contains. It can be anything you want. ![image](/images/directorymanager/11.0/admincenter/portal/linkedcombo/image.webp) | -| 2. | Identity column | Each worksheet should have an identity _(ID)_ column that contains a unique value for every record entered in the sheet. ![image1](/images/directorymanager/11.0/admincenter/portal/linkedcombo/image1.webp) | -| 3. | Name column | Each worksheet should have a _Name_ column. This column contains the values to be displayed in the linked combo. For example, the _Name_ column in the 0-Company worksheet contains the company name for every record in the sheet. | -| 4. | Foreign Key column | Each worksheet that contains data related to that on the previous sheet, should have a foreign key identity column (_FK_). This column contains the ID of the record (from the immediately previous sheet) that the current record relates to. ![image2](/images/directorymanager/11.0/admincenter/portal/linkedcombo/image2.webp) | - -See Also - -- [Linked Combo Display Type](/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/overview.md b/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/overview.md deleted file mode 100644 index 1ff3ac4815..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/overview.md +++ /dev/null @@ -1,191 +0,0 @@ ---- -title: "Linked Combo Display Type" -description: "Linked Combo Display Type" -sidebar_position: 90 ---- - -# Linked Combo Display Type - -A linked combo is a custom display type that you can link to other display types on a portal page. -When a user selects a value from a linked combo, the values for the display types linked to it are -populated accordingly. A common application of the linked combo involves the _country, state_, and -_city_ fields. When a user selects a country, the _state_ field changes to display the states in -that country. On selecting a state, the city field displays the cities in that state. - -In the default portal template, one linked combo display type _CountryState_ is defined, that -establishes a relationship between the country and state fields. Selecting a country populates the -_State_ list. - -A linked combo display type also allows for more complex linking between fields, such as would be -needed to link the office, city, state, and country fields. Relationships can be extended to any -level. You can define one linked combo display type to manage these relationships, or simplify the -task by defining multiple combos, for example: - -- The first linked combo establishes a relationship between the country and state fields. -- The second linked combo establishes a relationship between the state and city fields. -- The third establishes a relationship between the city and office fields. - -Before creating a linked combo, you must create and maintain an external data file containing the -data and relationships for the required fields. The data source file is used to populate the linked -combo and the fields linked to it. - -NOTE: When defining a linked combo, consider the following: - -- You can define multiple linked combos for an object, provided that different attributes are used - for the combos. For example, you define a linked combo for the user object using the company, - department, and title attributes. To define another combo for the user object, you cannot use any - of the previously used attributes. -- For two different object types, you can use the same attributes in different linked combos. - -#### Linked Combo Data File - -The linked combo requires an XML file that contains the data for the display type itself and the -other display types that will be linked to it. GroupID also supports the Microsoft Excel file format -(.xls or .xlsx), that it automatically converts to XML. The data in the Excel file must be in a -specific format for GroupID to process it. - -For information about the Excel file format, see the -[Excel Data File Format](/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/fileformat.md) -topic. - -NOTE: If data in the source file is updated, you must reload the file for changes to take effect. - -What do you want to do? - -- [Define a Linked Combo Display Type](#define-a-linked-combo-display-type) -- [Implement a Linked Combo](#implement-a-linked-combo) -- [Reload the Source Data File](#reload-the-source-data-file) - -## Define a Linked Combo Display Type - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to define a custom display type for it. - All identity stores associated with the portal are listed under **Design Settings**. You can - design a different portal for each of these. -4. Click **Custom Display Types** in the left pane. -5. On the **Custom Display Types** page, click the **Linked Combo Types** tab. -6. Click **Add** to define a linked combo display type. -7. Complete the pages of the **Linked Combo Display Type** wizard. - - 1. On the **Details** page, provide the source data file. See the - [Linked Combo Type - Details](/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/details.md) - topic for more info. - 2. On the **Schema** page, define the parent-child relationship between fields. See the - [Linked Combo Type - Schema](/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/schema.md) - topic for details. - -8. Click **OK**. -9. Click **Save** on the **Custom Display Types** page. - The linked combo display type is listed on the **Linked Combo Types** tab. - -## Implement a Linked Combo - -To use a linked combo in a portal, do the following: - -1. Link a linked combo display type to a schema attribute on the **Search Forms**, **Properties**, - **Create Object**, or **Property Validation** page in Design settings. The linked combo is - rendered as a drop-down list in the portal. - On the **Schema** page of the **Linked Combo Display Type** wizard, you selected an expression - (representing a data column in the source Excel workbook) in the **Type binding expression** - drop-down list. Each record in this column will be displayed as a value in the drop-down list in - the portal. When a user selects a value, it will be stored as the value of the schema attribute - mapped to the linked combo display type. -2. The fields listed in the **Linked Field** list on the **Schema** page are already mapped to - schema attributes. For all fields that you use in a linked combo, one of the following cases - apply: - - - If a field’s schema attribute is already rendered as a field on the same portal page, it auto - connects to the linked combo. Values in this field are displayed with respect to the - expression mapped to it on the **Schema** page. - Let’s assume you select a field, Country, in the _Linked Field_ list, which is mapped to the - “co” attribute in Active Directory. You link it to the ‘Country Name’ column in the source - file. This column contains the names of all the countries in the world. - Now in the default portal template, the ‘co’ attribute is already rendered as a drop-down list - on the _General_ tab in user properties and displays the names of Asian countries. When you - apply your linked combo (containing the Country field) on the General tab, it auto-connects to - the ‘co’ attribute and replaces its values (the list of Asian countries) with the values from - the source data file (the names of all countries of the world). - - If a field’s schema attribute is not previously used on the same portal page as the linked - combo, the field will not be displayed in the portal. You must link this attribute to a - display type and render it on the same portal page as the linked combo. Values in this field - will be displayed with respect to the expression mapped to it on the **Schema** page. - - In any case, set the display type of each field in a linked combo to a _Textbox_ or _Dropdown_ - list, depending on the kind of values it would hold. - -### Example Case for Implementing a Linked Combo - -In this example, we will link a linked combo display type to the Company attribute (field) on the -General tab of the user properties page in the portal. Next, we will present how the fields used in -the linked combo should be rendered on the General tab, so that the fields are connected. - -#### Step 1: Link a Linked Combo to a Schema Attribute - -1. In Admin Center, select **Applications** in the left pane. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings.** -4. In the left pane, click **Properties**. -5. On the **Properties** page, select _User_ in the **Select Directory Object** list. -6. The names of all tabs on the portal’s user properties page are listed under **Name**. To render - the linked combo on the **General** tab, click **Edit** for it. -7. On the **Edit Design Category** pane, let’s link the _Company_ field to the linked combo. Click - **Edit** for the _Company_ field. -8. On the **Edit Field** pane, select a schema attribute to map your linked combo to, and in the - **Display Type** drop-down list, select your linked combo display type. -9. Click **OK** on the panes to close them. -10. Click **Save** on the **Custom Display Types** page. - -The _Company_ field would be displayed as a drop-down list on the _General_ tab of the user -properties page in the portal. Values in this list will be populated from the combo’s source data -file, with respect to the expression selected in the **Type Binding Expression** drop-down list on -the **Linked Combo Display Type** wizard. - -#### Step 2: Render the Linked Fields in the Combo on the Portal - -If the fields defined in a linked combo are already rendered on the same portal page as the linked -combo, make sure that the appropriate display type is used for them. Some examples are shown in the -table below. - -On the other hand, if the fields defined in a linked combo are not available on the same portal page -as the linked combo, you must create the fields first. These fields must be linked to the same -schema attributes as the combo’s fields are linked with, and an appropriate display type must be set -for them. The following table shows an example of the field names and the display types to set for -them. - -| Field | Display Type to use | Notes | -| ------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Country | Drop-down list | Create a Drop-down List display type and use it for this field or use the default drop-down list, lstCountry. lstCountry has values defined for it, which may produce undesirable results. | -| State | Drop-down list | Create a Drop-down List display type and use it for this field or use the default drop-down list, lstState. | -| City | Drop-down list | Create a Drop-down List display type and use it for this field or use the default drop-down list, lstCity. | -| Address | Text box | Use a simple text box display type with this field. | -| Zip | Text box | Use a simple text box display type with this field or use the default textbox display type, maskZIPCode. This default display type comes with a validation check that ensures that users enter the zip code in the required format. | - -## Reload the Source Data File - -When you update data in the source file, you must also reload the file for changes to take effect. - -**To reload the file:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to define a custom display type for it. - All identity stores associated with the portal are listed under **Design Settings**. You can - design a different portal for each of these. -4. Click **Custom Display Types** in the left pane. -5. On the **Custom Display Types** page, click the **Linked Combo Types** tab. -6. Click **Edit** for a linked combo to reload the source data file for it. The **Linked Combo - Display Type** wizard is displayed. -7. On the **Details** page, click **Browse** to select the file to load. Then click **Next**. -8. On the **Schema** page, make changes to the relationships, if required, and click **OK**. - See the - [Linked Combo Type - Schema](/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/schema.md) - topic for details. -9. Click **Save** on the **Custom Display Types** page. - -**See Also** - -- [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) -- [Define Custom Display Types](/docs/directorymanager/11.0/signin/applications/portal/categories/custom.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/schema.md b/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/schema.md deleted file mode 100644 index b108de81ca..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/schema.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: "Linked Combo Type - Schema" -description: "Linked Combo Type - Schema" -sidebar_position: 20 ---- - -# Linked Combo Type - Schema - -On the **Schema** page of the **Linked Combo Display Type** wizard, define the parent-child -relationship between fields. Every linked field must have a parent field except the primary parent -field. Each linked field also requires a data binding expression that defines its mapping with the -underlying XML data. GroupID provides a list of all possible data binding expressions (extracted -from the XML source file) to select from. - -Do the following: - -1. Map the **Type binding expression** list to the first worksheet (0-``) of the - source Excel workbook. The portal fields use the binding expression to obtain reference to the - worksheet in the source file to retrieve and display data from. - Expressions in the **Type binding expression** list are auto generated with respect to the number - of sheets in the source Excel workbook and the number of columns in a sheet. It is as: - - ![binding_expressions_examples](/images/directorymanager/11.0/admincenter/portal/linkedcombo/binding_expressions_examples.webp) - - In an expression, worksheet names are enclosed in brackets while the names of the data columns - in the worksheets are without brackets. The expressions in the figure above indicate that the - Excel workbook has three worksheets: _Company_, _Country_, and _City_. - - - The _Company_ worksheet has one data column: _Name_. - - The _Country_ worksheet has two data columns: _Name_ and _State_. - - The _City_ worksheet has four data columns: _Name_, _Address_, _Address2_, and _ZipCode_. - -2. Use the grid on the **Schema** page to link and relate the data from the Excel workbook sheets to - the portal fields. - - 1. Click **Add** to add a row. - - ![child_fields](/images/directorymanager/11.0/admincenter/portal/linkedcombo/child_fields.webp) - - 2. In the **Linked Field** drop-down list, select a field (for example, Country). This field - will be linked to the data column represented by the binding expression you select in the - **Binding Expression** drop-down list. - The **Linked Field** list contains predefined, hard coded fields, where each field is already - mapped to a schema attribute. When you map a field to an expression, the values in the - worksheet’s data column will be available for the field in the portal. When a portal user - selects a value, it is set as the attribute’s value for the field. - 3. The **Parent Field** list does not apply to the first row. For all other rows, use it to - select the name of the parent field for the selected linked field. For example, when _State_ - is selected in the _Linked Field_ list, select Country as the parent field. - 4. In the **Binding Expression** drop-down list, select an expression that represents the data - column you want to link to the field selected in the **Linked Field** list. - Expressions are auto generated with respect to the number of sheets in the source Excel - workbook and the number of columns in a sheet, as shown in the figure above. - - The following example shows the relationship for an Excel workbook with three worksheets: - 0-Company, 1-Country, and 2-City. (You can also create two linked combos to manage the - relationship between these three fields.) - - ![schema](/images/directorymanager/11.0/admincenter/portal/linkedcombo/schema.webp) - - The relationship formed between fields can be explained as: - - - The Company field, containing all records from the Name column on the Company worksheet, will - be the primary linked combo field in the portal. - - The Country field in the portal will contain all records from the Name column on the Country - worksheet. - - The State field in the portal will contain all records from the State column on the Country - worksheet. The Country field will be the parent field for the State field, which means that - when a user selects a country, the State field will show the states in that country. - - The City field in the portal will contain all records from the Name column on the City - worksheet. The State field will be the parent field for the City field, which means that when - a user selects a state, the City field will show the cities in the selected state. - - The complete structure for the data in the Excel workbook is explained in the following table. - - | Worksheet | Column | Description | Example | - | --------- | ---------------------------- | ------------------------------------------------- | --------- | - | 0-Company | ID | Company identifier | 1000 2000 | - | Name | Company name | Netwrix Consulting Netwrix Software | | - | 1-Country | FK | Company identifier with which to link this record | 1000 2000 | - | ID | Country identifier | 1010 2010 | | - | Name | Country name | United States Pakistan | | - | State | State abbreviation | CA PU | | - | 2-City | FK | Country identifier with which to link this record | 1010 2010 | - | ID | City identifier | 1011 2011 | | - | Name | City name | Livermore Lahore | | - | Address | Office address 1 | 5099 Preston Ave T8-A, Gulberg | | - | Address2 | Office address 2 | | | - | Zip Code | Postal zip code or area code | 94551 54600 | | - -See Also - -- [Linked Combo Display Type](/docs/directorymanager/11.0/signin/applications/portal/categories/linkedcombo/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/categories/linkeddropdown.md b/docs/directorymanager/11.0/signin/applications/portal/categories/linkeddropdown.md deleted file mode 100644 index 319ee1addf..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/categories/linkeddropdown.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: "Linked Field Drop-down List Display Type" -description: "Linked Field Drop-down List Display Type" -sidebar_position: 40 ---- - -# Linked Field Drop-down List Display Type - -A linked field drop-down list is displayed in the portal as a drop-down list with multiple values. -When a user selects a value, all fields linked to that value are auto populated. Since these fields -remain isolated, they are not displayed to the user. - -Use a linked field drop-down list, for example, when you want the _Office Address, Business Phone -Number, Fax Number_ and _Email_ fields to be auto populated when a user selects his or her office -name from a drop-down list. Here, `` is the key value while Office Address, Business -Phone Number, Fax Number and Email are its linked (isolated) fields. - -To define a linked field drop-down list: - -- Specify a value, called a key value. -- Link schema attributes (fields) with this key value. For each attribute that you link, you must - also provide a value. - -What do you want to do? - -- [Define a Linked Field Drop-down List Display Type](#define-a-linked-field-drop-down-list-display-type) - -## Define a Linked Field Drop-down List Display Type - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to define a custom display type for it. - All identity stores associated with the portal are listed under **Design Settings**. You can - design a different portal for each of these. -4. Click **Custom Display Types** in the left pane. -5. On the **Custom Display Types** page, click **Add** on the **Custom Display Types** tab. -6. On the **New Display Type** pane, enter a name for the display type and select _Linked Field - Dropdown List_ in the **Type** drop-down list. - You cannot change the name of a custom display type once you have created it. -7. Use the **Values** area to specify the key values to appear in the drop-down list. - - 1. To add a key value, click **Add Value**. The **Key Value** pane is displayed. - 2. In the **Key Value** box, enter a key value. A key value is one that is displayed in the - drop-down list in the portal. Selecting it auto populates the isolated linked fields. - 3. The **Linked Fields** area is for specifying the fields to link with this key value. Click - **Add Linked Field**. The **Linked Field** pane is displayed. - - 1. In the **Field** drop-down list, select a schema attribute that you want to create as a - linked field for the key value. - 2. In the **Value** box, enter a value for the attribute. - 3. Click **OK**. The linked field gets listed in the **Linked Fields** area on the **Key - Value** pane. - - 4. Repeat step 7c to add as many linked fields as required. - 5. After defining the linked fields, click **OK** on the **Key Value** pane. - With that, the key value is displayed in the **Values** area on the **New Display Type** - pane. - -8. Repeat step 7 to define more values in the list. - - - To edit a key value, click **Edit** for it. - - To remove a key value from the list, click **Delete** for it. - -9. Select a key value in the **Default Selection** list to set it as the default value to be - displayed in the drop-down list in the portal. - The **Default Selection** list contains all key values defined in the **Values** area. -10. Click **OK**. -11. Click **Save** on the **Custom Display Types** page. - -A linked field drop-down list is displayed in the portal as a drop-down list. When a portal user -selects a value and saves it, the isolated linked fields are auto populated with the predefined -values and a message, similar to the following, is displayed. - -![linked_field_message](/images/directorymanager/11.0/admincenter/portal/displaytype/linked_field_message.webp) - -Here, **Department** is the key value. Selecting it in the drop-down list populates the **Company** -field with the predefined value. - -**See Also** - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) -- [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) -- [Define Custom Display Types](/docs/directorymanager/11.0/signin/applications/portal/categories/custom.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/categories/multilinetextbox.md b/docs/directorymanager/11.0/signin/applications/portal/categories/multilinetextbox.md deleted file mode 100644 index 7afa70afcf..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/categories/multilinetextbox.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: "Multiline Textbox Display Type" -description: "Multiline Textbox Display Type" -sidebar_position: 80 ---- - -# Multiline Textbox Display Type - -A multiline textbox allows portal users to type information into a box that supports word wrapping -and vertical scrolling. - -Like a textbox, use a multiline textbox display type to collect and display a single value for an -attribute. - -The multiline textbox display type is especially useful for fields that require a lengthy value, -such as the _Description_ field. Moreover, as it can have multiple rows, users can view more -characters of the entered value on screen as compared to a textbox. - -In the portal’s default template, the _Description_ field on the _Create New Group_ page uses the -multiline textbox display type. It is as: - -![multiline_textbox](/images/directorymanager/11.0/admincenter/portal/displaytype/multiline_textbox.webp) - -To define a multiline textbox display type, provide a name for it and specify the on-screen width by -giving the number of rows to be displayed for it. Portal users can use the _Enter_ key to add as -many rows as required while entering data. - -What do you want to do? - -- [Define a Multiline Textbox Display Type](#define-a-multiline-textbox-display-type) - -## Define a Multiline Textbox Display Type - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to define a custom display type for it. - All identity stores associated with the portal are listed under **Design Settings**. You can - design a different portal for each of these. -4. Click **Custom Display Types** in the left pane. -5. On the **Custom Display Types** page, click **Add** on the **Custom Display Types** tab. -6. On the **New Display Type** pane, enter a name for the display type and select _Multiline - Textbox_ in the **Type** drop-down list. - You cannot change the name of a custom display type once you have created it. -7. In the **Rows** box, type or select a value to specify the number of rows the multiline textbox - display type should have. These rows make up the on-screen length of the textbox. Users can use - the _Enter_ key to add as many rows as required while entering data. -8. Click **OK**. -9. Click Save on the **Custom Display Types** page. - -**See Also** - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) -- [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) -- [Define Custom Display Types](/docs/directorymanager/11.0/signin/applications/portal/categories/custom.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/categories/radio.md b/docs/directorymanager/11.0/signin/applications/portal/categories/radio.md deleted file mode 100644 index ec403d8bfd..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/categories/radio.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: "Radio Button Display Type" -description: "Radio Button Display Type" -sidebar_position: 70 ---- - -# Radio Button Display Type - -Use a radio display type to present the portal users with a predefined set of mutually exclusive -options, of which they can choose one. Usually radio buttons in a set are grouped together under a -label. - -To create a radio display type, provide a label for a set of radio buttons and then add at least two -radio buttons to the set. - -### Predefined Radio Display Types - -A few radio display types used in the default portal template are: - -| Display Type Name | Values | Description | -| ----------------- | ---------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| groupMainType | Static Group Smart Group Password Expiry Group Organizational Dynasty Geographical Dynasty Managerial Dynasty Custom Dynasty | Enables users to specify the type of group or Dynasty they want to create. | -| groupType | Security Group Distribution List | Enables users to specify whether they want to create a security group or a distribution list. | -| reportTo | Report To Originator Report To Owner Don’t Send Delivery Reports | Enables users to set delivery report recipients when a message sent to a group or user is not delivered. | - -What do you want to do? - -- [Define a Radio Display Type](#define-a-radio-display-type) - -## Define a Radio Display Type - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to define a custom display type for it. - All identity stores associated with the portal are listed under **Design Settings**. You can - design a different portal for each of these. -4. Click **Custom Display Types** in the left pane. -5. On the **Custom Display Types** page, click **Add** on the **Custom Display Types** tab. -6. On the **New Display Type** pane, enter a name for the display type and select _Radio_ in the - **Type** drop-down list. - You cannot change the name of a custom display type once you have created it. -7. Use the **Values** area to define a set of radio buttons, to be displayed in the portal under the - label you entered in the **Name** box. - You must individually define each radio button in the set. - - 1. Click **Add Value** to define a radio button. The **Radio Button** pane is displayed. - 2. In the **Display Name** box, enter a name for the radio button. This name is the radio - button’s label in the portal, so it should represent the value of the radio button. - 3. In the **Tooltip** box, enter the text that is displayed when a user hovers the mouse over - the radio button. - 4. Enter a description for the radio button in the **Description** box. - 5. Select a security role in the **Visibility** drop-down list. The radio button will be visible - to users of this role and roles with a priority value higher than this role. See - [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - Select _Never_ to hide the radio button from all users. - 6. Click **OK**. The radio button is listed in the **Values** area on the **New Display Type** - pane. - -8. To define another radio button in the set, repeat step 7. - - - To modify the details of a radio button, click **Edit** for it. - - To remove a radio button from the set, click **Delete** for it. - - To change the order in which radio buttons are displayed in the portal, click the equal sign - for a radio button and drag to change its position in the list. - -9. In the **Default Selection** drop-down list, select a radio button. In the portal, this radio - button will be the default selection in the radio button set. - The **Default Selection** list contains all radio buttons defined in the **Values** area. -10. Click **OK**. -11. Click **Save** on the **Custom Display Types** page. - -**See Also** - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) -- [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) -- [Define Custom Display Types](/docs/directorymanager/11.0/signin/applications/portal/categories/custom.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/categories/textbox.md b/docs/directorymanager/11.0/signin/applications/portal/categories/textbox.md deleted file mode 100644 index 625cc5f9f9..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/categories/textbox.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: "Text Box Display Type" -description: "Text Box Display Type" -sidebar_position: 20 ---- - -# Text Box Display Type - -A text box display type can be used without customization, but you must customize it when you want -to: - -- specify a default value for it -- use regular expressions to validate the data users enter in the text box -- force users to provide a unique value for the field - -## What are Regular Expressions? - -A regular expression is a pattern of text that consists of ordinary characters (for example, letters -a through z) and special characters, known as metacharacters. You can use regular expressions to -ensure that users enter data in an input field according to a standard pattern. For example, the -regular expression for a US phone number of the pattern: (555) 123-4567 will be: ^\(\d\d\d\) -\d\d\d-\d\d\d\d. - -To learn about regular expressions and their syntax, see - -- [Introduction to Regular Expressions](https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/28hw3sce(v%3dvs.100)) -- [Regular Expression Syntax Reference](https://msdn.microsoft.com/en-us/library/ms840427.aspx) - -## Predefined Text Box Display Types - -A few text box display types used in the default portal template are: - -| | Display Type Name | Default Value | Regular Expression | Regex Example | -| --- | ------------------ | ------------- | -------------------------------------------------------------- | ------------------------------------ | ----------------- | ------------------- | -| 1. | maskPhoneUSwithExt | None | ^\(\d\d\d\) \d\d\d-\d\d\d\d x\d\d\d$ | (555) 123-4567 x890 | -| 2. | SmtpEmail | None | ^([a-zA-Z0-9_\-\.]+)@((\[[0-9]+\.[0-9]+\.[0-9]+\.) | (([a-zA-Z0-9\-]+\.)+))([a-zA-Z]+ | [0-9]+)(\]?)$ | someone@netwrix.com | -| 3. | maskPhoneUS | None | ^\(\d\d\d\) \d\d\d-\d\d\d\d$ | (555) 123-4567 | -| 4. | maskEmailAddress | None | ^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.) | (([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4} | [0-9]{1,3})(\]?)$ | user@domain.com | -| 5. | maskZipCode | None | \d{5}(-\d{4})? | NNNNN-NNNN | - -What do you want to do? - -- [Define a Text Box Display Type](#define-a-text-box-display-type) - -## Define a Text Box Display Type - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to define a custom display type for it. - All identity stores associated with the portal are listed under **Design Settings**. You can - design a different portal for each of these. -4. Click **Custom Display Types** in the left pane. The **Custom Display Types** page is displayed. -5. Click **Add** on the **Custom Display Types** tab. -6. On the **New Display Type** pane, enter a name for the display type in the **Name** box. - You cannot change the name of a custom display type once you have created it. -7. Select _Textbox_ in the **Type** drop-down list. -8. Specify a value in the **Default Value** box to set it as the default value for the text box. - Users can modify this value in the portal. -9. In the **Regular Expression** box, type a regular expression to use for validating data that - users enter in the text box using the portal. Leave this box blank if you do not want to apply a - validation rule to the data. - - 1. Click **Test Regular Expression** to check if the regular expression is valid. - 2. On the **Test Regular Expression** dialog box, type an example that satisfies the regular - expression and click **Test**. - -10. In the **Error Message** box, enter the text to be displayed as an error message when portal - users enter data in the text box that does not conform to the regular expression. -11. You can place a real-time validation check to ensure that users enter a unique value for the - field. GroupID can look up the value for uniqueness in the directory or an external data source. - The portal prevents users from proceeding unless a unique value is provided. - - - Select the **Unique** check box to force the user to enter a value that is unique for the - field (attribute) in the directory. - - You can also use an external data source, such as an Excel file, to validate the uniqueness of - the value in real time. Use an API to connect to the external data source. Select the - **External Validation URL** check box and enter the URL of your API in the box. - - **Example**: Link this text box display type to the group name field on the Create New Group - page. When a user enters a name for the group, the portal will look up this name for uniqueness - in the directory/external data source in real time and display an error message if it is not - unique. - -12. Click **OK**. -13. Click **Save** on the **Custom Display Types** page. - -### External API Reference - -The external API for real-time validation should receive the following parameters: - -| Parameter | Description | -| ------------- | ---------------------------------------------------------------------------------------------- | -| objectType | The type of object the user is creating or updating (for example, group, user). | -| attributeName | The name of the attribute the user is updating (for example, name, first name, logon name). | -| attributeName | The attribute value to be validated. | -| objectID | If an existing user is being updated, the ID of that user is sent; else it is an empty string. | - -The API returns the following parameters: - -| Parameter | Description | -| --------- | -------------------------------------------------------------------------------------------------------------------- | -| status | Should be ‘true’ (when the attribute value is unique) or ‘false’ (when the attribute value is not unique). | -| message | (Optional) For the ‘false’ status, you can return an error message in this parameter, that is displayed to the user. | -| data | Not in use | - -NOTE: Data should be in JSON format. - -**See Also** - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) -- [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) -- [Define Custom Display Types](/docs/directorymanager/11.0/signin/applications/portal/categories/custom.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/create.md b/docs/directorymanager/11.0/signin/applications/portal/create.md deleted file mode 100644 index 610773d58d..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/create.md +++ /dev/null @@ -1,366 +0,0 @@ ---- -title: "Create a GroupID Portal" -description: "Create a GroupID Portal" -sidebar_position: 10 ---- - -# Create a GroupID Portal - -Admin Center lets you quickly build and deploy web-based portals for end-users to carry out user, -group, and entitlement management tasks. Users can also view detailed reports on the current state -and health of the directory. - -You can create multiple GroupID portals as well as create multiple instances for a portal. - -## Host a Portal - -A portal is hosted on a web server, with native IIS and remote IIS as the supported servers. - -- **IIS deployment** - Your GroupID portal is hosted within a site in IIS. To launch IIS, - see [Opening IIS Manager](https://learn.microsoft.com/en-us/previous-versions/iis/6.0-sdk/ms525920(v=vs.90)). - - ![in_iis](/images/directorymanager/11.0/admincenter/portal/in_iis.webp) - -## Deploy Multiple Instances of a Portal - -For load balancing and high availability, GroupID facilitates you to create multiple GroupID -portals, and even create multiple instances of the same portal. You may host different instances on -different web servers. For example, you can create two instances of a portal while hosting one in -native IIS and another in remote IIS. - -Multiple instances of a portal share the same design settings and the same server settings, except -that each instance has its own deployment settings. A change to the shared settings propagates to -all deployment instances. - -As multiple Data services and Security services can be created in GroupID, you can bind a different -Data service and Security service with each deployment instance of a portal. In this way, different -instances use different services for improved response times and load balancing. - -What do you want to do? - -- [Create a Portal in Native IIS](#create-a-portal-in-native-iis) -- [Create a Portal in Remote IIS](#create-a-portal-in-remote-iis) -- [Deploy Another Instance of a Portal](#deploy-another-instance-of-a-portal) -- [Create a Portal by Copying an Existing Portal](#create-a-portal-by-copying-an-existing-portal) -- [View the Details of a Portal](#view-the-details-of-a-portal) -- [Launch a Portal](#launch-a-portal) - -## Create a Portal in Native IIS - -When you create a portal in native IIS, GroupID does the following: - -- It creates a directory with the portal’s name at the following physical path on the GroupID - server, and copies the portal files from its template directory to the new portal directory: - X:\Program Files\Imanami\GroupID 11.0\GroupIDPortal\Inetpub\ - (X represents the GroupID installation drive) -- It also creates a virtual directory for the portal in your desired IIS site. - -The portal runs within a virtual directory in native IIS while the portal files are physically -located on disk. - -**To create a portal:** - -1. In Admin Center, click **Applications** in the left pane. -2. Click **Add Application**. -3. On the next page, select **GroupID Portal** and click **Next step**. -4. On the **Create GroupID Application** page, make sure the **IIS** tile is selected. -5. In the **Application Name** box, enter a unique name for the portal or use the default name. The - portal is displayed with this name in GroupID. -6. In the **Deployment Name** box, enter a deployment name for the portal. This name is used to - indicate the deployment instance for the portal in GroupID. - A portal can have multiple deployments, for example, one in native IIS and another in remote IIS. - The application name and deployment name are displayed on the portal card on the **GroupID - Portal** tab. - - ![portal_card](/images/directorymanager/11.0/admincenter/portal/portal_card.webp) - -7. In the **IIS Application Name** box, enter an IIS deployment name for the portal. This name - should be unique for each portal deployed in IIS. - - - The IIS application name is used to name the portal’s directory in IIS and its physical - directory under **X:\Program Files\Imanami\GroupID 11.0\GroupIDPortal\Inetpub** on the GroupID - server. - (X represents the GroupID installation drive) - - This IIS application name is also appended to the web server address to construct the URL that - users click to access this deployment instance of the portal. For example: - `https://:/` - Hence, a different URL is constructed for each deployment of a portal in IIS. - -8. In the **IIS Site** drop-down list, select a website to host the portal files. The list displays - the websites defined on the native IIS server. _GroupIDSite11_ is the default selection. -9. In the **Service Endpoints** area, bind a Data service and a Security service with the portal. - - 1. In the **Data Service** drop-down list, select a Data service for the portal to use. The list - contains all Data services defined in GroupID. - 2. In the **Security Service** drop-down list, select a Security service for the portal to use. - Thelist contains all Security services defined in GroupID. - -10. In the **Support Information** area, enter internal contact information and resource links for - the portal's users to obtain help while using the portal. - A portal includes a **Contact** link and a **Help** icon on its web interface. The **Contact** - link launches an email application to send an email to a user or helpdesk for inquiries or - support. The **Help** icon launches the online help for the portal in a new browser window. Both - links are customizable, and their target email address or web address is specified in the - **Support Information** area. - - 1. In the **Support group or administrator’s email address** box, enter the email address of a - group or user to redirect user queries to. This email address is mapped to the **Contact** - link in the portal. - 2. In the **Help URL** box, specify the address of your company's internal support website or - the portal’s help page, where portal users can find support material or report a problem. By - default, this box displays the URL of the portal’s help published by Netwrix. - This URL is mapped to the **Help** icon in the portal. - -11. In the **Select Identity Stores** area, select the check boxes for the identity stores you want - to associate with the portal. Users in the associated identity stores can sign into the portal - to manage directory objects, their directory profiles, and more. - While associating identity store(s), you may get the following message: - - ![linked_message](/images/directorymanager/11.0/admincenter/portal/linked_message.webp) - - This relates to the scenario when identity stores in GroupID have been linked, as discussed in - the - [Linked Identity Stores and the GroupID Portal](/docs/directorymanager/11.0/signin/identitystore/link/overview.md#linked-identity-stores-and-the-groupid-portal) - topic. Hence, when two identity stores, IdentityStoreA and IdentityStoreB, are linked and you - associate IdentityStoreA with the portal, this message is displayed. It alerts you to associate - the second identity store in the linked pair (dentityStoreB) with the portal too, in order to - benefit from the linking. - -12. Each identity store associated with a portal has its own set of design settings, as listed in - the - [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) - topic. - - If you are upgrading to GroupID 11 from GroupID 9 or GroupID 10, you can import the design - settings for an identity store from a Self-Service portal in a previous version - as an - alternate to defining these settings from scratch. Following are the details of the file - containing identity store design settings for a Self-Service portal in GroupID 9 and 10: - - **Design file name:** `..xml`. - - For example: ADStore.xml - A separate design file exists for each identity store linked with a Self-Service portal. - - **File location in GroupID 9/10:** - `[GroupID installation drive]:\Program Files\Imanami\GroupID \SelfService\Inetpub\\Design\` - - For example: C:\Program Files\Imanami\GroupID 10.0\SelfService\Inetpub\TestPortal\Design\ - - Similarly, a separate file exists for each linked combo created in the Self-Service portal. - **Linked combo file name:** The file has the same name as that of the linked combo in the - portal.for example, Country-State.xml - **File location in GroupID 9/10:** All linked combo files, regardless of the identity store they - are used for, are available at the following path: - `[GroupID installation drive]:\Program Files\Imanami\GroupID \SelfService\Inetpub\\Web\LinkedCombo\` - For example: C:\Program Files\Imanami\GroupID - 10.0\SelfService\Inetpub\TestPortal\Web\LinkedCombo\ - - **To import the design file and linked combo file(s), do the following:** - - 1. As a prerequisite to GroupID 11 upgrade, the folder structure for the source version was - copied to the GroupID 11 server. In this case, the design and linked combo files for all - portals in the previous version are already available on the machine. Else copy the above - mentioned files for the respective identity stores associated with the Self-Service portal, - and place them on your local machine or a shared network location. - 2. In he **Select Identity Stores** area, click **Import Design** next to an identity store name - to import the design file for it. - 3. Browse for the file to select and import it. The import process takes a while. - Each identity store associated with a Self-Service portal has its own design file, so make - sure you import the correct file. For example, if Identity Store A is associated with two - Self-Service portals, then these will be two different design files for the same identity - store, though at different locations. - 4. After the file is uploaded, a message is displayed, showing the number of linked combos - defined in the imported design settings and prompting you to import the respective linked - combo files. - Browse to the location of the linked combo files and import those that represent the linked - combos defined in the design settings. - -13. A portal has certain advanced settings defined for it, as discussed in the - [Manage Advanced Settings](/docs/directorymanager/11.0/signin/applications/portal/server/advanced.md) - topic. - If you are upgrading to GroupID 11 from GroupID 9 or GroupID 10, you can import the advanced - settings of a Self-Service portal from a previous version as an alternate to defining settings - from scratch. Following are the details of the file containing advanced settings for a - Self-Service portal in GroupID 9 and 10: - - **File name:** server.xml. A separate file exists for each Self-Service portal. - **File location in GroupID 9/10:** - `[GroupID installation drive]:\Program Files\Imanami\GroupID \SelfService\Inetpub\\` - For - example: C:\Program Files\Imanami\GroupID 10.0\SelfService\Inetpub\TestPortal\ - - **To import the file, do the following:** - - 1. As a prerequisite to GroupID 11 upgrade, the folder structure for the source version was - copied to the GroupID 11 server. In this case, the server.xml file for all portals in the - previous version is already available on the machine. Else copy the server.xml file for the - Self-Service portal whose advanced settings you want to import, and place it on your local - machine or a shared network location. - 2. On the **Create GroupID Application** page, click **Import Settings** in the **Advanced - Settings** area. - 3. Browse for the file to select and import it. The import process takes a while. - -14. Click **Create Application**. - The new portal is displayed on the **GroupID Portal** tab. - -## Create a Portal in Remote IIS - -You can host a portal within a site in remote IIS. For this, you need to connect with the Microsoft -IIS Administration API running on the remote IIS machine. - -When you create a portal in remote IIS, GroupID does the following: - -- It creates a virtual directory for the portal in a preconfigured site in remote IIS. -- It creates a physical directory for the portal in the folder that is mapped to this preconfigured - site. - -The portal runs within a virtual directory in remote IIS while the portal files are physically -located on disk. - -To learn about the remote IIS settings and configurations before hosting a portal, see -the[Prerequisites for Deployments in Remote IIS](/docs/directorymanager/11.0/signin/applications/remoteiisprerequisites.md) -topic. - -**To create a portal:** - -1. In Admin Center, click **Applications** in the left pane. -2. Click **Add Application**. -3. On the next page, select **GroupID Portal** and click **Next step**. -4. On the **Create GroupID Application** page, select the **Remote IIS** tile. -5. In the **Application Name** box, enter a unique name for the portal or use the default name. The - portal is displayed in GroupID with this name. -6. In the **Deployment Name** box, enter a deployment name for the portal. This name is used to - indicate the deployment instance for the portal in GroupID. A portal can have multiple - deployments, for example, one in native IIS and another in remote IIS. - The application name and deployment name are displayed on the portal card on the **GroupID - Portal** tab. -7. In the **API URL** box, enter the URL of the API to use for communicating with the remote IIS - server. - Make sure the - [Microsoft IIS Administration API](https://learn.microsoft.com/en-us/iis-administration/) is - installed as a Windows service on the remote IIS machine. Fetch the URL of this API from remote - IIS and provide it here to enable communication. -8. In the **Access Token** box, enter the access token to allow Admin Center to access the Microsoft - IIS Administration API. This access token is generated from the Microsoft IIS Administration - API’s interface. -9. In the **Username** and **Password** boxes, enter the credentials of a Windows account to - communicate with the API. This account must have access to the remote IIS machine, with - sufficient permissions to enable you to create and manipulate objects in IIS. -10. In the **IIS Application Name** box, enter an IIS deployment name for the portal. This name - should be unique for each portal deployed within the same site in remote IIS. - - - The IIS application name is used to name the portal’s directory in the IIS site and its - physical directory on the remote IIS machine. The physical directory is created within the - folder that is mapped to the preconfigured site, and portal files are copied to it. - - This IIS application name is also appended to the web server address to construct the URL that - users click to access this deployment instance of the portal. For example: - `https://:/` - Hence, a different URL is constructed for each deployment of a portal in remote IIS. - -11. On providing the above information, the **Website** drop-down list displays the sites defined on - the remote IIS server. Select the site that you have configured with the appropriate permissions - for GroupID. -12. For entering information in the **Service Endpoints**, **Support Information**, **Select - Identity Stores**, and **Advanced Settings** areas, follow steps 9-13 in the - [Create a Portal in Native IIS](#create-a-portal-in-native-iis) topic. -13. Click **Create Application**. - The new portal is displayed on the **GroupID Portal** tab. - -## Deploy Another Instance of a Portal - -You can deploy more than one instance of a portal. Instances can be deployed in different web -servers, for example, one in native IIS and another in remote IIS. For more on how instances work, -see the [Deploy Multiple Instances of a Portal](#deploy-multiple-instances-of-a-portal) topic. - -To deploy a new instance, you have to provide deployment details only. All instances share the same -server and design configurations, while only deployment details differ. For example, all instances -serve the same identity stores and have the same display and search-related configurations. Changing -a shared setting propagates to all deployment instances of the portal. - -**To deploy an instance:** - -1. In Admin Center, select **Applications** in the left pane. -2. On the **GroupID Portal** tab, click the ellipsis button for a portal and select **Deploy Another - Instance**. -3. On the **Deploy Another Instance** page, select the **IIS** or **Remote IIS** tile to indicate - the web server where you want to deploy the instance. - The **Application Name** field displays the name of the portal as read-only. -4. Fields on the page vary, depending on the web server selected. In any case, the **Support - Information**, **Select Identity Stores**, and **Advanced Settings** areas are not available, as - they remain the same for all instances. - - - To deploy an instance in native IIS, follow steps 6-9 in the - [Create a Portal in Native IIS](#create-a-portal-in-native-iis) topic. - - To deploy an instance in remote IIS, follow steps 6-12 in the - [Create a Portal in Remote IIS](#create-a-portal-in-remote-iis) topic. - -5. After entering the required information, click **Deploy Instance**. - The new instance is displayed on the portal’s card. - -## Create a Portal by Copying an Existing Portal - -You can create a new portal by copying an existing portal. All server and design configurations of -the template portal are duplicated to the new portal. Deployment details are not duplicated, hence -you can choose to deploy the new portal in any of the supported web servers. - -**To create a portal:** - -1. In Admin Center, select **Applications** in the left pane. -2. On the **GroupID Portal** tab, click the ellipsis button for a portal and select **Copy**. - The **Copy GroupID Application** page is displayed; populated with the following settings of the - copied portal: - - - The Data service and Security service linked to the portal - - The support information for the portal, i.e., the admin/helpdesk contact email address and the - portal’s help URL - - The identity store(s) associated with the portal - -3. You can deploy the new portal in native IIS or remote IIS. - - - To specify settings for a native IIS deployment, follow the instructions in the - [Create a Portal in Native IIS](#create-a-portal-in-native-iis) topic, beginning at step 4. - - To specify settings for a remote IIS deployment, follow the instructions in the - [Create a Portal in Remote IIS](#create-a-portal-in-remote-iis) topic, beginning at step 4. - -## View the Details of a Portal - -1. In Admin Center, click **Applications** in the left pane. - The **GroupID Portal** tab displays the portals that you have created. -2. The card for a portal displays the following information: - - | Info | Description | - | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | Name | The name given to the portal. | - | Identity Stores | The names of the identity stores the portal serves. | - | Deployment Instances | Displays the deployment instance(s) of the portal as tiles. A tile shows the deployment name of the instance and the web server where it is deployed. | - | Status | A portal has one of the following statuses: - **Running:** Indicates that the portal is up and running. - **Stopped:** Indicates that GroupID is unable to communicate with the portal. To troubleshoot, go to the web server where the portal is deployed and make sure the portal is running. - **Error:** Any issue other than _stopped_ is categorized as _error_. In this case, contact your system administrator. | - | Launch Application | Click this link to launch the portal. When multiple deployments of a portal are available, select the tile for a deployment instance and click this link to launch that instance. | - | Ellipsis | Click it to launch a shortcut menu with the following options: - **Settings:** Launches the portal settings page, where you can manage server and design settings. - **Server Settings:** Includes the deployment details of each portal instance, the help URL for the portal, the identity stores linked with the portal, and more. - **Design settings:** These settings relate to the portal’s user interface. - **Deploy Another Instance:** Enables you to deploy another instance of the portal. - **Copy:** Enables you to create a new portal by copying the settings of this portal. - **Delete:** Deletes the portal. | - -You may notice a portal with an orange card and an orange icon on the card. On hovering the mouse -over the icon, the tooltip says that _linked mode will not be allowed_. This relates to the scenario -when identity stores in GroupID have been linked, as discussed in the -[Linked Identity Stores and the GroupID Portal](/docs/directorymanager/11.0/signin/identitystore/link/overview.md#linked-identity-stores-and-the-groupid-portal) -topic. Hence, when two identity stores, IdentityStoreA and IdentityStoreB, are linked and you -associate IdentityStoreA with the portal, the portal card appears in orange. It informs you to -associate the second identity store in the linked pair (dentityStoreB) with the portal too, in order -to benefit from the linking. - -## Launch a Portal - -1. In Admin Center, select **Applications** in the left pane. -2. On the **GroupID Portal** tab, click **Launch Application** on a portal’s card to launch it. - - When multiple deployments of a portal are available, select a deployment instance on the card - and click **Launch Application** to launch that instance. - - Provide the URL of an instance to your users so they can access the portal. You can either copy - the URL from the address bar or from a portal's deployment settings. See the - [View the Launch URL for an Instance](/docs/directorymanager/11.0/signin/applications/portal/server/nativeiis.md#view-the-launch-url-for-an-instance) - topic. - -**See Also** - -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) -- [GroupID Portal](/docs/directorymanager/11.0/signin/applications/portal/overview.md) -- [Delete a Portal](/docs/directorymanager/11.0/signin/applications/portal/delete.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/delete.md b/docs/directorymanager/11.0/signin/applications/portal/delete.md deleted file mode 100644 index d3e1dc1b69..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/delete.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Delete a Portal" -description: "Delete a Portal" -sidebar_position: 20 ---- - -# Delete a Portal - -You can delete a portal or a deployment instance of a portal. On deleting a portal, all its -instances are deleted with it. - -What do you want to do? - -- Delete a Deployment Instance for a Portal -- Delete a Portal - -## Delete a Deployment Instance for a Portal - -A portal can have multiple deployment instances. When you delete an instance, the following is -removed: - -- **For an instance in native IIS:** - - - The portal directory under the following location on the GroupID server: - X:\Program Files\Imanami\GroupID 11.0\GroupIDPortal\Inetpub\ - (X represents the GroupID installation drive) - - The portal's directory in the IIS site - -- **For an instance in remote IIS:** - - - The portal's directory in the remote IIS site - - The portal's physical directory under the folder mapped to the remote IIS site - -- **For an instance in Docker:** - - The container created in Docker Engine for the portal - -**To delete an instance:** - -1. In Admin Center, select **Applications** in the left pane. -2. On the **GroupID Portal** tab, click the ellipsis button for a portal and select **Settings**. -3. Select **Deployments** under **Server Settings** in the left pane. - The **Deployment Settings** page has varying tabs, depending on the deployment instances of the - portal. - - - The **IIS** tab is available when one or more portal instances are deployed in native IIS. - - The **Remote IIS** tab is available when one or more portal instances are deployed in remote - IIS. - - The **Docker** tab is available when one or more portal instances are deployed in Docker. - - Select a tab to delete a portal instance deployed in the respective web server. - -4. The **Select Application Deployment** drop-down list displays the portal instances deployed on - the selected web server. Select an instance and click **Delete**. - -## Delete a Portal - -Deleting a portal removes all its deployments and configurations from GroupID. - -**To delete a portal:** - -1. In Admin Center, select **Applications** in the left pane. -2. On the **GroupID Portal** tab, click the ellipsis button for a portal and select **Delete**. - -**See Also** - -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) -- [GroupID Portal](/docs/directorymanager/11.0/signin/applications/portal/overview.md) -- [Create a GroupID Portal](/docs/directorymanager/11.0/signin/applications/portal/create.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/_category_.json b/docs/directorymanager/11.0/signin/applications/portal/displaytype/_category_.json deleted file mode 100644 index 606591fe33..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Design a Portal with Display Types", - "position": 50, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/badwords.md b/docs/directorymanager/11.0/signin/applications/portal/displaytype/badwords.md deleted file mode 100644 index 6df10333c8..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/badwords.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: "Manage the Bad Words List" -description: "Manage the Bad Words List" -sidebar_position: 70 ---- - -# Manage the Bad Words List - -GroupID enables you to restrict portal users from saving data containing words that might be -offensive. You can maintain a list of undesired words for a portal. When a user enters a value that -contains a word on the list, the portal does not save the entry until the word is removed or -corrected. - -The bad words check applies to the following: - -- Fields with the ‘Filter Bad Words’ option enabled in field properties -- History notes that a user enters for a logged history action - -What do you want to do? - -- [Add a Bad Word to the List](#add-a-bad-word-to-the-list) -- [Update a Bad Word](#update-a-bad-word) -- [Remove a Bad Word from the List](#remove-a-bad-word-from-the-list) -- [Enable/Disable the Bad Words Check](#enabledisable-the-bad-words-check) - -## Add a Bad Word to the List - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Bad Words List** in the left pane. -5. On the **Bad Words List** page, click **Add**. -6. In the **Value** box on the **New Bad Word** dialog box, enter a word that you want to prevent - users from typing in the portal and click **OK**. - The bad word is displayed in the **Name** list on the **Bad Words List** page. -7. Make sure to enable the toggle button at the top of the page to apply the bad words filter to the - portal. -8. Click **Save**. - -## Update a Bad Word - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Bad Words List** in the left pane. -5. On the **Bad Words List** page, click **Edit** for a bad word. -6. On the **Edit Bad Word** dialog box, update the bad word and click **OK**. -7. Click **Save** on the **Bad Words List** page. - -## Remove a Bad Word from the List - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click _Bad Words List_ in the left pane. -5. On the **Bad Words List** page, click **Remove** for a bad word to remove it. -6. Click **Save**. - -## Enable/Disable the Bad Words Check - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Bad Words List** in the left pane. -5. On the **Bad Words List** page, disable the toggle button at the top of the page to disable the - bad word check in the portal. - You can apply the check any time by enabling the toggle button. -6. Click **Save**. - -See Also - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/createobject.md b/docs/directorymanager/11.0/signin/applications/portal/displaytype/createobject.md deleted file mode 100644 index c6ba1f75dc..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/createobject.md +++ /dev/null @@ -1,278 +0,0 @@ ---- -title: "Customize the Create Object Wizards" -description: "Customize the Create Object Wizards" -sidebar_position: 100 ---- - -# Customize the Create Object Wizards - -Using a portal, users can create different directory objects, namely: - -- User -- Mailbox -- Contact -- Static Group -- Smart Group -- Organizational Dynasty -- Geographical Dynasty -- Managerial Dynasty -- Custom Dynasty - -The portal provides a separate wizard for creating each of these objects. You can customize a wizard -as needed. - -NOTE: In the portal, the _Create Group_ wizard starts with the _Group Type_ page, where users can -select the type of group they want to create. Options on this page vary, depending on the -permissions assigned to the user in the identity store. (See the -[Security Role – Permissions](/docs/directorymanager/11.0/signin/securityrole/permissions.md) -topic.) - -- If a user has the _Create Static Group_ permission and is denied the _Create Smart Group_ - permission, only the _Static Group_ option is displayed on the _Group Type_ page. -- If a user has the _Create Smart Group_ permission and is denied the _Create Static Group_ - permission, all options except _Static Group_ are displayed on the _Group Type_ page. - ![group_type](/images/directorymanager/11.0/admincenter/portal/design/group_type.webp) - -NOTE: You can customize the _Group Type_ page individually for static group, Smart Group, and each -of the Dynasty types. However: - -- If a user has permissions to create both static groups and Smart Groups, the _Group Type_ page - created for _Static Group_ would be displayed to the user in the portal. -- If a user does not have permission to create static groups, but has permission to create Smart - Groups, the _Group Type_ page created for _Smart Group_ would be displayed to the user in the - portal for Smart Groups and Dynasties. - -What do you want to do? - -- [Add a Page to a Wizard](#add-a-page-to-a-wizard) -- [Update a Wizard Page](#update-a-wizard-page) -- [Rearrange the Pages on a Wizard](#rearrange-the-pages-on-a-wizard) -- [Remove a Page from a Wizard](#remove-a-page-from-a-wizard) -- [Add a Field to a Wizard Page](#add-a-field-to-a-wizard-page) -- [Update a Field](#update-a-field) -- [Rearrange the Fields on a Wizard Page](#rearrange-the-fields-on-a-wizard-page) -- [Remove a Field from a Wizard Page](#remove-a-field-from-a-wizard-page) - -## Add a Page to a Wizard - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Create Object** in the left pane. The **Create Object** page is displayed. -5. In the **Select Directory Object** drop-down list, select a directory object. - The **Name** list displays the pages on the object’s creation wizard. -6. Click **Add**. The **Add Category** pane is displayed. -7. In the **Name** box, enter a name for the page. The page will be displayed in the wizard with - this name. -8. In the **Visibility Level** drop-down list, select a security role. The page would be visible to - users of this role and roles with a priority value higher than this role. See - [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - Select _Never_ to hide the page from all users. -9. To add fields to the page, see the [Add a Field to a Wizard Page](#add-a-field-to-a-wizard-page) - topic. -10. Click **OK**. -11. Click **Save** on the **Create Object** page. - -## Update a Wizard Page - -You can update the following for a page: - -- Name -- Visibility level - -**To update a wizard page:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Create Object** in the left pane. -5. On the **Create Object** page, select a directory object in the **Select Directory Object** - drop-down list. -6. In the **Name** list, click **Edit** for a page. -7. On the **Edit Category** pane, update the name and visibility level for the page. Follow steps - 7-11 in the [Add a Page to a Wizard](#add-a-page-to-a-wizard) topic for details. - -## Rearrange the Pages on a Wizard - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Setting**s. You can design a - different portal for each of these. -4. Click **Create Object** in the left pane. -5. On the **Create Object** page, select a directory object in the **Select Directory Object** - drop-down list. - The **Name** list displays the pages on the object’s creation wizard. -6. To change the order that pages are displayed on the wizard, click the equal sign for a page and - drag to change its position. -7. Click **Save**. - -## Remove a Page from a Wizard - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Create Object** in the left pane. -5. On the **Create Object** page, select a directory object in the **Select Directory Object** - drop-down list. - The **Name** list displays the pages on the object’s creation wizard. -6. Click **Remove** for a page to remove it. -7. Click **Save**. - -## Add a Field to a Wizard Page - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Create Object** in the left pane. -5. On the **Create Object** page, select a directory object in the **Select Directory Object** - drop-down list. - The **Name** list displays the pages on the object’s creation wizard. -6. Click **Edit** for the page you want to add a field to. -7. On the **Edit Category** pane, click **Add Field.**The **Add Field** pane is displayed. -8. In the **Field** drop-down list, select a schema attribute to link to this field. -9. In the **Display Name** box, enter a display name for the field. This name is the field’s label - on the wizard. -10. In the **Display Type** drop-down list, select a display type to use for rendering this field on - the wizard. - The list contains basic display types and custom display types defined on the **Custom Display - Types** page. See the - [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) - topic. -11. In the **Visibility Level** drop-down list, select a security role. The field would be visible - to users of the selected role and roles with a priority value higher than the selected role. See - [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - Select _Never_ to hide the field from all users. -12. As mentioned for visibility level, the field is visible to members of the selected role and - roles with a priority value higher than the selected role. - In the **Exclude Roles** area, select the check boxes for the higher priority role(s) you want - to hide the field from. -13. In the **Tooltip Text** box, enter the text to display when a user hovers the mouse over the - field. -14. In the **Max Length** box, enter a number that represents the maximum number of characters that - users can enter as value for this field. - Entering _0_ indicates that users can enter an unlimited number of characters as value. -15. Use the **Search Object Types** area to specify the object types (User, Contact, and/or Group) - that can be searched on the portal’s _Find_ dialog box, to set as value for the field. - The following display types support the _Find_ dialog box: - - - DN - - DNs - - Custom display types created with the Grid type - - When you select any of these display types, GroupID identifies that the value for the field has - to be searched using the _Find_ dialog box. The **Search Object Types** area is displayed, where - you can select the required object type(s). For example, if you select _Group_, only groups can - be searched and selected as value for the field. - You can launch the _Find_ dialog box from multiple portal pages to search for objects to - designate as owners, managers, additional owners, members, and more. While specifying the - searchable object type(s), you must be aware of the kind of value the field requires. - -16. In the **Default Value** box, enter the default value that would be displayed in the field on - the portal. - Users can update this value, provided that the **Is Read Only** check box is not selected. -17. Select the **Is Required** check box to make it mandatory for users to provide a value for the - field. -18. Select the **Is Read Only** check box to make the field read-only. -19. Select the **Filter Bad Words** check box to ensure that users do not enter any bad word in this - field. - A value entered for the field is checked against the words listed on the **Bad Words List** - page. Matched values cannot be saved. See the - [Manage the Bad Words List](/docs/directorymanager/11.0/signin/applications/portal/displaytype/badwords.md) - topic. -20. Click **OK**. The field is displayed in the **Fields** area on the **Edit Category** pane. You - can rearrange the fields, update field properties, and even remove a field from the wizard page. -21. Click **OK**. -22. Click **Save** on the **Create Object** page. - -## Update a Field - -You can change the following for a field: - -- The name of the field (this is the field label in the portal) -- The schema attribute linked with the field -- The display type used to render the field in the portal -- Visibility level -- Tooltip - -The following field properties vary from field to field. You can: - -- Set a default value for the field -- Specify the maximum characters that a user can enter as value for the field -- Make the field editable or read–only -- Prevent users from using certain words as value for the field -- Make it optional or mandatory for users to provide a value for the field -- For search fields, you can specify the object types (groups, users, contacts) that can be searched - and set as field value - -**To update field properties:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Create Object** in the left pane. -5. On the **Create Object** page, select a directory object in the **Select Directory Object** - drop-down list. - The **Name** list displays the pages on the object’s creation wizard. -6. Click **Edit** for the page you want to edit a field for. -7. On the **Edit Category** pane, click **Edit** for a field to update its properties. -8. The **Edit Field** pane is displayed. Follow steps 8-22 in the - [Add a Field to a Wizard Page](#add-a-field-to-a-wizard-page) topic to update and save the - information. - -## Rearrange the Fields on a Wizard Page - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Create Object** in the left pane. -5. On the **Create Object** page, select a directory object in the **Select Directory Object** - drop-down list. - The **Name** list displays the pages on the object’s creation wizard. -6. Click **Edit** for the page you want to rearrange the fields for. -7. On the **Edit Category** pane, the fields on the wizard page are listed in the **Fields** area. - To rearrange the fields on the page, click the equal sign for a field and drag to change its - position. -8. Click **OK**. -9. Click **Save** on the **Create Object** page. - -## Remove a Field from a Wizard Page - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Create Object** in the left pane. -5. On the **Create Object** page, select a directory object in the **Select Directory Object** - drop-down list. - The **Name** list displays the pages on the object’s creation wizard. -6. Click **Edit** for the page you want to remove a field from. -7. On the **Edit Category** pane, the fields on the wizard page are listed in the **Fields** area. - Click **Remove** for a field to remove it. -8. Click **OK**. -9. Click **Save** on the **Create Object** page. - -See Also - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/importexport.md b/docs/directorymanager/11.0/signin/applications/portal/displaytype/importexport.md deleted file mode 100644 index 7d278bb8ef..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/importexport.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: "Specify Attributes for Import/Export of Group Owners and Members" -description: "Specify Attributes for Import/Export of Group Owners and Members" -sidebar_position: 80 ---- - -# Specify Attributes for Import/Export of Group Owners and Members - -In the GroupID portal, users can: - -- Export members and additional owners of a group to a file, such as a csv or an xls file -- Import members and additional owners for a group from a file. Members can also be imported from an - external data source. - -You can specify schema attributes to be used for export/import, along with a user-friendly name for -each attribute. - -- The import function reads the objects’ information from an external file or data source and - searches for matching objects in the directory based on field mapping (where a column name in the - file or data source is mapped to any of the attributes specified here). - Objects having the same values for the mapped fields are added to the membership or additional - ownership of the target group. -- The export function reads the membership/additional ownership of the group and exports the values - of the specified attributes for members/additional owners to an external file. - -The schema attributes you specify are displayed with their user-friendly names on the following -wizards in the portal: - -| Wizard Name | Description | -| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Import Members | This wizard is used to import members to a group using a file or an external data source. Users can launch it from the Members page on the Create Group wizard and from the Members tab in group properties. | -| Export Members | This wizard is used to export the members of a group to an external file. Users can launch it from the Members tab in group properties. | -| Import Additional Owners | This wizard is used to import additional owners to a group using an external file. Users can launch it from the Owners page on the Create Group wizard and from the Owner tab in group properties. | -| Export Additional Owners | This wizard is used to export the additional owners of a group to an external file. Users can launch it from the Owner tab in group properties. | - -NOTE: The attributes you specify apply to all four wizards. You cannot specify a different set of -attributes for a wizard. - -What do you want to do? - -- [Specify Attributes for Import and Export](#specify-attributes-for-import-and-export) -- [Update an Attribute](#update-an-attribute) -- [Remove an Attribute from Import and Export](#remove-an-attribute-from-import-and-export) - -## Specify Attributes for Import and Export - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Import/Export** in the left pane. - On the **Import/Export** page, schema attributes for _display name_, _first name_, _last name_, - and _email_ are specified by default. These attributes are available in the portal for the export - and import of group members and additional owners. -5. To add an attribute, click **Add**. The **Import/Export Attribute** dialog box is displayed. -6. In the **Schema Attribute** drop-down list, select a schema attribute to use for import/export. -7. In the **User-Friendly Name** box, enter an easy and meaningful name for the attribute. The - attribute will be displayed with this name on the Import Members, Export Members, Import - Additional Owners, and Export Additional Owners wizards in the portal. -8. Click **OK**. The attribute is displayed with its user-friendly name on the **Import/Export** - page. -9. Click **Save**. - -## Update an Attribute - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Import/Export** in the left pane. -5. On the **Import/Export** page, click **Edit** for an attribute. -6. On the **Import/Export Attribute** dialog box, change the user-friendly name for the attribute. - You can also select a different attribute to replace the current one. Then click **OK**. -7. Click **Save** on the **Import/Export** page. - -## Remove an Attribute from Import and Export - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Import/Export** in the left pane. -5. On the **Import/Export** page, click **Remove** for an attribute to remove it. - The attribute will not be available on the _Import Members_, _Export Members_, _Import Additional - Owners_, and _Export Additional Owners_ wizards in the portal. -6. Click **Save**. - -See Also - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/navigationbar.md b/docs/directorymanager/11.0/signin/applications/portal/displaytype/navigationbar.md deleted file mode 100644 index f9a80ad97f..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/navigationbar.md +++ /dev/null @@ -1,355 +0,0 @@ ---- -title: "Customize the Navigation Bar" -description: "Customize the Navigation Bar" -sidebar_position: 60 ---- - -# Customize the Navigation Bar - -The left navigation bar in a portal lists nodes that enable users to navigate in the portal: These -nodes are: - -- Create New -- Dashboard -- Groups -- Users -- Requests -- History -- Entitlement -- Synchronize -- Reports - -On expanding a node, its sub-nodes are displayed. On clicking a sub-node, users are redirected to a -page that contains tabs under that sub-node. It is as: - -![navigation_bar](/images/directorymanager/11.0/admincenter/portal/design/navigation_bar.webp) - -GroupID enables you to customize the nodes, sub-nodes, and their respective tabs. - -What do you want to do? - -**At the node level:** - -- [Add a Node (Category)](#add-a-node-category) -- [Update the Details of a Node](#update-the-details-of-a-node) -- [Rearrange the Nodes on the Navigation Bar](#rearrange-the-nodes-on-the-navigation-bar) -- [Remove a User-defined Node](#remove-a-user-defined-node) - -**At the sub-node level:** - -- [Add a Sub-node to a Node](#add-a-sub-node-to-a-node) -- [Update the Details of a Sub-node](#update-the-details-of-a-sub-node) -- [Rearrange the Sub-nodes for a Node](#rearrange-the-sub-nodes-for-a-node) -- [Remove a Sub-node from a Node](#remove-a-sub-node-from-a-node) - -**At the tab level:** - -- [Update Tab Properties](#update-tab-properties) -- [Rearrange the Tabs for a Sub-node](#rearrange-the-tabs-for-a-sub-node) -- [Remove a Tab from a Sub-node](#remove-a-tab-from-a-sub-node) - -## Add a Node (Category) - -The following nodes have been defined by default on the navigation bar: - -| Category (Node) | Mapped To | -| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Create New | The Create New button on the portal’s navigation bar. It has four buttons as its sub-nodes: Group, User, Mailbox, and Contact. Sub nodes do not have tabs. | -| High Priority | The Dashboard node on the navigation bar. It has one sub-node, Dashboard, with no tab. | -| Groups | The Groups node on the navigation bar. It has four sub-nodes: All Groups, My Groups, Transfer Ownership, and Deleted Groups. All except the Transfer Ownership sub-node have tabs. | -| Users | The Users node on the navigation bar. It has two sub-nodes: My Direct Reports and Linked Accounts. Only the My Direct Reports sub-node has tabs. | -| Requests | The Requests node on the navigation bar. It has three sub-nodes: All Requests, My Requests, and Request Inbox. Sub nodes do not have tabs. | -| Others | The History node on the navigation bar. It has one sub-node, History, that has tabs. | -| External Links | The Entitlement, Synchronize, and Reports nodes on the navigation bar. It has three sub-nodes, Entitlement, Synchronize, and Reports, that can be modified to a limited extent. You cannot manage the tabs or other options displayed under these nodes in the portal. | - -Note the following: - -- The _Create New_, _High Priority_, _Others_, and _External Links_ nodes cannot be edited or - removed. -- You can add and remove sub-nodes for nodes; however, you cannot add sub-nodes for the **Create - New** node. -- You cannot add tabs to sub-nodes; only edit and remove tabs that exist by default. - -**To add a node:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Navigation Bar** in the left pane. - The **Navigation Bar** page has two tabs: the **Navigation Bar Categories** tab is used to manage - nodes while the **Navigation Bars** tab is used to manage sub-nodes and their respective tabs. -5. Click **Navigation Bar Categories** to define a new node. -6. On the **Navigation Bar Categories** tab, click **Add**. The **Add Navigation Category** pane is - displayed. -7. Enter a name for the node in the **Title** box. The node will be displayed with this name on the - navigation bar. -8. In the **Access Level** drop-down list, select a security role. The node would be visible to - users of this role and roles with a priority value higher than this role. For all other users, - the node would be hidden. See - [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - Select _Never_ to hide the node for all users. -9. In the **Tooltip Text** box, enter the text to appear when a user hovers the mouse over the node. -10. Use the **Icon Class** box to upload the image (icon) to be displayed with the node name. - - - If no image is uploaded, click **Save** to browse and select an image for upload. - - If an image has been uploaded, the very image is displayed. Click the icon below the image to - replace the existing image with a new one. - - NOTE: Image dimensions: 30 x 30 pixels - Supported formats: .webp, .jpg, .jpe, .jpeg - -11. Click **OK**. -12. Click **Save** on the **Navigation Bar** page. - -## Update the Details of a Node - -You can update the following details for the Groups, Users, and Requests nodes on the portal’s -navigation bar: - -- Node name -- Access level -- Tooltip text -- Node icon - -The _Create New_, _High Priority_, _Others_, and _External Links_ nodes cannot be modified. - -**To update a node:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Navigation Bar** in the left pane. Then click the **Navigation Bar Categories** tab. -5. On the **Navigation Bar Categories** tab, click **Edit** for a node to update it. - The **Edit Navigation Category** pane is displayed. Follow step 7 and onwards in the - [Add a Node (Category)](#add-a-node-category) topic to update node details. - -## Rearrange the Nodes on the Navigation Bar - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Navigation Bar** in the left pane. Then click the **Navigation Bar Categories** tab. The - **Navigation Bar Categories** tab is displayed. -5. To rearrange the nodes on the navigation bar, click the equal sign for a node and drag to change - its position. - You can move all except the _Create New_ node. -6. Click **Save**. - -## Remove a User-defined Node - -You can delete user-defined nodes on the portal’s navigation bar. System-defined nodes cannot be -deleted. - -**To delete a node:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Navigation Bar** in the left pane. Then click the **Navigation Bar Categories** tab. -5. On the **Navigation Bar Categories** tab, click **Remove** for a node to delete it. -6. Click **Save**. - -## Add a Sub-node to a Node - -You can customize the nodes on the portal’s navigation bar by defining sub-nodes for them. Note -that: - -- You cannot add sub-nodes to the _Create New_ node. -- You cannot add tabs to a sub-node. - -**To define a sub-node:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Navigation Bar** in the left pane. The **Navigation Bar** page is displayed with the - **Navigation Bars** tab selected by default. -5. In the **Select Navigation Bar Type** drop-down list, select a node on the portal’s navigation - bar; its sub-nodes get listed under **Name**. -6. To add a sub-node to the selected node, click **Add** .The **Add Link** pane is displayed. -7. In the **Tab Name** box, enter a name for the sub-node. -8. In the **Display Text** box, enter the text to display as the sub-node name on the navigation - bar. -9. In the **Tooltip Text** box, enter the text to appear when a user hovers the mouse over the - sub-node. -10. Use the **Icon Class** box to upload the image (icon) to be displayed with the sub-node name. - See step 10 in the [Add a Node (Category)](#add-a-node-category) topic for details. - The facility to upload an image is not available for sub-nodes under _Groups_. _Users_, - _Requests_, and _External Links_. -11. In the **URL** box, provide the URL of a webpage to link to this sub-node. The respective - webpage will be displayed when users click the sub-node in the portal. - Use the following formats to specify the URL: - - - To link a page from within the GroupID portal template: - GroupManagement/Groups/MyGroups - - To link to an external webpage: - https://www.xyz.com. - - Click **View in Browser** to preview the webpage. - -12. Select the **Open in new tab** check box to open the linked page in a new tab in the browser. - If you do not select it, users will directly navigate to the linked page. They will have to use - the browser’s back button to return to the previous page. -13. In the **Access Level** drop-down list, select a security role. The sub-node would be visible - for users of this role and roles with a priority value higher than this role. For all other - users, the sub-node would be hidden. See - [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - Select _Never_ to hide the sub-node for all users. -14. Click **OK**. -15. Click **Save** on the **Navigation Bar** page. - -## Update the Details of a Sub-node - -You can change the following for a sub-node: - -- The name of the sub-node -- The display name of the sub-node (this is the sub-node’s name on the portal’s navigation bar) -- The tooltip text for the sub-node -- The URL of the webpage that opens when a user clicks the sub-node -- Access level - -**To update sub-node properties:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Navigation Bar** in the left pane. The **Navigation Bar** page is displayed with the - **Navigation Bars** tab selected by default. -5. In the **Select Navigation Bar Type** drop-down list, select a node on the portal’s navigation - bar; its sub-nodes get listed under **Name**. -6. Click **Edit** for a sub-node to update its properties; the **Edit Link** pane is displayed. -7. Follow steps 7-14 in the [Add a Sub-node to a Node](#add-a-sub-node-to-a-node) topic to update - the required information and save it. - The **Links** section is displayed for system-defined nodes only. Use it to manage the tabs for a - sub-node. - -## Rearrange the Sub-nodes for a Node - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under Design Settings. You can design a - different portal for each of these. -4. Click **Navigation Bar** in the left pane. The **Navigation Bar** page is displayed with the - **Navigation Bars** tab selected by default. -5. In the **Select Navigation Bar Type** drop-down list, select a node on the portal’s navigation - bar; its sub-nodes get listed under **Name**. -6. To rearrange the sub-nodes under the selected node, click the equal sign for a sub-node and drag - to change its position. -7. Click **Save**. - -## Remove a Sub-node from a Node - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Navigation Bar** in the left pane. The **Navigation Bar** page is displayed with the - **Navigation Bars** tab selected by default. -5. In the **Select Navigation Bar Type** drop-down list, select a node on the portal’s navigation - bar; its sub-nodes get listed under **Name**. -6. Click **Remove** for a sub-node to remove it. This also removes all tabs defined for the - sub-node. -7. Click **Save**. - -## Update Tab Properties - -You can modify the following for a tab: - -- The name of the tab -- The display name of the tab (the tab is displayed in the portal with this name) -- Tooltip text -- The URL of the webpage that opens when a user clicks the tab -- Access level - -**To update tab properties:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Navigation Bar** in the left pane. The **Navigation Bar** page is displayed with the - **Navigation Bars** tab selected by default. -5. In the **Select Navigation Bar Type** drop-down list, select a node on the portal’s navigation - bar; its sub-nodes get listed under **Name**. -6. Click **Edit** for a system-defined sub-node. On the **Edit Link** pane, the **Links** area lists - the tabs for the sub-node (in case the sub-node has tabs). -7. Click **Edit** for a tab to edit it. -8. On the **Edit Link** pane (for the tab), update the required information and click **OK**: - - 1. **Link Name** – The name of the tab. - 2. **Display Text** – The text displayed as the tab name in the portal. - 3. **Tooltip Text** – The text that appears when a user hovers the mouse over the tab. - 4. **URL** – The address of the webpage to display when a user clicks the tab. - 5. **Access Level** – Select a security role. The tab would be visible to users of this role and - roles with a priority value higher than this role. For all other users, the tab would be - hidden. See - [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - Select _Never_ to hide the tab for all users. - -9. Click **OK** twice on the **Edit Link** pane. -10. Click **Save** on the **Navigation Bar** page. - -## Rearrange the Tabs for a Sub-node - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Setting**s. You can design a - different portal for each of these. -4. Click **Navigation Bar** in the left pane. The **Navigation Bar** page is displayed with the - **Navigation Bars** tab selected by default. -5. In the **Select Navigation Bar Type** drop-down list, select a node on the portal’s navigation - bar; its sub-nodes get listed under **Name**. -6. Click **Edit** for a system-defined sub-node. On the **Edit Link** pane, the **Links** area lists - the tabs for the sub-node (in case the sub-node has tabs). -7. To change the order in which tabs are displayed in the portal, click the equal sign for a tab and - drag to change its position. -8. Click **OK**. -9. Click **Save** on the **Navigation Bar** page. - -## Remove a Tab from a Sub-node - -1. In GroupID Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Navigation Bar** in the left pane. The **Navigation Bar** page is displayed with the - **Navigation Bars** tab selected by default. -5. In the **Select Navigation Bar Type** drop-down list, select a node on the portal’s navigation - bar; its sub-nodes get listed under **Name**. -6. Click **Edit** for a system-defined sub-node. On the **Edit Link** pane, the **Links** area lists - the tabs for the sub-node (in case the sub-node has tabs). -7. Click **Remove** for a tab to remove it. -8. Click **OK**. -9. Click **Save** on the **Navigation Bar** page. - -See Also - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/objectcard.md b/docs/directorymanager/11.0/signin/applications/portal/displaytype/objectcard.md deleted file mode 100644 index 1eeaefad31..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/objectcard.md +++ /dev/null @@ -1,151 +0,0 @@ ---- -title: "Specify Attributes for the Object Card" -description: "Specify Attributes for the Object Card" -sidebar_position: 130 ---- - -# Specify Attributes for the Object Card - -In the portal, the names of directory objects are displayed as links. When a user hovers the mouse -over this link, a card is displayed, showcasing information about the object. For a user object, for -example, the card displays the name, email address and phone number. It is as: - -![usercard](/images/directorymanager/11.0/admincenter/portal/design/usercard.webp) - -For each object type, you can specify a different set of attributes to display on this card. For a -group, the card is as: - -![groupcard](/images/directorymanager/11.0/admincenter/portal/design/groupcard.webp) - -Notice that the card has three sections, namely: - -- Header - The card template allows for four attributes to be specified for display in the header. - When a specified attribute does not contain a value, NA is displayed on the card. -- Body - You can specify any number of attributes for this section. When you do not specify any - attribute, this section is not displayed. -- Footer - This section has the _Add To Contact_ and _Send An Email_ buttons. You can choose whether - you want to display these buttons on the card or not. - -What do you want to do? - -- [Manage the Card Header](#manage-the-card-header) -- [Manage the Card Footer](#manage-the-card-footer) -- [Specify an Attribute for the Card Body](#specify-an-attribute-for-the-card-body) -- [Update the Display Name for an Attribute](#update-the-display-name-for-an-attribute) -- [Remove an Attribute](#remove-an-attribute) - -## Manage the Card Header - -By default, four attributes are specified for display in the card header. You can change the default -attributes, but you cannot add a fifth attribute or reduce the number to three. - -**To modify the card header:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Card View** in the left pane. The **Card View** page is displayed. -5. In the **Select Directory Object** drop-down list, select _User_, _Contact_, _Group_, or - _Mailbox_ to manage the card for. -6. In the **Name** list, click **Edit** for **Header**. - The **Card View Header/Footer** pane displays a sample header and how the specified attributes - populate it. -7. From the **Title** drop-down list, select an attribute whose value will be displayed as the title - of the header. By default, the title is set to the object’s display name. -8. From the **Image** drop-down list, select an attribute that can store images for directory - objects . -9. Use the **Attribute 1** and **Attribute 2** drop-down lists to select any other object attributes - to display on the card. By default, _mail_ and _mobile_ are selected. -10. Click **OK**. -11. Click **Save** on the **Card View** page. - -## Manage the Card Footer - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Card View** in the left pane. -5. On the **Card View** page, use the **Select Directory Object** drop-down list to select _User_, - _Contact_, _Group_, or _Mailbox_ to manage the card for. -6. In the **Name** list, click **Edit** for _Header_. -7. In the **Footer** section of the **Card View Header/Footer** pane, select the **Add to Contact** - and **Send Email** check boxes to display the respective buttons on the card. -8. Click **OK**. -9. Click **Save** on the **Card View** page. - -## Specify an Attribute for the Card Body - -In addition to the card header, you can specify additional object attributes for the card. The -values of these attributes would be displayed on the card body. - -**To add an attribute:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Card View** in the left pane. -5. On the **Card View** page, use the **Select Directory Object** drop-down list to select _User_, - _Contact_, _Group_, or _Mailbox_ to manage the card for. -6. Click **Add** to add an attribute to the body of the card. The **Add New Card View Attribute** - pane is displayed. -7. Use the **Field Name** box to select one or more schema attributes. The value of these attributes - will be displayed on the object card. -8. Specify a name for the attribute in the **Display Name** box. The attribute value would be - displayed next to this label on the card. - This box is not available when multiple attributes are selected. -9. Click **OK**. -10. Click **Save** on the **Card View** page. - -## Update the Display Name for an Attribute - -You can update the display name of an attribute on the body of an object card. - -**To update the display name:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Card View** in the left pane. -5. On the **Card View** page, use the **Select Directory Object** drop-down list to select _User_, - _Contact_, _Group_, or _Mailbox_ to manage the card for. -6. In the **Name** list, click **Edit** for an attribute. -7. On the **Edit Card View Attribute** pane, the **Field Name** box is not editable, so you cannot - change the attribute. However, you can specify a different display name for it. This display name - is displayed on the card's body and the attribute’s value is shown next to it. -8. Click **OK**. -9. Click **Save** on the **Card View** page. - -## Remove an Attribute - -You can remove an attribute from the body of an object card. - -**To remove an attribute:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Card View** in the left pane. -5. On the **Card View** page, use the **Select Directory Object** drop-down list to select _User_, - _Contact_, _Group_, or _Mailbox_ to manage the card for. -6. In the **Name** list, click **Remove** for an attribute to remove it. -7. Click **Save**. - -**See Also** - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) -- [Specify Attributes for Object List View](/docs/directorymanager/11.0/signin/applications/portal/displaytype/objectlist.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/objectlist.md b/docs/directorymanager/11.0/signin/applications/portal/displaytype/objectlist.md deleted file mode 100644 index 407eb28762..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/objectlist.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: "Specify Attributes for Object List View" -description: "Specify Attributes for Object List View" -sidebar_position: 140 ---- - -# Specify Attributes for Object List View - -In the portal, the object list refers to a listing of groups that are similar to another group, -Group similarity is measured on the basis of group type and membership. - -Let’s assume you want to view the groups that are similar to Group A. On the **Similar Groups** tab -in Group A’s properties, six groups that bear the most similarity to Group A will be displayed, with -the strongest match at the top. It is as: - -![similar_groups](/images/directorymanager/11.0/admincenter/portal/design/similar_groups.webp) - -For a similar group, three attributes are displayed: - -- Attribute 1 - The group’s display name. This attribute cannot be changed. -- Attribute 2 - You can specify any attribute. The default attribute is _mail_. -- Attribute 3 - You can specify any attribute. The default attribute is _expiration policy_. - -What do you want to do? - -- [Change the Attributes on the Object List](#change-the-attributes-on-the-object-list) - -## Change the Attributes on the Object List - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Card View** in the left pane. -5. On the **Card View** page, select _Object List_ in the **Select Directory Object** drop-down - list. - The **Name** list shows the _Header_ option only. -6. Click **Edit** for _Header_. - On the **Card View Header/Footer** pane, you can view the attributes currently displayed for a - similar group in the portal. -7. The **Title** box displays the displayName attribute. The value of this attribute will be - displayed as the name of a similar group. -8. The **Image** box displays the thumbnailPhoto attribute, which can store images for directory - objects . -9. Use the **Attribute 1** and **Attribute 2** boxes to display any other object attributes for - similar groups. By default, the _mail_ and _expiration policy_ attributes are selected. -10. Click **OK**. -11. Click **Save** on the **Card View** page. - -**See Also** - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) -- [Specify Attributes for the Object Card](/docs/directorymanager/11.0/signin/applications/portal/displaytype/objectcard.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/objectproperties.md b/docs/directorymanager/11.0/signin/applications/portal/displaytype/objectproperties.md deleted file mode 100644 index 125388c1e5..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/objectproperties.md +++ /dev/null @@ -1,382 +0,0 @@ ---- -title: "Customize Properties Pages" -description: "Customize Properties Pages" -sidebar_position: 40 ---- - -# Customize Properties Pages - -GroupID enables you to customize the property pages displayed in the portal for these directory -objects: - -- User -- Group -- Smart Group -- Parent Dynasty -- Middle Dynasty -- Leaf Dynasty -- Mailbox -- Contact -- Computer (Only available for adding to group memberships in the portal. Its properties are - read-only.) - -NOTE: A Microsoft Entra ID identity store does not support the _computer_ and _contact_ object -types. - -In the GroupID portal, the properties page of an object has multiple tabs, where each tab groups -similar attributes. These tabs are referred to as categories. - -You can customize the following: - -**For a tab:** - -- Add a new tab (category) to an object’s properties page -- Update the details for a tab -- Remove a tab from an object’s properties page - -**For a field on a tab:** - -- Add a field to a tab -- Update the details for a field -- Rearrange the fields on a tab -- Remove a field from a tab - -What do you want to do? - -- [Add a Tab (Category)](#add-a-tab-category) -- [Update Tab Details](#update-tab-details) -- [Remove a Tab](#remove-a-tab) -- [Add a Field to a Tab](#add-a-field-to-a-tab) -- [Update a Field](#update-a-field) -- [Rearrange the Fields on a Tab](#rearrange-the-fields-on-a-tab) -- [Remove a Field from a Tab](#remove-a-field-from-a-tab) - -## Add a Tab (Category) - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Properties** in the left pane; the **Properties** page is displayed. -5. In the **Select Directory Object** list, select a directory object to add a tab to its properties - page. - The **Name** list displays the tabs (categories) currently available on the object’s properties - page. -6. Click **Add**. The **Add Design Category** pane is displayed. -7. Enter a name for the tab in the **Name** box. The tab will be displayed on the object’s - properties page with this name. -8. In the **Visibility Level** drop-down list, select a security role. The tab would be visible to - users of this role and roles with a priority value higher than this role. The tab would not be - visible to group owners (for their respective groups) and user managers (for their direct - reports) if they fall in a lower priority role. See - [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - - - Select _Never_ to hide the tab from all users. - - Select _Manager and Owner_ to make the tab visible only to the owner (in case of a group) or - manager (in case of a user or contact). It would be hidden from other users, such as group - members or a user. For example: - - - If _Manager and Owner_ is selected for the _Email_ tab in group properties, the tab would - be visible to group owners for their respective groups in the portal. - - If _Manager and Owner_ is selected for the _Account_ tab in user properties, the tab would - be visible to managers for their respective direct reports in the portal. - - - If you have selected ‘User’ or ‘Mailbox’ in the **Select Directory Object** drop-down list, - the _Self_ option is also available in the **Visibility Level** drop-down list. Select _Self_ - to make the tab visible to the respective user or mailbox. It would be hidden from other - users, such as the user’s manager. For example, if the _Self_ role is selected for the - _General_ tab in user properties, it means that: - - - A user can view the General tab on his or her properties page. He or she cannot view this - tab on the properties page of another user. - - A role with a higher priority value cannot see it for another user. - - User managers cannot view it for their direct reports. - - A role with the ‘Manage any profile’ permission in the identity store cannot view it for - other users. - -9. In the **Access Level** drop-down list, select a security role. Users of this role and roles with - a priority value higher than it can add and update the values of fields on this tab. If group - owners/user managers fall in a lower priority role, they cannot update the fields on the tab for - their respective groups/direct reports. See - [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - - - Select _Never_ to make the tab and its fields read-only for all users. - - Select _Manager and Owner_ to enable the owner (in case of a group) or manager (in case of a - user or contact) to specify or modify the value of the fields on the tab. It would be - read-only for other users, such as group members or the respective user. For example, if - _Manager and Owner_ is selected for the _Email_ tab in group properties, it means that: - - - Only group owners can specify or modify the values of fields on this tab for their - respective groups in the portal. - - A role with a higher priority value cannot specify or update field values. - - Group members cannot specify or update field values. - - A role with the ‘Manage any Group’ permission in the identity store cannot specify or - update field values. - - - If you have selected ‘User’ or ‘Mailbox’ in the **Select Directory Object** list, the _Self_ - option is available in the **Access Level** drop-down list. - Select _Self_ to enable the respective user or mailbox to specify or modify the value of the - fields on the tab. The tab would be read-only for the user’s manager and other users. For - example, if _Self_ is selected for the _General_ tab in user properties, it means that: - - - Only the user can add and update the values of fields on the General tab of his or her - properties page. - - A role with a higher priority value cannot specify or update field values. - - The user’s manager cannot specify or update field values. - - A role with the ‘Manage any profile’ permission in the identity store cannot specify or - update field values. - -10. To add fields to the tab, see the [Add a Field to a Tab](#add-a-field-to-a-tab) topic. -11. Click **OK**. -12. Click **Save** on the **Properties** page. - -## Update Tab Details - -You can change the following for a tab: - -- Tab name -- Visibility level -- Access level -- Add and remove fields from the tab - -**To update a tab:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Properties** in the left pane. -5. On the **Properties** page, select a directory object in the **Select Directory Object** list. -6. In the **Name** list, click **Edit** for the tab you want to update. -7. On the **Edit Design Category** pane, update the tab details. Refer to step 7 and onwards in the - [Add a Tab (Category)](#add-a-tab-category) topic for details. - -## Remove a Tab - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Properties** in the left pane. -5. On the **Properties** page, select a directory object in the **Select Directory Object** list. -6. In the **Name** list, click **Remove** for a tab to remove it. -7. Click **Save**. - -## Add a Field to a Tab - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Properties** in the left pane. -5. On the **Properties** page, select a directory object in the **Select Directory Object** list. -6. In the **Name** list, click **Edit** for the tab you want to add a field to. -7. On the **Edit Design Category** pane, click **Add Field**; the **Add Field** pane is displayed. -8. In the **Field** drop-down list, select a schema attribute to link to this field. - Updating the field in the portal is akin to updating the value of this attribute. -9. In the **Display Name** box, enter a display name for the field. This name is the field’s label - on the tab. -10. In the **Display Type** drop-down list, select the display type to use for rendering this field - on the tab. - The list contains basic display types and custom display types defined on the **Custom Display - Types** page. See the - [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) - topic. -11. In the **Visibility Level** drop-down list, select a security role. The tab would be visible to - users of this role and roles with a priority value higher than this role. It would not be - visible to group owners (for their respective groups) and user managers (for their direct - reports) if they fall under a lower priority role. See - [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - - - Select _Never_ to hide the field from all users. - - Select _Manager and Owner_ to make the field visible only to the owner (in case of a group) or - manager (in case of a user or contact). It would be hidden from other users, such as group - members or a user. For example: - - - If _Manager and Owner_ is selected for the _Expiration Date_ field on the _General_ tab in - group properties, the field would be visible to group owners for their respective groups - in the portal. - - If _Manager and Owner_ is selected for the _Manager_ field on the _Organization_ tab in - user properties, the field would be visible to managers for their direct reports in the - portal. - - - If you have selected ‘User’ or ‘Mailbox’ in the **Select Directory Object** drop-down list, - the _Self_ option is also available in the **Visibility Level** drop-down list. Select _Self_ - to make the field visible to the respective user or mailbox. It would be hidden from other - users, such as the user’s manager. For example, if _Self_ is selected for the _Notes_ field on - the _Phone/Notes_ tab in user properties, it means that: - - - A user can view the field on his or her properties page only. He or she cannot see this - field on the properties page of another user. - - A role with a higher priority value cannot view it for another user. - - User managers cannot view it for their direct reports. - - A role with the ‘Manage any profile’ permission in the identity store cannot view it for - other users. - -12. In the **Access Level** drop-down list, select a security role. Users of this role and roles - with a priority value higher than this role can add and update the value of this field. If group - owners/user managers fall in a lower priority role, they cannot able to update the value of the - field for their respective groups/direct reports. See - [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - - - Select _Never_ to make this field read-only for all users. - - Select _Manager and Owner_ to enable only the owner (in case of a group) or manager (in case - of a user or contact) to specify or modify the value of this field. It would be read-only for - other users, such as group members or the respective user. For example, if _Manager and Owner_ - is selected for the _Expiration Date_ field on the _General_ tab in group properties, it means - that: - - - Only group owners can specify or modify the value of this field for their groups in the - portal. - - A role with a higher priority value cannot specify or update the field value. - - Group members cannot specify or update the field value. - - A role with the ‘Manage any Group’ permission in the identity store cannot specify or - update the field value. - - - If you have selected ‘User’ or ‘Mailbox’ in the **Select Directory Object** list, the _Self_ - option is available in the **Access Level** drop-down list. Select _Self_ to enable the - respective user or mailbox to specify or modify the value of the field. The field would be - read-only for other users, such as the user’s manager or a role with a higher priority value. - For example, if _Self_ is selected for the _Notes_ field on the _Phone / Notes_ tab in user - properties, it means that: - - - Only the respective user can add and update the value of this field on the _Phone / Notes_ - tab in his or her properties page. - - A role with a higher priority value cannot specify or update the field value. - - The user’s manager cannot specify or update the field value. - - A role with the ‘Manage any profile’ permission in the identity store cannot specify or - update the field values. - -13. Click **Advanced Options** to display additional fields. -14. As mentioned for visibility level and access level, the field is visible and editable for - members of the selected role and roles with a priority value higher than it. - In the **Exclude Roles** area, select the check boxes for the higher priority role(s) to deny - them access and visibility on the field. -15. In the **Tooltip Text** box, enter the text to display when a user hovers the mouse over the - field. -16. In the **Max Length** box, enter a number that represents the maximum number of characters that - users can enter as value for this field. - Entering _0_ indicates that users can enter an unlimited number of characters as value. -17. Use the **Search Object Types** area to specify the object types (User, Contact, and/or Group) - that can be searched on the portal’s _Find_ dialog box, to set as value for the field. - The following display types support the **Find** dialog box: - - - DN - - DNs - - Custom display types created with the Grid type - - When you select any of these display types, GroupID identifies that the value for the field has - to be searched and selected using the _Find_ dialog box. The **Search Object Types** area is - displayed, where you can select the required object type(s). For example, if you select _Group_, - only groups can be searched and selected as value for the field. - You can launch the _Find_ dialog box from multiple portal pages to search for objects to - designate as owners, managers, additional owners, members, and more. While specifying the - searchable object type(s), you must be aware of the kind of value the field requires. - -18. Select the **Is Required** check box to make it mandatory for users to provide a value for the - field. -19. Select the **Is Read Only** check box to make the field read-only. -20. Select the **Filter Bad Words** check box to ensure that users do not enter any bad word in this - field. - A value entered for the field is checked against the words listed on the **Bad Words List** - page. Matched values cannot be saved. See the - [Manage the Bad Words List](/docs/directorymanager/11.0/signin/applications/portal/displaytype/badwords.md) - topic. -21. The **Image Attribute** list is available when ‘DN’ is selected as the display type. This list - supports ‘thumbnailPhoto’ as its value. - - - Select the ‘thumbnailPhoto’ attribute in the **Image Attribute** drop-down list when you want - to auto upload an image for the field. Let’s assume you apply this setting for the Primary - Manager field in group properties. In the portal, the primary manager's image will be - displayed alongside his or her name on the group properties page. - Note that for the image to display, the ‘thumbnailPhoto’ attribute must have a value stored; - in case of no value, an image placeholder is displayed. - - If you do not want to auto upload an image for the field, clear the value in the **Image - Attribute** box. - -22. Click **OK**. - The field is displayed in the **Fields** area on the **Edit Design Category** pane. You can - rearrange the fields, update field details, and even remove a field from the tab. -23. Click **OK**. -24. Click **Save** on the **Properties** page. - -## Update a Field - -You can change the following for a field: - -- The name of the field (used as the field’s label in the portal) -- The schema attribute linked with the field -- The display type used to render the field in the portal -- Visibility level -- Access level -- Tooltip - -The following field properties vary from field to field. You can: - -- Specify the maximum characters that a user can enter as value for the field -- Make the field editable or read–only -- Place a check that prevents users from using certain words as value for the field -- Make it optional or mandatory for users to provide a value for the field -- For search fields, you can specify the object types (groups, users, contacts) that can be searched - and set as field value -- Specify whether to auto upload user photos with fields that require user names as value - -**To update a field:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Properties** in the left pane. -5. On the **Properties** page, select a directory object in the **Select Directory Object** list. -6. In the **Name** list, click **Edit** for the tab you want to update a field for. -7. On the **Edit Design Category** pane, click **Edit** for a field. -8. On the **Edit Field** pane, update the field details. Refer to step 8 and onwards in the - [Add a Field to a Tab](#add-a-field-to-a-tab) topic to update the required details and save the - changes. - -## Rearrange the Fields on a Tab - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Properties** in the left pane. -5. On the **Properties** page, select a directory object in the **Select Directory Object** list. -6. In the **Name** list, click **Edit** for the tab you want to rearrange the fields for. -7. On the **Edit Design Category** pane, the **Fields** area displays the fields on the tab. - To rearrange the fields, click the equal sign for a field and drag to change its position. -8. Click **OK**. -9. Click **Save** on the **Properties** page. - -## Remove a Field from a Tab - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Properties** in the left pane. -5. On the **Properties** page, select a directory object in the **Select Directory Object** list. -6. In the **Name** list, click **Edit** for the tab you want to remove a field from. -7. On the **Edit Design Category** pane, the **Fields** area displays the fields on the tab. - Click **Remove** for a field to remove it. -8. Click **OK**. -9. Click **Save** on the **Properties** page. - -See Also - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/organizationalhierarchy.md b/docs/directorymanager/11.0/signin/applications/portal/displaytype/organizationalhierarchy.md deleted file mode 100644 index 6c345c5000..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/organizationalhierarchy.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "Specify Attributes for Organizational Hierarchy" -description: "Specify Attributes for Organizational Hierarchy" -sidebar_position: 120 ---- - -# Specify Attributes for Organizational Hierarchy - -Using the portal, you can view the organizational hierarchy for a user in the organization. This -hierarchy is displayed in graphical form, creating a kind of an organogram. It presents a 360° view -of the organization with the specified user as the focal point. - -By default, the organizational hierarchy chart displays four attributes of a user: _title_, _display -name_, _email_, and _picture_. You can replace an attribute with another one but you cannot add or -remove attributes. Hence the attribute count remains ‘four’. - -What do you want to do? - -- [Replace an Attribute on the Organizational Hierarchy Tree](#replace-an-attribute-on-the-organizational-hierarchy-tree) - -## Replace an Attribute on the Organizational Hierarchy Tree - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Organizational Hierarchy** in the left pane. The **Organizational Hierarchy** page is - displayed. - By default, the **Display Name** area displays four attributes. The values of these attributes - are displayed for users on the organizational hierarchy chart in the portal. You can only replace - an attribute with another attribute; you cannot add a fifth attribute or reduce the list to - three. -5. Click **Edit** for an attribute to replace it. The **Edit Field** pane is displayed. -6. In the **Field** drop-down list, select a schema attribute to display on the organizational - hierarchy chart. -7. In the **Display Name** box, enter a user-friendly name for the attribute, that would serve as - the attribute name on the chart. The attribute’s value will be displayed next to this name. -8. In the **Display Type** drop-down list, select the display type to use for rendering the - attribute on the organizational hierarchy chart. The display type must match the attribute. For - example, the ‘TreePicture’ display type matches the ‘thumbnailPhoto’ attribute. - This list contains basic display types and custom display types defined on the **Custom Display - Types** page. See the - [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) - topic. -9. Click **OK**. -10. Click **Save** on the **Organizational Hierarchy** page. - -**See Also** - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md b/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md deleted file mode 100644 index d690647537..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: "Design a Portal with Display Types" -description: "Design a Portal with Display Types" -sidebar_position: 50 ---- - -# Design a Portal with Display Types - -Display types enable you to control the layout and appearance of a GroupID portal and its pages. -They also enable you to expose the required functionality and data fields in the portal. - -You can associate multiple identity stores with a portal and design a different portal for each -identity store. Adding links to the navigation bar, adding pages to the portal, and adding fields to -pages are some customization examples. In this way, the portal offers a different design and -functionality for each associated identity store. - -You can customize the following for a portal: - -- **Search Forms:** control the fields to be displayed on different search forms and search result - pages in a portal. See the - [Customize Search Forms](/docs/directorymanager/11.0/signin/applications/portal/displaytype/searchforms.md) - and - [Customize Search Results](/docs/directorymanager/11.0/signin/applications/portal/displaytype/searchresults.md) - topics. -- **Quick Search:** control the schema attributes for quick search to run on. See the - [Customize Quick Search](/docs/directorymanager/11.0/signin/applications/portal/displaytype/quicksearch.md) - topic. -- **Properties:** control what properties of directory objects you want to display in a portal. See - the - [Customize Properties Pages](/docs/directorymanager/11.0/signin/applications/portal/displaytype/objectproperties.md) - topic. -- **Toolbars:** customize the buttons on the portal toolbars. See the - [Customize the Toolbars](/docs/directorymanager/11.0/signin/applications/portal/displaytype/toolbars.md) - topic. -- **Navigation Bar:** customize the left navigation bar in a portal. See the - [Customize the Navigation Bar](/docs/directorymanager/11.0/signin/applications/portal/displaytype/navigationbar.md) - topic. -- **Bad Words List:** restrict users from entering bad or offensive words while using a portal. See - the - [Manage the Bad Words List](/docs/directorymanager/11.0/signin/applications/portal/displaytype/badwords.md) - topic. -- **Import/Export Attributes:** specify schema attributes to be used for importing/exporting members - and additional owners for groups. See the - [Specify Attributes for Import/Export of Group Owners and Members](/docs/directorymanager/11.0/signin/applications/portal/displaytype/importexport.md): - topic. -- **Create Object Wizards:** control the schema attributes displayed in the portal for creating - different object types. See the - [Customize the Create Object Wizards](/docs/directorymanager/11.0/signin/applications/portal/displaytype/createobject.md) topic. -- **Query Attributes:** control which schema attributes to display in the portal for creating - queries for Smart Groups ad Dynasties. See the - [ Specify Smart Group Query Attributes](/docs/directorymanager/11.0/signin/applications/portal/displaytype/queryattributes.md) topic. -- **Property Validation:** manage the schema attributes for user profile validation and group - attestation. See the - [Manage Property Validation Attributes](/docs/directorymanager/11.0/signin/applications/portal/displaytype/propertyvalidation.md) - topic. -- **Organizational Hierarchy:** specify user attributes for display on the organizational hierarchy - chart. See the - [Specify Attributes for Organizational Hierarchy](/docs/directorymanager/11.0/signin/applications/portal/displaytype/organizationalhierarchy.md) - topic. -- **Card View:** specify the attributes to be displayed on an object card. See the - [Specify Attributes for the Object Card](/docs/directorymanager/11.0/signin/applications/portal/displaytype/objectcard.md) - topic. -- **Object List View:** specify the attributes to be displayed for similar groups on the **Similar - Groups** tab in group properties. See the - [Specify Attributes for Object List View](/docs/directorymanager/11.0/signin/applications/portal/displaytype/objectlist.md) - topic. - -**See Also** - -- [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) -- [Define Custom Display Types](/docs/directorymanager/11.0/signin/applications/portal/categories/custom.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/propertyvalidation.md b/docs/directorymanager/11.0/signin/applications/portal/displaytype/propertyvalidation.md deleted file mode 100644 index 5390176c6e..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/propertyvalidation.md +++ /dev/null @@ -1,190 +0,0 @@ ---- -title: "Manage Property Validation Attributes" -description: "Manage Property Validation Attributes" -sidebar_position: 110 ---- - -# Manage Property Validation Attributes - -In GroupID, property validation applies to: - -- Users -- Groups - -### Profile Validation for Users - -Profile validation is designed to ensure the accuracy of users’ information in the directory. It -applies to users who are members of the group specified for profile validation in an identity store. -These users must verify and update their directory profile information at a set frequency using the -portal. - -While validating his or her profile, a user can: - -- Update his or her directory profile information -- Change his or her primary manager -- Transfer his or her direct reports to another manager -- Terminate his or her direct reports - -You can specify the schema attributes (fields) for user profile validation. These attributes -(fields) are displayed on the **Validate Profile Properties** window of the portal, where users can -validate and update the values for these attributes. - -NOTE: A few fields for profile validation are specified in the default portal template. You can add -more fields, edit the existing fields, or remove them. However, the **My Direct Reports** field can -neither be edited nor removed. - -### Property Validation for Groups - -The GroupID administrator can enforce group owners to review and validate the attributes and -membership of an expiring group before renewing it. See the -[Enable Group Attestation](/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md#enable-group-attestation) -topic. - -While attesting a group in the portal, the owner can: - -- Update a few attributes, such as the group’s display name, expiration policy, security type, etc. -- Verify the group’s membership and inactivate undesired members. Inactive members are removed from - group membership instantly or after x number of days, depending on the configurations made by the - administrator. - -Group attestation applies to expiring groups with an expiry policy other than ‘never expire’. - -You can specify the schema attributes (fields) for group attestation. These attributes (fields) are -displayed on the **Attest & Renew Group** wizard in the portal, where group owners can validate and -update the values for these attributes. - -NOTE: A few fields for group attestation are specified in the default portal template. You can add -more fields, edit the existing fields, or remove them. However, the _Members_ grid can neither be -edited nor removed. - -What do you want to do? - -- [Add a Property Validation Field](#add-a-property-validation-field) -- [Update a Field](#update-a-field) -- [Remove a Field](#remove-a-field) - -## Add a Property Validation Field - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Property Validation** in the left pane. The **Property Validation** page is displayed. -5. In the **Select Directory Object** drop-down list, select: - - - _Group:_ to add, edit, or remove attributes for group attestation. - - _User:_ to add, edit, or remove attributes for user profile validation. - - On selecting an option, the fields available for group attestation/profile validation in the - portal are listed under **Name**. - -6. Click **Add** to specify a new attribute (field) for group attestation/profile validation. - The **Add Profile Validation Attribute** pane is displayed. -7. Select an attribute from the **Field** drop-down list. -8. In the **Display Name** box, specify a name to use as the field’s label on the Attest & Renew - Group wizard/Validate Profile Properties window of the portal. -9. Use the **Display Type** drop-down list to specify the display type to use for rendering the - attribute in the portal. The list contains basic display types and custom display types defined - on the **Custom Display Types** page. See the - [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) - topic. -10. In the **Visibility Level** drop-down list, select a security role. The field would be visible - to users of this role and roles with a priority value higher than this role. See - [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - Select _Never_ to hide the field from all users. -11. As mentioned for visibility level, the field is visible to members of the selected role and - roles with a priority value higher than the selected role. - In the **Exclude Roles** area, select the check boxes for the higher priority role(s) you want - to hide the field from. -12. In the **ToolTip Text** box, enter the text to display when a user hovers the mouse over the - field. -13. In the **Max Length** box, enter a number that represents the maximum number of characters that - users can enter as value for the field. Entering _0_ indicates that the field can accept an - unlimited number of characters for its value. -14. Select the **Is Required** check box to make it mandatory for users to provide a value for the - field. -15. Select the **Is Read Only** check box to make the field read-only. -16. Select the **Filter Bad Words** check box to ensure that users do not enter any bad word in this - field. - A value entered for the field is checked against the words listed on the **Bad Words List** - page. Matched values cannot be saved. See the - [Manage the Bad Words List](/docs/directorymanager/11.0/signin/applications/portal/displaytype/badwords.md) - topic. -17. The **Image Attribute** list is available when ‘DN’ is selected as the display type. This list - supports ‘thumbnailPhoto’ as its value. - - - Select the ‘thumbnailPhoto’ attribute in the **Image Attribute** drop-down list when you want - to auto upload an image for the field. Let’s assume you apply this setting while defining the - _Primary Manager_ field on the _Validate Profile Properties_ window. In the portal, the - primary manager's image will be displayed alongside his or her name on the _Validate Profile - Properties_ window. - Note that for the image to display, the ‘thumbnailPhoto’ attribute must have a value stored; - in case of no value, an image placeholder is displayed. - - If you do not want to auto upload an image for the field, clear the value in the **Image - Attribute** box. - -18. Click **OK**. -19. Click **Save** on the **Property Validation** page. - -## Update a Field - -You can change the following for a field available in the portal for group attestation or user -profile validation: - -- The attribute mapped to the field -- The display name (the field is displayed with this label in the portal) -- The display type used to render the field in the portal -- Visibility level -- Tooltip - -The following field properties vary from field to field. You can: - -- Specify the maximum characters that a user can enter as value for the field -- Whether to auto upload an image with the field -- Make the field editable or read–only -- Make it optional or mandatory for users to provide a value for the field -- Prevent users from using certain words as value for the field - -**To update field properties:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Property Validation** in the left pane. -5. On the **Property Validation** page, select _Group_ or _User_ in the **Select Directory Object** - drop-down list. - - - _Group:_ to update a field for group attestation - - _User:_ to update a field for user profile validation - -6. In the **Name** area, click **Edit** for a field. -7. On the **Edit Profile Validation Attribute** pane, update the required information. Follow steps - 7-19 in the [Add a Property Validation Field](#add-a-property-validation-field) topic for help. - -## Remove a Field - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Property Validation** in the left pane. -5. On the **Property Validation** page, select _Group_ or _User_ in the **Select Directory Object** - drop-down list. - - - _Group:_ to remove a field from the **Attest & Renew Group** wizard in the portal. - - _User:_ to remove a field from the **Validate Profile Properties** window in the portal. - -6. In the **Name** area, click **Remove** for a field to remove it. -7. Click **Save**. - -**See Also** - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) -- [Configure User Profile Validation](/docs/directorymanager/11.0/signin/identitystore/configure/profilevalidation.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/queryattributes.md b/docs/directorymanager/11.0/signin/applications/portal/displaytype/queryattributes.md deleted file mode 100644 index d17888d077..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/queryattributes.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -title: "Specify Smart Group Query Attributes" -description: "Specify Smart Group Query Attributes" -sidebar_position: 90 ---- - -# Specify Smart Group Query Attributes - -For an identity store, you can choose whether all or specific schema attributes should be available -on the following pages in the portal: - -- The Query Designer, where you can specify queries for Smart Groups and Dynasties for membership - update. The Query Designer can be launched from: - - - The Create Object wizard for Smart Groups and Dynasties - - The properties page for Smart Groups and Dynasties - - When you upgrade a static group to a Smart Group or Dynasty - - The schema attributes you specify would be available to portal users on the Filter Criteria tab - of the Query Designer for building Smart Group/Dynasty queries. - - ![filter_criteria_tab](/images/directorymanager/11.0/admincenter/portal/design/filter_criteria_tab.webp) - -- The Sub-Manager Query Designer for a Recursive Managerial Dynasty, where you can specify a query - for sub-manager selection. - - ![sub-manager_query](/images/directorymanager/11.0/admincenter/portal/design/sub-manager_query.webp) - -- The **Add Attributes** dialog box for Dynasties. The schema attributes you specify would be - available in the _Group Items By_ field, which is used to divide the query results into groups. - GroupID creates a new child group for each unique value of the attribute that users select in the - _Group Items By_ field. - - ![add_attributes](/images/directorymanager/11.0/admincenter/portal/design/add_attributes.webp) - -- The Query Designer for importing members to a group using an external data source. The specified - schema attributes would be available on the Filter Criteria tab of the Query Designer for building - membership import queries. - You can launch this Query Designer using the **Import** button on the **Members** tab in group - properties (for static groups, Smart Groups and Dynasties). - ![importmembers](/images/directorymanager/11.0/admincenter/portal/design/importmembers.webp) -- The Query Designer for query-based search, where users can define a query to search the - directory. - The schema attributes you specify would be available to portal users on the Filter Criteria tab of - the Query Designer for building search queries. - Users can launch the Query Designer for searches from the portal’s Advanced Search page. - -You can also specify the following for an attribute: - -- The operator(s) that can be applied to the attribute on the Query Designer dialog boxes. For - example, if you allow the ‘Contains’ and ‘Equals’ operators for the ‘cn’ attribute, then only - these operators will be displayed when users select the ‘cn’ attribute on any of the Query - Designers. -- The display type to use for specifying the value of the attribute. For example, it can be a simple - text box, a drop-down list, or a button that launches the Find dialog box for searching and - selecting an object. -- The maximum number of characters that users can enter as value for an attribute. - -What do you want to do? - -- [Allow All Schema Attributes](#allow-all-schema-attributes) -- [Allow Specific Attributes](#allow-specific-attributes) -- [Update the Properties of a Query Attribute](#update-the-properties-of-a-query-attribute) -- [Remove a Query Attribute](#remove-a-query-attribute) - -## Allow All Schema Attributes - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Smart Group Attributes** in the left pane. -5. On the **Smart Group Attributes** page, click the **All Attributes** tile under **Select Smart - Group Attributes**. - All schema attributes in the identity store (directory) would be available to portal users on the - different Query Designers and the Add Attributes dialog box. -6. Click **Save**. - -## Allow Specific Attributes - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Smart Group Attributes** in the left pane. -5. On the **Smart Group Attributes** page, click the **Selected Attributes** tile under **Select - Smart Group Attributes**. The **Name** column lists any attributes that you have already - specified. -6. To add an attribute, click **Add**. The **Add Smart Group Attribute** pane is displayed. -7. Use the **Fields** box to select one or more schema attributes. These attributes would be - available in the portal, where users can use them for building Smart Group queries and other - purposes. -8. Use the **Display Name** box to specify a user-friendly name for the attribute. The attribute - would be displayed in the portal with this name. - This box is not available when multiple attributes have been selected. -9. Select a security role in the **Visibility Level** drop-down list. The attribute(s) would be - visible to users of the selected role and roles with a priority value higher than the selected - role. See [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - Select _Never_ to hide the attribute(s) from all users. -10. Use the **Display Type** drop-down list to specify the display type to use for enabling users to - provide a value for the attribute(s) in the portal. For example, you can select a text box, - drop-down list, or DN as display type. In case of DN, users can search and select a directory - object as value for the attribute. - The list contains basic display types and custom display types defined on the **Custom Display - Types** page. See the - [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) - topic. - When multiple attributes are selected in the **Fields** box, this display type applies to each - of them. You can edit an attribute later to apply a different display type. -11. In the **ToolTip Text** box, enter the text to display when a user hovers the mouse over the - attribute . - - This box is not available when multiple attributes have been selected. - -12. In the **Max Length** box, enter a number that represents the maximum number of characters that - users can enter as value for an attribute. - Entering _0_ indicates that the attribute(s) can accept an unlimited number of characters as - value. -13. The **Selected Operators** area lists the operators that can be applied to attributes in the - Query Designers. - Select the check box for the operator(s) you want to provide for the selected attribute(s). -14. Click **OK**. -15. Click **Save** on the **Smart Group Attributes** page. - -## Update the Properties of a Query Attribute - -You can change the following for an attribute: - -- The display name of the attribute (the attribute is displayed with this name in the Query - Designers and the Add Attribute dialog box) -- The operators that users can apply to the attribute in the Query Designers -- The display type used to provide a value for the attribute in the Query Designers -- The maximum characters that users can enter as value for the attribute in the Query Designers -- Visibility level -- Tooltip - -**To update attribute properties:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Setting**s to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Smart Group Attributes** in the left pane. -5. On the **Smart Group Attributes** page, click the **Selected Attributes** tile under **Select - Smart Group Attributes**. The _Name_ column lists any attributes that you have already specified. -6. Click **Edit** for an attribute to update its properties. -7. On the **Edit Smart Group Attribute** pane, the attribute name is read-only. To update all other - details, follow steps 8 - 15 in the [Allow Specific Attributes](#allow-specific-attributes) - topic. - -## Remove a Query Attribute - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Smart Group Attributes** in the left pane. -5. On the **Smart Group Attributes** page, click the **Selected Attributes** tile under **Select - Smart Group Attributes**. The _Name_ column lists any attributes that you have already specified. -6. Click **Remove** for an attribute to remove it. Removed attributes would not be available in the - portal for building Smart Group queries and other purposes. However, Smart Groups and Dynasti - created using those attributes will be unaffected. -7. Click **Save**. - -See Also - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/quicksearch.md b/docs/directorymanager/11.0/signin/applications/portal/displaytype/quicksearch.md deleted file mode 100644 index ce28d70301..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/quicksearch.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: "Customize Quick Search" -description: "Customize Quick Search" -sidebar_position: 30 ---- - -# Customize Quick Search - -In a GroupID portal, the quick search box is available at the top of each page. You can specify the -schema attributes that quick search runs on, and the objects (group, user, contact) that can be -searched. When a user enters a search string, the values of all specified attributes are matched to -return the results (allowed objects). - -You can also specify a search operator that determines what part of the attribute value should match -the search string. - -What do you want to do? - -- [Specify Attributes for Quick Search](#specify-attributes-for-quick-search) -- [Change the Search Operator](#change-the-search-operator) -- [Specify Searchable Objects](#specify-searchable-objects) - -## Specify Attributes for Quick Search - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Search Forms** in the left pane. Then click the **Quick Search Attributes** tab. -5. On the **Quick Search Attributes** tab, the **Name** column lists the schema attributes whose - values will be matched when portal users perform a search using the quick search box. - Click **Add** to add an attribute to this list. -6. On the **Add Search Attribute** dialog box, select a schema attribute in the **Attribute** - drop-down list and click **OK**. - The attribute is displayed in the **Name** column on the **Quick Search Attributes** tab. - To remove an attribute, click **Remove** for it. -7. Click **Save**. - -## Change the Search Operator - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Search Forms** in the left pane. Then click the **Quick Search Attributes** tab. -5. In the **Quick Search Operator** drop-down list, select an option. - - - **Equal** - looks up the values of the attributes listed in the _Name_ column and returns - records with values that exactly match the search string. - - **Contains** - looks up the values of all attributes listed in the _Name_ column and returns - records that contain the string anywhere in their values. - - **Starts with** - looks up the values of the attributes listed in the _Name_ column and - returns records with values starting with the search string. - - **Ends with** - looks up the values of all attributes listed in the _Name_ column and returns - records with values ending with the search string. - -6. Click **Save**. - -## Specify Searchable Objects - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Search Forms** in the left pane. Then click the **Quick Search Attributes** tab. -5. You can specify the object type(s) to be searched when users perform a search using the quick - search function in the portal. - Select any or all three **User**, **Group**, and **Contact** check boxes next to **Quick Search - Objects** to make that object type searchable in quick search. -6. Click **Save**. - -**See Also** - -- [Customize Search Forms](/docs/directorymanager/11.0/signin/applications/portal/displaytype/searchforms.md) -- [Customize Search Results](/docs/directorymanager/11.0/signin/applications/portal/displaytype/searchresults.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/searchforms.md b/docs/directorymanager/11.0/signin/applications/portal/displaytype/searchforms.md deleted file mode 100644 index 82ef540a1f..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/searchforms.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: "Customize Search Forms" -description: "Customize Search Forms" -sidebar_position: 10 ---- - -# Customize Search Forms - -You can customize the search forms for a portal. You can: - -- Add new fields -- Edit existing fields -- Remove fields -- Change the arrangement of fields on a page - -NOTE: You can only customize existing search forms; you cannot add new ones. - -### Customizable Search Forms - -The following table lists the search forms that you can customize: - -| Search Form Name | Description | -| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Default | Manage the search fields on the _Advanced Search_ page, where users can search directory objects (user, group, contact) by different attributes. This page is displayed when users click the _Advanced Search_ link. | -| Find Dialog | Manage the search fields on the _Find_ dialog box. The _Find_ dialog box can be launched from various portal pages, for example, from the **Owner** tab, **Members** tab, and **Member Of** tab in group properties. It is used to search for objects to designate as owners, managers, additional owners, group members, and more. | - -What do you want to do? - -- [Add a Field to a Search Form](#add-a-field-to-a-search-form) -- [Update a Field on a Search Form](#update-a-field-on-a-search-form) -- [Remove a Field from a Search Form](#remove-a-field-from-a-search-form) - -## Add a Field to a Search Form - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Search Forms** in the left pane. -5. On the **Search Form** tab, the search forms available in the portal are listed under **Name**. - To modify a form, click **Edit** for it. -6. On the **Edit Search Form** pane, the **Fields** area lists the fields available on the search - form for performing a search. - Click **Add Field** to add a new field. The **Add Field** pane is displayed. -7. In the **Field** drop-down list, select a schema attribute to link to the field. - The search string that portal users enter in the field will be matched to this attribute’s values - to fetch search results. -8. In the **Display Name** box, enter a display name for the field. This name is the field’s label - on the search form. -9. In the **Tooltip** box, enter the text to appear when a user hovers the mouse over the field. -10. In the **Display Type** drop-down list, select the display type to use to render this field in - the portal. The list contains basic display types and custom display types defined on the - **Custom Display Types** page. See the - [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) - topic. -11. Click **OK.** The field is displayed in the **Fields** area on the **Edit Search Form** pane. - To rearrange the fields on the search form, click the plus sign for a field and drag to change - its position. -12. Click **OK**. -13. Click **Save** on the **Search Forms** page. - -## Update a Field on a Search Form - -You can change the following for a field on a search form: - -- The name of the field, as displayed in the portal -- The schema attribute linked to the field -- The display type used to render the field in the portal -- The tooltip for the field - -**To update a field:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Search Forms** in the left pane. -5. On the **Search Form** tab, the search forms available in the portal are listed under - **Name**.Click **Edit** for a form to update its fields. -6. On the **Edit Search Form** pane, click **Edit** for a field to update it. -7. The **Edit Field** pane is displayed. Refer to step 7 and onwards in the - [Add a Field to a Search Form](#add-a-field-to-a-search-form) topic to update the field. - -## Remove a Field from a Search Form - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Search Forms** in the left pane. -5. On the **Search Form** tab, click **Edit** for the form you want to remove a field from. -6. On the **Edit Search Form** pane, click **Remove** for a field to remove it. -7. Click **OK**. -8. Click **Save** on the **Search Forms** page. - -**See Also** - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) -- [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) -- [Customize Search Results](/docs/directorymanager/11.0/signin/applications/portal/displaytype/searchresults.md) -- [Customize Quick Search](/docs/directorymanager/11.0/signin/applications/portal/displaytype/quicksearch.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/searchresults.md b/docs/directorymanager/11.0/signin/applications/portal/displaytype/searchresults.md deleted file mode 100644 index 251275d79d..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/searchresults.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: "Customize Search Results" -description: "Customize Search Results" -sidebar_position: 20 ---- - -# Customize Search Results - -You can customize the search result pages for a portal. You can: - -- Add new fields -- Edit existing fields -- Remove fields -- Change the arrangement of fields on a page - -NOTE: You can only customize existing search result pages; you cannot add new ones. - -### Customizable Search Results Pages - -The following table lists the search results pages that you can customize: - -| Form Name | Description | -| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Smart Group Preview | Manage the column headers on the preview page, which is displayed when users click the **Preview** button on the **Query Designer** dialog box. It enables users to preview the results returned with the specified query for the Smart Group/Dynasty. The **Query Designer** dialog box can be launched from the Smart Group page when creating a new Smart Group or Dynasty, and from the Smart Group tab in group properties. | -| Default | Manage the column headers on the **All** tab of the search results page, which is displayed when users perform a search on the **Advanced Search** page in the portal. The **Advanced Search** page can be launched using the **Advanced Search** link. | -| User | Manage the column headers on the following portal pages: - The **My Direct Reports** tab, where users can view a list of their direct reports. This tab is displayed when users click **Users > My Direct Reports** in the portal. - The **Users** and **Contacts** tabs on the search results page, which is displayed when users perform a search on the **Advanced Search** page in the portal. | -| Disabled Users | Manage the column headers on the **Disabled Users** tab in the portal, which displays a list of disabled users in the directory. This tab is displayed when users click **Users > My Direct Reports** and then the **Disabled Users** tab in the portal. | -| Groups | Manage the column headers on the following portal pages: - The **All Groups** page – all except the **Expired Groups** and **Expiring Groups** tabs - The **My Groups** page – all except the **My Expired Groups** and **My Expiring Groups** tabs - The **Groups** tab on the search results page, which is displayed when users perform a search on the **Advanced Search** page in the portal. | -| Expiring Groups | Manage the column headers on the following tabs in the portal: - Groups > All Groups and then the **Expiring Groups** tab . It displays the groups in the directory that will expire in 30 days or less. - Groups > My Groups and then the **My Expiring Groups** tab. It displays the logged-on user's groups that will expire in 30 days or less. | -| Expired Groups | Manage the column headers on the following tabs in the portal: - Groups > All Groups and then the **Expired Groups** tab. It displays the expired groups in the directory. - Groups > My Groups and then the **My Expired Groups** tab. It displays the logged-on user's groups that have expired. | -| Find dialog | Define the attributes to display for objects shown as search results on the _Find_ dialog box. The _Find_ dialog box is used to search and select objects to designate as owners, managers, additional owners, group members, and more. It has a _search_ area and a _search results_ area. This option controls the column headers (attributes) displayed in the **Search Results** area. The _Find_ dialog box can be launched from various portal pages, for example, from the **Owner** tab, **Members** tab, and **Member Of** tab in group properties. | - -What do you want to do? - -- Add a Field to a Search Results Page -- Update a Field on a Search Results Page -- Remove a Field from a Search Results Page - -## Add a Field to a Search Results Page - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Search Forms** in the left pane. Then click the **Search Results** tab. -5. On the **Search Results** tab, the search results pages available in the portal are listed under - **Name**. To modify a page, click **Edit** for it. -6. On the **Edit Search Results** pane, the **Fields** area lists the fields that display search - results on the selected page. - Click **Add Field** to add a new field. -7. On the **Add Field** pane, use the **Field** drop-down list to select a schema attribute to link - to the field. The field will display the value of this attribute on the search results page. -8. In the **Display Name** box, enter a display name for the field. This name is the field's label - on the search results page. -9. In the **Tooltip** box, enter the text to appear when a user hovers the mouse over the field. -10. In the **Display Type** drop-down list, select the display type to use to render this field in - the portal. Available options are limited to textbox, DN, DNs, and Link, which are basic display - Types. See the - [Basic Display Types](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md#basic-display-types) - topic. -11. Click **OK.** The field is displayed in the **Fields** area on the **Edit Search Results** - pane. - To rearrange the fields on the search form, click the equal sign for a field and drag to change - its position. -12. Click **OK**. -13. Click **Save** on the **Search Forms** page. - -## Update a Field on a Search Results Page - -You can change the following for a field on a search results page: - -- The name of the field, as displayed in the portal -- The schema attribute linked to the field -- The display type used to render the field in the portal -- The tooltip for the field - -**To update a field:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Search Forms** in the left pane; then click the **Search Results** tab. -5. On the **Search Results** tab, click **Edit** for a form to update its fields. -6. On the **Edit Search Results** pane, click **Edit** for a field to update it. - The **Edit Field** pane is displayed. Follow step 7 and onwards in the - [Add a Field to a Search Results Page](#add-a-field-to-a-search-results-page) topic to update the - field. - -## Remove a Field from a Search Results Page - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Search Forms** in the left pane; then click the **Search Results** tab. -5. On the **Search Results** tab, click **Edit** for the form you want to remove a field from. -6. On the **Edit Search Results** pane, click **Remove** for a field to remove it. -7. Click **OK**. -8. Click **Save** on the **Search Forms** page. - -**See Also** - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) -- [Display Type Categories](/docs/directorymanager/11.0/signin/applications/portal/categories/categories.md) -- Customize Search Results -- [Customize Quick Search](/docs/directorymanager/11.0/signin/applications/portal/displaytype/quicksearch.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/sendasonbehalf.md b/docs/directorymanager/11.0/signin/applications/portal/displaytype/sendasonbehalf.md deleted file mode 100644 index 07e703e8b2..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/sendasonbehalf.md +++ /dev/null @@ -1,249 +0,0 @@ ---- -title: "The ‘Send on Behalf’ and ‘Send As’ Permissions" -description: "The ‘Send on Behalf’ and ‘Send As’ Permissions" -sidebar_position: 150 ---- - -# The ‘Send on Behalf’ and ‘Send As’ Permissions - -Using the portal, a user can delegate the _Send on Behalf_ and _Send As_ permissions to other -objects. - -### The Send on Behalf Permission - -The _Send on Behalf_ permission in Microsoft Exchange and Office 365 allows a user to send an email -as another user, while showing the recipient that it was sent from a user on behalf of another user. - -For example, when User A grants Send on Behalf permissions to User B, then User B can send email on -behalf of User A. User B will be able to choose User A’s email address in the ‘From’ field when -composing a message in Outlook. Message recipients will see both User A’s address and User B’s -address, as the ‘From’ address will read as: - -_From: Mailbox `` on behalf of Mailbox ``._ - -### The Send As Permission - -The _Send As_ permission in Microsoft Exchange and Office 365 enables a user to send a message as -another user. For example, when User A grants _Send As_ permissions to User B, User B will be able -to choose User A’s email address in the ‘From’ field when composing a message in Outlook. This -message, while sent by User B, will appear as sent by User A. - -### Prerequisites for the Send As and Send on Behalf Permissions - -In the following content, a ‘target object’ refers to the object that can add other objects to its -Send As and Send on Behalf lists using the portal. - -- The target object can be a mailbox or a mail-enabled group. -- Microsoft Exchange or Office 365 must be configured as the messaging provider for the identity - store. -- An SMTP server must be configured for the identity store. -- The user logged in the portal must have the “Manage any Profile” permission for its respective - role in the identity store. -- The XAdPermissionExtendedRights attribute should be available for Send As and the publicDelegates - attribute should be available for Send on Behalf. -- The ExchangeTrustedsubsystem object should have modify permissions on the target objects in Active - Directory for the Send As permission to be set using the portal. For more information, see - [Access denied when you try to give user "send-as" or "receive as" permission for a Distribution Group in Exchange Server](https://support.microsoft.com/en-us/topic/access-denied-when-you-try-to-give-user-send-as-or-receive-as-permission-for-a-distribution-group-in-exchange-server-505822f4-8dca-7b97-d378-c8416553f6d2). - -What do you want to do? - -- [Set up the Send As Feature](#set-up-the-send-as-feature) -- [Set up the Send on Behalf Feature](#set-up-the-send-on-behalf-feature) - -## Set up the Send As Feature - -You can provide the Send As setting on any tab of an object’s properties page in the portal. This -would enable the object to delegate the Send As permission to users. - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Properties** in the left pane. The **Properties** page is displayed. -5. In the **Select Directory Object** drop-down list, select a Mailbox or Group object to add the - Send As setting to its properties page. The **Name** list displays the tabs on the object’s - properties page. -6. Click **Edit** for a tab (for example, the **Email** tab). - The **Edit Design Category** pane is displayed, with the **Fields** area displaying the fields on - the tab. -7. Click **Add Field** to add the **Send As** field. The **Add Field** pane is displayed. -8. In the **Field** drop-down list, select the _XAdPermissionExtendedRights_ attribute. -9. In the **Display Name** box, provide a label for the field, such as ‘Send As Permissions’. The - Send As field will be displayed with this name in the portal. -10. In the **Display Type** drop-down list, select ‘DNs’. -11. In the **Visibility Level** drop-down list, select a security role. The Send As field would be - visible to users of this role and roles with a priority value higher than this role. It would - not even be visible to group owners (for their respective groups) and user managers (for their - direct reports) if they fall in a lower priority role. See - [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - - - Select _Never_ to hide the field from all users. - - Select _Manager and Owner_ to make the field visible only to the owner (in case of a group) or - manager (in case of a mailbox). It would be hidden from other users, such as group members or - the mailbox itself. In other words, the field would be visible to group owners for their - respective groups and to managers for their respective direct reports in the portal. - - If you have selected ‘Mailbox’ in the Select Directory Object list, the _Self_ option is also - available in the **Visibility Level** drop-down list. Select _Self_ to make the field visible - only to the mailbox on his or her properties page. It would not be visible to any other user, - such as a role with a higher priority value or a role with the ‘Manage any profile’ permission - in the identity store. - -12. In the **Access Level** drop-down list, select a security role. Users of this role and roles - with a priority value higher than this role can add and update the value of the Send As field, - i.e., add and remove objects in the Send As list. If group owners/user managers fall in a lower - priority role, they would not be able to update the value of the field for their respective - groups/direct reports. - - - Select _Never_ to make the field read-only for all users. - - Select _Manager and Owner_ to enable only the owner (in case of a group) or manager (in case - of a mailbox) to specify or modify the value of this field. It would be read-only for other - users, such as group members or the mailbox itself. - In other words, only group owners can specify or modify the value of this field for their - respective groups in the portal. A role with a higher priority value cannot change the value; - group members cannot change the value; and even a role with the ‘Manage any Group’ permission - in the identity store cannot change the value. - Similarly, only mailbox managers can specify or modify the value of this field for their - respective direct reports in the portal. A role with a higher priority value cannot change the - value; and even a role with the ‘Manage any profile’ permission in the identity store cannot - change the value. - - If you have selected ‘Mailbox’ in the Select Directory Object drop-down list, the _Self_ - option is available in the **Access Level** drop-down list. Select **Self** to enable the - mailbox to specify or modify the value of the field. It would be read-only for other users, - such as the mailbox’s manager or a role with a higher priority value or even a role with the - ‘Manage any profile’ permission in the identity store. - -13. As mentioned for access level and visibility level, the field is editable and visible to members - of the selected role and roles with a priority value higher than the selected role. - In the **Exclude Roles** area, select the check boxes for the higher priority role(s) to deny - them access and visibility on the field. -14. Use the **Search Object Types** area to specify the object types that can be searched on the - portal’s Find dialog box, to set as value for the _Send As_ field. - The following display types support the Find dialog box: - - - DN - - DNs - - Custom display types created with the Grid type - - When you select any of these display types, GroupID identifies that the value for the _Send As_ - field has to be searched using the Find dialog box. The **Search Object Types** area is - displayed, where you can select the required object type(s). For example, if you select User, - only user objects can be searched and selected as value for the field. - -15. Select the **Is Required** check box to make it mandatory for users to add at least one object - to the _Send As_ list. -16. Select the **Is Read Only** check box to make the _Send As_ field read-only. -17. Click **OK** on the **Add Field** pane and the **Edit Design Category** pane. -18. Click **Save** on the **Properties** page. - -#### The Send As Field in the Portal - -Launch the portal and go to the properties of the target object (group or mailbox) you defined the -Send As field for, then click the respective tab. The Send As field is displayed as follows: - -![sendas](/images/directorymanager/11.0/admincenter/portal/design/sendas.webp) - -Use the **Add** and **Remove** buttons to add and remove objects in the Send As list. The added -objects can send email for the target object in accordance with the Send As functionality. - -## Set up the Send on Behalf Feature - -You can provide the Send on Behalf setting on any tab of an object’s properties page in the portal. -This would enable the object to delegate the Send on Behalf permission to users. - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Properties** in the left pane. The **Properties** page is displayed. -5. In the **Select Directory Object** list, select a Mailbox or Group object to add the Send on - Behalf setting to its properties page. The **Name** list displays the tabs on the object’s - properties page. -6. Click **Edit** for a tab (for example, the **Email** tab). - The **Edit Design Category** pane is displayed, with the **Fields** area displaying the fields on - the tab. -7. Click **Add Field** to add the **Send on Behalf** field. The **Add Field** pane is displayed. -8. In the **Field** drop-down list, select the _publicDelegates_ attribute. -9. In the **Display Name** provide a label for the field, such as ‘Send on Behalf Permissions’. The - Send on Behalf field will be displayed with this name on the portal. -10. In the **Display Type** drop-down list, select ‘DNs’. -11. In the **Visibility Level** drop-down list, select a security role. The Send on Behalf field - would be visible to users of this role and roles with a priority value higher than this role. It - would not be visible to group owners (for their groups) and user managers (for their direct - reports) if they fall in a lower priority role. See - [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - - - Select _Never_ to hide the field from all users. - - Select _Manager and Owner_ to make the field visible only to the owner (in case of a group) or - manager (in case of a mailbox). It would be hidden from other users, such as group members or - the mailbox itself. In other words, the field would be visible to group owners for their - respective groups and to managers for their respective direct reports in the portal. - - If you have selected ‘Mailbox’ in the Select Directory Object list, the _Self_ option is also - available in the **Visibility Level** drop-down list. Select _Self_ to make the field visible - only to the mailbox on his or her properties page. It would not be visible to any other user, - such as a role with a higher priority value or a role with the ‘Manage any profile’ permission - in the identity store. - -12. In the **Access Level** drop-down list, select a security role. Users of this role and roles - with a priority value higher than this role can add and update the value of the Send on Behalf - field, i.e., add and remove objects in the Send on Behalf list. If group owners/user managers - fall in a lower priority role, they would not be able to update the value of the field for their - respective groups/direct reports. - - - Select _Never_ to make the field read-only for all users. - - Select _Manager and Owner_ to enable only the owner (in case of a group) or manager (in case - of a mailbox) to specify or modify the value of this field. It would be read-only for other - users, such as group members or the mailbox itself. - In other words, only group owners can specify or modify the value of this field for their - respective groups in the portal. A role with a higher priority value, group members, or a role - with the ‘Manage any Group’ permission in the identity store cannot change the value. - Similarly, only mailbox managers can specify or modify the value of this field for their - respective direct reports in the portal. A role with a higher priority value or a role with - the ‘Manage any profile’ permission in the identity store cannot change the value. - - If you have selected ‘Mailbox’ in the _Select Directory Object_ drop-down list, the _Self_ - option is available in the **Access Level** drop-down list. Select **Self** to enable the - mailbox to specify or modify the value of the field. It would be read-only for other users, - such as the mailbox’s manager or a role with a higher priority value or even a role with the - ‘Manage any profile’ permission in the identity store. - -13. As mentioned for access level and visibility level, the field is editable and visible to members - of the selected role and roles with a priority value higher than the selected role. - In the **Exclude Roles** area, select the check boxes for the higher priority role(s) to deny - them access and visibility on the field. -14. Use the **Search Object Types** area to specify the object types that can be searched on the - portal’s Find dialog box, to set as value for the _Send on Behalf_ field. - The following display types support the Find dialog box: - - - DN - - DNs - - Custom display types created with the Grid type - - When you select any of these display types, GroupID identifies that the value for the _Send on - Behalf_ field has to be searched using the Find dialog box. The **Search Object Types** area is - displayed, where you can select the required object type(s). For example, if you select _User_, - only user objects can be searched and selected as value for the field. - -15. Select the **Is Required** check box to make it mandatory for users to add at least one object - to the _Send on Behalf_ list. -16. Select the **Is Read Only** check box to make the _Send on Behalf_ field read-only. -17. Click **OK** on the **Add Field** pane and the **Edit Design Category** pane. -18. Click **Save** on the **Properties** page. - -#### The Send on Behalf Field in the Portal - -Launch the portal and go to the properties of the target object (group or mailbox) you defined the -Send on Behalf field for, then click the respective tab. The Send on Behalf field is displayed as -follows: - -![sendonbehalf](/images/directorymanager/11.0/admincenter/portal/design/sendonbehalf.webp) - -Use the **Add** and **Remove** buttons to add and remove objects in the Send on Behalf list. The -added objects can send email on behalf of the target object in accordance with the Send on Behalf -functionality. - -See Also - -- [Customize Properties Pages](/docs/directorymanager/11.0/signin/applications/portal/displaytype/objectproperties.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/displaytype/toolbars.md b/docs/directorymanager/11.0/signin/applications/portal/displaytype/toolbars.md deleted file mode 100644 index 2fb02b0796..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/displaytype/toolbars.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -title: "Customize the Toolbars" -description: "Customize the Toolbars" -sidebar_position: 50 ---- - -# Customize the Toolbars - -Toolbars are available on different pages of the GroupID portal; however, not all of these are -customizable. - -You can customize the following toolbars: - -| Toolbar | Availability in the portal | -| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| User | The **My Profile** and user properties pages NOTE: The _Validate your profile_, _Extend_, and _Reinstate_ buttons on this toolbar are displayed in the portal when user profile validation is enabled: | -| Group | The group properties page NOTE: (1) The _Update_ button is not displayed for static groups. (2) The _Expire_ button is not displayed for groups with an expiation policy set to _Never Expire_. (3) The _Attest Group_ and _Renew_ buttons are displayed when group attestation is enabled. (4) The _Upgrade To_ button is displayed for static groups only. | -| Default Search | The **All** tab on the **Search Results** page for Quick Search and Advanced Search | -| Users Search | The **Users** and **Contacts** tabs on the **Search Results** page for Quick Search and Advanced Search | -| Groups Search | The **Groups** tab on the **Search Results** page for Quick Search and Advanced Search | -| My Membership Groups | The **My Memberships** tab of the **My Groups** page | -| My Expiring Groups | The **My Expiring Groups** tab of the **My Groups** page | -| My Expired Groups | The **My Expired Groups** tab of the **My Groups** page | -| My Deleted Groups | The **My Deleted Groups** tab of the **My Groups** page | -| My Dynasties | The **My Dynasties** tab of the **My Groups** page | -| My Smart Groups | The **My Smart Groups** tab of the **My Groups** page | -| All Groups | The **All Groups** tab of the **All Groups** page | -| My Groups | The **My Groups** tab of the **My Groups** page | -| Expired Groups | The **Expired Groups** tab of the **All Groups** page | -| Expiring Groups | The **Expiring Groups** tab of the **All Groups** page | -| Private Groups | The **Private Groups** tab of the **All Groups** page | -| Semi-Private Groups | The **Semi-Private Groups** tab of the **All Groups** page | -| Public Groups | The **Public Groups** tab of the **All Groups** page | -| Smart Groups | The **Smart Groups** tab of the **All Groups** page | -| Dynasties | The **Dynasties** tab of the **All Groups** page | -| My Direct Reports | The **My Direct Reports** tab of the **Users** page | -| Disabled Users | The **Disabled Users** tab of the **Users** page | -| Members Grid | The **Members** tab in static group properties | -| Smart Members Grid | The **Members** tab in Smart Group and Dynasty properties | -| User Members Of Grid | The **Member Of** tab in user properties | -| Computer Members Of Grid | The **Member Of** tab in computer properties | -| Additional Owner | The **Owner** tab in group properties | -| Additional Manager | The **Organization** tab in user properties | -| Create Group Wizard – Members | The **Members** page of the Create New Group wizard (for static group only) | -| Create Group Wizard - Additional Owner | The **Owners** page of the Create New Group wizard (for all group types) | -| Contact Member Of Grid | The **Member Of** tab in contact properties | -| Group Member Of Grid | The **Member Of** tab in group properties | -| Direct Reports Grid | The **Organization** tab in user properties | - -NOTE: The **Computer Members of Grid** and **Contact Member of Grid** toolbars are not available for -a Microsoft Entra ID identity store. - -The buttons available on these toolbars are predefined. You cannot add or remove a button, but you -can update a few details for a button, such as its name and image. - -What do you want to do? - -- [Update the Properties of a Toolbar Button](#update-the-properties-of-a-toolbar-button) -- [Rearrange the Buttons on a Toolbar](#rearrange-the-buttons-on-a-toolbar) - -## Update the Properties of a Toolbar Button - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Setting**s. You can design a - different portal for each of these. -4. Click **Toolbars** in the left pane; the **Toolbars** page is displayed. -5. In the **Select Toolbar Type** drop-down list, select the toolbar you want to update. - The **Name** area lists all buttons on this toolbar. -6. Click **Edit** for a toolbar button to update its properties. -7. On the **Toolbar Button Properties** pane, update the following information as required: - - 1. **Name** – The name of the toolbar button. It is read-only. - 2. **Text** – The text displayed on the button as its name. - 3. **Show Text** – Select this check box to display the text on the button; else the button - would be displayed without the text. - 4. **Tooltip Text** - The text to appear when a user hovers the mouse over the button. - 5. **Icon Class** – The image (icon) to be displayed for the button on the toolbar. - 6. **Active Icon Class** – The image (icon) to be displayed when a user hovers the mouse over - this button. - 7. To manage images for Icon Class and Active Icon Class: - - - If no image has been uploaded, click **Upload** to browse and select an image to upload. - - If an image has been uploaded, the very image is displayed. Click **Upload** to replace - the existing image with a new one. - - NOTE: Image dimensions: 30 x 30 pixels - - Supported formats: .webp, .jpg, .jpe, .jpeg - - 8. **Visibility Level** – Select a security role. The toolbar button would be visible to users - of this role and roles with a priority value higher than this role. See - [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - Select _Never_ to hide the button from all users. - -8. Click **OK**. -9. Click **Save** on the **Toolbars** page. - -## Rearrange the Buttons on a Toolbar - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal's card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Select an identity store under **Design Settings** to customize the portal for it. - All identity stores linked with the portal are listed under **Design Settings**. You can design a - different portal for each of these. -4. Click **Toolbars** in the left pane. -5. On the **Toolbars** page, select a toolbar in the **Select Toolbar Type** drop-down list. - The **Name** area lists all buttons on this toolbar. -6. To change the order of buttons on the toolbar, click the equal sign for a button and drag to - change its position. -7. Click **Save**. - -See Also - -- [Design a Portal with Display Types](/docs/directorymanager/11.0/signin/applications/portal/displaytype/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/overview.md b/docs/directorymanager/11.0/signin/applications/portal/overview.md deleted file mode 100644 index bafddddc5d..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/overview.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: "GroupID Portal" -description: "GroupID Portal" -sidebar_position: 20 ---- - -# GroupID Portal - -A GroupID portal represents a virtual link with the directory. Using it, users can do the following -in an identity store: - -- Search the directory. -- Perform group management tasks, such as create and update their groups; join and leave groups; - attest, expire and renew groups, and more. -- Carry out user management tasks, such as create, update, and delete users in the directory. Users - can maintain and update their profiles, change their passwords, manage their accounts, manage - their direct reports, and more. -- Synchronize data between a source and a destination, such as directories, files, and databases. -- Manage user and group entitlements to shared resources on file servers and SharePoint sites. -- Approve and deny workflow requests. -- Generate hundreds of insightful reports on Active Directory, Microsoft Entra ID, Exchange, and - Office 365 objects (groups, users, mailboxes, contacts, computers, and servers). -- View history data for directory objects that are created, updated, or deleted in the directory - using GroupID. - -Delegating group and user management tasks to end-users reduces the workload on IT administrators -and helpdesk, as users are empowered to manage their groups and direct reports without assistance -from an administrator. Moreover, when users maintain and update their profile information, data is -more accurate and reliable. - -Administrators can maintain complete control over data integrity, as they can implement fine-grained -controls and policies that determine what users can view and change using the GroupID portal. They -can also define workflows for an identity store, that serve as a built-in auditing system to ensure -that users enter correct data before changes are committed to the directory. - -A GroupID portal can be linked with multiple identity stores, thus eliminating the need to create a -separate portal for each identity store. Users can select an identity store while signing in. - -## Linked Identity Stores and the GroupID Portal - -The administrator can link two or more identity stores in GroupID. As a prerequisite for linking, -the identity stores must be built on Active Directory or Microsoft Entra ID domains. The purpose is -to link identical objects in different domains. - -To learn about linked identity stores and how they work in a GroupID portal, see the -[Linked Identity Stores and the GroupID Portal](/docs/directorymanager/11.0/signin/identitystore/link/overview.md#linked-identity-stores-and-the-groupid-portal) -topic. - -## Notifications in the Portal - -A GroupID portal can send email notifications to designated recipients when a user makes a change to -objects in an identity store. To specify notification recipients, see the -[Specify Notification Recipients](/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md#specify-notification-recipients) -topic. - -By default, notifications are sent to users in the English language. However, a user can opt to -receive notifications in a supported language by personalizing the language settings from the -**Settings** panel in the portal. - -**See Also** - -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) -- [Create a GroupID Portal](/docs/directorymanager/11.0/signin/applications/portal/create.md) -- [Delete a Portal](/docs/directorymanager/11.0/signin/applications/portal/delete.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/server/_category_.json b/docs/directorymanager/11.0/signin/applications/portal/server/_category_.json deleted file mode 100644 index 45d237ac97..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/server/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Server Settings", - "position": 30, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/applications/portal/server/advanced.md b/docs/directorymanager/11.0/signin/applications/portal/server/advanced.md deleted file mode 100644 index 217ffdacce..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/server/advanced.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: "Manage Advanced Settings" -description: "Manage Advanced Settings" -sidebar_position: 70 ---- - -# Manage Advanced Settings - -Advanced settings allow you to customize the functionality and appearance of a portal. For example, -you can set the default landing page, change the portal logo, show or hide the help link, display -enrollment reminders, and more. - -Default values for all advanced settings are specified for a portal. You can update any setting as -required. You can also import these advanced settings for a portal from a previous GroupID version. -See step 13 in the -[Create a Portal in Native IIS](/docs/directorymanager/11.0/signin/applications/portal/create.md#create-a-portal-in-native-iis) -topic. - -You can manage the following advanced settings for a portal: - -- Portal & Search -- Listings Display -- Miscellaneous - -## Portal & Search - -| Setting | Description | -| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Portal Logo | Use the default GroupID portal logo or a logo of your choice for display in the portal. - Click **Change** to select and upload a logo of your choice. - Click **Reset** to revert to the default logo. | -| Default Startup Page | Specify a landing page for the portal. By default, the _Welcome_ page is set as the start page. You can change it to one that your users frequently visit. You can change the start page to any of these pages: - Welcome - My Groups - My Memberships - My Expired Groups - My Expiring Groups - My Deleted Groups - My Smart Groups - My Dynasties - Search - My Profile - My Direct Reports - Change My Password - Reset Password - Request Inbox - My Requests - Link Account - Entitlement - History - Reports - Synchronize NOTE: Individual users can personalize this setting from the Settings panel in the portal. | -| Search Default | Set the default selection in the portal's _Search Directory_ box, which is available on the _Groups_, _Users_, and _Advanced Search_ pages as well as on the _Find_ dialog box. Options are: - **Global Catalog:** Selecting this option shows "_Entire Directory_" selected in the _Search Directory_ box. Also, expanding the list displays the Entire Directory check box selected instead of the logged-on domain. Select this option when most of the searches that portal users perform are based on the global catalog. - **Domain:** The _Search Directory_ box shows the domain of the identity store the portal is connected to. Users can expand the list to select any other option. NOTE: Individual users can personalize this setting from the Settings panel in the portal. | -| Sort Search | Set the field name (column header) for sorting listings and search results in the portal, such as listings on the All Groups, My Groups, and Users pages, and searches performed using Advanced Search and the Find dialog box. In the **Sort Search** field, specify an attribute to use for sorting listings and search results. By default, the displayName attribute is specified, indicating that listings and search results are sorted by this attribute in ascending order. If you specify an attribute that is not used as a column header in a listing or search results, GroupID sorts it on the basis of the default attribute, i.e., _displayName_. | -| Find Dialog / Look For | Select any or all the **Users**, **Groups**, and **Contacts** check boxes to specify the type of objects that can be searched using the portal's _Find_ dialog box. You can launch the _Find_ dialog box from multiple portal pages to search for objects to designate as owners, managers, additional owners, members, and more. By default, the _Find_ dialog box searches for all types of objects, including users, contacts, and groups. Use this setting to limit the _Find_ feature to specific object types. For example, select the **Users** check box to limit users to search for the _User_ objects only. | -| Request Inbox Page Size | Specify a value in the 5 to 1000 range to set the number of workflow request items to display on the portal's **All Requests**, **My Requests** and **Request Inbox** pages. Setting zero or a negative number displays all workflow requests. By default, these pages display 20 request items at a time. When setting the page size, consider the volume of request traffic generated by your users. Showing all or many workflow requests increases page load time and response time. | -| Toolbar Default Most Recent Used Object Count | Specify a value in the 1 to 9 range to set the number of most recently used objects to display in the portal's _quick search_ box. The _quick search_ box is displayed at the top of each page in the portal. Clicking in it displays objects that the logged-on user recently viewed. Clicking an object opens its properties. NOTE: Individual users can personalize this setting from the Settings panel in the portal. | -| Default Search Page Size | Specify a value in the 5 to 1000 range to set the maximum number of list objects to display on a portal page. Many portal pages display lists of objects. Examples are the **My Groups** and **Users** pages. By default, all list views display 25 objects per page. When setting the page size, consider available network bandwidth and server resources, as the greater the number, the higher the potential for increased page load time and slow response time. NOTE: Individual users can personalize this setting from the **Settings** panel in the portal. | -| Autocomplete Quick Search | Specify whether to turn on search predictions for the portal's _quick search_. The _quick search_ box is displayed at the top of every page in the portal. Search predictions are possible search terms related to the term the user is typing as search string. - Enable the toggle button to turn on search predictions for quick search in the portal. The portal will show matched items as users type a search string. - Disable the toggle button to turn off search predictions. | - -## Listings Display - -| Setting | Description | -| ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Display Nested Ownership | Controls whether to display nested ownership on the portal's **My Groups** page. It applies to all listings on the page except **My Memberships**. - When the toggle button is disabled, the **My Groups** page displays groups for which the logged-in user is the primary owner, additional owner, or Exchange additional owner. - When enabled, the **My Groups** page also displays groups with nested ownership. Example: the logged-in user is a member of Group A, and Group A is an owner of Group B. When this setting is enabled, the **My Groups** page also shows Group B as the logged-in user is its nested owner. | -| Display Groups in My Groups | Controls whether to display the groups for which the logged-on user is an additional owner, on the portal's **My Groups** tab. By default, the tab displays the groups that the logged-on user is the primary owner. Enable this setting to include groups for which the logged-on user is an additional owner. | -| Display Groups in My Deleted Groups | Controls whether to display the deleted groups for which the logged-on user is an additional owner, on the portal's **My Deleted Groups** tab. By default, the tab displays the groups that the logged-on user is the primary owner. Enable this setting to include deleted groups for which the logged-on user is an additional owner. | -| Display Groups in My Expired Groups | Controls whether to display the expired groups for which the logged-on user is an additional owner, on the portal's **My Expired Groups** tab. By default, the tab displays the groups that the logged-on user is the primary owner. Enable this setting to include expired groups for which the logged-on user is an additional owner. | -| Display Groups in My Expiring Groups | Controls whether to display the expiring groups for which the logged-on user is an additional owner, on the portal's **My Expiring Groups** tab. By default, the tab displays the groups that the logged-on user is the primary owner. Enable this setting to include expiring groups for which the logged-on user is an additional owner. | -| Display Groups in My Smart Groups | Controls whether to display the Smart Groups for which the logged-on user is an additional owner, on the portal's **My Smart Groups** tab. By default, the tab displays the groups that the logged-on user is the primary owner. Enable this setting to include Smart Groups for which the logged-on user is an additional owner. | -| Display Groups in My Dynasties | Controls whether to display the Dynasties for which the logged-on user is an additional owner, on the portal's **My Dynasties** tab. By default, the tab displays the Dynasties that the logged-on user is the primary owner. Enable this setting to include Dynasties for which the logged-on user is an additional owner. Note that this setting applies individually to parent, middle, and leaf Dynasties. | -| Display Additional Manager Direct Reports | Controls whether to display the direct reports for whom the logged-on user is an additional manager, on the portal's **My Direct Reports** tab. By default, the tab displays the direct reports that the logged-on user is the primary manager. Enable this setting to include direct reports for whom the logged-on user is an additional manager. | - -NOTE: Individual users can personalize all except the _Display Nested Ownership_ setting from the -**Settings** panel in the portal. - -## Miscellaneous - -| Setting | Description | -| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Use Contains Filter | Controls the filter that the search function on the portal's _Advanced Search_ page and the _Find_ dialog box should use while searching objects. - By default, the setting is disabled, implying that when a user enters a search string, the portal searches the directory on the "_starts with_" basis. For example, if a user enters "Sam" in the _First Name_ box on the Advanced Search page, the portal searches the directory for all objects having first names starting with "Sam". - When you enable the setting, it changes the filter to "Contains", which returns objects with the string "Sam" anywhere in the first name. | -| Hide Help Link | Controls whether to display the Help icon in the portal. This icon opens the portal help in a new browser window, where portal users can find support content or report their problems. - Enable the setting to display the **Help** icon in the portal. - Disable the setting to hide the **Help** icon. In this case, users will not be able to access the portal's help pages. | -| Enrollment Reminder | Controls whether to display a reminder with redirect to the **Enroll My Account** page to unenrolled users when they sign into the portal. Enabling the setting initiates these events: 1. On signing in, the landing page displays an information bar requesting the user to enroll his or her account. (The user can ignore the request.) 2. Clicking the bar redirects the user to the **Enroll My Account** page. Disabling the setting does not display the information bar for account enrollment. | -| Suggest Owner/Manager | Set the portal to suggest owners for orphan groups and managers for users without managers. Enable the setting to allow GroupID to suggest a primary owner for an orphan group (on the **Owner** tab in group properties) and a primary manager for a user without one (on the **Organization** tab in user properties). - The manager is suggested with respect to the user's department (say, User A); if the department is not specified, manager suggestion does not work. GroupID checks the primary managers of all users who have the same department as User A, and the user who shows up most as a manager is suggested as User A's primary manager. - The owner is suggested with respect to the group's membership; GroupID checks the managers of group members and the user who shows up most as a manager is suggested as the group owner. This user may or may not be a member of the group. For example, when 40 members of Group A have User A as their manager and 38 members have User B as manager, User A is suggested as Group A's primary owner. Disable the setting to turn off the owner/manager suggestion function. | - -What do you want to do? - -- Update a Setting - -## Update a Setting - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal**tab, a portal card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Click **Advanced Settings** under **Server Settings**. -4. On the **Advanced Settings** page, navigate to the required setting and update it. - - - To change general portal settings, see the Portal & Search table. - - To change display settings for groups, see the Listings Display table. - - To manage other settings, see the Miscellaneous table. - -5. Click **Save**. - -**See Also** - -- [Server Settings](/docs/directorymanager/11.0/signin/applications/portal/server/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/server/general.md b/docs/directorymanager/11.0/signin/applications/portal/server/general.md deleted file mode 100644 index 6477b3100b..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/server/general.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: "Manage General Server Settings" -description: "Manage General Server Settings" -sidebar_position: 10 ---- - -# Manage General Server Settings - -You can manage general server settings for a portal, such as change it's display name, associate -identity stores with it, and view it's various deployments. - -What do you want to do? - -- [Change a Portal's Display Name](#change-a-portals-display-name) -- [Associate Identity Stores with a Portal](#associate-identity-stores-with-a-portal) -- [View the Deployment(s) for a Portal](#view-the-deployments-for-a-portal) - -## Change a Portal's Display Name - -A portal is assigned an _application name_ during creation, which is used as it's display name in -GroupID. On changing it, the portal is displayed with the new name. - -**To change a portal's display name:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays its info, including its name. -2. Click the ellipsis button for a portal and select **Settings**. -3. On the **General Settings** page, enter a new name for the portal in the **Application Name** - box. -4. Click **Save**. - -## Associate Identity Stores with a Portal - -You must associate one or more identity stores with a portal. When signing into the portal, a user -must select an identity store to connect to, for performing group and identity management operations -for that identity store. - -Users can connect a portal to an associated identity store only. - -**To associate an identity store:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays its info, including the identity stores - associated with it. -2. Click the ellipsis button for a portal and select **Settings**. -3. The **Identity Stores** area on the **General Settings** page lists the identity stores in - GroupID. It displays the provider type the identity store is created for, and whether the - identity store is enabled. - - - Select the check box for an identity store to associate it with the portal. - - Clear the check box for an identity store to dissociate it. - - All instances of this portal serve the identity store(s) you select here. - -4. Click **Save.** - -NOTE: You may observe the following message on the **Server Settings – General** page: - -![linked_message](/images/directorymanager/11.0/admincenter/portal/linked_message.webp) - -It relates to the scenario when identity stores in GroupID have been linked, as discussed in the -[Linked Identity Stores and the GroupID Portal](/docs/directorymanager/11.0/signin/identitystore/link/overview.md#linked-identity-stores-and-the-groupid-portal) -topic. Hence, when two identity stores, IdentityStoreA and IdentityStoreB, are linked and you -associate IdentityStoreA with the portal, this message is displayed. It alerts you to associate the -second identity store in the linked pair (dentityStoreB) with the portal too, in order to benefit -from the linking. - -## View the Deployment(s) for a Portal - -A portal can have multiple deployments in the same or different web servers. You can update certain -settings for each deployment instance of a portal. - -**To view a portal’s deployment instances:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays its info, including all its deployment - instances. -2. Click the ellipsis button for a portal and select **Settings**. -3. Click **Deployments** under **Server Settings**. -4. The **Deployment Settings** page has varying tabs, depending on the deployment instances of the - portal. - - - The **IIS** tab is available when one or more portal instances are deployed in native IIS. - Select an instance to view the name of the instance directory in IIS, the IIS site that hosts - the instance, the URL for the instance, the Data service and Security service associated with - the instance, and logging levels. See the - [Manage Settings for a Native IIS Deployment](/docs/directorymanager/11.0/signin/applications/portal/server/nativeiis.md) - topic for details. - - The **Remote IIS** tab is available when one or more portal instances are deployed in remote - IIS. Select an instance to view the Microsoft IIS Administration API URL and access token that - GroupID uses to communicate with the remote IIS server, the credentials used to communicate - with the API, the site that hosts the instance, the Data service and Security service - associated with the instance, and logging levels. See the - [Manage Settings for a Remote IIS Deployment](/docs/directorymanager/11.0/signin/applications/portal/server/remoteiis.md) - topic for details. - -**See Also** - -- [Create a GroupID Portal](/docs/directorymanager/11.0/signin/applications/portal/create.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/server/log.md b/docs/directorymanager/11.0/signin/applications/portal/server/log.md deleted file mode 100644 index fdbde70f7f..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/server/log.md +++ /dev/null @@ -1,132 +0,0 @@ ---- -title: "Manage Log Settings" -description: "Manage Log Settings" -sidebar_position: 50 ---- - -# Manage Log Settings - -GroupID uses Windows logging and file logging to monitor events from a portal. You can set the -logging level for a deployment instance of a portal to track a specific set of information for it. - -## File Logging - -File logging records events for a portal’s deployment instance in a text file. When the file size -reaches 100 MB, GroupID archives it in the same directory by replacing the file extension with the -suffix _.Log.X_ and then creating a new text file with the original name. _X_ in _.Log.X_ is a -number from 1 to 10 representing the archiving order; where ‘1’ denotes the most recent file. - -#### View Log Files - -**For a native IIS and remote IIS deployment:** - -1. Launch IIS and navigate to: - …\Sites\\ - Example: - …\Sites\GroupIDSite11\GroupIDPortal -2. Right-click this directory and select **Explore**. -3. Locate the **Logs** folder to read the logs. - -## Windows Logging - -Windows logging records events from a deployment instance of a portal in a centralized event log -named _Imanami GroupID_. Windows log entries are generated on the machine where IIS is running. - -- For portal instances deployed in native IIS, you can view Windows logs in the Windows Event Viewer - on the GroupID server. -- For portal instances deployed in remote IIS, you can view Windows logs in the Windows Event Viewer - on the remote IIS machine. - -The Windows Event Viewer shows a log of application and system messages, including errors, -information messages, and warnings. It is a useful tool for troubleshooting all kinds of Windows -problems. - -NOTE: Windows logging is not available for a portal instance deployed in Docker. - -#### View Windows Logs - -1. On the GroupID server/remote IIS machine, type _eventvwr_ in the Run dialog box and click **OK** - to launch Windows Event Viewer. -2. Click **Applications and Service Logs > Imanami GroupID** in the left pane to view the event logs - for GroupID. - -What do you want to do? - -- [Change the File Logging Level for a Portal Instance](#change-the-file-logging-level-for-a-portal-instance) -- [Turn Off File Logging for a Portal Instance](#turn-off-file-logging-for-a-portal-instance) -- [Windows Logging](#windows-logging) -- [Turn Off Windows Logging for a Portal Instance](#turn-off-windows-logging-for-a-portal-instance) - -## Change the File Logging Level for a Portal Instance - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Click **Deployments** under **Server Settings**; the **Deployment Settings** page is displayed. -4. To set the file logging level for a deployment instance, first select the web server (IIS/Remote - IIS/Docker) where the instance is deployed. Then select the instance in the **Select Application - Deployment** drop-down list. -5. Click the **Logging** tab. -6. In the **File Logging** area, select a logging level for the instance in the **Log Events** - drop-down list. File logging groups events into the following levels, based on the type of - information captured: - - | Level | Information Captured | - | --------- | ----------------------------------------------------------------------------------------------- | - | 1 - All | Every event involving the portal instance; this is the highest logging level. | - | 2 - Debug | Fine-grained event information that is most useful for debugging the application. | - | 3 - Info | Successful operations of a functionality. | - | 4 - Warn | Events that are not necessarily significant, but that could potentially cause a future problem. | - | 5 - Error | Errors that might still allow the portal instance to continue running. Default level. | - | 6 - Off | No events captured; turns off file logging. | - -7. Click **Save**. - -## Turn Off File Logging for a Portal Instance - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Click **Deployments** under **Server Settings**; the **Deployment Settings** page is displayed. -4. To turn off file logging for a deployment instance, first select the web server (IIS/Remote - IIS/Docker) where the instance is deployed. Then select the instance in the **Select Application - Deployment** drop-down list. -5. Click the **Logging** tab. -6. In the **File Logging** area, select _Off_ in the **Log Events** drop-down list. -7. Click **Save**. - -## Change the Windows Logging Level for a Portal Instance - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Click **Deployments** under **Server Settings**; the **Deployment Settings** page is displayed. -4. To set the Windows logging level for a deployment instance, first select the web server (IIS or - Remote IIS) where the instance is deployed. Then select the instance in the **Select Application - Deployment** drop-down list. -5. Click the **Logging** tab. -6. In the **Windows Logging** area, select a logging level for the instance in the **Log Events** - drop-down list. - Windows logging groups events into different levels, based on the type of information captured. - These levels are discussed in the table in the - [Change the File Logging Level for a Portal Instance](#change-the-file-logging-level-for-a-portal-instance) - topic. -7. Click **Save**. - -## Turn Off Windows Logging for a Portal Instance - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Click **Deployments** under **Server Settings**; the **Deployment Settings** page is displayed. -4. To turn off Windows logging for a deployment instance, first select the web server (IIS/Remote - IIS/Docker) where the instance is deployed. Then select the instance in the **Select Application - Deployment** drop-down list. -5. Click the **Logging** tab. -6. In the **Windows Logging** area, select _Off_ in the **Log Events** drop-down list. -7. Click **Save**. - -**See Also** - -- [Server Settings](/docs/directorymanager/11.0/signin/applications/portal/server/overview.md) -- [Get Logs](/docs/directorymanager/11.0/signin/concepts/logs.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/server/nativeiis.md b/docs/directorymanager/11.0/signin/applications/portal/server/nativeiis.md deleted file mode 100644 index b771fe0646..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/server/nativeiis.md +++ /dev/null @@ -1,140 +0,0 @@ ---- -title: "Manage Settings for a Native IIS Deployment" -description: "Manage Settings for a Native IIS Deployment" -sidebar_position: 20 ---- - -# Manage Settings for a Native IIS Deployment - -You can manage various settings for a portal instance deployed in native IIS. - -What do you want to do? - -- [Start or Stop an Instance](#start-or-stop-an-instance) -- [Change the IIS Application Name for an Instance](#change-the-iis-application-name-for-an-instance) -- [Move an Instance under a Different IIS Site](#move-an-instance-under-a-different-iis-site) -- [View the Launch URL for an Instance](#view-the-launch-url-for-an-instance) -- [View the Data Service and Security Service Bound to an Instance](#view-the-data-service-and-security-service-bound-to-an-instance) -- [Set File Logging and Windows Logging for an Instance](#set-file-logging-and-windows-logging-for-an-instance) -- [Delete an Instance](#delete-an-instance) - -## Start or Stop an Instance - -You can start and stop a portal instance deployed in native IIS, remote IIS, and Docker. When you -stop an instance, the following happens: - -- For a native IIS deployment, GroupID stops the instance’s application pool. -- For a remote IIS deployment, GroupID stops the site that hosts the instance. -- For a Docker deployment, GroupID stops the container where the instance is deployed. - -**To start or stop an instance:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays its info, including all its instances. -2. Click the ellipsis button for a portal and select **Settings**. -3. Click **Deployments** under **Server Settings**; the **Deployment Settings** page is displayed. -4. On the **IIS**, **Remote IIS**, or **Docker** tab, the **Select Application Deployment** - drop-down list displays the portal instances deployed in the respective web server. - Select an instance to start or stop it. - - - When an instance is running, **Stop** is displayed next to it. Click it to stop the instance. - - When an instance has stopped, **Start** is displayed next to it. Click it to start the - instance. - -## Change the IIS Application Name for an Instance - -Each deployment instance of a portal in IIS is assigned an IIS application name to represent that -specific deployment. The name uniquely identifies the deployment in the IIS site and is used to -name: - -- The instance’s virtual directory in IIS. -- It’s physical directory under X:\Program Files\Imanami \GroupID 11.0\GroupIDPortal\Inetpub\ on the - GroupIDserver - (X represents the GroupID installation drive) - -This name is also appended to the web server address to construct the URL that users click to access -the portal instance. For example: -`https://:/` - -When you change the name, it propagates to the instance’s IIS directory, physical directory, and -launch URL. You must provide the updated URL to users to enable them to access the portal. See the -[Launch a Portal](/docs/directorymanager/11.0/signin/applications/portal/create.md#launch-a-portal) -topic. - -**To change the IIS application name:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays the portal’s info, including all its - instances. -2. Click the ellipsis button for a portal and select **Settings**. -3. Click **Deployments** under **Server Settings**; the **Deployment Settings** page is displayed. -4. On the **IIS** tab, the **Select Application Deployment** drop-down list displays all portal - instances deployed in native IIS. Select an instance to change its IIS application name. -5. In the **IIS Application Name** box on the **Deployment Configurations** tab, update the IIS - deployment name for the instance. -6. Click **Save**. - -## Move an Instance under a Different IIS Site - -You can change the IIS site that hosts a deployment instance of a portal. In doing so, the URL of -the deployment instance also changes. You must provide the updated URL to your users to enable them -to access the instance. See the -[Launch a Portal](/docs/directorymanager/11.0/signin/applications/portal/create.md#launch-a-portal) -topic. - -**To change the site:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays its info, including all its instances. -2. Click the ellipsis button for a portal and select **Settings**. -3. Click **Deployments** under **Server Settings**; the **Deployment Settings** page is displayed. -4. On the **IIS** tab, the **Select Application Deployment** drop-down list displays all portal - instances deployed in native IIS. Select an instance to move its directory under a different IIS - site. -5. In the **IIS Site** drop-down list on the **Deployment Configurations** tab, select a site to - move the instance’s directory under it. The list displays the websites defined in native IIS. -6. Click **Save**. - -## View the Launch URL for an Instance - -Use the URL for a portal's deployment instance to launch the respective instance. - -**To view the URL:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays its info, including all its instances. -2. Click the ellipsis button for a portal and select **Settings**. -3. Click **Deployments** under **Server Settings**; the **Deployment Settings** page is displayed. -4. On the **IIS**, **Remote IIS**, or **Docker** tab, the **Select Application Deployment** - drop-down list displays the portal instances deployed in the respective web server. Select an - instance to view the launch URL for it. -5. The **Launch URL** box on the **Deployment Configurations** tab displays the URL. Copy and paste - it in the browser to launch the deployment instance of the portal or share it with users to - enable them to launch the instance. - -## View the Data Service and Security Service Bound to an Instance - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays its info, including all its instances. -2. Click the ellipsis button for a portal and select **Settings**. -3. Click **Deployments** under **Server Settings**; the **Deployment Settings** page is displayed. -4. On the **IIS**, **Remote IIS**, or **Docker** tab, the **Select Application Deployment** - drop-down list displays the portal instances deployed in the respective web server. Select an - instance to view the launch URL for it. -5. The **Data Service** and **Security Service** boxes on the **Deployment Configurations** tab - display the Data service and Security service this portal instance uses. - -## Set File Logging and Windows Logging for an Instance - -To set file logging and Windows logging levels for a deployment instance, see the -[Manage Log Settings](/docs/directorymanager/11.0/signin/applications/portal/server/log.md) topic. - -## Delete an Instance - -To delete a portal’s deployment instance, see the -[Delete a Deployment Instance for a Portal](/docs/directorymanager/11.0/signin/applications/portal/delete.md#delete-a-deployment-instance-for-a-portal) -topic. - -**See Also** - -- [Server Settings](/docs/directorymanager/11.0/signin/applications/portal/server/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/server/overview.md b/docs/directorymanager/11.0/signin/applications/portal/server/overview.md deleted file mode 100644 index 29c80117e6..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/server/overview.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Server Settings" -description: "Server Settings" -sidebar_position: 30 ---- - -# Server Settings - -A GroupID portal is deployed as a web application on a web server (native IIS or remote IIS). You -can manage the following server-related settings for a portal: - -- Change a portal’s name (i.e., the application name given to the portal). -- Update support information for the portal, i.e., the contact email address and the portal’s help - URL. -- Specify search-related, group-related, and other advanced settings for a portal. -- Associate identity stores with a portal. - -You can also view the deployment details for all instances of a portal and do the following: - -- Start or stop an instance. -- Configure Windows logging and file logging for an instance. -- Delete an instance. -- Move a portal instance under a different site in IIS. - -NOTE: On changing some of these settings, the portal’s session ends and all connected users are -logged out. When accessed again, the portal runs under the new configurations. - -**See Also** - -- [Create a GroupID Portal](/docs/directorymanager/11.0/signin/applications/portal/create.md) -- [Manage General Server Settings](/docs/directorymanager/11.0/signin/applications/portal/server/general.md) -- [Manage Settings for a Native IIS Deployment](/docs/directorymanager/11.0/signin/applications/portal/server/nativeiis.md) -- [Manage Settings for a Remote IIS Deployment](/docs/directorymanager/11.0/signin/applications/portal/server/remoteiis.md) -- [Manage Log Settings](/docs/directorymanager/11.0/signin/applications/portal/server/log.md) -- [Add Support for a Portal](/docs/directorymanager/11.0/signin/applications/portal/server/support.md) -- [Manage Advanced Settings](/docs/directorymanager/11.0/signin/applications/portal/server/advanced.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/server/remoteiis.md b/docs/directorymanager/11.0/signin/applications/portal/server/remoteiis.md deleted file mode 100644 index 4ce91d2687..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/server/remoteiis.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: "Manage Settings for a Remote IIS Deployment" -description: "Manage Settings for a Remote IIS Deployment" -sidebar_position: 30 ---- - -# Manage Settings for a Remote IIS Deployment - -You can manage various settings for a portal instance deployed in remote IIS. - -What do you want to do? - -- [Start or Stop an Instance](#start-or-stop-an-instance) -- [View the Deployment Settings for an Instance](#view-the-deployment-settings-for-an-instance) -- [Set File Logging and Windows Logging for an Instance](#set-file-logging-and-windows-logging-for-an-instance) -- [Delete an Instance](#delete-an-instance) - -## Start or Stop an Instance - -To start or stop a deployment instance, see the -[Start or Stop an Instance](/docs/directorymanager/11.0/signin/applications/portal/server/nativeiis.md#start-or-stop-an-instance) -topic. - -## View the Deployment Settings for an Instance - -When creating a portal’s deployment instance in remote IIS, you have to provide info related to the -[Microsoft IIS Administration API](https://learn.microsoft.com/en-us/iis-administration/), such as: - -- The API URL that GroupID uses for communicating with the remote IIS server -- The access token that GroupID uses to access the API -- The credentials used to connect to the API - -You also have to provide an IIS application name, select a site to host the portal instance, and -specify the Data service and Security service the instance should use. - -Once the instance is created, you can view these settings but you cannot modify them. - -To view deployment settings: - -1. n Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays its info, including all its instances. -2. Click the ellipsis button for a portal and select **Settings**. -3. Click **Deployments** under **Server Settings**; the **Deployment Settings** page is displayed. - Click the **Remote IIS** tab. -4. On the **Remote IIS** tab, the **Select Application Deployment** drop-down list displays all - portal instances deployed in remote IIS. Select an instance to view its settings. -5. On the **Deployment Configurations** tab, you can view the API URL, access token, and - credentials. You can also view the name of the portal application in remote IIS, the site where - it is hosted, the URL to launch the instance, and the Data service and Security service the - instance uses. Refer to steps 7-12 in the - [Create a Portal in Remote IIS](/docs/directorymanager/11.0/signin/applications/portal/create.md#create-a-portal-in-remote-iis) - topic for a description of these fields. - -## Set File Logging and Windows Logging for an Instance - -To set file logging and Windows logging levels for a deployment instance, see the -[Manage Log Settings](/docs/directorymanager/11.0/signin/applications/portal/server/log.md) topic. - -## Delete an Instance - -To delete a portal’s deployment instance, see the -[Delete a Deployment Instance for a Portal](/docs/directorymanager/11.0/signin/applications/portal/delete.md#delete-a-deployment-instance-for-a-portal) -topic. - -**See Also** - -- [Server Settings](/docs/directorymanager/11.0/signin/applications/portal/server/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/portal/server/support.md b/docs/directorymanager/11.0/signin/applications/portal/server/support.md deleted file mode 100644 index ac6e502c39..0000000000 --- a/docs/directorymanager/11.0/signin/applications/portal/server/support.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: "Add Support for a Portal" -description: "Add Support for a Portal" -sidebar_position: 60 ---- - -# Add Support for a Portal - -Portals include a **Contact** link and a **Help** icon on their web interface. The **Contact** link -launches an email application to send an email to a user (such as administrator) or group (such as -helpdesk) for inquiries or feedback. The **Help** icon launches the online help for the portal in a -new browser window. Both links are customizable, and their target email address or web address can -be changed. - -What do you want to do? - -- [Update the Support Email Address](#update-the-support-email-address) -- [Change the Help URL for a Portal](#change-the-help-url-for-a-portal) -- [View the Client ID Assigned to a Portal](#view-the-client-id-assigned-to-aportal) - -## Update the Support Email Address - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Click **GroupID Support** under **Server Settings**; the **GroupID Support** page is displayed. -4. In the **Support/GroupID Administrator's Email** box, update the email address of the group or - user responsible for responding to requests and inquiries from portal users. - This email address is mapped to the **Contact** link in the portal. -5. Click **Save**. - -## Change the Help URL for a Portal - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Click **GroupID Support** under **Server Settings**; the **GroupID Support** page is displayed. -4. In the **Help URL** box, update the URL of the portal help pages, where portal users can find - support content or report their problems. This URL is mapped to the **Help** icon in the portal. -5. Enable the **Netwrix Help** toggle button if the help URL points to the portal help published by - Netwrix. For GroupID 11, this URL is as: - https://helpcenter.netwrix.com/bundle/directorymanager_11.0/page - Disable the **Netwrix Help** toggle button if the help URL points to help pages other than - Netwrix help, such as when it points to your company’s internal help pages. -6. Click **Save**. - -## View the Client ID Assigned to a Portal - -Every GroupID client (such as Management Shell and a GroupID portal) is registered with a unique ID -in the database, known as client ID. This client ID is required while integrating a third-party -single sign-on solution that support the SAML standard, into GroupID via any of its clients. - -**To view the client ID for a portal:** - -1. In Admin Center, select **Applications** in the left pane. - On the **GroupID Portal** tab, a portal card displays its info. -2. Click the ellipsis button for a portal and select **Settings**. -3. Click **GroupID Support** under **Server Settings**; the **GroupID Support** page is displayed. - The **Client ID** box displays the client ID assigned to the portal. It is read-only and can be - copied for use. - -**See Also** - -- [Server Settings](/docs/directorymanager/11.0/signin/applications/portal/server/overview.md) diff --git a/docs/directorymanager/11.0/signin/applications/remoteiisprerequisites.md b/docs/directorymanager/11.0/signin/applications/remoteiisprerequisites.md deleted file mode 100644 index 9faee1ad8a..0000000000 --- a/docs/directorymanager/11.0/signin/applications/remoteiisprerequisites.md +++ /dev/null @@ -1,150 +0,0 @@ ---- -title: "Prerequisites for Deployments in Remote IIS" -description: "Prerequisites for Deployments in Remote IIS" -sidebar_position: 30 ---- - -# Prerequisites for Deployments in Remote IIS - -To deploy GroupID portals and services (Data service, Security service, and Mobile service) in -remote IIS, you must set up the following prerequisites: - -- Install the required software -- Create a site in remote IIS for deploying the GroupID portal and services, and assign permissions -- Generate an access key for the Microsoft IIS Administration API - -## Prerequisite Software - -Before you can deploy GroupID portals and services in remote IIS, make sure the following -prerequisite software is installed on the remote IIS machine. Install them in the following order: - -1. ASP.NET Core Runtime 6.0.30 (Hosting Bundle) - Click [here](https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-aspnetcore-6.0.30-windows-hosting-bundle-installer) - to download. -2. .NET Desktop Runtime 6.0.30 - Click [here](https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-6.0.30-windows-x64-installer) - to download. -3. ASP.NET Core Runtime 2.1.25 (Hosting Bundle) - Click [here](https://dotnet.microsoft.com/download/dotnet/2.1) to download. -4. Microsoft IIS Administration 2.3.0 - Click [here](https://github.com/microsoft/IIS.Administration/releases/tag/v2.3.0) to download. - -## Create a Site in Remote IIS - -As a prerequisite to deploying a GroupID application in remote IIS, you need to create a site there -and assign appropriate permissions to it. GroupID portals and services should be created within this -site. - -**To create a site in remote IIS:** - -1. Launch Internet Information Services (IIS) Manager (see - [Opening IIS Manager](https://docs.microsoft.com/en-us/previous-versions/iis/6.0-sdk/ms525920(v=vs.90). -2. In the left pane, right-click **Sites** and select **Add Website**. - - ![Add a website in IIS](/images/directorymanager/11.0/admincenter/portal/addsite.webp) - -3. Enter the information as shown below and click **OK**: - - ![Add Website window](/images/directorymanager/11.0/admincenter/portal/addwebsite.webp) - - 1. Enter a name for the site in the **Site name** box. - 2. Create a new folder on the remote machine and bind this site to that folder. Provide the - physical path of the newly created folder in the **Physical path** box. When you create a - GroupID application in the site, a sub-folder will be created within this folder and - application files will be copied to it. - 3. Provide binding information in the **Binding** section. - - - Type: HTTPS - - Port: any available port - - 4. Select an SSL certificate from the **SSL certificate** dropdown list. - -### Assign Permissions - -The next step is to assign permissions on the physical folder that binds to your site in remote IIS. - -1. Go to the physical path of your IIS site folder and provide the full control to a local group - IIS_IUSRS on this folder. - To assign these permissions: - - 1. Right click the group you created and select **Properties**. - 2. Select the **Security** tab. - 3. Click **Edit**. - 4. Click **Add**. - 5. Click **Locations**. - 6. Select your machine name from the list in the **Locations** box. Click **OK**. - 7. In the **Enter the object names** box type _IIS_IUSRS_ and click the **Check Names** button. - The group name should appear as follows: - - ``` - \IIS_IUSRS - ``` - - 8. Click **OK**. - 9. Allow Full Control to _IIS_IUSRS_ group. - 10. Click **Apply** and then click **OK**. - 11. Click **OK** to close the **Permissions for ``** dialog box. - 12. Click **OK** to close the **`` Properties** dialog box. - 13. The required permissions have been assigned to the folder. - -2. After assigning the permissions, go to the following path - - ``` - C:\Program Files\IIS Administration\2.3.0\Microsoft.IIS.Administration\config\ - ``` - -3. Open the **appsettings.json** file and add the highlighted script at the end of the file: - - ![Script for appsettings.json file](/images/directorymanager/11.0/admincenter/portal/appsettings-full.webp) - -4. The script to be added is given below: - - ``` - }, - "files": { -     "locations": [ -       { -         "alias": "", -         "path": "", -         "claims": [ -           "read", -           "write" -         ] -       } -     ] -   } - - ``` - - Remember, to provide values for alias "site name" and path "physical folder location of the - site", created in the section [Create a Site in Remote IIS](#create-a-site-in-remote-iis). - -## Generate an Access Key - -Admin Center uses the -[Microsoft IIS Administration API](https://docs.microsoft.com/en-us/iis-administration/) to -communicate with remote IIS. Make sure this API is instphysical folder location of the site", -created in the section [Create a Site in Remote IIS](#create-a-site-in-remote-iis)alled as a Windows -service on the remote IIS machine. - -To connect to the API, an access key is required. Follow the steps below to generate it. - -1. Go to _https://localhost:55539/_ to launch the Microsoft Administration API interface. - Note that this is the default URL. It may change for reasons such as when a different port is - used. -2. Click **ACCESS KEYS**. - - ![Access Keys](/images/directorymanager/11.0/admincenter/portal/accesskeys.webp) - -3. Click **Create Access Key** to generate an access key and provide the following information: - - ![Access Key Purpose window](/images/directorymanager/11.0/admincenter/portal/accesskeyspurpose.webp) - -4. On clicking **Create**, the access key is generated. - - ![Access Token window](/images/directorymanager/11.0/admincenter/portal/accesstoken.webp) - -**See Also** - -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) -- [GroupID Portal](/docs/directorymanager/11.0/signin/applications/portal/overview.md) diff --git a/docs/directorymanager/11.0/signin/authpolicy/_category_.json b/docs/directorymanager/11.0/signin/authpolicy/_category_.json deleted file mode 100644 index 2b10ad0566..0000000000 --- a/docs/directorymanager/11.0/signin/authpolicy/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Authentication Policy", - "position": 20, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "authpolicy" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/authpolicy/authenticate.md b/docs/directorymanager/11.0/signin/authpolicy/authenticate.md deleted file mode 100644 index b92431016e..0000000000 --- a/docs/directorymanager/11.0/signin/authpolicy/authenticate.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: "Authenticate with Authentication Types" -description: "Authenticate with Authentication Types" -sidebar_position: 40 ---- - -# Authenticate with Authentication Types - -To authenticate your identity store account in GroupID for multifactor authentication or second -factor authentication, you must use one or more authentication types that you enrolled your account -with. - -What do you want to do? - -- [Authenticate using Security Questions](#authenticate-using-security-questions) -- [Authenticate using Mobile](#authenticate-using-mobile) -- [Authenticate using Email](#authenticate-using-email) -- [Authenticate using Authenticator](#authenticate-using-authenticator) -- [Authenticate using YubiKey](#authenticate-using-yubikey) -- [Authenticate using Windows Hello](#authenticate-using-windows-hello) - -## Authenticate using Security Questions - -1. When you launch Admin Center, the GroupID portal or the GroupID Mobile app, the **GroupID - Authenticate** page is displayed. -2. On signing in, enrolled users are redirected to the **Authenticate** page. This page lists the - authentication types the user enrolled his or her account with. -3. Select the **Security Questions** check box and click **Continue**. -4. The next page lists the security questions you enrolled your account with. Provide answers to - these questions. -5. Click **Verify and Continue**. - -## Authenticate using Mobile - -To authenticate using mobile, you have to enter the last 4 digits of the mobile number you provided -during enrollment. GroupID sends a confirmation code to this number; you have to enter the code in -GroupID for authentication. - -**To authenticate using mobile:** - -1. When you launch Admin Center, the GroupID portal or the GroupID Mobile app, the **GroupID - Authenticate** page is displayed. -2. On signing in, enrolled users are redirected to the **Authenticate** page. This page lists the - authentication types the user enrolled his or her account with. -3. Select the **Mobile Verification** check box and click **Continue**. -4. On the next page, type the last four digits of your mobile number and click **Send Code**. -5. When the verification code is successfully sent to the provided mobile number, a box appears on - the page. Enter the received code in it. -6. Click **Verify and Continue**. - -RECOMMENDED: If you do not receive the code, recheck your mobile number and click **Send Again**. - -## Authenticate using Email - -To authenticate using Email, you have to complete the email address you provided during enrollment. -GroupID then sends a confirmation code to this email address; you have to enter the code in GroupID -for authentication. - -**To authenticate using email:** - -1. When you launch Admin Center, the GroupID portal or the GroupID Mobile app, the **GroupID - Authenticate** page is displayed. -2. On signing in, enrolled users are redirected to the **Authenticate** page. This page lists the - authentication types the user enrolled his or her account with. -3. Select the **Email Verification** check box and click **Continue**. -4. On the next page, complete your email address and click **Send Code**. -5. When the verification code is successfully sent to the provided email address, a box appears on - the page. Enter the received code in it. -6. Click **Verify and Continue**. - -RECOMMENDED: If you do not receive the code, recheck your email address and click **Send Again**. - -## Authenticate using Authenticator - -1. When you launch Admin Center, the GroupID portal or the GroupID Mobile app, the **GroupID - Authenticate** page is displayed. -2. On signing in, enrolled users are redirected to the **Authenticate** page. This page lists the - authentication types the user enrolled his or her account with. -3. Select the **Authenticator** check box and click **Continue**. -4. Launch the Authenticator app on your smartphone. -5. The app displays a 6-digit code. Enter it in the **Security Code** box on the **Authenticator** - page. -6. Click **Verify and Continue**. - -## Authenticate using YubiKey - -1. When you launch Admin Center, the GroupID portal or the GroupID Mobile app, the **GroupID - Authenticate** page is displayed. -2. On signing in, enrolled users are redirected to the **Authenticate** page. This page lists the - authentication types the user enrolled his or her account with. -3. Insert the YubiKey device in the USB slot of your computer. -4. Select the **YubiKey** check box and click **Continue**. -5. On the next page, click your YubiKey device name. - GroupID directs you to tap on the physical device. -6. On tapping, you are authenticated in GroupID. - -## Authenticate using Windows Hello - -1. When you launch Admin Center, the GroupID portal or the GroupID Mobile app, the **GroupID - Authenticate** page is displayed. -2. On signing in, enrolled users are redirected to the **Authenticate** page. This page lists the - authentication types the user enrolled his or her account with. -3. Select the **Windows Hello** check box and click **Continue**. -4. On the next page, click **Authenticate and Continue**. -5. Authenticate with the provided biometric information or with the PIN given in the Windows Hello - sign-in options. - -**See Also** - -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) -- [Enable Authentication Types](/docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md) -- [Authentication Policy for Security Roles](/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md) -- [Enroll with Authentication Types](/docs/directorymanager/11.0/signin/authpolicy/enroll.md) diff --git a/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md b/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md deleted file mode 100644 index c295d50a17..0000000000 --- a/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "Authentication Policy" -description: "Authentication Policy" -sidebar_position: 20 ---- - -# Authentication Policy - -The GroupID authentication policy is based on: - -- Second Factor Authentication -- Multifactor Authentication -- Second Way Authentication - -## Authentication Policies - A Comparison - -The following table shows a comparison between second factor authentication, multifactor -authentication, and second way authentication. - -| | Second Factor Authentication | Multifactor Authentication | Second Way Authentication | -| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | -| Configuration | It is enabled and configured for an identity store, and then for a security role in the identity store. | It is enabled and configured for an identity store. Settings at the security role level are optional. | It is configured for an identity store. | -| Applies when | Users sign into Admin Center Users sign into the GroupID portal Users sign into the GroupID Mobile app | Users reset password or unlock account in the GroupID portal. Users reset password or unlock account in the GroupID mobile app. Helpdesk users need to verify the identity of users before resetting their password and unlocking their account in Admin Center. | Unenrolled users attempt to reset their identity store account password or unlock account using the GroupID portal or the mobile app. | -| Supported authentication types | - Security Questions - SMS - Email - Authenticator - YubiKey - Windows Hello | - Security Questions - SMS - Email - Authenticator - Linked Account - YubiKey - Windows Hello | - Security Questions - SMS - Email | -| Number of authentication types required to authenticate | Only one | Can be more than one, as set by the administrator | Can be one or more, as set by the administrator | - -NOTE: Account unlock is not supported in a Microsoft Entra ID identity store. - -**See Also** - -- [Enable Authentication Types](/docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md) -- [Set Up Authentication Types](/docs/directorymanager/11.0/signin/authpolicy/setupauth/overview.md) -- [Authentication Policy for Security Roles](/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md) -- [Configure Second Factor Authentication](/docs/directorymanager/11.0/signin/authpolicy/sfa.md) -- [Configure Multifactor Authentication](/docs/directorymanager/11.0/signin/authpolicy/mfa.md) -- [Second Way Authentication - SWA](/docs/directorymanager/11.0/signin/identitystore/configure/secondwayauthentication.md) -- [Enroll with Authentication Types](/docs/directorymanager/11.0/signin/authpolicy/enroll.md) -- [Authenticate with Authentication Types](/docs/directorymanager/11.0/signin/authpolicy/authenticate.md) diff --git a/docs/directorymanager/11.0/signin/authpolicy/enroll.md b/docs/directorymanager/11.0/signin/authpolicy/enroll.md deleted file mode 100644 index e493cead9e..0000000000 --- a/docs/directorymanager/11.0/signin/authpolicy/enroll.md +++ /dev/null @@ -1,187 +0,0 @@ ---- -title: "Enroll with Authentication Types" -description: "Enroll with Authentication Types" -sidebar_position: 30 ---- - -# Enroll with Authentication Types - -When the administrator has enabled multifactor authentication and second factor authentication for -an identity store, users must enroll their identity store accounts in GroupID. Without enrolling, -they will not be able to sign into GroupID. - -To enroll, a user must register his or her identity store account in GroupID using one or more -authentication types. When a user enrolls for multifactor authentication, it also suffices for -second factor authentication, and vice versa. See the -[Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) -topic for a list of supported authentication types. - -Account enrollment is a one-time process. Enrolled users must authenticate their identity store -accounts every time they have to pass multifactor or second factor authentication. - -- For second factor authentication, a user must enroll his or her account with any one - authentication type. -- For multifactor authentication, a user may have to enroll with more than one authentication type, - depending on what the administrator has configured for a security role. See - the[Enforce Authentication Types for Multifactor Authentication](/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md#enforce-authentication-types-for-multifactor-authentication) - topic. - -What do you want to do? - -- [Enroll using Security Questions](#enroll-using-security-questions) -- [Enroll using Mobile](#enroll-using-mobile) -- [Enroll using Email](#enroll-using-email) -- [Enroll using Authenticator](#enroll-using-authenticator) -- [Enroll using YubiKey](#enroll-using-yubikey) -- [Enroll using Windows Hello](#enroll-using-windows-hello) - -## Enroll using Security Questions - -To enroll your identity store account with the Security Questions authentication type, select a -question and then provide an answer for it. The number of questions you must answer are configured -by the administrator for your role. See the -[Define Security Question Settings for a Security Role](/docs/directorymanager/11.0/signin/securityrole/policy/password.md#define-security-question-settings-for-a-security-role) -topic. - -**To enroll with security questions:** - -1. When you launch Admin Center, the GroupID portal or the GroupID Mobile app, the **GroupID - Authenticate** page is displayed. -2. On signing in, unenrolled users are redirected to the **Your Enrollments** page. Tabs on this - page represent the different authentication types the administrator has enabled for enrollment. - You can also launch the **Your Enrollments** page from Admin Center and the GroupID portal. See - the - [Enroll your Account](/docs/directorymanager/11.0/signin/concepts/accessapplications.md#enroll-your-account) - topic. -3. Click the **Security Question** tab. -4. From a **Question X** list, select a security question of your choice (X represents the question - number). - You can also type a question in the box to create a new question of your choice. -5. Type your answer in the answer box. -6. Repeat steps 4 and 5 to select another security question and provide an answer. -7. Click **Enroll Account**. - A confirmation message is displayed on successful enrollment. - -## Enroll using Mobile - -To enroll your identity store account using Mobile, you have to provide your mobile number. GroupID -sends a verification code to this number via SMS and you have to enter it in GroupID to enroll -successfully. - -To draft the SMS message text, see the -[Link an SMS Gateway Account to an Identity Store](/docs/directorymanager/11.0/signin/identitystore/configure/smsauthentication.md#link-an-sms-gateway-account-to-an-identity-store) -topic. - -**To enroll using mobile:** - -1. When you launch Admin Center, the GroupID portal or the GroupID Mobile app, the **GroupID - Authenticate** page is displayed. -2. On signing in, unenrolled users are redirected to the **Your Enrollments** page. Tabs on this - page represent the different authentication types the administrator has enabled for enrollment. - You can also launch the **Your Enrollments** page from Admin Center and the GroupID portal. See - the - [Enroll your Account](/docs/directorymanager/11.0/signin/concepts/accessapplications.md#enroll-your-account) - topic. -3. Click the **Mobile** tab. -4. Select your country and then type your mobile number in the box. -5. Click **Send Code**. -6. When the verification code is successfully sent to the provided mobile number, a box appears on - the page. Enter the received code in it. -7. Click **Enroll Account**. - -RECOMMENDED: If you do not receive the code, recheck your mobile number and click **Send code -again**. - -## Enroll using Email - -To enroll your identity store account using Email, you have to provide your email address. GroupID -sends a verification code to this email address and you have to enter it in GroupID to enroll -successfully. - -To draft a subject line and body for the email, see the -[Modify the Email Template](/docs/directorymanager/11.0/signin/authpolicy/setupauth/email.md#modify-the-email-template) -topic. - -**To enroll using email:** - -1. When you launch Admin Center, the GroupID portal or the GroupID Mobile app, the **GroupID - Authenticate** page is displayed. -2. On signing in, unenrolled users are redirected to the **Your Enrollments** page. Tabs on this - page represent the different authentication types the administrator has enabled for enrollment. - You can also launch the **Your Enrollments** page from Admin Center and the GroupID portal. See - the - [Enroll your Account](/docs/directorymanager/11.0/signin/concepts/accessapplications.md#enroll-your-account) - topic. -3. Click the **Email** tab. -4. Type your email address in the box and click **Send verification code**. -5. When the verification code is successfully sent to the provided email address, a box appears on - the page. Enter the received code in it. -6. Click **Enroll Account**. - -RECOMMENDED: If you do not receive the code, recheck your email address and click **Send code -again**. - -## Enroll using Authenticator - -Before you enroll with Authenticator, make sure you have installed an authenticator app, such as -Google Authenticator or Microsoft Authenticator, on your phone. - -**To enroll with Authenticator:** - -1. When you launch Admin Center, the GroupID portal or the GroupID Mobile app, the **GroupID - Authenticate** page is displayed. -2. On signing in, unenrolled users are redirected to the **Your Enrollments** page. Tabs on this - page represent the different authentication types the administrator has enabled for enrollment. - You can also launch the **Your Enrollments** page from Admin Center and the GroupID portal. See - the - [Enroll your Account](/docs/directorymanager/11.0/signin/concepts/accessapplications.md#enroll-your-account) - topic. -3. Click the **Authenticator** tab. -4. Scan the QR code with the authenticator app installed on your smartphone. - The app generates a verification code and displays it on your phone’s screen. -5. Enter this code in the box on the **Authenticator** tab and click **Enroll Account**. - A confirmation message is displayed on successful enrollment. - -## Enroll using YubiKey - -1. When you launch Admin Center, the GroupID portal or the GroupID Mobile app, the **GroupID - Authenticate** page is displayed. -2. On signing in, unenrolled users are redirected to the **Your Enrollments** page. Tabs on this - page represent the different authentication types the administrator has enabled for enrollment. - You can also launch the **Your Enrollments** page from Admin Center and the GroupID portal. See - the - [Enroll your Account](/docs/directorymanager/11.0/signin/concepts/accessapplications.md#enroll-your-account) - topic. -3. Insert the YubiKey device in the USB slot of your computer. -4. Click the **YubiKey** tab. -5. Enter a name for your YubiKey device in the box. -6. Click **Enroll Account**. -7. You are directed to tap on the physical device. On tapping, your account gets enrolled. - -## Enroll using Windows Hello - -Before enrolling your account with the Windows Hello authentication type, you must be registered on -the device using the Windows Hello sign-in options. - -GroupID allows enrollment on one Windows Hello device only. - -**To enroll using Windows Hello:** - -1. When you launch Admin Center, the GroupID portal or the GroupID Mobile app, the **GroupID - Authenticate** page is displayed. -2. On signing in, unenrolled users are redirected to the **Your Enrollments** page. Tabs on this - page represent the different authentication types the administrator has enabled for enrollment. - You can also launch the **Your Enrollments** page from Admin Center and the GroupID portal. See - the - [Enroll your Account](/docs/directorymanager/11.0/signin/concepts/accessapplications.md#enroll-your-account) - topic. -3. Click the **Windows Hello** tab. -4. Enter a name for your authentication device in the box and click **Start Registration**. You will - be prompted to provide your biometric information using the configured biometric device. - -**See Also** - -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) -- [Enable Authentication Types](/docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md) -- [Authentication Policy for Security Roles](/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md) -- [Authenticate with Authentication Types](/docs/directorymanager/11.0/signin/authpolicy/authenticate.md) diff --git a/docs/directorymanager/11.0/signin/authpolicy/mfa.md b/docs/directorymanager/11.0/signin/authpolicy/mfa.md deleted file mode 100644 index a339ffc391..0000000000 --- a/docs/directorymanager/11.0/signin/authpolicy/mfa.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: "Configure Multifactor Authentication" -description: "Configure Multifactor Authentication" -sidebar_position: 10 ---- - -# Configure Multifactor Authentication - -You can define a multifactor authentication (MFA) policy for an identity store. This policy enforces -users to enroll their identity store accounts in GroupID using one or more authentication types. -Supported authentication types are discussed in the -[Authentication Policies - A Comparison](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) -topic. - -Once enrolled, users must authenticate their identity store accounts using the authentication types -they enrolled with, when they perform any of the following actions in the GroupID portal or the -GroupID mobile app: - -- Reset identity store account passwords -- Unlock their accounts - -Helpdesk users with restricted access also use authentication type(s) to authenticate end-users -before resetting their password or unlocking their identity store account. See the -[Set Restricted Mode](/docs/directorymanager/11.0/signin/securityrole/policy/helpdesk.md#set-restricted-mode) -topic. - -NOTE: Multifactor authentication defined in Microsoft Entra Admin Center does not integrate with MFA -in GroupID. See the -[Multifactor Authentication Policy](/docs/directorymanager/11.0/signin/identitystore/advsentraid.md#multifactor-authentication-policy) -topic. - -What do you want to do? - -- Configure Multifactor Authentication - -## Configure Multifactor Authentication - -To configure multifactor authentication for a security role in an identity store, do the following: - -1. Enable one or more authentication types for the identity store. - See the - [Enable Authentication Types](/docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md) - topic for details. -2. Enforce role members to use specific authentication types for multifactor authentication. - See the - [Enforce Authentication Types for Multifactor Authentication](/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md#enforce-authentication-types-for-multifactor-authentication) - topic for details. - -See Also - -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) -- [Configure Second Factor Authentication](/docs/directorymanager/11.0/signin/authpolicy/sfa.md) -- [Enroll with Authentication Types](/docs/directorymanager/11.0/signin/authpolicy/enroll.md) -- [Authenticate with Authentication Types](/docs/directorymanager/11.0/signin/authpolicy/authenticate.md) diff --git a/docs/directorymanager/11.0/signin/authpolicy/setupauth/_category_.json b/docs/directorymanager/11.0/signin/authpolicy/setupauth/_category_.json deleted file mode 100644 index a53968eb29..0000000000 --- a/docs/directorymanager/11.0/signin/authpolicy/setupauth/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Set Up Authentication Types", - "position": 50, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/authpolicy/setupauth/authenticator.md b/docs/directorymanager/11.0/signin/authpolicy/setupauth/authenticator.md deleted file mode 100644 index d924d01619..0000000000 --- a/docs/directorymanager/11.0/signin/authpolicy/setupauth/authenticator.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "Set up Authentication via Authenticator" -description: "Set up Authentication via Authenticator" -sidebar_position: 30 ---- - -# Set up Authentication via Authenticator - -Users must install an authenticator app, such as Google Authenticator or Microsoft Authenticator, on -their phones and use it to enroll and authenticate their identity store accounts in GroupID. - -What do you want to do? - -- [Enable the Authenticator Authentication Type for an Identity Store](#enable-the-authenticator-authentication-type-for-an-identity-store) -- [Enforce Authentication by Authenticator for a Role in an Identity Store](#enforce-authentication-by-authenticator-for-a-role-in-an-identity-store) - -## Enable the Authenticator Authentication Type for an Identity Store - -The Authenticator authentication type must be enabled for an identity store before it can be used -for second factor authentication and multifactor authentication. - -To enable it, see the -[Enable Authentication Types](/docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md) -topic. - -## Enforce Authentication by Authenticator for a Role in an Identity Store - -To enforce an authentication type, see the -[Enforce Authentication Types for Multifactor Authentication](/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md#enforce-authentication-types-for-multifactor-authentication) -topic. - -Role members must use an enforced authentication type for multifactor authentication. When an -authentication type is enabled but not enforced, role members can choose to use it for enrollment -and authentication. - -**See Also** - -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) diff --git a/docs/directorymanager/11.0/signin/authpolicy/setupauth/email.md b/docs/directorymanager/11.0/signin/authpolicy/setupauth/email.md deleted file mode 100644 index 9ee9803dff..0000000000 --- a/docs/directorymanager/11.0/signin/authpolicy/setupauth/email.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: "Set up Authentication via Email" -description: "Set up Authentication via Email" -sidebar_position: 20 ---- - -# Set up Authentication via Email - -Users can enroll and authenticate their identity store accounts using Email. An email sent to a -user’s email address contains a confirmation code that the user must enter in GroupID to enroll and -authenticate their accounts. - -GroupID provides a default notification template for enrollment/authentication via email in various -languages. You can change the subject line and the body text in the template for any of these -languages. - -NOTE: Before configuring Email authentication, make sure that an SMTP server is configured for the -identity store. See the -[Configure an SMTP Server](/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md) -topic. - -What do you want to do? - -- [Enable Email Authentication for an Identity Store](#enable-email-authentication-for-an-identity-store) -- [Modify the Email Template](#modify-the-email-template) -- [Enforce Email Authentication for a Role in an Identity Store ](#enforce-email-authentication-for-a-role-in-an-identity-store) - -## Enable Email Authentication for an Identity Store - -The email authentication type must be enabled for an identity store before users can use it for -second factor authentication and multifactor authentication. - -To enable it, see the -[Enable Authentication Types](/docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md) -topic. - -## Modify the Email Template - -You can modify the subject line and body text of the email sent to users. The email contains a -confirmation code that users have to enter in GroupID to enroll/authenticate their accounts. - -**To modify the subject line and body of the email:** - -1. In Admin Center, click **Notification Editor** at the bottom of the left navigation pane. - The **Notification Editor** is displayed. -2. By default, notifications templates are displayed in US English. You can select a different - language to customize notification templates for that language. - - 1. To select a language, click **Filter**. - 2. On the **Filter(s)** dialog box, use the **Locality** drop-down list to select the ISO code - for your required language. - 3. Click **Apply**. - -3. Search for _AccessCodeEmail_ and click **Edit** in the **Actions** column to open it. - - ![access_code](/images/directorymanager/11.0/admincenter/setupauth/access_code.webp) - -4. You can view the notification content in two distinct modes: - - - _Source Code (HTML)_ - This is the default mode, as shown in the figure above. You can make - changes to the notification template in this mode. - - _Interactive_ - This is the user-friendly, front-end view. Use it to view the email - notification, as it will be sent to users. - -5. Modify and format the text of the email, except the [USER] and [CODE] placeholders. - GroupID replaces [USER] with the name of the user and inserts a randomly generated verification - code into the [Code] placeholder. The user must enter this code in GroupID to enroll and - authenticate. -6. Click the **Title** tile to change the subject line of the email notification. -7. After making the required changes, click **Save**. -8. Click **Go Back** to return to the **Notification Editor**. - -## Enforce Email Authentication for a Role in an Identity Store - -To enforce an authentication type, see the -[Enforce Authentication Types for Multifactor Authentication](/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md#enforce-authentication-types-for-multifactor-authentication) -topic. - -Role members must use an enforced authentication type for multifactor authentication. When an -authentication type is enabled but not enforced, role members can choose to use it for enrollment -and authentication. - -**See Also** - -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) -- [Customize Notifications](/docs/directorymanager/11.0/signin/notification/customize.md) diff --git a/docs/directorymanager/11.0/signin/authpolicy/setupauth/linkedaccount.md b/docs/directorymanager/11.0/signin/authpolicy/setupauth/linkedaccount.md deleted file mode 100644 index 5c40e51f7b..0000000000 --- a/docs/directorymanager/11.0/signin/authpolicy/setupauth/linkedaccount.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "Set up Authentication via Linked Account" -description: "Set up Authentication via Linked Account" -sidebar_position: 40 ---- - -# Set up Authentication via Linked Account - -The GroupID portal enables a user to link accounts that he or she may have in different identity -stores. When the user enrolls any one of those linked accounts in GroupID, it suffices for the -enrollment of all linked accounts. - -Users can then reset their account passwords and unlock accounts through a linked account. Let’s -assume a user links his or her accounts in Identity Store A and Identity Store B. Using the Linked -Account authentication type, the user can unlock the Identity Store A account by providing the -credentials of the Identity Store B account and vice versa. - -NOTE: The Linked Account authentication type is available for multifactor authentication only. - -What do you want to do? - -- [Enable Linked Account Authentication for an Identity Store](#enable-linked-account-authentication-for-an-identity-store) -- [Enforce Linked Account Authentication for a Security Role](#enforce-linked-account-authentication-for-a-security-role) - -## Enable Linked Account Authentication for an Identity Store - -The Linked Account authentication type must be enabled for an identity store before it can be used -for multifactor authentication. - -To enable it, see the -[Enable Authentication Types](/docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md) -topic. - -## Enforce Linked Account Authentication for a Security Role - -To enforce an authentication type, see the -[Enforce Authentication Types for Multifactor Authentication](/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md#enforce-authentication-types-for-multifactor-authentication) -topic. - -Role members must use an enforced authentication type for multifactor authentication. When an -authentication type is enabled but not enforced, role members can choose to use it for enrollment -and authentication. - -See Also - -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) diff --git a/docs/directorymanager/11.0/signin/authpolicy/setupauth/overview.md b/docs/directorymanager/11.0/signin/authpolicy/setupauth/overview.md deleted file mode 100644 index 4ca41b2d17..0000000000 --- a/docs/directorymanager/11.0/signin/authpolicy/setupauth/overview.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Set Up Authentication Types" -description: "Set Up Authentication Types" -sidebar_position: 50 ---- - -# Set Up Authentication Types - -The following topics guide you on how to set up different authentication types for an identity store -and enforce them for a security role. - -- [Set up Authentication via Security Questions](/docs/directorymanager/11.0/signin/authpolicy/setupauth/securityquestions.md) -- [SMS Authentication](/docs/directorymanager/11.0/signin/identitystore/configure/smsauthentication.md) -- [Set up Authentication via Email](/docs/directorymanager/11.0/signin/authpolicy/setupauth/email.md) -- [Set up Authentication via Authenticator](/docs/directorymanager/11.0/signin/authpolicy/setupauth/authenticator.md) -- [Set up Authentication via Linked Account](/docs/directorymanager/11.0/signin/authpolicy/setupauth/linkedaccount.md) -- [Set up Authentication via YubiKey](/docs/directorymanager/11.0/signin/authpolicy/setupauth/yubikey.md) -- [Set up Authentication via Windows Hello](/docs/directorymanager/11.0/signin/authpolicy/setupauth/windowshello.md) - -**See Also** - -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) diff --git a/docs/directorymanager/11.0/signin/authpolicy/setupauth/securityquestions.md b/docs/directorymanager/11.0/signin/authpolicy/setupauth/securityquestions.md deleted file mode 100644 index 12cb239ae0..0000000000 --- a/docs/directorymanager/11.0/signin/authpolicy/setupauth/securityquestions.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: "Set up Authentication via Security Questions" -description: "Set up Authentication via Security Questions" -sidebar_position: 10 ---- - -# Set up Authentication via Security Questions - -GroupID provides a list of predefined security questions. This list can be referred to as the global -question pool, as it is available to all identity stores in GroupID. You can add and remove -questions to this pool. - -Use the questions from the global pool to create a local pool of security questions for each -identity store. Questions in the local pool are available to identity store users for enrolling with -the security questions authentication type. - -You can also specify the following settings for a user role in an identity store: - -- The number of questions role members must use for enrollment and authentication -- The minimum answer length - -What do you want to do? - -- [Modify the Global Question Pool](#modify-the-global-question-pool) -- [Modify the Local Question Pool](#modify-the-local-question-pool) -- [Enable Security Question Authentication for an Identity Store](#enable-security-question-authentication-for-an-identity-store) -- [Enforce Security Question Authentication for a Role in an Identity Store](#enforce-security-question-authentication-for-a-role-in-an-identity-store) -- [Specify Policies for Security Question Authentication](#specify-policies-for-security-question-authentication) - -## Modify the Global Question Pool - -See the -[Manage the Global Question Pool ](/docs/directorymanager/11.0/signin/concepts/globalpool.md)topic. - -## Modify the Local Question Pool - -See the -[Manage the Local Question Pool](/docs/directorymanager/11.0/signin/identitystore/configure/securityquestions.md) -topic. - -## Enable Security Question Authentication for an Identity Store - -The security question authentication type must be enabled for an identity store before users can use -it for second factor authentication and multifactor authentication. - -To enable it, see the -[Enable Authentication Types](/docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md) -topic. - -## Enforce Security Question Authentication for a Role in an Identity Store - -To enforce an authentication type, see the -[Enforce Authentication Types for Multifactor Authentication](/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md#enforce-authentication-types-for-multifactor-authentication) -topic. - -Role members must use an enforced authentication type for multifactor authentication. When an -authentication type is enabled but not enforced, role members can choose to use it for enrollment -and authentication. - -## Specify Policies for Security Question Authentication - -See the -[Define Security Question Settings for a Security Role](/docs/directorymanager/11.0/signin/securityrole/policy/password.md#define-security-question-settings-for-a-security-role) topic. - -See Also - -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) -- [Manage the Local Question Pool](/docs/directorymanager/11.0/signin/identitystore/configure/securityquestions.md) diff --git a/docs/directorymanager/11.0/signin/authpolicy/setupauth/windowshello.md b/docs/directorymanager/11.0/signin/authpolicy/setupauth/windowshello.md deleted file mode 100644 index c4ee3b5475..0000000000 --- a/docs/directorymanager/11.0/signin/authpolicy/setupauth/windowshello.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Set up Authentication via Windows Hello" -description: "Set up Authentication via Windows Hello" -sidebar_position: 50 ---- - -# Set up Authentication via Windows Hello - -The Windows Hello authentication type can be used on Windows 10 devices only with specialized -hardware installed, such as fingerprint reader and 3D camera. - -NOTE: Windows Hello supports the Microsoft Edge browser only. - -What do you want to do? - -- [Enable Windows Hello on Windows 10](#enable-windows-hello-on-windows-10) -- [Enable Windows Hello Authentication for an Identity Store](#enable-windows-hello-authentication-for-an-identity-store) -- [Enforce Windows Hello Authentication for a Role in an Identity Store](#enforce-windows-hello-authentication-for-a-role-in-an-identity-store) - -## Enable Windows Hello on Windows 10 - -1. On the Windows Start menu, select **Settings**. -2. Go to **Accounts > Sign-in options**. -3. You are prompted to enter a PIN. Click/tap **Add** under **PIN** to set up a PIN code. - Having set a PIN, you can proceed to add biometric data. -4. In the **Windows Hello** section, click **Set up** under **Face** or **Fingerprint** to add - recognition data. - -## Enable Windows Hello Authentication for an Identity Store - -The Windows Hello authentication type must be enabled for an identity store before it can be used -for second factor authentication and multifactor authentication. - -To enable it, see the -[Enable Authentication Types](/docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md) -topic. - -## Enforce Windows Hello Authentication for a Role in an Identity Store - -To enforce an authentication type, see the -[Enforce Authentication Types for Multifactor Authentication](/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md#enforce-authentication-types-for-multifactor-authentication) -topic. - -Role members must use an enforced authentication type for multifactor authentication. When an -authentication type is enabled but not enforced, role members can choose to use it for enrollment -and authentication. - -See Also - -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) diff --git a/docs/directorymanager/11.0/signin/authpolicy/setupauth/yubikey.md b/docs/directorymanager/11.0/signin/authpolicy/setupauth/yubikey.md deleted file mode 100644 index 3f2b172d22..0000000000 --- a/docs/directorymanager/11.0/signin/authpolicy/setupauth/yubikey.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "Set up Authentication via YubiKey" -description: "Set up Authentication via YubiKey" -sidebar_position: 60 ---- - -# Set up Authentication via YubiKey - -YubiKey is a key-sized device that users can plug into the computer’s USB slot to verify their -identity. They can use it to enroll and authenticate their identity store accounts in GroupID. - -YubiKey can only be used on a physical machine. Virtual machines are not supported. - -YubiKey supports the following browsers: - -- Google Chrome version 38 or later -- Opera version 40 or later -- Firefox (requires the U2F Support Add-on extension) - -What do you want to do? - -- [Enable YubiKey Authentication for an Identity Store](#enable-yubikey-authentication-for-an-identity-store) -- [Enforce YubiKey Authentication for a Security Role in an Identity Store](#enforce-yubikey-authentication-for-a-security-role-in-an-identity-store) - -## Enable YubiKey Authentication for an Identity Store - -You must enable the YubiKey authentication type for an identity store for users to use it for second -factor authentication and multifactor authentication. - -To enable it, see the -[Enable Authentication Types](/docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md) -topic. - -## Enforce YubiKey Authentication for a Security Role in an Identity Store - -To enforce an authentication type, see the -[Enforce Authentication Types for Multifactor Authentication](/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md#enforce-authentication-types-for-multifactor-authentication) -topic. - -Role members must use an enforced authentication type for multifactor authentication. When an -authentication type is enabled but not enforced, role members can choose to use it for enrollment -and authentication. - -See Also - -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) diff --git a/docs/directorymanager/11.0/signin/authpolicy/sfa.md b/docs/directorymanager/11.0/signin/authpolicy/sfa.md deleted file mode 100644 index f711c09751..0000000000 --- a/docs/directorymanager/11.0/signin/authpolicy/sfa.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: "Configure Second Factor Authentication" -description: "Configure Second Factor Authentication" -sidebar_position: 20 ---- - -# Configure Second Factor Authentication - -You can enable second factor authentication (SFA) for a user role in an identity store. This policy -enforces role members to enroll their identity store accounts in GroupID using one or more -authentication types. Supported authentication types are discussed in the -[Authentication Policies - A Comparison](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) -topic. - -Once enrolled, role members must authenticate their accounts using an authentication type they -enrolled with, while signing into Admin Center, GroupID portal or the GroupID mobile app. Users -enrolled with multiple authentication types can use any one type to authenticate. - -NOTE: GroupID SFA does not apply to Microsoft Entra ID MFA enabled users. - -What do you want to do? - -- Configure Second Factor Authentication - -## Configure Second Factor Authentication - -To configure second factor authentication for a security role in an identity store, do the -following: - -Step 1 – Enable one or more authentication types for the identity store. - -See the -[Enable Authentication Types](/docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md) -topic for details. - -Step 2 – Enable second factor authentication for a security role in an identity store. - -See the -[Enable Second Factor Authentication](/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md#enable-second-factor-authentication) -topic for details. - -See Also - -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) -- [Configure Multifactor Authentication](/docs/directorymanager/11.0/signin/authpolicy/mfa.md) -- [Enroll with Authentication Types](/docs/directorymanager/11.0/signin/authpolicy/enroll.md) -- [Authenticate with Authentication Types](/docs/directorymanager/11.0/signin/authpolicy/authenticate.md) diff --git a/docs/directorymanager/11.0/signin/concepts/_category_.json b/docs/directorymanager/11.0/signin/concepts/_category_.json deleted file mode 100644 index 2c94554c1e..0000000000 --- a/docs/directorymanager/11.0/signin/concepts/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Group Management Concepts", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "concepts" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/concepts/accessapplications.md b/docs/directorymanager/11.0/signin/concepts/accessapplications.md deleted file mode 100644 index 025958e371..0000000000 --- a/docs/directorymanager/11.0/signin/concepts/accessapplications.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: "Access your Applications" -description: "Access your Applications" -sidebar_position: 70 ---- - -# Access your Applications - -GroupID users can have access to GroupID applications such as: - -- Admin Center -- GroupID portals -- Third-party apps that GroupID services as an identity provider for single sign-on (SSO) - -You can view a list of your applications and launch them from Admin Center without having to -authenticate with a user name and password. - -What do you want to do? - -- [Access an Application](#access-an-application) -- [Add a Third-party Application](#add-a-third-party-application) -- [Enroll your Account](#enroll-your-account) - -## Access an Application - -1. In Admin Center, click your name in the top right corner and select **My Applications**. -2. The **GroupID Applications** page displays the applications that you can access. Click an - application to launch it. - -## Add a Third-party Application - -GroupID can serve as an identity provider to facilitate SSO for third-party apps. You can add a -third-party application as a service provider to authenticate its users through GroupID. - -To add a third-party application: - -1. In Admin Center, click your name in the top right corner and select **My Applications**. -2. Click **Add Apps** on the **GroupID Applications** page to add a third-party application. You are - redirected to the **Create Application** page, where you can provide the details of the - application you want to add as a service provider in GroupID. See the - [Register an Application (Service Provider) in GroupID](/docs/directorymanager/11.0/authenticate/asidentityprovider/register.md) - topic. - -## Enroll your Account - -1. In Admin Center, click your name in the top right corner and select **My Applications**. -2. Click **Enroll your account** on the **GroupID Applications** page to enroll the identity store - account with which you are signed into Admin Center. See the - [Enroll with Authentication Types](/docs/directorymanager/11.0/signin/authpolicy/enroll.md) - topic for enrollment details. - -**See Also** - -- [Dashboard](/docs/directorymanager/11.0/signin/concepts/dashboard.md) -- [Navigation](/docs/directorymanager/11.0/signin/concepts/navigation.md) diff --git a/docs/directorymanager/11.0/signin/concepts/changepassword.md b/docs/directorymanager/11.0/signin/concepts/changepassword.md deleted file mode 100644 index fdc21778ed..0000000000 --- a/docs/directorymanager/11.0/signin/concepts/changepassword.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Change your Password" -description: "Change your Password" -sidebar_position: 50 ---- - -# Change your Password - -You can change the password of your identity store account. After changing it, use the new password -to sign into GroupID and other applications that use your domain account. - -What do you want to do? - -- Change your Password - -## Change your Password - -Follow the steps to change your password. - -Step 1 – In Admin Center, click your name in the top right corner and select **Change Password**. - -Step 2 – On the Change Password page, enter your current password in the **Current Password** box. -By default, password characters are represented by dots. Use the toggle button in the box to show or -hide characters. - -Step 3 – Enter a new password in the **New Password** and **Confirm Password** boxes. - -Step 4 – Click **Change Password**. - -NOTE: Microsoft Entra ID users with multifactor authentication enabled cannot change their passwords -in GroupID. The following message is displayed:. - -![Admin Center Change Password error message for an Entra ID user](/images/directorymanager/11.0/admincenter/general/admincenterchangepassword.webp) - -If the user's account is a master account, password of its child accounts also cannot be changed in -GroupID. - -**See Also** - -- [Dashboard](/docs/directorymanager/11.0/signin/concepts/dashboard.md) -- [Navigation](/docs/directorymanager/11.0/signin/concepts/navigation.md) diff --git a/docs/directorymanager/11.0/signin/concepts/concepts.md b/docs/directorymanager/11.0/signin/concepts/concepts.md deleted file mode 100644 index d7e6dd2485..0000000000 --- a/docs/directorymanager/11.0/signin/concepts/concepts.md +++ /dev/null @@ -1,201 +0,0 @@ ---- -title: "Group Management Concepts" -description: "Group Management Concepts" -sidebar_position: 10 ---- - -# Group Management Concepts - -To make the best of GroupID, you must be familiar with the following group management concepts: - -- [Group Classification](#group-classification) -- [Group Types](#group-types) -- [Group Scope](#group-scope) -- [Group Security Types](#group-security-types) - -## Group Classification - -Using GroupID, you can manage the following three kinds of groups: - -- [Unmanaged Groups](#unmanaged-groups) -- [Smart Groups](#smart-groups) -- [Dynasties](#dynasties) - -### Unmanaged Groups - -An unmanaged group, also called a static group, is a group you normally create in a directory, for -example, by using the Active Directory Users and Computers console. Though such groups can be -created using the GroupID portal and Management Shell, GroupID does not support dynamic updates to -them. Any changes to the membership have to be updated manually. - -### Smart Groups - -A Smart Group is one that dynamically maintains its membership based on rules. These rules are -applied in the form of a user-defined query, such as an LDAP query. This query is defined once and -scheduled for membership update using a Smart Group Update schedule. When the schedule runs, it -applies the defined rules to the directory and fetches matching records to update the group's -memberships. - -In this way, Smart Groups are automatically updated whenever the user information changes in the -directory. This automated group management allows administrators to easily maintain large -distribution lists and security groups without having to manually add or remove members. - -### Dynasties - -A Dynasty is a Smart Group that creates and manages other Smart Groups using information in the -directory. Dynasties help you manage large distribution lists by creating hierarchical group -structures that represent your organization. The Smart Groups that the Dynasty creates are called -child groups and become members of their respective parent Dynasty. - -A Dynasty retrieves data from the directory on the same pattern as a Smart Group does, but it has -its own mechanism of dividing the query results into child groups. - -#### The Group-by Field Determines Child Groups - -When you create a Dynasty, you specify a query and a field, referred to as the group-by field. The -group-by field is used to divide the query results into groups. - -For example, if you set ‘department’ as the group-by field, then each distinct value for the -‘department’ field is returned, for instance, Sales, Marketing, and Human Resources. Thus, a Dynasty -with the group-by field set to ‘department’ creates child groups for each distinct value: Sales, -Marketing, and Human Resources. - -#### Built-in Updates - -GroupID keeps the Dynasty active in two ways: - -- By adding new child groups as new values are returned for the group-by field. -- By removing existing child groups as previous values of the group-by field no longer exist in the - directory. - -Thus, as new values of the ‘department’ field appear, new groups are created, and as old values -disappear, the corresponding child groups are deleted. - -The same process occurs with the membership of each child group. When a user’s department changes -from Sales to Marketing, for example, the user is removed from the Sales child group and added to -the Marketing child group. - -#### The Parent-child Relationship - -Dynasty children inherit their parent's characteristics and properties, such as group type, group -security, expiry policy, owner, delivery restrictions, message size restrictions and more. -Inheritance saves administrators incalculable time through the systematic application of predefined -properties to new groups. - -You can modify the values of all inherited attributes for a child, except the expiry policy. Child -Dynasties always inherit the expiry policy from the parent Dynasty and it can only be modified at -the parent level. - -#### Dynasty Types - -GroupID provides the following templates for creating Dynasties: - -- **Organizational** - to create a Smart Group for every distinct company, then for each department - within a company, and finally for each title in a department. -- **Geographical** - to create a Smart Group for every distinct country, then for each state within - a country, and finally for each city within a state. -- **Managerial** - to either create separate Smart Groups for the direct reports of each manager or - add all direct reports of the top manager and sub-level managers to a single group. -- **Custom** - to begin with a blank Dynasty and select your own group-by attributes. - -These templates provide predefined group-by attributes for creating Dynasty levels. You can also -define custom group-by attributes to expand the Dynasty levels to suit your organizational model. -You can also combine an external data source with the templates to provide extended criteria for -determining group membership. - -## Group Types - -Groups fall into two functional categories: distribution groups and security groups. - -### Distribution Groups - -Distribution groups, also called distribution lists, are designed to combine users together so that -you can send emails (via a mail server) to a group rather than individually to each user in the -group. - -Distribution groups can be used only with email applications, such as Microsoft Exchange. These -groups are not security-enabled, which means that they cannot be listed in discretionary access -control lists (DACLs). If you need a group for controlling access to shared resources, create a -security group. - -### Security Groups - -Security groups provide an efficient way to assign access to resources on your network. Using -security groups, you can: - -- **Assign user rights** - User rights are assigned to security groups to determine what members of - that group can do within the scope of a domain (or forest). For example, a user who is added to - the Backup Operators group can back-up and restore files and directories located on each domain - controller in the domain. By being a member of this group, you inherit the user rights assigned to - the group. -- **Assign permissions to resources**- This is different from user rights because user rights apply - across an entire domain versus permissions that are directed to a specific entity. Permissions - determine who can access the resource and the level of access, such as Full Control or Read-only. - -Security groups can also be used as a distribution group in Exchange. These are known as -security-enabled distribution groups. - -## Group Scope - -Groups are characterized by a scope that identifies the extent to which the group is applied in a -domain or forest. The boundary, or reach, of a group scope is also determined by the domain -functional level of the domain in which it resides. - -A group’s scope determines: - -- the domains from where members can be added to the group -- the domains where the group can be used to grant permissions -- the domains where the group can be nested in other groups - -A group can be of universal, global, or domain local scope. - -### Universal - -Use groups with universal scope to consolidate groups that span domains. To do this, add the -accounts to groups with global scope, and then nest these groups within groups that have universal -scope. When you use this strategy, any membership changes in the groups that have global scope do -not affect the groups with universal scope. - -Do not change the membership of a group with universal scope frequently, because membership changes -cause the entire membership of the group to be replicated to every global catalog in the forest. - -### Global - -Use groups with global scope to manage directory objects that require daily maintenance, such as -user and computer accounts. Because groups with global scope are not replicated outside their own -domain, you can change accounts in a group having global scope frequently without generating -replication traffic to the global catalog. - -As a best practice, you should use global groups or universal groups rather than domain local groups -when you specify permissions on domain directory objects that are replicated to the global catalog. - -A global group can contain users, computers, and groups from the same domain but not universal -groups. - -### Domain Local - -Groups with domain local scope help you define and manage access to resources within a single -domain. For example, to give five users access to a printer, you can add all five user accounts in -the printer permissions list. - -A domain local group can contain users, computers, global groups, and universal groups from any -domain in the forest and any trusted domain, as well as domain local groups from the same domain. -Such a group can be a member of any domain local group in the same domain. - -## Group Security Types - -A group’s security type determines how non-members can access the group and become its members. -GroupID provides three security types: - -- **Private** - to restrict access to the group to members selected by the group owner. Only the - owner can add or remove members from the group. Requests to join or leave the group cannot be - submitted. -- **Semi-Private** - to restrict access to the group to members selected by the group owner. - However, requests to join or leave the group can be sent to the owner. -- **Public** - to allow all users to access the group. Users can join or leave the group at will and - do not require any permissions to do so. The administrator can configure email notifications to be - sent to the group owner when a user joins or leaves the group. - -**See Also** - -- [Dashboard](/docs/directorymanager/11.0/signin/concepts/dashboard.md) diff --git a/docs/directorymanager/11.0/signin/concepts/dashboard.md b/docs/directorymanager/11.0/signin/concepts/dashboard.md deleted file mode 100644 index 0a0dca913a..0000000000 --- a/docs/directorymanager/11.0/signin/concepts/dashboard.md +++ /dev/null @@ -1,187 +0,0 @@ ---- -title: "Dashboard" -description: "Dashboard" -sidebar_position: 10 ---- - -# Dashboard - -The Admin Center dashboard is a data visualization tool that displays widgets for performance -analytics, alerts, and reporting on GroupID and identity stores on a single page. - -In Admin Center, click **Dashboard** in the left pane. The dashboard displays the following cards -with aggregated data from all identity stores built on Active Directory, Microsoft Entra ID, Google -Workspace, and Generic LDAP, as well as individual identity stores. - -![admin_center_dashboard](/images/directorymanager/11.0/admincenter/general/admin_center_dashboard.webp) - -The dashboard displays the following information: - -- [Basic Information](#basic-information) -- [Elasticsearch Service](#elasticsearch-service) -- [Objects Modified in Last 24 Hours](#objects-modified-in-last-24-hours) -- [Failed Notifications](#failed-notifications) -- [Upcoming Schedules](#upcoming-schedules) -- [Replication Status of Identity Stores](#replication-status-of-identity-stores) -- [Enrollment Summary](#enrollment-summary) -- [Auth Summary](#auth-summary) -- [Activity Summary](#activity-summary) - -## Basic Information - -This card displays the following information: - -- **Server Name:** The name of the GroupID server machine. -- **Database Server:** The name of the SQL server machine hosting the GroupID database. -- **Database Name:** The name of the GroupID database. - -## Elasticsearch Service - -This card displays the following information about the Elasticsearch service: - -- **Cluster:** The name of the Elastic cluster the GroupID Elasticsearch node is joined to. -- Elasticsearch service status, which can be: - - - **Running** - indicates that the service is up and running. - - **Stopped** - indicates that the GroupID Elasticsearch node has run into issues. You must - troubleshoot it for GroupID to work. - -## Objects Modified in Last 24 Hours - -This card displays the number of users, groups, mailboxes, and contacts modified in the directory -during the last 24 hours. This count represents the modifications done using GroupID and directly in -the directory. - -Information is displayed individually for each identity store. Select an identity store from the -list next to the card name to view the data for it. - -## Failed Notifications - -This card displays the count for failed notifications, i.e., the GroupID-generated notifications -that could not be delivered for any reason, such as when the SMTP server is down or the recipient’s -address is incorrect. - -Click **View All** to go to the **Notification Queue** page, where you can view the failed -notifications in detail. See the -[Manage the Notification Queue](/docs/directorymanager/11.0/signin/notification/queue.md) -topic. - -## Upcoming Schedules - -Multiple schedules can be defined for an identity store. This card displays the number of schedules -that will run in the next 24 hours. The card also displays the data and time the next schedule will -run. - -You can: - -- View the details of upcoming schedules for all identity stores in GroupID. -- View the details of upcoming schedules for an identity store individually. - -Select an identity store from the list next to the card name to view the upcoming schedules for it -or select _All Identity Stores_ to view the upcoming schedules for all identity stores. - -Click **View All** to view a list of the upcoming schedules with their names, the next date and time -of schedule run, and the identity store they belong to. - -![image38](/images/directorymanager/11.0/admincenter/general/image38.webp) - -## Replication Status of Identity Stores - -This card lists the identity stores for Active Directory, Microsoft Entra ID, Google Workspace, and -Generic LDAP defined in GroupID, along with their replication status, which can be: - -- **Successful:** Indicates that identity store objects are successfully replicated. -- **Failed:** Indicates that identity store objects have failed to replicate either because the - Replication service did not run as scheduled or an error occurred during replication. -- **Never Replicated:** Indicates that the identity store is never replicated. - -## Enrollment Summary - -This card employs a bar graph to display the enrollment stats and trends for an identity store. It -shows the number of user accounts enrolled using each of the authentication types (including -accounts enrolled by end-users and by helpdesk for end-users). - -Consider the following: - -- You can view enrollment data for an identity store individually or view aggregated data for all - identity stores in GroupID. Select an identity store from the list next to the card name to view - the enrollment data for it or select _All Identity Stores_ to view the data for all identity - stores. -- Hover the mouse over a bar to view the number of users enrolled with the specific authentication - type. Click a bar to launch the **Helpdesk** page, that displays a list of users enrolled with - that authentication type. See the - [View Users' Information](/docs/directorymanager/11.0/signin/helpdesk/operation/search.md#view-users-information) - topic for details on the information displayed for a user. (Notice that the **Filter(s)** dialog - box displays the selected authentication type in the **Enrolled With** box.) -- By default, data is displayed for the last one month. You can view enrollment data for any - specific period. Click the tile showing the time period to launch the calendar. Use it to specify - a date range to view the data. - -## Auth Summary - -This card employs a pie chart to display the authentication stats and trends for an identity store, -i.e., the number of successful and failed authentication attempts made by identity store users in -GroupID. Information is based on: - -- Authentication attempts made using authentication types for second factor authentication. -- Authentication attempts made using authentication types for multifactor authentication. -- Sign in attempts made using username and password. - -The pie chart is highly interactive. You can: - -- Hover the mouse over an arc to view the successful or failed authentication attempt count. -- Click the arc for successful or failed attempts to view successful/failed authentication attempts - for each authentication type. Another pie chart appears to display the authentication types used - in the authentication attempt. Click this chart to navigate to the **History** tab of the - **Helpdesk** page to view the logged history for the authentication attempts with the respective - authentication type. See the - [History in Helpdesk](/docs/directorymanager/11.0/signin/helpdesk/history.md) topic. - -Consider the following: - -- You can view authentication data for an identity store individually or view aggregated data for - all identity stores in GroupID. Select an identity store from the list next to the card name to - view the auth data for it or select _All Identity Stores_ to view the data for all identity - stores. -- By default, data is displayed for the last one week. You can view authentication data for any - specific period. Click the tile showing the time period to launch the calendar. Use it to specify - a date range to view the data. - -See the -[Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) -topic for a list of supported authentication types. - -## Activity Summary - -This card employs a bar graph to display the number of times the following activities were performed -in an identity store by both helpdesk and end-users: - -- Password change -- Password reset -- Account unlock -- Link account -- Unlink account -- Enroll account - -Consider the following: - -- You can view data for these activities for an identity store individually or view aggregated data - for all identity stores in GroupID. Select an identity store from the list next to the card name - to view the activity summary for it or select _All Identity Stores_ to view the data for all - identity stores. -- To view a list of users who used a function on a particular date, click the relevant data point on - the function line. A list of users is displayed on the **History** tab of the **Helpdesk** page. - See the - [History in Helpdesk](/docs/directorymanager/11.0/signin/helpdesk/history.md) topic. - (Notice that the **Filter(s)** dialog box displays the selected function in the **Action Type** - box.) -- By default, data is displayed for the last one week. You can view activity summary for any - specific period. Click the tile showing the time period to launch the calendar. Use it to specify - a date range to view the data. -- By default, data for all the activities is displayed. Click an activity name at the bottom of the - graph to hide its data. The name is struck out, indicating that data for the activity is not - depicted on the graph. Click the activity name again to display its data on the graph. - -**See Also** - -- [Navigation](/docs/directorymanager/11.0/signin/concepts/navigation.md) diff --git a/docs/directorymanager/11.0/signin/concepts/globalpool.md b/docs/directorymanager/11.0/signin/concepts/globalpool.md deleted file mode 100644 index 4bf3af340b..0000000000 --- a/docs/directorymanager/11.0/signin/concepts/globalpool.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "Manage the Global Question Pool" -description: "Manage the Global Question Pool" -sidebar_position: 90 ---- - -# Manage the Global Question Pool - -GroupID provides a list of predefined security questions for enrollment and authentication. You can -update this list by adding or removing questions. - -When an identity store is created, four questions from this global pool are automatically added to -the identity store's local question pool. This pool is not shared with other identity stores. - -What do you want to do? - -- [Add a Question to the Question Pool](#add-a-question-to-the-question-pool) -- [Remove a Question from the Question Pool](#remove-a-question-from-the-question-pool) - -## Add a Question to the Question Pool - -1. In Admin Center, click **Settings** at the bottom of the left navigation pane. -2. On the **GroupID Settings** page, click the **Question Pool** tab. -3. To add a question, click **Add New Question**. -4. On the **Add New Question** dialog box, type a security question in the **Question** box and - click **Add Question**."The new question is displayed on the **Question Pool** tab. Questions are - sorted in alphabetical order. - -**Search a question in the list:** - -To search for a security question in the list, enter a search string in the search box and press -**Enter**. Questions that contain the string will be filtered. - -## Remove a Question from the Question Pool - -1. In Admin Center, click **Settings** at the bottom of the left navigation pane. -2. On the **GroupID Settings** page, click the **Question Pool** tab. -3. On the **Question Pool** tab, click **Delete** for a question to delete it. -4. Click **Delete** on the **Delete Question** dialog box. - Deleting a question does not impact the users currently enrolled with the question. - -**See Also** - -- [Set up Authentication via Security Questions](/docs/directorymanager/11.0/signin/authpolicy/setupauth/securityquestions.md) -- [Set a Password Policy ](/docs/directorymanager/11.0/signin/securityrole/policy/password.md) -- [Manage the Local Question Pool](/docs/directorymanager/11.0/signin/identitystore/configure/securityquestions.md) diff --git a/docs/directorymanager/11.0/signin/concepts/history.md b/docs/directorymanager/11.0/signin/concepts/history.md deleted file mode 100644 index 81b9f16b80..0000000000 --- a/docs/directorymanager/11.0/signin/concepts/history.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: "History in GroupID" -description: "History in GroupID" -sidebar_position: 30 ---- - -# History in GroupID - -In GroupID, history is tracked for: - -- **Admin Center -** Actions performed in Admin Center, such as creating identity stores, SMS - gateway accounts, changes to notification templates, and more. -- **Helpdesk -** Helpdesk-specific actions, such as account unlock and enrollment. -- **Identity store configurations -** Changes made to identity store configurations, including - changes to security roles and workflows. -- **Identity store objects -** Modifications made to objects in an identity store, such as creating - objects, updating attributes for an object, etc. It includes modifications made through: - - - GroupID portal (whether manually, through Synchronize jobs. or changes to object entitlements) - - GroupID Management Shell cmdlets - - GroupID mobile app - - GroupID Admin Center (actions performed by schedules only) - - GroupID APIs - -Enabling history tracking - -History for Admin Center and helpdesk is tracked by default and you cannot disable it. - -However, history for identity store configurations and objects is disabled by default. You can -enable it for an identity store as well as choose to track all or specific actions. See the -[Configure History Tracking](/docs/directorymanager/11.0/signin/identitystore/configure/historytracking.md) -topic. - -Where is history displayed? - -- History for Admin Center, helpdeak, and identity store configurations is displayed in Admin - Center, each displayed on separate pages. -- History for identity store objects is displayed in the GroupID portal. - -History Retention - -The _history retention_ setting for an identity store enables you to choose whether you want to keep -history data forever or for a specific period. See the -[Retain Complete History Data](/docs/directorymanager/11.0/signin/identitystore/configure/historytracking.md#retain-complete-history-data) -and -[Retain History for a Specific Period](/docs/directorymanager/11.0/signin/identitystore/configure/historytracking.md#retain-history-for-a-specific-period) -topics. Your desired setting applies to all history tracked for the respective identity store, -including that tracked for helpdesk and Admin Center. - -NOTE: Actions tracked under Admin Center history are independent of an identity store. In this case, -history retention settings apply to a history item in the context of the identity store selected by -the user to log into Admin Center to perform that action. -**Example:** UserA selects IdentityStoreA to sign into Admin Center and creates an SMS gateway -account. This user then selects IdentityStoreB to sign into Admin Center and creates a GroupID -portal. Both actions are logged in Admin Center history. However, history retention setting of -IdentityStoreA will apply to the SMS gateway account creation action and that of IdentityStoreB will -apply to the GroupID portal creation action. - -Event Logging - -In addition to history tracking, GroupID provides event logging, which includes file logging and -Windows logging for GroupID clients and services. See the -[Event Logging](/docs/directorymanager/11.0/signin/identitystore/view/eventlogging.md) -topic. - -**See Also** - -- [Admin Center History](/docs/directorymanager/11.0/signin/concepts/history_1.md) -- [History in Helpdesk](/docs/directorymanager/11.0/signin/helpdesk/history.md) -- [Identity Store History](/docs/directorymanager/11.0/signin/identitystore/view/view.md) - (for identity store configurations, workflows, and security roles) -- [History](/docs/directorymanager/11.0/welcome/history/overview.md) (for directory objects) diff --git a/docs/directorymanager/11.0/signin/concepts/history_1.md b/docs/directorymanager/11.0/signin/concepts/history_1.md deleted file mode 100644 index b3b8a409cc..0000000000 --- a/docs/directorymanager/11.0/signin/concepts/history_1.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: "Admin Center History" -description: "Admin Center History" -sidebar_position: 40 ---- - -# Admin Center History - -GroupID auto tracks the following actions performed in Admin Center: - -- Creation and deletion of identity store -- Creation and deletion of SMS gateway accounts -- Creation and deletion of applications, namely GroupID portal, Mobile service, Data service, and - Security service -- Addition and removal of security questions in the global question pool -- Changes to global replication settings -- Manual sending and deletion of notifications in the notification queue -- Modifications to notification templates - -History can be viewed using the **History** node in Admin Center. You can: - -- Annotate a history action that you have performed. These annotations may explain the reason for - performing an action. -- Narrow down the history items using filters. -- Export history data to Microsoft Excel, CSV, and XML formats. - -What do you want to do? - -- [View Admin Center History](#view-admin-center-history) -- [Annotate History Items](#annotate-history-items) -- [Export Admin Center History](#export-admin-center-history) - -## View Admin Center History - -You can view the history data that GroupID auto tracks for high level actions performed in Admin -Center. - -To view history: - -1. In Admin Center, click **History** in the left pane. - The **Admin Center History** page displays history data in a descriptive, concise, and - user-friendly manner. Items are sorted according to the date and time, with the most recent at - the top. -2. Click a history item to view its details. The **History Details** dialog box displays the - following: - - **Object Name:** The name of the object the action was performed on. - - **Who:** The name of the user who performed the action. - - **Where:** The name of the computer the action was performed on. - - **When:** The date and time of the action. - - **Added Item(s):** A short description of the action. - - **Removed Item(s):** This box is displayed for actions showing deletion. It displays a short - description of the action. -3. The **Add Note** button is available if you performed this action. See - [Annotate History Items](/docs/directorymanager/11.0/signin/identitystore/view/details.md#annotate-history-items) - to manage notes. -4. Click **Close**. - -### Filter History Data - -Filters on the **Admin Center History** page are similar to those on the **Identity Store History** -page. Refer to the -[Filter History Data](/docs/directorymanager/11.0/signin/identitystore/view/view.md#filter-history-data) -topic to apply the filters. - -### Navigate the History Data - -Navigation options on the **Admin Center History** page are similar to those on the **Identity Store -History** page. Refer to the -[Navigate Through History Items](/docs/directorymanager/11.0/signin/identitystore/view/view.md#navigate-through-history-items) -topic for help. - -## Annotate History Items - -1. In Admin Center, click **History** in the left pane. -2. On the **Admin Center History** page, click a history item and proceed to add a note. See the - [Annotate History Items](/docs/directorymanager/11.0/signin/identitystore/view/details.md#annotate-history-items) - topic for details. - -## Export Admin Center History - -You can export Admin Center history to Microsoft Excel, CSV, and XML formats. - -**To export history:** - -1. In Admin Center, click **History** in the left pane. -2. On the **Admin Center History** page, click **Export History**. -3. On the **Export History** dialog box, enter a name for the history file in the **Name** box or - leave it to default. -4. Select a format for the history file in the **Format** drop-down list. Available formats are - Excel, CSV, and XML -5. Click **Export History**. The file is saved at the download location specified in browser - settings. -6. A message is displayed that history data is successfully exported. Click **OK**. - -**See Also** - -- [History in GroupID](/docs/directorymanager/11.0/signin/concepts/history.md) -- [Event Logging](/docs/directorymanager/11.0/signin/identitystore/view/eventlogging.md) diff --git a/docs/directorymanager/11.0/signin/concepts/licensing.md b/docs/directorymanager/11.0/signin/concepts/licensing.md deleted file mode 100644 index a972460989..0000000000 --- a/docs/directorymanager/11.0/signin/concepts/licensing.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: "License GroupID" -description: "License GroupID" -sidebar_position: 80 ---- - -# License GroupID - -You can license GroupID under one or more of these license types: - -- **Suite** - enables access to all GroupID functionality and its clients, including the GroupID - portal, mobile app, Management Shell, and APIs. -- **Group Management** - enables access to all the group management features in GroupID, except - those licensed under add-ons. -- **User Management** - enables access to all the user management features in GroupID, except those - licensed under add-ons. -- **Password Management** - enables access to password management functions in GroupID, that are: - - - Account unlock and password reset by both end users and helpdesk - - Multifactor authentication - - Second way authentication - -- **Add-ons** - licenses for the following add-ons are available: - - - **API** - separate licenses are required for user-specific and group-specific APIs. - - **Workflow** - enables you to create new workflows, update existing workflows, specify a - default approver, and delete workflow requests. Separate licenses are required for - user-specific and group-specific workflows. - - **Workflow Acceleration** - enables you to use the workflow approver acceleration function. - Separate licenses are required to accelerate user-specific and group-specific workflows. - - **Management Shell** - separate licenses are required for user-specific and group-specific - cmdlets. - - **Entitlement** - separate licenses are required to manage entitlements for users and groups. - - **Synchronize Jobs** - separate licenses are required for user-specific and group-specific - Synchronize jobs. - - **Group Lifecycle** - required to run the Group Lifecycle schedule in the identity stores. - - **Dynamic Groups** - required to create and manage Smart Groups and Dynasties in GroupID. - - **Power Automate** - enables you to integrate GroupID workflows with Power Automate flows. - Separate licenses are required for integrating user-specific and group-specific workflows. - - **Group Usage Service** - required to run the Group Usage Service schedule in the identity - stores. - - **Group Attestation** - required to enable the group attestation function in the identity - stores. - - **Linked Identity Stores** - required to manage identical user objects and identical group - objects in the identity store(s). It works as follows with other GroupID licenses: - - - **Suite License**: enables the linked identity stores feature fully functional. You can - manage your linked identities. In case of an Active Directory identity store and Microsoft - Entra ID identity store link, you can manage entitlements of File Servers and SharePoint - sites also. - - **Group Management license**: enables you to manage identical groups in the linked - identity store(s) and auto sync them. - - **User Management license**: enables you to manage identical user objects in the linked - identity store(s) and auto sync them. - - **Password Management license**: the linked identity stores feature works in preview mode. - -A license is valid for a period of 12 months. - -NOTE: All the above licenses are also available for a trial period. - -NOTE: Licenses for certain add-ons are dependent on other licenses, such as the Group Attestation -license is dependent on the Group Usage Service license, which in turn is dependent on the Group -Management license. - -What happens when your license expires - -When a license expires, its respective functions get read-only but you can configure certain -settings, such as create identity stores, create data sources, and define replication settings. -Moreover, unlicensed functions are displayed with a yellow icon next to them. On hovering the mouse -over the icon, a message is displayed with two buttons: **Learn more** and **Upgrade**. Both buttons -redirect you to the -[Group and User Management Software from Netwrix](https://www.netwrix.com/group_and_user_management_software.html) -page, where you can learn more about GroupID and purchase or renew your GroupID licenses. - -What do you want to do? - -- [Add a License](#add-a-license) -- [Update a License](#update-a-license) -- [Remove a License](#remove-a-license) - -## Add a License - -1. In Admin Center, click **Settings** at the bottom of the left navigation pane. -2. On the **Licensing Settings** tab of the **GroupID Settings** page, click **Add New License**. -3. Enter a valid license number and key for your product copy in the respective boxes. A valid - license and key enable the **Add License** button; if it remains disabled, check your entries for - errors. -4. Click **Add License**. - - License details are displayed on the **Licensing Settings** tab as: - - - **Status:** the license status as _Valid_ or _Expired_ - - **Module:** the license type, such as _Suite_ or _Group Management_ - - **Expire:** the expiration date of the license - - **License(s):** the number of users covered under the license - - **Actions:** displays the _Edit_ and _Delete_ icons, enabling you to update or remove the - license accordingly. - -5. If you have multiple GroupID licenses, repeat steps 2 – 4 for each license. - -## Update a License - -1. In Admin Center, click **Settings** at the bottom of the left navigation pane. -2. On the **Licensing Settings** tab of the **GroupID Settings** page, click **Edit** for a license - in the **Actions** column to update it. -3. On the **Update/Replace License** dialog box, update the license number and key. -4. Click **Update** to save the changes. - -## Remove a License - -On removing a license, users lose all access to the functionality covered under the license. - -NOTE: A dependent license is rendered ineffective when you remove its parent license. - -To remove a license: - -1. In Admin Center, click **Settings** at the bottom of the left navigation pane. -2. On the **Licensing Settings** tab of the **GroupID Settings** page, click **Delete** for a - license in the **Actions** column to remove it. diff --git a/docs/directorymanager/11.0/signin/concepts/logs.md b/docs/directorymanager/11.0/signin/concepts/logs.md deleted file mode 100644 index 38b952e1ce..0000000000 --- a/docs/directorymanager/11.0/signin/concepts/logs.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: "Get Logs" -description: "Get Logs" -sidebar_position: 100 ---- - -# Get Logs - -GroupID generates logs for its services, clients, and Windows events, which are saved at different -locations on the network. Rather than locating these log files in their respective folders, you can -collect and dump your required logs to a desired location. - -What do you want to do? - -- [Get Log Files](#get-log-files) - -## Get Log Files - -1. In Admin Center, click **Settings** at the bottom of the left navigation pane. -2. On the **GroupID Settings** page, click the **Logs** tab. -3. On the **Logs** tab: - -- On the **Applications** card, select the check boxes for the GroupID services and portals that you - want to fetch the logs for. To select all options, select the **Select All** check box on the - card. - Each application has a _file logging_ level set for it. Log files generated against file logging - will be fetched. - - - For applications deployed in native IIS, logs will be fetched from the GroupID server. - - For applications deployed in remote IIS, logs will be fetched from the remote IS machine. - - For applications deployed in Docker, logs will be fetched from the machine running Docker - daemon. - -- On the **Tools & Management Shell** card, select the check boxes for Management Shell and the - GroupID tools that you want to fetch the logs for. To select all options, select the **Select - All** check box on the card. Logs will be fetched from the local machine. If you have not used - Management Shell or a tool on the machine, its respective logs will not be available. -- On selecting the **Event Viewer** check box on the **Event Viewer** card, the **Logs** button is - enabled. Click it to launch the **Select Event Viewer Logs** dialog box, that displays all logs - maintained by Windows Event Viewer on the local machine. Select the check boxes for the required - logs and click **OK**. - -4. Click **Download**. - GroupID creates a zipped file containing the selected logs and saves it to the download location - set in browser settings. - -**See Also** - -- [Event Logging](/docs/directorymanager/11.0/signin/identitystore/view/eventlogging.md) -- For a Portal - - [Manage Log Settings](/docs/directorymanager/11.0/signin/applications/portal/server/log.md) diff --git a/docs/directorymanager/11.0/signin/concepts/navigation.md b/docs/directorymanager/11.0/signin/concepts/navigation.md deleted file mode 100644 index 185efe7a98..0000000000 --- a/docs/directorymanager/11.0/signin/concepts/navigation.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: "Navigation" -description: "Navigation" -sidebar_position: 20 ---- - -# Navigation - -On signing into Admin Center, you land on the dashboard. - -Use the following to navigate the application: - -- [Quick Search](#quick-search) -- [Top Right Options](#top-right-options) -- [Menu Pane](#menu-pane) - -## Quick Search - -The search box is displayed at the top. Use it to perform a quick search and directly navigate to -different pages of the application. You can search for GroupID settings and configurations, and -directly navigate to your required pages. - -When you perform a search, it looks up the following in Admin Center: - -- Identity stores - You can use quick links to navigate to different pages in an identity store, - such as workflows, schedules, and security roles. -- SMS gateway accounts -- GroupID applications - GroupID portals, Data services, Security services, and Mobile services -- Admin Center pages, such as the Replication, Notifications and Licensing pages -- Admin Center functions, such as restore replication, unlock account, etc. Clicking an action - redirects you to the relevant page. - -**To perform a search:** - -1. In Admin Center, enter a search string in the Search box at the top of the page. - A list of matched items is displayed as you type. For example, as you type ‘ta’, it shows: - - ![quick_search](/images/directorymanager/11.0/admincenter/general/quick_search.webp) - -2. On clicking **Quick Actions** for an identity store, it displays the settings available for the - identity store. Click an option to navigate to it. - -## Top Right Options - -The top right corner of the application displays the following: - -| Icon | Description | -| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Help icon | Click it to launch Admin Center help. | -| Manage SAML icon | Click it to launch the Authenticate panel, where you can: - Set up GroupID as a service provider. GroupID can integrate with several single sign-on (SSO) solutions that support the SAML 2.0 standard. - Set up GroupID as an identity provider. See the [Authenticate](/docs/directorymanager/11.0/authenticate/overview.md) topic. | -| Profile icon | Displays your profile picture with your name and the identity store that Admin Center is connected to. Click it to launch a menu that displays the GroupID version and the security role assigned to you in GroupID. The menu also displays options to change your password, access your applications, and sign out of Admin Center. | - -## Menu Pane - -The menu pane in the left enables you to navigate to different functions in Admin Center. - -| Menu Option | Description | -| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Dashboard | Displays the latest values for GroupID KPIs. | -| Identity Stores | Displays the identity stores defined in GroupID. You can: - Create identity stores - Manage the security roles and settings for an identity store - Link identity stores | -| Data Sources | Enables you to create and manage data sources to be used as source and destination in Synchronize jobs, in query-based searches, and in group membership queries. | -| Replication | Controls global replication settings that apply to all identity stores. | -| Notifications | Displays the queued notifications for all identity stores. It also provides access to the Notification Editor. | -| Helpdesk | Enables helpdesk users to perform password reset, account unlock, and account unenroll operations for identity store users. | -| Applications | Enables you to create GroupID applications, namely: - GroupID portal - Data service - Security service - Mobile service (for the GroupID mobile app) You can also manage the following: - Admin Center deployment - Replication service - Email service - Scheduler service | -| History | Displays history for major actions performed in Admin Center, such as identity store creation, changes to notification templates, and more. | -| SMS Gateways | Allows you to create SMS gateway accounts that GroupID uses to send text messages to the users’ mobile numbers. | -| Notification Editor | Lists templates for GroupID-generated notifications. These templates apply to all identity stores. | -| Settings | Lets you manage the following: - GroupID licensing - Global pool of security questions - GroupID logs | - -**See Also** - -- [Dashboard](/docs/directorymanager/11.0/signin/concepts/dashboard.md) -- [Change your Password](/docs/directorymanager/11.0/signin/concepts/changepassword.md) -- [Switch Accounts](/docs/directorymanager/11.0/signin/concepts/switchaccount.md) -- [Access your Applications](/docs/directorymanager/11.0/signin/concepts/accessapplications.md) diff --git a/docs/directorymanager/11.0/signin/concepts/switchaccount.md b/docs/directorymanager/11.0/signin/concepts/switchaccount.md deleted file mode 100644 index f6231b5509..0000000000 --- a/docs/directorymanager/11.0/signin/concepts/switchaccount.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "Switch Accounts" -description: "Switch Accounts" -sidebar_position: 60 ---- - -# Switch Accounts - -You do not need to sign out of Admin Center in order to sign in with a different account. Simply use -the _switch account_ function to achieve this. - -What do you want to do? - -- [Switch your Account](#switch-your-account) - -## Switch your Account - -1. In Admin Center, click your name in the top right corner and select **Switch Account**. The next - page lists the accounts you have used to sign into Admin Center and the GroupID portal. -2. Do one of the following: - - Click an account to access Admin Center with it, without having to provide the password. - - Click **Login as a different user** to sign in with an account not listed on this page. - - Click **Logout completely** to sign out of all the accounts listed on this page. - -**See Also** - -- [Dashboard](/docs/directorymanager/11.0/signin/concepts/dashboard.md) -- [Navigation](/docs/directorymanager/11.0/signin/concepts/navigation.md) diff --git a/docs/directorymanager/11.0/signin/datasource/_category_.json b/docs/directorymanager/11.0/signin/datasource/_category_.json deleted file mode 100644 index 83c05a2b71..0000000000 --- a/docs/directorymanager/11.0/signin/datasource/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Data Sources", - "position": 50, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/datasource/create.md b/docs/directorymanager/11.0/signin/datasource/create.md deleted file mode 100644 index 136060a6f0..0000000000 --- a/docs/directorymanager/11.0/signin/datasource/create.md +++ /dev/null @@ -1,338 +0,0 @@ ---- -title: "Create a Data Source" -description: "Create a Data Source" -sidebar_position: 10 ---- - -# Create a Data Source - -You can create Synchronize jobs to synchronize data across different providers. As a prerequisite, -you must create data sources for those providers. - -Data sources are primarily used in Synchronize jobs, but you can also use them in queries to search -for directory objects and in queries for group membership update. - -What do you want to do? - -- [Create a Data Source for MS Excel](#create-a-data-source-for-ms-excel) -- [Create a Data Source for MS Access](#create-a-data-source-for-ms-access) -- [Create a Data Source for Oracle](#create-a-data-source-for-oracle) -- [Create a Data Source for SQL Server](#create-a-data-source-for-sql-server) -- [Create a Data Source for a Text/CSV File](#create-a-data-source-for-a-textcsv-file) -- [Create a Data Source for ODBC](#create-a-data-source-for-odbc) -- [Create a Data Source for SCIM](#create-a-data-source-for-scim) - -## Create a Data Source for MS Excel - -Create a data source for an Excel file to establish a connection before using it as a source or -destination in Synchronize jobs, or in queries. GroupID enables you to connect to an Excel file that -is placed on a local server or on OneDrive. - -Synchronize supports Microsoft Excel (\*.xls | xlsx) to serve as both a source and destination -provider. Use it as destination in a Synchronize job to export data from a source to a new Excel -worksheet. The schema of the new Excel worksheet is automatically built according to fields that you -select from the source to map to the destination. - -The GroupID Installer installs the required components for the MS Excel provider while installing -GroupID. However, if you experience any issue, make sure the following are installed on the GroupID -server: - -- Microsoft Office 2007 or later -- Data connectivity components found at - [Microsoft Access Database Engine 2016 Redistributable](https://www.microsoft.com/en-us/download/details.aspx?id=54920). - -The Excel file for creating a data source can be placed on a local server or OneDrive. Follow the -steps in the respective section to create a data source. - -- [When the Excel File is Located on a Local Server ](#when-the-excel-file-is-located-on-a-local-server) -- [When the Excel file is located on OneDrive](#when-the-excel-file-is-located-on-onedrive) - -### When the Excel File is Located on a Local Server - -1. In Admin Center, click **Data Sources** in the left pane. -2. On the **Data Sources** page, click **Create Data Source** in the top right corner. The **Create - Data Source** page is displayed. -3. In the **Data Source Type** drop-down list, select a provider type to create a data source for. - This list displays the supported providers. Select _Microsoft Excel_. -4. Enter a name for the data source in the **Name** box. -5. From the **File Server** drop-down list, select _Local Server_. -6. In the **File Path** box, provide the path to the MS Excel file you want to create the data - source for. This path should be complete with the file name and extension. For example: - D:\Employee Records\Sheets\EmployeeMedical Records.xlsx - - NOTE: The MS Excel file must be placed either on the machine that Data service is installed on, - or a location that Data service can access. - -7. In case the file is placed on a network path, enter the network domain or hostname in the - **Domain/Hostname** box. -8. In the **User Account** and **Password** boxes, enter the username and password of an account to - access the file on the network path. -9. Click **Create Data Source**. - The data source is available on the **Excel** tab of the **Data Sources** page. - -### When the Excel file is located on OneDrive - -1. Start by following steps 1-4 in the - [When the Excel File is Located on a Local Server ](#when-the-excel-file-is-located-on-a-local-server)topic. -2. From the **File Server** drop-down list, select _OneDrive_. -3. In the **Service Account** and **Service Account Password** boxes, enter the username and - password of a service account to access the file on OneDrive. -4. In the **Registered Application ID on Azure Active Directory** box, enter the application ID - assigned to the GroupID application when you registered it in Microsoft Entra Admin Center. - - NOTE: The registered app must have the following API permissions to access files on OneDrive: - ![excel_-_one_drive](/images/directorymanager/11.0/admincenter/datasource/excel_-_one_drive.webp) - -5. In the **Registered Tenant ID on Azure Active Directory** box, enter the tenant ID assigned to - the GroupID application when you registered it in Microsoft Entra Admin Center. -6. Enter the name of the file in the **File Name** box. This name should be complete with the file - extension, for example, Employee Contact Details.xlsx -7. Click **Create Data Source**. - The data source is available on the **Excel** tab of the **Data Sources** page. - -## Create a Data Source for MS Access - -Create a data source for an Access database to establish a connection before using it as a source or -destination in Synchronize jobs, or in queries. GroupID enables you to connect to an Access file -that is placed on a local server or on OneDrive. - -Synchronize supports Microsoft Access (.mdb | .accdb) to serve as both a source and destination -provider. - -The MS Access provider supports automatic schema detection. For Synchronize to communicate with this -provider, data connectivity components must be installed on the GroupID server. These components can -be found at -[Microsoft Access Database Engine 2016 Redistributable](https://www.microsoft.com/en-us/download/details.aspx?id=54920). - -The Access file for creating a data source can be placed on a local server or OneDrive. Follow the -steps in the respective section to create a data source. - -- [When the Access File is Located on a Local Server](#when-the-access-file-is-located-on-a-local-server) -- [When the Access File is Located on OneDrive](#when-the-access-file-is-located-on-onedrive) - -### When the Access File is Located on a Local Server - -1. In Admin Center, click **Data Sources** in the left pane. -2. On the **Data Sources** page, click **Create Data Source** in the top right corner. The **Create - Data Source** page is displayed. -3. In the **Data Source Type** drop-down list, select a provider type to create a data source for. - This list displays the supported providers. Select _Microsoft Access_. -4. Enter a name for the data source in the **Name** box. -5. From the **File Server** drop-down list, select _Local Server_. -6. In the **File Path** box, provide the path to the MS Access database you want to create the data - source for. This path should be complete with the file name and extension. For example: - D:\Employee Records\Databases\Employee Medical Records.accdb - - NOTE: The Access database must be located either on the machine that Data service is installed - on, or a location that Data service can access. - -7. If the database file is password protected, then enter the password in the **File Password** box. -8. In case the database file is placed on a network path, enter the network domain or hostname in - the **Domain/Hostname** box. -9. In the **User Account** and **Account Password** boxes, enter the username and password of an - account to access the database file on the network path. -10. Click **Create Data Source**. - The data source is available on the **Access** tab of the **Data Sources** page. - -### When the Access File is Located on OneDrive - -1. Start by following steps 1-4 in the - [When the Access File is Located on a Local Server](#when-the-access-file-is-located-on-a-local-server)[When the Access File is Located on a Local Server](#when-the-access-file-is-located-on-a-local-server)topic. -2. From the **File Server** drop-down list, select _OneDrive_. -3. In the **Service Account** and **Service Account Password** boxes, enter the username and - password of a service account to access the file on OneDrive. -4. If the database file is password protected, then enter the password in the **File Password** box. -5. In the **Registered Application ID on Azure Active Directory** box, enter the application ID - assigned to the GroupID application when you registered it in Microsoft Entra Admin Center. - - NOTE: The registered app must have the following API permissions to access files on OneDrive: - ![access](/images/directorymanager/11.0/admincenter/datasource/excel_-_one_drive.webp) - -6. In the **Registered Tenant ID on Azure Active Directory** box, enter the tenant ID assigned to - the GroupID application when you registered it in Microsoft Entra Admin Center. -7. Enter the name of the file in the **File Name** box. This name should be complete with the file - extension, for example, Employee Medical Records.accdb. -8. Click **Create Data Source**. - The data source is available on the **Access** tab of the **Data Sources** page. - -## Create a Data Source for Oracle - -You can create a data source for an Oracle server or a specific database on a server. This data -source can be used in queries and as source and destination provider in Synchronize jobs. This -provider supports dynamic schema detection. - -NOTE: Oracle client must be installed to use this provider. Make sure you reboot your computer after -installing the Oracle client. - -**To create a data store:** - -1. In Admin Center, click **Data Sources** in the left pane. -2. On the **Data Sources** page, click **Create Data Source** in the top right corner. The **Create - Data Source** page is displayed. -3. In the **Data Source Type** drop-down list, select a provider type to create a data source for. - This list displays the supported providers. Select _Oracle_. -4. Enter a name for the data source in the **Name** box. -5. In the **Oracle Server or Service Name** box, enter the name of the Oracle service or the server - you want to create the data source for. -6. In the **Service Account** and **Service Account Password** boxes, provide the username and - password of a service account to connect to the Oracle server. - When using this data source in a Synchronize job, the user will be able to select the databases - that are accessible with these credentials. -7. In the **Protocol** box, specify the protocol to use for connecting to the database(s) on the - Oracle server. For example, TCP or TCP/IP. -8. In the **HostName** box, enter the name of the machine that hosts the Oracle server. -9. In the **Port Number** box, enter the port configured for the Oracle server. This port is used to - communicate with the oracle server. -10. In the **Database or Schema (optional)** box, specify the name of the database you want to - create the data source for. You may also leave this field blank. In that case, all databases on - the specified server will be displayed to the user in a Synchronize job. The user can select a - database as needed. -11. Click **Create Data Source**. - The data source is available on the **Oracle** tab of the **Data Sources** page. - -## Create a Data Source for SQL Server - -GroupID enables you to create a data source for an SQL database. This data source can be used in -queries and as source and destination in Synchronize jobs. This provider supports dynamic schema -detection. - -**To create a data source:** - -1. In Admin Center, click **Data Sources** in the left pane. -2. On the **Data Sources** page, click **Create Data Source** in the top right corner. The **Create - Data Source** page is displayed. -3. In the **Data Source Type** drop-down list, select a provider type to create a data source for. - This list displays the supported providers. Select _SQL Server_. -4. Enter a name for the data source in the **Name** box. -5. The SQL database for which you want to create a data source resides on an SQL server. Enter the - name or IP address of this SQL server in the **SQL Server Name** box. -6. By default, SQL authentication is used as an authentication mode to connect to the SQL server. In - this case, the **Service Account** and **Service Account Password** boxes are enabled. Enter the - username and password of an SQL server account to connect to the SQL server in the respective - boxes. -7. To use Windows authentication to connect to the SQL server using a Windows account, select the - **Windows Authentication** check box. With Windows authentication, users are already logged onto - Windows and do not have to log on separately to SQL Server. -8. In the **SQL Server Database Name** box, specify the SQL database to create a data source for. -9. Click **Create Data Source**. - The data source is available on the **MS SQL Server** tab of the **Data Sources** page. - -## Create a Data Source for a Text/CSV File - -You can create a data source for a comma-separated values (.csv) file or a text (.txt) file. You -must also specify the delimiter used in the file to separate values. - -This data source can be used in queries and only as a source in Synchronize jobs. - -GroupID enables you to connect to a text file that is placed on a local server or on OneDrive. -Follow the steps in the respective section to create a data source. - -- [When the Text File is Located on a Local Server](#when-the-text-file-is-located-on-a-local-server) -- [When the Text File is Located on OneDrive](#when-the-text-file-is-located-on-onedrive) - -### When the Text File is Located on a Local Server - -1. In Admin Center, click **Data Sources** in the left pane. -2. On the **Data Sources** page, click **Create Data Source** in the top right corner. The **Create - Data Source** page is displayed. -3. In the **Data Source Type** drop-down list, select a provider type to create a data source for. - This list displays the supported providers. Select _Text/CSV_. -4. Enter a name for the data source in the **Name** box. -5. From the **File Server** drop-down list, select _Local Server_. -6. In the **File Path** box, provide the path to the text file you want to create the data source - for. This path should be complete with the file name and extension. For example: - D:\Employee Records\Sheets\Employee Medical Records.csv - - NOTE: The text file must be placed either on the machine that Data service is installed on, or a - location that Data service can access. - -7. In the **Delimiter** box, specify the character that is used to separate values in the file. You - can also enter a space as a character. -8. In case the file is placed on a network path, enter the network domain or hostname in the - **Domain/Hostname (Optional)** box. -9. In the **Username (Optional)** and **Password (Optional)** boxes, enter the username and password - of an account to access the file on the network path. -10. Click **Create Data Source**. - The data source is available on the **Text/CSV** tab of the **Data Sources** page. - -### When the Text File is Located on OneDrive - -1. Start by following steps 1-4 in the - [When the Text File is Located on a Local Server](#when-the-text-file-is-located-on-a-local-server)[When the Text File is Located on a Local Server](#when-the-text-file-is-located-on-a-local-server)topic. -2. From the **File Server** drop-down list, select _OneDrive_. -3. In the **Service Account** and **Service Account Password** boxes, enter the username and - password of a service account to access the file on OneDrive. -4. In the **Delimiter** box, specify the character that is used to separate values in the file. You - can also enter a space as a character. -5. In the **Registered Application ID on Azure Active Directory** box, enter the application ID - assigned to the GroupID application when you registered it in Microsoft Entra Admin Center. - - NOTE: The registered app must have the following API permissions to access files on OneDrive: - ![textcsv-onedrive](/images/directorymanager/11.0/admincenter/datasource/excel_-_one_drive.webp) - -6. In the **Registered Tenant ID on Azure Active Directory** box, enter the tenant ID assigned to - the GroupID application when you registered it in Microsoft Entra Admin Center. -7. Enter the name of the file in the **File Name** box. This name should be complete with the file - extension, for example, “Employee Contact Details.csv”. -8. Click **Create Data Source**. - The data source is available on the **Text/CSV** tab of the **Data Sources** page. - -## Create a Data Source for ODBC - -Use an ODBC data source to connect to an ODBC-compatible provider, such as databases, directories, -or even files. Examples include SQL server, MS Access files, and Oracle. - -A separate data source should be created for each ODBC-compatible file, database, or directory you -want to use in queries or as source/destination in Synchronize jobs. - -**To create a data source:** - -1. In Admin Center, click **Data Sources** in the left pane. -2. On the **Data Sources** page, click **Create Data Source** in the top right corner. The **Create - Data Source** page is displayed. -3. In the **Data Source Type** drop-down list, select a provider type to create a data source for. - This list displays the supported providers. Select _ODBC_. -4. Enter a name for the data source in the **Name** box. -5. Enter the DSN name in the **DSN** box. GroupID uses this name to request a connection to the ODBC - data source. Note the following: - - - For a system DSN, simply provide the name of the DSN. - - For a file DSN, provide the file path with file name and extension. - -6. Select the **System DSN** or **File DSN** option button to specify the DSN type to use for - connecting to the data source. -7. In case the data source is password protected, provide a username and password in the **Service - Account** and **Service Account Password** boxes to access it. - Depending on the data source, you may not necessarily have to provide both a username and - password. For example, an MS Access database may need a password only while an SQL server may - require both username and password. -8. Click **Create Data Source**. - The data source is available on the **ODBC** tab of the **Data Sources** page. - -## Create a Data Source for SCIM - -GroupID supports identity providers, namely Active Directory, Microsoft Entra ID, and Google -Workspace, but it does not support Slack, AWS, JumpCloud, and GitHub. You can create a SCIM-based -data source for these and other providers to use them in queries and as source/destinations in -Synchronize jobs. As a prerequisite, the provider must support SCIM and expose an endpoint URL that -GroupID can consume. - -**To create a data source:** - -1. In Admin Center, click **Data Sources** in the left pane. -2. On the **Data Sources** page, click **Create Data Source** in the top right corner. The **Create - Data Source** page is displayed. -3. In the **Data Source Type** drop-down list, select a provider type to create a data source for. - This list displays the supported providers. Select _SCIM_. -4. Enter a name for the data source in the **Name** box. -5. In the **SCIM Endpoint** box, enter the SCIM endpoint URL exposed by the provider for which you - want to create a data source. -6. In the **Bearer Token** box, enter the authentication token you generated in the provider. -7. Click **Create Data Source**. - The data source is available on the **SCIM** tab of the **Data Sources** page. - -See Also - -- [ Data Sources](/docs/directorymanager/11.0/signin/datasource/overview.md) -- [Manage a Data Source](/docs/directorymanager/11.0/signin/datasource/manage.md) -- [Data Service](/docs/directorymanager/11.0/signin/service/dataservice/overview.md) diff --git a/docs/directorymanager/11.0/signin/datasource/manage.md b/docs/directorymanager/11.0/signin/datasource/manage.md deleted file mode 100644 index 55d72a9c64..0000000000 --- a/docs/directorymanager/11.0/signin/datasource/manage.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: "Manage a Data Source" -description: "Manage a Data Source" -sidebar_position: 20 ---- - -# Manage a Data Source - -GroupID enables you to create data sources for various data providers. You can also update and -delete these data sources. - -What do you want to do? - -- [Search a Data Source for a Specific Provider](#search-a-data-source-for-a-specific-provider) -- [Update a Data Source](#update-a-data-source) -- [Delete a Data Source](#delete-a-data-source) - -## Search a Data Source for a Specific Provider - -You can search for a data source built on a particular provider by its name. - -**To search a data source:** - -1. In Admin Center, click **Data Sources** in the left pane. -2. On the **Data Sources** page, click the tab for a provider to search for a data source built on - it. -3. Enter a search string in the search box and press _Enter_. Data sources that contain the string - in their names are displayed. - -## Update a Data Source - -You can update the details provided for a data source, such as its display name, the service account -credentials to connect to it, and any other info you provided while creating it. - -**To update the info:** - -1. In Admin Center, click **Data Sources** in the left pane. -2. On the **Data Sources** page, click the tab for the provider the data source is built on. -3. Click **Edit** for a data source. The **Update Data Source** page is displayed, that differs by - provider. Refer to the steps for creating the respective data source to modify the info. See the - [Create a Data Source](/docs/directorymanager/11.0/signin/datasource/create.md) - topic for additional information. -4. Click **Update Data Source**. - -## Delete a Data Source - -You can delete a data source to prevent users from using it as source and destination in Synchronize -jobs. - -NOTE: Deleting a data source corrupts all Synchronize jobs, membership queries, and search queries -using that data source. - -**To delete a data source:** - -1. In Admin Center, click **Data Sources** in the left pane. -2. On the **Data Sources** page, click the tab for the provider for which you want to delete a data - source. -3. Click **Delete** for a data source to delete it. diff --git a/docs/directorymanager/11.0/signin/datasource/overview.md b/docs/directorymanager/11.0/signin/datasource/overview.md deleted file mode 100644 index b700e3d0d0..0000000000 --- a/docs/directorymanager/11.0/signin/datasource/overview.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: "Data Sources" -description: "Data Sources" -sidebar_position: 50 ---- - -# Data Sources - -You can create data sources in GroupID for the following providers, which include directories, -databases, and files: - -- MS Excel -- MS Access -- Oracle -- SQL Server -- Text/CSV (can only be used as a source in a Synchronize job) -- ODBC -- SCIM - -## Where are Data Sources Used? - -Data sources are used in the GroupID portal in the following ways: - -- **As source and destination in Synchronize jobs** - Synchronize jobs enable you to provision - objects, deprovision objects, and sync data from one data source to another. See the - [Synchronize](/docs/directorymanager/11.0/welcome/synchronize/overview.md) topic. -- **As external data source for query-based searches** - A Query Designer is used to perform - targeted searches in the directory. While creating a search query, you can combine a data source - with the directory to search for specific objects. See the - [Query Based Advanced Search](/docs/directorymanager/11.0/welcome/generalfeatures/querysearch.md) - topic. -- **As external data source for membership queries** - A Query Designer enables you to specify - membership queries for Smart Groups and Dynasties. When you specify a data source in the Query - Designer, GroupID reads records from it and fetches similar objects from the directory to add to a - group's membership. See the - [Query Designer - Database tab](/docs/directorymanager/11.0/welcome/group/querydesigner/database.md) - topic. -- **As external data source for query-based searches** - Another Query Designer is used to perform - targeted searches in the directory. While creating a search query, you can combine a data source - with the directory to search for specific objects. See the - [Query Based Advanced Search](/docs/directorymanager/11.0/welcome/generalfeatures/querysearch.md) - topic. - -See Also - -- [Create a Data Source](/docs/directorymanager/11.0/signin/datasource/create.md) -- [Manage a Data Source](/docs/directorymanager/11.0/signin/datasource/manage.md) diff --git a/docs/directorymanager/11.0/signin/entitlement/_category_.json b/docs/directorymanager/11.0/signin/entitlement/_category_.json deleted file mode 100644 index 3f24e84e75..0000000000 --- a/docs/directorymanager/11.0/signin/entitlement/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Entitlement", - "position": 70, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/entitlement/manage.md b/docs/directorymanager/11.0/signin/entitlement/manage.md deleted file mode 100644 index f88dee9067..0000000000 --- a/docs/directorymanager/11.0/signin/entitlement/manage.md +++ /dev/null @@ -1,325 +0,0 @@ ---- -title: "Manage File Servers" -description: "Manage File Servers" -sidebar_position: 10 ---- - -# Manage File Servers - -You can specify file servers in an Active Directory identity store to replicate their entitlement -data to Elasticsearch for GroupID. You can then manage these entitlements using GroupID. Entitlement -data includes the permissions granted on shared files and folders residing on these file servers. - -You can also manage certain settings for a server, such as change the service account for reading -and managing entitlements and exclude a shared folder on a file server from replication. - -What do you want to do? - -- [Specify File Servers for Entitlement Management](#specify-file-servers-for-entitlement-management) -- [Specify File Servers Outside the Criteria](#specify-file-servers-outside-the-criteria) -- [Include Future Servers for Entitlement Management](#include-future-servers-for-entitlement-management) -- [View the Shared Folders on a File Server](#view-the-shared-folders-on-a-file-server) -- [Exclude a Folder on a Server from Replication](#exclude-a-folder-on-a-server-from-replication) -- [Connect to a File Server Using a Different Account](#connect-to-a-file-server-using-a-different-account) -- [Replicate Permissions Manually](#replicate-permissions-manually) -- [Exclude a Server From Entitlement Management](#exclude-a-server-from-entitlement-management) -- [Restore a Server for Entitlement Management](#restore-a-server-for-entitlement-management) - -## Specify File Servers for Entitlement Management - -To select file servers for entitlement management, you have to specify an OU or group as criterion. -GroupID fetches server objects from the specified OU or group. Once you save it, you also get an -option to add servers from outside the criterion, such as from a different OU. - -You can also change the criterion, such as specify a different OU or group for fetching file -servers. - -**To specify a criterion for fetching file server(s):** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Entitlement** under **Settings** in the left pane to launch the **Entitlement** page. - When no file server is defined, you land on a blank page. -4. Click **Set up File Server(s)**. -5. In the **Search Criteria** area, specify a _group or container_ to fetch the server objects from. - These server objects are essentially joined to the domain the identity store is connected to. - - **Designate a container as criteria:** - - 1. Select the **Container** option button. - 2. By default, the entire directory is selected. To fetch server objects from a specific OU - rather than the entire directory, click the arrow in the box and select an OU. Then click - **Search**. Server objects residing in this OU and its nested OUs are displayed in the - **Included File Servers** area. - - **Designate a group as criteria:** - - 1. Select the **Group** option button. - 2. Enter a search string in the box to search for your required group in the directory. You can - also click **Advanced** to search the group by name, display name, and description. On - selecting a group, all server objects that are members of this group will be displayed in the - **Included File Servers** area. - -6. Click **Save** on the **Entitlement** page. - -#### File Server Details - -The following information is displayed for a file server in the **Included File Servers** area: - -- **Name:** the file server name. -- **User Name:** the user account used to connect to the file server to read and update permissions - on shared files and folders residing on the server. - - - If the service account specified for the identity store is used, the column does not display - anything. - - If you have designated a different account for this purpose, the username of the account is - displayed here. See the - [Connect to a File Server Using a Different Account](#connect-to-a-file-server-using-a-different-account) - topic. - -- **RC Status**: Displays the replication status for the server with respect to the replication - performed by the GroupID Entitlement schedule. Different statuses are: - - - **Request - ![rc_request](/images/directorymanager/11.0/admincenter/entitlement/ad/rc_request.webp):** - permission data for the file server has never been replicated to Elasticsearch. - - **Success - ![rc_success](/images/directorymanager/11.0/admincenter/entitlement/ad/rc_success.webp):** - permission data for the file server was successfully replicated when the GroupID Entitlement - schedule last ran. - - **Fail - ![rc_fail](/images/directorymanager/11.0/admincenter/entitlement/ad/rc_fail.webp):** - replication failed for the server due to an error. - - **Running - ![rc_running](/images/directorymanager/11.0/admincenter/entitlement/ad/rc_running.webp):** - the GroupID Entitlement schedule is running and replication is in progress. - -- **Last Replicated**: the date and time the GroupID Entitlement schedule last replicated - entitlement data for the file server to Elasticsearch. _N/A_ is displayed when the file server has - never been replicated. -- **Status**: Click **Get Status** to check the status of the file server, represented by the - following colors: - - - Red: The server is inactive, decommissioned, or cannot be accessed. - - Green: The server is active and accessible. - -- **Actions**: Click the ellipsis button in the **Actions** column and do one of the following: - - - Click **Edit** to view the shared folders residing on the server, include/exclude a folder for - entitlement management, and change the service account used to connect to the server for - reading and updating entitlements. - - Click **Add to Exclude Server List** to exclude the file server from entitlement management. - GroupID does not read and display entitlement data for an excluded server. - -#### Search File Servers - -The _Search Filters_ area is available in both the **Included File Servers** and **Excluded File -Servers** sections. Use it to search for a file server in the respective listing. - -1. Click on the _Search Filters_ bar to expand the filter area. -2. Specify a filter expression to search a server by name. - - 1. Select _Name_ in the **Attributes** drop-down list. This is the only attribute available for - performing a search. - 2. Select an option in the **Operators** drop-down list. - - - _Is exactly:_ Displays the server with exactly the same name as you enter in the **Value** - box. - - _Contains:_ Displays the servers whose names contain the text you enter in the **Value** - box. - - _Starts with:_ Displays the servers whose names start with the text you enter in the - **Value** box. - - _Ends with:_ Displays the servers whose names end with the text you enter in the **Value** - box. - - 3. Enter a string in the **Value** box. - -3. Click **Apply**. The file servers listing displays the servers that match the criterion. - -## Specify File Servers Outside the Criteria - -GroupID allows you to specify a group or container as criterion to fetch file servers from there for -entitlement management. But since only a single group or container can be specified as criterion, -there may be a situation where you want to specify a server from outside this criterion. To -facilitate this, GroupID enables you to search and select file servers in the domain for entitlement -management. - -**To specify a file server outside of criteria:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Entitlement** under **Settings** in the left pane. -4. On the **Entitlement** page, click **Include Servers other than Criteria**. -5. The **Find Servers** dialog box, by default, displays file servers from the entire directory that - reside outside the container or group specified as criteria. Click in the box and select an OU to - narrow down the server listing. - Select the check boxes for the file server(s) to include them for entitlement management. -6. Click **Save**. The selected servers are displayed in the **Included File Servers** area on the - **Entitlement** page. -7. Click **Save**. - -## Include Future Servers for Entitlement Management - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Entitlement** under **Settings** in the left pane. -4. On the **Entitlement** page, select the **Include all future servers** check box to ensure that - all server objects that are added to the group/container (specified in the **Search Criteria** - area) in the future are automatically displayed in the **Included File Servers** area for - entitlement data replication. -5. Click **Save**. - -## View the Shared Folders on a File Server - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Entitlement** under **Settings** in the left pane. -4. In the **Included File Servers** area on the **Entitlement** page, click the ellipsis button for - a server and select **Edit**. On the **Edit Server** dialog box: - - - The **Server Shares** area displays the shared folders on the server. - - The name of the - [GroupID Entitlement Schedule](/docs/directorymanager/11.0/signin/schedule/entitlement.md) - that computes the permissions on shared files and folders residing on the server and - replicates them to Elasticsearch, is displayed next to **Job**. - -## Exclude a Folder on a Server from Replication - -By default, GroupID computes and replicates permissions on all shared files/folders on the -configured servers. You can exclude a folder on a server from this activity. - -When a folder is excluded, its entitlement data replicated to-date is also cleared. - -**To exclude a folder:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Entitlement** under **Settings** in the left pane. -4. In the **Included File Servers** area on the **Entitlement** page, click the ellipsis button for - a server and select **Edit**. -5. On the **Edit Server** dialog box, the **Server Shares** area displays the shared folders on the - server. Clear the check box for a folder to exclude it from replication and click **Apply - Changes**. -6. Click **Save** on the **Entitlement** page. - -## Connect to a File Server Using a Different Account - -By default, the service account specified for the identity store is used to connect to a file server -for reading and managing the effective permissions assigned to objects on the shared folders. You -can designate a different account for this activity. - -**To change the service account for a file server:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Entitlement** under **Settings** in the left pane. -4. In the **Included File Servers** area on the **Entitlement** page, click the ellipsis button for - a server and select **Edit**. -5. On the **Edit Server** dialog box, you can change the service account used to connect to the - server for reading and updating permissions. The - [GroupID Entitlement Schedule](/docs/directorymanager/11.0/signin/schedule/entitlement.md), - [Entitlement Scope Schedule](/docs/directorymanager/11.0/signin/schedule/entitlementscope.md), - and - [Entitlement Temporary Permissions Schedule](/docs/directorymanager/11.0/signin/schedule/entitlementtemporarypermissions.md) - run in the context of the account specified here. - - - The **Use Identity Store Service Account** check box is selected by default, indicating that - the service account specified for the identity store is used to connect to the server. - - To change the account, clear the **Use Identity Store Service Account** check box and specify - the credentials of an account in the **User name** and **Password** boxes. This account must - have elevated permissions to manage the effective NTFS permissions for the shared resources on - the server. - On changing the credentials, use the **Reconnect** button to test the connectivity and fetch - the shared folders again with the given credentials. - -6. Click **Apply Changes**. -7. Click **Save** on the **Entitlement** page. - -## Replicate Permissions Manually - -After adding a file server for entitlement management, it is essential to replicate object -permissions from the file server to Elasticsearch. - -The -[GroupID Entitlement Schedule](/docs/directorymanager/11.0/signin/schedule/entitlement.md) -runs on a set frequency to replicate the effective NTFS permission for the file servers. You can -also run this schedule any time manually for a specific file server or all file servers listed in -the **Included File Servers** section on the **Entitlement** page. - -**To replicate permissions manually:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Entitlement** under **Settings** in the left pane. -4. On the **Entitlement** page, you can manually replicate permissions for one or all file servers. - - - **To replicate permissions for a server:**Select a file server in the **Included File - Servers** area and click **Replicate**. - - **To replicate permissions for multiple servers:**In the **Included File Servers** area, - select the check boxes for the servers you want to replicate. To replicate all servers, select - the check box in the header row. This displays the following icons: - - **![replicate_permissions](/images/directorymanager/11.0/admincenter/entitlement/ad/replicate_permissions.webp)** - - Either click the **Replicate** icon or the **Replicate** button. - - This triggers the GroupID Entitlement schedule for the identity store, which computes and - replicates the effective NTFS permissions granted to directory objects on shared resources on - the server(s). This process may take some time. - - The **Last Replicated** column displays the date and time the GroupID Entitlement schedule last - ran. - -## Exclude a Server From Entitlement Management - -You can exclude a file server in the identity store from replication and entitlement management. - -**To exclude a file server:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Entitlement** under **Settings** in the left pane. -4. On the **Entitlement** page, you can exclude one or more servers. - - - **To exclude a server:**In the **Included File Servers** area, click the ellipsis button for a - server and select **Add to Exclude Server List**. The server is moved to the **Excluded File - Servers** area. - - **To exclude multiple servers:** - - In the **Included File Servers** area, select the check boxes for the servers you do not - want to replicate. To exclude all servers, select the check box in the header row. This - displays the following icons: - - ![replicate_permissions](/images/directorymanager/11.0/admincenter/entitlement/ad/replicate_permissions.webp) - - Click **Remove**. The servers are moved to the **Excluded File Servers** area. - -5. Click **Save**. - -## Restore a Server for Entitlement Management - -You can restore an excluded server in the identity store for replication and entitlement management. - -**To restore an excluded server:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Entitlement** under **Settings** in the left pane. -4. On the **Entitlement** page, the **Excluded File Servers** area displays the file servers - excluded from replication. Click **Remove** for a server to move it to the **Included File - Servers** area. -5. Click **Save**. - -See Also - -- [Entitlement](/docs/directorymanager/11.0/signin/entitlement/overview.md) -- [Manage SharePoint Sites](/docs/directorymanager/11.0/signin/entitlement/manage_1.md) diff --git a/docs/directorymanager/11.0/signin/entitlement/manage_1.md b/docs/directorymanager/11.0/signin/entitlement/manage_1.md deleted file mode 100644 index 44f8718e0c..0000000000 --- a/docs/directorymanager/11.0/signin/entitlement/manage_1.md +++ /dev/null @@ -1,276 +0,0 @@ ---- -title: "Manage SharePoint Sites" -description: "Manage SharePoint Sites" -sidebar_position: 20 ---- - -# Manage SharePoint Sites - -An Entra ID user, who is: - -- logged-in to the Admin Center - -- a non-MFA user (i.e. multifactor authentication is not enabled for the user) - -An Entra ID user can add and configure SharePoint sites in an Entra ID identity store to replicate -their entitlement data to Elasticsearch for GroupID. The user can then manage permissions on the -sites and the document libraries in those sites using GroupID. - -The user can also manage certain settings for a site, such as change the service account for reading -and managing permissions and exclude a document library in a site from entitlement management. - -What do you want to do? - -- [Specify SharePoint Sites for Entitlement Management](#specify-sharepoint-sites-for-entitlement-management) -- [Include Future Sites for Entitlement Management](#include-future-sites-for-entitlement-management) -- [View the Document Libraries in a Site ](#view-the-document-libraries-in-a-site) -- [Exclude a Document Library from Replication](#exclude-a-document-library-from-replication) -- [Connect to a Site Using a Different Account](#connect-to-a-site-using-a-different-account) -- [Replicate Permissions Manually](#replicate-permissions-manually) -- [Exclude a Site from Entitlement Management](#exclude-a-site-from-entitlement-management) -- [Restore a Site for Entitlement Management](#restore-a-site-for-entitlement-management) - -## Specify SharePoint Sites for Entitlement Management - -Provide the SharePoint admin URL and credentials to connect to SharePoint. GroupID fetches all the -sites under it to replicate the permissions on document libraries there. - -Follow the steps to provide the SharePoint Admin URL. - -In Admin Center, click **Identity Stores** in the left pane. - -Step 1 – On the Identify Stores page, click the ellipsis button for an identity store and select -**Edit**. - -Step 2 – Click **Entitlement** under **Settings** in the left pane. The Entitlement page is -displayed. When no SharePoint site is defined, the page is blank. - -Step 3 – Click **Set up SharePoint Site** and then click **Configure New Site**. - -Step 4 – On the Configure New Site dialog box: - -- In the Site URLox, enter the **SharePoint admin URL** to fetch the sites. - -- In the User name and Password boxes, provide the credentials of a service account to connect to - the site for managing entitlements. -- In the Application ID box, provide the application ID assigned to the GroupID application when you - registered it in Microsoft Entra Admin Center. -- Click **Add Site**. - The URL of this site is displayed in the SharePoint Admin URL box on the Entitlement page. All - sites under it are displayed in the Included SharePoint sites area. - -Step 5 – Click **Save**. - -#### SharePoint Site Details - -The information displayed for a site in the Included SharePoint Sites area is the same as displayed -for a file server in an Active Directory identity store. Refer to the -[File Server Details ](/docs/directorymanager/11.0/signin/entitlement/manage.md#file-server-details) -topic for more info. Though in this case, the User namecolumn displays the username of the account -used to connect to the site, and it is not blank. - -#### Search SharePoint Sites - -Use the _Search Filters_ option in the Included SharePoint Sites area to search for a site in the -listing. The filters are the same as displayed for a file server in an Active Directory identity -store. Refer to the -[Search File Servers ](/docs/directorymanager/11.0/signin/entitlement/manage.md#search-file-servers) -topic for performing a search. - -## Include Future Sites for Entitlement Management - -Follow the steps to include future sites for entitlement management. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the **Identity Stores** page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Entitlement** under **Settings** in the left pane. - -Step 4 – On the **Entitlement** page, select the **Include all Future Sites** check box to ensure -that any new site created under the SharePoint admin URL is automatically fetched and displayed in -the **Included SharePoint Sites** area for permission replication. - -Step 5 – Click **Save**. - -## View the Document Libraries in a Site - -Follow the steps to view the document libraries in a site. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the Identify Stores page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Entitlement** under Settings in the left pane. - -Step 4 – In the Included SharePoint Sites area on the **Entitlement** page, click the ellipsis -button for a site and select **Edit**. On the **Edit Site** dialog box: - -- The Site Libraries area displays the document libraries in the site. -- The name of the - [GroupID Entitlement Schedule](/docs/directorymanager/11.0/signin/schedule/entitlement.md) - that computes the permissions on document libraries in the site and replicates them to - Elasticsearch, is displayed next to **Job**. - -## Exclude a Document Library from Replication - -By default, GroupID computes and replicates permissions on all document libraries in the SharePoint -sites that fall under the admin URL. You can exclude a document library in a site from this -activity. - -When a document library is excluded, its entitlement data replicated to-date is also cleared. - -Follow the steps to exclude a document library. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the Identify Stores page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Entitlement** under Settings in the left pane. - -Step 4 – In the Included SharePoint Sites area on the **Entitlement** page, click the ellipsis -button for a site and select **Edit**. - -Step 5 – On the Edit Site dialog box, the **Site Libraries** area displays the document libraries in -the site. Clear the check box for a library to exclude it from replication and click **Apply -Changes**. - -Step 6 – Click **Save** on the Entitlement page. - -## Connect to a Site Using a Different Account - -GroupID connects to a site using the service account specified while configuring the SharePoint -admin URL for reading and managing the effective permissions assigned to objects on the document -libraries. You can designate a different account for this activity. - -Follow the steps to change the service account for a site. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the **Identity Stores** page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Entitlement** under **Settings** in the left pane. - -Step 4 – In the **Included SharePoint Sites** area on the **Entitlement** page, click the ellipsis -button for a site and select **Edit**. - -Step 5 – On the **Edit Site** dialog box, you can change the service account used to connect to the -site for reading and updating permissions. The -[GroupID Entitlement Schedule](/docs/directorymanager/11.0/signin/schedule/entitlement.md), -[Entitlement Scope Schedule](/docs/directorymanager/11.0/signin/schedule/entitlementscope.md), -and -[Entitlement Temporary Permissions Schedule](/docs/directorymanager/11.0/signin/schedule/entitlementtemporarypermissions.md) -run in the context of the account specified here. - -- The User name and Password boxes display the credentials of the account used to connect to the - site. You can connect using a different account by providing the credentials of that account. - - Or - -- Select the **Use Identity Store Service Account** check box to use the service account specified - for the identity store to connect to the site. - -The account must have elevated permissions to the Microsoft web applications that host the site in -order to read and manage the effective permissions on the document libraries in the site. -On changing the credentials, use the **Reconnect** button to test the connectivity and fetch the -document libraries again with the given credentials. - -Step 1 – Click **Apply Changes**. - -Step 2 – Click **Save** on the Entitlement page. - -## Replicate Permissions Manually - -After adding the SharePoint admin URL to manage entitlements for document libraries in the sites, it -is essential to replicate object permissions from the SharePoint server to Elasticsearch. - -The -[GroupID Entitlement Schedule](/docs/directorymanager/11.0/signin/schedule/entitlement.md) -runs on a set frequency to replicate the effective permissions on document libraries in the sites. -You can also run this schedule any time manually for a site listed in the Included SharePoint sites -area on the Entitlementpage. - -Follow the steps to replicate permissions manually. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the Identity Stores page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Entitlement** under **Settings** in the left pane. - -Step 4 – On the Entitlement page, you can manually replicate permissions for one or all sites. - -- To replicate permissions for a site – Select a site in the **Included SharePoint Sites** area and - click **Replicate**. -- To replicate permissions for multiple sites – Select the check boxes for the sites you want to - replicate. To replicate all sites, select the check box in the header row. This displays the - following icons: - - ![replicate_permissions](/images/directorymanager/11.0/admincenter/entitlement/ad/replicate_permissions.webp) - - Either click the **Replicate** icon or the **Replicate** button. - -This triggers the GroupID Entitlement schedule for the identity store, which computes and replicates -the effective permissions granted to directory objects on document libraries in the site(s). This -process may take some time. -The Last Replicated column displays the date and time the GroupID Entitlement schedule last ran. - -## Exclude a Site from Entitlement Management - -You can exclude a SharePoint site from replication and entitlement management. - -Follow the steps to exclude a site or subsite. **To exclude a site or subsite:** - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the **Identity Stores** page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Entitlement** under **Settings** in the left pane. - -Step 4 – On the **Entitlement** page, you can exclude one or more sites. - -- **To exclude a site:** - - Click the ellipsis button for a site and select **Add to Exclude Site List**. The site is moved - to the **Excluded SharePoint Sites** area. - -- **To exclude multiple sites:** - - Select the check boxes for the sites you do not want to replicate. To exclude all sites, select - the check box in the header row. This displays the following icons: - - ![replicate_permissions](/images/directorymanager/11.0/admincenter/entitlement/ad/replicate_permissions.webp) - - Click **Remove**. The sites are moved to the **Excluded SharePoint Sites** area. - -Step 5 – Click **Save**. - -## Restore a Site for Entitlement Management - -You can restore an excluded SharePoint site for replication and entitlement management. - -Follow the steps to restore an excluded site. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the Identify Stores page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Entitlement** under Settings in the left pane. - -Step 4 – On the Entitlement page, the **Excluded SharePoint Sites** area displays the sites excluded -from replication. -Click **Remove** for a site to move it to the **Included SharePoint Sites** area. - -Step 5 – Click **Save**. - -See Also - -- [Entitlement](/docs/directorymanager/11.0/signin/entitlement/overview.md) -- [Manage File Servers](/docs/directorymanager/11.0/signin/entitlement/manage.md) diff --git a/docs/directorymanager/11.0/signin/entitlement/overview.md b/docs/directorymanager/11.0/signin/entitlement/overview.md deleted file mode 100644 index 18de8cfe22..0000000000 --- a/docs/directorymanager/11.0/signin/entitlement/overview.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: "Entitlement" -description: "Entitlement" -sidebar_position: 70 ---- - -# Entitlement - -GroupID Entitlement enables you to stay informed on the permissions assigned to objects residing on -your Active Directory servers and SharePoint sites. - -## Entitlement for Active Directory - -With Entitlement, you can view and update the effective NTFS permissions assigned to a user or group -on shared files and folders, that reside on a file server in your environment. You can: - -- Select an object, such as a user or group, to view and update the permissions assigned to it on - shared files and folders residing on a server. -- Select a file or folder to view a list of objects that have been granted permissions to it. You - can also add and remove objects from the permissions list of the file or folder as well as update - the permissions. - -Entitlement types include: - -- Explicit permissions -- Inherited permissions from a folder - -To facilitate entitlement management for an Active Directory identity store in GroupID, do the -following: - -- Specify one or more file servers in identity store configurations. -- Compute the permissions assigned to directory objects on the shared files and folders on those - file server(s), and replicate those permissions to Elasticsearch. -- View and manage entitlements in the Entitlement section of the GroupID portal. - -## Entitlement for SharePoint - -With Entitlement, you can view and manage the effective permissions for a user or group on document -libraries in a SharePoint site. You can: - -- Select an object, such as a user or group, to view and update the levels and permissions assigned - to it on document libraries in a site. -- Select a file or folder to view a list of objects that have been granted permissions to it. You - can also add and remove objects from the permissions list of the file or folder as well as update - the permissions. - -Permission types include: - -- Explicit permissions -- Inherited permissions from a document library - -To facilitate entitlement management for a Microsoft Entra ID identity store in GroupID, do the -following: - -- Specify the admin URL for SharePoint in identity store configurations to fetch the sites. -- Compute the permissions assigned to directory objects on the document libraries in those sites, - and replicate those permissions to Elasticsearch. -- View and manage entitlements in the Entitlement section of the GroupID portal. - -## Perpetual Entitlements vs Temporary Entitlements - -Using GroupID, you can manage entitlements in the following ways: - -- **Assign and revoke permissions on a perpetual basis** - When a permission is assigned - perpetually, it continues to apply until you choose to revoke it. Similarly, when a permission is - revoked perpetually, it stays so until you choose to reapply it. -- **Assign and revoke permissions on a temporary basis** - A temporary permission is one with a - start and end date specified. In case of temporary assignment, GroupID auto assigns the permission - on the start date and revokes it on the end date. Similarly, for temporary removal, GroupID - revokes the permission on the start date and reassigns it on the end date. - -## Entitlement Schedules - -When you add the first server or site for entitlement management, the following three schedules are -automatically created in the identity store: - -- [GroupID Entitlement Schedule](/docs/directorymanager/11.0/signin/schedule/entitlement.md) - - replicates object permissions on file servers and SharePoint sites for an Active Directory and - Microsoft Entra ID identity store respectively. It performs a complete replication. -- [Entitlement Scope Schedule](/docs/directorymanager/11.0/signin/schedule/entitlementscope.md) - - replicates changes made to object permissions on file servers and SharePoint sites using GroupID. -- [Entitlement Temporary Permissions Schedule](/docs/directorymanager/11.0/signin/schedule/entitlementtemporarypermissions.md) - - updates the temporary permissions for objects on file servers and SharePoint sites. - -## What is Replication? - -When a file server/SharePoint site is added for entitlement management, an essential task is to -replicate object permissions from the file server or SharePoint site to the Elasticsearch -repository. The GroupID Entitlement schedule for an identity store performs this replication, which -involves the following: - -- GroupID first computes the effective NTFS permissions granted to directory objects on shared files - and folders at granular level. For SharePoint sites, it computes the permissions granted to - objects on document libraries. -- The Data service then replicates this data to Elasticsearch. - -The GroupID Entitlement schedule auto runs at a set frequency, but you can also run it manually for -a file server or SharePoint site. GroupID time stamps the last time permissions were replicated. - -## Entitlement-related Permissions for Security Roles - -You can grant permissions to security roles in an identity store on the Entitlement section in the -GroupID portal. Based on these permissions, role members can performs different actions, such as -navigate file servers and SharePoint sites, grant permissions to objects on shared resources, revoke -permissions, and more. - -Entitlement-related permissions for a security role are discussed in the -[Entitlement](/docs/directorymanager/11.0/signin/securityrole/permissions.md#entitlement) -topic. - -See Also - -- [Manage File Servers](/docs/directorymanager/11.0/signin/entitlement/manage.md) -- [Manage SharePoint Sites](/docs/directorymanager/11.0/signin/entitlement/manage_1.md) diff --git a/docs/directorymanager/11.0/signin/helpdesk/_category_.json b/docs/directorymanager/11.0/signin/helpdesk/_category_.json deleted file mode 100644 index 0dc1363ec0..0000000000 --- a/docs/directorymanager/11.0/signin/helpdesk/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Helpdesk", - "position": 100, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/helpdesk/history.md b/docs/directorymanager/11.0/signin/helpdesk/history.md deleted file mode 100644 index 8b48ae4899..0000000000 --- a/docs/directorymanager/11.0/signin/helpdesk/history.md +++ /dev/null @@ -1,169 +0,0 @@ ---- -title: "History in Helpdesk" -description: "History in Helpdesk" -sidebar_position: 20 ---- - -# History in Helpdesk - -GroupID tracks the following actions performed by end-users and helpdesk users in an identity store -and displays them as history to helpdesk users: - -- Unenroll account -- Sending of secure link for password reset by helpdesk -- Change Password -- Reset Password -- Unlock Account -- Link Account -- Unlink Account -- Enroll account -- Authenticate with password, authentication types, or any other medium - -History can be used for audit and analysis, such as how many users changed their passwords in the -last x days, reset their passwords using secure link, and more. It can also be used to verify the -identity of a user through the last action he or she performed. - -What do you want to do? - -- [View History in Helpdesk](#view-history-in-helpdesk) - - [Switch History Layouts](#switch-history-layouts) -- [Search History](#search-history) -- [Export History to a File](#export-history-to-a-file) - -## View History in Helpdesk - -1. In Admin Center, click **Helpdesk** in the left pane. -2. On the **Helpdesk** page, click the **History** tab. - This tab displays the tracked history actions for all identity stores in GroupID. Use the - pagination options at the bottom of the listing to navigate through records. - - To search for specific records, see the [Search History](#search-history) topic. - -### Switch History Layouts - -You can view history in two layouts: - -- **Basic view:** displays history in a friendly, descriptive manner. -- **Administrative view:** displays history in tabular form. - -In both layouts, click **Details** for an item to view more details. - -You can also export history to MS Excel, CSV, and XML formats. - -To Switch Layouts: - -- In the Basic view, click the **Switch to Administrative View** button to view history in - Administrative layout. -- In the Administrative view, the button changes to **Switch to Basic View**. Click it to view - history in Basic layout. - -#### View History in Basic Layout - -By default, the **History** tab of the **Helpdesk** page displays history in the Basic view, that -lists the tracked actions in meaningful sentences. - -Click **Details** for a history item to launch the **History Details** dialog box that displays the -following: - -- **Display name:** the user on whom the action was performed. -- **Identity store:** the identity store the action was performed in. -- **Action:** the action performed. -- **Authentication type:** the authentication type(s) used by the user to authenticate in order to - perform the action. For some actions performed by helpdesk, such as sending a secure link for - password reset, no authentication type is displayed. For other actions such as _unenroll_, the - authentication type for which the end user is unenrolled will be displayed. -- **Status:** whether the action was performed successfully or not. -- **Date/Time:** the date and time the action was performed. -- **Performed by:** the user who performed the action. -- **Client name:** the name of the GroupID client the action was performed from. -- **Helpdesk action:** whether the action was performed through helpdesk or not. -- **Machine name:** the name of the machine the action was performed from. -- **IP:** the IP address of the machine the action was performed from. -- **Browser:** the name of the browser used to perform the action. -- **Device type:** the device type used to perform the action, such as PC/laptop or mobile. - -Click **Close** to close the dialog box. - -#### View History in Administrative Layout - -The Administrative layout displays history in a table. On the **History** tab of the **Helpdesk** -page, click **Switch to Administrative View**. - -The following information is displayed for a record: - -- **Name:** The name of the user the action was performed on -- **Client Name:** the name of the GroupID client the action was performed from. -- **Identity Store:** The identity store the action was performed in -- **Action:** The action performed -- **Date:** The date and time the action was performed on - -Click **Details** for a history item to view its details on the **History Details** dialog box. See -the [View History in Helpdesk](#view-history-in-helpdesk) topic for a discussion of the dialog box. - -Use the pagination options at the bottom of the listing to navigate through records. - -Sort the Listing - -History records on the **History** tab of the **Helpdesk** page are sorted in chronological order, -with the latest action at the top. - -You can sort the listing in the Administrative view by any column name in the header row. Click a -column name to sort the listing by that attribute. An arrow appears next to the column name. - -- The upward arrow head indicates that the list is sorted in ascending order. -- The downward arrow head indicates that the list is sorted in descending order. - -Click the arrow to change the order from ascending to descending and vice versa. - -## Search History - -You can search for history records in all the identity stores or specific identity stores. Simply -enter the name of a user to view all actions performed for it, be it by that same user or another -user, such as helpdesk. You can also create a filter based on multiple attributes to search for -specific records. - -To perform a search: - -1. In Admin Center, click **Helpdesk** in the left pane. -2. On the **Helpdesk** page, click the **History** tab. -3. On the **History** tab, the following search options are available: - - - **Identity Store list** - To get the history records for one or specific identity stores, - click in the **Identity Store** box and select the check boxes for the identity stores you - want to view the history for. - - **Search box to search for records specific to a user** - In the _Search_ box, enter a user’s - full name or part of a name and press _Enter_. GroupID displays all history actions that are - performed by or performed on the user. - - **Search filter** - Click **Filter**. On the **Filter(s)** dialog box, you can search the - history data using the available filters individually or in combination. - - - **Date Logged:** Specify a time period to view history data for. Click in the box and use - the calendar for selecting a date range. - - **Performed By:** Specify whether you want to view the actions performed by end users, - helpdesk users, or both. - - **Device Type:** Specify a device type (PC/laptop, mobile, or both) to view actions that - have been performed using that device type. - - **Status:** Specify whether you want to view successful actions, failed actions, or both - successful and failed actions - - **Action Type:** Select an action to view the history records for it. On selecting - _Enrollment_ or _Authenticate_, another drop-down list is displayed that lists the - authentication types. Select an option to view the enrollment or authentication actions - performed using that specific type. - - Click **Apply**. History records matching the given criteria are displayed. - -## Export History to a File - -1. In Admin Center, click **Helpdesk** in the left pane. -2. On the **Helpdesk** page, click the **History** tab. -3. On the **History** tab, you can export all history records in all identity stores to a file or - filter the listing to export specific records only. To narrow down records, see the - [Search History](#search-history) topic. -4. Click **Export History** and select a file format in the list to export history data to. - The file is saved to the download location specified in your browser settings. - -**See Also** - -- [Dashboard](/docs/directorymanager/11.0/signin/concepts/dashboard.md) -- [Search Users](/docs/directorymanager/11.0/signin/helpdesk/operation/search.md) -- [History in GroupID](/docs/directorymanager/11.0/signin/concepts/history.md) diff --git a/docs/directorymanager/11.0/signin/helpdesk/operation/_category_.json b/docs/directorymanager/11.0/signin/helpdesk/operation/_category_.json deleted file mode 100644 index f04bd2df28..0000000000 --- a/docs/directorymanager/11.0/signin/helpdesk/operation/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Helpdesk Operations", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/helpdesk/operation/asktoenroll.md b/docs/directorymanager/11.0/signin/helpdesk/operation/asktoenroll.md deleted file mode 100644 index 161e349231..0000000000 --- a/docs/directorymanager/11.0/signin/helpdesk/operation/asktoenroll.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: "Notify Users to Enroll" -description: "Notify Users to Enroll" -sidebar_position: 50 ---- - -# Notify Users to Enroll - -You can send email notifications to unenrolled users, directing them to enroll their identity store -accounts in GroupID. Notifications can be sent to: - -- All users in all identity stores created in GroupID -- All users in an identity store -- Specific users - -Users must have an email address to receive notifications. - -What do you want to do? - -- [Send Enrollment Notifications](#send-enrollment-notifications) - -## Send Enrollment Notifications - -1. In Admin Center, click **Helpdesk** in the left pane. - On the **Helpdesk** page, the **Helpdesk Operations** tab is displayed by default. -2. Do the following: - - - To send enrollment notifications to all users in all identity stores in GroupID, make sure - _All_ is selected in the **Identity store** box. Then click **Notify All Users**. - - To send the notification to specific recipients, search for the required users and click - **Notify All Users**. See the - [Search Users](/docs/directorymanager/11.0/signin/helpdesk/operation/search.md) - topic to perform a search. - - Notifications are sent to all users listed on the **Helpdesk Operations** tab, including those - on other pages (use the navigation options at the bottom of the listing to view the pages). To - send it to specific users in the listing, select the check boxes for them and click **Notify All - Users**. - -3. On clicking **Notify All Users**, the **Compose email** dialog box is displayed. - - 1. The **Recipients** box is read-only. - 2. The **Subject** box displays the default subject line. You can choose to use it or replace it - with your own text. - 3. Specify the authentication type(s) you want the users to enroll their account with. - In the **Enrollment Types** drop-down list, click _All_ if you want users to enroll with all - the available authentication types, or select the authentication types you want users to - enroll with. - 4. The **Message** box displays the default message text. You can choose to use it or replace it - with your own text. - 5. Click **Notify**. - -**See Also** - -- [Helpdesk](/docs/directorymanager/11.0/signin/helpdesk/overview.md) -- [Helpdesk Operations](/docs/directorymanager/11.0/signin/helpdesk/operation/overview.md) diff --git a/docs/directorymanager/11.0/signin/helpdesk/operation/export.md b/docs/directorymanager/11.0/signin/helpdesk/operation/export.md deleted file mode 100644 index a5607220b9..0000000000 --- a/docs/directorymanager/11.0/signin/helpdesk/operation/export.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Export Users' List to a File" -description: "Export Users' List to a File" -sidebar_position: 40 ---- - -# Export Users' List to a File - -You can export users' information to an Excel, XML, or CSV file. - -What do you want to do? - -- [Export Users](#export-users) - -## Export Users - -1. In Admin Center, click **Helpdesk** in the left pane. -2. The **Helpdesk** page opens to the **Helpdesk Operations** tab. You can export all users in all - identity stores to a file or filter the listing to export specific users only. To filter the - list, see the - [Search Users](/docs/directorymanager/11.0/signin/helpdesk/operation/search.md) - topic. -3. Select the check boxes for the users you want to export or click the check box in the header row - to select all users. Then click **Export**. -4. Select a file format in the list. The file is saved to the download location specified in your - browser settings. - -**See Also** - -- [Helpdesk](/docs/directorymanager/11.0/signin/helpdesk/overview.md) -- [Helpdesk Operations](/docs/directorymanager/11.0/signin/helpdesk/operation/overview.md) diff --git a/docs/directorymanager/11.0/signin/helpdesk/operation/overview.md b/docs/directorymanager/11.0/signin/helpdesk/operation/overview.md deleted file mode 100644 index 51744b9204..0000000000 --- a/docs/directorymanager/11.0/signin/helpdesk/operation/overview.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Helpdesk Operations" -description: "Helpdesk Operations" -sidebar_position: 10 ---- - -# Helpdesk Operations - -Helpdesk users can perform the following actions in Admin Center: - -- [Reset Passwords](/docs/directorymanager/11.0/signin/helpdesk/operation/resetpassword.md) -- [Unlock Accounts](/docs/directorymanager/11.0/signin/helpdesk/operation/unlockaccount.md) -- [Notify Users to Enroll](/docs/directorymanager/11.0/signin/helpdesk/operation/asktoenroll.md) -- [Unenroll a User](/docs/directorymanager/11.0/signin/helpdesk/operation/unenroll.md) -- [Search Users](/docs/directorymanager/11.0/signin/helpdesk/operation/search.md) -- [Export Users' List to a File](/docs/directorymanager/11.0/signin/helpdesk/operation/export.md) diff --git a/docs/directorymanager/11.0/signin/helpdesk/operation/resetpassword.md b/docs/directorymanager/11.0/signin/helpdesk/operation/resetpassword.md deleted file mode 100644 index 611e6c0fe9..0000000000 --- a/docs/directorymanager/11.0/signin/helpdesk/operation/resetpassword.md +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: "Reset Passwords" -description: "Reset Passwords" -sidebar_position: 10 ---- - -# Reset Passwords - -Admin Center provides a variety of options to helpdesk users for resetting passwords and then -communicating them to users. - -NOTE: You can reset passwords of unenrolled users if (a) the **Reset Any Password** permission has -been granted to your role and (b) the Helpdesk policy for your role is set to the unrestricted mode. - -Helpdesk users may have to authenticate end users before resetting their passwords. See the -[Helpdesk Policy ](/docs/directorymanager/11.0/signin/helpdesk/overview.md#helpdesk-policy) -topic. - -What do you want to do? - -- [Reset Passwords in Unrestricted Mode](#reset-passwords-in-unrestricted-mode) -- [Reset Passwords in Restricted Mode](#reset-passwords-in-restricted-mode) - -## Reset Passwords in Unrestricted Mode - -1. In Admin Center, click **Helpdesk** in the left pane. -2. The **Helpdesk** page opens to the **Helpdesk Operations** tab. Locate your required user. To - search for a user, see - the[Search Users](/docs/directorymanager/11.0/signin/helpdesk/operation/search.md) - topic. -3. Click the ellipsis button for the user and select **Reset Password**. For enrolled users, the - **Reset Password** dialog box has two pages: **Authenticate** and **Reset**. Under the - unrestricted mode, you can skip the former and move to the **Reset** page. For unenrolled users, - only the **Reset** page is available. - Use the **History** button to view user history, i.e., the actions performed on the user and by - the user. This history is specific to helpdesk functions, as listed in the - [History in Helpdesk](/docs/directorymanager/11.0/signin/helpdesk/history.md) - topic. -4. The **Reset** page displays the user name, the identity store where this user resides, the last - time the user changed his or her password, and the lock status of the account. In case the user - has linked his or her accounts that exist in different identity stores, this page displays all - linked accounts that require a password reset. - Select an account to reset its password. -5. Depending on the password reset method enforced for your role, you can reset the password and - communicate the new password to the user, or you can generate a secure link and send it to the - user for resetting the password. - - - The **New Password** tab is displayed if you are authorized to generate a new password and - send it to the user. - - The **Secure Link** tab is displayed if you are authorized to send a secure link to the user. - - Both tabs are displayed if you are authorized to choose any password reset method. - -6. On the **New Password** tab: - - - Enter a password of your choice in the **Password** box or click **Generate Password** to - generate a random password. - - Select the user's mobile number and/or email address in the **Select Mobile** and **Select - Email** boxes to send the new password to the user by SMS or email or both. - -7. On the **Secure Link** tab: - - - Select the user's mobile number and/or email address in the **Select Mobile** and **Select - Email** boxes to send the secure link to the user by SMS or email or both. The user must click - this link to reset his or her password. - -8. Click **Reset Password**. - -## Reset Passwords in Restricted Mode - -In the restricted mode, you will not be able to reset passwords for unenrolled users. Further, you -could be restricted to: - -- Reset passwords of enrolled users residing in a specific OU. -- Authenticate enrolled users through the multifactor authentication policy applicable to the user - before resetting their passwords. The Security Questions authentication type may be mandatory. - -See the -[Helpdesk Policy](/docs/directorymanager/11.0/signin/securityrole/policy/helpdesk.md) -topic. - -**To reset a password in restricted mode:** - -1. In Admin Center, click **Helpdesk** in the left pane. -2. The **Helpdesk** page opens to the **Helpdesk Operations** tab. Locate your required user. To - search for a user, see - the[Search Users](/docs/directorymanager/11.0/signin/helpdesk/operation/search.md) - topic. -3. Click the ellipsis button for the user and select **Reset Password**. The **Reset Password** - dialog box has two pages: **Authenticate** and **Reset**. - Use the **History** button to view user history, i.e., the actions performed on the user and by - the user. This history is specific to helpdesk functions, as listed in the - [History in Helpdesk](/docs/directorymanager/11.0/signin/helpdesk/history.md) - topic. -4. The **Authenticate** page displays the authentication type(s) the user's account is enrolled - with. You could be restricted to authenticate the user according to the authentication policy - that applies to the user. - Click the plus sign for an authentication type to expand it. - - - **Security Question** - - 1. Get the answers to the questions from the user and enter them in the answer boxes. - 2. Click **Verify** for each answer to verify it. - - - **Mobile** - - 1. The mobile number with which the user’s account is enrolled is displayed in the box. - Click **Send Code** to send an access code to the user’s mobile number. - 2. Get this access code from the user and enter it in the box. - 3. Click **Verify**. - - - **Email** - - 1. The email address with which the user's account is enrolled is displayed in the box. - Click **Send Code** to send an access code to the user’s email address. - 2. Get this access code from the user and enter it in the box. - 3. Click **Verify**. - - - **Authenticator** - - 1. Get a valid access code from the user, as displayed to him or her in the Authenticator - app and enter it in the box. - 2. Click **Verify**. - - NOTE: Helpdesk cannot authenticate users with the Link Account, YubiKey, and Windows Hello - authentication types. - -5. Click **Next**. -6. On the **Reset** page, you can reset the password. Follow step 4 and onwards in the - [Reset Passwords in Unrestricted Mode](#reset-passwords-in-unrestricted-mode) topic for details. - -**See Also** - -- [Helpdesk](/docs/directorymanager/11.0/signin/helpdesk/overview.md) -- [Helpdesk Operations](/docs/directorymanager/11.0/signin/helpdesk/operation/overview.md) diff --git a/docs/directorymanager/11.0/signin/helpdesk/operation/search.md b/docs/directorymanager/11.0/signin/helpdesk/operation/search.md deleted file mode 100644 index b9b93dea61..0000000000 --- a/docs/directorymanager/11.0/signin/helpdesk/operation/search.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "Search Users" -description: "Search Users" -sidebar_position: 30 ---- - -# Search Users - -Helpdesk users can search for users in specific identity store(s) or all identity stores defined in -GroupID. A search filter is also available to help you narrow down your search results. - -What do you want to do? - -- [Perform a Search](#perform-a-search) - -## Perform a Search - -1. In Admin Center, click **Helpdesk** in the left pane. -2. The **Helpdesk** page opens to the **Helpdesk Operations** tab. It lists all users from all - identity stores in GroupID (notice that _All_ is displayed in the **Identity store** box). -3. Use the following options to filter users: - - - **Identity store box** - To get users from one or specific identity stores, click in the - **Identity store** box and select the check boxes for the identity stores you want to fetch - users from. - - **Search Users box** - Enter a search text and press _Enter_. Users with the first names, last - names, or email addresses matching the text are filtered and displayed. - - **Search filter** - You can also search users based on enrollment. Click **Filter(s)**. The - **Filter(s)** dialog box is displayed with the following options: - - - **Enrolled with:** click in the box and select the authentication type(s) to restrict - search to users enrolled with any of those authentication types. - - **Not Enrolled with:** click in the box and select the authentication type(s) to restrict - search to users not enrolled with any of those authentication types. - - Click **Apply**. Users matching the given criteria get listed. - -#### View Users' Information - -For a user, the following information is displayed: - -- **Name:** the display name of the user. -- **Store:** the name of the identity store and the domain the user resides in. -- **Is Locked:** displays whether the user account is locked or not. -- **Password Expires On:** the date when the user account password will expire. If the password is - set to _Never Expire_, then _Never Expires_ is displayed here. -- **Last Password Set:** the time since the user last changed their password, for example, 'one year - ago'. For users who never changed their passwords, _Never_ is displayed. -- **Enrolled With:** the authentication types used to enroll the account in the identity store. For - users who have not enrolled their accounts, _Not Enrolled_ is displayed. - -Use the pagination options at the bottom of the listing to navigate through records. - -Click the ellipsis button for a user to perform any of these actions: - -- Reset password -- Unlock account -- Send enrollment reminder -- Unenroll account - -**See Also** - -- [Helpdesk](/docs/directorymanager/11.0/signin/helpdesk/overview.md) -- [Helpdesk Operations](/docs/directorymanager/11.0/signin/helpdesk/operation/overview.md) diff --git a/docs/directorymanager/11.0/signin/helpdesk/operation/unenroll.md b/docs/directorymanager/11.0/signin/helpdesk/operation/unenroll.md deleted file mode 100644 index 162cba1423..0000000000 --- a/docs/directorymanager/11.0/signin/helpdesk/operation/unenroll.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Unenroll a User" -description: "Unenroll a User" -sidebar_position: 60 ---- - -# Unenroll a User - -Users are enrolled in an identity store using one or more authentication types. You can unenroll a -user account for any of the authentication types the account is enrolled with. - -For example, if a user's account is enrolled with the Security Questions, Email, and YubiKey -authentication types, you can unenroll the account for YubiKey. As a result, the account continues -to be enrolled with Security Questions and Email. - -What do you want to do? - -- [Unenroll a User for an Authentication Type](#unenroll-a-user-for-an-authentication-type) - -## Unenroll a User for an Authentication Type - -1. In Admin Center, click **Helpdesk** in the left pane. -2. The **Helpdesk** page opens to the **Helpdesk Operations** tab. Locate your required user. To - search for a user, see - the[Search Users](/docs/directorymanager/11.0/signin/helpdesk/operation/search.md) - topic. -3. Click the ellipsis button for the user and select **Unenroll Account**. - The **Unenroll Account** dialog box displays the authentication types the user account is - enrolled with. -4. Select the check boxes for the authentication type(s) you want to unenroll the user account with. -5. Click **Unenroll** and then **Unenroll** on the confirmation dialog box. - -**See Also** - -- [Helpdesk](/docs/directorymanager/11.0/signin/helpdesk/overview.md) -- [Helpdesk Operations](/docs/directorymanager/11.0/signin/helpdesk/operation/overview.md) diff --git a/docs/directorymanager/11.0/signin/helpdesk/operation/unlockaccount.md b/docs/directorymanager/11.0/signin/helpdesk/operation/unlockaccount.md deleted file mode 100644 index d99d58c6c3..0000000000 --- a/docs/directorymanager/11.0/signin/helpdesk/operation/unlockaccount.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: "Unlock Accounts" -description: "Unlock Accounts" -sidebar_position: 20 ---- - -# Unlock Accounts - -Administrators can enforce an account lockout policy for a domain that locks a user account after a -certain number of failed login attempts. This secures a machine from unauthorized access. However, -legitimate users may also get locked out; typically because of a typo or they could not recall their -password correctly. - -In such a situation as this, helpdesk users can unlock user accounts in an identity store. - -Helpdesk may have to authenticate users before unlocking their accounts. See the -[Helpdesk Policy ](/docs/directorymanager/11.0/signin/helpdesk/overview.md#helpdesk-policy) -topic. - -NOTE: You can unlock the account of unenrolled users if (a) the **Unlock Any Account** permission -has been granted to your role and (b) the Helpdesk policy for your role is set to the unrestricted -mode. - -NOTE: GroupID does not support account unlock in a Microsoft Entra ID identity store. - -What do you want to do? - -- [Unlock User Accounts in Unrestricted Mode](#unlock-user-accounts-in-unrestricted-mode) -- [Unlock User Accounts in Restricted Mode](#unlock-user-accounts-in-restricted-mode) - -## Unlock User Accounts in Unrestricted Mode - -1. In Admin Center, click **Helpdesk** in the left pane. -2. The **Helpdesk** page opens to the **Helpdesk Operations** tab. Locate your required user. To - search for a user, see - the[Search Users](/docs/directorymanager/11.0/signin/helpdesk/operation/search.md) - topic. -3. Click the ellipsis button for the user and select **Unlock Account**. For enrolled users, the - **Unlock Account** dialog box has two pages: **Authenticate** and **Unlock**. Under the - unrestricted mode, you can skip the former and move to the **Unlock** page. For unenrolled users, - only the **Unlock** page is available. - Use the **History** button to view user history, i.e., the actions performed on the user and by - the user. This history is specific to helpdesk functions, as listed in the - [History in Helpdesk](/docs/directorymanager/11.0/signin/helpdesk/history.md) - topic. -4. The **Unlock** page displays the user name, the identity store where this user resides, the last - time the user changed his or her password, and the lock status of the account. In case the user - has linked his or her accounts that exist in different identity stores, this page displays all - linked accounts that are locked. - To unlock an account, select the check box for it and click **Unlock**. - -## Unlock User Accounts in Restricted Mode - -1. In Admin Center, click **Helpdesk** in the left pane. -2. The **Helpdesk** page opens to the **Helpdesk Operations** tab. Locate your required user. To - search for a user, see - the[Search Users](/docs/directorymanager/11.0/signin/helpdesk/operation/search.md) - topic. -3. Click the ellipsis button for the user and select **Unlock Account**. The **Unlock Account** - dialog box has two pages: **Authenticate** and **Unlock**. - Use the **History** button to view user history, i.e., the actions performed on the user and by - the user. This history is specific to helpdesk functions, as listed in the - [History in Helpdesk](/docs/directorymanager/11.0/signin/helpdesk/history.md) - topic. -4. The **Authenticate** page displays the authentication type(s) the user's account is enrolled - with. to authenticate the user, follow step 4 in the - [Reset Passwords in Restricted Mode](/docs/directorymanager/11.0/signin/helpdesk/operation/resetpassword.md#reset-passwords-in-restricted-mode) - topic. -5. After authenticating the user, click **Next**. -6. The **Unlock** page displays the user name, the identity store where this user resides, the last - time the user changed his or her password, and the lock status of the account. In case the user - has linked his or her accounts that exist in different identity stores, this page displays all - linked accounts that are locked. - To unlock an account, select the check box for it and click **Unlock**. - -**See Also** - -- [Helpdesk](/docs/directorymanager/11.0/signin/helpdesk/overview.md) -- [Helpdesk Operations](/docs/directorymanager/11.0/signin/helpdesk/operation/overview.md) diff --git a/docs/directorymanager/11.0/signin/helpdesk/overview.md b/docs/directorymanager/11.0/signin/helpdesk/overview.md deleted file mode 100644 index 6c74e954dd..0000000000 --- a/docs/directorymanager/11.0/signin/helpdesk/overview.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: "Helpdesk" -description: "Helpdesk" -sidebar_position: 100 ---- - -# Helpdesk - -The Admin Center Helpdesk section enables administrators and helpdesk users to perform -helpdesk-specific tasks, such as: - -- Unlock user accounts and reset passwords on behalf of users in an identity store. -- Notify users to enroll their accounts. -- Unenroll user accounts from identity stores. -- View users' activities, such as enrollment, authentication, account unlock, and password-related - functions. Toast notifications and history tracking are also enabled for these actions. - -## Helpdesk Permissions - -A security role must have the following permissions in an identity store to perform -helpdesk-specific functions: - -- Reset Any Password -- Unlock Any Account -- Unenroll - -See -[Password Management](/docs/directorymanager/11.0/signin/securityrole/permissions.md#password-management) -in the -[Security Role – Permissions](/docs/directorymanager/11.0/signin/securityrole/permissions.md) -topic. - -## Helpdesk Policy - -The administrator can define a Helpdesk policy for a user role in an identity store. This policy -mainly defines whether helpdesk role members should operate under the restricted or unrestricted -mode to perform the account unlock and reset password functions. - -NOTE: In unrestricted mode, helpdesk can unlock accounts and reset passwords of both enrolled and -unenrolled users. In restricted mode, helpdesk can perform these functions for enrolled users only. - -See the -[Helpdesk Policy](/docs/directorymanager/11.0/signin/securityrole/policy/helpdesk.md) -topic. - -## Helpdesk Analytics - -The dashboard in Admin Center offers insightful information to the administrator and helpdesk on -users' activities (such as enrollment, account unlock, and password reset) in an identity store. - -The dashboard displays the following helpdesk-specific cards: - -- [Enrollment Summary](/docs/directorymanager/11.0/signin/concepts/dashboard.md#enrollment-summary): - displays the number of enrolled users in an identity store. -- [Auth Summary](/docs/directorymanager/11.0/signin/concepts/dashboard.md#auth-summary): - displays information about failed and successful authentication attempts for each authentication - type. -- [Activity Summary](/docs/directorymanager/11.0/signin/concepts/dashboard.md#activity-summary): - displays a summary of users' activities related to password change, password reset, account - unlock, and enrollment. - -## Desktop Notifications - -You can enable desktop notification for GroupID in browser settings. In this way, a user signed into -Admin Center on the respective machine will receive desktop notifications when an end-user performs -any of the following actions in the GroupID portal: - -- Resets account password -- Changes account Password -- Unlocks Account -- Links Account -- Unlinks Account -- Enrolls account -- Authenticates with password, authentication types, or any other medium - -These actions are also logged in helpdesk history. - -**See Also** - -- [Helpdesk Operations](/docs/directorymanager/11.0/signin/helpdesk/operation/overview.md) -- [History in Helpdesk](/docs/directorymanager/11.0/signin/helpdesk/history.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/_category_.json b/docs/directorymanager/11.0/signin/identitystore/_category_.json deleted file mode 100644 index d9fe547083..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Identity Stores", - "position": 30, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/identitystore/advsentraid.md b/docs/directorymanager/11.0/signin/identitystore/advsentraid.md deleted file mode 100644 index 243654898d..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/advsentraid.md +++ /dev/null @@ -1,129 +0,0 @@ ---- -title: "Microsoft Entra ID vs. Active Directory Identity Stores" -description: "Microsoft Entra ID vs. Active Directory Identity Stores" -sidebar_position: 40 ---- - -# Microsoft Entra ID vs. Active Directory Identity Stores - -This topic discusses the differences between an Active Directory and Microsoft Entra ID identity -store in GroupID. - -## Group Expiration Policy - -Microsoft Entra ID offers limited options to define a default expiry policy for groups whereas -GroupID provides a comprehensive Group Life Cycle policy. See the -[Manage Group Lifecycle Settings](/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md) -topic. - -Since these policies are not integrated; you should either useMicrosoft Entra ID’s or GroupID’s -expiration policy settings for groups in an Microsoft Entra ID identity store. - -## Group Naming Policy - -The group naming policy defined in Microsoft Entra ID is not integrated with the Group Name Prefixes -policy in GroupID. As a result: - -- Microsoft Entra ID's group naming policy has no impact on groups created using GroupID. -- Using GroupID, you cannot modify the prefixes and suffixes that are applied to groups created - directly in Microsoft Entra Admin Center. - -To use the same prefixes for group names as are defined in Microsoft Entra Admin Center, the -administrator should define the same prefixes in GroupID. See the -[Set Group Name Prefixes](/docs/directorymanager/11.0/signin/identitystore/configure/prefixes.md) -topic. - -## Dynamic Groups in Microsoft Entra ID - -A dynamic group created in Microsoft Entra Admin Center will not be automatically upgraded to a -Smart Group in GroupID. It will be displayed as a static (unmanaged) group. However, its membership -will be managed dynamically in Microsoft Entra ID and displayed in GroupID. - -You should apply a query to a group either in Microsoft Entra Admin Center or in GroupID. Do not -manipulate the same object simultaneously from GroupID and Microsoft Entra Admin Center. - -## Multifactor Authentication Policy - -The multifactor authentication (MFA) policy defined for Microsoft Entra Admin Center cannot be -integrated with the multifactor authentication policy defined for a Microsoft Entra ID identity -store in GroupID. MFA in Entra applies to Microsoft Entra Admin Center while MFA in GroupID applies -while performing account unlock and password reset in the respective identity store. - -## User Roles in Microsoft Entra ID and GroupID - -When a user, with a standard user role in Microsoft Entra Admin Center, is assigned an elevated role -in GroupID, he or she can manipulate directory objects using GroupID that he or she cannot otherwise -manipulate directly in Microsoft Entra Admin Center due to limited role permissions. - -The actions that a user can perform in GroupID depend on the permissions assigned to his or her role -in GroupID. These permissions may conflict with the permissions that the user has in Microsoft Entra -Admin Center. For example, a user who does not have permissions to create groups in Microsoft Entra -Admin Center will be able to create groups in Microsoft Entra ID using GroupID if his or her GroupID -role has permissions to create new groups. - -To avoid conflicts, GroupID administrators should grant permissions to security roles with -discretion. - -## Groups in Microsoft Entra ID - -- To create security groups and Office 365 groups using GroupID, Office 365 must be set as the - messaging provider for the identity store. Security groups cannot be mail-enabled. Use an Office - 365 group as an alternative to a mail-enabled security group. -- Microsoft Entra ID does not allow a group to be added to the membership of an Office 365 group. - For this reason: - - - An Office 365 group can only have user objects as its members. - - Even if the query for an Office 365 group returns different object types, only user objects - are added to group membership. - - The nesting option in the _Out of Bounds_ settings for an identity store will empty the - membership of a Smart Group of the Office 365 type, because nested groups cannot be added as - group members. See the - [Manage Group Membership Settings](/docs/directorymanager/11.0/signin/identitystore/configure/outofbounds.md)topic. - - A Dynasty cannot be created as an Office 365 group. - -- You can create and manage distribution groups. -- You can also create teams and channels in MS Teams. -- You cannot create Office 365 connected Yammer groups and Planner groups using GroupID. These - groups can be created from their respective portals. However, Yammer and Planner groups are - displayed in the GroupID portal when their respective subscriptions are added to Office 365. When - you update these groups using GroupID, your changes will be reflected on the Yammer, and Planner - portals respectively. -- Microsoft Entra ID supports multiple primary owners for a group. One primary owner is mandatory. -- Only user objects can be set as primary owners. -- When you expire an Office 365 group using GroupID, its member list is backed up in the database - and then cleared from Office 365. The Microsoft Graph API does not allow for the modification and - removal of the mail attribute; therefore, it is not possible to remove the group’s email and make - it mail-disabled. -- GroupID cannot manipulate directory-synced objects (objects that are synced from on-premises - Active Directory to Microsoft Entra ID). - -## User and Contact Objects in Microsoft Entra ID - -- You can create users (non mail-enabled) and mailboxes in a Microsoft Entra IDidentity store. The - contact object type is not supported. -- The Photo attribute is only available for an Office 365 user (mailbox). -- The GroupID portal does not display the password expiry date of a user account in a Microsoft - Entra ID identity store. -- The ‘block sign in’ option in Microsoft Entra Admin Center is enabled when a user's account is - disabled or locked out in GroupID. For example, if a user is locked out due to the domain policy - or disabled by the User Life Cycle schedule, block sign in will be enabled. The disabled/locked - user will not be able to log into his or her workstation either. - -## Miscellaneous - -- For a Microsoft Entra ID identity store, you must configure Office 365 as the messaging provider - and SMTP server. -- The Recycle Bin does not display any data for a Microsoft Entra ID identity store. -- GroupID Management Shell cannot communicate directly or remotely with Microsoft Entra ID and - Office 365. -- Smart Groups and Dynasties in a Microsoft Entra ID identity store use a device structured query - language (and not an LDAP query) to update group membership. -- Only the Microsoft Entra ID attributes listed in the Microsoft Graph API v 3.26.0 schema file are - available in GroupID. -- The company attribute in Microsoft Entra ID stores the name of the company registered in Microsoft - Entra Admin Center, and cannot be manipulated using GroupID. A Microsoft Entra ID identity stores - uses the OfficeLocation attribute as an alternative to the company attribute. - -**See Also** - -- [Manage an Identity Store](/docs/directorymanager/11.0/signin/identitystore/manage.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/_category_.json b/docs/directorymanager/11.0/signin/identitystore/configure/_category_.json deleted file mode 100644 index f1d2b6b454..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Configure an Identity Store", - "position": 50, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "configure" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md b/docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md deleted file mode 100644 index 83b6c01140..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: "Enable Authentication Types" -description: "Enable Authentication Types" -sidebar_position: 20 ---- - -# Enable Authentication Types - -You must enable authentication types for an identity store to allow users to use them for second -factor authentication and multifactor authentication. - -Moreover, you must also enable enrollment for an identity store, so users can enroll their accounts. - -What do you want to do? - -- Enable Authentication Types -- Enable Enrollment -- Enable QR Code - -## Enable Authentication Types - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Authentication - Types**. -4. On the **Authentication Types** page, use the toggle button for an authentication type to enable - or disable it. - Enabled authentications types are available to identity store users for enrollment and - authentication. You must configure them before they can be used. Supported authentication types - are: - - - Security Questions - - SMS - - Email - - Authenticator - - Linked Account - - YubiKey - - Windows Hello - -5. Click **Save**. - -## Enable Enrollment - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations under Settings** in the left pane. Then click **Authentication Types**. -4. On the **Authentication Types** page, select the **Enrollment Enabled** check box to force - unenrolled users to enroll their identity store accounts in GroupID. - Do not select this check box if you do not want to use multifactor authentication or second - factor authentication in GroupID. -5. Click **Save**. - -NOTE: For second factor authentication and multifactor authentication to work in GroupID, the -**Enrollment Enabled** check box must be selected. Else, users will not be able to enroll, which -will prevent them from using GroupID. - -## Enable QR Code - -The administrator can enable the QR code option for an identity store to provide users with a -passwordless method for signing into GroupID. - -Users can simply scan the QR code with the GroupID mobile app on their smartphones to connect Admin -Center or the GroupID portal to an identity store and sign in, without the need to provide a -username and password. - -To enable QR code for an identity store: - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under Settings in the left pane. Then click **Authentication Types**. -4. On the **Authentication Types** page, set the **QR Code Authentication** toggle button to - _Enabled_ to enable QR code for the identity store. - Users can use QR code for passwordless authentication while connecting Admin Center or the - GroupID portal to this identity store. -5. Click **Save**. - -### Prerequisite for Using QR Code - -To sign in via QR code, users must first install the GroupID mobile app on their mobile device. - -**To install the GroupID app:** - -1. Do the following with respect to your device: - - - On an iPhone, launch App Store and search for Imanami GroupID. - - On an Android phone, launch Google Play and search for Imanami GroupID. - -2. Tap **Install** to install the app. - -### Sign in with QR Code - -To sign in using the QR code, see the -[Access Admin Center](/docs/directorymanager/11.0/signin/signin.md) topic. - -**See Also** - -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) -- [Configure Second Factor Authentication](/docs/directorymanager/11.0/signin/authpolicy/sfa.md) -- [Configure Multifactor Authentication](/docs/directorymanager/11.0/signin/authpolicy/mfa.md) -- [Set Up Authentication Types](/docs/directorymanager/11.0/signin/authpolicy/setupauth/overview.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/circularreference.md b/docs/directorymanager/11.0/signin/identitystore/configure/circularreference.md deleted file mode 100644 index 9f4ebc27dc..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/circularreference.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: "Manage Circular Reference" -description: "Manage Circular Reference" -sidebar_position: 120 ---- - -# Manage Circular Reference - -By default, GroupID checks for circular reference and does not allow it when users update objects -manually or when objects are auto updated via a GroupID schedule. If a circular reference occurs, -GroupID displays an error and prevents the user from saving the change. - -Examples of circular reference are: - -- When UserA is a direct report of UserB and UserB is a direct report of UserC, a circular reference - would occur when you try to set UserA as UserC's manager. -- When you try to add a group as its member, say, add GroupA as a member of GroupA, a circular - reference would occur. -- When GroupA is a member of GroupB, GroupB is a member of GroupC, a circular reference would occur - when you try to add GroupC as a member of GroupA. - -You can change the default setting to allow GroupID to save updates to objects even when a circular -reference occurs. - -What do you want to do? - -- [Allow Circular Reference](#allow-circular-reference) -- [Skip the replication of members of a dynamic group in Entra ID ](#skip-the-replication-of-members-of-a-dynamic-group-in-entra-id) - -## Allow Circular Reference - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Miscellaneous**. -4. On the **Miscellaneous** page, uncheck the **Check for Circular Reference** check box to allow - GroupID to save changes to objects that involve circular reference. - The check box is selected by default, indicating that GroupID prevents circular reference in - objects. -5. Click **Save**. - -## Skip the replication of members of a dynamic group in Entra ID - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Miscellaneous**. -4. On the **Miscellaneous** page, select the **Skip Replicating members related attributes of Groups - with dynamic membership** check box to skip the replication of members of a dynamic group in - Microsoft Entra ID based identity store. -5. Click **Save**. diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/configure.md b/docs/directorymanager/11.0/signin/identitystore/configure/configure.md deleted file mode 100644 index 87db670a2b..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/configure.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: "Configure an Identity Store" -description: "Configure an Identity Store" -sidebar_position: 50 ---- - -# Configure an Identity Store - -Various configurations can be defined for an identity store. - -**To manage configurations:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. You can configure the following for an identity store: - - - [Identity Store-specific Configurations](#identity-store-specific-configurations) - - [Security Roles](#security-roles) - - [Replication Settings](#replication-settings) - - [Identity Store History](#identity-store-history) - - [Workflows](#workflows) - - [Entitlements](#entitlements) - - [Schedules](#schedules) - -## Identity Store-specific Configurations - -The following configurations have to be defined for an identity store: - -- An SMTP server for sending email notifications. See the - [Configure an SMTP Server](/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md) - topic. -- Authentication types and policies. See the - [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) - topic. -- A group life cycle policy that controls the expiry and deletion of groups in the identity store. - See the - [Manage Group Lifecycle Settings](/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md) - topic. -- Membership life cycle policies for static groups. See the - [Manage Membership Life Cycle Policies](/docs/directorymanager/11.0/signin/identitystore/configure/membershiplifecycle.md) - topic. -- Inheritance settings for Dynasties. See the - [Manage Dynasty Settings](/docs/directorymanager/11.0/signin/identitystore/configure/dynastysettings.md) - topic. -- Group update and membership settings. See the - [Manage Group Membership Settings](/docs/directorymanager/11.0/signin/identitystore/configure/outofbounds.md) - topic. -- Group name prefixes, which are used to append group names. See the - [Set Group Name Prefixes](/docs/directorymanager/11.0/signin/identitystore/configure/prefixes.md) - topic. -- Settings for history tracking. See the - [Configure History Tracking](/docs/directorymanager/11.0/signin/identitystore/configure/historytracking.md) - topic. -- A messaging provider so that mail-enabled objects can be created in the identity store. See the - [Configure a Messaging Provider](/docs/directorymanager/11.0/signin/identitystore/configure/messagingprovider.md) - topic. -- Profile validation settings to ensure the accuracy of users’ information in the directory. See the - [Configure User Profile Validation](/docs/directorymanager/11.0/signin/identitystore/configure/profilevalidation.md) - topic. -- Circular reference settings for object update. See the - [Manage Circular Reference ](/docs/directorymanager/11.0/signin/identitystore/configure/circularreference.md)topic. -- Password restrictions and rules for setting identity store passwords. See the - [Configure Password Options](/docs/directorymanager/11.0/signin/identitystore/configure/passwordoptions.md) - topic. - -## Security Roles - -An identity store has security roles defined for it, and only role members can access GroupID. See -the [Security Roles](/docs/directorymanager/11.0/signin/securityrole/overview.md) -topic. - -You can specify the following configurations for a role: - -- Assign permissions on different GroupID functions. See the - [Security Role – Permissions](/docs/directorymanager/11.0/signin/securityrole/permissions.md) - topic. -- Specify policies for roles. See the - [Security Role Policies](/docs/directorymanager/11.0/signin/securityrole/policy/overview.md) - topic. - -## Replication Settings - -The Replication service is responsible for replicating objects that are created or modified directly -on the directory server, to the Elasticsearch repository. You can specify the attributes for the -Replication Service to replicate from the provider to the Elasticsearch repository. - -See the -[Manage Local Replication Settings](/docs/directorymanager/11.0/signin/identitystore/replication.md) -topic for details. - -## Identity Store History - -You can view the changes made to an identity store’s configurations, workflows, and security roles -in an identity store. See the -[Identity Store History](/docs/directorymanager/11.0/signin/identitystore/view/view.md) -topic. - -## Workflows - -Workflows are a built-in auditing system to ensure that changes made to directory objects are -approved by an authorized user before they are committed to the directory. - -You can define different workflows for an identity store. For example, you can define a workflow -that triggers when a user creates a group in the directory using GroupID. See the -[Workflows](/docs/directorymanager/11.0/signin/workflow/overview.md) topic for -details. - -## Entitlements - -Specify file servers in Active Directory and SharePoint sites to view and update the permissions -assigned to objects on shared resources. See the -[Entitlement](/docs/directorymanager/11.0/signin/entitlement/overview.md) topic. - -## Schedules - -Define schedules to auto execute different GroupID functions, such as group expiry and deletion, -Smart Group membership update, temporary additional manager assignment to users, and more. See the -[Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) topic. - -**See Also** - -- [Manage an Identity Store](/docs/directorymanager/11.0/signin/identitystore/manage.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/dynastysettings.md b/docs/directorymanager/11.0/signin/identitystore/configure/dynastysettings.md deleted file mode 100644 index 3e55463d36..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/dynastysettings.md +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: "Manage Dynasty Settings" -description: "Manage Dynasty Settings" -sidebar_position: 60 ---- - -# Manage Dynasty Settings - -A Dynasty is a Smart Group that creates and manages other Smart Groups using information in the -directory. The Smart Groups that a Dynasty creates are called child groups that become members of -their respective parent Dynasties. - -A Dynasty retrieves data from the directory on the same pattern as a Smart Group does, but it has -its own mechanism of dividing the query results into child groups. To learn more about Dynasties, -see the [Dynasties](/docs/directorymanager/11.0/signin/concepts/concepts.md#dynasties) -topic. - -You can control how GroupID processes Dynasties through the following settings: - -- Auto update Dynasty children when parent changes -- Auto delete empty and orphan child Dynasties -- Specify attributes for inheritance - -**How does GroupID update Dynasties?** - -Each Smart Group and Dynasty has a query defined for it. On update, this query is executed to update -membership. - -The GroupID portal provides two methods to update Smart Groups and Dynasties: - -- **Manual update:** you can manually execute the query for a Dynasty and Smart Group any time. -- **Scheduled update**: Scheduled updates, powered by a Smart Group Update schedule, auto run at a - specified frequency to update the target groups and Dynasties. See the - [Smart Group Update Schedule](/docs/directorymanager/11.0/signin/schedule/smartgroupupdate.md) - topic. - -**What happens on Dynasty update?** - -When a Dynasty is updated, the following happens: - -- Each Dynasty has a query defined for it. On update, the query retrieves records from the directory - and updates Dynasty membership. -- You can specify certain attributes whose values are passed on from parent to child Dynasties. The - values of these attributes are updated when the Dynasty is updated. See the - [Specify Attributes for Inheritance](#specify-attributes-for-inheritance) topic. - -What do you want to do? - -- [Auto Update Dynasty Children When Parent Changes](#auto-update-dynasty-children-when-parent-changes) -- [Auto Delete Empty and Orphan Dynasty Children](#auto-delete-empty-and-orphan-dynasty-children) -- [Specify Attributes for Inheritance](#specify-attributes-for-inheritance) - -## Auto Update Dynasty Children When Parent Changes - -By default, when you update a parent Dynasty, its child groups are also updated. However, you can -disable the Dynasty children update option, in which case, each child group will have to be updated -like a single Smart Group. - -**To apply auto update settings:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Dynasties**. -4. On the **Dynasties** page, select the **Update Dynasty Children** check box. This will update the - child groups every time the parent Dynasty is updated. - Clear this check box to prevent Dynasty children from getting updated with the parent Dynasty. -5. Click **Save**. - -## Auto Delete Empty and Orphan Dynasty Children - -An empty child Dynasty is one with no member and an orphan child Dynasty is one whose parent Dynasty -has been removed. - -By default, empty and orphan Dynasty children are auto deleted from the identity store. However, you -can disable this setting to retain empty and orphan Dynasty children in the identity store. - -**To auto delete empty and orphan Dynasty children:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Dynasties**. -4. On the **Dynasties** page, select the **Delete Empty and Orphan Dynasty Children** check box. - This ensures that empty and orphan Dynasty children are automatically deleted from the identity - store. - When this check box is not selected, empty and orphan Dynasty children are retained in the - identity store. -5. Click **Save**. - -## Specify Attributes for Inheritance - -You can control the attributes that a child Dynasty inherits from its parent. - -By default, the values of the following attributes are passed on from the parent to child Dynasties -(for an Active Directory identity store): - -| Attribute | Description | -| ---------------- | ----------------------------------------------------------------------------------------- | -| unauthOrig | Contains the list of DNs of users who do not have permissions to send email to the group. | -| authOrig | Contains the list of DNs of users who have permissions to send email to the group. | -| dLMemRejectPerms | Contains the DNs of groups that do not have permissions to send email to the group. | -| dLMemSubmitPerms | Contains the DNs of groups that have permissions to send email to the group. | -| delivContLength | Contains the maximum limit for incoming messages to the group. | -| managedBy | Contains information about the group’s primary owner. | -| groupType | Contains information about the group’s type, i.e., security or distribution group. | - -You can add and remove attributes to this list. - -**To add/remove attributes for inheritance:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Dynasties**. -4. On the **Dynasties** page, the **Attributes** area lists the attributes that child Dynasties - inherit from their respective parent Dynasties. - - - To add an attribute, click **Add Attributes**. On the **Add Fields** dialog box, select the - required attributes and click **Add**. - - To remove an attribute, click **Remove** for it. - -5. Click **Save**. - -NOTE: (1) At the Dynasty level, you can control whether child Dynasties should inherit these -attributes only when child Dynasties are created, or every time the parent Dynasty is updated. You -can also opt to disable attribute inheritance for child Dynasties. - (2) If, for a managerial Dynasty, the ‘Set manager as owner’ option is applied and the managedBy -attribute is set for inheritance, then the latter settings will not have any impact and the manager -of a child Dynasty will be set as its owner. - -NOTE: In a Microsoft Entra ID identity store, where a group can have multiple primary owners, the -owner of the parent Dynasty and the manager of a child Dynasty are collectively set as owners of -that child Dynasty. - -**See Also** - -- [Smart Group Update Schedule](/docs/directorymanager/11.0/signin/schedule/smartgroupupdate.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/groupexpirydeletion.md b/docs/directorymanager/11.0/signin/identitystore/configure/groupexpirydeletion.md deleted file mode 100644 index 4487c2c5de..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/groupexpirydeletion.md +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: "Group Expiry and Deletion" -description: "Group Expiry and Deletion" -sidebar_position: 40 ---- - -# Group Expiry and Deletion - -Using GroupID, you can expire and delete groups in two ways: - -- Manually expire and delete groups -- Automatically expire and delete groups using the Group Life Cycle schedule - -## What Happens When a Group Expires - -GroupID provides two ways to expire a group: - -- You can manually expire a group from the GroupID portal. -- The Group Life Cycle schedule expires groups automatically based on the expiry policy specified - for the respective group. - -The following events take place when a group expires: - -**In case of an Active Directory identity store with Microsoft Exchange as messaging provider:** - -- The group becomes inactive and is locked for all activities. -- "EXPIRED_" is added as a prefix to the group name. -- A mail-enabled distribution group is mail-disabled. -- For a security group, its member list is cleared. However, GroupID keeps a backup of its - membership in the database. - -**In case of an Active Directory identity store with Office 365 as messaging provider:** - -The following happens when a distribution group is expired manually or via the Group Lifecycle job: - -- The group’s email address is removed in Active Directory. -- "EXPIRED_" is added as a prefix to the group name. -- The group is removed from Office 365 when the AAD Sync schedule runs. - -On renewing an expired distribution group, the following happens: - -- The group’s email address is added in Active Directory. -- The "EXPIRED_" prefix is removed from the group’s name. -- The group is created with members in Office 365 when the AAD Sync schedule runs. - -**In case of a Microsoft Entra ID identity store with Office 365 as messaging provider:** - -The following happens when a distribution group is expired manually or via the Group Life Cycle -schedule: - -- GroupID takes a backup of the group’s membership. -- It empties out the group’s membership in Office 365. - - NOTE: When an Office 365 group is expired, its member list is backed up in the database and - cleared from Office 365. - -On renewing an expired distribution group, the following happens: - -- The group’s membership is repopulated in Microsoft Entra ID and Office 365. - -### Renewal of Expired Groups - -If you want an expired group back, you can renew it. On renewal, the group becomes active again and -its expiry policy is re-applied to it, starting from the date of renewal. - -## What Happens When a Group is Deleted - -Using GroupID, groups can be deleted physically or logically. Deleted groups can be viewed in the -GroupID portal. You can distinguish physically deleted groups from logically deleted groups as: - -- Physically deleted groups are listed under _Tombstone Groups_. -- Logically deleted groups are listed under _Logically Deleted Groups_. They also have Deleted_ - prefixed to their display names. However, groups in the Recycle Bin are displayed by their names, - not their display names. - -Both types are locked for further operations until restored. - -NOTE: While all searches in GroupID are catered through Elasticsearch, the Recycle Bin is an -exception; it fetches data from the directory. - -NOTE: The Recycle Bin does not display data for a Microsoft Entra ID identity store. - -### Physical Deletion - -Physical group deletion refers to manually deleting groups from the GroupID portal. GroupID moves a -physically deleted group to the Recycle Bin while stripping it of most of its properties. You cannot -delete a group from the Recycle Bin; however, you can restore it. The restoration process not only -restores the group to its original container, but it also reinstates the home container for the -group, if deleted. - -A physically deleted group is restored with limited attributes; its membership is not restored. -Smart Groups and Dynasties are restored as static groups with no members and no query. - -### Logical Deletion - -Groups that are deleted by the Group Life Cycle schedule are considered as logically deleted. The -schedule deletes expired groups x number of days after group expiry, as specified in the -[Auto Delete Expired Groups](/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md#auto-delete-expired-groups) -topic. - -On deletion, logically deleted groups are moved to the Recycle Bin with all their attributes intact. -As a result, a logically deleted group, when restored, returns to its state it had at the time of -deletion. The restoration process not only restores the group to the container from where it was -deleted but it also reinstates the home container for the group, if deleted. - -You can also manually delete a logically deleted group in the Recycle Bin, making it physically -deleted. - -### Deletion Notifications - -When the Group Life Cycle schedule deletes a group, it notifies the group owners or, if there is no -owner, the default approver. The job does not delete a group that neither has an owner nor a default -approver. See the -[Specify a Default Approver](/docs/directorymanager/11.0/signin/workflow/advancedsettings.md#specify-a-default-approver) -topic. - -**See Also** - -- [Manage Group Lifecycle Settings](/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md) -- [Group Life Cycle Schedule](/docs/directorymanager/11.0/signin/schedule/grouplifecycle.md)[Specify a Default Approver](/docs/directorymanager/11.0/signin/workflow/advancedsettings.md#specify-a-default-approver) diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md b/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md deleted file mode 100644 index d6b415c62d..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md +++ /dev/null @@ -1,299 +0,0 @@ ---- -title: "Manage Group Lifecycle Settings" -description: "Manage Group Lifecycle Settings" -sidebar_position: 30 ---- - -# Manage Group Lifecycle Settings - -GroupID can effectively manage group life cycle through all stages, from creation to deletion. It -enables you to define the following setting to control the group life cycle in an identity store: - -- A default expiry policy for groups -- Exclude groups from expiration and deletion -- Prevent the expiry of security groups -- Wait period for deleting expired groups -- Group usage life cycle -- Group attestation -- Notifications for expiring groups - -Of these, only the first setting, i.e., the group expiry policy, can be changed for individual -groups. All other settings apply to all groups in the identity store and cannot be changed for -individual groups. - -The Group Life Cycle schedule defined for the identity store is responsible for applying the group -life cycle settings to groups. This schedule runs on containers you specify as its targets, to -process the groups that reside therein. Groups that reside outside of the target containers will not -be processed by the schedule; hence, the group life cycle policy is not applied to them. See the -[Group Life Cycle Schedule](/docs/directorymanager/11.0/signin/schedule/grouplifecycle.md) -topic. - -NOTE: Before you specify a group life cycle policy for a Microsoft Entra ID identity store, see the -[Group Expiration Policy](/docs/directorymanager/11.0/signin/identitystore/advsentraid.md#group-expiration-policy) -section in the -[Microsoft Entra ID vs. Active Directory Identity Stores](/docs/directorymanager/11.0/signin/identitystore/advsentraid.md) -topic. - -What do you want to do? - -- [Set a Default Expiry Policy for Groups](#set-a-default-expiry-policy-for-groups) -- [Apply Policy on Specific Containers](#apply-policy-on-specific-containers) -- [Exempt Security Groups from Expiry](#exempt-security-groups-from-expiry) -- [Auto Delete Expired Groups](#auto-delete-expired-groups) -- [Enable Group Usage Lifecycle](#enable-group-usage-lifecycle) -- [Enable Group Attestation](#enable-group-attestation) -- [Set Group Expiry Notifications](#set-group-expiry-notifications) - -## Set a Default Expiry Policy for Groups - -The expiry policy specifies the period for which a group remains active. When the period ends, the -group expires. - -When a group is created, it inherits the default expiry policy, but you can change it for individual -groups. The Group Life Cycle schedule executes the Group Lifecycle policy as defined for the -identity store, but monitors group expiry dates as determined by each group’s expiry policy. This -job expires groups according to their respective expiry policy. - -**To set a default expiry policy:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Group Lifecycle**. -4. In the **Default Expiration Policy** drop-down list on the **Group Lifecycle** page, select an - expiration criterion that you want to set as default. Options are: - - - Never Expire - - Expire Every 30 Days - - Expire Every 60 Days - - Expire Every 90 Days - - Expire Every 120 Days - - Expire Every 6 Months - - Expire Every Year - - Other: On selecting this, two boxes are displayed. Select a unit of time (years, months, days) - from the second list and specify a number in the first box to set a custom period for group - expiration. - -5. Click **Save**. - -## Apply Policy on Specific Containers - -By default, the Group Life Cycle schedule evaluates all groups that reside in the container(s) -specified as its targets, and processes them according to the group lifecycle policy. However, you -can exempt containers from the Group Life Cycle schedule, so that it does not process the groups in -those containers. - -**To limit the policy to specific containers:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Group Lifecycle**. -4. On the **Group Lifecycle** page, select one of the following options: - - - **Do not apply policy on following containers** - - 1. Select this option and click **Add/Modify Container(s)**. - 2. On the **Add Container(s)** dialog box, select the containers you want to exempt from the - Group Lifecycle policy settings and click **Add**. The selected containers are displayed - in the **Container(s)** area. The Group Life Cycle schedule will not process the groups - in these containers even when they are set as its targets. - - - **Apply policy only on following containers** - - 1. Select this option and click **Add/Modify Container(s)**. - 2. In the **Add Container(s)** dialog box, select the container(s) you want to apply the - Group Lifecycle policy to, and click **Add**. The selected containers are displayed in - the **Container(s)** area. The Group Life Cycle schedule will only process groups in - these containers in the identity store. - -5. Click **Save**. - -NOTE: If a container is set as target in a Group Life Cycle schedule while it is also listed as an -exempted container in the Group Lifecycle policy, the schedule does not process it. As a result, -different aspects of the Group Lifecycle policy, such as group expiry and group attestation does not -apply to groups in the container. - -## Exempt Security Groups from Expiry - -By default, security group expiration is disabled, indicating that security groups in the identity -store cannot be expired either manually or by the Group Life Cycle schedule. You must enable it to -expire security groups. - -When a security group expires, its membership is cleared. However, GroupID keeps a backup of its -membership in the database. - -NOTE: In a Microsoft Entra ID identity store, the security group expiry option also applies to -Office 365 groups. - -**The security group expiration paradox** - -A security group may grant or restrict access to network resources to its members. Enabling security -group expiry may pose a problem; the members of an expired security group will get undesired access -to network resources, or will be denied access to resources that were assigned to it. - -To manage this, make sure your critical security groups reside in the OU that the expiry policy does -not apply to. Use the **Do not apply policy on following containers** option to set the OU aside -(see the [Apply Policy on Specific Containers](#apply-policy-on-specific-containers) topic). In this -way, those groups will not expire even if you enable the expiry of security groups. - -**To enable security group expiry:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Group Lifecycle**. -4. On the **Group Lifecycle** page, select the **Expire Security Groups** check box to allow the - expiry of security groups in the identity store. (Security groups can be expired manually and by - the Group Life Cycle schedule.) - Clear the check box to prevent the expiry of security group. -5. Click **Save**. - -## Auto Delete Expired Groups - -You can set GroupID to auto delete expired groups x number of days after expiry. These wait days -apply to both auto expired and manually expired groups. The Group Life Cycle schedule is responsible -for deleting expired groups. These auto deleted groups are called logically deleted groups. - -**To set wait days:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Group Lifecycle**. -4. On the **Group Lifecycle** page, select the **Delete Expired Groups** check box and type the - number of days after which you want an expired group to be deleted, starting from the expiry - date. -5. Click **Save**. - -## Enable Group Usage Lifecycle - -You can set the expiry of mail-enabled distribution groups based on their usage. It is as: - -- If an expiring group is used in the last x number of days, it will be renewed by reapplying the - expiry policy to it. -- If a group is not used in the last x number of days, its life will be reduced to 7 days. - -The Group Usage Service schedule time stamps each mail-enabled distribution group with respect to -its last usage. The Group Life Cycle schedule extends or reduces the life of a group based on this -information. - -**To enable group usage lifecycle:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Group Lifecycle**. -4. On the **Group Lifecycle** page, use the toggle button for **Extend** **or reduce the life of - mail-enabled groups** to enable group usage lifecycle. -5. Select one of the following options: - - - **Extend group life if used in last x Days:** select this option button and specify x number - of days in the box to prevent your active mail-enabled distribution groups from expiry. If an - expiring group is used in the last x number of days, the Group Life Cycle schedule will renew - it by reapplying its expiry policy. - - **Reduce group life if not used in last x Days:** select this option button and specify x - number of days in the box to reduce the life of mail-enabled distribution groups that have not - received any email in the last x number of days. - - By default, this setting works for groups that are idle for 60 days since their creation, - last renewal, or last usage. You can change the number of days anywhere from 1 to 360. The - Group Life Cycle schedule will reduce the life of such groups to 7 days and send an email - notification to the group owner or the default approver (for groups without owners), - informing them of the approaching expiry. See the - [Specify a Default Approver](/docs/directorymanager/11.0/signin/workflow/advancedsettings.md#specify-a-default-approver) - topic. - -6. Click **Save**. - -## Enable Group Attestation - -You can enforce group owners to review and validate the attributes and membership of expiring groups -before renewing them. While enabling group attestation, consider the following: - -- Group attestation does not apply to groups that have ‘Never Expire’ as their expiry policy. -- The Membership Life Cycle schedule must be defined for the identity store. -- Group attestation does not apply to excluded containers. See the - [Apply Policy on Specific Containers](#apply-policy-on-specific-containers) topic. -- With group attestation enabled, the Group Usage Lifecycle settings cannot be applied. If those - settings are already defined, they get disabled when you enable group attestation. See the the - [Enable Group Usage Lifecycle](#enable-group-usage-lifecycle) topic. -- For attestation, group owners must use the GroupID portal. -- In the default portal template, a few fields (attributes) for group attestation are specified. You - can add and remove fields to include those that you want group owners to validate and update. -- In case of a Dynasty, parent and child Dynasties have to be attested individually. Child Dynasties - include both middle and leaf Dynasties. However, child Dynasties cannot be renewed after - attestation, as they are renewed with their respective parent Dynasty. -- When attesting the membership of a parent Dynasty, child Dynasty, or a Smart Group, the members - list does not include group objects for attestation. Only users and contacts are displayed. When - attesting static groups, however, the members list also includes groups for attestation. - -**To enable group attestation:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Group Lifecycle**. -4. On the **Group Lifecycle** page, use the toggle button for **Enforce group owners to attest - expiring groups** to enable group attestation for the identity store. -5. Select the **Enforce user to verify each member** check box to enforce group owners to verify - each group member one by one (by individually specifying the status of each member as _active_ or - _inactive_). When this check box is not selected, group owners can select all members in a single - click and specify their status as _active or inactive_. -6. You can specify the duration for which inactive members remain in group membership. - - - Select the **Specify member inactive period** check box and specify a duration in days (for - example, 5). When the status of a member is set to _inactive_, he or she is instantly removed - from group membership in the directory. In GroupID, however, he or she remains a group member - till the specified number of days, starting from the inactivation date. During this period, - the member can be activated (added back to group membership). If the member is not activated, - the Membership Life Cycle schedule removes it from group membership in GroupID when the - specified number of days lapse. - - If you want inactive members to be instantly removed from group membership in the directory - and in GroupID, do one of the following: - - - Select the **Specify member inactive period** check box and specify ‘0’ in the box. - - Do not select the **Specify member inactive period** check box. - -7. Click **Save**. - -## Set Group Expiry Notifications - -You can choose to send email notifications 1 day, 7 days, or 30 days before a group expires, to -inform the group owners (or the default approver when the group has no primary or additional owners) -about the approaching expiry. - -**To set group expiry notifications:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Group Lifecycle**. -4. In the **Notification Options** section on the **Group Lifecycle** page, select any of the - following options to specify when group expiry notifications should be sent: - - - 1 day before group expiration - - 7 days before group expiration - - 30 days before group expiration - -5. Click **Save**. - -**Group expiry notifications and the Group Lifecycle schedule** - -The Group Life Cycle schedule handles group expiry notifications as follows: - -- When no option is selected for expiry notifications, the schedule expires the groups in the - identity store without notifying anyone. -- When notifications are enabled, the schedule notifies the primary and additional owners of the - group, or the default approver (in case the group has no owner) about the approaching expiry. In - case the notification could not be sent or no recipient is available, the schedule extends the - expiry date of the group by 7 days on the group’s expiry day. It continues to do so until the - notification is sent. -- When the **1 day before group expiration** option is selected for sending notifications and the - Group Life Cycle schedule evaluates the group for the first time a day before its expiration date, - GroupID will extend the group’s expiration date by 7 days. - -**See Also** - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) -- [ Group Expiry and Deletion](/docs/directorymanager/11.0/signin/identitystore/configure/groupexpirydeletion.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/historytracking.md b/docs/directorymanager/11.0/signin/identitystore/configure/historytracking.md deleted file mode 100644 index 65d287a637..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/historytracking.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: "Configure History Tracking" -description: "Configure History Tracking" -sidebar_position: 90 ---- - -# Configure History Tracking - -In GroupID, history for an identity store is tracked at two levels: - -- **When objects are created, modified, and deleted** - When you enable history tracking for an - identity store, GroupID tracks all actions that are committed to the directory using: - - - GroupID portal (whether manually, through Synchronize jobs. or changes to object entitlements) - - GroupID Management Shell cmdlets - - GroupID mobile app - - GroupID Admin Center (actions performed by schedules only) - - GroupID APIs - - You can choose to track specific actions, such as ownership change and object deletion. The - table in - the [Track Specific Actions for an Identity Store](#track-specific-actions-for-an-identity-store) topic - lists some individual actions available for tracking. - - Use the _History_ node in the GroupID portal to view the history data that the history tracking - function collects for objects. History for individual objects is also displayed in the - respective object’s properties. - -- **When changes are made to an identity store’s configurations** - GroupID enables you to track the - changes made to an identity store’s configurations, which include the following: - - - identity store properties - - workflows - - security roles - - See the - [Identity Store History](/docs/directorymanager/11.0/signin/identitystore/view/view.md) - topic to view the tracked history data. - -By default, history tracking is disabled. You can: - -- Enable the history tracking function for an identity store. -- Track all or specific actions. -- Specify a period for retaining history data in the GroupID database. When the period is over, data - is exported to CSV files and deleted from the database. - -RECOMMENDED: History tracking can slow down system performance. For optimal performance, it is -recommended that you track only specific, more important actions and limit GroupID history data -storage to the most recent records. - -What do you want to do? - -- [Enable History Tracking for All Actions](#enable-history-tracking-for-all-actions) -- [Track Specific Actions for an Identity Store](#track-specific-actions-for-an-identity-store) -- [Retain Complete History Data](#retain-complete-history-data) -- [Retain History for a Specific Period](#retain-history-for-a-specific-period) -- [Disable History Tracking](#disable-history-tracking) - -## Enable History Tracking for All Actions - -You can choose to enable or disable history tracking for an identity store. When enabled, all -actions that users perform on directory objects using GroupID are tracked by default. For example, -when a user creates a group, adds members to it, changes its expiry date, and assigns owners, -history logs are generated in GroupID. Moreover, changes made to identity store configurations, -workflows, and security roles are also tracked. - -**To enable history tracking:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **History**. -4. Use the toggle button in the top right corner to enable or disable history tracking for the - identity store. - - - On enabling, _All Actions_ is auto selected in the **Track** drop-down list. This indicates - that (a) all actions that users perform on directory objects and (b) changes made to identity - store configurations, workflows, and security roles are tracked for the identity store. - To track specific actions, see the - [Track Specific Actions for an Identity Store](#track-specific-actions-for-an-identity-store) - topic. - - Disabling history tracking does not delete already recorded history data. - -5. Click **Save**. - -## Track Specific Actions for an Identity Store - -Rather than tracking all actions for an identity store, you can choose to track the most important -actions, such as changes to a group’s primary owner and object creation. - -**To track specific actions:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **History**. -4. On the **History** page, make sure history tracking is enabled. Them select _Selected Actions_ in - the **Track** drop-down list. This enables the **Actions** area, where the following actions are - listed: - - | Action | Description | - | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | Ownership Change | Changes to a group's primary ownership. | - | Additional Owner Change | Addition and removal of a group's additional owner(s) | - | Expiration Policy Change | Any change to a group's expiry policy. | - | Group Expire/Renew | Expiration of a group and renewal of an expired group. | - | Query Change | Changes to the query of a Smart Group or Dynasty. | - | Object Created | Creation of a new object. | - | Object Deleted | Deletion of an object. | - | Workflows history | Addition, deletion, or modification made to a workflow. It does not track the deletion of workflow requests, that is tracked under the **Identity Store history** option. | - | Security Roles history | Addition, deletion, or modification made to a security role. | - | Security Type Change | Changes to a group's security type. | - | Identity Store history | Changes to an identity store’s settings. This includes the configurations available for an identity store. This option does not track changes made to workflows and security roles. It does, however, track the deletion of workflow requests. | - -5. Click an action to track it for the identity store. The tile for the action changes to blue, - indicating that it is tracked. -6. Click **Save**. - -## Retain Complete History Data - -You can set GroupID to retain history data for the identity store in the GroupID database forever. - -**To retain history data forever:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **History**. -4. On the **History** page, select _All_ in the **History Options** drop-down list to retain all - tracked history data in the database. - - NOTE: This setting may result in a massive increase in the database size and may affect GroupID - performance. - -5. Click **Save**. - -## Retain History for a Specific Period - -You can set GroupID to retain an identity store's history data for a specified length of time in the -database. When the retention period is over, the History Retention schedule archives this data by -moving it from the database to CSV files. See the -[History Retention Schedule](/docs/directorymanager/11.0/signin/schedule/historyretention.md) -topic. - -**To retain history data for a specific period:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **History**. -4. On the **History** page, select one of the following options in the **History Options** drop-down - list: - - - Last 30 Days - - Last 60 Days - - Last 90 Days - - Last 120 Days - - Last 6 Months - - Last 1 Year - - Last 2 Years - - Last 5 Years - -5. Click **Save**. - -## Disable History Tracking - -On disabling history tracking for an identity store, GroupID does not log the history for actions -performed in the identity store. Disabling history tracking does not delete any already recorded -history data. - -**To disable history tracking:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **History**. -4. On the **History** page, use the toggle button in the top right corner to disable history - tracking for the identity store. -5. Click **Save**. - -**See Also** - -- [Identity Store History](/docs/directorymanager/11.0/signin/identitystore/view/view.md) -- [History in GroupID](/docs/directorymanager/11.0/signin/concepts/history.md) -- [Event Logging](/docs/directorymanager/11.0/signin/identitystore/view/eventlogging.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/membershiplifecycle.md b/docs/directorymanager/11.0/signin/identitystore/configure/membershiplifecycle.md deleted file mode 100644 index 060f723400..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/membershiplifecycle.md +++ /dev/null @@ -1,276 +0,0 @@ ---- -title: "Manage Membership Life Cycle Policies" -description: "Manage Membership Life Cycle Policies" -sidebar_position: 50 ---- - -# Manage Membership Life Cycle Policies - -A membership lifecycle policy enables you to specify a period, so that all members added or removed -from specific group(s) during that period are treated as temporary addition or removal respectively. - -You can define a membership policy for groups and OUs. In case of an OU, the policy applies to all -groups in that OU. The Membership Life Cycle schedule is responsible for applying membership -lifecycle policies to groups. - -NOTE: Membership lifecycle policies apply to static groups only. You cannot specify system critical -objects, Smart Groups, and Dynasties as target groups in a policy. - -NOTE: When Smart Groups and Dynasties reside in a target OU, GroupID does not process them. - -## Types of Membership Lifecycle Policies - -You can define two types of membership life cycle policies: - -- **Add temporary** - Users added to group membership during a specified period will be temporary - members, to be removed from membership at the end of the period. If this policy is extended to - existing group members, then all members (including permanent members) will be removed from group - membership when the period ends. -- **Remove temporary** - Users added to group membership during a specified period will be - temporarily removed on addition, to be permanently added to group membership at the end of the - period. If this policy is extended to existing group members, then all members (including - permanent members) will be temporarily removed from group membership for the specified period. At - the end of the period, they will be added back as permanent members. - -## Key Features - -Some main features of the membership lifecycle policies are: - -- **Groups with nested membership** - If a policy is applied to a group with nested membership, it - does not affect nested membership. For an OU with nested OUs, the policy applies to all nested - OUs. -- **Groups with different settings for individual members** - When a policy is applied to a group - having members with temporary addition or removal applied to them individually, then individual - member settings take precedence over the group policy. Temporary addition or removal applied to - individual members remains intact when you remove a policy from a group or OU. -- **Single policy rule** - A single policy can be applied to a group or an OU at a time. Hence, a - group or OU cannot be set as the target in more than one policy. If you apply a policy to an OU - that contains a group with a different policy already applied to it, then the group policy would - be effective. -- **Notifications** - GroupID generates notifications when users are temporarily added or removed - from a group’s membership. See the - [Manage Membership Life Cycle Notifications](/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md#manage-membership-life-cycle-notifications) - topic. - -What do you want to do? - -- [Specify an ‘Add Temporary’ Membership Policy](#specify-an-add-temporary-membership-policy) -- [Specify a ‘Remove Temporary’ Membership Policy](#specify-a-remove-temporary-membership-policy) -- [Edit a Policy](#edit-a-policy) -- [Reapply a Policy](#reapply-a-policy) -- [Delete a Policy](#delete-a-policy) - -## Specify an ‘Add Temporary’ Membership Policy - -An _add temporary_ membership policy states that all members added to the target groups during a -certain period will be temporary. When the period ends, they will be removed from group membership. - -**To define a policy:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Membership Life - Cycle**. - The **Group/OU Based Membership Lifecycle** page displays any group/OU based membership policy - already defined. -4. Click **Add**; the **Add Group/OU Based Membership Lifecycle Policy** dialog box is displayed. -5. In the **Membership Type** drop-down list, select _Add Temporary_. -6. To specify a duration for the policy, select one of these options: - - - Click **Days** and in the box below, specify the number of days the policy will apply to - target group(s), starting from today. - - Click **Custom** and specify a date range in the **Starting Date** and **Ending Date** boxes. - The starting date must be the current or future date. - -7. Specify groups and OUs to apply the policy to. - - - In the **Add Group and OU to Membership Policy** area, enter a search string in the box. Group - and OU names starting with the string are displayed as you type. Click **Add** for an object - to add it to the policy. - - Or - - - Click **Advanced** to search an object by different parameters, such as name, display name, - and email. - - The selected objects are displayed with their type (can be group or OU), display name, and - distinguished name. - - - For a container, the policy applies to all groups residing in it and its sub-containers. - - For a group, the policy does not apply to any groups that are nested into your selected - group(s). - - To remove an object, click **Remove** for it. - -8. Click **Add**. -9. On the **Apply Policy to Existing Members** message box, do one of the following: - - - Click **Yes** to extend the policy to include the target groups’ existing membership. All - members of the target group(s) convert to temporary at the start of the period, and get - removed from the respective group(s) when the period ends. Simply put, a group’s membership - will be emptied when the period ends. Membership change is also logged in the group’s history. - - Click **No** to apply the policy to new members only and exempt existing members. - -10. The policy is displayed on the **Group/OU Based Membership Life Cycle** page. Click **Save**. - To view the impact of the policy, go to the properties of a target group in the GroupID portal. - -## Specify a ‘Remove Temporary’ Membership Policy - -A _remove temporary_ policy states that all members added to the target group(s) during a certain -period will be temporarily removed from membership. When the period ends, those members would be -added back as permanent members. - -**To define a policy:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Membership Life - Cycle**. - The **Group/OU Based Membership Life Cycle** page displays any group/ OU based membership policy - already defined. -4. Click **Add**; the **Add Group/OU Based Membership Lifecycle Policy** dialog box is displayed. -5. In the **Membership Type** drop-down list, select _Remove Temporary_. -6. To specify a duration for the policy, select one of these options: - - - Click **Days** and in the box below, specify the number of days the policy will apply to - target group(s), starting from today. - - Click **Custom** and specify a date range in the **Starting Date** and **Ending Date** boxes. - The starting date must be the current or future date. - -7. Specify groups and OUs to apply the policy to. - - - In the **Add Group and OU to Membership Policy** area, enter a search string in the box. Group - and OU names starting with the string are displayed as you type. Click **Add** for an object - to add it to the policy. - - Or - - - Click **Advanced** to search an object by different parameters, such as name, display name, - and email. - - The selected objects are displayed with their type (can be group or OU), display name, and - distinguished name. - - - For a container, the policy applies to all groups residing in it and its sub-containers. - - For a group, the policy does not apply to any groups that are nested into your selected - group(s). - - To remove an object, click **Remove** for it. - -8. Click **Add**. -9. On the **Apply Policy to Existing Members** message box, do one of the following: - - - Click **Yes** to extend the policy to include the target groups’ existing membership. All - membership of the target group(s) is temporarily removed at the start of the period, and is - added back as permanent members when the period ends. Membership change is also logged in the - group’s history. - - Click **No** to apply the policy to new members only and exempt existing members. - -10. The policy is displayed on the **Group/OU Based Membership Life Cycle** page. Click **Save**. - To view the impact of the policy, go to the properties of a target group in the GroupID portal. - -## Edit a Policy - -You can edit a policy to change its details. - -Let’s assume you have an ‘add temporary’ policy with May 1 and May 31 set as starting and ending -dates. By May 14, User A and User B are added as temporary members, to be removed from membership on -May 31. - -On May 15, you change the policy’s ending date to May 20. The new ending date will apply to members -that are added to the group hence onwards; it does not apply to User A and User B, who will still be -removed on May 31. However, if the policy is applied to existing members, User A and User B will -also be removed from membership on May 20. - -**To edit a policy:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Membership Life - Cycle**. -4. On the **Group/OU Based Membership Life Cycle** page, click the ellipsis button for a policy and - select **Edit**. -5. Make the required changes to the policy on the **Edit Group/OU Based Membership Lifecycle - Policy** dialog box. - - - For an _add temporary_ policy, follow step 5 and onwards in the - [Specify an ‘Add Temporary’ Membership Policy](#specify-an-add-temporary-membership-policy) - topic. - - For a _remove temporary_ policy, follow step 5 and onwards in the - [Specify a ‘Remove Temporary’ Membership Policy](#specify-a-remove-temporary-membership-policy) - topic. - -6. On the **Group/OU Based Membership Life Cycle** page, click **Save**. - -## Reapply a Policy - -You need to reapply a policy when: - -- A new group is created in the policy’s target OU through the identity provider, such as Active - Directory. To extend the policy to the new group, you have to reapply it. -- A group is moved to a target OU using GroupID or the identity provider. - -You do not need to reapply a policy when a new group is created in the policy’s target OU through -GroupID. In this case, the policy is automatically applied. - -Consider the following: - -- If a policy has been defined for future dates and you add a group to a target OU before the start - date, you must reapply the policy. Reapplying a policy when no group has been added to a target OU - has no impact. -- If you add a group to a target OU of a policy that is currently active, you must reapply it to - extend the policy to that group. -- When you reapply a policy after its effective dates, it has no impact. - **Example:** Let’s assume a policy is active from Jan. 20-31. Reapplying it on Feb 1 will have no - impact.\ - -NOTE: When you move a group from a target OU in a policy (OUA) to an OU that is not the target of -any policy (OUB), the policy applied to the group in OUA will continue to apply to till its end -date. - -**To reapply a policy:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Membership Life - Cycle**. -4. On the **Group/OU Based Membership Life Cycle** page, click the ellipsis button for a policy and - select **Reapply**. -5. On the **Reapply Membership Lifecycle Policy** dialog box, click **Yes** to reapply the policy to - the target groups’ new and existing members or **No** to close the dialog box without reapplying - the policy. -6. Click **Save**. - -## Delete a Policy - -Deleting a membership lifecycle policy has the following impact: - -- When a policy is deleted before or after its effective dates, it has no impact. -- When a policy is deleted during its effective dates, all members of the target groups and those of - groups in the target OUs become permanent members of the respective groups. - -To delete a policy: - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Membership Life - Cycle**. -4. On the **Group/OU Based Membership Life Cycle** page, click the ellipsis button for a policy and - select **Delete**. -5. The **Delete Membership Lifecycle Policy** message box is displayed. - - - On clicking **Yes**, all members of the target groups and those of groups in the target OUs - become permanent members of the respective groups and the policy is deleted. - - On clicking **No**, the policy is not deleted and continues to apply to the target groups and - OUs. - -6. Click **Save**. - -**See Also** - -- [Membership Life Cycle Schedule](/docs/directorymanager/11.0/signin/schedule/membershiplifecycle.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/messagingprovider.md b/docs/directorymanager/11.0/signin/identitystore/configure/messagingprovider.md deleted file mode 100644 index bf60b8283f..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/messagingprovider.md +++ /dev/null @@ -1,206 +0,0 @@ ---- -title: "Configure a Messaging Provider" -description: "Configure a Messaging Provider" -sidebar_position: 100 ---- - -# Configure a Messaging Provider - -GroupID can create email addresses for mail-enabled objects (groups, users, and contacts) with any -mailing system. It can be an Exchange Server (2013/2016/2019) deployed in your environment or an -external email provider such as Exchange Online and Office 365. - -GroupID supports the following messaging providers: - -- Microsoft Exchange 2013/2016/2019 -- Office 365 -- Google Workspace -- Other external providers, such as Exchange Online, Office 365, Yahoo, Gmail, and Google Groups - -When a messaging provider is not available in your environment or you want to restrict the creation -of mail-enabled objects in the identity store, select the _None_ option. - -## Exchange Server Priority - -In environments that run multiple versions of Microsoft Exchange, GroupID enables you to set -Exchange Server priority. All messaging provider-related actions will reiterate on Exchange servers -according to priority. - -Let’s assume you have an environment with: - -- Active Directory 2012 -- Exchange 2013 with two servers: ExchA and ExchB, where you set Exchange server priority as ExchB - and ExchA - -When you create a mail-enabled group using GroupID, it will be created in Active Directory first. -Messaging provider-related configurations will go to ExchB. In case of failure, the system will -reiterate the same action on ExchA. - -What do you want to do? - -- [Set Microsoft Exchange as Messaging Provider](#set-microsoft-exchange-as-messaging-provider) -- [Set Office 365 as Messaging Provider](#set-office-365-as-messaging-provider) -- [Set Google Workspace as Messaging Provider](#set-google-workspace-as-messaging-provider) -- [Set an External Provider to Create Email Addresses](#set-an-external-provider-to-create-email-addresses) -- [Do Not Set a Messaging Provider](#do-not-set-a-messaging-provider) - -## Set Microsoft Exchange as Messaging Provider - -Follow the steps to set Microsoft Exchange as a messaging provider. - -Step 1 – In the Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the Identity Stores page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Configurations** under Settingsin the left pane. Then click **Messaging System**. -The Messaging System page is displayed. - -Step 4 – In the Messaging Provider drop-down list, select the **Exchange version** that you want to -use. - -Step 5 – Enter the domain name where the mail server resides in the Domain name box. - -Step 6 – Enter the username and password of an authorized user account on the mail server in the -Username and Password boxes. - -Step 7 – The Server Name column in the Server Status & Priority area lists the mail servers in the -environment. GroupID randomly assigns the highest priority to a server. You can change its priority -level and set the priority for other servers.. - -Step 8 – If your required server is not listed, click **Sync Again**. - -- In the Server Status & Priority section, select the check box for the server you want to specify - or change the priority for. GroupID checks the availability of the server and displays its status - as _Online_ (available) or _Offline_ (unavailable) in the **Status** column. -- In the Priority box, select a priority level for the server, with ‘1’ representing the highest - priority. - -Step 9 – Click **Save**. - -## Set Office 365 as Messaging Provider - -Follow the steps to set Office 365 as a messaging provider. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On theIdentity page, click the ellipsis button for an identity store and select **Edit**. - -Step 3 – Click **Configurations** under Settings in the left pane. Then click **Messaging System**. - -Step 4 – On theMessaging System page, select _Office 365_ in the Messaging Provider drop-down list. - -Step 5 – From the Cloud drop-down list, select the cloud where your Microsoft Entra ID tenant -exists. - -Step 6 – Enter the domain name configured for Office 365 in the **Domain name** box. - -Step 7 – In the ApplicationID box, enter the application ID assigned to the GroupID application when -you registered it in Microsoft Entra Admin Center. - -Step 8 – In the Client box, provide the client secret value generated against the certificate -uploaded to Microsoft Entra Admin Center while registering the GroupID application. - -Step 9 – Specify the path to the PFX certificate in the PFX Certificate box. For that, click -**Choose File** and browse for the file. Select it and click **Open**. -As a prerequisite, the PFX certificate must be generated on the GroupID server and exported to this -machine for upload. - -Step 10 – In the PFX Certificate Password box, enter the password that was created while exporting -the PFX certificate. - -Step 11 – In the Server Status & Priority area, the **Server Name** box displays the name of the -mail server; the priority option does not apply to it. GroupID checks the availability of the server -and displays its status as _Online_ (available) or _Offline_ (unavailable) in theStatus column. -If the server is not listed, click **Sync Again**. - -Step 12 – Click **Save**. - -NOTE: When Office 365 is configured as the messaging provider for an Active Directory identity -store, GroupID creates distribution groups but does not populate their membership in Office 365. Use -AD Connect or any directory synchronize tool to replicate information (such as membership info) -between on-premises AD and Office 365. - -## Set Google Workspace as Messaging Provider - -Follow the steps to set a Google Workspace as a messaging provider. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the Identify Storespage, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Configurations** under Settings in the left pane. Then click **Messaging System**. - -Step 4 – On the Messaging System page, select _Google Workspace_ in the **Messaging Provider** -drop-down list. - -Step 5 – In theService Account box, enter the service account name assigned to you when you created -your Google Workspace account. - -Step 6 – Enter the username of an authorized user on the messaging provider in the Admin Username -box. - -Step 7 – Specify the path to the p12 key file in the P12 Certificate box. - Click **Choose File** and browse for the file. Select the file and click **Open**. -As a prerequisite, you must generate the p12 key file for your account in Google Cloud Console and -download it. - -Step 8 – In the Server Status & Priority area, the Server Name box displays the name of the mail -server; the priority option does not apply to it. GroupID checks the availability of the server and -displays its status as _Online_ (available) or _Offline_ (unavailable) in the Status column. -If the server is not listed, click **Sync Again**. - -Step 9 – Click **Save**. - -## Set an External Provider to Create Email Addresses - -Follow the steps to set an external provider to create email addresses. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the Identity Stores page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Configurations** under Settings in the left pane. Then click **Messaging System**. - -Step 4 – On the Messaging System page, select _Other_ in the **Messaging Provider** drop-down list. - -Step 5 – In the Domain Name box, enter the domain name of the external email provider, for example, -googlegroups.com. - -Step 6 – In the Maximum Length Allowed for Email Alias box, specify the maximum number of characters -that an email alias can contain. - -Step 7 – Enter a regular expression in the Email Alias Regular Expression box; the email alias -created in the external provider must satisfy this regular expression. -Follow these links for information about regular expressions and their syntax: - -- [Introduction to Regular Expressions](https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/28hw3sce(v%3dvs.100)) -- [Regular Expression Syntax Reference](https://msdn.microsoft.com/en-us/library/ms840427.aspx) - -Step 8 – In the Enter Example to Validate Regular Expression box, enter an email alias as an -example, and then click **Validate** to verify that the example satisfies the regular expression. - -Step 9 – Click **Save**. - -## Do Not Set a Messaging Provider - -Follow the steps to not set a messaging provider. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the Identity Stores page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Configurations** underSettings in the left pane. Then click **Messaging System**. - -Step 4 – When no messaging provider is available in your environment or you want to prevent users -from creating mail-enabled objects in the identity store, select _None_ in the Messaging Provider -drop-down list. - -Step 5 – Click **Save**. - -**See Also** - -- [Configure an SMTP Server](/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/outofbounds.md b/docs/directorymanager/11.0/signin/identitystore/configure/outofbounds.md deleted file mode 100644 index b96e6405bc..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/outofbounds.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: "Manage Group Membership Settings" -description: "Manage Group Membership Settings" -sidebar_position: 70 ---- - -# Manage Group Membership Settings - -GroupID enables you to update group membership in the following ways: - -- Add members manually (only recommended for static groups) -- Auto update Smart Groups and Dynasties using a Smart Group Update schedule. -- Import members using an external data source - -To avoid large, unforeseen changes to Smart Group and Dynasty memberships, you can configure the -following group membership setting for an identity store: - -- Specify the maximum number of members for Smart Groups and Dynasties. Then determine the action to - take when the member limit is exceeded, such as not to update or break the membership into - smaller, nested groups. -- Define a criterion for out-of-bounds exceptions to raise alerts for group owners. - -What do you want to do? - -- [Set the Maximum Number of Group Members](#set-the-maximum-number-of-group-members) -- [Manage Orphan Nested Groups](#manage-orphan-nested-groups) -- [Set a Group Update Threshold](#set-a-group-update-threshold) - -## Set the Maximum Number of Group Members - -You can set the maximum membership limit for groups and set GroupID to do one of the following when -an update to a group breaches this limit. - -- Not to update the group membership, thereby retaining the old membership. - - Or - -- Create nested groups to accommodate membership. Nested groups are created as sub-groups of the - group being updated. This simplifies permissions by allowing sub-groups to inherit permissions - from the parent group. - -**Example:** - -Let’s assume you set the maximum membership limit to 500 and opt for nested groups when membership -exceeds this limit. - -**Scenario 1**: On update, 485 objects are fetched to be added to Group A’s membership. Since the -count is less than 500, the objects are directly added as group members. - -**Scenario 2:** On the next update, 620 objects are fetched to be added to Group A’s membership. -Since the count exceeds 500, it breaks the membership into 2 child groups (Group 1 with 500 members -and Group 2 with 120 members) and nests them into Group A. Hence, GroupID checks the member count -and takes necessary action before adding members to the group. - -NOTE: In case of an Office 365 group, the option to break the membership into child groups has the -following impact - An Office 365 group (Group A) will be updated according to the Smart Group update -process. However, when the maximum membership limit is hit, the update process will create child -group(s) and try to add them as members of Group A. Since an Office 365 group cannot have groups as -members, Group A’s membership will be empty. The child groups will continue to exist but without any -link to Group A. - -**To set group membership limits:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Out of Bounds**. -4. In the **Maximum membership per group** box on the **Out of Bounds** page, enter the number of - maximum members that a Smart Group or Dynasty can contain. -5. Select one of the following options for **When threshold reached:** - - - **Do not update:** to prevent any action when the maximum membership limit is hit on update. - As a result, the group will not be updated and will retain its old membership. - - **Nest into child groups:** to create nested child groups when the maximum membership limit is - reached. Each nested group, in turn, cannot have more than the maximum number of members - specified. Nested groups are displayed in GroupID as members of the parent group. - -6. Click **Save**. - -## Manage Orphan Nested Groups - -An orphan nested group is one that has its relationship cut-off from the parent group, since this -orphan group has no members to bind it to the parent group. - -This may happen, for example, when the membership of a group decreases, or the maximum membership -limit is increased. As a result, when group membership is updated, members from one or more nested -child groups are emptied, leaving the nested groups orphan. - -You can choose to delete or retain the orphan nested groups in the identity store. - -**To delete orphan nested groups:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Out of Bounds**. -4. On the **Out of Bounds** page, select the **Delete orphan nested groups** check box to delete - nested groups that become orphan on membership update. - To retain orphan nested groups, do not select the check box. -5. Click **Save**. - -## Set a Group Update Threshold - -Out-of-bounds exceptions prevent large, unforeseen membership changes to groups. When an -out-of-bounds exception occurs, GroupID does not update group membership and notifies the intended -recipient(s) by email. If they deem the change as valid, they can update the group manually in the -GroupID portal. - -NOTE: 1. Settings in the **Threshold** section apply in case of membership update through a Smart -Group Update schedule. On manual update, these settings have no impact. - 2. If the group is not updated manually after an out-of-bounds exception, the changes remain -pending and the group will not be updated in future when the Smart Group Update job runs. - 3. Out-of-bounds exception notifications are sent as per notification settings configured for the -Smart Group Update schedule responsible for updating the respective group. - -**To set a group update threshold:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Out of Bounds**. -4. On the **Out of Bounds** page, use the toggle button for **Do not update and alert** to monitor - out-of-bounds exceptions in group memberships and enable alerts in case an out-of-bounds - exception occurs. -5. Provide values for the following: - - 1. In the **Percent change in membership exceeds** box, enter a percentage of membership change - that, when exceeded, raises an out-of-bounds exception. - - Membership change is the difference between new membership and the existing membership. - Percentage change in membership is calculated by the following formula: - (newMemberCount - oldMemberCount) x 100 / oldMemberCount - - Let’s assume you specify 20 in this field. When group membership changes by 20% or more, - GroupID considers it as an exception. - - So, if Group A has 500 members and 200 new members are to be added, the formula will be as - (newMemberCount - oldMemberCount) x 100 / oldMemberCount - (700-500) x 100 / 500 = 40 - - Since 40 is greater than 20, GroupID treats it as an out-of-bounds exception. - - 2. In the **And either current or new membership exceeds** box, type the number of current or - new memberships. If the current or new membership of a group is equal or less than the - specified number, GroupID does not raise an out-of-bounds exception for the group, even when - the change percentage is exceeded. This allows you to ignore changes to small groups. - - For example, you set the change percentage to 20 and specify 25 in the **And either current - or new membership exceeds** box. It works as follows: - - - For current (existing) membership - When the existing membership of a group is equal or - less than 25, GroupID does not trigger out-of-bounds for this group when the change - percentage is exceeded (is greater than 20). For example, adding 3 new members to a group - of 10 members would not trigger an exception. GroupID will ignore the change percentage - and update the group. - - For new membership - When, say 12 new members are added to a group with 10 existing - members, the new membership reaches 22, which is less than 25. Even though the change - percentage is exceeded, GroupID will not raise an exception and update group membership. - -6. Click **Save**. - -**See Also** - -- [Manage Dynasty Settings](/docs/directorymanager/11.0/signin/identitystore/configure/dynastysettings.md) -- [Smart Group Update Schedule](/docs/directorymanager/11.0/signin/schedule/smartgroupupdate.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/passwordoptions.md b/docs/directorymanager/11.0/signin/identitystore/configure/passwordoptions.md deleted file mode 100644 index b83e666b06..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/passwordoptions.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: "Configure Password Options" -description: "Configure Password Options" -sidebar_position: 160 ---- - -# Configure Password Options - -You can define the following password restrictions and rules for an identity store: - -- Specify restricted passwords -- Define regular expressions for allowed passwords -- Specify disallowed passwords using an external file - -When identity store users reset or change their passwords using GroupID, their new passwords must -adhere to the defined rules. - -NOTE: (1) These password configurations do not apply when helpdesk users reset passwords of -end-users. - (2) In case a user has linked his or her accounts in different identity stores, the password -configurations for the master account apply. - -In addition to these password restrictions, you can define a password policy for a security role in -an identity store. See the -[Set a Password Policy ](/docs/directorymanager/11.0/signin/securityrole/policy/password.md) -topic. - -What do you want to do? - -- [Define Restricted Passwords](#define-restricted-passwords) -- [Specify Regular Expressions for Allowed Passwords](#specify-regular-expressions-for-allowed-passwords) -- [Specify Disallowed Passwords Using an External File](#specify-disallowed-passwords-using-an-external-file) - -## Define Restricted Passwords - -You can specify certain strings of text that users cannot use as passwords or part of passwords. You -can also specify regular expressions to prevent users from creating passwords that match the -expression. - -**To restrict passwords:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Password Options**. -4. In the **Password Exception** area on the **Password Options** page, click **Add Password - Exception**. -5. On the **Add New Password Exception** dialog box, select an operator in the **Type** drop down - list. - - - **Equals:** passwords that match the value you specify in the **Exception Value** box are not - allowed. - - **Starts with:** passwords that start with the value you specify in the **Exception Value** - box are not allowed. - - **Ends With:** passwords that end with the value you specify in the **Exception Value** box - are not allowed. - - **Contains:** passwords that contain the value you specify in the **Exception Value** box are - not allowed. - - **Regular Expression:** passwords that satisfy the regular expression you specify in the - **Exception Value** box are not allowed. See the - [What are Regular Expressions?](/docs/directorymanager/11.0/signin/applications/portal/categories/textbox.md#what-are-regular-expressions) - topic to learn about regular expressions and their syntax. - -6. Type a value for the selected operator in the **Exception Value** box. -7. Click **OK**. -8. Follow steps 4 to 7 to define as many exceptions as required. All exceptions are treated as - password restrictions. - - **To remove a password restriction:** - - - In the **Password Exception** area, click **Remove** for a restriction or rule to remove it. - - To remove all restrictions, click **Remove All**. - -9. Click **Save** on the **Password Options** page. - -## Specify Regular Expressions for Allowed Passwords - -By specifying regular expression(s) for allowed passwords, you ensure that passwords created by -users follow certain rules and patterns. - -**To specify a regular expression:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Password Options**. -4. In the **Password Rules** area on the **Password Options** page, click **Add Password Rule**. -5. On the **Add Rules** dialog box, type a regular expression in the **Regular Expression** box. - See the - [What are Regular Expressions?](/docs/directorymanager/11.0/signin/applications/portal/categories/textbox.md#what-are-regular-expressions) - topic to learn about regular expressions and their syntax. -6. Click **OK**. The regular expression is displayed in the In the **Password Rules** area. -7. Follow steps 4 to 6 to define as many regular expressions as required. Passwords that satisfy any - of the regular expressions are allowed. - - **To remove a regular expression:** - - - In the **Password Rules** area, click **Remove** for a regular expression to remove it. - - To remove all regular expressions, click **Remove All**. - -8. Click **Save** on the **Password Options** page. - -## Specify Disallowed Passwords Using an External File - -A simple way of preventing users from using certain words or strings as passwords is to add those -restricted passwords to a .csv or .txt file and upload it to GroupID. - -**To upload the file:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Password Options**. -4. On the **Password Options** page, select the **Check for disallowed passwords from imported - file** check box in the **Import Disallowed Password** List area to enable file upload. -5. Click **Import** to browse and select the file (.csv, .txt) containing the disallowed passwords. -6. Click **Save** on the **Password Options** page. - -NOTE: Only a single file containing disallowed passwords can be imported for an identity store; -importing another file will replace the existing one. - -**See Also** - -- [Set a Password Policy ](/docs/directorymanager/11.0/signin/securityrole/policy/password.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/prefixes.md b/docs/directorymanager/11.0/signin/identitystore/configure/prefixes.md deleted file mode 100644 index 105d329494..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/prefixes.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: "Set Group Name Prefixes" -description: "Set Group Name Prefixes" -sidebar_position: 80 ---- - -# Set Group Name Prefixes - -You can standardize group names in the directory by defining prefixes. When users create groups -using the GroupID portal, they must select a prefix, which is added to the group’s name and display -name. - -NOTE: The Group Name Prefixes policy does not apply when a user creates a group using GroupID -Management Shell. - -You can define group name prefixes (a) for an identity store, (b) for security roles in an identity -store, or (c) both at the identity store and role levels. - -- Prefixes defined for an identity store are available to all security roles in an identity store. - When creating a group, users must select a prefix to append the group’s name. -- Prefixes defined for a security role are available to role members only. You can enforce members - to select a role-specific prefix to append a group’s name while creating a group. Role-specific - prefixes help distinguish between groups created by different roles. -- When prefixes are defined at both the identity store and role levels, both sets of prefixes are - available to role members in a single drop-down list. Role members can select any prefix to append - a group’s name. However, when prefixes are enforced at the role level, role members can only - select a role-specific prefix to append a group’s name. - -NOTE: (1) For a user with multiple roles, prefixes for all roles are displayed when creating or -updating groups. -(2) If prefixes are enforced for the highest priority role of a user, he or she must select a prefix -from the list of prefixes defined for this highest priority role. -(3) If prefixes are enforced for a role other than the highest priority role of a user, enforcement -does not apply to him or her. - -Consider the following: - -- For existing groups, the prefix option is available for unmanaged groups (and not for Smart Groups - and Dynasties). A user can choose to add a prefix to the group name in group properties. Once - added, it cannot be removed. -- For managed groups (Smart Groups and Dynasties), prefixes can only be added while creating a group - and cannot be changed or removed later. - -A group naming policy defined in Microsoft Entra Admin Center has no impact in GroupID. For details, -see the -[Group Naming Policy](/docs/directorymanager/11.0/signin/identitystore/advsentraid.md#group-naming-policy) -topic. - -What do you want to do? - -- [Add a Prefix for an Identity Store](#add-a-prefix-for-an-identity-store) -- [Add a Prefix for a Security Role in an Identity Store](#add-a-prefix-for-a-security-role-in-an-identity-store) - -## Add a Prefix for an Identity Store - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Group Name Prefixes**. -4. On the **Group Name Prefixes** page, type a prefix in the box displayed at the top and click - **Add**. The prefix is displayed in the **Group Name Prefix** area. -5. Click **Save**. - -Edit a Prefix - -1. On the **Group Name Prefixes** page, click **Edit** for a prefix and update it. Then click the - check mark icon to save or the cross icon to discard your changes. -2. Click **Save**. - The change does not propagate to group names that have already been created with the prefix. - -Delete a Prefix - -1. On the **Group Name Prefixes** page, click **Remove** for a prefix to delete it. -2. Click **Save**. - Deleting a prefix has no impact on group names that have already been created with it. - -## Add a Prefix for a Security Role in an Identity Store - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Group Name Prefixes** tab. -7. Refer to step 4 and onwards in the - [Add a Prefix for an Identity Store](#add-a-prefix-for-an-identity-store) topic to add, edit, or - delete a group name prefix for a security role. -8. Select the **Enforce Prefix** check box to make it mandatory for role members to select a - role-specific prefix to append group names while creating groups. -9. Click **OK**. -10. On the **Edit Security Role** page, click **Update Security Role**. -11. On the **Security Roles** page, click **Save**. - -**See Also** - -- [Security Roles](/docs/directorymanager/11.0/signin/securityrole/overview.md) -- [Security Role Policies](/docs/directorymanager/11.0/signin/securityrole/policy/overview.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/profilevalidation.md b/docs/directorymanager/11.0/signin/identitystore/configure/profilevalidation.md deleted file mode 100644 index 0356a57597..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/profilevalidation.md +++ /dev/null @@ -1,306 +0,0 @@ ---- -title: "Configure User Profile Validation" -description: "Configure User Profile Validation" -sidebar_position: 110 ---- - -# Configure User Profile Validation - -The profile validation process in GroupID is designed to ensure the accuracy of users’ information -in the directory. - -When you apply profile validation to a group, all group members must verify and update their profile -information in the directory using the GroupID portal or the GroupID mobile app. You must also -specify a profile validation life cycle period (for example, 90 days), so that each member must -validate his or her profile once during each 90-day cycle. - -Additionally, you can choose to specify a different profile validation period for new users. Once a -new user validates his or her profile within this period, the regular profile validation cycle -applies. - -By default, a few attributes (fields) are available in the GroupID portal and the mobile app for -profile validation. You can add and remove fields as required. See the -[Manage Property Validation Attributes](/docs/directorymanager/11.0/signin/applications/portal/displaytype/propertyvalidation.md) -topic. - -## What can Users do While Validating their Profiles? - -When performing profile validation, a user can: - -- Update his or her directory profile -- Change his or her primary manager - When a user changes his or her primary manager (Manager A), - then Manager A and the user’s additional managers are notified through email to accept or reject - the request. If any of them accepts it, the user’s manager is changed. If any approver rejects it, - the user remains with Manager A. - - NOTE: This is the default flow of the _change manage_ workflow for the identity store. If the - administrator disables the workflow or changes the approver, the flow changes accordingly. - -- Transfer his or her direct reports to another manager - When a user transfers his or her direct - report, the new manager is notified by email to accept or reject the transfer. If the manager - accepts it, the direct report is transferred to him or her. If the manager rejects the transfer, - the direct report remains with the old manager. - - NOTE: This is the default flow of the _transfer a user_ workflow for the identity store. If the - administrator disables the workflow or changes the approver, the flow changes accordingly. - -- Terminate his or her direct reports - When a user terminates his or her direct report, it takes - effect immediately when the _terminate a user_ workflow is disabled. If enabled, a request is sent - to the approver. If the approver accepts it, the direct report is terminated and if the approver - rejects it, the direct report remains with the manager. - -For workflows in an identity store, see the -[System Workflows](/docs/directorymanager/11.0/signin/workflow/overview.md#system-workflows) -topic. - -## What Happens When Users do not Validate their Profiles? - -Periodically, users receive reminder emails to validate their profile. GroupID expires the users who -ignore these reminders and do not validate their profiles within the required time. Consequently, -their accounts get disabled. - -Expired users can request the administrator or helpdesk to unlock their accounts temporarily and -grant an extension period. If they do not validate their profile within that extension period -either, GroupID expires them again and notifies their managers by email. To reactivate these -accounts, users’ managers must send a request to the helpdesk. - -To identify user accounts that are disabled for not validating their profiles, see the -[Identify User Accounts Expired due to Non-Profile Validation](#identify-user-accounts-expired-due-to-non-profile-validation) -topic. - -## The User Life Cycle Schedule - -The User Life Cycle schedule monitors the profile validation function in GroupID. It: - -- Monitors the profile validation dates for users. -- Generates reminder emails, if reminder notifications settings are applied. -- Expires (disables) users who do not validate their profiles within the given period. -- Marks user accounts that are disabled due to profile non-validation, provided that the ‘Profile - Validation Attribute’ setting is applied. -- Deletes the profile validation date if it is x number of days old, provided that the ‘Clear the - validation data for disabled users, x number of days after they are disabled’ setting is applied. - -What do you want to do? - -- [Specify a Group for Profile Validation](#specify-a-group-for-profile-validation) -- [Set a Profile Validation Life Cycle Period](#set-a-profile-validation-life-cycle-period) -- [Specify a Profile Validation Period for New Users](#specify-a-profile-validation-period-for-new-users) -- [Specify a Duration for the Extension Period](#specify-a-duration-for-the-extension-period) -- [Specify Reminder Notification Settings](#specify-reminder-notification-settings) -- [Identify User Accounts Expired due to Non-Profile Validation](#identify-user-accounts-expired-due-to-non-profile-validation) -- [Apply Settings to Clear the Validation Date](#apply-settings-to-clear-the-validation-date) - -## Specify a Group for Profile Validation - -By default, profile validation is not enabled for an identity store, and therefore does not apply to -any user. - -You can apply profile validation to a directory group. As a result, all group members will be -required to validate their profiles. Only one group can be specified at a time. - -**To specify a group:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Profile Validation**. -4. On the **Profile Validation** page, use the **Search for the Criteria** box to search and specify - a group. - - - Type a search string in the box. GroupID displays all groups with names that start with the - string. Click **Select** for a group to select it for profile validation. - - Or - - - Click **Advanced** to search a group by different parameters, such as name, display name, and - description. Enter a search string and click **Search**. Groups matching the string are - displayed. Select the required group. - - The selected group is displayed in the **Search for the Criteria** box. Members of this group - have to validate their profiles according to the settings you configure on the **Profile - Validation** page. - - **To preview group members:** - - - To view the members of the selected group, click **Preview**. - - **To remove the group:** - - - To remove the selected group, click **Remove** for it. - -5. Click **Save**. - -## Set a Profile Validation Life Cycle Period - -By default, the profile validation life cycle period is set to 90 days, which means that users must -validate their profiles once during each cycle of 90 days. When a user validates his or her profile, -the current cycle ends and the next cycle starts for him or her. - -The User Life Cycle schedule monitors the profile validation dates for users; it expires users who -do not validate their profiles within the given period. - -**To specify a life cycle period:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Profile Validation**. -4. In the **User Profile Validation Lifecycle** box on the **Profile Validation** page, type the - number of days to set as the profile validation life cycle period. - If this number of days is less than the days set for any of the reminders configured in the - **Reminder Notification Settings** area, GroupID removes that reminder from the list. -5. Click **Save**. - -## Specify a Profile Validation Period for New Users - -Apart from the regular profile validation life cycle, GroupID enables you to set a separate profile -validation period for newly found user objects (by way of newly created objects or by way of -disabled object enabled again) in the directory. - -For new users, you can specify a certain number of days, say 30, to serve as the first profile -validation life cycle period. New users receive a welcome email and a profile validation request, -directing them to validate their profiles for the first time within the given number of days. Once -they validate their profiles, the regular profile validation life cycle settings would apply to -them. - -**To specify a profile validation period for new users:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Profile Validation**. -4. On the **Profile Validation** page, use the toggle button next to the **New Object Profile - Validation Lifecycle** box to enable a separate profile validation life cycle for new users. -5. In the **New Object Profile Validation Lifecycle** box, specify a certain number of days to set - as the profile validation period. New users must validate their profiles within this period. If - they fail to do so, their accounts will be disabled. -6. Click **Save**. - -## Specify a Duration for the Extension Period - -Using the GroupID portal, the administrator or helpdesk can grant an extension period to users who -have been expired due to non-profile validation. If users do not validate their profile within the -extended period, GroupID disables them again, and an email notification is sent to their managers. - -On the **Profile Validation** page, you can specify the duration of the extension period in days. - -**To set the extension period:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Profile Validation**. -4. In the **Extension Period** box on the **Profile Validation** page, specify the number of days - that will be granted as extension period to expired users. - By default, the extension period is set to four days. You can extend it to seven days. -5. Click **Save**. - -## Specify Reminder Notification Settings - -By default, three email notifications are sent to a user, precisely 30, 21 and 14 days before the -profile validation period ends. These notifications serve as reminders, directing users to validate -their profiles. The final reminder is sent to the user and the user’s manager. - -You can change the number of reminders to be sent along with their _Before # of Days_ value. The -User Life Cycle schedule sends reminder notifications to users according to the specified settings. - -For email notifications, an SMTP Server must be configured for the identity store. See the an -[Configure an SMTP Server](/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md) -topic. - -**To set a new reminder:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Profile Validation**. -4. In the **Reminder Notification Settings** area, click **Add Reminder**. -5. On the **Add Reminder** dialog box, provide a name for the reminder in the **Reminder Name** box. -6. Enter a value in the **Before Number of Days** box. The reminder is sent to the user when x - number of days are left for the profile validation period to end. For example, if you enter 5, - the reminder will be sent five days before the profile validation period ends. -7. Click **Add**. - - **Edit a reminder:** - - 1. In the **Reminder Notification Settings** area, click **Edit** for a reminder. - 2. On the **Edit Reminder** dialog box, update the name and _before no. of days_ setting for the - reminder. - 3. Click **OK**. - - **Remove a reminder**: - - - In the **Reminder Notification Settings** area, click **Remove** for a reminder to remove it. - -8. On the **Profile Validation** page, click **Save**. - -## Identify User Accounts Expired due to Non-Profile Validation - -User accounts in an identity store may get disabled for various reasons, such as when the -administrator disables a user in the directory or when the User Life Cycle schedule expires a user -account because the user did not validate his or her directory profile during a given period. - -To identify users that are disabled by the User Life Cycle schedule, the administrator can apply the -**Profile Validation Attribute** setting. This setting requires the administrator to select a schema -attribute and specify a string as its value. - -- When the User Life Cycle schedule expires a user, it sets the given string as the attribute’s - value for the user. -- For active users or those disabled for a different reason, this attribute does not have the - specified string as value. - -When the administrator or a helpdesk user extends the profile validation period for a disabled user, -the string value is cleared and the attribute is empty again. - -The administrator can access the directory server to check whether the string value is set for the -attribute. For example, he or she can use a standard Microsoft-based Active Directory tool to view -the attribute’s value either natively in the given propertysheet options or via the ADSI property -sheet shell extension. - -**To designate an attribute with a value:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Profile Validation**. -4. On the **Profile Validation** page, use the toggle button for **Set an attribute that will be - updated with the desired value for users that are expired due to non-profile validation** to - enable the attribute value setting. -5. Select a schema attribute in the **Attribute** drop-down list and specify a string as value for - it in the **Desired Value** box. - When the User Life Cycle schedule expires a user who does not validate his or her profile within - the given period, it also sets the attribute’s value to the specified string for that user. -6. Click **Save**. - -## Apply Settings to Clear the Validation Date - -The administrator can specify an x number of days for the ‘Clear the validation data for disabled -users, x number of days after they are disabled’ setting. The User Life Cycle schedule scans all -disabled users and if x number of days have passed since the last validation date, it clears the -validation date. - -This setting is required for a potential rehire scenario, in which case the user will be treated as -a newly created object and the validation process for new users will apply to it. - -**To apply the setting:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Profile Validation**. -4. On the **Profile Validation** page, use the toggle button for **Clear the validation data for - disabled users, x number of days after they are disabled** to enable the clear validation date - setting. -5. In the **After number of Days** box, specify a certain number of days, say 60. The User Life - Cycle schedule scans all disabled users and if 60 days have passed since the last validation - date, it clears the validation date. - If you specify zero (0), the schedule clears the validation date as soon as it expires the user. -6. Click **Save**. - -**See Also** - -- [User Life Cycle Schedule](/docs/directorymanager/11.0/signin/schedule/userlifecycle.md) -- [Manage Property Validation Attributes](/docs/directorymanager/11.0/signin/applications/portal/displaytype/propertyvalidation.md) - (for the GroupID portal) -- [Manage Property Validation](/docs/directorymanager/11.0/signin/service/mobileservice/design/propertyvalidation.md) - (for the GroupID mobile app) diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/secondwayauthentication.md b/docs/directorymanager/11.0/signin/identitystore/configure/secondwayauthentication.md deleted file mode 100644 index f864cca744..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/secondwayauthentication.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: "Second Way Authentication - SWA" -description: "Second Way Authentication - SWA" -sidebar_position: 150 ---- - -# Second Way Authentication - SWA - -You can configure second way Authentication (SWA) to allow unenrolled users to access the following -functions in the GroupID portal and the GroupID mobile app: - -- Account unlock -- Password reset - -SWA allows only one-time access to these functions. Users must enroll their identity store accounts -in GroupID to use the stated functions again. - -SWA can authenticate unenrolled users through: - -- Security questions -- Mobile -- Email - -Configuring these types for second way authentication is different from configuring the same -authentication types for multifactor and second factor authentication. For second way -authentication, you have to link an authentication type to a schema attribute. When resetting -account passwords or unlocking accounts using the GroupID portal or the mobile app, the value -provided by the user for an authentication type is matched to the value of the linked attribute in -the directory. If it matches, authentication is successful, and the user can perform the required -action in the portal or the app. - -For example, link the _Email_ type with the _mail_ attribute. When an unenrolled user tries to reset -the account password, he or she must provide the verification code sent to his or her email address. -On providing the right code, he or she can proceed with the operation. - -Second way authentication is disabled by default for an identity store. To facilitate users to avail -it, you must enable one or more authentication types. - -What do you want to do? - -- [Enable Second Way Authentication Via Security Questions](#enable-second-way-authentication-via-security-questions) -- [Enable Second Way Authentication via Mobile](#enable-second-way-authentication-via-mobile) -- [Enable Second Way Authentication via Email](#enable-second-way-authentication-via-email) -- [Enforce Users to Authenticate Using x Number of SWA Types](#enforce-users-to-authenticate-using-x-number-of-swa-types) - -## Enable Second Way Authentication Via Security Questions - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Second Way - Authentication**. -4. On the **Second Way Authentication** page, use the toggle button for **Enable Second Way - Authentication via Security Questions** to enable it. -5. Click **Add Security Question**. -6. On the **Add New Security Question** dialog box, type your question in the **Question** box. -7. In the **Attribute** drop-down list, select a schema attribute to map to this question. -8. Click **OK**. - For successful authentication, the answer a user provides for the security question must match - the value of the linked attribute. - - **To edit or remove a security question:** - - - In the **Enable Second Way Authentication via Security Questions** area, click **Remove** for - a question to remove it. - - To remove all questions, click **Remove All**. - - To change the question text or link it to a different schema attribute, click **Edit** for it. - -9. Click **Save** on the **Second Way Authentication** page. - -## Enable Second Way Authentication via Mobile - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations under Settings** in the left pane. Then click **Second Way - Authentication**. -4. On the **Second Way Authentication** page, use the toggle button for **Enable Second Way - Authentication via Mobile** to enable it. - - NOTE: If an SMS gateway account is not linked with the identity store, **Configure Now** is - displayed in place of the toggle button. Click it to go to the **SMS Authentication** page, - where you can link an SMS gateway account with the identity store. See the - [Link an SMS Gateway Account to an Identity Store](/docs/directorymanager/11.0/signin/identitystore/configure/smsauthentication.md#link-an-sms-gateway-account-to-an-identity-store) - topic. - -5. In the **Mobile Attribute** drop-down list, select an attribute that stores mobile numbers in the - directory. - For authentication via mobile, a verification code is sent to the user’s mobile number. The user - has to enter the code in GroupID for authentication. -6. Click **Save**. - -## Enable Second Way Authentication via Email - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations under Settings** in the left pane. Then click **Second Way - Authentication**. -4. On the **Second Way Authentication** page, use the toggle button for **Enable Second Way - Authentication via Email** to enable it. - - NOTE: If an SMTP server is not defined for the identity store, **Configure Now** is displayed in - place of the toggle button. Click it to go to the **Notifications** page for configuring an SMTP - server. See the - [Configure an SMTP Server](/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md) - topic. - -5. In the **Email Attribute** drop-down list, select an attribute that stores email addresses in the - directory. - For authentication via email, a verification code is sent to the user’s email address. The user - has to enter the code in GroupID for authentication. -6. Click **Save**. - -## Enforce Users to Authenticate Using x Number of SWA Types - -You can enforce users to authenticate with one, two, or all three SWA types. - -When the enforced number of authentication types is less than the enabled types, (such as when you -have enabled all three SWA types and enforce users to authenticate with two), users can choose the -type(s) they want to use for authentication. - -**To enforce SWA types:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Second Way - Authentication**. -4. On the **Second Way Authentication** page, enter a number in the **Authentication Factor (chosen - by the end user)** box. This number must be equal or less than the enabled SWA authentication - types. Users must use these x number of types for second way authentication. -5. Click **Save**. - -**See Also** - -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) -- [Configure an SMTP Server](/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md) -- [SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/overview.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/securityquestions.md b/docs/directorymanager/11.0/signin/identitystore/configure/securityquestions.md deleted file mode 100644 index 8bd66164ca..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/securityquestions.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: "Manage the Local Question Pool" -description: "Manage the Local Question Pool" -sidebar_position: 130 ---- - -# Manage the Local Question Pool - -When you create a new identity store, four questions from the global question pool are added to the -identity store’s local pool by default. A local pool is maintained individually by each identity -store. You can modify a local pool by (a) adding questions from the global question pool, (b) adding -questions of your choice (questions that are not in the global pool), and (c) by removing questions -from it. - -To enroll using security questions, identity store users must select a certain number of questions -from the local pool and provide answers. - -What do you want to do? - -- [Add a Question to the Local Pool from the Global Pool](#add-a-question-to-the-local-pool-from-the-global-pool) -- [Add a Question of your Choice to the Local Pool](#add-a-question-of-your-choice-to-the-local-pool) -- [Remove a Question from the Local Pool](#remove-a-question-from-the-local-pool) - -## Add a Question to the Local Pool from the Global Pool - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Security Questions**. -4. On the **Security Questions** page, click in the box at the top and select a security question - from the list of global security questions. You can also type a search string to filter the - questions containing the string. After selecting a question, click **Add**. The question is added - to the **Questions** list. -5. Click **Save**. - -## Add a Question of your Choice to the Local Pool - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Security Questions**. -4. On the **Security Questions** page, click in the box at the top and type a security question. - Then click **Add**. The question is added to the **Questions** list. -5. Click **Save**. - -## Remove a Question from the Local Pool - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **Security Questions**. -4. On the **Security Questions** page, click **Remove** for a security question to remove it from - the local pool. To remove all questions, click **Remove All**. -5. Click **Save**. - Deleting a question does not impact the users currently enrolled with the question. - -**See Also** - -- [Manage the Global Question Pool ](/docs/directorymanager/11.0/signin/concepts/globalpool.md) -- [Set up Authentication via Security Questions](/docs/directorymanager/11.0/signin/authpolicy/setupauth/securityquestions.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/smsauthentication.md b/docs/directorymanager/11.0/signin/identitystore/configure/smsauthentication.md deleted file mode 100644 index 2022fab8d0..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/smsauthentication.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: "SMS Authentication" -description: "SMS Authentication" -sidebar_position: 140 ---- - -# SMS Authentication - -To enable users to enroll and authenticate their identity store accounts using SMS, you must make -sure that an SMS gateway account is linked with the identity store. Using this gateway account, -GroupID sends confirmation codes to the users' mobile phone numbers for verification. - -See the -[Manage SMS Gateway Accounts](/docs/directorymanager/11.0/signin/smsgateway/manage.md) -topic for creating and managing SMS gateway accounts. - -What do you want to do? - -- [Enable SMS Authentication for an Identity Store](#enable-sms-authentication-for-an-identity-store) -- [Link an SMS Gateway Account to an Identity Store](#link-an-sms-gateway-account-to-an-identity-store) -- [Enforce SMS Authentication for a Security Role](#enforce-sms-authentication-for-a-security-role) - -## Enable SMS Authentication for an Identity Store - -The SMS authentication type must be enabled for an identity store before users can use it for second -factor authentication and multi-factor authentication. - -To enable it, see the -[Enable Authentication Types](/docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md) -topic. - -## Link an SMS Gateway Account to an Identity Store - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Configurations** under **Settings** in the left pane. Then click **SMS Authentication**. -4. In the **SMS gateway account** drop-down list on the **SMS Authentication** page, select an SMS - gateway account to link it with the identity store. If a default SMS gateway account is defined - before the identity store was created, it is auto selected in this list. -5. In the **Text message** box, modify the displayed message, except the [Code] placeholder. - This box displays the text that is sent to the users’ mobile phone numbers along with the - confirmation code. GroupID randomly generates a confirmation code and inserts it into the [Code] - placeholder. Users have to enter this code in GroupID for enrollment and authentication. -6. Click **Save**. - -## Enforce SMS Authentication for a Security Role - -To enforce an authentication type, see the -[Authentication Policy for Security Roles](/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md) -topic. - -Role members must use an enforced authentication type for multifactor authentication. When an -authentication type is enabled but not enforced, role members can choose to use it for enrollment -and authentication. - -**See Also** - -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) -- [Manage SMS Gateway Accounts](/docs/directorymanager/11.0/signin/smsgateway/manage.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md b/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md deleted file mode 100644 index 0ea22410e3..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md +++ /dev/null @@ -1,269 +0,0 @@ ---- -title: "Configure an SMTP Server" -description: "Configure an SMTP Server" -sidebar_position: 10 ---- - -# Configure an SMTP Server - -An identity store requires an SMTP server for sending email notifications. It can be an Exchange -server deployed in your environment or an external SMTP server; for example, Gmail or Office 365. - -When configuring a provider that supports modern authentication, such as Exchange Online and Office -365, you have the option to use OAuth for modern authentication. - -NOTE: With Microsoft Entra ID's mandatory multifactor authentication policy, basic authentication -cannot be used for an Office 365 SMTP server. You can only use OAuth for modern authentication. - -You can also specify notification recipients, that can be: - -- individual recipients -- the user who makes a change to a directory object -- the directory object being modified -- group owners and user managers—a practice that does not require update when role assignments - change -- owners of a public group on membership changes -- an object that is added to the membership of a group -- an object that is removed from the membership of a group - -What do you want to do? - -- Configure an SMTP Server -- Specify Notification Recipients -- Specify a Portal URL for Password Expiry Group Notifications -- Manage Membership Life Cycle Notifications -- Manage Managed by Life Cycle Notifications - -## Configure an SMTP Server - -Follow the steps to configure an SMTP Server. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the **Identity Stores** page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Configurations** under **Settings** in the left pane. Then click **Notifications**. -The **Notifications** page is displayed. - -Step 4 – In the **SMTP Server** section, enter the fully qualified domain name or IP address of the -SMTP server in the **SMTP Server** box. Email notifications will be routed through this server. - -Step 5 – Enter the email address to use for sending notifications in the **From email address** box. - -Step 6 – Enter a port for communicating with the SMTP server in the **Port** box. - -Step 7 – Select the **SSL enabled** check box if the SMTP server is SSL-enabled. - -**Set up user authentication** - -By default, the credentials of the user logged into Admin Center are used to connect to the SMTP -server. Hence, each user connects to the server in the context of the identity store and credentials -he or she has currently used to sign into Admin Center. -However, you may choose to specify a single account for connecting, in case your user accounts do -not have rights on the SMTP server or you want to use a dedicated account. Select the **Use SMTP -user authentication** check box. This enables the credentials options, where you can choose _basic -authentication_ or _OAuth_; then provide the credentials of an authorized user account on the SMTP -server. - -- **For basic authentication** - - 1. Select the **Basic** tile. - 2. Enter the username and password of an authorized user account on the SMTP server in the - **SMTP username** and **SMTP password** boxes. - -- **For modern authentication** - - OAuth settings are available when you specify a provider that supports modern authentication, - such as Exchange Online and Office 365. - - NOTE: For OAuth to work, you must enable the Graph API's 'SMTP.Send' permission for the GroupID - app in Microsoft Entra Admin Center: - - 1. Click the **OAuth 2.0** tile. - 2. In the **Token Endpoint** box, provide the following URL: - https://login.microsoftonline.com/organizations/oauth2/v2.0/token - - NOTE: In case of Office 365 provider, you need to provide Graph Endpoint of your CloudType - in the **Token Endpoint** box, for example, https://graph.microsoft.com/v1.0 - - 3. In the **Client ID** box, provide the client ID assigned to the GroupID application when you - registered it in Microsoft Entra Admin Center. - 4. In the **Client Secret** box, provide the client secret value generated against the - certificate uploaded to Microsoft Entra Admin Center while registering the GroupID - application. - 5. In the **Scope** box, provide the following URL: - https://outlook.office365.com/SMTP.Send - - NOTE: In case of Office 365 provider, provide name of the tenant the **Scope** box, for - example, abcd.onmicrosoft.com - - 6. In the **Username** and **Password** boxes, provide the credentials to connect to the SMTP - server. - - NOTE: The user account used for SMTP Authentication for OAuth should have no MFA applied to it - or have a conditional bypass for GraphAPI requests. - -**Test the connection** - -Step 8 – Click **Test Server** to check the server settings. In the **Test Notification** dialog -box, enter an email address to receive the test notification, and click **OK**. A test email is sent -to the provided email address using the configured SMTP settings. - -Step 9 – Click **Save** on the **Notifications** page. - -## Specify Notification Recipients - -Follow the steps to specify notfication recipients. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the **Identity Stores** page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Configurations** under **Settings** in the left pane. Then click **Notifications**. -The **Notifications** page is displayed. - -Step 4 – In the **To:** and **CC:** boxes in the **Recipients** section, enter the email addresses -of one or more notification recipients, separating multiple addresses with a semicolon (;). All -email notifications generated for the identity store are sent to these recipients. - -Step 5 – You can also select other recipients to send email notifications for different events. In -the **Also Notify** area, select the required check boxes. - -- Logged in users for their actions – To send email notifications to the logged-on user for changes - they make to directory objects using Admin Center, GroupID portal, GroupID Management Shell, and - the GroupID mobile app. This setting applies to mail-enabled users only. -- Object being modified – To send email notifications to the object (group, user, contact) being - modified. In case of a group, all members are notified. -- Group ownser(s) for their groups To send email notifications to the primary and additional owners - of groups about changes made to their respective groups. -- Manager(s) for their direct reports – To send email notifications to managers about changes made - to their respective direct reports. -- Newly added group members on addition – To send email notifications to objects when they are added - to the membership of a group. -- Removed group member on removal – To send email notifications to objects when they are removed - from the membership of a group. -- Public group owner for membership – To send email notifications to the primary and additional - owners of a public group on membership change. See the - [Group Security Types](/docs/directorymanager/11.0/signin/concepts/concepts.md#group-security-types) - topic. - -Step 6 – Click **Save** on the **Notifications** page. - -## Specify a Portal URL for Password Expiry Group Notifications - -A password expiry Smart Group can be created using the GroupID portal. Its membership is limited to -users whose identity store account passwords are approaching their expiry dates. - -The administrator can apply a setting to send a password expiry warning email to group members every -time group membership is updated. This email includes the URL of a GroupID portal to redirect users -there for changing their passwords. - -Users who change their passwords are removed from group membership. - -Follow the steps to specify the portal URL. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the Identity Store page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Configurations** under Settings in the left pane. Then click **Notifications**. The -Notifications page is displayed. - -Step 4 – In the Password Expiry Group Notifications section, select the URL of a GroupID portal in -the **GroupID Portal URL** drop-down list. This URL will be included in password expiry warning -emails to redirect users to the portal, where they can change their identity store account -passwords. -The list contains URLs of all GroupID portals linked with the identity store. - -Step 5 – Click **Save** on the **Notifications** page. - -NOTE: Password expiry Smart Groups cannot be created in a Microsoft Entra ID identity store. - -## Manage Membership Life Cycle Notifications - -Membership lifecycle notifications are triggered on the following events: - -- When the Membership Life Cycle schedule temporarily adds or removes a user from the membership of - a semi-private or public group, the respective user is notified. -- Peers and managers can temporarily join or leave a group on behalf of another user (User A). - Membership lifecycle notifications are sent to User A when the Membership Life Cycle schedule adds - or removes him or her from group membership. -- Users are also notified when they are temporarily added or removed from group membership according - to membership lifecycle policies. See the - [Manage Membership Life Cycle Policies](/docs/directorymanager/11.0/signin/identitystore/configure/membershiplifecycle.md) - topic. - -You can choose to send notification when users are temporarily added to groups, removed from groups, -or on both events. - -Follow the steps to set Membership Life Cycle notifications. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the Identity Stores page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Configurations** under Settings in the left pane. Then click **Notifications**. The -page is displayed. - -Step 4 – In the Membership Lifecycle Notifications section, select your desired options. - -- On joining group – Sends email notifications to users when the Membership Life Cycle schedule - temporarily adds them to group membership. -- On leaving group – ends email notifications to users when the Membership Life Cycle schedule - temporarily removes them from group membership. -- X days before user is going to leave the group – Select this check box and specify a certain - number of days, say 2. The user receives a notification 2 days before he or she is removed from - group membership by the Membership Life Cycle schedule. This setting also applies to users who - have been marked for removal from group membership in the group attestation process. (See the - **Specify member inactive period** setting in the - [Enable Group Attestation](/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md#enable-group-attestation) - topic. - -1. Click **Save** on the **Notifications** page. - -## Manage Managed by Life Cycle Notifications - -You can set up email notifications for objects when the Managed By Life Cycle schedule adds or -removes them as temporary additional owners for groups and temporary additional managers for users. - -When a group is set or removed as a temporary additional owner, all its members are notified. - -Follow the steps to set up Managed By Life Cycle notifications. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the Identity Stores page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Configurations** under Settings in the left pane. Then click **Notifications**. The -**Notifications** page is displayed. - -Step 4 – In the **Managed By Notifications** section, select your desired options. - -- Same as membership life cycle – Applies the membership lifecycle notification settings to the - managed by life cycle and disables the **Managed By Notifications** section. For example, if _On - joining group_ is selected for Membership life cycle, it has the same behavior as discussed for - _Object is added as additional owner/manager_. -- Object is added as additional owner/manager – **Object is added as additional owner/manager** - - Sends an email notification to an object when the Managed By Life Cycle schedule adds it as the - temporary additional owner of a group or the temporary additional manager of a user. The primary - owner or primary manager is also notified accordingly. -- Object is removed as additional owner/manager – Sends an email notification to an object when the - Managed By Life Cycle schedule removes it as the temporary additional owner of a group or the - temporary additional manager of a user. The primary owner or primary manager is also notified - accordingly. -- X Days before object is removed as additional owner/manager – Select this check box and specify a - certain number of days, say 2. The temporary additional manager/owner receives a notification 2 - days before the Managed By Life Cycle schedule removes him or her as additional manager/owner. - -Step 5 – Click **Save** on the Notifications page. - -**See Also** - -- [Notifications](/docs/directorymanager/11.0/signin/notification/overview.md) -- [Membership Life Cycle Schedule](/docs/directorymanager/11.0/signin/schedule/membershiplifecycle.md) -- [Managed By Life Cycle Schedule](/docs/directorymanager/11.0/signin/schedule/managedbylifecycle.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/create.md b/docs/directorymanager/11.0/signin/identitystore/create.md deleted file mode 100644 index f64db16ff1..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/create.md +++ /dev/null @@ -1,217 +0,0 @@ ---- -title: "Create an Identity Store" -description: "Create an Identity Store" -sidebar_position: 10 ---- - -# Create an Identity Store - -To perform group and identity management operations in an identity provider using GroupID, the first -step is to create an identity store for that provider. - -You can create identity stores for the following providers: - -- Active Directory -- Microsoft Entra ID -- Generic LDAP -- Google Workspace - -To create an identity store, you have to specify an identity provider and its connection details. - -After creating an identity store, you must configure certain settings for it. These configurations -are discussed in the -[Configure an Identity Store](/docs/directorymanager/11.0/signin/identitystore/configure/configure.md) -topic. - -What do you want to do? - -- [Create an Identity Store for Active Directory](#create-an-identity-store-for-active-directory) -- [Create an Identity Store for Microsoft Entra ID](#create-an-identity-store-for-microsoft-entra-id) -- [Create an Identity Store for Generic LDAP](#create-an-identity-store-for-generic-ldap) -- [Create an Identity Store for Google Workspace](#create-an-identity-store-for-google-workspace) - -## Create an Identity Store for Active Directory - -In Admin Center, click **Identity Stores** in the left pane. - -On the **Identity Stores** page, click **Create Identity Store** in the top right corner. - -On the **Create Identity Store** page, use the **Store Type** drop-down list to select an identity -provider to create an identity store for. -This list displays the supported providers. By default, Active Directory is selected. Fields on this -page vary, depending on the provider you select. - -Enter a name for the identity store in the **Name** box. - -In the **Domain Name** box, enter the fully qualified name of the Active Directory domain you want -to create the identity store for. - -In the **Service Account** box, enter the username of a service account or a group managed service -account (gMSA) to connect to Active Directory. - -- **For a service account:** The service account must have sufficient privileges on the provider to - facilitate group and identity management operations using GroupID. The minimum permissions the - service account requires for Active Directory are discussed in the - [Service Account for Active Directory and Exchange](/docs/directorymanager/11.0/requirements/moreinfo/adserviceaccount.md) - topic. -- **For a gMSA:** If you provide a service account with - ‘$’ as its last character (as in MyAdminAccounts$), GroupID entertains it as a Group Managed - Service Account (gMSA). To use a gMSA to connect an identity store to Active Directory, make sure - the gMSA is configured properly and has sufficient permissions. See the - [gMSA for Active Directory](/docs/directorymanager/11.0/requirements/moreinfo/gmsarequirements.md) - topic. - -In the **Service Account Password** box, enter the service account password. -Skip this box for a gMSA. - -Select the **SSL Enabled** check box if the directory server is LDAP over SSL enabled. - -NOTE: GroupID 11 supports LDAPS; however, the Replication Service will still connect to the domain -controller via the LDAP 389 port. Hence, both LDAP and LDAPS protocols must be enabled on the domain -controller. - -Click **Create Identity Store**. The **Replicate Identity Store** message is displayed. Select: - -- **Later:** replicates all the objects to Elasticsearch at the next due replication time as per the - replication settings. -- **Replicate Now:**replicates all the objects to Elasticsearch now. - -The identity store is available on the **Identity Stores** page. You can specify different -configurations for it. - -## Create an Identity Store for Microsoft Entra ID - -In Admin Center, click **Identity Stores** in the left pane. - -On the **Identity Stores** page, click **Create Identity Store** in the top right corner. - -On the **Create Identity Store** page, use the **Store Type** drop-down list to select an identity -provider to create an identity store for. -This list displays the supported providers. Select _Microsoft Azure_. - -Enter a name for the identity store in the **Name** box. - -From the **Cloud** drop-down list, select the cloud where your Microsoft Entra ID tenant exists. - -In the **Domain Name** box, enter the fully qualified name of the Microsoft Entra ID domain you want -to create the identity store for. - -Specify the path to the PFX certificate in the **PFX Certificate** box. For that, click **Choose -File** and browse for the file. Select it and click **Open**. -As a prerequisite, the PFX certificate must be generated on the GroupID server and exported to this -machine for upload. - -In the **PFX Certificate Password** box, enter the password that was created while exporting the PFX -certificate. - -In the **Registered Application ID on Azure Active Directory** box, enter the application ID -assigned to the GroupID application when you registered it in Microsoft Entra Admin Center. - -In the **Registered Client Secret on EntraID** box, provide the client secret value generated -against the certificate uploaded to Microsoft Entra Admin Center while registering the GroupID -application. - -If you bind a custom domain with your Microsoft Entra ID tenant and create an identity store for -Microsoft Entra ID using the credentials of that custom domain, then you must provide the name of -the primary domain in the **Primary Domain Name** box, so that the _write_ operations are not -affected. - -Click **Create Identity Store**. The **Replicate Identity Store** message is displayed. Select: - -- **Later:** replicates all the objects to Elasticsearch at the next due replication time as per the - replication settings. -- **Replicate Now:**replicates all the objects to Elasticsearch now. - -The identity store is available on the **Identity Stores** page. You can specify different -configurations for it. - -NOTE: Microsoft’s throttling policy restricts an application (such as GroupID) to create a maximum -of 3 concurrent sessions with Microsoft Entra ID. With this in view, GroupID allows only one active -session at any given time, which is used by Data service and Replication service. - -## Create an Identity Store for Generic LDAP - -Create a Generic LDAP identity store to connect to any LDAP version 3-compliant directory server, -such as Sun ONE directory server. This provider does not support dynamic schema detection. The -schema included for this provider mostly contains commonly used fields. - -**To create an identity store:** - -In Admin Center, click **Identity Stores** in the left pane. - -On the **Identity Stores** page, click **Create Identity Store** in the top right corner. - -On the **Create Identity Store** page, use the **Store Type** drop-down list to select an identity -provider to create an identity store for. -This list displays the supported providers. Select _Generic LDAP_. - -Enter a name for the identity store in the **Name** box. - -In the **Hostname** box, enter the fully qualified domain name or IP address of the machine that -hosts the generic LDAP server. - -In the **Port Number** box, enter the port on which LDAP is running. This port is used to -communicate with the host machine. - -In the **Domain Name** box, enter the fully qualified name of the domain you want to create the -identity store for. - -In the **Service Account** box, enter the fully qualified username of a service account (for -example, CN=Admin,CN=Users,DC=Imanami,DC=COM) to connect to _Generic LDAP_. The service account must -have sufficient privileges on the provider to facilitate group and identity management operations -using GroupID. - -In the **Service Account Password** box, enter the service account password. - -Click **Create Identity Store**. The **Replicate Identity Store** message is displayed. Select: - -- **Later:** replicates all the objects to Elasticsearch at the next due replication time as per the - replication settings. -- **Replicate Now:**replicates all the objects to Elasticsearch now. - -The identity store is available on the **Identity Stores** page. You can specify different -configurations for it. - -## Create an Identity Store for Google Workspace - -In Admin Center, click **Identity Stores** in the left pane. - -On the **Identity Stores** page, click **Create Identity Store** in the top right corner. - -On the **Create Identity Store** page, use the **Store Type** drop-down list to select an identity -provider to create an identity store for. -This list displays the supported providers. Select _Google Workspace_. - -Enter a name for the identity store in the **Name** box. - -In the **Service Account** box, enter the service account name assigned to you when you created your -Google Workspace account. - -In the **Admin Username** box, enter the username of an authorized user account to connect to the -provider. -The account must have the _Super Admin_ role in Google Workspace to facilitate group and identity -management operations using GroupID. - -In the **API Key** box, enter the API key generated for your account in Google Workspace. -To generate the key, see -[Create access credentials](https://developers.google.com/workspace/guides/create-credentials). - -Specify the path to the p12 key file in the **P12 Certificate** box. For that, click **Choose File** -and browse for the file. Select it and click **Open**. -As a prerequisite, the p12 key file for your account must be generated in Google Cloud Console and -downloaded to a machine. - -Click **Create Identity Store**. The **Replicate Identity Store** message is displayed. Select: - -- **Later:** replicates all the objects to Elasticsearch at the next due replication time as per the - replication settings. -- **Replicate Now:**replicates all the objects to Elasticsearch now. - -The identity store is available on the **Identity Stores** page. You can specify different -configurations for it. - -**See Also** - -- [Service Accounts](/docs/directorymanager/11.0/requirements/moreinfo/overview.md) -- [Manage an Identity Store](/docs/directorymanager/11.0/signin/identitystore/manage.md) -- [Configure an Identity Store](/docs/directorymanager/11.0/signin/identitystore/configure/configure.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/link/_category_.json b/docs/directorymanager/11.0/signin/identitystore/link/_category_.json deleted file mode 100644 index c4a5458ee7..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/link/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Link Identity Stores", - "position": 60, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/identitystore/link/manage.md b/docs/directorymanager/11.0/signin/identitystore/link/manage.md deleted file mode 100644 index ec624aba88..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/link/manage.md +++ /dev/null @@ -1,232 +0,0 @@ ---- -title: "Manage Identity Store Links" -description: "Manage Identity Store Links" -sidebar_position: 10 ---- - -# Manage Identity Store Links - -You can link identity stores built on the supported identity providers in GroupID. In this way, -identical user and group objects existing in multiple identity stores (domains) can be linked -together and auto synced. GroupID further enables you to manage these linked identity stores. - -What do you want to do? - -- [Link Two Identity Stores](#link-two-identity-stores) -- [View the Identity Store Links](#view-the-identity-store-links) -- [Edit a Link](#edit-a-link) -- [Disable or Enable a Link](#disable-or-enable-a-link) -- [Delete a Link](#delete-a-link) - -## Link Two Identity Stores - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click **Link Identity Stores Now** in the **Identity Store - Links** area. In case a link already exists, the **Create Identity Store Link** button is - available. -3. On the **Link Identity Stores** page, click **Add**. The **Add Identity Stores** dialog box lists - all the Active Directory and Microsoft Entra ID identity stores created in GroupID. -4. Select two identity stores and click **Add 2 Stores**. The selected identity stores are displayed - on the **Link Identity Stores** page. -5. Next, you have to specify the attributes for linking user and group objects in the identity - stores. Separate filter expressions for user and group objects have to be created for this - purpose. - - - To create a filter expression for linking user objects, click **Users**. - - To create a filter expression for linking group objects, click **Groups**. - - The **Add Filter for Users** or **Add Filter for Groups** pane is displayed. - -6. For mapping, follow these steps: - - 1. Click **Add Filter** to create a filter expression to map objects. - - - The first list displays schema attributes from the first identity store. - - Next you have one condition, i.e., _Is Exactly_. - - The third list displays schema attributes from the second identity store. - - Select a schema attribute from the first and third lists to map them. Users with identical - values for both attributes in the respective identity stores will be linked. - - 2. (Optional) You can add more clauses to enhance the filter. These clauses must be joined by a - logical ‘and’ or ‘or’. - - Click **Add More Filters**. - - Select a schema attribute from the first and third lists to map them, with _Is Exactly_ as - the condition. - - Select two clauses and then group them by inserting a logical ‘and’ or ‘or’. - To select a clause, click the down arrow next to it and choose **Select row**. On - selecting the second clause, _AND_ and _OR_ are displayed. Select an option to group the - clauses. - You can add as many clauses as required. Moreover, you can group and regroup clauses. - Users that satisfy the filter expression will be linked. - 3. On clicking the operator, a menu is displayed with the following options: - - - **Select Group / Deselect Group:** This option is not relevant when there is only one - group containing multiple clauses. It is relevant when you have two or more groups. Click - it to select the respective group. Then select another group to bind them with a logical - AND/OR. - - **Ungroup:** Removes the logical AND/OR to ungroup the clauses in the filter expression. - In case the operator binds two groups, this option removes the operator to ungroup them. - - **Change to AND/OR**: Changes the logical AND to OR and vice versa. - - **Add Clause:** Adds a new clause to the filter. - - **Delete:** Deletes the operator along with all the clauses that the operator joins. - - 4. Notice the two buttons: **Clear** and **Preview**, at the top of the filter expression. - - - **Clear:** Clears the entire filter expression, thereby deleting all attribute mappings. - - **Preview:** Launches the **Preview Results** dialog box, where you can view identical - user objects in the identity stores, based on the filter expression. - On the **Preview Results** dialog box, enter the name of an object (user or group) in the - first box, select an identity store, and click **Preview**. - - - For an Active Directory identity store, GroupID looks up the values of the name, - sAMAccountName, objectGUID, and distinguishedName attributes to match the string using - the _Is exactly_ operator. - - For a Microsoft Entra ID identity store, GroupIDlooks up the values of the - userPrinicipalName, ObjectGUID, distinguishedName, and name (which is equivalent to - display name) attributes to match the string using the _Is exactly_ operator. - Note that Microsoft Entra ID does not contain the distinguishedName attribute; however - it is available as a pseudo attribute in GroupID and its value is the same as that of - the distinguishedName attribute in Active Directory. - - The **Preview Results** dialog box displays the user object found in the selected - identity store on the basis of the search string. Next to it, one of the following is - displayed: - - - The user object identical to it in the other identity store. This is fetched on the - basis of the mapped attributes. The display name and distinguished name of the user - are displayed in both identity stores. - - If no identical object is found, nothing is displayed next to the user. - - If multiple identities of a user are found in the other identity store, then a - **Multiple Objects** link is displayed. Click it to open a popup that lists all - identical objects for the user found in the other identity store. - - If, on the **Preview Results** dialog box, you do not enter a user name but simply - select an identity store and click **Preview**, all user objects from the selected - identity store are displayed along with their linked identities in the other identity - store. If the process takes too long, you can click the orange button at the bottom to - terminate the process. - - 5. Click **Add Filter for Users** in the bottom right corner of the **Add Filter for Users** or - **Add Filter for Groups** pane. - - NOTE: If you have added multiple clauses but do not group them using the AND/OR operator, - GroupID auto groups them using AND. Similarly, if you add two groups of clauses but do not - group them using the AND/OR operator, GroupID auto groups them using AND. - - The filter is added and displayed on the **Link Identity Stores** page. - You can specify one filter expression for the user object and one filter expression for the - group object. - - 6. Click **Add Filter Scope** to specify a container for linked identities GroupID to link and - sync later on when they are updated. New objects are also created in this container. - -7. Click **Create Link** to save the link. - - NOTE: An identity store link is effective when the two identity stores linked together are also - associated with a GroupID portal, say Portal A. If a portal does not exist with both identity - store associated with it, a message is displayed to alert you to it. - - The link is displayed on the **Identity Stores** page. - -## View the Identity Store Links - -All identity store links created in GroupID are displayed under **Identity Store Links** on the -**Identity Stores**page. - -**To view the links:** - -1. In Admin Center, click **Identity Stores** in the left pane. - On the **Identity Stores** page, each card under **Identity Store Links** represents a distinct - link between two identity stores. The following information is displayed for a link: - - - The names of the two linked identity stores and the identity providers they have been created - on. - - The object types that are linked, i.e., user and group. - - The link status, displayed in the top right corner of the card. A link can have one of the - following statuses: - - - **Healthy** - Indicates that both the identity stores are fully functional with - replication occurring regularly. - - **Errors** - Indicates that one or both the identity stores have run into errors due to - replication or connectivity issues. Check the concerned identity store to resolve the - issue. You will notice that the card for the respective identity store also shows ‘Error’ - as status. - -2. Click the ellipsis button to launch a shortcut menu with the following options: - - - **Edit:** launches the **Link Identity Stores** page, where you can update the link. - - **Disable:** disables the link between the two identity stores. - - **Delete:** deletes the link. - -## Edit a Link - -A link between two identity stores involves (a) two identity stores (b) a filter that identifies -identical user objects in the identity stores to link them, and (c) a filter that identifies -identical group objects in the identity stores to link them. - -You can edit a link to: - -- Replace an identity store in the link -- Update the filter expression for a user or group object -- Remove the filter expression for a user or group object - -**To edit a link:** - -1. In Admin Center, click **Identity Stores** in the left pane. - On the **Identity Stores** page, each card under **Identity Store Links** represents a distinct - link between two identity stores. -2. Click the ellipsis button on a card and select **Edit**. - The **Link Identity Stores** page opens, displaying the linked identity stores and the filters. - - - **Replace an identity store** - To change the identity store(s) in the link, either click - **Edit** next to the identity stores’ names. On the **Add Identity Stores** dialog box, select - the identity stores to replace the existing ones. Then click **Add 2 Stores**. - When one or both identity stores are replaced, the filter expression is automatically removed. - You must create a new filter expression to establish a link between the identity stores. - - **Modify the filter expression for user or group object** - Click **Edit** on the filter card - for the user or group object. The **Add Filter** pane is displayed, where you can update the - filter expression. Follow step 6a-e in the - [Link Two Identity Stores](#link-two-identity-stores) topic to update the filter expression. - Modifying the filter expression for the user or group object breaks the link for the - respective objects in the linked identity stores. Objects will be relinked on the basis of the - new filter expression and will be synced accordingly in the GroupID portal. - - **Delete a filter expression** - Click **Remove** on the filter card for a user or group - object to delete it. Deleting the filter expression for the user or group object breaks the - link for the respective objects in the linked identity stores. - - NOTE: At least one filter expression for the user object and one filter expression for the - group object must exist for the identity store link. Else changes will not be saved. - -3. After making the required changes, click **Update Link**. - -## Disable or Enable a Link - -When you disable a link between two identity stores, it becomes inactive and the objects in the -identity stores are not linked anymore in the GroupID portal. - -A disabled link can be enabled again to relink objects in the identity stores. - -**To disable a link:** - -1. In Admin Center, click **Identity Stores** in the left pane. - On the **Identity Stores** page, each card under **Identity Store Links** represents a distinct - link between two identity stores. -2. Click the ellipsis button on a card and select **Disable** to disable the link. - Click the ellipsis button for a disabled link and select **Enable** to reactivate it. - -## Delete a Link - -When you delete a link between two identity stores, the objects in the identity stores are not -linked anymore in the GroupID portal. - -**To delete a link:** - -1. In Admin Center, click **Identity Stores** in the left pane. - On the **Identity Stores** page, each card under **Identity Store Links** represents a distinct - link between two identity stores. -2. Click the ellipsis button on a card and select **Delete** to delete the link. - -**See Also** - -- [Link Identity Stores](/docs/directorymanager/11.0/signin/identitystore/link/overview.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/link/overview.md b/docs/directorymanager/11.0/signin/identitystore/link/overview.md deleted file mode 100644 index f76964bd66..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/link/overview.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: "Link Identity Stores" -description: "Link Identity Stores" -sidebar_position: 60 ---- - -# Link Identity Stores - -You can link identity stores in GroupID. In this way, identical user and group objects existing in -multiple identity stores (domains) can be linked together and auto synced. - -For example, you can create a link between the following types of identity stores: - -- Two Active Directory identity stores -- An Active Directory identity store and a Microsoft Entra ID identity store -- Two Microsoft Entra ID identity stores -- An Active Directory identity store and a Google Workspace identity store - -NOTE: (1) Two identity stores built on the same domain cannot be linked. -(2) An identity store must be replicated in GroupID before it can be linked. - -## Linked Identity Stores and the GroupID Portal - -Linking, in itself, is not effective until the identity stores joined via linking are associated -with a GroupID portal, say Portal_A. Consider the following: - -- The administrator links IdentityStoreA and identityStoreB. -- The administrator creates a portal, Portal_A, and associates both the linked identity stores with - it. -- This enables portal users to view data from IdentityStoreA and identityStoreB at the same time, - rather than having to switch identity stores. Users can also filter data for identical objects in - both the identity stores. - Users can choose to view data for a single identity store or switch to the ‘linked’’ mode to view - data simultaneously from both the linked identity stores. - -When only IdentityStoreA or IdentityStoreB is associated with Portal_A, the linking between the two -identity stores serves no purpose. - -### Benefits of Running the Portal Under the ‘Linked’ Mode - -A portal running under the ‘linked’ mode is effectively connected to all the linked identity stores -that are associated with it. You can access objects in different identity stores in a single -instance of the portal, rather than having to log out and connect the portal to another identity -store. - -The following portal functions are impacted under the ‘linked’ mode: - -- When a user performs a search, results are fetched from all the linked identity stores. -- When an action is performed on a user or group object, it is replicated to all the identical - objects in the linked identity store(s). In this way, identical user and group objects in the - linked identity stores are auto synced. Consider the following: - - - When you create a static group, its identical static group is created in a linked identity - store. - - When you create a Smart Group, its identical group is created as a static group in a linked - identity store. - - When you create a mail-enabled group, an identical simple group is created in a linked - identity store. - - When you create a mailbox or a mail-enabled user, an identical simple user is created in a - linked identity store. - - When you delete a user or group object in an identity store, its linked object(s) are also - deleted. - - When you update the properties of a user or group object, those same properties are also - updated for its linked object(s) in the linked identity store(s). - - When you execute the query for a Smart Group to update it, its linked Smart Group(s) will not - be auto updated. - - When you upgrade a static group (say, GroupA) to a Smart Group, the linked static group(s) - (say, GroupB and GroupC) in the linked identity store(s) will not be upgraded to Smart Groups. - -- Group listings in the portal (namely All Groups, My Groups, and Deleted Groups) display the groups - from all the linked identity stores. Users can select groups from any identity store to perform an - action in bulk, such as expire them. -- User listings in the portal, such as My Direct Reports, display user objects from all the linked - identity stores. Users can select user objects from any identity store to perform an action in - bulk, such as terminate them. -- For entitlements, the portal shows Active Directory file server and SharePoint permissions from - all the linked identity stores. - -When the logged-in user exists in multiple linked identity stores, he or she can perform actions in -an identity store according to his or her role and permissions in the respective identity store. For -example, if the user is an administrator in IdentityStoreA and a standard user in IdentityStoreB, he -or she can perform administrative actions on groups in IdentityStoreA only, even though the group -listing displays all groups from both the linked identity stores. - -## How to Link Two Identity Stores - -Linking two identity stores follows a simple and straight-forward process: - -- Select the required identity stores. -- Create a filter expression to map attributes. Select a schema attribute from IdentityStoreA and - another from IdentityStoreB. This mapping establishes a link between the two identity stores. - You can also create an advanced filter expression by adding multiple clauses to the filter (where - each clause is a one-to-one mapping of attributes) and joining them with the ‘and’ or ‘or’ - operator. - You have to create a separate filter expression for user and group objects. -- When two objects have the same value for the mapped attributes in the two identity stores, GroupID - identifies them as identical objects, and hence links them. - -For example, to link IdentityStoreA to IdentityStoreB, select the displayName and cn attributes from -IdentityStoreA and IdentityStoreB respectively to map them. Now when an object has _Mary Jones_ as -value for the distinguishedname attribute in dentityStoreA and an object has _Mary Jones_ as value -for the cn attribute in dentityStoreB, GroupID identifies them as identical objects existing in two -distinct directories, and links them. - -RECOMMENDED: For mapping, always use attributes that store unique values. - -## How to Link Multiple Identity Stores - -You can link more than two identity stores; in fact, GroupID empowers you to link identity stores -created for GroupID supported providers. - -You cannot just create one link to link multiple identity stores. Rather, if you want to link three -identity stores, you will have to create two links; to link four identity stores, create three -links, and so on. Each link involves two identity stores, thereby creating a chain of linked -identity stores. - -Here is how it works: - -- Link two identity stores, IdentityStoreA and IdentityStoreB, by following the discussion in the - [How to Link Two Identity Stores](#how-to-link-two-identity-stores) topic. - GroupID now considers this link as one entity. Let’s call it Entity1. -- Next, link IdentityStoreA or IdentityStoreB to IdentityStoreC using the same method. - This establishes a link between Entity1 and IdentityStoreC. - -In this way, you can create a chain of links between identity stores. - -**See Also** - -- [Identity Stores](/docs/directorymanager/11.0/signin/identitystore/overview.md) -- [Manage Identity Store Links](/docs/directorymanager/11.0/signin/identitystore/link/manage.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/manage.md b/docs/directorymanager/11.0/signin/identitystore/manage.md deleted file mode 100644 index 097742cc49..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/manage.md +++ /dev/null @@ -1,232 +0,0 @@ ---- -title: "Manage an Identity Store" -description: "Manage an Identity Store" -sidebar_position: 20 ---- - -# Manage an Identity Store - -Once you create and configure an identity store, you can perform group and identity management -operations in the identity provider using GroupID. - -What do you want to do? - -- [View Identity Store Details](#view-identity-store-details) -- [Enable or Disable an Identity Store](#enable-or-disable-an-identity-store) -- [Update General Info for an Identity Store](#update-general-info-for-an-identity-store) -- [Exclude an Active Directory Domain from Replication](#exclude-an-active-directory-domain-from-replication) -- [Set DC Priority for an Active Directory Identity Store](#set-dc-priority-for-an-active-directory-identity-store) -- [Delete an Identity Store](#delete-an-identity-store) - -## View Identity Store Details - -In Admin Center, click **Identity Stores** in the left pane. The **Identity Stores** page displays -the identity stores created in GroupID. - -The card for an identity store displays the following information: - -| Info | Description | -| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Basic info | The display name of the identity store and the identity provider it is built on, such as Active Directory. | -| Identity store status | The status is displayed on the top right corner of the card. An identity store has one of the following statuses: - **Healthy:** Indicates that the identity store is fully functional. Hover the mouse over the status to view the factors used to determine health. - **Errors:** Indicates that the identity store has run into one or both of the following errors: - It cannot connect to the identity provider using the service account provided on the **Identity Store Details** page. - Data from the provider is not replicated to Elasticsearch within the required time interval. The last replication time and date is displayed at the bottom of the card. Hover the mouse over the status to view the reason for the _Errors_ status. | -| History | Indicates whether history tracking for the identity store is enabled or disabled. See the [Configure History Tracking](/docs/directorymanager/11.0/signin/identitystore/configure/historytracking.md) topic to enable or disable history tracking. | -| MFA | Indicates whether second factor authentication is enabled for security roles in the identity store. See the [Configure Second Factor Authentication](/docs/directorymanager/11.0/signin/authpolicy/sfa.md) topic. One of the following is displayed for MFA: - **Available for x/x roles:** Indicates the number of security roles that second factor authentication is enabled for, out of the total security roles in the identity store. For example, 1/3 indicates that there are 3 security roles defined for the identity store and second factor authentication is enabled for one of those roles. - **Not Available:** Indicates that second factor authentication is not enabled for any security role in the identity store. | -| Last replication date and time | The last run date and time of the Replication service. If the service does not run at the specified interval, the identity store status changes to **Errors**. | -| Ellipsis | Click it to launch a shortcut menu with the following options: - **Edit:** launches the identity store properties page, where you can manage identity store settings, workflows, security roles, replication attributes, and more. See the [Configure an Identity Store](/docs/directorymanager/11.0/signin/identitystore/configure/configure.md) topic. - **Disable:** disables the identity store. - **Replicate Objects:** runs the Replication service to replicate object data in the identity store. See the [Force Run the Replication Service (for Object Replication)](/docs/directorymanager/11.0/signin/identitystore/replication.md#force-run-the-replication-service-for-object-replication) topic. - **Replicate Deleted Objects:** runs the Replication service to remove those objects from Elasticsearch that have been deleted from the identity provider. See the [Force Run the Replication Service (for Deleting Objects)](/docs/directorymanager/11.0/signin/identitystore/replication.md#force-run-the-replication-service-for-deleting-objects) topic. - **Delete:** deletes the identity store from GroupID. | - -## Enable or Disable an Identity Store - -When you disable an identity store, all users logged into GroupID with that store are logged out, -and the identity store is unavailable for operations. - -You can disable an identity store in any of the following ways. However, a disabled identity store -can be enabled using **Method 1** only. - -**Method 1: Enable or disable an identity store** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Enable** or **Disable**. - -**Method 2: Disable an identity store** - -1. In Admin Center, click Identity Stores in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. On the **Identity Store Details** page, use the toggle button in the top right to disable the - identity store. -4. Click **Save**. - -## Update General Info for an Identity Store - -You can change the display name for an identity store, add a description for it, change the service -account credentials to connect to the identity provider, and update any other information you -provided while creating it. - -**To update the info:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. On the **Identity Store Details** page, update the required information on the **General** tab. - This page differs by provider. Refer to the steps for creating the respective provider in the - [Create an Identity Store](/docs/directorymanager/11.0/signin/identitystore/create.md) - topic for more information. -4. Click **Save**. - -## Exclude an Active Directory Domain from Replication - -By default, GroupID replicates the domain specified for the identity store and its child domains. -You can exclude a domain or a child domain from replication, in which case the Replication service -will not replicate it. See the -[Elasticsearch and Replication ](/docs/directorymanager/11.0/signin/replication/overview.md) -topic. - -You can still create and manage objects in an excluded domain using GroupID. - -**To exclude a domain:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. On the **Identity Store Details** page, click the **Connection** tab. -4. In the **Excluded Domains** areas, select the check boxes for the domains you want to exclude - from replication. - To select all domains, select the check box in the header area. -5. Click **Save**. - -## Set DC Priority for an Active Directory Identity Store - -You can select a domain controller in an Active Directory domain to work with GroupID. Data service -and Replication service will connect to this domain controller to perform their respective -operations in the domain. In this way, you can ensure that the selected domain controller is always -available with minimum downtime. - -To understand how the DC priority function works, let’s assume the following: - -- gene.local is your parent domain with two child domains. -- You have four domain controllers in the parent domain: DC_N, DC_S, DC_E, and DC_W. -- You also have two domain controllers in each of the two child domains. - -You can set a separate DC priority list for the parent domain and each of the child domains. - -To create a DC priority list for a domain, list the domain controllers in the order of priority. -Let’s say you set priority for the parent domain as: - -Priority 1:     DC_E -Priority 2:    DC_S -DC_N and DC_W are not included in your priority list. - -When the Data service restarts for reasons such as IIS restart, it does the following: - -- The Data service attempts to connect to the first domain controller in the priority list, i.e., - DC_E. -- If DC_E is not available, the Data service attempts to connect to the second domain controller in - the priority list, i.e., DC_S. -- If DC_S is not available either, the Data service will resort to the normal lookup process. - -Normal lookup process for Data service - -Data service makes a connection with a domain controller through the System.DirectoryServices API. -It sends a request to the API, which, in turn, connects to any domain controller in the domain. In -this way, Data Service communicates with the domain controller to perform the required function. - -System.DirectoryServices does not evaluate the domain controller in the DC priority list for -creating a connection. Hence, in the above example, the API will connect to DC_N or DC_W. - -“Server Not Operational” error - -When Data service connects to a domain controller (say DC_E), it caches the domain logon information -and uses it to create all subsequent sessions with the domain controller. Hence it does not iterate -on the DC priority list every time it has to create a session. - -In case DC_E is down, the ‘Server Not Operational” error will be displayed in GroupID. It indicates -that Data service has lost connection with the domain and needs to re-establish a connection. - -To resolve the error, restart IIS. In this way, Data service will make a connection again using the -process discussed above. It will connect to a different domain controller and cache the domain logon -information (and continue to make a session with this domain controller unless Data service is -restarted). - -DC priority and Replication - -Every time the Replication service is triggered, it consults the DC priority list to connect to a -domain controller for replication. If it is unable to connect to any domain controller in the -priority list, it reverts to the normal lookup process to connect to a domain controller in the -domain. - -In a nutshell - -- If DC priority is defined for a domain, Data service and Replication service will connect to a - domain controller in the domain using the defined DC priority list. If no domain controller in the - list is available, the services will rely on the normal lookup process to connect to a domain - controller in the domain. -- If DC priority is not defined for a domain, Data service and Replication service will connect to - it using the normal lookup process. - -**To set DC priority for a domain:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. On the **Identity Store Details** page, click the **Connection** tab. The **DC Priority** area - displays two options: - - - **Set default priority:** This tile is selected by default and indicates that no DC priority - is set for the identity store domain. As a result, Data service and Replication service will - connect to it using the normal lookup process. - - **Choose my own priority:** Select this tile to set a DC priority list for the identity store - domain and its child domains, if any. - -4. On selecting the **Choose my own priority** tile, the following fields are displayed: - - 1. **Select Domain:** This drop-down list displays the identity store domain and its child - domains, if any. Excluded domains are not listed. Select a domain to define a DC priority - list for it. - Note that each domain in the list has either _Priority set_ or _Default Priority_ displayed - next to it. - - - _Priority set:_ indicates that DC priority has been defined for the domain, even if it is - set for one DC and not for all DCs in the domain. - - _Default Priority:_ indicates that priority has not been set for any DC in the domain. - - 2. The table displays the domain controllers in the selected domain. The **DC Name** column - displays the name of the DC while the **Priority** column displays the priority assigned to - it, with ‘1’ being the highest priority. When no priority is assigned to a DC, _Not set_ is - displayed for it. - You can choose to assign priority to selected DCs in the domain. For example, if a domain has - 4 DCs, you can set priority for two and leave the rest. - - - To assign priority to a domain controller, click **Set priority** for it. The **Priority** - column displays the priority assigned to it. To revoke priority, click **Reset priority**. - - To change the priority for a DC, click in the row, hold down the left mouse button, and - drag to change its position in the list. By default, "1" is assigned as priority to the - first DC in the list, followed by '2' to the second DC in the list, and so on. - - To revoke priority for all DCs in the domain, click **Reset all to default**. With this, - _Default Priority_ is displayed next to the domain in name in the **Select Domain** - drop-down list. - -5. Click **Save**. - -NOTE: When you change the DC priority for a domain or a child domain, it takes effect instantly. -Data service reestablishes a connection with a DC based on new priority. - -## Delete an Identity Store - -You can delete an identity store with all its configurations. As a result, GroupID cannot be -connected to that identity store, nor can it be used in a Synchronize job. - -NOTE: You cannot delete an identity store that has been linked to another identity store. You must -first delete the link(s) before deleting the identity store. - -**To delete an identity store:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Delete**. - -**See Also** - -- [Identity Stores](/docs/directorymanager/11.0/signin/identitystore/overview.md) -- [Configure an Identity Store](/docs/directorymanager/11.0/signin/identitystore/configure/configure.md) -- [Replication Service](/docs/directorymanager/11.0/signin/service/replicationservice.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/overview.md b/docs/directorymanager/11.0/signin/identitystore/overview.md deleted file mode 100644 index 7b7243112f..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/overview.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: "Identity Stores" -description: "Identity Stores" -sidebar_position: 30 ---- - -# Identity Stores - -GroupID enables you to create an identity store on an identity provider and perform different -functions in that provider through the identity store. These functions include: - -- Group management tasks, such as creating groups, scheduling group updates, and expiring groups. -- User management tasks, such as creating users and mailboxes, managing users’ profiles, and - managing direct reports. -- Bulk user provisioning and deprovisioning in an identity provider, database or even a file, such - as an Excel file. -- Entitlement related tasks, such as updating the effective NTFS permissions for shared resources on - a file server. -- Reporting and analytics. - -GroupID supports the following identity providers for creating an identity store, to perform -identity and access management tasks: - -- Active Directory -- Microsoft Entra ID -- Generic LDAP -- Google Workspace - -Identity stores created for these providers can also be used as source and destination in -Synchronize jobs for bulk user management tasks. - -You can also link Active Directory and Microsoft Entra ID identity stores to sync identical objects -there. - -NOTE: You can define a custom identity store for non-supported identity providers in GroupID. -Contact Netwrix Client Services for support. - -**See Also** - -- [Create an Identity Store](/docs/directorymanager/11.0/signin/identitystore/create.md) -- [Manage an Identity Store](/docs/directorymanager/11.0/signin/identitystore/manage.md) -- [Configure an Identity Store](/docs/directorymanager/11.0/signin/identitystore/configure/configure.md) -- [Link Identity Stores](/docs/directorymanager/11.0/signin/identitystore/link/overview.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/replication.md b/docs/directorymanager/11.0/signin/identitystore/replication.md deleted file mode 100644 index 50a247af69..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/replication.md +++ /dev/null @@ -1,170 +0,0 @@ ---- -title: "Manage Local Replication Settings" -description: "Manage Local Replication Settings" -sidebar_position: 30 ---- - -# Manage Local Replication Settings - -You can manage the following replication settings for an identity store: - -- Specify the object attributes that you want to use in the identity store. The Replication service - then replicates the selected attributes to Elasticsearch. - Attributes that you do not select for replication will not be available in the identity store and - cannot be used in GroupID functions. -- Force run the service at any given time to replicate object attributes. -- Restore object data to Elasticsearch for an identity store. - -What do you want to do? - -- Specify Object Attributes to Replicate -- Replicate a Custom Attribute -- Force Run the Replication Service (for Object Replication) -- Force Run the Replication Service (for Deleting Objects) -- Restore Object Data - -## Specify Object Attributes to Replicate - -For an identity store, a few attributes have been specified for replication by default. You can -modify the list as required. - -**To select object attributes:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Replication** under **Settings** in the left pane. -4. On the **Replication** page, the **Attribute Name** column displays a list of the object - attributes that the Replication service replicates to Elasticsearch for the identity store. - - - Use the search box to search for an attribute in the list. - Simply enter a search string in the box; attribute names containing the string will be - displayed. - - To remove an attribute from the list, click **Remove** for it. - - To reset to the default attribute listing, click **Reset to Default**. - -5. Click **Add Replication Attributes** to add an attribute to the list. -6. The **Select Replication Attributes** dialog box displays a list of the schema attributes in the - provider. Select the check boxes for the attributes you want to replicate for the identity store - and click **Save**. The attributes are added to the **Attribute Name** column on the - **Replication** page. - - NOTE: If in a Microsoft Entra ID based identity store extension attributes are added, GroupID - Schema Replication schedule fetches the latest schema at its next run and add the newly added - extension attributes to the **Select Replication Attributes** list. See the - [Schema Replication Schedule](/docs/directorymanager/11.0/signin/schedule/schemareplication.md) - for additional information. - Select the required extension attributes from the **Select Replication Attributes** list and - add them to the attribute to replicate list. See the Specify Object Attributes to Replicate - section of the Manage Local Replication Settings topic. - -7. Click **Save** - -## Replicate a Custom Attribute - -By default, a custom attribute for any object type (user, group, computer, public folder) is not -replicated for an identity store. - -Let's assume you have a custom attribute, SerialNumber, for the user object in Active Directory. To -replicate its value in the Elasticsearch repository, do the following: - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Replication** under **Settings** in the left pane. -4. On the **Replication** page, click **Add Replication Attributes** to search, select, and add the - required attribute (for example, _SerialNumber_) to the **Attribute Name** list. -5. Click **Save** on the **Replication** page. -6. Click **Restore** on the **Restore Data** card to restore object data to Elasticsearch for the - identity store. - To run replication from scratch for the object type the added attribute belongs to (i.e., user - object in the example). empty the replication timestamp for the specific object type in the - GroupID database. - -NOTE: When a Smart Group, created with a custom attribute in a previous GroupID version, is upgraded -using the Upgrade wizard, you will have to replicate the respective object type from scratch. - -## Force Run the Replication Service (for Object Replication) - -By default, the Replication service runs every 10 minutes. However, you can force run it any time -for an identity store to replicate object attributes to Elasticsearch. - -Force-starting the service has no impact on the interval set for triggering the service on the -**Replication** page. See the -[Specify a Replication Interval for Objects](/docs/directorymanager/11.0/signin/replication/settings.md#specify-a-replication-interval-for-objects)topic. - -You can force run the Replication service for an identity store in any of the following ways: - -### Method 1: - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Replicate Objects**. - Any changes made to the values of attributes during the last and current run of the Replication - service are replicated to Elasticsearch. - -### Method 2: - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Replication** under **Settings** in the left pane. -4. On the **Replication** page, click **Run** on the **Replication Service** card to run the - Replication service instantly. Any changes made to the values of attributes during the last and - current run of the Replication service are replicated to Elasticsearch. - The card also displays the last run date and time of the service. - -## Force Run the Replication Service (for Deleting Objects) - -Objects that are deleted from the directory must also be removed from Elasticsearch. By default, the -interval for removing deleted objects from Elasticsearch is set to 60 minutes. You can, however, -force run the Replication service for an identity store any time to remove deleted objects. - -Force-starting the service has no impact on the interval set for triggering the service on the -**Replication** page. See the -[Specify Interval for Deleting Tombstone Objects](/docs/directorymanager/11.0/signin/replication/settings.md#specify-interval-for-deleting-tombstone-objects) -topic. - -For an identity store, you can force run the Replication service (for deleting objects) in any of -the following ways: - -### Method 1: - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Replicate Deleted Objects**. Any objects deleted in the directory between the last and current - run of the Replication service will be removed from Elasticsearch. - -### Method 2: - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Replication** under **Settings** in the left pane. -4. On the **Replication** page, click **Run** on the **Deleted Objects Replication** card to run the - Replication service instantly. Objects deleted from the directory between the last and current - run of the Replication service will be removed from Elasticsearch. - The card also displays the last run date and time of the service. - -## Restore Object Data - -You may need to restore data for an identity store to Elasticsearch. The restore object data event -restores the following for an identity store: - -- the current attribute values of objects (group, user, contact, computer, and OU) from the provider - (for example, Active Directory) -- the GroupID pseudo attributes of those objects from the GroupID database to Elasticsearch - -**To restore object data:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Replication** under **Settings** in the left pane. -4. On the **Replication** page, click **Restore** on the **Restore Data** card to restore object - data for the identity store to Elasticsearch. - -See Also - -- [Elasticsearch and Replication ](/docs/directorymanager/11.0/signin/replication/overview.md) -- [Manage Global Replication Settings](/docs/directorymanager/11.0/signin/replication/settings.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/view/_category_.json b/docs/directorymanager/11.0/signin/identitystore/view/_category_.json deleted file mode 100644 index 1d04a721bb..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/view/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Identity Store History", - "position": 70, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "view" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/identitystore/view/details.md b/docs/directorymanager/11.0/signin/identitystore/view/details.md deleted file mode 100644 index 5429716d41..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/view/details.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: "History Item Details" -description: "History Item Details" -sidebar_position: 20 ---- - -# History Item Details - -Details of a history item are displayed on the **History Details** dialog box. If the target -attribute is single-valued, the old and new values of the attribute are shown. For multi-valued -attributes, the lists of added items and removed items are displayed. - -Information includes: - -- **Attribute Modified** - The name of the target attribute. -- **Object Name** - The name of the GroupID function this history item pertains to. For example, if - it pertains to a workflow, the name of the workflow is displayed here. -- **Who** - The name of the user who performed the action. -- **Where** - The name of the computer the action was performed on. -- **When** - The date and time of the action. - -The following lists are available when the target attribute is multi-valued: - -- **Added Item** - A list of values that were added to the multi-value attribute. -- **Removed Items** - A list of values that were removed from the multi-value attribute. - -The following lists are available when the target attribute is single-valued: - -- **Old Value** - The value before the action was performed. -- **New Value** - The value after the action was performed. - -## Annotate History Items - -GroupID enables a user to add notes to history actions that he or she performed. A note may explain -the reason for an action, such as why he or she changed the security type for a group. Only the user -who added a note can update it. Other users can view it, but they cannot edit it or add comments. - -On the **History Details** dialog box, one of the following is available to you: - -- **The Add Note button** - When you are the user who performed the action that logged this history - item, and you haven’t added any note yet. -- **The Save Note button** - When you are the user who performed the action that logged this history - item and you have already added a note. -- **The note text** - When the user who performed the action has added a note. -- **None of the above** - When you are not the user who performed the action and the user performing - the action has not added any note. - -### Add a Note - -Notes can be added to history items logged for an identity store. Only the user (i.e., the doer of -the action) can add and update notes. - -**To add a note:** - -1. Click **Add Note** to add a note to the history item. The **Note** text box is displayed. -2. Type a note for the history item. Your note can have a maximum of 500 characters. -3. Click **Save Note**. On the **History** page, the annotated item is displayed with a **View - Note** button next to it. This helps distinguish annotated items from non-annotated items. - -### Edit a Note - -1. On the **History Details** dialog box, the **Note** box displays your note for the history item. - Make the required changes to the text. -2. Click **Save Note**. - -### Remove a Note - -On the **History Details** dialog box, the **Note** box displays your note. Remove it and click -**Save Note**. - -**See Also** - -- [Identity Store History](/docs/directorymanager/11.0/signin/identitystore/view/view.md) -- [Admin Center History](/docs/directorymanager/11.0/signin/concepts/history_1.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/view/eventlogging.md b/docs/directorymanager/11.0/signin/identitystore/view/eventlogging.md deleted file mode 100644 index bc76876dd2..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/view/eventlogging.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: "Event Logging" -description: "Event Logging" -sidebar_position: 10 ---- - -# Event Logging - -GroupID employs Windows logging and file logging to maintain event logs for all GroupID clients and -services, namely: - -- Admin Center -- GroupID portals -- GroupID mobile app -- Data Service (file logging only) -- Security Service (file logging only) -- Replication Service -- Email Service -- Scheduler service -- GroupID Management Shell - -In case of multiple deployments of a client or service, separate logs are maintained for each -deployment instance. - -Use the **Applications** node in Admin Center to manage Windows logging and file logging for each of -the above (except for Management Shell). - -## File Logging - -File logging records events for GroupID clients, scheduled jobs, and services in log files. Log file -location depends on where the respective instance of the client or service is deployed. - -**For a native IIS and remote IIS deployment:** - -1. Launch IIS and navigate to: - …\Sites\\ - Example: - …\Sites\GroupIDSite11\GroupIDDataService -2. Right-click this directory and select **Explore**. -3. Locate the **Logs** folder to read the logs. - -Events are logged in a text file. When the file size reaches 100 MB, GroupID archives it in the same -directory by replacing the file extension with the suffix .Log.X and then creating a new text file -with the original name. X in .Log.X is a number from 1 to 10 representing the archiving order; where -‘1’ denotes the most recent file. - -## Windows Logging - -Under Windows logging, events for GroupID clients and services are logged to the Windows application -log. - -**See Also** - -- [Configure History Tracking](/docs/directorymanager/11.0/signin/identitystore/configure/historytracking.md) -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) -- [Get Logs](/docs/directorymanager/11.0/signin/concepts/logs.md) diff --git a/docs/directorymanager/11.0/signin/identitystore/view/view.md b/docs/directorymanager/11.0/signin/identitystore/view/view.md deleted file mode 100644 index 4aec9d6f08..0000000000 --- a/docs/directorymanager/11.0/signin/identitystore/view/view.md +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: "Identity Store History" -description: "Identity Store History" -sidebar_position: 70 ---- - -# Identity Store History - -In Admin Center, you can view the history data that the GroupID history-tracking function collects -for changes made to the configurations, workflows, and security roles in an identity store. - -This data represents the events that history-tracking is configured to track. For example, history -is logged when a user enables enrollment for the identity store, removes an approver from a -workflow, modifies a policy for a security role, and more. History is not logged when a user -refreshes a page or previews any information. - -Furthermore, if history tracking is not enabled or has been lately disabled, the **Identity Store -History** page is blank or it displays data that was logged before history-tracking was turned off. - -What do you want to do? - -- [View Identity Store History](#view-identity-store-history) -- [Filter History Data](#filter-history-data) -- [Navigate Through History Items](#navigate-through-history-items) -- [Annotate History Items](#annotate-history-items) -- [Export History Data](#export-history-data) - -## View Identity Store History - -Changes made to identity store configurations, security roles, and workflows can be tracked and -viewed in Admin Center. - -**To view identity store history:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **History** under **Settings** in the left pane. - - The **Identity Store History** page displays history data in a descriptive and concise manner. - Items are sorted according to the date and time they were last updated, with the most recent at - the top. - Click a history item to view its details. See the - [History Item Details](/docs/directorymanager/11.0/signin/identitystore/view/details.md) - topic. - -## Filter History Data - -GroupID provides filters to limit the history results displayed on the **Identity Store History** -page. You can define a criterion to filter history data by action, machine name, new value, old -value, and more. - -**To define a filter:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **History** under **Settings** in the left pane. - On the **Identity Store History** page, use the **History Filters** area to specify a filter. -4. In the _Select a Filter_ drop-down list, select an attribute to use for filtering history - records. Options are: - - - Action - - Machine Name - - Modified On - - New Value - - Old Value - - User Name - -5. In the _Select an Operator_ drop-down list, select an operator to apply to the selected - attribute. This drop-down displays the operators on the basis of the selected attribute. - Available operators are: - - (missing or bad snippet) - -6. In the _Select a Value_ box, specify a value for the attribute. The selected attribute and - operator determine the kind of value that can be entered in this box. - For some operators, such as _Present_ and _Not Present_, this field is not available. These - operators check if a value for the attribute is present or not. - - **Add more filters** - On adding a filter, the next row is displayed, so you can add another - filter. - **Remove a filter row** - To remove a filter row, click **Remove** for it. - **Remove the filter** - To remove all the filter rows, click **Clear**. - -7. To apply the filter, click **Apply**. With multiple filters, history items that satisfy all the - filters are displayed. - -## Navigate Through History Items - -By default, the page size for the **Identity Store History** page is set to 10, indicating that ten -history items are displayed per page. You can set the page size to a maximum of 100 items. - -To move through pages and navigate the records, use the page numbers and arrows given at the bottom -of the listing. - -**Set the page size:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **History** under **Settings** in the left pane. -4. On the **Identity Store History** page, use the Items per page drop-down list to specify the - number of items to be displayed per page. - -**Navigate through records:** - -Navigation options are displayed at the bottom of the history records. You can view the history -items count along with the range of items you are currently viewing. - -- Click **First** to jump to the first page, containing the latest history records. -- Click **Last** to jump to the last page, containing the oldest history records. -- Use the arrows to move to the previous or next page. -- Click a page number to jump to that page. - -## Annotate History Items - -GroupID enables a user to add notes to history actions that he or she performed. A note may explain -the reason for an action, such as why he or she changed the security type for a group. Only the user -who added a note can update it. Other users can view it, but they cannot edit it or add comments. - -**To annotate history items:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **History** under **Settings** in the left pane. -4. On the **Identity Store History** page, click a history item. -5. On the **History Details** dialog box, manage notes for the history item. See the - [Annotate History Items](/docs/directorymanager/11.0/signin/identitystore/view/details.md#annotate-history-items) - topic. - -## Export History Data - -You can export identity store history to Microsoft Excel, CSV, and XML formats. - -**To export history:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **History** under **Settings** in the left pane. -4. On the **Identity Store History** page, click **Export History**. -5. On the **Export History** dialog box, enter a name for the history file in the **Name** box or - leave it to default. -6. Select a format for the history file in the Format drop-down list. Available formats are Excel, - CSV, and XML -7. Click **Export History**. The file is saved at the download location specified in browser - settings. -8. A message is displayed that history data is successfully exported. Click **OK**. - -**See Also** - -- [Configure History Tracking](/docs/directorymanager/11.0/signin/identitystore/configure/historytracking.md) -- [History in GroupID](/docs/directorymanager/11.0/signin/concepts/history.md) -- [Event Logging](/docs/directorymanager/11.0/signin/identitystore/view/eventlogging.md) diff --git a/docs/directorymanager/11.0/signin/notification/_category_.json b/docs/directorymanager/11.0/signin/notification/_category_.json deleted file mode 100644 index 363c304acb..0000000000 --- a/docs/directorymanager/11.0/signin/notification/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Notifications", - "position": 90, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/notification/customize.md b/docs/directorymanager/11.0/signin/notification/customize.md deleted file mode 100644 index 1cd0b035b8..0000000000 --- a/docs/directorymanager/11.0/signin/notification/customize.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -title: "Customize Notifications" -description: "Customize Notifications" -sidebar_position: 20 ---- - -# Customize Notifications - -GroupID generates a variety of notifications for different events, such as when changes are made to -a group, when workflows are triggered, and when profile validation is due for users. Supported -languages for notifications are listed in the -[Localization](/docs/directorymanager/11.0/introduction/gettingstarted.md#localization) topic. - -Templates for all GroupID notifications are available in these languages. You can customize a -notification template for the following in each of the supported languages: - -- Subject line -- Message (content and format) - -By default, notifications are sent to users in the English language. However, a user can opt to -receive notifications in a different language by personalizing the language settings from the -**Settings** panel in the GroupID portal. - -What do you want to do? - -- [Customize a Notification Template](#customize-a-notification-template) - -## Customize a Notification Template - -1. In Admin Center, click **Notifications** in the left pane. Then click **Notification Editor** on - the **Notification Queue** page. - Or - In Admin Center, click **Notification Editor** at the bottom of the left navigation pane. - - The editor displays a list of all notifications that GroupID generates. Notification names are - displayed in English, regardless of the language you select. - -2. By default, English (US) is selected, so you can view and customize the notification templates in - the English language. To set another language: - - 1. Click **Filter**. - 2. On the **Filter(s)** dialog box, select a language in the **Locality** drop-down list. - This list displays the ISO codes of the supported languages. - 3. Click **Apply**. - -3. You can search for a notification template using the following filters: - - - Select an event in the **Categories** list to get a list of notifications pertaining to that - event. - - Specify a search string in the search box at the top and press **Enter**; notification - templates that have the string as part of their name or description are displayed. You can - also search for a specific notification template by its name. - -4. To open a notification template for editing, click **Open** for it in the **Actions** column. -5. Select a mode to view the template. Options are: - - - Source code - Click the **Source Code** tab to view and edit the notification template in the - HTML editor. - - Interactive - Click the **Interactive** tab to view the template in a user–friendly format. - This is how the notification will be displayed to the recipients. You cannot format or edit - the template in this view. - -6. You can customize the notification template in the following ways: - - - [Change the Subject Line](#change-the-subject-line) - - [Edit and Format the Content](#edit-and-format-the-content) - - [Replace the Tags](#replace-the-tags) - -7. After saving your changes, click **Go Back** to return to the Notification Editor. - -### Change the Subject Line - -1. In the Source Code view, click the **Title** tile. -2. In the **Edit Title** dialog box, change the subject line of the notification and click - **Update**. -3. Click **Save** on the menu bar. - -### Edit and Format the Content - -You can do the following in the Source Code view: - -- Control the notification format. Use HTML tags to format heading styles, change the font and font - size, change text alignment, and more. -- Make changes to the message content. -- Replace the tags with other relevant tags. By using a tag, you can display an attribute’s value in - the notification. - -NOTE: Do not insert tables or custom photos in a notification template. - -After making the required changes, click **Save** on the menu bar. - -To aid you in content management, the Source Code view uses the same editor that powers Microsoft -Visual Studio; hence, you also have the following options available: - -- Use the page navigator in the top right corner of the source code view to scroll through the - content. The navigator is divided into sections, enabling you to jump to the beginning, middle and - end of the source code. -- Use the options on the **Edit** menu to search for target text (whether it be a word, phrase, or - tag), to cut the selected text, to copy the selected text, and to redo and undo an operation. You - can also insert the current date and time in the template. - -### Replace the Tags - -In a notification template, variables are appended with an attribute name and enclosed in percentage -signs, to display that attribute’s value in the notification. For example, -%TARGETOBJECT_DisplayName% will resolve to the display name of the targetobject; %REQUESTER_mail% -will show the email address of the requester, and so on. - -**To replace a tag:** - -1. In the Source Code view, click the **Dictionary** tile to view the recommended tags to replace - the default tags with. - - ![tag_dictionary](/images/directorymanager/11.0/admincenter/notification/tag_dictionary.webp) - - Each notification template has its own set of recommended tags. - -2. Use the _Go To_ option on the **Edit** menu to search for a tag you want to replace. Refer to the - tag dictionary to know what tags are used in the notification. -3. After replacing a tag in the template, click **Save** on the menu bar. - -##### Complete List of Tags - -Here is a complete list of tags for object attributes. Using tags other than these is not -recommended. By using a tag, you can display an attribute’s value in the notification. - -| | Variable | Description | -| --- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| 1. | TARGETOBJECT | Can be any object (user/group/contact) that is under consideration in a notification. | -| 2. | REQUESTER | The user object who makes a workflow request. | -| 3. | APPROVER | The approver in workflow notifications. | -| 4. | ANOTHER_APPROVER | An approver, other than the ‘approver’ above, who performs an action on the workflow request (as there can be multiple approvers). | -| 5. | BEHALFEDPERSON | The user on whose behalf join/leave requests are made by their manager. | -| 6. | RECEIVER | The receiver of a notification. | -| 7. | AUTHOR | A user who creates/modifies/deletes an object. | -| 8. | USER | A user object under consideration in password-related notifications. | -| 9. | MASTER | The master account of a user in password-related notifications. | - -##### Complete List of Attributes - -Following is a list of all attributes that can be used with tags in the notification templates: You -can also use any custom attributes. - -| Attributes | -| --------------------- | ------------------------------ | --------------------------- | ----------------------- | -| Owner | Member | MemberOf | Manager | -| Name | DisplayName | FirstName | LastName | -| Title | Company | Department | City | -| Office | DistinguishedName | ObjectId | ObjectType | -| Alias | SamAccountName | EmailAddress | CommonName | -| GroupType | Description | ObjectClass | ObjectCategory | -| Telephone | HomeDataBase | TargetAddress | FaxNumber | -| LogonName | DLMemRejectPerms | ObjectGUID | UnauthOrig | -| AuthOrig | DLMemSubmitPerms | DelivContLength | ExchCoManagedByLink | -| HideDLMembership | HideFromAddressLists | RequireAuthToSendTo | ReplyToOriginator | -| UserID | AdminDescription | DisplayNamePrintable | ReportToOwner | -| ObjectSid | ReportToOriginator | HierarchicalSearchPostfix | TokenGroups | -| Info | ManagerCanUpdateMembershipList | Container | ThumbnailPhoto | -| Password | ThumbnailLogo | DirectReports | JpegPhoto | -| PasswordLastSet | UserPasswordExpirationDate | IsCriticalSystemObject | UserAccountControl | -| ModifyTimeStamp | CreateTimeStamp | GroupTypeLocal | GroupTypeGlobal | -| GroupTypeSecurity | GroupTypeUniversal | GroupTypeDistribution | GroupScope | -| SimpleDisplayName | MsExchRequireAuthToSendTo | ExpansionServerName | OOFReplyToOriginator | -| Notes | Country | State | Street | -| HomeMDB | Exchange2010AdditionalOwners | ProxyAddresses | DynamicDLFilter | -| GroupClassName | ComputerClassName | ContactClassName | UserClassName | -| DatabaseMoniker | GroupTypeUniversalSecurity | GroupTypeGlobalSecurity | PublicFolderClassName | -| AccountExpires | GroupTypeUniversalDistribution | GroupTypeLocalDistribution | GroupTypeLocalSecurity> | -| IsDeleted | GroupTypeLocalSecurity_Builtin | GroupTypeGlobalDistribution | AccountDisabled | -| LastLogon | PrimaryGroupToken | PrimaryGroupId | SubscribeByMail | -| AdPublicDelgateRights | UserPrincipleName | | | - -**See Also** - -- [Notifications](/docs/directorymanager/11.0/signin/notification/overview.md) diff --git a/docs/directorymanager/11.0/signin/notification/overview.md b/docs/directorymanager/11.0/signin/notification/overview.md deleted file mode 100644 index fe853e7dfe..0000000000 --- a/docs/directorymanager/11.0/signin/notification/overview.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Notifications" -description: "Notifications" -sidebar_position: 90 ---- - -# Notifications - -GroupID generates email notifications whenever certain events are triggered. The notifications are -sent to administrators, object owners and other specified recipients. - -To enable notifications, you must define an SMTP server for an identity store. Admin Center, GroupID -portal, and the GroupID mobile app use the SMTP server for the respective identity store to send -email notifications. - -Templates for all kinds of email notifications are predefined in GroupID. These are available in -different languages, enabling you to customize a notification template for any language. - -Since notification templates are global and work for all identity stores, any customization to a -template would change that notification for all identity stores. - -GroupID also features an email service that maintains a queue of all notification requests generated -by different identity stores, and sends them one by one. This is especially helpful when the SMTP -server for an identity store is down, as notifications stay in the queue until they are delivered -when the SMTP server is up again. - -## Localization - -By default, notifications are sent to users in the English language. However, a user can opt to -receive notifications in a different language by personalizing the language settings from the -**Settings** panel in the portal. This setting applies to all GroupID notifications, except in the -following cases, where users continue to receive notifications in English: - -- Users whose email addresses are specified in the **To** and **CC** boxes on the **Notifications** - page. See the - [Specify Notification Recipients](/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md#specify-notification-recipients) - topic. -- Users whose email addresses are specified in the **Send Notification to the following email IDs** - box in the notification settings of a Smart Group Update schedule. See step 12 in the - [Create a Smart Group Update Schedule](/docs/directorymanager/11.0/signin/schedule/smartgroupupdate.md#create-a-smart-group-update-schedule) - topic. -- Users whose email addresses are specified in the **Send notification to the following email IDs** - box in the notification settings of a Reports schedule. See step 11 in the - [Create a Reports Schedule](/docs/directorymanager/11.0/signin/schedule/reports.md#create-a-reports-schedule) - topic. - -**See Also** - -- [Configure an SMTP Server](/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md) -- [Customize Notifications](/docs/directorymanager/11.0/signin/notification/customize.md) diff --git a/docs/directorymanager/11.0/signin/notification/queue.md b/docs/directorymanager/11.0/signin/notification/queue.md deleted file mode 100644 index c7367d4c93..0000000000 --- a/docs/directorymanager/11.0/signin/notification/queue.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: "Manage the Notification Queue" -description: "Manage the Notification Queue" -sidebar_position: 10 ---- - -# Manage the Notification Queue - -GroupID maintains a queue of the email notification generated on events that occur in the identity -stores, and sends them one by one through the SMTP server configured for the respective identity -store. Each new email notification is stacked at the top of the queue. - -When the SMTP server for an identity store is down and notifications in the queue cannot be -delivered, GroupID attempts to re-send them until they are successfully delivered. Successfully -delivered notifications move out of the queue. - -The Email service is responsible for queuing and sending notifications. You can also manually send -notifications as well as delete notifications. Both actions are tracked in Admin Center history. - -GroupID also features a Notification Editor that lists the notification templates for all -notifications that GroupID generates on various events. See the -[Customize Notifications](/docs/directorymanager/11.0/signin/notification/customize.md) -topic for details. - -What do you want to do? - -- [View the Notification Queue](#view-the-notification-queue) -- [Send a Notification Urgently](#send-a-notification-urgently) -- [Delete a Notification](#delete-a-notification) - -## View the Notification Queue - -In Admin Center, click **Notifications** in the left pane. On the **Notification Queue** page, the -following is displayed for a notification: - -- **Subject:** the subject line of the email notification -- **Date:** the date and time the notification was generated -- **To:** the notification recipients specified in the _To_ line -- **From:** the email ID of the sender -- **CC:** the notification recipients specified in the _CC_ line -- **Last Retry:** the date and time of the most recent attempt to send the notification -- **Retry Count:** the total number of attempts to send the notification -- **In Progress:** displays one of the following statuses for a notification: - - - **True:** indicates that the notification is currently being processed for sending - - **False:** indicates that the notification is not under process - - As GroupID processes notifications in batches, all notifications in a batch have the same - status. - -### Filter Notifications - -Click **Filter** to filter the notifications based on their status as either _pending_ or _failed_. - -In the **Categories** list on the **Filter** dialog box, select one of the following and click -**Apply**: - -- **Pending:** to view notifications that are queued for sending and the Email service has not yet - attempted to send them. -- **Failed:** to view notifications the Email service attempted to send but failed. The retry count - for such notifications is incremented by ‘1’ on every failed attempt. -- **All:** to view all pending and failed notifications in the queue. - -### Available Actions - -- Click **Send** for a notification in the **Actions** column to send it urgently, without waiting - for the Email service to send it on its turn. -- Click **Delete** for a notification in the **Actions** column to delete it. -- Click **Refresh** to refresh the notification queue. -- Click **Notification Editor** to launch the Notification Editor, where you can view and modify - notification templates. See the - [Customize Notifications](/docs/directorymanager/11.0/signin/notification/customize.md) - topic for details. - -## Send a Notification Urgently - -1. In Admin Center, click **Notifications** in the left pane. -2. On the **Notification Queue** page, you can send a single notification or multiple notifications - urgently, rather than waiting for the Email service to send them in their order of sending. All - attempts to send notifications manually are tracked in Admin Center history. - - - Click **Send** for a notification in the **Actions** column to send it urgently. - - To send multiple notifications, select the check boxes for those notifications. To select all - notifications, select the check box in the header row. This displays the following icons: - - ![send_refresh](/images/directorymanager/11.0/admincenter/notification/send_refresh.webp) - - Click the **Send** icon to send the selected notifications urgently. - -## Delete a Notification - -You can delete a notification in the queue to prevent GroupID from sending it. Deletion events are -logged in Admin Center history. - -To delete a notification: - -1. In Admin Center, click **Notifications** in the left pane. -2. On the **Notification Queue** page, you can delete a single notification or multiple - notifications together. - - - Click **Delete** for a notification in the **Actions** column to delete it. - - To delete multiple notifications, select the check boxes for those notifications. To select - all notifications, select the check box in the header row. This displays the following icons: - - ![send_refresh](/images/directorymanager/11.0/admincenter/notification/send_refresh.webp) - - Click the **Delete** icon to delete the selected notifications. - -**See Also** - -- [Notifications](/docs/directorymanager/11.0/signin/notification/overview.md) -- [Email Service](/docs/directorymanager/11.0/signin/service/emailservice.md) -- [Admin Center History](/docs/directorymanager/11.0/signin/concepts/history_1.md) diff --git a/docs/directorymanager/11.0/signin/replication/_category_.json b/docs/directorymanager/11.0/signin/replication/_category_.json deleted file mode 100644 index 49919d04c2..0000000000 --- a/docs/directorymanager/11.0/signin/replication/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Elasticsearch and Replication", - "position": 130, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/replication/overview.md b/docs/directorymanager/11.0/signin/replication/overview.md deleted file mode 100644 index 5d65974994..0000000000 --- a/docs/directorymanager/11.0/signin/replication/overview.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: "Elasticsearch and Replication" -description: "Elasticsearch and Replication" -sidebar_position: 130 ---- - -# Elasticsearch and Replication - -Searches performed in GroupID are catered through Elasticsearch. - -Elasticsearch relies on two services: - -- **Elasticsearch Service** is responsible for searching the Elasticsearch repository and displaying - search results when a search is performed through GroupID. If this service stops, Elasticsearch - will not work. -- **Replication Service** is responsible for replicating attributes of the following objects from - the provider (such as Active Directory) to Elasticsearch. - - - Group - - User - - Contact - - Computers - - Organizational Unit - -The Replication service only replicates changes that are made to these objects on the directory -server. Changes made to these objects using Admin Center, GroupID portal, Management Shell, or the -GroupID mobile app, are directly saved in the Elasticsearch repository and replicated to the GroupID -database by the Data service. See the -[Data Service](/docs/directorymanager/11.0/signin/service/dataservice/overview.md) -topic. - -Synchronize directly updates objects in the directory. As soon as objects are provisioned, -de-provisioned, or updated in the directory using Synchronize, the Replication service replicates -them to Elasticsearch. - -Synchronize history is saved to Elasticsearch when Active Directory, Microsoft Entra ID, Generic -LDAP, or Google Workspace is the destination provider in the respective Synchronize job. This -history is replicated to the GroupID database by the Data s ervice. - -NOTE: The **Recycle Bin** in the GroupID portal fetches data from the directory server and not from -Elasticsearch. - -## Replication Settings - -In Admin Center, you can specify settings for the Replication service at the global and local -levels. Global settings apply to all identity stores in GroupID while local settings are specific to -an identity store. - -- At the global level, you can schedule the service to run every x minutes to replicate object - attributes to Elasticsearch. You can also manually restore object data to Elasticsearch. See the - [Manage Global Replication Settings](/docs/directorymanager/11.0/signin/replication/settings.md) - topic. -- For an identity store, you can specify the object attributes the service should replicate to - Elasticsearch. See the - [Manage Local Replication Settings](/docs/directorymanager/11.0/signin/identitystore/replication.md) - topic. - -NOTE: The Replication service does not replicate excluded domains for an identity store. See the -[Exclude an Active Directory Domain from Replication](/docs/directorymanager/11.0/signin/identitystore/manage.md#exclude-an-active-directory-domain-from-replication) -topic. - -## Replication Service Logs - -Logs for the Replication service are stored in the folder for the service on the GroupID server. - -To view the logs: - -1. Launch IIS on the GroupID server and navigate to: - …\Sites\GroupIDSite11\GroupIDReplicationService -2. Right-click this folder and select **Explore**. -3. Locate the **Logs** folder to read the logs. - -Events are logged in a text file. When the file size reaches 100 MB, GroupID archives it in the same -directory by replacing the file extension with the suffix .Log.X and then creating a new text file -with the original name. X in .Log.X is a number from 1 to 10 representing the archiving order; where -‘1’ denotes the most recent file. - -**See Also** - -- [Manage Global Replication Settings](/docs/directorymanager/11.0/signin/replication/settings.md) -- [Manage Local Replication Settings](/docs/directorymanager/11.0/signin/identitystore/replication.md) -- [Replication Service](/docs/directorymanager/11.0/signin/service/replicationservice.md) diff --git a/docs/directorymanager/11.0/signin/replication/settings.md b/docs/directorymanager/11.0/signin/replication/settings.md deleted file mode 100644 index 8e22f7201b..0000000000 --- a/docs/directorymanager/11.0/signin/replication/settings.md +++ /dev/null @@ -1,308 +0,0 @@ ---- -title: "Manage Global Replication Settings" -description: "Manage Global Replication Settings" -sidebar_position: 10 ---- - -# Manage Global Replication Settings - -The Replication service is responsible for replicating attributes of the group, user, contact, -computer, and organizational unit objects from a provider (such as Active Directory) to -Elasticsearch. - -You can configure certain settings for the Replication service in Admin Center. You can schedule it -to run every x minutes, force run it at any time, set a threshold for triggering replication error -notifications, and view the Elasticsearch health status. - -On every successful run of the Replication service, GroupID generates the replication status of -object types for each domain in an identity store and alerts you to any errors that may have -occurred during the replication process. - -NOTE: The Replication service does not replicate excluded domains for an identity store. See the -[Exclude an Active Directory Domain from Replication](/docs/directorymanager/11.0/signin/identitystore/manage.md#exclude-an-active-directory-domain-from-replication) -topic. - -### How to Resolve Replication Errors - -Possible actions to eliminate replication errors are: - -- Make sure the Replication service and Elasticsearch service are running. -- Make sure Search Guard or any other security plugin you use for Elasticsearch is operational. -- Consult the Replication service logs. They provide elaborate information about the object type in - the specific domain of the identity store the error occurred for, and whether that error comes - from the identity provider or Elasticsearch. See the - [Replication Service Logs](/docs/directorymanager/11.0/signin/replication/overview.md#replication-service-logs) - topic. - -What do you want to do? - -- [Monitor Elasticsearch Health Status](#monitor-elasticsearch-health-status) -- [Specify a Replication Interval for Objects](#specify-a-replication-interval-for-objects) -- [Force Run the Replication Service (for Object Replication)](#force-run-the-replication-service-for-object-replication) -- [View the Replication Status for Objects](#view-the-replication-status-for-objects) -- [Specify Interval for Deleting Tombstone Objects](#specify-interval-for-deleting-tombstone-objects) -- [Force Run the Replication Service (for Deleting Objects)](#force-run-the-replication-service-for-deleting-objects) -- [Restore Object Data to Elasticsearch](#restore-object-data-to-elasticsearch) -- [Clear Unused Indices](#clear-unused-indices) -- [Change the Search Guard Password](#change-the-search-guard-password) -- [Set a Threshold to Trigger Replication Error Notifications](#set-a-threshold-to-trigger-replication-error-notifications) - -## Monitor Elasticsearch Health Status - -GroupID enables you to monitor the Elasticsearch service for the following: - -- The status of the Elasticsearch service. See the - [Elasticsearch Service](/docs/directorymanager/11.0/signin/concepts/dashboard.md#elasticsearch-service) - card on the Admin Center dashboard. -- Elasticsearch cluster health stats, which include: - - - Cluster name, health status, node info and shards info - - Cluster indices information, like health, number of documents, and status - -GroupID checks if the Elasticsearch service is running, if all nodes are working, and if the cluster -is intact. It also checks the health of each index. - -**To view Elasticsearch health status:** - -1. In Admin Center, click **Replication** in the left pane. -2. On the **Replication** page, click **Elasticsearch Health Monitor**. - - ![es_health_monitor](/images/directorymanager/11.0/admincenter/replication/es_health_monitor.webp) - - This dialog box lists the Elasticsearch clusters in your environment, with the following - information for each cluster: - - - **Health:** the cluster health status denoted by the following colors: - - - Green – the service is running and the cluster is intact. Moreover, two or more nodes - exist within the cluster. - - Yellow – the cluster is running but with warnings. It also indicates that a single node - exists within the cluster. Elasticsearch recommends a three-node topology for improved - performance and high availability. - - Red – the service has stopped or the cluster is broken (for reasons such as network - connectivity. - - - **Nodes:** the number of nodes in the cluster. - - **Master:** the name of the master node in the cluster. - -3. To refresh the information displayed, click the **Refresh** icon. -4. Click a cluster name to view it in detail. - - ![cluster_info](/images/directorymanager/11.0/admincenter/replication/cluster_info.webp) - - This dialog box displays the total number of nodes in the cluster. Each node is represented by a - card, that displays the following for the node: - - - The name of the node - - The system resources the node uses, such as hard disk space, RAM, and heap size - - Node health with respect to disk space usage, denoted by the following colors: - - - Green – when hard disk space usage is 79.99% or less - - Yellow – when hard disk space usage is 80-89.99% - - Red – when hard disk space usage is 90% or more - -5. The indices in the cluster are listed in the gird. - - - The **Name** column displays the names of the indices. - - The **Health** column displays the health of the index, which is denoted by the following - colors: - - - Green – the index is replicated to all nodes within the cluster. - - Yellow – the index is replicated to some but not all nodes within the cluster. - - Red – the index is not replicated to any node within the cluster. - - - The **Document** column shows the number of documents in the index. - -6. Click the back arrow to return to the **Elasticsearch Health Monitor** dialog box. - -## Specify a Replication Interval for Objects - -The Replication service interval applies to all identity stores defined in Admin Center. Object -attributes to be replicated are specified in the respective identity store settings. See the -[Manage Local Replication Settings](/docs/directorymanager/11.0/signin/identitystore/replication.md) -topic. - -**To set global replication interval:** - -1. In Admin Center, click **Replication** in the left pane. -2. On the **Replication** page, the **Replication Service Interval** card displays: - - - the date and time the Replication service last ran - - the date and time the service will run next - - the interval (in minutes) between each run of the service - -3. By default, the interval is set to 10 minutes, which indicates that the service is triggered - every 10 minutes. In this way, changes made to objects in the directory during the last 10 - minutes are replicated to Elasticsearch. In Active Directory, the _whenChanged_ attribute stores - the time and date the object was last changed. This service checks the value of this attribute - and replicates any changes to Elasticsearch. - To change the interval, click **Edit** next to **Service Interval** on the on the **Replication - Service Interval** card. Specify the interval (in minutes) between each run of the service and - click the check mark. - -## Force Run the Replication Service (for Object Replication) - -1. In Admin Center, click **Replication** in the left pane. -2. On the **Replication** page, click **Force Replication Now** on the **Replication Service - Interval** card to run the Replications service instantly. - Changes made to objects in the directory between the last and current run are replicated to - Elasticsearch. Force-starting the service has no impact on the interval set in the **Service - Interval** box for triggering the service. - -## View the Replication Status for Objects - -After every run of the Replication service, you can view the replication status of each object type -for each domain in an identity store. You can view which object types were successfully replicated -and which ones failed to replicate. - -**To view the replication status:** - -1. In Admin Center, click **Replication** in the left pane. -2. On the **Replication** page, click **Advanced Replication Status**. The **Advanced Replication - Status** dialog box displays the status of object types for each domain in an identity store. - - 1. The domains or object types that failed to replicate in the last run of the Replication - service are displayed in red. Reasons could be inaccessibility or partial failure. - Replication errors are brought to the administrator’s notice in the following ways: - - - On the **Identity Stores** page, the card for the identity store turns red and _Errors_ is - displayed as the identity store status. - - A notification is sent to relevant personnel. See the - [Set a Threshold to Trigger Replication Error Notifications](#set-a-threshold-to-trigger-replication-error-notifications) - topic. - - These alerts are triggered when replication fails in the last run of the Replication - service, or if the service does not run at the required triggering interval. To resolve - replication errors, see the - [How to Resolve Replication Errors](#how-to-resolve-replication-errors) topic. - - 2. The ‘Never replicated’ status indicates that the particular object type is not replicated - yet. Similarly, a child domain that is not being used will have its status marked in red. To - avoid these recurring errors, set the dates for these objects to a distant future date in the - GroupID database. Or you can exclude a domain from replication. See the - [Exclude an Active Directory Domain from Replication](/docs/directorymanager/11.0/signin/identitystore/manage.md#exclude-an-active-directory-domain-from-replication) - topic. - -## Specify Interval for Deleting Tombstone Objects - -Objects that are deleted from the directory must also be removed from Elasticsearch. For this -purpose, you can specify a triggering interval for the Replication service to remove tombstone -objects from the Elasticsearch repository. By default, the interval is set to 60 minutes, indicating -that the service is triggered every 60 minutes. As a result, objects deleted in the directory during -the last 60 minutes are removed from Elasticsearch. - -To identify objects that have been deleted in the directory but exist in Elasticsearch, the -Replication service compares the objects in both, and deletes objects that do not exist in the -directory anymore. - -**To specify an interval:** - -1. In Admin Center, click **Replication** in the left pane. -2. On the **Replication** page, the **Deleted Objects Replication Interval** card displays: - - - the date and time the Replication service last ran to remove tombstone objects from - Elasticsearch - - the date and time the service will run again - - the interval (in minutes) between each run of the service - -3. By default, the interval is set to 60 minutes, which indicates that the service is triggered - every 60 minutes. In this way, objects that are deleted in the directory during the last 60 - minutes are removed from Elasticsearch. - To change the interval, click **Edit** next to **Service Interval** on the **Deleted Objects - Replication Interval** card. Specify the interval (in minutes) between each run of the service - and click the check mark. This Replication service interval applies to all identity stores in - GroupID. - -## Force Run the Replication Service (for Deleting Objects) - -1. In Admin Center, click **Replication** in the left pane. -2. On the **Replication** page, click **Force Replication Now** on the **Deleted Objects Replication - Interval** card to run the Replication service instantly. - Objects deleted in the directory between the last and current run of the service, will be removed - from Elasticsearch. Force-starting the service has no impact on the interval set in the **Service - Interval** box for triggering the service. - -## Restore Object Data to Elasticsearch - -You may need to restore object data to Elasticsearch. The restore object data function restores the -following for all identity stores in GroupID: - -- the current attribute values of objects (groups, users, contacts, computers, and OUs) from the - provider (for example, Active Directory) -- the GroupID pseudo attributes of these objects from the GroupID database to Elasticsearch - -**To restore object data:** - -1. In Admin Center, click **Replication** in the left pane. -2. On the **Replication** page, click **Restore Now** in the **Restore Objects Data** area to - restore data to Elasticsearch. - -## Clear Unused Indices - -GroupID stores object attributes and their values in Elasticsearch, where each object type in an -identity store is distinctly indexed. In a situation where an identity store is deleted from -GroupID, its indices are not required anymore. So, you can clear them from Elasticsearch to avoid -glut. - -**To clear unused indices:** - -1. In Admin Center, click **Replication** in the left pane. -2. On the **Replication** page, click **Clear Now** in the **Clear Unused Indices** area. The system - checks if there exist any indices in Elasticsearch for an identity store that no longer exists in - GroupID. -3. The **Delete Unused Indices** dialog box displays the indices that will be deleted from - Elasticsearch. Click **Delete** to proceed or click **Don't Delete** to close the dialog box - without clearing the indices. - In case no unused indices are found, a notification pops up in the bottom right corner to inform - that no unused indices were found. - -## Change the Search Guard Password - -Search Guard is a security plugin used to induce an authentication mechanism in Elasticsearch. The -option to change the Search Guard password is available when you install and manage Elasticsearch -with GroupID. Users who use their own instance of Elasticsearch cannot change the Search Guard -password using GroupID. - -You can change the password of the admin account that GroupID uses to access Elasticsearch. - -**To change the password:** - -1. In Admin Center, click **Replication** in the left pane. -2. On the **Replication** page, click **Change Password** in the **Search Guard Settings** area. -3. On the **Change Password** dialog box, provide the current password for the Search Guard admin - account in the **Your current password** box. -4. Specify a new password in the **New Password** and **Confirm Password** boxes. -5. Click **Change Password**. - -## Set a Threshold to Trigger Replication Error Notifications - -The Replication service runs every x minutes to replicate objects in an identity store. In case it -fails to replicate during a run, a replication error is displayed, as discussed in the -[View the Replication Status for Objects](#view-the-replication-status-for-objects) topic. - -GroupID generates notifications to alert administrators to replication errors. By default, the -triggering threshold is set to ‘3 attempts’, which means that notifications will be sent when errors -occur in three consecutive runs of the Replication service. You can change the threshold value as -required. - -Replication error notifications are sent to recipients whose email addresses are specified in the -_To_ and _CC_ boxes on the **Notifications** page. See the -[Specify Notification Recipients](/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md#specify-notification-recipients) -topic. - -**To set a triggering threshold:** - -1. In Admin Center, click **Replication** in the left pane. -2. On the **Replication** page, the **Replication Error Notification** area displays ‘3 Attempts’ as - the default threshold for initiating notifications. This means that notifications will be sent - when three consecutive runs of the replication service result in error. Notifications will not be - sent when errors occur say, in two consecutive runs but no error shows in the third consecutive - run. - To change the threshold value, click **Edit**. Specify a threshold value to trigger replication - error notifications and click the check mark. - -**See Also** - -- [Elasticsearch and Replication ](/docs/directorymanager/11.0/signin/replication/overview.md) -- [Manage Local Replication Settings](/docs/directorymanager/11.0/signin/identitystore/replication.md) -- [Replication Service](/docs/directorymanager/11.0/signin/service/replicationservice.md) diff --git a/docs/directorymanager/11.0/signin/schedule/_category_.json b/docs/directorymanager/11.0/signin/schedule/_category_.json deleted file mode 100644 index c89e65d466..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Schedules", - "position": 60, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/schedule/entitlement.md b/docs/directorymanager/11.0/signin/schedule/entitlement.md deleted file mode 100644 index b190e63183..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/entitlement.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: "GroupID Entitlement Schedule" -description: "GroupID Entitlement Schedule" -sidebar_position: 40 ---- - -# GroupID Entitlement Schedule - -An Entitlement schedule is automatically created for an identity store when: - -- A server is added for permission analysis on the Entitlement page in an Active Directory identity - store. See the - [Manage File Servers](/docs/directorymanager/11.0/signin/entitlement/manage.md) - for additional information on adding a server. - - Or - -- A SharePoint site is added for permission analysis on the Entitlement page in a Microsoft Entra ID - identity store. See the - [Manage SharePoint Sites](/docs/directorymanager/11.0/signin/entitlement/manage_1.md) - topic for additional information on adding a SharePoint site. - -By default, the schedule runs weekly to compute permissions on shared files and folders residing on -the specified servers (for Active Directory), and the document libraries present in the specified -sites (for SharePoint). It then replicates these permissions to Elasticsearch, enabling users to -view, manage and update these permissions in the GroupID portal. - -On the very first run of the Entitlement schedule, it computes all permissions from scratch and -performs a complete replication. On each next run, it will create a parallel index for that specific -server/SharePoint site index with the suffix _replication which computes all permissions from -scratch. In the meantime, user can perform actions on GroupID Entitlement. The actions performed -during this parallel replication are committed directly at the provider and stored in the database. -These changes are then immediately committed to elastic after the replication is complete. - -The scope schedule changes are replicated after the new index is done replicating permissions from -the server/SharePoint. When this parallel index gets completely replicated, it becomes the new -primary index for this server/SharePoint site and the _replication index is deleted from indices. - -The GroupID Entitlement schedule runs in the context of the following accounts: - -- For file servers, the schedule runs in the context of the service account defined for the identity - store. In case you specify a different account for a file server, the schedule runs in the context - of the changed account. See the - [Connect to a File Server Using a Different Account](/docs/directorymanager/11.0/signin/entitlement/manage.md#connect-to-a-file-server-using-a-different-account) - topic. -- For a SharePoint site, the schedule runs in the context of the account you specified to connect to - the SharePoint admin site. In case you specify a different account for a site, the schedule runs - in the context of the changed account. See the - [Connect to a Site Using a Different Account](/docs/directorymanager/11.0/signin/entitlement/manage_1.md#connect-to-a-site-using-a-different-account) - topic. - -You cannot create or delete a GroupID Entitlement schedule; only edit the existing schedule. - -What do you want to do? - -- [Update the GroupID Entitlement Schedule](#update-the-groupid-entitlement-schedule) - -## Update the GroupID Entitlement Schedule - -Follow the steps to update the GroupID Entitlement schedule. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the **Identity Stores** page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Schedules** under **Settings** in the left pane. - -Step 4 – On the **Schedules** page, click the plus sign next to **GroupID Entitlement**. Then click -the ellipsis button for the schedule and select **Edit**. - -Step 5 – On the **Edit Schedule** page, the **Schedule Name** and **Name Preview** boxes display the -name of the schedule as read-only. The name format is -_Entitlement_``_. - -Step 6 – In the **Scheduler Service Name** drop-down list, select a Scheduler service that would be -responsible for triggering this schedule. The number of services displayed in the list depend on the -number of Elasticsearch clusters in the environment, as each cluster has its own Scheduler service. -See the -[Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) -topic. - -Step 7 – The **Triggers** area displays the default triggering frequency for the schedule. - -- To change a trigger, click **Edit** for it. -- To add a new trigger, click **Add Trigger**. - -Step 8 – Follow step 11 in the -[Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) -topic to manage triggers. - -Step 9 – After making the changes, click **Update Schedule**. - -Step 10 – On the Schedules page, click **Save**. -For general schedule info, see the -[View the Schedules in an Identity Store ](/docs/directorymanager/11.0/signin/schedule/manage.md#view-the-schedules-in-an-identity-store) -topic. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) diff --git a/docs/directorymanager/11.0/signin/schedule/entitlementscope.md b/docs/directorymanager/11.0/signin/schedule/entitlementscope.md deleted file mode 100644 index 98f5de276e..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/entitlementscope.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: "Entitlement Scope Schedule" -description: "Entitlement Scope Schedule" -sidebar_position: 50 ---- - -# Entitlement Scope Schedule - -An Entitlement Scope schedule is automatically created for an identity store when: - -- A server is added for permission analysis on the **Entitlement** page in an Active Directory - identity store. See the - [Manage File Servers](/docs/directorymanager/11.0/signin/entitlement/manage.md) - for additional information on adding a server. - - Or - -- A SharePoint site is added for permission analysis on the **Entitlement** page in a Microsoft - Entra ID identity store. See the - [Manage SharePoint Sites](/docs/directorymanager/11.0/signin/entitlement/manage_1.md) - topic for additional information on adding a SharePoint site. - -Using the GroupID portal, users can update the permissions on files and folders residing on file -servers (for Active Directory) and the document libraries in SharePoint sites (for Microsoft Entra -ID). These changes to permissions are instantly committed to the respective file server or site; -however, they are displayed in the GroupID portal after the Entitlement Scope schedule runs. - -By default, the schedule runs daily to replicate the permissions from file servers or sites to -Elasticsearch. Permissions are replicated for the target folder, site, or document library and its -sub-trees, till the nth level. Changes made to permissions outside of GroupID are beyond the scope -of this schedule. - -Permissions replicated by the Entitlement Scope schedule are also replicated by the -[GroupID Entitlement Schedule](/docs/directorymanager/11.0/signin/schedule/entitlement.md), -as the latter replicates permissions from scratch. However, the default triggering frequency for the -GroupID Entitlement schedule (i.e., weekly) necessitates a separate Entitlement Scope schedule. - -The Entitlement Scope schedule runs in the context of the following accounts: - -- For file servers, the schedule runs in the context of the service account defined for the identity - store. In case you specify a different account for a file server, the schedule runs in the context - of the changed account. See the - [Connect to a File Server Using a Different Account](/docs/directorymanager/11.0/signin/entitlement/manage.md#connect-to-a-file-server-using-a-different-account) - topic. -- For a SharePoint site, the schedule runs in the context of the account you specified to connect to - the SharePoint admin site. In case you specify a different account for a site, the schedule runs - in the context of the changed account. See the - [Connect to a Site Using a Different Account](/docs/directorymanager/11.0/signin/entitlement/manage_1.md#connect-to-a-site-using-a-different-account) - topic. - -You cannot create or delete an Entitlement Scope schedule; only edit the existing schedule. - -What do you want to do? - -- [Update the Entitlement Scope Schedule](#update-the-entitlement-scope-schedule) - -## Update the Entitlement Scope Schedule - -Follow the steps to update the Entitlement Scope schedule. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the Identity Stores page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Schedules** under Settings in the left pane. - -Step 4 – On the Schedules page, click the plus sign next to Entitlement Scope. Then click the -ellipsis button for the schedule and select **Edit**. - -Step 5 – On the Edit Schedule page, the Schedule Name and Name Preview boxes display the name of the -schedule as read-only. The name format is -_Entitlement_``_Scope_. - -Step 6 – In the **Scheduler Service Name** drop-down list, select a Scheduler service that would be -responsible for triggering this schedule. The number of services displayed in the list depend on the -number of Elasticsearch clusters in the environment, as each cluster has its own Scheduler service. -See the -[Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) -topic. - -Step 7 – The Triggers area displays the default triggering frequency for the schedule. - -- To change a trigger, click **Edit** for it. -- To add a new trigger, click **Add Trigger**. - -Step 8 – Follow step 11 in the -[Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) -topic to manage triggers. - -Step 9 – After making the changes, click **Update Schedule**. - -Step 10 – On the Schedules page, click **Save**. -For general schedule info, see the -[View the Schedules in an Identity Store ](/docs/directorymanager/11.0/signin/schedule/manage.md#view-the-schedules-in-an-identity-store)topic. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) diff --git a/docs/directorymanager/11.0/signin/schedule/entitlementtemporarypermissions.md b/docs/directorymanager/11.0/signin/schedule/entitlementtemporarypermissions.md deleted file mode 100644 index 9f24fe9217..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/entitlementtemporarypermissions.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: "Entitlement Temporary Permissions Schedule" -description: "Entitlement Temporary Permissions Schedule" -sidebar_position: 60 ---- - -# Entitlement Temporary Permissions Schedule - -An Entitlement Temporary Permissions schedule is automatically created for an identity store when: - -- A server is added for permission analysis on the **Entitlement** page in an Active Directory - identity store. See the - [Manage File Servers](/docs/directorymanager/11.0/signin/entitlement/manage.md) - for additional information on adding a server. - - Or - -- A SharePoint site is added for permission analysis on the **Entitlement** page in a Microsoft - Entra ID identity store. See the - [Manage SharePoint Sites](/docs/directorymanager/11.0/signin/entitlement/manage_1.md) - topic for additional information on adding a SharePoint site. - -The Entitlement Temporary Permissions schedule updates the temporary permissions granted to objects -on shared files and folders residing on file servers (for Active Directory), and the document -libraries in SharePoint sites (for Microsoft Entra ID). This is how it works: - -- Administrators and other users can set a start and end date to grant certain permission(s) - temporarily to an object on shared resources, such as file shares and document libraries in a - SharePoint site. -- They can also set a start and end date to revoke certain permission(s) temporarily for an object - on shared resources, such as file shares and document libraries in a SharePoint site. -- The Entitlement Temporary Permissions schedule temporarily grants and revokes permissions for an - object on the specified dates. - -Let’s assume that the Entitlement Temporary Permissions schedule is scheduled to run once a week, -say Mondays. If temporary permissions are to be granted to an object on file server share for three -days - Wednesday till Friday, it will not happen. This is because the Entitlement Temporary -Permissions schedule did not run on the specific days for temporary permissions update. Make sure -that the schedule is set to run at a frequency that meets your temporary permission requirements. - -The Entitlement Temporary Permissions schedule runs in the context of the following accounts: - -- For file servers, the schedule runs in the context of the service account defined for the identity - store. In case you specify a different account for a file server, the schedule runs in the context - of the changed account. See the - [Connect to a File Server Using a Different Account](/docs/directorymanager/11.0/signin/entitlement/manage.md#connect-to-a-file-server-using-a-different-account) - topic. -- For a SharePoint site, the schedule runs in the context of the account you specified to connect to - the SharePoint admin site. In case you specify a different account for a site, the schedule runs - in the context of the changed account. See the - [Connect to a Site Using a Different Account](/docs/directorymanager/11.0/signin/entitlement/manage_1.md#connect-to-a-site-using-a-different-account) - topic. - -You cannot create or delete an Entitlement Temporary Permissions schedule; only edit the existing -schedule. - -What do you want to do? - -- Follow the steps to udpate the Entitlement Temporary Permissions schedule - -## Update the Entitlement Temporary Permissions Schedule - -Follow the steps to udpate the Entitlement Temporary Permissions schedule. - -Step 1 – In Admin Center, click **Identity Stores** in the left pane. - -Step 2 – On the Identity Stores page, click the ellipsis button for an identity store and select -**Edit**. - -Step 3 – Click **Schedules** under Settings in the left pane. - -Step 4 – On the Schedules page, click the plus sign next to Entitlement Temporary Permissions. Then -click the ellipsis button for the schedule and select **Edit**. - -Step 5 – On the Edit Schedule page, the Schedule Name and Name Preview boxes display the name of the -schedule as read-only. The name format is -_Entitlement_``_ TemporaryPermission_. - -Step 6 – In the Scheduler Service Name drop-down list, select a Scheduler service that would be -responsible for triggering this schedule. The number of services displayed in the list depend on the -number of Elasticsearch clusters in the environment, as each cluster has its own Scheduler service. -See the -[Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) -topic. - -Step 7 – The **Triggers** area displays the default triggering frequency for the schedule. - -- To change a trigger, click **Edit** for it. -- To add a new trigger, click **Add Trigger**. - -Step 8 – Follow step 11 in the -[Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) -topic to manage triggers. - -Step 9 – After making the changes, click **Update Schedule**. - -Step 10 – On the Schedules page, click **Save**. -For general schedule info, see the -[View the Schedules in an Identity Store ](/docs/directorymanager/11.0/signin/schedule/manage.md#view-the-schedules-in-an-identity-store)topic. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) diff --git a/docs/directorymanager/11.0/signin/schedule/grouplifecycle.md b/docs/directorymanager/11.0/signin/schedule/grouplifecycle.md deleted file mode 100644 index 1efc624e49..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/grouplifecycle.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: "Group Life Cycle Schedule" -description: "Group Life Cycle Schedule" -sidebar_position: 20 ---- - -# Group Life Cycle Schedule - -GroupID enables you to define group lifecycle settings for an identity store (see the -[Manage Group Lifecycle Settings](/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md) -topic). Based on these settings, the Group Lifecycle schedule expires and logically deletes groups -in the identity store on a scheduled basis, keeping your directory clean and preventing group glut. - -While creating a Group Lifecycle schedule, you have to specify a job triggering criterion, the -containers the job will process, and notification options. - -The Group Lifecycle schedule performs the following main functions: - -- Expires and logically delete groups according to their respective expiry policies (see the - [ Group Expiry and Deletion](/docs/directorymanager/11.0/signin/identitystore/configure/groupexpirydeletion.md) - topic). -- Sends email notifications to relevant personnel before expiring a group. Also initiates - notifications for group attestation. -- Extends or reduces the life of mail-enabled distribution groups based on their usage. -- Initiates group attestation for expiring groups. - -What do you want to do? - -- [Create a Group Life Cycle Schedule](#create-a-group-life-cycle-schedule) - -## Create a Group Life Cycle Schedule - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click **Add Schedule** and select **Group Life Cycle Job**. - The **Create Schedule** page is displayed. -5. In the **Schedule Name** box, enter a name for the schedule. -6. The **Name Preview** box displays the schedule name prefixed with _Glm__; the schedule is - displayed with this name in email notifications. -7. Select a GroupID portal URL in the **Portal URL** drop-down list to include it in notifications - generated for this schedule. Users are redirected to this portal to perform any necessary action. -8. In the **Scheduler Service Name** drop-down list, select a Scheduler service that would be - responsible for triggering this schedule. The number of services displayed in the list depend on - the number of Elasticsearch clusters in the environment, as each cluster has its own Scheduler - service. See the - [Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) - topic. -9. You can specify containers as targets for the schedule. To do so, follow step 9 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic. The schedule will process all groups in the containers and their sub-containers listed in - the **Target(s)** area in keeping with the Group Lifecycle settings for the identity store. - - NOTE: In Group Lifecycle settings, the administrator can specify container(s) for exclusively - applying or not applying the Group Life cycle policy. See the - [Apply Policy on Specific Containers](/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md#apply-policy-on-specific-containers) - topic. With containers specified in the **Target(s)** area, there may be a conflict or - overlapping of containers, in which case, the Group Lifecycle settings take precedence. - -10. Click **Add Triggers** in the **Triggers** area to specify a triggering criterion for the - schedule, that, when met, starts the execution of the schedule. Follow step 11 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic to manage triggers. -11. Click **Add Authentication** in the **Authentication** area to specify an account for running - the schedule in the identity store. Follow step 12 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic for details. -12. To set notifications for the schedule, click **Notifications**. - - 1. On the **Notifications** dialog box, select the **Send group life extension notification** - check box to send email notifications to a group’s primary and additional owners when the job - extends the life of a group, based on group usage settings in the Group Lifecycle policy. For - group usage settings, see the - [Enable Group Usage Lifecycle](/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md#enable-group-usage-lifecycle) - topic. - 2. Click **Save**. - -13. On the **Create Schedule** page, click **Create Schedule**. -14. On the **Schedules** page, click **Save**. - The schedule is displayed under **Group Life Cycle**. See the - [View the Schedules in an Identity Store ](/docs/directorymanager/11.0/signin/schedule/manage.md#view-the-schedules-in-an-identity-store) - topic for more info. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) diff --git a/docs/directorymanager/11.0/signin/schedule/groupusageservice.md b/docs/directorymanager/11.0/signin/schedule/groupusageservice.md deleted file mode 100644 index 317e4b3067..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/groupusageservice.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: "Group Usage Service Schedule" -description: "Group Usage Service Schedule" -sidebar_position: 10 ---- - -# Group Usage Service Schedule - -A Group Usage Service schedule monitors expansion events and timestamps affected groups of the -Microsoft Exchange Server(s) for an identity store. - -An expansion event occurs when an Exchange Server expands a distribution list for sending messages. -The event is recorded in the Exchange Server's message tracking log, which the Group Usage Service -schedule reads, parsing for the timestamp that indicates when the distribution list was last used. - -The timestamp is then used by the -[Group Life Cycle Schedule](/docs/directorymanager/11.0/signin/schedule/grouplifecycle.md) -to extend or reduce the life of mail-enabled distribution groups based on their usage. See the -[Enable Group Usage Lifecycle](/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md#enable-group-usage-lifecycle) -topic. - -While creating a Group Usage Service schedule, you have to specify a job triggering criterion, the -containers the job will process, and the messaging servers for reading expansion logs. - -What do you want to do? - -- [Create a Group Usage Service Schedule](#create-a-group-usage-service-schedule) - -## Create a Group Usage Service Schedule - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the Identity Stores page, click the ellipsis button for an identity store and select **Edit**. -3. Click **Schedules** under Settings in the left pane. -4. On the Schedules page, click **Add Schedule** and select **Group Usage Service Job**. - The **Create Schedule** page is displayed. -5. In the **Schedule Name** box, enter a name for the schedule. -6. The **Name Preview** box displays the schedule name prefixed with _GUS__; the schedule is - displayed with this name in email notifications. -7. Select a GroupID portal URL in the **Portal URL** drop-down list to include it in notifications - generated for the schedule. Users are redirected to this portal to perform any necessary action. -8. In the **Scheduler Service Name** drop-down list, select a Scheduler service that would be - responsible for triggering this schedule. The number of services displayed in the list depend on - the number of Elasticsearch clusters in the environment, as each cluster has its own Scheduler - service. See the - [Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) - topic. -9. You can specify containers as targets for the schedule. The schedule will process all groups in - those containers and sub-containers. - - - Select the **Include all containers** check box to run the schedule on all the containers in - the identity store. - Or - - Click **Add Container** to add one or more containers as targets. The **Add Container(s)** - dialog box shows the domain name and the OUs in the identity store. Select the check boxes for - the required containers and click **Add**; the selected containers are displayed in the - **Target(s)** area. To exclude a sub-container, clear the check box for it on the **Add - Container(s)** dialog box. - - To remove a container in the **Target(s)** area, click **Remove** for it. - To remove all target objects, click **Remove All**. - -10. You can also specify one or more messaging servers. The job reads expansion logs from these - servers. - - 1. Click **Add Server** in the **Messaging Server** area. The **Add Messaging Servers** dialog - box displays the messaging servers in the identity store. - 2. Select the check boxes for the messaging servers that the Group Usage Service schedule should - process. - - Or - - Select the Server Name check box if you want this job to read the expansion logs of all - messaging servers in the identity store. - - 3. Click **Add**. The messaging server(s) are displayed in the **Messaging Server** area. - -11. Click **Add Triggers** in the **Triggers** area to specify a triggering criterion for the - schedule, that, when met, starts the execution of the schedule. - - 1. In the **Begin the Task** drop-down list on the **New Trigger** dialog box, select a trigger - to start the schedule. - - - **On a schedule:** To start a schedule at a specific time of day or starting it multiple - times on a daily, weekly, or monthly schedule. - - **At startup:** To start the schedule every time the GroupIDSchedulerService starts. This - is a GroupID service created in native IIS. - - 2. On selecting an option, the dialog box displays relevant settings for the trigger. - The **Triggers** dialog box is the same as available in Windows Task Scheduler. Visit the - [Triggers](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc748841%28v%3dws.10%29) - page for help. - 3. After specifying the settings, click **Add**. The trigger is displayed in the **Triggers** - area. - - A schedule can have one or more triggers, allowing the schedule to be started in many ways. With - multiple triggers, the schedule will start when any of the triggers occur. - **To enable or disable a trigger** - Click **Edit** for a trigger in the **Triggers** area and - use the toggle button at the top of the **Update Trigger** dialog box to enable or disable the - trigger. - **To remove a trigger** - Click **Remove** for a trigger to remove it. - -12. Click **Add Authentication** in the **Authentication** area to specify an account for running - the schedule in the identity store. - The **Authentication** dialog box displays your accounts in the respective identity store that - you have used for signing in. Select an account to authenticate with it or click **Login with a - different user** to provide the credentials of another account to run the schedule in the - identity store. - - NOTE: Make sure this account falls under a high priority security role that has elevated - permissions in the identity store (for example, Administrator). - - NOTE: If you are creating this schedule in a Microsoft Entra ID identity store, you can only - specify the logged-in user's account. See the - [Schedules for Microsoft Entra ID Identity Store](/docs/directorymanager/11.0/signin/schedule/overview.md#schedules-for-microsoft-entra-id-identity-store) - section of the - [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) topic for - additional information. - -13. On the **Create Schedule** page, click **Create Schedule**. -14. On the **Schedules** page, click **Save**. - The schedule is displayed under **Group Usage Service**. See the - [View the Schedules in an Identity Store ](/docs/directorymanager/11.0/signin/schedule/manage.md#view-the-schedules-in-an-identity-store) - topic for more info. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) -- [Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) diff --git a/docs/directorymanager/11.0/signin/schedule/historyretention.md b/docs/directorymanager/11.0/signin/schedule/historyretention.md deleted file mode 100644 index daab795272..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/historyretention.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: "History Retention Schedule" -description: "History Retention Schedule" -sidebar_position: 30 ---- - -# History Retention Schedule - -While configuring history tracking for an identity store, you can choose to keep history records -forever in the GroupID database or retain history for a specific period (see the -[Configure History Tracking](/docs/directorymanager/11.0/signin/identitystore/configure/historytracking.md) -topic). In case you select the latter option, the History Retention schedule is auto created for the -identity store. This schedule runs on a specified frequency to check if the retention period is over -for any history records, and if so, move them from the GroupID database to the following .csv files: - -- **History** - contains history data of the GroupID portal, Synchronize, GroupID Management Shell, - scheduled jobs, and the GroupID mobile app. It also contains history data for the identity store, - security roles, and workflow configurations. -- **AuditingHistory** - contains history data of all authentication actions performed in GroupID, as - logged in Helpdesk history. See the - [History in Helpdesk](/docs/directorymanager/11.0/signin/helpdesk/history.md) topic. -- **PasswordCenterHistory** - contains history data of all actions tracked in Helpdesk, except the - authentication action. See the - [History in Helpdesk](/docs/directorymanager/11.0/signin/helpdesk/history.md) topic. -- **AdminCenterHistory** - contains Admin Center history data. See the - [Admin Center History](/docs/directorymanager/11.0/signin/concepts/history_1.md) topic. - -These files are available at the following location on the GroupID server: -X:\Program Files\Imanami\GroupID -11.0\GroupIDDataService\Inetpub\GroupIDDataService\Web\HistoryBin\ -(X is the GroupID installation drive) - -History data moved to these files is not longer displayed in GroupID. - -NOTE: Admin Center history does not fall in a specific identity store, so its retention mechanism is -different. GroupID checks the identity store of the user who performed an action logged in Admin -Center history, and archives that record according to the history retention setting of the identity -store that user belongs to. - -After the History Retention schedule runs, the following information is displayed on the **History** -page in identity store configurations: - -![historyretention](/images/directorymanager/11.0/admincenter/schedule/historyretention.webp) - -You cannot create or delete a History Retention schedule; only update the existing one. - -What do you want to do? - -- [Update the History Retention Schedule](#update-the-history-retention-schedule) - -## Update the History Retention Schedule - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click the plus sign next to **History Retention**. Then click the - ellipsis button for the schedule and select **Edit**. -5. On the **Edit Schedule** page, the schedule name is displayed in the **Schedule Name** box as - read-only. - The default name format is: _HistoryRetention_``_``_. -6. The **Name Preview** box displays the schedule name as HistoryRetention; the schedule is - displayed with this name in email notifications. -7. In the **Scheduler Service Name** drop-down list, select a Scheduler service that would be - responsible for triggering this schedule. The number of services displayed in the list depend on - the number of Elasticsearch clusters in the environment, as each cluster has its own Scheduler - service. See the - [Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) - topic. -8. The **Triggers** area displays the default triggering frequency for the schedule. - - - To change a trigger, click **Edit** for it. - - To add a new trigger, click **Add Trigger**. - - Follow step 11 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic to manage triggers. - -9. Click **Update Schedule**. -10. On the **Schedules** page, click **Save**. - For general schedule info, see the - [View the Schedules in an Identity Store ](/docs/directorymanager/11.0/signin/schedule/manage.md#view-the-schedules-in-an-identity-store) - topic. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) diff --git a/docs/directorymanager/11.0/signin/schedule/manage.md b/docs/directorymanager/11.0/signin/schedule/manage.md deleted file mode 100644 index 5264b4659f..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/manage.md +++ /dev/null @@ -1,191 +0,0 @@ ---- -title: "Manage Schedules" -description: "Manage Schedules" -sidebar_position: 160 ---- - -# Manage Schedules - -GroupID enables you to run, modify, disable, and delete the schedules defined for an identity store. - -What do you want to do? - -- [View the Schedules in an Identity Store ](#view-the-schedules-in-an-identity-store) -- [Enable/Disable a Schedule](#enabledisable-a-schedule) -- [Update Triggers for a Schedule](#update-triggers-for-a-schedule) -- [Update Targets for a Schedule](#update-targets-for-a-schedule) -- [Update Notification Settings for a Schedule](#update-notification-settings-for-a-schedule) -- [Run a Schedule Instantly](#run-a-schedule-instantly) -- [Terminate a Running Schedule](#terminate-a-running-schedule) -- [Delete a Schedule](#delete-a-schedule) - -## View the Schedules in an Identity Store - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click the plus sign next to a job name to view the schedules defined - for it. - The following is displayed for a schedule: - - | Label | Description | - | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | - | Enable | Shows whether a schedule is enabled or disabled. Use the toggle button next to a schedule to disable an enabled schedule and vice versa. GroupID does not execute a disabled schedule. | - | Job Name | The name of a schedule. | - | Target(s) | The group(s) and container(s) that a schedule processes. | - | Last Run | The date and time a schedule last ran. | - | Next Run | The next date and time a schedule will run. | - | Actions | Click the ellipsis button for a schedule in the **Actions** column and select an option: - **Edit:** to update the schedule's settings, such as targets, triggers, and notifications. - **Delete:** to delete a schedule. - **Run:** to manually run a schedule instantly. - **Terminate:** to manually terminate a running schedule instantly. This option is available for schedules that are currently running. | - -### Search a Schedule - -GroupID enables you to search for a schedule by different attributes, such as job name, job target, -last run time, the kind of notifications set for a job and the user name used for authentication in -a job. - -**To apply a filter:** - -1. On the **Schedules** page, expand the **Schedule Filters** area by clicking the plus sign. -2. In the _Select a Filter_ box, select an attribute to filter schedules. -3. In the _Select an Operator_ drop-down list, select an operator to apply to the selected - attribute. This drop-down displays the operators on the basis of the selected attribute. - Available operators are: - - (missing or bad snippet) - -4. In the _Select a Value_ box, specify a value for the attribute. The selected attribute and - operator determine the kind of value that can be entered in this box. For some operators, such as - _Present_ and _Not Present_, this field is not available. These operators check if a value for - the attribute is present or not. - - **To add more filters** - On adding a filter, the next row is displayed, so you can add another - filter. - **To remove a filter row** - To remove a filter row, click **Remove** for it. - **To remove the filter** - To remove all the filter rows, click **Clear**. - -5. To apply the filter, click **Apply**. With multiple filters, schedules that satisfy all the - filters are displayed. - -## Enable/Disable a Schedule - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click the plus sign for a job to view the schedules defined for it. -5. Use the **Enable** toggle button for a schedule to enable or disable it. - A disabled schedule is not executed in the identity store. -6. Click **Save**. - -## Update Triggers for a Schedule - -A trigger is a criterion that, when met, starts the execution of a schedule. - -**To update triggers for a schedule:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click the plus sign for a job to view the schedules defined for it. -5. Click the ellipsis button for a schedule and select **Edit**. -6. On the **Edit Schedule** page, the **Triggers** area displays the trigger(s) set for the - schedule. - - - To update a trigger, click **Edit** for it. - - To add a new trigger, click **Add Trigger**. - - To remove a trigger, click **Remove** for it. - - Follow step 11 in the - [Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md) topic - to manage triggers. - -7. Click **Update Schedule**. -8. Click **Save** on the **Schedules** page. - -## Update Targets for a Schedule - -Targets in a schedule are the objects processed by that schedule. - -**To update the targets:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click the plus sign for a job to view the schedules defined for it. -5. Click the ellipsis button for a schedule and select **Edit**. -6. On the **Edit Schedule** page, the **Target(s)** area displays the target objects for the - schedule. - Target types differ for different schedule types. For example, you can set containers as targets - for a Group Lifecycle schedule; and jobs and job collections for a Synchronize schedule. Other - schedules, such as a User Lifecycle schedule, may not require a target, as they execute certain - functions for an identity store. - - - To add a target object to a schedule, refer to the instructions for the respective schedule. - - To remove a target object, click **Remove** for it. - - To remove all target objects, click **Remove All**. - -7. Click **Update Schedule**. -8. Click **Save** on the **Schedules** page. - -## Update Notification Settings for a Schedule - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click the plus sign for a job to view the schedules defined for it. -5. Click the ellipsis button for a schedule and select **Edit**. -6. On the **Edit Schedule** page, click the **Notifications** button to update notification settings - for the schedule. - Notification settings differ for different schedule types. For example, a Smart Group Update - schedule has a different set of notification options from a Group Lifecycle schedule. Other - schedules, such as the GroupID Entitlement and Workflow Acceleration schedules, do not have - notification settings. - To manage the notification settings for a schedule, refer to the instructions for the respective - schedule. -7. Click **Update Schedule**. -8. Click **Save** on the **Schedules** page. - -## Run a Schedule Instantly - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click the plus sign for a job to view the schedules defined for it. -5. Click the ellipsis button for a schedule and select **Run** to execute it instantly. - -## Terminate a Running Schedule - -You can terminate a schedule that is currently running in an identity store. On termination, objects -that have already been processed by the schedule will not be reverted while the remaining stay -unprocessed. - -**To terminate a running schedule:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click the plus sign for a job to view the schedules defined for it. -5. Click the ellipsis button for a currently running schedule and select **Terminate** to stop it - instantly. - -## Delete a Schedule - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click the plus sign for a job to view the schedules defined for it. -5. Click the ellipsis button for a schedule and select **Delete**. - The **Delete** option is not available for system-defined schedules. -6. On the **Delete Schedule** dialog box, click **Delete**. -7. Click **Save** on the **Schedules** page. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) diff --git a/docs/directorymanager/11.0/signin/schedule/managedbylifecycle.md b/docs/directorymanager/11.0/signin/schedule/managedbylifecycle.md deleted file mode 100644 index a7ca3f2605..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/managedbylifecycle.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: "Managed By Life Cycle Schedule" -description: "Managed By Life Cycle Schedule" -sidebar_position: 70 ---- - -# Managed By Life Cycle Schedule - -The Managed By Life Cycle schedule updates the temporary additional owners for groups and temporary -additional managers for users in an identity store. It performs the following functions: - -- Group owners and users with the ‘Manage any Group’ permission in the identity store can set a - start and end date to: - - - Add an object as a temporary additional owner of a group - - Remove an additional owner for a temporary period - - The Managed By Life Cycle schedule adds and removes an object as a group’s temporary additional - owner on the specified dates. - -- User managers and users with the ‘Manage any Profile’ permission in the identity store can set a - start and end date to: - - - Add an object (user or contact) as a temporary additional manager of a user - - Remove an additional manager for a temporary period - - The Managed By Life Cycle schedule adds and removes an object as the user’s temporary additional - manager on the specified dates. - -Let’s assume that the Managed By Life Cycle schedule is scheduled to run once a week, say Mondays. -If an object is to be added as a group’s temporary additional owner for three days - Wednesday till -Friday, it will not be added. This happens because the Managed By Life Cycle schedule did not run on -the specific days for temporary ownership update. Make sure the schedule is set to run at a -frequency that meets your temporary ownership requirements. - -GroupID generates notifications when the Managed By Life Cycle schedule adds or removes temporary -additional owners/managers. See the -[Manage Managed by Life Cycle Notifications](/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md#manage-managed-by-life-cycle-notifications) -topic. - -What do you want to do? - -- [Create a Managed By Life Cycle Schedule](#create-a-managed-by-life-cycle-schedule) - -## Create a Managed By Life Cycle Schedule - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click **Add Schedule** and select **Managed By Life Cycle Job**. The - **Create  Schedule** page is displayed. -5. In the **Schedule Name** box, enter a name for the schedule. -6. The **Name Preview** box displays the schedule name prefixed with _ManagedByLifeCycle___; the - schedule is displayed with this name in email notifications. -7. Select a GroupID portal URL in the **Portal URL** drop-down list to include it in notifications - generated by the schedule. Users are redirected to this portal to perform any necessary action. -8. In the **Scheduler Service Name** drop-down list, select a Scheduler service that would be - responsible for triggering this schedule. The number of services displayed in the list depend on - the number of Elasticsearch clusters in the environment, as each cluster has its own Scheduler - service. See the - [Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) - topic. -9. You can specify containers as targets for the schedule. The schedule will process all groups in - the selected containers and sub-containers. To specific containers as target, see step 9 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic. -10. Click **Add Triggers** in the **Triggers** area to specify a triggering criterion for the - schedule, that, when met, starts the execution of the schedule. Follow step 11 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic to manage triggers. -11. Click **Add Authentication** in the **Authentication** area to specify an account for running - the schedule in the identity store. Follow step 12 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic for details. -12. On the **Create Schedule** page, click **Create Schedule**. -13. On the **Schedules** page, click **Save**. - The schedule is displayed under **Managed By Life Cycle**. See the - [View the Schedules in an Identity Store ](/docs/directorymanager/11.0/signin/schedule/manage.md#view-the-schedules-in-an-identity-store) - topic for more info. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) diff --git a/docs/directorymanager/11.0/signin/schedule/membershiplifecycle.md b/docs/directorymanager/11.0/signin/schedule/membershiplifecycle.md deleted file mode 100644 index 8923aa7adb..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/membershiplifecycle.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: "Membership Life Cycle Schedule" -description: "Membership Life Cycle Schedule" -sidebar_position: 80 ---- - -# Membership Life Cycle Schedule - -The Membership Life Cycle schedule updates the temporary membership of groups in an identity store. -It performs the following functions: - -- Group owners (primary owner, additional owners, and Exchange additional owners) can set a start - and end date to: - - - Add an object as a temporary member of a group - - Remove a member for a temporary period from group membership - - The Membership Life Cycle schedule temporarily adds and removes an object from group membership - on the specified dates. - -- Managers and peers can join and leave a group temporarily on behalf of other users. When the - Membership Life Cycle schedule runs, it adds and removes those users from group membership on the - specified dates. -- The Membership Life Cycle schedule executes the Membership Life Cycle policy for the identity - store. See the - [Manage Membership Life Cycle Policies](/docs/directorymanager/11.0/signin/identitystore/configure/membershiplifecycle.md) - topic. -- The schedule also removes members when group owners inactivate them during group attestation. See - the - [Enable Group Attestation](/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md#enable-group-attestation) - topic. - -Let’s assume that the Membership Life Cycle schedule is scheduled to run once a week, say Mondays. -If an object is to be added to group membership for three days - Wednesday till Friday, it will not -be added. This happens because the Membership Life Cycle schedule did not run on the specific days -for temporary membership update. Make sure that the schedule is set to run at a frequency that meets -your temporary membership requirements. - -GroupID generates notifications when the Membership Life Cycle schedule adds or removes users from -group membership. See the -[Manage Membership Life Cycle Notifications](/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md#manage-membership-life-cycle-notifications) -topic. - -What do you want to do? - -- [Create a Membership Life Cycle Schedule](#create-a-membership-life-cycle-schedule) - -## Create a Membership Life Cycle Schedule - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click **Add Schedule** and select **Membership Life Cycle Job**. The - **Create Schedule** page is displayed. -5. In the **Schedule Name** box, enter a name for the schedule. -6. The **Name Preview** box displays the schedule name prefixed with _MembershipLifeCycle__; the - schedule is displayed with this name in email notifications. -7. Select a GroupID portal URL in the **Portal URL** drop-down list to include it in notifications - generated by the schedule. Users are redirected to this portal to perform any necessary action. -8. In the **Scheduler Service Name** drop-down list, select a Scheduler service that would be - responsible for triggering this schedule. The number of services displayed in the list depend on - the number of Elasticsearch clusters in the environment, as each cluster has its own Scheduler - service. See the - [Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) - topic. -9. You can specify containers as targets for the schedule. The schedule will process all groups in - these containers and their sub-containers. To specific containers as target, follow step 9 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic. - - NOTE: Membership Lifecycle policies are not applied to OUs specified here. Target OUs and groups - are set in the respective policy. - -10. Click **Add Triggers** in the **Triggers** area to specify a triggering criterion for the - schedule, that, when met, starts the execution of the schedule. Follow step 11 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic to add triggers. -11. Click **Add Authentication** in the **Authentication** area to specify an account for running - the schedule in the identity store. Follow step 12 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic for details. -12. On the **Create Schedule** page, click **Create Schedule**. -13. On the **Schedules** page, click **Save**. - The schedule is displayed under **Membership Life Cycle**. See the - [View the Schedules in an Identity Store ](/docs/directorymanager/11.0/signin/schedule/manage.md#view-the-schedules-in-an-identity-store) - topic for more info. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) diff --git a/docs/directorymanager/11.0/signin/schedule/orphangroupupdate.md b/docs/directorymanager/11.0/signin/schedule/orphangroupupdate.md deleted file mode 100644 index 1f22f6ac0b..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/orphangroupupdate.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: "Orphan Group Update Schedule" -description: "Orphan Group Update Schedule" -sidebar_position: 90 ---- - -# Orphan Group Update Schedule - -An orphan group is one without a primary owner. - -An Orphan Group Update schedule is responsible for assigning a primary owner to orphan groups. For -this, the orphan group must have at least one additional owner, since the schedule promotes a -group’s additional owner as its primary owner. - -When an Orphan Group Update schedule runs, it promotes the first additional owner in the additional -owners’ list (be it a user, contact, or security group) as the primary owner and a notification is -sent to the promoted owner. Note the following: - -- A temporary additional owner is not promoted as the primary owner. When such an owner is the first - in the list, the schedule skips it and moves to the next additional owner in the list. -- When a security group is promoted as the primary owner, a notification is sent to all group - members. -- When a mail-enabled user is promoted as the primary owner, the schedule also adds him or her as - the group’s Exchange additional owner. -- When a user is promoted as the primary owner of more than one group, a single notification is sent - to him or her, containing details of the groups added to his or her ownership. - -The promotion of an additional owner to primary owner may violate the Group Owners policy for the -minimum number of additional owners required. A notification is sent to the promoted owner to add an -additional owner to comply with the policy. See the -[Group Owners Policy](/docs/directorymanager/11.0/signin/securityrole/policy/groupowners.md) -topic. - -With history tracking enabled, history is logged at the group level and at the promoted owner’s -level. See the -[Configure History Tracking](/docs/directorymanager/11.0/signin/identitystore/configure/historytracking.md) -topic. - -What do you want to do? - -- [Create an Orphan Group Update Schedule](#create-an-orphan-group-update-schedule) - -## Create an Orphan Group Update Schedule - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click **Add Schedule** and select **Orphan Group Update Job**. The - **Create Schedule** page is displayed. -5. In the **Schedule Name** box, enter a name for the schedule. -6. The **Name Preview** box displays the schedule name prefixed with _OrphanGroupUpdater__; the - schedule is displayed with this name in email notifications. -7. Select a GroupID portal URL in the **Portal URL** drop-down list to include it in notifications - generated by the schedule. Users are redirected to this portal to perform any necessary action. -8. In the **Scheduler Service Name** drop-down list, select a Scheduler service that would be - responsible for triggering this schedule. The number of services displayed in the list depend on - the number of Elasticsearch clusters in the environment, as each cluster has its own Scheduler - service. See the - [Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) - topic. -9. You can specify containers as targets for the schedule. The schedule will process all groups in - these containers and their sub-containers. To specific containers as target, follow step 9 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic. -10. Click **Add Triggers** in the **Triggers** area to specify a triggering criterion for the - schedule, that, when met, starts the execution of the schedule. Follow step 11 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic to add triggers. -11. Click **Add Authentication** in the **Authentication** area to specify an account for running - the schedule in the identity store. See step 12 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic for details. -12. On the **Create Schedule** page, click **Create Schedule**. -13. On the **Schedules** page, click **Save**. - The schedule is displayed under **Orphan Group Update**. See the - [View the Schedules in an Identity Store ](/docs/directorymanager/11.0/signin/schedule/manage.md#view-the-schedules-in-an-identity-store) - topic for more info. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) diff --git a/docs/directorymanager/11.0/signin/schedule/overview.md b/docs/directorymanager/11.0/signin/schedule/overview.md deleted file mode 100644 index dab1ea1f52..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/overview.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: "Schedules" -description: "Schedules" -sidebar_position: 60 ---- - -# Schedules - -The scheduling feature in GroupID enables you to perform several operations by creating scheduled -jobs for an identity store. These schedules auto run at the specified day, time, and frequency. - -## Schedules for Active Directory, Google Workspae, and Generic LDAP Identity Stores - -You can define the following schedules for an identity store: - -- A - [Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md) - monitors group usage and time stamps groups with the date and time they were last used. -- A - [Group Life Cycle Schedule](/docs/directorymanager/11.0/signin/schedule/grouplifecycle.md) - expires and deletes groups according to their expiry policy. It executes the Group Lifecycle - policy for the identity store. -- A - [History Retention Schedule](/docs/directorymanager/11.0/signin/schedule/historyretention.md) - archives identity store history data in GroupID. -- A - [GroupID Entitlement Schedule](/docs/directorymanager/11.0/signin/schedule/entitlement.md) - replicates object permissions on file servers and SharePoint sites for an Active Directory and - Microsoft Entra ID identity store respectively. -- An - [Entitlement Scope Schedule](/docs/directorymanager/11.0/signin/schedule/entitlementscope.md) - replicates changes made to object permissions on file servers and SharePoint sites using GroupID. -- An - [Entitlement Temporary Permissions Schedule](/docs/directorymanager/11.0/signin/schedule/entitlementtemporarypermissions.md) - updates the temporary permissions for objects on file servers and SharePoint sites. -- A - [Managed By Life Cycle Schedule](/docs/directorymanager/11.0/signin/schedule/managedbylifecycle.md) - manages the temporary additional owners for groups and temporary additional managers for users. -- A - [Membership Life Cycle Schedule](/docs/directorymanager/11.0/signin/schedule/membershiplifecycle.md) - updates the temporary membership of groups. -- An - [Orphan Group Update Schedule](/docs/directorymanager/11.0/signin/schedule/orphangroupupdate.md) - sets the primary owner for an orphan group. -- A [Reports Schedule](/docs/directorymanager/11.0/signin/schedule/reports.md)can - automatically generate reports that you link with the schedule. -- A - [Schema Replication Schedule](/docs/directorymanager/11.0/signin/schedule/schemareplication.md) - replicates the schema of an identity provider to the GroupID database. -- A - [Smart Group Update Schedule](/docs/directorymanager/11.0/signin/schedule/smartgroupupdate.md)updates - Smart Groups and Dynasties. -- A [Synchronize Schedule](/docs/directorymanager/11.0/signin/schedule/synchronize.md) - can execute Synchronize jobs and job groups at a set frequency. -- A - [User Life Cycle Schedule](/docs/directorymanager/11.0/signin/schedule/userlifecycle.md) - disables users who do not validate their profiles within a given period, based on the settings - defined for user profile validation. -- A - [Workflow Acceleration Schedule](/docs/directorymanager/11.0/signin/schedule/workflowacceleration.md) - forwards workflow requests to approvers and auto approves requests according to workflow approver - acceleration rules. - -NOTE: Role members with the _Manage Scheduling_ permission in an identity store can create and -manage scheduled jobs. See the -[Modify Role Permissions](/docs/directorymanager/11.0/signin/securityrole/manage.md#modify-role-permissions) -topic. - -Schedules are saved in the GroupID database. The GroupIDSchedulerService, created in the -GroupIDSite11 site in native IIS is responsible for initiating schedule runs. - -## Schedules for Microsoft Entra ID Identity Store - -The following schedules are automatically created when their associated configurations are done in -an identity store. - -- Entitlement - ([GroupID Entitlement Schedule](/docs/directorymanager/11.0/signin/schedule/entitlement.md), - [Entitlement Scope Schedule](/docs/directorymanager/11.0/signin/schedule/entitlementscope.md), - [Entitlement Temporary Permissions Schedule](/docs/directorymanager/11.0/signin/schedule/entitlementtemporarypermissions.md)) -- [User Life Cycle Schedule](/docs/directorymanager/11.0/signin/schedule/userlifecycle.md) -- [History Retention Schedule](/docs/directorymanager/11.0/signin/schedule/historyretention.md) -- [Workflow Acceleration Schedule](/docs/directorymanager/11.0/signin/schedule/workflowacceleration.md) - -In a Microsoft Entra ID identity provider, the Entra ID user must be logged into the Admin Center -while making configurations of these schedules. The schedules are then run in the context of the -logged in user. The following dialog box displays the username of the logged-in user when you -configure a schedule: - -![entraidscheduleauthenticate](/images/directorymanager/11.0/admincenter/schedule/entraidscheduleauthenticate.webp) - -Use the Login with a different user option to provide the credentials of another account to run the -schedule in the identity store is not available for a Microsoft Entra ID identity store. - -NOTE: The existing schedules will continue to work. The SAML provider authentication does not apply -on them. - -**See Also** - -- [Manage Schedules](/docs/directorymanager/11.0/signin/schedule/manage.md) -- [Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) diff --git a/docs/directorymanager/11.0/signin/schedule/reports.md b/docs/directorymanager/11.0/signin/schedule/reports.md deleted file mode 100644 index f6736009b9..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/reports.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: "Reports Schedule" -description: "Reports Schedule" -sidebar_position: 100 ---- - -# Reports Schedule - -GroupID can generate reports for an identity store on a scheduled basis. - -You can create a Reports schedule and add reports to it. When the schedule runs, all added reports -are auto generated. The Reports schedule also sends email notifications to the designated -recipients. - -What do you want to do? - -- [Create a Reports Schedule](#create-a-reports-schedule) - -## Create a Reports Schedule - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click **Add Schedule** and select **Reports Job**. The **Create - Schedule** page is displayed. -5. In the **Schedule Name** box, enter a name for the schedule. -6. The **Name Preview** box displays the schedule name prefixed with _ReportPortal__; the - schedule is displayed with this name in email notifications. -7. In the **Scheduler Service Name** drop-down list, select a Scheduler service that would be - responsible for triggering this schedule. The number of services displayed in the list depend on - the number of Elasticsearch clusters in the environment, as each cluster has its own Scheduler - service. See the - [Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) - topic. -8. To add reports to the schedule, click **Add Report(s)** in the **Reports** area. The **Add - Reports to Schedule** dialog box is displayed. - - NOTE: You can only add reports that have been generated in the GroupID portal, since the - schedule uses the settings provided there to generate the report. Moreover, you cannot change - the settings here, such as the container and filter settings. - - 1. In the **Object Category** drop-down list, select a report category. Available categories - are: _All Categories, Users, Groups, Contacts and Computers_. In the GroupID portal, reports - are classified under these categories. - 2. The **Reports** drop-down list shows all reports in the selected category. On selecting a - report, one of the following happens: - - - The report is displayed in the grid on the dialog box. This is because it has previously - been added, and you do not need to add it again. If the report has been generated multiple - times in the GroupID portal, all instances are displayed, since each instance has its own - _title_, _container_, and _filter_ settings. - - If the report is not displayed in the grid, you have to add it using the **Add** button. - (The **Add** button gets enabled if this report has been generated in the GroupID portal.) - - Notice that when you select a category, a report may get listed in the grid. This is because - the first report in the category is auto selected in the **Reports** drop-down list. If that - report has previously been added, it is displayed in the grid. - - 3. The report is listed in the grid on the dialog box with the following info: - - - **Report Title** - the name given to the report by the user while generating it. - - **Report Name** - the name of the report in GroupID. - - **Container** - the container the report will fetch results from. This container was - specified by the user while generating the report. - - **Filter** - the criteria applied to get the results. - - You can add as many reports as required. - - 4. Select the check box for a report and click **Add**. The selected reports are displayed in - the **Reports** area on the **Create Schedule** page. When this Reports schedule runs, it - auto generates all added reports. - To remove a report , click **Remove** for it. - -9. Click **Add Triggers** in the **Triggers** area to specify a triggering criterion for the - schedule, that, when met, starts the execution of the schedule. Follow step 11 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic to add triggers. -10. Click **Add Authentication** in the **Authentication** area to specify an account for running - the schedule in the identity store. Follow step 12 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic for details. -11. To set up notifications for the schedule, click **Notifications**. - - 1. On the **Notifications** dialog box, enter the email address of recipient(s) to whom you want - to send the reports generated by the schedule. Use a semicolon to separate multiple - addresses. - 2. Click **Save**. - -12. On the **Create Schedule** page, click **Create Schedule**. -13. On the **Schedules** page, click **Save**. - The schedule is displayed under **Reports**. See the - [View the Schedules in an Identity Store ](/docs/directorymanager/11.0/signin/schedule/manage.md#view-the-schedules-in-an-identity-store)topic - for details. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) diff --git a/docs/directorymanager/11.0/signin/schedule/schemareplication.md b/docs/directorymanager/11.0/signin/schedule/schemareplication.md deleted file mode 100644 index c0b1d5a6bf..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/schemareplication.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "Schema Replication Schedule" -description: "Schema Replication Schedule" -sidebar_position: 110 ---- - -# Schema Replication Schedule - -An Identity store is built on an identity provider, that could be Active Directory, Microsoft Entra -ID, Google Workspace, or Generic LDAP. The Schema Replication schedule replicates the schema of -these identity providers to the GroupID database. - -Unlike other schedules that exist separately for each identity store, GroupID has only one Schema -Replication schedule that serves all identity stores. While the schedule is displayed separately for -each identity store, it does not represent separate schedules. So when you run the Schema -Replication schedule for an identity store, it replicates the schema for all identity stores in -GroupID. And if you terminate it, the process is terminated for all identity stores. Moreover, the -schedule runs every time it is triggered from any of the identity stores, be it manually or -according to its triggers. - -When the Schema Replication schedule runs for the first time, it replicates schema from scratch. In -all subsequent runs, it replicates any changes made to the schema. Of this replicated schema, you -can choose the object attributes you actually want to use in an identity store. See the -[Specify Object Attributes to Replicate](/docs/directorymanager/11.0/signin/identitystore/replication.md#specify-object-attributes-to-replicate) -topic for details. - -NOTE: For Microsoft Entra ID, schema is replicated from the schema file for Graph API v 3.26.0. - -The Schema Replication schedule runs in the context of the super admin account in the GroupID -provider. You cannot create or delete a Schema Replication schedule; only update the existing one. - -What do you want to do? - -- [Update the Schema Replication Schedule](#update-the-schema-replication-schedule) - -## Update the Schema Replication Schedule - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click the plus sign next to **Schema Replication**. Then click the - ellipsis button for the schedule and select **Edit**. -5. On the **Edit Schedule** page, the **Schedule Name** and **Name Preview** boxes display the name - of the schedule as read-only. -6. In the **Scheduler Service Name** drop-down list, select a Scheduler service that would be - responsible for triggering this schedule. The number of services displayed in the list depend on - the number of Elasticsearch clusters in the environment, as each cluster has its own Scheduler - service. See the - [Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) - topic. - - **CAUTION:** In case of multiple Scheduler services, you must bind the same service with the - Schema Replication schedules in all the identity stores. - -7. The **Triggers** area displays the default triggering frequency for the schedule. - - - To change it, click **Edit** for it. - - To add a new trigger, click **Add Trigger**. - - Follow step 11 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic to manage triggers. - -8. Click **Update Schedule**. -9. On the **Schedules** page, click **Save**. - For general schedule info, see the - [View the Schedules in an Identity Store ](/docs/directorymanager/11.0/signin/schedule/manage.md#view-the-schedules-in-an-identity-store) - topic. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) diff --git a/docs/directorymanager/11.0/signin/schedule/smartgroupupdate.md b/docs/directorymanager/11.0/signin/schedule/smartgroupupdate.md deleted file mode 100644 index d1faf81a74..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/smartgroupupdate.md +++ /dev/null @@ -1,131 +0,0 @@ ---- -title: "Smart Group Update Schedule" -description: "Smart Group Update Schedule" -sidebar_position: 120 ---- - -# Smart Group Update Schedule - -You can create a Smart Group Update schedule and bind it to Smart Groups and Dynasties in an -identity store. When the schedule runs, it updates the following: - -- Group membership - Each Smart Group and Dynasty has a user-defined query specified for it. When a - Smart Group Update schedule runs, it updates the membership of target groups with records fetched - by the query. -- Certain attribute values for nested Smart Groups and Dynasty children. - -A Smart Group or Dynasty that is not linked with a Smart Group Update schedule will not be auto -updated. - -You can configure notifications for a schedule that are sent to designated recipients in response to -an event, such as when the schedule successfully updates all target groups or fails to update any -target group. - -What do you want to do? - -- [Create a Smart Group Update Schedule](#create-a-smart-group-update-schedule) - -## Create a Smart Group Update Schedule - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click **Add Schedule** and select **Smart Group Update Job**. The - **Create Schedule** page is displayed. -5. In the **Schedule Name** box, enter a name for the schedule. -6. The **Name Preview** box displays the schedule name prefixed with _SmartGroup__; the schedule - is displayed with this name in email notifications. -7. Select a GroupID portal URL in the **Portal URL** drop-down list to include it in notifications - generated for the schedule. Users are redirected to this portal to perform any necessary action. -8. In the **Scheduler Service Name** drop-down list, select a Scheduler service that would be - responsible for triggering this schedule. The number of services displayed in the list depend on - the number of Elasticsearch clusters in the environment, as each cluster has its own Scheduler - service. See the - [Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) - topic. -9. You can specify containers and groups as targets for the schedule. or a container, the schedule - processes all groups in it and its sub-containers. In the case of groups, the schedule processes - the added groups only (i.e., it does not process nested groups). - - 1. To specific containers as target, follow step 9 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic. The schedule will process all Smart Groups and Dynasties in the containers and their - sub-containers listed in the **Target(s)** area. - 2. To add Smart Groups and Dynasties as targets, click **Add Group**. On the **Add Object(s)** - dialog box, specify a container to search for the desired groups; then perform a search to - locate and select the groups. - - - Click the down arrow in the **Search Container** box and select a container to limit the - search scope to it. - - Select the **Include Sub-Containers** check box to include the sub-containers within the - selected container to search for the group(s). - - Enter a search string in the search box; group names starting with the string are - displayed as you type. Click **Add** for a group to select it. - You can also perform an advanced search to locate a group. Click **Advanced** in the - search box and use the search fields to enter a search string. On clicking **Search**, - groups matching the string are displayed. Select the group you want to add as target. - - After selecting one or more groups, click **Add** the groups are displayed in the - **Target(s)** area. - - 3. To remove a container or group in the **Target(s)** area, click **Remove** for it. - To remove all target objects, click **Remove All**. - -10. Click **Add Triggers** in the **Triggers** area to specify a triggering criterion for the - schedule, that, when met, starts the execution of the schedule. Follow step 11 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic to add triggers. -11. Click **Add Authentication** in the **Authentication** area to specify an account for running - the schedule in the identity store. Follow step 12 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic for details. -12. To enable notifications for the schedule, click **Notifications**. On the **Notifications** - dialog box, specify an event for triggering notifications for the schedule and add recipients. - - 1. Use the toggle button at the top to enable notifications for the schedule. - 2. In the **Send Notification to the following email IDs** box, enter the email addresses of - notification recipients, using a semicolon to separate multiple addresses. These recipients - will get a report on the event you select for **Send Notification**. - - NOTE: If the email ID of a target group’s additional owner is specified in this box, the - additional owner will receive notifications even if the **Do not Notify** check box is - selected for it in the respective group’s properties. - - 3. Select the **Send Report to group owner(s)** check box to send a report to each unique group - owner of the groups processed by the schedule. A Dynasty owner receives a notification for - its groups and direct child Dynasties. - Group owners include the primary owner, additional owner(s), and Exchange additional - owner(s). - - NOTE: An additional owner of a target group will not receive notifications when the **Do not - Notify** check box is selected for it in the respective group’s properties, even with the - **Send Report to group owner(s)** check box selected. - - 4. In the **Send Notification** area, select one of the following options: - - - **Always -** Always send notifications, whether the schedule succeeds or fails to update - the groups. - - **Only when job succeeds -** Send notifications when the schedule successfully updates all - the groups. Even when one group fails to be updated, notifications are not sent. - - **Only when job fails -** Send notifications when the schedule fails to update groups, - even when all except one group is not updated. - - **Only when membership changes -** Send notifications when any changes are made to group - membership as a result of the schedule run. - - 5. Click **Save**. - - NOTE: When a Smart Group Update schedule is bound to a single OU that contains all expired - Smart Groups/Dynasties, notifications will not be sent, even if the _Always_ option is - selected. Expired Smart Groups and Dynasties are not evaluated for the update process. - However, even if one group in the OU is not expired, notifications will be sent for all - objects with _failed_ status for expired objects. - -13. On the **Create Schedule** page, click **Create Schedule**. -14. On the Schedules page, click **Save**. - The schedule is displayed under **Smart Group Update**. See the - [View the Schedules in an Identity Store ](/docs/directorymanager/11.0/signin/schedule/manage.md#view-the-schedules-in-an-identity-store) - topic for more info. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) diff --git a/docs/directorymanager/11.0/signin/schedule/synchronize.md b/docs/directorymanager/11.0/signin/schedule/synchronize.md deleted file mode 100644 index 3348f10d57..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/synchronize.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "Synchronize Schedule" -description: "Synchronize Schedule" -sidebar_position: 130 ---- - -# Synchronize Schedule - -The GroupID scheduling function enables you to set any Synchronize job or job collection to run -automatically. Create a Synchronize schedule and add Synchronize jobs and job collections as -targets. When the schedule runs, the target jobs and job collections are executed. - -What do you want to do? - -- [Create a Synchronize Schedule](#create-a-synchronize-schedule) - -## Create a Synchronize Schedule - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click **Add Schedule** and select **Synchronize Job**. The **Create - Schedule** page is displayed. -5. In the **Schedule Name** box, enter a name for the schedule. -6. The **Name Preview** displays the schedule name prefixed with _SynchronizeJobPortal__; the - schedule is displayed with this name in email notifications. -7. In the **Scheduler Service Name** drop-down list, select a Scheduler service that would be - responsible for triggering this schedule. The number of services displayed in the list depend on - the number of Elasticsearch clusters in the environment, as each cluster has its own Scheduler - service. See the - [Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) - topic. -8. Add a Synchronize job or a job collection or both to this schedule. - - - Click **Add Jobs** to add a Synchronize job to this schedule. The **Select Jobs to Add** - dialog box displays Synchronize jobs. Select one or more jobs and click **Add**. - - Click **Add Job Collection** to add a Synchronize job collection to this schedule. The - **Select Job Collections to Add** dialog box displays job collections from Synchronize. Select - one or more job collections from the list and click **Add**. - - The selected job(s) and job collection(s) are listed in the **Target(s)** area. They will be - executed when the schedule runs. - To remove a job or job collection in the **Target(s)**area, click **Remove** for it. - To remove all target objects, click **Remove All**. - -9. Click **Add Triggers** in the **Triggers** area to specify a triggering criterion for the - schedule, that, when met, starts the execution of the schedule. Follow step 11 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic to add triggers. -10. Click **Add Authentication** in the **Authentication** area to specify an account for running - the schedule in the identity store. Follow step 12 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic for details. -11. On the **Create Schedule** page, click **Create Schedule**. -12. On the **Schedules** page, click **Save**. - The schedule is displayed under **Synchronize**. See the - [View the Schedules in an Identity Store ](/docs/directorymanager/11.0/signin/schedule/manage.md#view-the-schedules-in-an-identity-store) - topic for more info. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) diff --git a/docs/directorymanager/11.0/signin/schedule/userlifecycle.md b/docs/directorymanager/11.0/signin/schedule/userlifecycle.md deleted file mode 100644 index 667ef5f101..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/userlifecycle.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: "User Life Cycle Schedule" -description: "User Life Cycle Schedule" -sidebar_position: 140 ---- - -# User Life Cycle Schedule - -The User Life Cycle schedule monitors the profile validation process in GroupID. It performs the -following main functions in keeping with the user profile validation settings for an identity store: - -- Monitors the profile validation dates of users -- Generates reminder emails -- Disables users who do not validate their profiles within the given period - -What do you want to do? - -- [Create a User Life Cycle Schedule](#create-a-user-life-cycle-schedule) - -## Create a User Life Cycle Schedule - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click **Add Schedule** and select **User Life Cycle Job**. The - **Create Schedule** page is displayed. -5. In the **Schedule Name** box, enter a name for the schedule. -6. The **Name Preview** box displays the schedule name prefixed with _UserLifeCycle__; the - schedule is displayed with this name in email notifications. -7. Select a GroupID portal URL in the **Portal URL** drop-down list to include it in notifications - generated for the schedule. Users are redirected to this portal to perform any necessary action. -8. In the **Scheduler Service Name** drop-down list, select a Scheduler service that would be - responsible for triggering this schedule. The number of services displayed in the list depend on - the number of Elasticsearch clusters in the environment, as each cluster has its own Scheduler - service. See the - [Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) - topic. -9. Click **Add Triggers** in the **Triggers** area to specify a triggering criterion for the - schedule, that, when met, starts the execution of the schedule. Follow step 11 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic to add triggers. -10. Click **Add Authentication** in the **Authentication** area to specify an account for running - the schedule in the identity store. Follow step 12 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic for details. -11. On the **Create Schedule** page, click **Create Schedule**. -12. On the **Schedules** page, click **Save**. - The schedule is displayed under **User Life Cycle**. See the - [View the Schedules in an Identity Store ](/docs/directorymanager/11.0/signin/schedule/manage.md#view-the-schedules-in-an-identity-store)topic - for more info. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) -- [Configure User Profile Validation](/docs/directorymanager/11.0/signin/identitystore/configure/profilevalidation.md) diff --git a/docs/directorymanager/11.0/signin/schedule/workflowacceleration.md b/docs/directorymanager/11.0/signin/schedule/workflowacceleration.md deleted file mode 100644 index e012e4a5fa..0000000000 --- a/docs/directorymanager/11.0/signin/schedule/workflowacceleration.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "Workflow Acceleration Schedule" -description: "Workflow Acceleration Schedule" -sidebar_position: 150 ---- - -# Workflow Acceleration Schedule - -A Workflow Acceleration schedule facilitates the workflow approver acceleration process for workflow -requests. This schedule is auto created when approver acceleration is enabled for the identity -store. See the -[Workflow Approver Acceleration](/docs/directorymanager/11.0/signin/workflow/approveracceleration.md) -topic. - -By default, the schedule runs daily to accelerate workflow requests to approvers, according to -workflow acceleration settings for an identity store and some predefined rules for approver -acceleration. It also generates notifications to inform approvers about pending workflow requests. - -You cannot create or delete a Workflow Acceleration schedule; only update the existing one. - -What do you want to do? - -- [Update the Workflow Acceleration Schedule](#update-the-workflow-acceleration-schedule) - -## Update the Workflow Acceleration Schedule - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Schedules** under **Settings** in the left pane. -4. On the **Schedules** page, click the plus sign next to **Workflow Acceleration**. Then click the - ellipsis button for the schedule and select **Edit**. -5. On the **Edit Schedule** page, the **Schedule Name** and **Name Preview** boxes display the name - of the schedule as read-only. The schedule is displayed with the name displayed for _Name - Preview_ in email notifications -6. In the **Scheduler Service Name** drop-down list, select a Scheduler service that would be - responsible for triggering this schedule. The number of services displayed in the list depend on - the number of Elasticsearch clusters in the environment, as each cluster has its own Scheduler - service. See the - [Scheduler Service](/docs/directorymanager/11.0/signin/service/schedulerservice.md) - topic. -7. The **Triggers** area displays the default triggering frequency for the schedule. - - - To change it, click **Edit** for it. - - To add a new trigger, click **Add Trigger**. - - Follow step 11 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic to manage triggers. - -8. The **Authentication** area displays an account for running the schedule in the identity store. - To change it, click **Add Authentication**. Follow step 12 in the - [Create a Group Usage Service Schedule](/docs/directorymanager/11.0/signin/schedule/groupusageservice.md#create-a-group-usage-service-schedule) - topic for details. -9. Click **Update Schedule**. -10. On the **Schedules** page, click **Save**. - For general schedule info, see the - [View the Schedules in an Identity Store ](/docs/directorymanager/11.0/signin/schedule/manage.md#view-the-schedules-in-an-identity-store) - topic. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) diff --git a/docs/directorymanager/11.0/signin/securityrole/_category_.json b/docs/directorymanager/11.0/signin/securityrole/_category_.json deleted file mode 100644 index 6447c41766..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Security Roles", - "position": 40, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/securityrole/checkrole.md b/docs/directorymanager/11.0/signin/securityrole/checkrole.md deleted file mode 100644 index 712a612fc2..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/checkrole.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: "Check the Roles of a User" -description: "Check the Roles of a User" -sidebar_position: 50 ---- - -# Check the Roles of a User - -As discussed in the -[Assign Distinct Roles to a User in Different GroupID Clients](/docs/directorymanager/11.0/signin/securityrole/overview.md#assign-distinct-roles-to-a-user-in-different-groupid-clients) -topic, a user in an identity store can have different security roles assigned to it in different -GroupID clients. Moreover, a user can also have multiple roles in a client, in which case the -highest priority role takes precedence when the user logs into that specific client. See -[Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - -GroupID enables you to view the highest priority role of a user in a client. This role identifies -the access level of that user in the client. Select a client and specify a user. GroupID fetches the -highest priority role of the user with respect to the client. - -What do you want to do? - -- [View the Highest Priority Role of a User in a GroupID Client](#view-the-highest-priority-role-of-a-user-in-a-groupid-client) - -## View the Highest Priority Role of a User in a GroupID Client - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit.** -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Check Security Roles**. The **Check Security Roles** - dialog box is displayed. -5. In the **Client name** drop-down list, select a GroupID client to view the highest priority role - of a user within it. For example, select a GroupID portal to view the highest priority role that - a user has in the portal. - This list displays the names of the deployed clients only. If a client, such as the GroupID - mobile app, is not deployed for the identity store, it will not be listed. - To view the highest privileged role that a user has in the identity store, select _None_ in the - **Client Name** list. -6. In the box below, specify a user. - - - Enter a search string and press **Enter**. User names starting with the string are displayed. - Select the required user. - - OR - - - Click **Advanced** to search a user by different parameters, such as name, department, - company, and email. Enter a search string and click **Search**. Users matching the string are - displayed. Select the required user. - - To remove the selected user, click **Remove** for it. - -7. On selecting a user, its highest priority role within the selected client is displayed along with - the role priority number. - For _None_, the highest privileged role of the user in th identity store is displayed, - irrespective of any client. -8. Click **Close** to close the dialog box. - -See Also - -- [Security Roles](/docs/directorymanager/11.0/signin/securityrole/overview.md) -- [Manage Security Roles](/docs/directorymanager/11.0/signin/securityrole/manage.md) diff --git a/docs/directorymanager/11.0/signin/securityrole/create.md b/docs/directorymanager/11.0/signin/securityrole/create.md deleted file mode 100644 index 95ddbc03ac..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/create.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: "Create a Security Role" -description: "Create a Security Role" -sidebar_position: 10 ---- - -# Create a Security Role - -To create a security role for an identity store, you have to specify the following: - -- **Criteria** - See - [Criteria ](/docs/directorymanager/11.0/signin/securityrole/manage.md). -- **Priority** - See - [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). -- **Permissions** - Permissions refer to the different actions that role members can perform using - GroupID, for example, creating directory objects, managing groups, managing scheduled jobs, - managing user profiles, and more. -- **Policies** - Policies refer to settings that apply to role members. For example, the search - policy limits role members to search for objects in a particular container. - -You can create a role from scratch or by copying an existing role. - -NOTE: You can disable a role to prevent its members from accessing GroupID. To prevent an individual -role member from accessing GroupID, you must remove him or her from the group or container specified -as role criteria. - -What do you want to do? - -- [Create a Security Role from Scratch](#create-a-security-role-from-scratch) -- [Create a Role by Copying an Existing Role](#create-a-role-by-copying-an-existing-role) - -## Create a Security Role from Scratch - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Add Security Role**. The **Create Security Role** page is - displayed. -5. Enter a name for the security role in the **Name** box. -6. Enter a brief description for the role in the **Description** box. -7. In the **Priority** box, type or select a value in the range, 1-99, to set the role priority. - This should be a unique value for each role in an identity store. -8. In the **Criteria** area, specify a criterion to determine role members. For details, see the - [Security Role – Criteria](/docs/directorymanager/11.0/signin/securityrole/criteria.md) - topic. -9. Next, assign group management, user management, and other permissions to the security role. For - details, see the - [Security Role – Permissions](/docs/directorymanager/11.0/signin/securityrole/permissions.md) - topic. -10. Click **Create Security Role**. -11. Click **Save** on the **Security Roles** page. - -## Create a Role by Copying an Existing Role - -You can use a security role as a template to create a new role. In this case, the criteria, -permissions, and policies of the template role are copied to the new role. - -**To copy a role:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click the ellipsis button for the security role you want to use - as template and select **Copy**. The **Copy Security Role** page is displayed. -5. Follow steps 5-9 in the - [Create a Security Role from Scratch](#create-a-security-role-from-scratch) topic to update role - info and click **Update Security Role**. -6. On the **Security Roles** page, click **Save**. -7. To update the policies for the new role, see the - [Security Role Policies](/docs/directorymanager/11.0/signin/securityrole/policy/overview.md) - topic. - -See Also - -- [Security Roles](/docs/directorymanager/11.0/signin/securityrole/overview.md) -- [Manage Security Roles](/docs/directorymanager/11.0/signin/securityrole/manage.md) diff --git a/docs/directorymanager/11.0/signin/securityrole/criteria.md b/docs/directorymanager/11.0/signin/securityrole/criteria.md deleted file mode 100644 index e13dc164e4..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/criteria.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: "Security Role – Criteria" -description: "Security Role – Criteria" -sidebar_position: 30 ---- - -# Security Role – Criteria - -You can specify a criterion that determines which users fall in the security role. - -On the **Create Security Role/Copy Security Role/Update Security Role** page, click **Add Criteria** -in the **Criteria** area. You can select a group or a container as criteria. - -**Designate a group as criteria:** - -1. On the **Add Criteria** dialog box, select the **Group** tile. -2. Enter a search string in the search field to search for your required group in the directory. You - can also click **Advanced** to search the group by display name or email. - On selecting a group, its members and nested become members of this role. -3. Click **Preview** to view a list of role members. -4. Click **Save**. - -**Designate a container as criteria:** - -1. On the **Add Criteria** dialog box, select the **Container** tile. -2. Click the down arrow head in the box below and select an OU. - All users residing in this OU and its nested OUs become members of this role. -3. Click **Preview** to view a list of role members. -4. Click **Save**. - -**Allow client-based access** - -You can specify the GroupID clients that this role can access or restrict this role to access a -specific client, such as one GroupID portal rather than all portals. This may be required, for -example, when you create portals with specific purposes – say, Portal A for creating groups, Portal -B for approving workflow requests, and Portal C for managing user profiles. Hence, you may want role -members to access Portal A only. - -1. On the **Add Criteria** dialog box, click **Show Advanced**. -2. Click **Add Expression**. A row with three drop-down lists is displayed. Use these to restrict - role members to one or more GroupID clients (such as Admin Center and a GroupID portal). -3. Select an option in the first drop-down list. - - - _Client Name:_ selecting this option would populate the names of all GroupID clients in the - third drop-down list. Clients are: - - - GroupID Management Shell - - GroupID Admin Center - - GroupID Mobile app - - Each GroupID portal (all portals are listed individually) - - This enables you to select a specific GroupID client, such as a specific portal, to restrict - role members to access this client only, or to allow them to access all except this client. - - - _Client Type:_ selecting this option would populate the different types of GroupID clients in - the third drop-down list. Client types are: - - - GroupID Management Shell - - GroupID Admin Center - - GroupID Mobile app - - GroupID portal (portals are not listed individually, so this option represents all GroupID - portals) - - This enables you to allow role members to access all clients of the same type, such as all - GroupID portals, or access all clients except this client type. - -4. In the second drop-down list, select: - - - _is exactly:_ indicates that role members can only access the client/client type you select in - the third drop-down list. - - _is not:_ indicates that role members can access all GroupID clients/client types except the - one you select in the third drop-down list. - -5. Values displayed in the third drop-down list depend on your selection in the first drop-down - list. - - - For client name, this list displays the names of all GroupID clients. Select a client. Based - on your selection in the second drop-down list, role members can either access this client - only or access all clients except this client. - - For client type, this list displays the GroupID client types. Select an option. Based on your - selection in the second drop-down list, role members can either access all clients of the - selected type or are denied access to all clients of the selected type. - -6. The ‘And’ or ‘Or’ operator applies when two or more expressions have been defined. Select: - - - _And:_ to apply all expressions to role members. - - _Or:_ to apply one of the expressions to role members. - - Click an operator to apply it. The tile changes to blue, indicating that it has been applied. - -7. Click **Save**. - -See Also - -- [Security Roles](/docs/directorymanager/11.0/signin/securityrole/overview.md) -- [Create a Security Role](/docs/directorymanager/11.0/signin/securityrole/create.md) -- [Manage Security Roles](/docs/directorymanager/11.0/signin/securityrole/manage.md) diff --git a/docs/directorymanager/11.0/signin/securityrole/manage.md b/docs/directorymanager/11.0/signin/securityrole/manage.md deleted file mode 100644 index a57b20cb9d..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/manage.md +++ /dev/null @@ -1,153 +0,0 @@ ---- -title: "Manage Security Roles" -description: "Manage Security Roles" -sidebar_position: 20 ---- - -# Manage Security Roles - -After creating a security role, you can manage various settings for it, such as tole criteria, -permissions, and policies. - -What do you want to do? - -- View Security Roles -- Enable or Disable a Role -- Change Role Priority -- Criteria -- Modify Role Permissions -- Define Policies for a Role -- Delete a Role - -## View Security Roles - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. - On the **Security Roles** page, the following information is displayed for a role: - - | Label | Description | - | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | Enable | Shows whether the security role is enabled or disabled. Use the toggle button for an enabled role to disable it and vice versa. Members of a disabled role cannot access GroupID. | - | Display name | The display name of the security role. | - | Priority | Each security role is assigned a value from 1-99, where 1 indicates the highest priority and 99 indicates the lowest priority. Role priority is unique for a role in an identity store. Role priority is used to resolve conflicts when a user has more than one role in GroupID. For example, when a user has two roles, Administrator and User, with role priority set to 1 and 25 respectively, then permissions and policies for the higher priority role (i.e., Administrator), will apply when the user logs into GroupID. | - | Criteria | Role criteria determines the users the role applies to. You can specify as container or group as criteria for a role. - In case of a container, all users residing in it are assigned the role. - For a group, all group members are assigned the role. | - | Description | A description for the security role. | - | Actions | - Click **Edit** for a security role to update its details, criteria, policies, and permissions. - Click the ellipsis button and select Delete to delete the security role. - Click the ellipsis button and select Copy to create a new security role by copying the respective role. | - -## Enable or Disable a Role - -You can disable a role to prevent its members from signing into GroupID. You can also enable a -disabled role to allow its members to access GroupID. By default, all new roles created for an -identity store are enabled. - -NOTE: To prevent an individual role member from accessing GroupID, you must remove him or her from -the group or container specified as role criteria. - -**To enable or disable a security role:** - -**Method 1:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, use the **Enable** toggle button for a role to enable or disable - it. -5. Click **Save**. - -**Method 2:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Update Security Role** page, use the toggle button in the top left corner to enable or - disable the role. -6. Click **Update Security Role**. -7. On the **Security Roles** page, click **Save**. - -## Change Role Priority - -While changing role priority, remember that the priority number must be unique for a role in an -identity store. - -**To change role priority:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. In the **Priority** box on the **Edit Security Role** page, change the value for role priority. - This value must fall in the range, 1-99, where 1 indicates the highest and 99 indicates the - lowest priority. See Priority. -6. Click **Update Security Role**. -7. On the **Security Roles** page, click **Save**. - -## Change Role Criteria - -By changing role criteria, you can specify a different set of users as members of a role. - -**To change role criteria:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, the **Criteria** area displays the role criteria. Click **Add - Criteria** to change it. On the **Add Criteria** dialog box, update the criteria. See the - [Security Role – Criteria](/docs/directorymanager/11.0/signin/securityrole/criteria.md) - topic for details. -6. Click **Update Security Role**. -7. On the **Security Roles** page, click **Save**. - -## Modify Role Permissions - -You can update the permissions assigned to a role. - -**To update role permissions:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Select what members can do** in the **Permissions** - area to change role permissions. -6. On the **Add Permissions** dialog box, select **Allow** for a permission to assign it to the - role. Select **Deny** for a permission to deny it to the role. To learn about the available - permissions, see the - [Security Role – Permissions](/docs/directorymanager/11.0/signin/securityrole/permissions.md) - topic. -7. After assigning the required permissions, click **OK**. -8. Click **Update Security Role**. -9. On the **Security Roles** page, click **Save**. - -## Define Policies for a Role - -To define policies for a security role, see the -[Security Role Policies](/docs/directorymanager/11.0/signin/securityrole/policy/overview.md) -topic. - -## Delete a Role - -When you delete a security role, role members will not be able to access GroupID. - -**To delete a role:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click the ellipsis button for a security role and select - **Delete** to delete it. -5. Click **Save**. - -See Also - -- [Security Roles](/docs/directorymanager/11.0/signin/securityrole/overview.md) -- [Create a Security Role](/docs/directorymanager/11.0/signin/securityrole/create.md) diff --git a/docs/directorymanager/11.0/signin/securityrole/overview.md b/docs/directorymanager/11.0/signin/securityrole/overview.md deleted file mode 100644 index 18a0561012..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/overview.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: "Security Roles" -description: "Security Roles" -sidebar_position: 40 ---- - -# Security Roles - -Security roles enable you to control access to GroupID and the directory. An identity store in -GroupID has the following built-in roles that you can assign to users: - -- **Administrator:** By default, this role has permissions on all functions that can be performed in - an identity store. -- **Helpdesk:** This role is available for helpdesk users, who can reset identity store account - passwords and unlock identity store accounts on behalf of other users. - - NOTE: The Helpdesk role is not available by default for a Microsoft Entra ID identity store. - -- **User:** This role can be assigned to standard users, who can create new groups, manage their - groups, update their directory profiles, and manage their direct reports. - -These roles are highly customizable. You can modify their display name, priority level, permissions, -policies, and more. If the built-in roles do not meet your specific needs, you can create custom -security roles. - -**View security role info** - -To view information about a security role, see the -[View Security Roles](/docs/directorymanager/11.0/signin/securityrole/manage.md#view-security-roles) -topic. - -**User policies and permissions** - -Settings defined for an identity store apply to all users while role-based permissions and policies -only apply to members of a role. See the -[Configure an Identity Store](/docs/directorymanager/11.0/signin/identitystore/configure/configure.md)topic. - -## Assign Distinct Roles to a User in Different GroupID Clients - -You can assign different roles to a user in different GroupID clients. For example, a user can have -the administrator role in GroupID Management Shell and the role of a standard user in a GroupID -portal. This flexibility is built into security roles using client-based criteria. See the -[Security Role – Criteria](/docs/directorymanager/11.0/signin/securityrole/criteria.md) -topic. - -GroupID clients include: - -- Admin Center -- All GroupID portals created using Admin Center -- GroupID Management Shell -- GroupID mobile app - -Consider the following scenario: - -- For the Administrator role, you allow role members to access one GroupID client: GroupID - Management Shell. User A is a member of the Administrator role, so it gets access to Management - Shell as an admin. User A cannot access any other GroupID client. -- For the User role, you allow role members to access the GroupID portal only. User A is a member of - the User role, so it gets access to the portal as a standard user. - -As a result, User A has two different roles in two GroupID clients. - -Not only that, a user can also have multiple roles in a GroupIDGroupID client, in which case role -priority is used to determine the access level of the user on the specific client. See -[Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - -To view the highest priority role of a user with respect to a GroupID client, see the -[Check the Roles of a User](/docs/directorymanager/11.0/signin/securityrole/checkrole.md) -topic. - -See Also - -- [Identity Stores](/docs/directorymanager/11.0/signin/identitystore/overview.md) -- [Create a Security Role](/docs/directorymanager/11.0/signin/securityrole/create.md) -- [Manage Security Roles](/docs/directorymanager/11.0/signin/securityrole/manage.md) diff --git a/docs/directorymanager/11.0/signin/securityrole/permissions.md b/docs/directorymanager/11.0/signin/securityrole/permissions.md deleted file mode 100644 index c7eb7ede06..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/permissions.md +++ /dev/null @@ -1,210 +0,0 @@ ---- -title: "Security Role – Permissions" -description: "Security Role – Permissions" -sidebar_position: 40 ---- - -# Security Role – Permissions - -You can allow or deny permissions to a security role on different GroupID functions. - -On the **Create Security Role/Copy Security Role/Update Security Role** page, click **Select what -members can do** in the **Permissions** area to grant permissions to role members. - -By default, all permissions displayed on the **Add Permissions** dialog box are denied to the new -role. Select the **Allow** option button for a permission to grant it to the role. To deny a -permission, select the **Deny** option button. After assigning the required permissions, click -**OK**. - -Permissions are grouped under the following heads, with each tab representing a different head: - -- [Users](#users) -- [Groups](#groups) -- [Admin Center](#admin-center) -- [Synchronize](#synchronize) -- [Password Management](#password-management) -- [Miscellaneous](#miscellaneous) -- [Container](#container) -- [Entitlement](#entitlement) - -## Users - -User-related permissions apply to all the GroupID clients that facilitate user management, such as -the GroupID portal, GroupID Management Shell, and the GroupID mobile app. - -Click the **Users** tab on the **Add Permissions** dialog box. - -Permissions are discussed in the following table: - -| | Permissions | Descriptions | -| --- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| 1. | Create Mailbox | Enables role members to create mailbox-enabled users. | -| 2. | Manage My Direct Reports | Enables role members to update the properties of their respective direct reports and add/remove them from the membership of groups. | -| 3. | Create Contact | Enables role members to create contact objects. | -| 4. | Create User | Enables role members to create users (both mail-enabled and non-mail enabled). | -| 5. | Delete | Enables role members to delete users from the directory. | -| 6. | Join/Leave on behalf of any user | Enables role members to add/remove any user from the membership of groups. | -| 7. | Join/Leave on behalf of Peer | Enables role members to add/remove their peers from the membership of groups. ‘Peers’ refer to users who report to the same manager as the user. | -| 8. | Manage Any Profile | Enables role members to update the profiles of other users. | -| 9. | Manage My Profile | Enables role members to update their directory profiles. | - -Remember, Generalized permissions override limited permissions. Hence, if **Manage My Profile** is -denied and **Manage Any Profile** allowed, role members can manage their own profiles as well. - -## Groups - -Group-related permissions apply to all the GroupID clients that facilitate group management, such as -the GroupID portal, GroupID Management Shell, and the GroupID mobile app. - -Click the **Groups** tab on the **Add Permissions** dialog box. - -Permissions are discussed in the following table: - -| | Permissions | Descriptions | -| --- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1. | Manage My Groups | Enables role members to modify the groups they own as primary owner, additional owner, and Exchange 2013/2016/2019 additional owner. Role members can update group properties, delete groups, expire groups, and more. | -| 2. | Create Static Group | Enables role members to create static (unmanaged) groups. | -| 3. | Create Smart Group | Enables role members to create Smart Groups and Dynasties (managed groups). | -| 4. | Manage Any Group | Enables role members to update the properties of any group, delete any group, expire any group, and more. | - -Remember, Generalized permissions override limited permissions. So, if **Manage My Groups** is -denied and **Manage Any Group** allowed, role members can manage all groups, including their own -groups. - -## Admin Center - -To manage permissions for Admin Center, click the **Admin Center** tab on the **Add Permissions** -dialog box. - -Permissions are discussed in the following table: - -| | Permissions | Descriptions | -| --- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 1. | Create Application | Enables role members to create a new application using the **Applications** node in Admin Center: This permission only allows role members to create an application from scratch. They cannot create an application by copying an existing one or create another instance of an application. | -| 2. | Create Data Source | Enables role members to create data sources for Synchronize jobs. | -| 3. | Create Identity Store | Enables role members to create identity stores in GroupID. | -| 4. | Manage Admin Center Settings | Enables role members to manage the following in Admin Center settings: - Add and remove question to the global question pool. - Add, edit, and remove GroupID licenses. - Download log files for GroupID. These options can be accessed by clicking the **Settings** button at the bottom of the left navigation pane in Admin Center. If this permission is denied, role members can view the question pool, licenses, and dump logs function as read-only. | -| 5. | Manage Application Design Settings | Enables role members to update the design settings for an application in Admin Center. Applications can be accessed using the **Applications** node in the left pane. If this permission is denied, design settings are displayed to role members as read-only. NOTE: The **Manage Applications** permission must be granted to the role as a prerequisite to the **Manage Application Design Settings** permission. | -| 6. | Manage Application Server Settings | Enables role members to update the server settings for an application in Admin Center. Applications can be accessed using the **Applications** node in the left pane. If this permission is denied, server settings are displayed to role members as read-only. NOTE: The **Manage Applications** permission must be granted to the role as a prerequisite to the **Manage Application Server Settings** permission. | -| 7. | Manage Applications | Enables role members to do the following using the **Applications** node in Admin Center: - Create new applications by copying an existing application, deploy instances of an application, and delete an application. - View the already created applications as read-only. NOTE: If you allow this permission to the role while denying the **Manage Application Server Settings** and **Manage Application Design Settings** permissions, role members will not be able to update the server and design settings for an application. These settings will be displayed as read-only. To enable them to update the server and design configurations for an application, this permission must be granted as a prerequisite along with the respective permission(s). | -| 8. | Manage Data Source | Enables role members to update and delete the data sources created for Synchronize jobs. | -| 9. | Manage Entitlement | **For an Active Directory identity store:** Enables role members to specify and manage file servers for entitlement analysis in an Active Directory identity store. **For a Microsoft Entra ID identity store:** Enables role members to specify and manage SharePoint sites for entitlement analysis in a Microsoft Entra ID identity store. If this permission is denied, the Entitlement page in identity store properties will be read-only for role members. NOTE: The **Manage Identity Store** permission must be granted to the role as a prerequisite to the **Manage Entitlement** permission. | -| 10. | Manage Identity Store | Enables role members to do the following using the **Identity Stores** node in Admin Center: - Disable and delete identity stores. - View the properties of identity stores as read-only. NOTE: To enable role members to define and update identity store properties, you must grant the **Manage Identity Store** permission along with the following identity store-specific permissions: - Manage Entitlement - Manage Identity Store Configurations - Manage Identity Store General Info - Manage Replication - Manage Scheduling - Manage Security Roles - Manage Workflows If you deny any of the above permissions, the respective area in identity store properties will be read-only. | -| 11. | Manage Identity Store Configurations | Enables role members to manage all the configurations for an identity store. These configurations are displayed when you select the **Configurations** option in identity store properties. If this permission is denied, these configurations will be read-only for role members. NOTE: The **Manage Identity Store** permission must be granted to the role as a prerequisite to the **Manage Identity Store Configurations** permission. | -| 12. | Manage Identity Store General Info | Enables role members to: - Update the general info for an identity store, such as the identity store name and the service account used to connect to the provider. - Include/exclude child domains from replication. - Set DC priority. If this permission is denied, the Identity Store Detail page in identity store properties will be read-only for role members. NOTE: The **Manage Identity Store** permission must be granted to the role as a prerequisite to the **Manage Identity Store General Info** permission. | -| 13. | Manage Identity Store Link | Enables role members to create, update, and delete identity store links. | -| 14. | Manage Notifications Editor | Enables role members to manage the Notification Editor in Admin Center, such as search and edit notification templates. The Notification Editor can be accessed in any of the following ways: - Using the Notification Editor button at the bottom of the left navigation pane in Admin Center. - Using the Notification Editor button on the Notification Queue page. If this permission is denied, the following happens: - The Notification Editor button on the Notification Queue page is disabled. - When launched using the Notification Editor button in the navigation pane, the Notification Editor page is displayed as read-only. | -| 15. | Manage Notifications Queue | Enables role members to manage the notification queue in Admin Center, such as resend and delete queued notifications . The Notification Queue page can be accessed using the Notifications node in the left pane. If this permission is denied, role members can only view the page as read-only. | -| 16. | Manage Replication | Enables role members to manage replication in GroupID. Role members will be able to manage the following: - Global replication settings on the Replication page, that can be accessed by clicking the Replication node in Admin Center. - Replication settings for an identity store, that are controlled from within that identity store. - Run replication for an identity store from the identity store card pinned on the Identity Stores page. If this permission is denied, the Replication pages for both global and identity store settings will be read-only, while the replication option will not be available on the identity store card. NOTE: The Manage Identity Store permission must be granted to the role as a prerequisite to the Manage Replication permission. | -| 17. | Manage SAML | Enables role members to access GroupID Authenticate and manage: - GroupID as an identity provider - GroupID as a service provider | -| 18. | Manage Scheduling | Enables role members to create, update, and delete scheduled jobs for the identity store. If this permission is denied, the Scheduling page in identity store properties will be read-only for role members. NOTE: The **Manage Identity Store** permission must be granted to the role as a prerequisite to the **Manage Scheduling** permission. | -| 19. | Manage Security Roles | Enables role members to manage security roles in the identity store, such as create, update, and delete roles. Role members would also be able to manage policies and permissions for roles. If this permission is denied, security roles and their configurations in identity store properties will be read-only for role members. NOTE: The **Manage Identity Store** permission must be granted to the role as a prerequisite to the **Manage Security Roles** permission. | -| 20. | Manage SMS Gateways | Enables role members to create, update, and delete SMS gateway accounts in Admin Center. If this permission is denied, role members can view the gateway accounts as read-only. | -| 21. | Manage Workflows | Enables role members to manage workflows in the identity store, such as create, update, and delete workflows. Role members can also manage advanced workflow settings for the identity store. If this permission is denied, workflows and related settings in identity store properties will be read-only for role members. NOTE: The **Manage Identity Store** permission must be granted to the role as a prerequisite to the **Manage Workflows** permission. | - -## Synchronize - -To manage permissions for Synchronize in the GroupID portal, click the **Synchronize** tab on the -**Add Permissions** dialog box. - -Permissions are discussed in the following table: - -| | Permissions | Descriptions | -| --- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1. | Create Job | Enables role members to create Synchronize jobs and job collections in the identity store. | -| 2. | Delete Job | Enables role members to delete the Synchronize jobs and job collections for which they are the owners. To enable them to delete any job, grant the **View Any Job** permission with this permission. | -| 3. | Edit Job | Enables role members to edit Synchronize jobs and job collections in the identity store, such as change field mappings, apply transformations, update notification options, schedule the job run, and add/remove jobs from a job collection. Role members can only edit the jobs and job collections for which they are the owners. To enable them to edit any job, grant the **View Any Job** permission with this permission. | -| 4. | Run Job | Enables role members to manually run the jobs and job collections for which they are the owners. To enable them to run any job, grant the **View Any Job** permission with this permission. | -| 5. | View Any Job | Enables role members to view a list of all jobs and job collections in the identity store, regardless of whether they are the job owner or not. NOTE: If you only grant this permission to the role, jobs and job collections will be displayed to role members as read-only. To enable them to edit, delete, or run jobs and job collections, this permission must be granted as a prerequisite along with the respective permission(s). | - -## Password Management - -To manage password reset and account unlock permissions, click the **Password Management** tab on -the **Add Permissions** dialog box. - -End-users can manage their identity store account passwords and unlock their accounts using the -GroupID portal while helpdesk users can reset passwords and unlock accounts for other users through -Admin Center. - -Permissions are discussed in the following table: - -| | Permissions | Descriptions | -| --- | --------------------- | ---------------------------------------------------------------------------------------- | -| 1. | Unlock My Account | Enables role members to unlock their identity store account. | -| 2. | Manage Linked Account | Enables role members to link their accounts that exist in different identity stores. | -| 3. | Change My Password | Enables role members to change their identity store account password. | -| 4. | Reset Any Password | Enables helpdesk users to reset the account password for any user in the identity store. | -| 5. | Reset My Password | Enables role members to reset their identity store account password. | -| 6. | Unenroll | Enables helpdesk users to unenroll a user’s identity store account in GroupID. | -| 7. | Unlock Any Account | Enables helpdesk users to unlock the identity store account for any user. | - -NOTE: Account unlock is not supported in a Microsoft Entra ID identity store. - -Remember, Generalized permissions override limited permissions. For example, if Unlock My Account is -denied and Unlock Any Account allowed, role members can unlock all accounts, including their own. - -## Miscellaneous - -To grant permissions on miscellaneous functions in GroupID, click the **Misc** tab on the **Add -Permissions** dialog box. - -Permissions are discussed in the following table: - -| | Permissions | Descriptions | -| --- | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1. | Enable Login to Service Provider | Enables role members to log into third-party applications using GroupID as an identity provider. | -| 2. | Manage All Requests | Enables roles members to approve/deny workflow requests, even when they are not designated as approvers of those requests. | -| 3. | Manage Report | Enables role members to create, edit, and delete reports for the identity store in the GroupID portal. Role members will not be able to view and download the reports. | -| 4. | View and Download Report | Enables role members to view and download the reports generated for the identity store in the GroupID portal. | - -## Container - -To manage permissions related to containers in the directory, click the **Container** tab on the -**Add Permissions** dialog box. - -Permissions are discussed in the following table: - -| | Permissions | Descriptions | -| --- | ---------------- | -------------------------------------------------------------------------------- | -| 1. | Create Container | Enables role members to create new containers in the directory (identity store). | - -## Entitlement - -To grant permissions on entitlements in the GroupID portal, click the **Entitlement** tab on the -**Add Permissions** dialog box. - -For an Active Directory identity store, this tab lists the file servers that have been selected for -permissions analysis on the **Entitlement** page. Click a file server to manage permissions for it. - -Permissions are discussed in the following table: - -| | Permissions | Descriptions | -| --- | ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1. | Permission Set | Select the kind of permission set to grant to role members. - Administrative: Grants all the effective NTFS permissions to role members on all the file server shares. - Basic: Enables role members to navigate within the file server to view shared resources and the permissions assigned on them. You can change the permission set for both Administrative and Basic. Use the toggle button for each of the listed permissions to allow or deny it. | -| 2. | Allow user to navigate to this share | Enables role members to navigate this file server and explore the shared resources along with the permissions assigned on them. If this check box is not selected, role members will be able to view basic information about the file server only. They will not be able to navigate the file server to view the shares and permissions. | -| 3. | Add new user / group | Enables role members to search and select users/groups from the directory and grant permissions to them on one or more shares on the file server. The **Type** column lists the effective NTFS permissions. While adding users, role members will be able to grant permissions that you enable here. | -| 4. | Modify user / group | Enables role members to update the permissions assigned to users and groups on file server shares. The **Type** column lists the effective NTFS permissions. Role members will only be able to modify the permissions that you enable here. | -| 5. | Remove user / group | Enables role members to remove users and groups from the permission list of shares on the file server. Removed users and groups will not be able to access the respective share on the file server. | - -For a Microsoft Entra ID identity store, this tab lists the SharePoint sites that have been selected -for permissions analysis on the **Entitlement** page. Click a site to manage permissions for it. - -Permissions are discussed in the following table: - -| | Permissions | Descriptions | -| --- | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1. | Permission Set | Select the kind of permission set to grant to role members. - Administrative: Grants all the effective permissions to role members on all the document libraries in the site. - Basic: Enables role members to navigate within the site to view the document libraries and the permissions assigned on them. You can change the permission set for both Administrative and Basic. Use the toggle button for each of the listed permissions to allow or deny it. | -| 2. | Allow user to navigate to this share | Enables role members to navigate this SharePoint site and explore the document libraries along with the permissions assigned on them. If this check box is not selected, role members will be able to view basic information about the site only. They will not be able to navigate the site to view the document libraries and permissions. | -| 3. | Add new user | Enables role members to search and select users from the directory and grant permissions to them on one or more document libraries in the site. NOTE: The facility to search and select groups is not available. Groups have to be added from SharePoint. Using GroupID, role members can manage group permissions. The **Type** column lists the effective permissions. While adding users, role members will be able to grant permissions that you enable here. | -| 4. | Modify user / group | Enables role members to update the permissions assigned to users and groups on document libraries in the site. The **Type** column lists the effective permissions. Role members will only be able to modify the permissions that you enable here. | -| 5. | Remove user / group | Enables role members to remove users and groups from the permission list of document libraries in the site. Removed users and groups will not be able to access the respective document library in the site. | - -NOTE: For more information on role permissions, see the -[User Roles in Microsoft Entra ID and GroupID](/docs/directorymanager/11.0/signin/identitystore/advsentraid.md#user-roles-in-microsoft-entra-id-and-groupid) -topic. - -**See Also** - -- [Security Roles](/docs/directorymanager/11.0/signin/securityrole/overview.md) -- [Create a Security Role](/docs/directorymanager/11.0/signin/securityrole/create.md) -- [Manage Security Roles](/docs/directorymanager/11.0/signin/securityrole/manage.md) diff --git a/docs/directorymanager/11.0/signin/securityrole/policy/_category_.json b/docs/directorymanager/11.0/signin/securityrole/policy/_category_.json deleted file mode 100644 index 796a9eb6c0..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/policy/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Security Role Policies", - "position": 60, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md b/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md deleted file mode 100644 index 285aaa693f..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: "Authentication Policy for Security Roles" -description: "Authentication Policy for Security Roles" -sidebar_position: 50 ---- - -# Authentication Policy for Security Roles - -Having enabled and configured authentication types for an identity store, you can: - -- Enforce authentication type(s) for a user role for multifactor authentication (MFA). Role members - must use each of the enforced authentication types for account enrollment and authentication. - When not enforced, role members can enroll using any authentication type that has been enabled for - the identity store. -- Enable second factor authentication (SFA) for a security role in an identity store. - -NOTE: For MFA and SFA to work for an identity store, make sure you enable enrollment for it. See the -[Enable Enrollment](/docs/directorymanager/11.0/signin/identitystore/configure/authtypes.md#enable-enrollment) -topic. - -What do you want to do? - -- [Enforce Authentication Types for Multifactor Authentication](#enforce-authentication-types-for-multifactor-authentication) -- [Enable Second Factor Authentication](#enable-second-factor-authentication) - -## Enforce Authentication Types for Multifactor Authentication - -Before enforcing an authentication type for a security role, make sure it is enabled and configured -for the identity store. - -**To enforce authentication types:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Authentication** tab. -7. In the **Multifactor Authentication Policies** area, select the **Enforced** check box for an - authentication type to enforce it for the role. The **Enforced** box displays the number of - authentication types you enforced for the role. - Role members must enroll and authenticate for multifactor authentication using each of the - enforced authentication types. -8. In the **Chosen by End User** box, specify a number. Role members must use this x number of - authentication types, in addition to the enforced authentication types, for multifactor - enrollment and authentication. - Let’s assume five authentication types have been enabled and configured for the identity store. - - - When you do not enforce any authentication type and specify 2 in the **Chosen by End User** - box, role members can use any two authentication types from the five enabled types for - multifactor authentication. - - However, when you enforce two authentication types and specify 1 in the **Chosen by End User** - box, role members must enroll and authenticate by the two enforced types, and then choose - another one from the remaining three enabled authentication types, for multifactor - authentication. - -9. Click **OK**. -10. On the **Edit Security Role** page, click **Update Security Role**. -11. On the **Security Roles** page, click **Save**. - -## Enable Second Factor Authentication - -You can enable second factor authentication for a security role in an identity store. - -For second factor authentication, role members can enroll using any of the authentication types -enabled and configured for the identity store. - -Users must pass second factor authentication when signing into Admin Center, GroupID portal, and the -GroupID mobile app. - -**To enable second factor authentication for a role:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Authentication** tab. -7. Use the toggle button for **Second Factor Authentication** to enable or disable it for the - security role. -8. Click **OK**. -9. On the **Edit Security Role** page, click **Update Security Role**. -10. On the **Security Roles** page, click **Save**. - -**See Also** - -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) -- [Security Role Policies](/docs/directorymanager/11.0/signin/securityrole/policy/overview.md) diff --git a/docs/directorymanager/11.0/signin/securityrole/policy/groupowners.md b/docs/directorymanager/11.0/signin/securityrole/policy/groupowners.md deleted file mode 100644 index 5fc427dd81..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/policy/groupowners.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: "Group Owners Policy" -description: "Group Owners Policy" -sidebar_position: 10 ---- - -# Group Owners Policy - -The Group Owners policy enables you to specify a group ownership criterion that role members must -fulfill when they create or update static groups and Smart Groups using the GroupID portal or -GroupID Management Shell. You can: - -- Control whether groups must have a primary owner. -- Specify a range of additional owners, say 2-6, which implies that a group must have any number of - additional owners in this range. - -What do you want to do? - -- [Enforce a Primary Owner](#enforce-a-primary-owner) -- [Enforce Additional Owners](#enforce-additional-owners) - -## Enforce a Primary Owner - -The Group Owners policy ensures that groups that are created and managed using GroupID have a -primary owner. This will substantially reduce the occurrence of orphan groups in the directory. - -When a new group is created using GroupID, the logged-on user is set as its primary owner. With the -primary owner enforced under the Group Owners policy, the user who creates or manages the group can -change the primary owner, but cannot remove it. - -**To enforce a primary owner:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. - The **Add Policies** pane is displayed with the **Group Owners** tab in view. -6. Select the **Primary Owner is required** check box to prevent role members from removing the - group's primary owner while creating or updating groups. They can, however, change the primary - owner. - If this check box is clear, role members can choose to remove the primary owner while creating or - updating groups. - - NOTE: In a Microsoft Entra ID identity store, a primary owner must be specified for groups, - regardless of whether the Group Owners policy enforces it or not. - -7. Click **OK**. -8. On the **Edit Security Role** page, click **Update Security Role**. -9. On the **Security Roles** page, click **Save**. - -## Enforce Additional Owners - -You can specify a range of additional owners, say 2-10, so that role members cannot create or update -a group unless its number of additional owners fall in the given range. - -By default, there is no restriction on the number of additional owners. Groups created or updated by -role members can have any number of additional owners and even no additional owner. - -**To enforce additional owners:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. - The **Add Policies** pane is displayed with the **Group Owners** tab in view. -6. In the **Minimum** box, type or select a number in the range, 0-3, to set the minimum number of - additional owners that a group must have, when created or updated by a role member. - The default value ‘0’ indicates that role members can create groups with any number of additional - owners or even without additional owners. -7. In the **Maximum** box, type or select a number in the range, 0-100, to set the maximum number of - additional owners that a group can have, when created or updated by a role member. This value - should either be equal or higher than the value provided in the **Minimum** box. -8. Click **OK**. -9. On the **Edit Security Role** page, click **Update Security Role**. -10. On the **Security Roles** page, click **Save**. - -NOTE: When additional owners have been added using an earlier version of GroupID, and their number -exceeds the value of this setting, GroupID will retain them. However, more additional owners cannot -be added. - -**See Also** - -- [Security Roles](/docs/directorymanager/11.0/signin/securityrole/overview.md) -- [Security Role Policies](/docs/directorymanager/11.0/signin/securityrole/policy/overview.md) diff --git a/docs/directorymanager/11.0/signin/securityrole/policy/helpdesk.md b/docs/directorymanager/11.0/signin/securityrole/policy/helpdesk.md deleted file mode 100644 index d6079983ba..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/policy/helpdesk.md +++ /dev/null @@ -1,288 +0,0 @@ ---- -title: "Helpdesk Policy" -description: "Helpdesk Policy" -sidebar_position: 70 ---- - -# Helpdesk Policy - -The Helpdesk policy is meant for the helpdesk role in an identity store. - -Helpdesk role members use the Helpdesk node in Admin Center to reset the domain account passwords -and unlock accounts of identity store users. They can also unenroll identity store accounts of users -in GroupID. Moreover, they can view the actions that users perform in the identity store, such as -password change/reset, account enrollment/unenrollment, and the date and time they logged into -GroupID. - -NOTE: The helpdesk role must be granted the following permissions in an identity store to enable -them to perform their job: - -- Reset Any Password -- Unlock Any Account -- Unenroll - -If these permissions are denied, the Helpdesk policy would have no impact, as role members would not -be authorized to perform the respective operations. See -[Password Management](/docs/directorymanager/11.0/signin/securityrole/permissions.md#password-management) -in the -[Security Role – Permissions](/docs/directorymanager/11.0/signin/securityrole/permissions.md) -topic. - -The Helpdesk policy defines: - -- Whether helpdesk role members should operate under the restricted or unrestricted mode when - performing the account unlock, account unenroll, and password reset functions. -- The password reset options available to helpdesk role members. - -NOTE: Account unlock is not supported in a Microsoft Entra ID identity store. - -What do you want to do? - -- [Set Restricted Mode](#set-restricted-mode) - - [Limit Helpdesk to Manage Users in a Specific OU](#limit-helpdesk-to-manage-users-in-a-specific-ou) - - [Enforce Helpdesk to Authenticate Users](#enforce-helpdesk-to-authenticate-users) - - [Enforce Helpdesk to Use Security Questions for Authentication](#enforce-helpdesk-to-use-security-questions-for-authentication) -- [Set Unrestricted Mode](#set-unrestricted-mode) -- [Specify Password Reset Options](#specify-password-reset-options) - - [Specify a Password Reset Method](#specify-a-password-reset-method) - - [Force Users to Change Password on Next Logon](#force-users-to-change-password-on-next-logon) - -## Set Restricted Mode - -You can apply all or any of the following restrictions to a helpdesk role under the restricted mode: - -- Limit helpdesk users to reset passwords, unlock user accounts, and unenroll accounts that reside - in a specific OU. -- Enforce helpdesk users to authenticate end-users before resetting their passwords or unlocking - their identity store accounts. -- Specify the minimum number of security questions helpdesk users must use to authenticate - end-users. - -Under this mode, helpdesk role members cannot perform password reset and account unlock for -unenrolled users. - -### Limit Helpdesk to Manage Users in a Specific OU - -You can specify a container to limit helpdesk users to reset passwords, unenroll users, and unlock -accounts of users that reside in that container. - -**To specify a container:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. This can be the built-in - Helpdesk role or any role that you want to define the Helpdesk policy for. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Helpdesk** tab. -7. Select the **Restricted Mode** tile. -8. Click **Add** next to **Add Container**. Then select a container on the **Add Container** dialog - box and click **Add**. The container name is displayed on the **Helpdesk** tab. - Helpdesk users can reset passwords, unenroll users, and unlock the accounts of users residing in - the specified container only. When no container is selected, helpdesk users can perform these - operations for all users in the identity store. - - - **To change the container:** Click **Modify Container** and use the **Add Container** dialog - box to select another container. - - **To remove the container:** Click **Remove** for a container to remove it. - -9. Click **OK**. -10. On the **Edit Security Role** page, click **Update Security Role**. -11. On the **Security Roles** page, click **Save**. - -### Enforce Helpdesk to Authenticate Users - -Under the restricted mode, you can enforce helpdesk users to authenticate users before resetting -their passwords and unlocking their accounts. - -On receiving an account unlock or password reset request from an end-user, the helpdesk user must -authenticate the user over phone before carrying out the requested operation. This authentication is -done through all or some of the authentication types the user's account is enrolled with. - -**To enforce authentication:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. This can be the built-in - Helpdesk role or any role that you want to define the Helpdesk policy for. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Helpdesk** tab. -7. Select the **Restricted Mode** tile. -8. Select the **Do not allow Helpdesk to reset password or unlock account without User's - interaction** check box, and then select one of the following options: - - - **Enforce multifactor authentication as applies to end user:** to force helpdesk role members - to authenticate an end-user as per the authentication policy defined for the security role of - that user. See - the[Enforce Authentication Types for Multifactor Authentication](/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md#enforce-authentication-types-for-multifactor-authentication) - topic. - - Or - - - **Enforce at least selected level of multifactor authentication:** to force helpdesk role - members to authenticate end-users with x number of authentication types. Specify the number of - authentication types in the box (say, 2). Suppose an end-user is enrolled with 4 - authentication types. A helpdesk user can choose any 2 of these types to authenticate that - user. - - NOTE: Helpdesk users cannot authenticate end-users with the Linked account, Windows Hello, and - YubiKey authentication types. - -9. Click **OK**. -10. On the **Edit Security Role** page, click **Update Security Role**. -11. On the **Security Roles** page, click **Save**. - -### Enforce Helpdesk to Use Security Questions for Authentication - -You can specify the minimum number of security questions helpdesk role members must use to -authenticate end-users before unlocking their identity store accounts or resetting their passwords. - -RECOMMENDED: As a prerequisite to applying this setting, make sure that the Security Questions -authentication type is enabled and configured for the identity store, as well as enforced as an -account enrollment method for security roles. See the -[Set up Authentication via Security Questions](/docs/directorymanager/11.0/signin/authpolicy/setupauth/securityquestions.md) -topic. - -**To enforce security questions for authentication:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. This can be the built-in - Helpdesk role or any role that you want to define the Helpdesk policy for. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Helpdesk** tab. -7. Select the **Restricted Mode** tile. -8. Select the **Helpdesk must verify answers of at least x Questions** check box and specify a - number that indicates the number of questions to be answered. - For security and privacy concerns, answers to security questions are not visible to helpdesk - users. Helpdesk users have to type in the answers that end-users provide over phone for - verification. - - NOTE: If a user has not enrolled his or her account using security questions, the helpdesk user - will get an error message when he or she attempts to authenticate this user for password - reset/account unlock. - -9. Click **OK**. -10. On the **Edit Security Role** page, click **Update Security Role**. -11. On the **Security Roles** page, click **Save**. - -## Set Unrestricted Mode - -The unrestricted mode enables helpdesk users to reset passwords and unlock accounts of identity -store users without authenticating them through the authentication types(s) they enrolled their -accounts with. - -- On receiving an account unlock request from an end-user, a helpdesk user operating under the - unrestricted mode can directly unlock the account of the requester. -- On receiving a password reset request from an end-user, a helpdesk user operating under this mode - can directly reset the password or send a secure password reset link to the requester. See the - [Specify a Password Reset Method](#specify-a-password-reset-method) topic. - -**To set the unrestricted mode:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. This can be the built-in - Helpdesk role or any role that you want to define the Helpdesk policy for. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Helpdesk** tab. -7. Click the **Unrestricted Mode** tile. -8. Click **OK**. -9. On the **Edit Security Role** page, click **Update Security Role**. -10. On the **Security Roles** page, click **Save**. - -## Specify Password Reset Options - -As part of the Helpdesk policy, you can: - -- Enable helpdesk role members to generate a new password or a secure password reset link, or both, - and communicate it to the end-users. -- Force end-users to change the password the next time they sign to their workstations. - -Remember, These settings are available if the _Reset Any Password_ permission is granted to the -Helpdesk role in the identity store. - -### Specify a Password Reset Method - -You can enable helpdesk role members to reset user account passwords by any of the following -methods, or limit them to use one of these methods: - -- Generate a new password and communicate it to the end-user by SMS, email, or both mediums. -- Generate a secure password reset link and send it to the end-user by SMS or email or both. The - user must click this link to reset his or her password. - -**To specify a password reset method:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. This can be the built-in - Helpdesk role or any role that you want to define the Helpdesk policy for. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Helpdesk** tab. -7. Select one or both of the following options to specify the password reset method: - - - **Allow Helpdesk to Reset Password** - Select this check box to enable helpdesk users to - generate new passwords and communicate them to end-users by SMS or email. Clear this check box - to prevent helpdesk role members from generating new passwords. - - **Allow Helpdesk to Send Secure Password Link to End User** - Select this check box to enable - helpdesk users to generate a secure password reset link and send it to end-users by SMS or - email or both. End-users must click this link to reset their identity store passwords. - - When you select both the **Allow Helpdesk to Reset Password** and **Allow Helpdesk to Send - Secure Password Link to End User** check boxes, helpdesk role members can use any method to - reset an end user's password. - -8. Click **OK**. -9. On the **Edit Security Role** page, click **Update Security Role**. -10. On the **Security Roles** page, click **Save**. - -NOTE: (1) An SMS gateway account must be linked with the identity store for an SMS to be sent on the -end-users' mobile phones. See the -[Link an SMS Gateway Account to an Identity Store](/docs/directorymanager/11.0/signin/identitystore/configure/smsauthentication.md#link-an-sms-gateway-account-to-an-identity-store) -topic. - (2) An SMTP server must be configured for the identity store for email to be sent to end-users. See -the -[Configure an SMTP Server](/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md) -topic. - -### Force Users to Change Password on Next Logon - -When a helpdesk user resets the password of an end-user, it's always safe to force the end-user to -change the password the next time they login to their workstations. - -**To force password change:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. This can be the built-in - Helpdesk role or any role that you want to define the Helpdesk policy for. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Helpdesk** tab. -7. Select the **Users must change password at next logon** check box to force users to change their - passwords when they login to their workstations for the first time after password reset. -8. Click **OK**. -9. On the **Edit Security Role** page, click **Update Security Role**. -10. On the **Security Roles** page, click **Save**. - -**See Also** - -- [Security Roles](/docs/directorymanager/11.0/signin/securityrole/overview.md) -- [Security Role Policies](/docs/directorymanager/11.0/signin/securityrole/policy/overview.md) -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) diff --git a/docs/directorymanager/11.0/signin/securityrole/policy/newobject.md b/docs/directorymanager/11.0/signin/securityrole/policy/newobject.md deleted file mode 100644 index fa2835cd53..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/policy/newobject.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -title: "New Object Policy" -description: "New Object Policy" -sidebar_position: 30 ---- - -# New Object Policy - -The New Object policy applies when role members create directory objects using the GroupID portal or -GroupID Management Shell. Use this policy to: - -- Limit role members to create new directory objects in the OUs they reside in respectively. - - OR - -- Specify one or more OUs to limit object creation to those. Separate OUs can be specified for - different object types. - -You can specify one or more OUs for an object type. For example, you can specify OUA and OUB for -Group objects and OUC for Mailbox objects, so that role members can create groups in OUA and OUB, -and mailboxes in OUC. - -By default, or when no OU is set for an object type, role members can select any OU in the identity -store to create objects of that type. For example, when no OU is specified for the User object, role -members can create user objects in any OU in the identity store. - -NOTE: (1) When a user has multiple roles in an identity store with a different New Object policy for -each role, then the policies configured for all roles apply to the user. Hence, a user with three -roles - where a different OU for the Group object is specified for each role - can create groups in -any of the three OUs. -(2( The New Object policy does not apply to a Microsoft Entra ID identity store. - -What do you want to do? - -- [Limit Object Creation to the OU the User Resides in](#limit-object-creation-to-the-ou-the-user-resides-in) -- [Restrict Role Members to Create Objects in Specific OUs](#restrict-role-members-to-create-objects-in-specific-ous) -- [Remove an OU](#remove-an-ou) - -## Limit Object Creation to the OU the User Resides in - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **New Object** tab. -7. Select the **Users can create objects only in their own container** check box to limit role - members to create directory objects in the organizational unit they reside in respectively. - Selecting this option disables the remaining options on the tab. -8. Click **OK**. -9. On the **Edit Security Role** page, click **Update Security Role**. -10. On the **Security Roles** page, click **Save**. - -NOTE: When role members create a new object, the _Container_ option shows the distinguished name of -the OU the logged-in user resides in as read-only. - -## Restrict Role Members to Create Objects in Specific OUs - -You can specify one or more containers for an object type (say Group) to restrict role members to -create group objects in those container(s) only. - -**To specify OU(s) for object creation:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **New Object** tab. -7. Click **Add** and select an object type to specify the container(s) for. -8. On the **Add Container** dialog box, select one or more containers where role members can create - the particular objects. Then click **Add**. The container(s) are displayed with the name of the - respective object type. -9. You can choose to set a container for all object types. Click the **Copy** button for a container - and then click **Yes** on the **Copy Container** message box. The container is displayed with all - object types. -10. Click **OK**. -11. On the **Edit Security Role** page, click **Update Security Role**. -12. On the **Security Roles** page, click **Save**. - -NOTE: When role members create a new object, the _Container_ option shows the containers specified -for the respective object type. The user can select the desired container to create the object -there. When one container is specified, the _Container_ option displays its distinguished name as -read-only. - -## Remove an OU - -You can remove a container to prevent role members from creating objects in it. When you remove all -containers for an object type, role members can create the particular objects in any container in -the directory. - -**To remove a container:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **New Object** tab. -7. For each object type, the allowed containers are listed with it. - - - Click **Remove** for a container to remove it. - - Click **Remove All** for an object type to remove all containers for it. - -8. Click **OK**. -9. On the **Edit Security Role** page, click **Update Security Role**. -10. On the **Security Roles** page, click **Save**. - -**See Also** - -- [Security Roles](/docs/directorymanager/11.0/signin/securityrole/overview.md) -- [Security Role Policies](/docs/directorymanager/11.0/signin/securityrole/policy/overview.md) diff --git a/docs/directorymanager/11.0/signin/securityrole/policy/overview.md b/docs/directorymanager/11.0/signin/securityrole/policy/overview.md deleted file mode 100644 index e3740082b0..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/policy/overview.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: "Security Role Policies" -description: "Security Role Policies" -sidebar_position: 60 ---- - -# Security Role Policies - -You can define policies for security roles. Along with role permissions, these policies also control -what role members can do in GroupID. - -You can define the following policies for a role: - -- Group Owners Policy -- Group Name Prefixes Policy -- New Object Policy -- Search Policy -- Authentication Policy -- Password Policy -- Helpdesk Policy -- Synchronize Policy -- Query Designer Policy - -In this way, you can create security roles with varying degrees of policy restrictions. - -NOTE: For users with multiple roles, the policies specified for the highest priority role apply (see -[Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md)). The _Search -policy_, _New Object policy_, and _Group Name Prefixes_ policy, however, apply with respect to all -assigned roles. For example, if different search containers are specified for two different roles of -a user, that user can search and view objects in both containers. - -**See Also** - -- [Security Roles](/docs/directorymanager/11.0/signin/securityrole/overview.md) -- [Create a Security Role](/docs/directorymanager/11.0/signin/securityrole/create.md) -- [Manage Security Roles](/docs/directorymanager/11.0/signin/securityrole/manage.md) -- [Group Owners Policy](/docs/directorymanager/11.0/signin/securityrole/policy/groupowners.md) -- [Set Group Name Prefixes](/docs/directorymanager/11.0/signin/identitystore/configure/prefixes.md) -- [New Object Policy](/docs/directorymanager/11.0/signin/securityrole/policy/newobject.md) -- [Search Policy](/docs/directorymanager/11.0/signin/securityrole/policy/search.md) -- [Authentication Policy for Security Roles](/docs/directorymanager/11.0/signin/securityrole/policy/authentication.md) -- [Set a Password Policy ](/docs/directorymanager/11.0/signin/securityrole/policy/password.md) -- [Helpdesk Policy](/docs/directorymanager/11.0/signin/securityrole/policy/helpdesk.md) -- [Synchronize Policy](/docs/directorymanager/11.0/signin/securityrole/policy/synchronize.md) -- [ Query Designer Policy](/docs/directorymanager/11.0/signin/securityrole/policy/querydesigner.md) diff --git a/docs/directorymanager/11.0/signin/securityrole/policy/password.md b/docs/directorymanager/11.0/signin/securityrole/policy/password.md deleted file mode 100644 index 547d427876..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/policy/password.md +++ /dev/null @@ -1,143 +0,0 @@ ---- -title: "Set a Password Policy" -description: "Set a Password Policy" -sidebar_position: 60 ---- - -# Set a Password Policy - -Using GroupID, you can implement a Password policy (a) for an identity store, (b) for security roles -in an identity store, or (c) both at the identity store and role levels. - -- For an identity store, you can specify rules and restrictions for identity store account - passwords. -- For a security role, you can specify validation checks for passwords that role members create for - their identity store accounts using GroupID. Hence, password validation checks are role-specific - -The Password policy also enables you to manage settings related to security questions and account -lockout for security roles in an identity store. - -What do you want to do? - -- [Set Password Restrictions and Rules for an Identity Store](#set-password-restrictions-and-rules-for-an-identity-store) -- [Define Security Question Settings for a Security Role](#define-security-question-settings-for-a-security-role) -- [Specify an Authentication Lockout Policy for a Security Role](#specify-an-authentication-lockout-policy-for-a-security-role) -- [Specify Password Validation Checks for a Security Role](#specify-password-validation-checks-for-a-security-role) - -## Set Password Restrictions and Rules for an Identity Store - -See the -[Configure Password Options](/docs/directorymanager/11.0/signin/identitystore/configure/passwordoptions.md) -topic. - -## Define Security Question Settings for a Security Role - -You can specify certain settings related to security questions for user roles in an identity store. -As a result, different roles in an identity store can have different settings for the following: - -- the number of questions role members must select to enroll their account in GroupID -- the minimum number of characters an answer should contain - -**To specify settings for security questions:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Password** tab. - The following settings in the **Password Policies** area relate to security questions: - - | Setting | Description | - | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | Number of Questions | The number of security questions role members must select while enrolling their accounts in GroupID for multifactor authentication or second factor authentication. The default number is 4. Changing the number of security questions for a role has no impact on already enrolled role members unless they update their security questions information. | - | Minimum Answer Length | The minimum number of characters that a role member must type when saving the answer to a security question at the time of account enrollment. Answers with less than the specified number of characters will not be saved. | - -7. Click **OK**. -8. On the **Edit Security Role** page, click **Update Security Role**. -9. On the **Security Roles** page, click **Save**. - -## Specify an Authentication Lockout Policy for a Security Role - -The authentication lockout policy comes into play when users authenticate for multifactor -authentication and second factor authentication in GroupID. The policy controls the following: - -- The consecutive number of times a role member can provide a wrong value for an authentication type - in GroupID, after which authentication is disabled. -- The duration for authentication to remain disabled. - -With authentication disabled, role members cannot sign into GroupID. - -NOTE: The authentication lockout policy only disables the user account in GroupID. It does not -disable it in the provider, such as Active Directory. - -**To specify an authentication lockout policy:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Password** tab. - The following settings in the **Password Policies** area control authentication lockout: - - | | Setting | Description | - | --- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | 1. | Failed Authentication Attempts Threshold | The number of consecutive attempts to provide a wrong value for an authentication type. Authentication is disabled for a user when the number of consecutive unsuccessful attempts by him or her reach the number given here. | - | 2. | Account Locked out Duration | The number of minutes to disable authentication in GroupID after consecutive unsuccessful attempts to provide the right value for an authentication type. Note the following: - Authentication is automatically enabled after the specified duration. - Else it is enabled when, during the lockout period, the user correctly enters his or her identity store account credentials to sign into GroupID. | - -7. Click **OK**. -8. On the **Edit Security Role** page, click **Update Security Role**. -9. On the **Security Roles** page, click **Save**. - -## Specify Password Validation Checks for a Security Role - -Identity providers have password validation and complexity policies defined, and users must follow -them while creating passwords. With GroupID, you can extend these policies. - -GroupID enables you to specify password validation checks for a security role in an identity store. -This extended policy applies when: - -- Role members change or reset their identity store account passwords using GroupID. -- Administrators or helpdesk members reset the identity store account passwords of role members - using the Helpdesk section in Admin Center. - -The policy does not apply when password is reset using the **Reset Password** option in user -properties in the GroupID portal. - -**To specify password validation checks:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Password** tab. -7. Password validation settings are listed in the **Password Validation Options** area. Select the - check box for a setting to apply it. - - | | Setting | Descriptions | - | --- | --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | - | 1. | Reject User Name in Password | Prevent role members from creating passwords that contain the user's account name. | - | 2. | Reject Display Name in Password | Prevent role members from creating passwords that contain the user's display name. | - | 3. | Reject First Name in Password | Prevent role members from creating passwords that contain the user's first name. | - | 4. | Reject Last Name in Password | Prevent role members from creating passwords that contain the user's last name. | - | 5. | Reject Number as First Character in Password | Prevent role members from creating passwords that begin with a number. | - | 6. | Reject Number as Last Character in Password | Prevent role members from creating passwords that end with a number. | - | 7. | Reject Consecutive Identical Characters in Password | Prevent role members from creating passwords that contain the consecutive use of identical characters. | - | 8. | Enforce Password History (Domain Policy) | Prevent role members from creating passwords that do not satisfy the password policy for password age/history, as defined for the domain. | - -8. Click **OK**. -9. On the **Edit Security Role** page, click **Update Security Role**. -10. On the **Configure Access Control** page, click **Save**. - -**See Also** - -- [Security Roles](/docs/directorymanager/11.0/signin/securityrole/overview.md) -- [Security Role Policies](/docs/directorymanager/11.0/signin/securityrole/policy/overview.md) diff --git a/docs/directorymanager/11.0/signin/securityrole/policy/querydesigner.md b/docs/directorymanager/11.0/signin/securityrole/policy/querydesigner.md deleted file mode 100644 index 07d8ec4118..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/policy/querydesigner.md +++ /dev/null @@ -1,325 +0,0 @@ ---- -title: "Query Designer Policy" -description: "Query Designer Policy" -sidebar_position: 90 ---- - -# Query Designer Policy - -You can define a role-based access policy for the Query Designer. Using the Query Designer, users -can create queries for various purposes, as discussed in the -[ Specify Smart Group Query Attributes](/docs/directorymanager/11.0/signin/applications/portal/displaytype/queryattributes.md) -topic. - -The Query Designer policy enables you to restrict the following Query Designer features for a -security role: - -- Policy application on new groups or on existing groups as well. -- The _Start In_ container - Specify container(s) that will be displayed to role members on the - Query Designer. Queries created by role members cannot run beyond the specified containers. You - can also enforce the allowed containers so that role members cannot change them. -- Object types - Limit the object types that will be available to role members for including in - queries. You can also enforce the allowed object types, so that role members cannot exclude any of - them from queries. -- Tabs on the Query Designer - The Query Designer has multiple tabs and all of them are available to - users by default. You can choose to hide any of these tab from role members. -- Attributes and their respective operators. - Specify the attributes that will be available to role - members for building queries for Smart Groups and Dynasties. For each attribute, you can also - specify the operators that role members can apply to it. - -![querydesigner](/images/directorymanager/11.0/admincenter/securityrole/policy/querydesigner.webp) - -You can also specify a default filter criterion, involving an attribute, an operator, and a value, -that will be displayed to users on the Filter Criteria tab of the Query Designer. Role members can -change this criterion as required. - -If you already have restricted some schema attributes for the Query Designer pages in portal, those -settings will be override by the schema attribute settings specified here. - -What do you want to do? - -- [Apply the Policy to Groups ](#apply-the-policy-to-groups) -- [Limit the Search Scope of the Query to Specific Containers](#limit-the-search-scope-of-the-query-to-specific-containers) -- [Limit the Objects for Use in a Query](#limit-the-objects-for-use-in-a-query) -- [Hide the Tabs on the Query Designer](#hide-the-tabs-on-the-query-designer) -- [Restrict the Attributes and Operators for Building a Query](#restrict-the-attributes-and-operators-for-building-a-query) -- [Specify a Default Filter Criteria](#specify-a-default-filter-criteria) - -## Apply the Policy to Groups - -You can specify whether the defined role-based access policy for the Query Designer is to be applied -on the newly created groups (Smart Groups and dynaasties) in GroupID  11.1 only or to all existing -groups as well. - -**To apply the policy on groups:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Query Designer** tab. -7. On the **Query Designer** tab: - - - enable the **Apply policy only to newly created groups** toggle button to apply the policy on - the new groups created in GroupID 11.1. - - Let's say the following policy is defined for a user role: - - Start In Container: Users - - Enforce Start In Containers: Enabled - - Objects: Users with Mailboxes - - Users with External Email-Address - - Objects: Users - - Enforce Objects: Enabled - - Default filter Criteria: Department is exactly HR - - When a user of this role creates a new group the policy is applied on it. - - - disable the **Apply policy only to newly created groups** toggle button to apply the policy on - the existing groups as well. - - After some time, if you enable the option again for the user role, the policy (with or without - any modification) will no longer be applied to the existing groups. All the Query Designer - configurations will be available to the user for the existing groups. - -## Limit the Search Scope of the Query to Specific Containers - -By default, all containers in the directory and all their sub-containers are displayed in the _Start -In_ field on the Query Designer, indicating that the query will run on the entire directory to fetch -matching objects. Users can exclude any container or sub-container, though. - -You can restrict the search scope of the query to one or more containers and sub-containers for role -members. Specify the containers and sub-containers to be displayed in the **Start In** field on the -**Query Designer** dialog box. You can also enforce the container(s) so that role members cannot -remove a container or sub-container. - -**To specify container(s):** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Query Designer** tab. -7. On the **Query Designer** tab, the **Start In Container** area lists each container and - sub-container in the directory individually, indicating that the entire directory is set as the - _Start In_ container. - - - To remove a container or sub-container, click **Remove** for it. - - To modify the list of allowed containers, click **Modify Container**. On the **Modify - Container** dialog box, select the required containers and sub-containers, and click **OK**. - The selected containers are displayed in the **Start In Container** area. - - You can allow a sub-container even if you do not allow its parent container. In this case, the - query will run in the sub-container but not in the parent container. - -8. Use the **Enforce Start In Containers** toggle button to enforce the start-in containers. - - - When you enforce the allowed containers, they will be displayed as disabled in the **Start - In** field on the Query Designer. Role members will not be able to change this setting. - - When not enforced, role members can remove any of the allowed containers but they cannot add a - container beyond the allowed ones. - -9. Click **OK**. -10. On the **Edit Security Role** page, click **Update Security Role**. -11. On the **Security Roles** page, click **Save**. - -## Limit the Objects for Use in a Query - -By default, several object types are available to users on the Query Designer for including in -queries. Users select an object type from the **Find** drop-down list and then select its sub-types -on the _General_ tab of the Query Designer. The query returns the specified object types to include -in group membership. The object types and their sub-types are discussed in the -[Query Designer - General tab](/docs/directorymanager/11.0/welcome/group/querydesigner/general.md) -topic. - -You can limit the object types available to role members for use in queries. You can also enforce -the object types so that role members cannot exclude an allowed object type from queries. - -**To limit object types:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Query Designer** tab. -7. The **Objects** area lists the object types with their sub-types. Here is a mapping of the object - types displayed here with the options in the **Find** list on the Query Designer: - - - Exchange = Messaging System Recipients - Note that the sub-types displayed under **Exchange** are the same as displayed on the General - tab when you select _Messaging System Recipients_ in the **Find** drop-down list. - - Computer = Computers - - All = Users, Contacts and Groups - - Select the check boxes for the object sub-types that you want to display to role members in the - Query Designer. - -8. Use the **Enforce Objects** toggle button to enforce the allowed objects. - - - When you enforce the allowed object types, they will be displayed as disabled in the Query - Designer. Role members will not be able to exclude any object type; hence all the allowed - object types will be included in the query. - - When not enforced, role members can exclude any of the allowed object types but there is no - option to include an object type beyond the allowed ones. - -9. Click **OK**. -10. On the **Edit Security Role** page, click **Update Security Role**. -11. On the **Security Roles** page, click **Save**. - -## Hide the Tabs on the Query Designer - -The Query Designer has multiple tabs, where each tab groups similar settings. These tabs are: - -- General - select the object types to include in the query -- Storage - filter mailboxes -- Filter Criteria - specify a filter criteria to add objects to group membership -- Include/Exclude - specify objects to include or exclude in group membership, regardless of the - query -- Database - combine an external data source with the directory to determine a group's membership -- Script - write scripts to manipulate group membership -- Password Expiry Options - available for Smart Groups with a password expiry condition - -You can hide any of these tabs from role members. - -NOTE: The General tab is displayed to all users and cannot be hidden. However, you can hide the -objects displayed on it, as discussed in the -[Limit the Objects for Use in a Query](#limit-the-objects-for-use-in-a-query) topic. - -**To hide a tab:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Query Designer** tab. -7. The **Tabs** area lists the tabs available on the Query Designer, except the General tab. By - default, all tabs are selected, indicating that they are displayed to role members. - Clear the check box for a tab to hide it from role members. -8. Click **OK**. -9. On the **Edit Security Role** page, click **Update Security Role**. -10. On the **Security Roles** page, click **Save**. - -## Restrict the Attributes and Operators for Building a Query - -By default, all schema attributes are displayed to role members for creating a filter criterion for -the query (see the **Filter Criteria** tab of the Query Designer). You can: - -- limit the list of attributes to be displayed to role members -- limit the operators that role members can apply to an attribute - -**To allow specific attributes and operators:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Query Designer** tab. -7. Click **Edit Allowed Attributes** in the **Attributes** area. - The **Allowed Attributes** dialog box is displayed. By default, all attributes are selected. This - indicates that all attributes are available to role members on the **Filter Criteria** tab of the - Query Designer for creating queries. - - - Clear the check boxes for the attributes that you do not want to display to role members. Use - the search box to search for your required attributes. - - You can also clear the **Allow all attributes** check box to deny all attributes, then select - the check boxes for the required attributes. At least one attribute must be selected. - -8. For each attribute, you can specify the operator(s) that can be applied to the attribute on the - **Filter Criteria** tab. - On the **Allowed Attributes** dialog box, click the plus sign next to an attribute and select the - check box for the operators you want to provide for the attribute. When role members select an - attribute, only the respective operators will be displayed for it. For example, if you allow the - ‘Contains’ and ‘Equals’ operators for the ‘cn’ attribute, then only these operators will be - displayed when role members select the ‘cn’ attribute. - - NOTE: This schema attribute setting will override the schema attribute setting specified on the - Smart Group Attribute page in portal's design settings. See the - [ Specify Smart Group Query Attributes](/docs/directorymanager/11.0/signin/applications/portal/displaytype/queryattributes.md) - topic. - -9. Click **Save Selection** on the **Allowed Attributes** dialog box. The **Attributes** area - displays the allowed attributes count. - To view or update the allowed attributes, click **Edit Allowed Attributes**. On the **Allowed - Attributes** dialog box, select the **Show only selected** check box to get a list of the allowed - attributes. Make the desired changes and close the dialog box. -10. Click **OK**. -11. On the **Edit Security Role** page, click **Update Security Role**. -12. On the **Security Roles** page, click **Save**. - -## Specify a Default Filter Criteria - -Role members can specify a filter criterion on the **Filter Criteria** tab of the Query Designer to -determine a group's membership. This criteria is created using an attribute, operator, and a value. -For example, the following criterion will add the users in the Human Resources department to the -membership of the group. - -Attribute: department -Operator: Equals -Value: Human Resources - -You can specify a default criteria, that will be displayed to role members on the **Filter -Criteria** tab. They can change it as required - -NOTE: If you have limited the attributes and operators for role members, then only the allowed -attributes and operators are available to create a default filter criteria. - -**To specify a default filter criteria:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Query Designer** tab. -7. Click **Add Filter** in the **Default Filter Criteria** area. A row is displayed for adding a - default criterion. - - - Select a schema attribute in the first drop-down list (for example, _title_). - - Select an operator in the second drop-down list (for example, _Equals_). - - Enter a value for the attribute in the third box (for example, _Manager_). - - With this filter, the query would fetch users whose job titles are set to Manager. Role members - can change it as required. - -8. You can also create an advanced query by adding more rows and applying the **AND** or **OR** - operator to group them. See steps 1-2 in the Advanced Filter section of the - [Designate a Criterion for the Search Scope](/docs/directorymanager/11.0/signin/securityrole/policy/search.md#designate-a-criterion-for-the-search-scope) - topic. - After creating a query, you can: - - - Click **Preview** to get a list of the objects fetched by the query created by the current - settings on the **Query Designer** tab, namely the start-in container, objects, and default - filter criteria. - - Click **Clear** to delete the default filter criteria. - -9. Click **OK** on the **Query Designer** tab. -10. On the **Edit Security Role** page, click **Update Security Role**. -11. On the **Security Roles** page, click **Save**. - -**See Also** - -- [Security Roles](/docs/directorymanager/11.0/signin/securityrole/overview.md) -- [Security Role Policies](/docs/directorymanager/11.0/signin/securityrole/policy/overview.md) diff --git a/docs/directorymanager/11.0/signin/securityrole/policy/search.md b/docs/directorymanager/11.0/signin/securityrole/policy/search.md deleted file mode 100644 index 51030c40de..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/policy/search.md +++ /dev/null @@ -1,155 +0,0 @@ ---- -title: "Search Policy" -description: "Search Policy" -sidebar_position: 40 ---- - -# Search Policy - -The Search policy sets the search scope for the GroupID portal, GroupID Management Shell, and the -GroupID mobile app. - -By default, any search performed by role members returns objects from all containers in the identity -store. Use the Search policy to: - -- Limit the search scope to one container for role members. -- Designate a criterion to limit the objects that role members can search. - -NOTE: Microsoft Entra ID supports a single container only, so the search scope cannot be restricted -container-wise in a Microsoft Entra ID identity store. - -## How does the Search Policy Work? - -Let’s assume you specify a container, localOU, and set the LDAP filter to (Country=United States\*) -for an Active Directory identity store. Now consider these scenarios: - -- When a role member performs a search, GroupID looks up the localOU container and displays objects - with the _Country_ attribute set to _United States_. -- If you specify a container only, a search performed by role members returns all matching objects - residing in that container. -- If you specify an LDAP filter only, a search performed by role members displays objects with the - _Country_ attribute set to _United States_ from all containers in the identity store. - -## Impact of the Search Policy on GroupID Portal - -The Search policy has the following impact on the GroupID portal: - -- It determines the groups to display in all group listings, such as those on the **All Groups** and - **My Groups** pages. -- It determines the users to display in user listings, namely **My Direct Reports** and **Disabled - Users**. -- It sets the search scope for the Find dialog box. -- It sets the scope for quick search and advanced search. - -What do you want to do? - -- [Set the Search Scope to a Specific Container](#set-the-search-scope-to-a-specific-container) -- [Set the Search Scope to all Containers in the Identity Store](#set-the-search-scope-to-all-containers-in-the-identity-store) -- [Designate a Criterion for the Search Scope](#designate-a-criterion-for-the-search-scope) - -## Set the Search Scope to a Specific Container - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Search** tab. -7. Click **Add** next to **Add Container**. -8. On the **Add Container** dialog box, select a container and click **Add**. - Search performed by role members will display objects from this container and its sub-containers. -9. Click **OK**. -10. On the **Edit Security Role** page, click **Update Security Role**. -11. On the **Security Roles** page, click **Save**. - -NOTE: An advanced setting for the GroupID portal, _Search Default_, controls the search scope of the -portal. If its value is "Global Catalog", the container specified here is ignored and the portal -shows objects from the entire directory. See the -[Manage Advanced Settings](/docs/directorymanager/11.0/signin/applications/portal/server/advanced.md) -topic. - -## Set the Search Scope to all Containers in the Identity Store - -When no container is specified as the search scope for an identity store, search performed by role -members fetches objects from all OUs in the identity store. - -**To set the search scope to all containers:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button or an identity store and select - **Edit.** -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Search** tab. -7. In the **Container** area, click **Remove** for a container to remove it. -8. Click **OK**. -9. On the **Edit Security Role** page, click **Update Security Role**. -10. On the **Security Roles** page, click **Save**. - -## Designate a Criterion for the Search Scope - -When you apply a filter criterion, search performed by role members shows objects that match the -criteria. - -**To designate a criterion:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Search** tab. -7. In the **Filters** area, click **Add Filter**. -8. A row is displayed for adding a criterion. - - 1. Select a schema attribute in the first drop-down list (for example, _mail_). - 2. Select an operator in the second drop-down list (for example, _Ends with_). - 3. Enter a value for the schema attribute in the third box (for example, _@Netwrix.com_). - - With this filter, search performed by role members will display objects with email addresses - created on the netwrix.com domain. - -Advanced Filter - -You can also define a query by adding more rows and applying the **AND** or **OR** operator to group -them. - -1. After defining two or more filter expressions, select two or more rows and apply one of these - operators: - (To select a row, click the down arrow next to it and click **Select Row**.) - - - **AND:** to display the objects having the specified values for all attributes. - - **OR:** to display objects having the specified value for any one of the attributes. - - ![search_query](/images/directorymanager/11.0/admincenter/securityrole/policy/search_query.webp) - -2. Click the ellipsis button for an applied operator to display the context menu, which has the - following options: - - - **Select Group:** to select all rows that make up the query. - - **Ungroup:** to remove the operator and ungroup the rows. - - **Change to OR:** to change the AND operator to OR and vice versa. - - **Add Clause:** to add a new row for specifying another clause for the query. - - **Delete:** to delete the operator along with all the rows that the operator joins. - - You can also: - - - Click **Tree View** to view a list of all queries defined. - - Click **Preview** to preview the search results that will be displayed with this Search - policy, i.e., with the container and filter settings on the **Search** tab. - - Click **Clear** to clear the **Filter** area. - -3. After defining a filter, click **OK**. -4. On the **Edit Security Role** page, click **Update Security Role**. -5. On the **Security Roles** page, click **Save**. - -**See Also** - -- [Security Roles](/docs/directorymanager/11.0/signin/securityrole/overview.md) -- [Security Role Policies](/docs/directorymanager/11.0/signin/securityrole/policy/overview.md) diff --git a/docs/directorymanager/11.0/signin/securityrole/policy/synchronize.md b/docs/directorymanager/11.0/signin/securityrole/policy/synchronize.md deleted file mode 100644 index 48e3931537..0000000000 --- a/docs/directorymanager/11.0/signin/securityrole/policy/synchronize.md +++ /dev/null @@ -1,243 +0,0 @@ ---- -title: "Synchronize Policy" -description: "Synchronize Policy" -sidebar_position: 80 ---- - -# Synchronize Policy - -Using GroupID, you can create identity stores for several identity providers (such as Active -Directory and Microsoft Entra ID) as well as create data sources for providers such as files and -databases. These identity stores and data sources can be used as source and destination in -Synchronize jobs. Moreover, all object types with all their attributes in an identity store or data -source are available for use. - -Using the Synchronize policy, you can: - -- Allow or disallow a provider to be used as a source in a Synchronize job - You can apply this - setting to all or specific identity stores/data sources created for the provider. For example, you - may have three data sources created for the MS Excel provider. You can choose to prevent a - security role from using the data sources created for MS Excel as a source, or prevent two of the - three data sources from being used as a source in a Synchronize job. -- Allow or disallow a provider to be used as a destination in a Synchronize job - You can apply this - setting to all or specific identity stores/data sources created for the provider. -- Choose the object types that can be created or synced at the destination using a Synchronize job - - This setting is individually defined for each identity store and data source. -- For each object type in an identity store and data source, specify the attributes that will be - available for mapping the source and destination fields in a Synchronize job - This setting is - individually defined for each object type in an identity store and data source. - -These granular controls enable you to drill down from the provider to the attribute level. - -- You can disallow a provider as a whole, or disallow a specific identity store/data source created - for the provider. -- At the next level, you can disallow certain object type(s) in a specific identity store or data - source built on a provider. -- Further down, you can disallow certain attributes for an object type in a specific identity store - or data source built on a provider. - -What do you want to do? - -- [Prevent Role Members from Using a Provider as Source or Destination](#prevent-role-members-from-using-a-provider-as-source-or-destination) -- [Prevent Role Members from Using an Identity Store or Data Source as Source or Destination](#prevent-role-members-from-using-an-identity-store-or-data-source-as-source-or-destination) -- [Prevent Role Members from Manipulating Specific Object Type(s)](#prevent-role-members-from-manipulating-specific-object-types) -- [Prevent Role Members from Using Specific Attributes for Mapping](#prevent-role-members-from-using-specific-attributes-for-mapping) - -## Prevent Role Members from Using a Provider as Source or Destination - -When creating or modifying a Synchronize job, users can specify any identity store or data source in -GroupID as a source and destination. You can prevent role members from using the identity stores and -data sources build on specific provider(s) in a job. - -**To disallow a provider:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Synchronize** tab. - This tab lists the providers that can be used as source and destination in Synchronize jobs. - - **Allow a provider to be used as source and destination:** - - - Select the **Source** check box for a provider to enable role members to use the identity - stores/data sources for the provider as source in Synchronize jobs. - - Select the **Destination** check box for a provider to enable role members to use the identity - stores/data sources for the provider as destination in Synchronize jobs. - - **Disallow a provider to be used as source and destination:** - - - Clear the **Source** check box for a provider to prevent role members from using the identity - stores/data sources for it as source in Synchronize jobs. - - Clear the **Destination** check box for a provider to prevent role members from using the - identity stores/data sources for it as destination in Synchronize jobs. - -7. Click **OK**. -8. On the **Edit Security Role** page, click **Update Security Role**. -9. On the **Security Roles** page, click **Save**. - -NOTE: If you disallow a provider as a source, all Synchronize jobs already using an identity -store/data source for that provider as source will become read-only for role members and they will -not be able to run them. Similarly, if you disallow a provider as a destination, all Synchronize -jobs already using an identity store/data source for that provider as destination will become -read-only for role members and they will not be able to run them. - -## Prevent Role Members from Using an Identity Store or Data Source as Source or Destination - -When creating or modifying a Synchronize job, users can specify any identity store or data source in -GroupID as a source and destination. You can prevent role members from using a specific identity -store or data source in a job. - -**To disallow an identity store or data source:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Synchronize** tab. -7. Click the plus sign for a provider to get a list of the identity stores or data sources created - for it in GroupID. - - **To allow an identity store or data source to be used as source and destination:** - - - Select the **Source** check box for an identity store or data source to enable role members to - use it as source in Synchronize jobs. - - Select the **Destination** check box for an identity store or data source to enable role - members to use it as destination in Synchronize jobs. - - **To disallow an identity store or data source to be used as source and destination:** - - - Clear the **Source** check box for an identity store or data source to prevent role members - from using it as source in Synchronize jobs. - - Clear the **Destination** check box for an identity store or data source to prevent role - members from using it as destination in Synchronize jobs. - -8. Click **OK**. -9. On the **Edit Security Role** page, click **Update Security Role**. -10. On the **Security Roles** page, click **Save**. - -NOTE: If you disallow an identity store or data source as a source, all Synchronize jobs already -using it as source will become read-only for role members and they will not be able to run them. -Similarly, if you disallow an identity store or data source as destination, all Synchronize jobs -already using it as destination will become read-only for role members and they will not be able to -run them. - -## Prevent Role Members from Manipulating Specific Object Type(s) - -Using a Synchronize job, users can create and update different object types from a source to a -destination identity store. For an Active Directory identity store, for example, users can create -and update the following object types: - -- User -- Group -- Contact -- Mail-enabled User -- Mailbox-enabled User -- Linked-Mailbox -- Mail-enabled Contact - -You can disallow any of these object types for an identity store. When that identity store is used -as source or destination in a Synchronize job, role members will not be able to create or update the -disallowed objects at the destination. For example, if you disallow the user object type for -IdentityStore_A, role members will not be able to provision, update and deprovision user objects in -identityStore_A through a Synchronize job. - -NOTE: If you disallow an object type in an identity store or data source, all Synchronize jobs -already using that identity store or data source (either as source or destination) while only -provisioning or updating the disallowed object type, will become read-only for role members and they -will not be able to run them. If a job provisions or updates multiple objects, where the disallowed -object is one of the object types it processes, it will run as usual, except that the disallowed -object will not be processed. -**Example:** Suppose you disallow the mailbox object type in IdentityStore_A, when this identity -store is already used as a destination in a Synchronize job that provisions mailbox objects, then -the job will become read-only for role members and they will not be able to run it. -If IdentityStore_A is used as a source or destination in a Synchronize job that provisions multiple -objects types, then the job will run as usual, except that the mailbox object will not be processed. - -For data sources, you can disallow the following to role members as an alternate to object types: - -- Sheets in an Excel workbook -- Tables in an Access, Oracle, and SQL database -- For ODBC, you can disallow tables in case of an SQL database and sheets in case of Excel -- For text/CSV, this does not apply - -**To disallow object types in an identity store or data source:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Synchronize** tab. -7. Click the plus sign for a provider to get a list of the identity stores or data sources created - for it in GroupID. -8. Click **Edit Object Policies** for an identity store or data source. The next page displays the - object types that can be created in the identity store. For data sources, it displays alternate - options, such as sheets for Excel and tables for databases. - - - Select the **Allow** check box for an object type to enable role members to use it in a - Synchronize job that uses the particular identity store or data source as source or - destination. - - Clear the **Allow** check box for an object type to prevent role members from using it in a - Synchronize job that uses the particular identity store as source or destination. - -9. Click **OK**. -10. On the **Edit Security Role** page, click **Update Security Role**. -11. On the **Security Roles** page, click **Save**. - -## Prevent Role Members from Using Specific Attributes for Mapping - -A Synchronize job makes use of attribute mapping, where object attributes from the source provider -are mapped to attributes of the destination provider to facilitate data syncing. - -Each object type in an identity store has a different set of attributes. By default, all attributes -of the allowed object types in the source and destination identity stores are available for mapping -in a Synchronize job. You can disallow any number of attributes for an object type in an identity -store, so that the disallowed attributes are not available to role members for mapping. - -For data sources, you can disallow the following to role members as an alternate to object -attributes: - -- Columns in an Excel sheet -- Columns in an Access, Oracle, and SQL table -- For ODBC, you can disallow columns in case of an SQL table and columns in case of an Excel sheet -- For text/CSV, each value in the first row, as separated by the delimiter - -**To disallow attributes for an object type in an identity store or data source:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Security Roles** under **Settings** in the left pane. -4. On the **Security Roles** page, click **Edit** for a security role. -5. On the **Edit Security Role** page, click **Specify policies for the members** in the - **Policies** area. -6. On the **Add Policies** pane, click the **Synchronize** tab. -7. Click the plus sign for a provider to get a list of the identity stores or data sources created - for it in GroupID. -8. Click **Edit Object Policies** for an identity store or data source. -9. On the next page, click **Edit Attribute Selection** for an object type. This option is available - for the ‘allowed’ object types only. -10. By default, all attributes are selected on the **Edit Attribute Selection** dialog box. Clear - the check box for an attribute to disallow them to role members. Use the search box to search - and locate the required attributes. When done, click **Save Selection**. - Disallowed attributes will not be available to role members for the object type in the identity - store or data source. When this identity store or data source is used as a source or destination - in a Synchronize job that works with the respective object type, the disallowed attributes will - not be available for mapping. -11. Click **OK**. -12. On the **Edit Security Role** page, click **Update Security Role**. -13. On the **Security Roles** page, click **Save**. - -**See Also** - -- [Security Roles](/docs/directorymanager/11.0/signin/securityrole/overview.md) -- [Security Role Policies](/docs/directorymanager/11.0/signin/securityrole/policy/overview.md) diff --git a/docs/directorymanager/11.0/signin/service/_category_.json b/docs/directorymanager/11.0/signin/service/_category_.json deleted file mode 100644 index 163c68b9c8..0000000000 --- a/docs/directorymanager/11.0/signin/service/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Services", - "position": 110, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/service/dataservice/_category_.json b/docs/directorymanager/11.0/signin/service/dataservice/_category_.json deleted file mode 100644 index 5332063fe8..0000000000 --- a/docs/directorymanager/11.0/signin/service/dataservice/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Data Service", - "position": 20, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/service/dataservice/create.md b/docs/directorymanager/11.0/signin/service/dataservice/create.md deleted file mode 100644 index 8c59e8b7d1..0000000000 --- a/docs/directorymanager/11.0/signin/service/dataservice/create.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: "Create a Data Service" -description: "Create a Data Service" -sidebar_position: 10 ---- - -# Create a Data Service - -You can create a Data service in native IIS and remote IIS. - -What do you want to do? - -- [Create a Data Service in Native IIS](#create-a-data-service-in-native-iis) -- [Create a Data Service in Remote IIS](#create-a-data-service-in-remote-iis) - -## Create a Data Service in Native IIS - -When you deploy a Data service in native IIS, GroupID does the following: - -- It creates a directory with the Data service’s name at the following physical path on the GroupID - server, and copies the service files from its template directory to the new service directory: - X:\Program Files\Imanami\GroupID 11.0\GroupIDDataService\Inetpub\ - (X represents the GroupID installation drive) -- It also creates a virtual directory for the service in your desired IIS site. - -The Data service runs within a virtual directory in IIS while the service files are physically -located on disk. - -**To create a Data service:** - -1. In Admin Center, click **Applications** in the left pane. -2. Click **Add Application**. -3. On the next page, select **Data Service** and click **Next step**. -4. On the **Create GroupID Application** page, make sure the **IIS** tile is selected. -5. In the **Application Name** box, enter a unique name for the service or use the default name. The - service is displayed with this name in GroupID. -6. In the **Deployment Name** box, enter a deployment name for the service. - The application name and deployment name are displayed on the service card. It is as: - - ![ds_card](/images/directorymanager/11.0/admincenter/service/dataservice/ds_card.webp) - -7. In the **IIS Application Name** box, enter an IIS deployment name for the service. The name - should be unique for each Data service deployed in IIS. - The IIS application name is used to name the service’s directory in IIS and its physical - directory under X:\Program Files\Imanami\GroupID 11.0\GroupIDDataService\Inetpub\ on the GroupID - server. - (X represents the GroupID installation drive) -8. In the **IIS Site** drop-down list, select a website to host the service files. - The list displays the websites defined on the local IIS server. GroupIDSite11 is the default - selection. -9. In the Service Endpoints area, bind an Elasticsearch service, Replication service, and Scheduler - service with the Data service. - - 1. In the **Elasticsearch Service** drop-down list, select an Elasticsearch service to bind to - this Data service. - The list displays the Elasticsearch services running in the environment. Requests sent to the - Data service for performing a search in the Elasticsearch repository will be carried out - through the Elasticsearch service you select here. - 2. On selecting an Elasticsearch service, the **Replication Service** drop-down list displays - the Replication services running on the same machine as the Elasticsearch service. Select a - Replication service to bind to this Data service. - When a user force runs the replication service (whether globally or for a specific identity - store), a request is sent to the Data service, that is then passed on to the Replication - service bound to that Data service. - 3. In the **Scheduler Service** drop-down list, select a scheduler service to bind to this Data - service. The number of services displayed in the list depend on the number of GroupID - clusters, as each cluster has its own Scheduler service. - This Data service will send requests to the selected Schedular service to trigger schedule - runs. - -10. Click **Create Application**. - The Data service is created and displayed on the **Data Service** tab. - -## Create a Data Service in Remote IIS - -You can deploy a Data service within a site in remote IIS. For this, you need to connect with the -Microsoft IIS Administration API running on the remote IIS machine. - -When you create a Data service in remote IIS, GroupID does the following: - -- It creates a virtual directory for the service in a preconfigured site in remote IIS. -- It creates a physical directory for the service in the folder that is mapped to this preconfigured - site. - -The Data service runs within a virtual directory in remote IIS while the service files are -physically located on disk. - -To learn about the remote IIS settings and configurations before deploying a service there, see the -[Prerequisites for Deployments in Remote IIS](/docs/directorymanager/11.0/signin/applications/remoteiisprerequisites.md) -topic. - -**To create a Data service:** - -1. In Admin Center, click **Applications** in the left pane. -2. Click **Add Application**. -3. On the next page, select **Data Service** and click **Next step**. -4. On the **Create GroupID Application** page, select the **Remote IIS** tile. -5. In the **Application Name** box, enter a unique name for the Data service or use the default - name. The Data service is displayed in GroupID with this name. -6. In the **Deployment Name** box, enter a deployment name for the service. The application name and - deployment name are displayed on the service card. -7. To enter information for **API URL**, **Access Token**, **Username**, **Password**, **IIS - Application Name**, and **Website**, refer to steps 7-11 in the - [Create a Portal in Remote IIS](/docs/directorymanager/11.0/signin/applications/portal/create.md#create-a-portal-in-remote-iis) - topic. Replace any reference to the portal with the Data service. -8. For entering information in the **Service Endpoints** area, follow steps 9 in the - [Create a Data Service in Native IIS](#create-a-data-service-in-native-iis) topic. -9. Click **Create Application**. - The new Data service is displayed on the **Data Service** tab. - -**See Also** - -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) -- [Data Service](/docs/directorymanager/11.0/signin/service/dataservice/overview.md) -- [Manage Data Service Settings](/docs/directorymanager/11.0/signin/service/dataservice/manage.md) diff --git a/docs/directorymanager/11.0/signin/service/dataservice/manage.md b/docs/directorymanager/11.0/signin/service/dataservice/manage.md deleted file mode 100644 index 5a1986eee8..0000000000 --- a/docs/directorymanager/11.0/signin/service/dataservice/manage.md +++ /dev/null @@ -1,241 +0,0 @@ ---- -title: "Manage Data Service Settings" -description: "Manage Data Service Settings" -sidebar_position: 20 ---- - -# Manage Data Service Settings - -Data services in GroupID are displayed on the **Data Service** tab. A card for a service displays -information such as its name and status. - -You can manage several settings for a service, such as: - -- Change the display name of a service -- Start or stop a service -- Configure file logging for a service -- Delete a service - -What do you want to do? - -- [View Data Service Details](#view-data-service-details) -- [Change a Service’s Display Name](#change-a-services-display-name) -- [Start or Stop a Service](#start-or-stop-a-service) -- [View the Launch URL for a Service](#view-the-launch-url-for-a-service) -- [View the Deployment Settings for a Service](#view-the-deployment-settings-for-a-service) -- [Specify Log Settings for a Service](#specify-log-settings-for-a-service) -- [Delete a Data Service](#delete-a-data-service) - -## View Data Service Details - -1. In Admin Center, click **Applications** in the left pane. -2. On the **Applications** page, click the **Data Service** tab. The **Data Service** tab page is - displayed, that lists the default Data service created while configuring GroupID and any other - Data service that you have created. - When multiple GroupID instances have been deployed, you will find multiple default Data services - on this tab page, as each instance has its own default Data service. See the - [Elasticsearch Clusters, Nodes, and GroupID](/docs/directorymanager/11.0/signin/service/overview.md#elasticsearch-clusters-nodes-and-groupid) - topic. -3. The card for a Data service displays the following information: - - | Info | Description | - | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | Name | The name given to the service. For a Mobile service, the identity stores associated with the service are also displayed. | - | Deployment Instances | Displays the deployment name of the service and the web server where it is deployed. For a Mobile service, this area may display multiple deployment instance(s) of a service. Each instance is represented by a tile that shows the deployment name of the instance and the target web server. | - | Status | A service has one of the following statuses: - **Running:** Indicates that the service is up and running. - **Stopped:** Indicates that GroupID is unable to communicate with the service. To troubleshoot, go to the web server where the service is deployed (IIS, remote IIS, or Docker) and make sure the service is running. - **Error:** Any issue other than _stopped_ is categorized as _error_. Contact your system administrator to resolve it. | - | Launch Application | Click it to launch the service page. - For a Data service, Replication service, Email service, and Scheduler service, a page is displayed that simply shows the status of the service as _running_, _stopped_, or _error_. - For a Security service, the **GroupID Applications** page is displayed. Performing an action on this page will be carried out through the respective Security service. See the [Access your Applications](/docs/directorymanager/11.0/signin/concepts/accessapplications.md) topic. - For Admin Center, this link launches the Admin Center application. - For Mobile service, it launches the **GroupIDMobileService** page that enables users to configure the GroupID mobile app on a phone. | - | Ellipsis | Click it to launch a shortcut menu with the following options: - **Settings:** launches the service settings page, where you can manage deployment settings and log settings. - **Delete:** deletes the service. This option is not available for the default services. For Mobile service, this shortcut menu also displays the following options: - **Deploy Another Instance:** enables you to deploy another instance of the service. - **Copy:** enables you to create a new Mobile service by copying the settings of this service. | - -## Change a Service’s Display Name - -A service is assigned an application name during creation, which is used as it's display name in -GroupID. On changing it, the service is displayed with the new name. - -**To change the display name:** - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Applications** page, click the tab for the desired service. For example, click the - **Data Service** tab. -3. Click the ellipsis button for a service and select **Settings**. -4. In the **Application Name** box on the **General Settings** page, enter a new name for the - service. -5. Click **Save**. - -## Start or Stop a Service - -You can start and stop a service deployed in native IIS, remote IIS, and Docker. When you stop a -service, the following happens: - -- For a native IIS deployment, GroupID stops the service’s application pool. -- For a remote IIS deployment, GroupID stops the site that hosts the service. -- For a Docker deployment, GroupID stops the container where the service is deployed. - -**To start or stop a service:** - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Applications** page, click the tab for the desired service. For example, click the - **Data Service** tab. -3. Click the ellipsis button for a service and select **Settings**. -4. Click **Deployments** under **Server Settings**. - The **Deployment Settings** page displays the web server (IIS, remote IIS, or Docker) where the - service is deployed. -5. The **Select Application Deployment** drop-down list displays the deployment name of the service. - - - When the service is running, **Stop** is displayed next to it. Click it to stop the service. - - When the service is stopped, **Start** is displayed next to it. Click it to start the service. - -## View the Launch URL for a Service - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Applications** page, click the tab for the desired service. For example, click the - **Data Service** tab. -3. Click the ellipsis button for a service and select **Settings**. -4. Click **Deployments** under **Server Settings**. - The **Deployment Settings** page displays the web server (IIS, remote IIS, or Docker) where the - service is deployed. The **Select Application Deployment** drop-down list displays the deployment - name of the service. -5. The **Launch URL** box on the **Deployment Configurations** tab displays the URL. Copy and paste - it in the browser to launch the service. See the table in the - [View Data Service Details](#view-data-service-details) topic to understand what is displayed - with this URL. - -## View the Deployment Settings for a Service - -1. n Admin Center, select **Applications** in the left pane. -2. On the **Applications** page, click the tab for the desired service. For example, click the - **Data Service** tab. -3. Click the ellipsis button for a service and select **Settings**. -4. Click **Deployments** under **Server Settings**. - The **Deployment Settings** page displays the web server (IIS, remote IIS, or Docker) where the - service is deployed. The **Select Application Deployment** drop-down list displays the deployment - name of the service. -5. On the **Deployment Configurations** tab: - - - For a native IIS deployment, you can view the name of the service application in IIS, the site - where it is hosted, the URL to launch the service page, and any other services that this - service uses. - - For a remote IIS deployment, you can view the Microsoft IIS Administration API URL, access - token, and credentials. You can also view the name of the service application in remote IIS, - the site where it is hosted, the URL to launch the service page, and any other services that - this service uses. - - For a Docker deployment, you can view the port and service URL used to communicate with Docker - engine. You can also view the URL to launch the service page, and any other services that this - service uses. - -## Specify Log Settings for a Service - -GroupID uses file logging and Windows logging to monitor events from a service. You can set the -logging level for a service to track a specific set of information for it. - -For details on file logging and Windows logging, see the -[File Logging](/docs/directorymanager/11.0/signin/applications/portal/server/log.md#file-logging) -and -[Windows Logging](/docs/directorymanager/11.0/signin/applications/portal/server/log.md#windows-logging) -topics. Replace references to the portal with the respective service. - -NOTE: Windows logging is not available for Data service and Security service. - -### Change the File Logging Level for a Service - -1. In Admin Center, click **Applications** in the left pane. -2. On the **Applications** page, click the tab for the desired service. For example, click the - **Data Service** tab. -3. Click the ellipsis button for a service and select **Settings**. -4. Click **Deployments** under **Server Settings**. - The **Deployment Settings** page displays the web server (IIS, remote IIS, or Docker) where the - service is deployed. The **Select Application Deployment** drop-down list displays the deployment - name of the service. -5. Click the **Logging** tab. -6. In the **File Logging** area, select a logging level for the service in the **Log Events** - drop-down list. - File logging groups events into different levels, based on the type of information captured. See - the table in the - [Change the File Logging Level for a Portal Instance](/docs/directorymanager/11.0/signin/applications/portal/server/log.md#change-the-file-logging-level-for-a-portal-instance)topic - for information on the logging levels. Replace references to the portal with the respective - service. -7. Click **Save**. - -### Turn off File Logging for a Service - -1. In Admin Center, click **Applications** in the left pane. -2. On the **Applications** page, click the tab for the desired service. For example, click the - **Data Service** tab. -3. Click the ellipsis button for a service and select **Settings**. -4. Click **Deployments** under **Server Settings**. - The **Deployment Settings** page displays the web server (IIS, remote IIS, or Docker) where the - service is deployed. The **Select Application Deployment** drop-down list displays the deployment - name of the service. -5. Click the **Logging** tab. -6. In the **File Logging** area, select _Off_ in the **Log Events** drop-down list. -7. Click **Save**. - -### Change the Windows Logging Level for a Service - -1. In Admin Center, click **Applications** in the left pane. -2. On the **Applications** page, click the tab for the desired service. For example, click the - **Replication Service** tab. -3. Click the ellipsis button for a service and select **Settings**. -4. Click **Deployments** under **Server Settings**. - The **Deployment Settings** page displays the web server (IIS, remote IIS, or Docker) where the - service is deployed. The **Select Application Deployment** drop-down list displays the deployment - name of the service. -5. Click the **Logging** tab. -6. In the **Windows Logging** area, select a logging level for the service in the **Log Events** - drop-down list. - Windows logging groups events into different levels, based on the type of information captured. - See the table in the - [Change the File Logging Level for a Portal Instance](/docs/directorymanager/11.0/signin/applications/portal/server/log.md#change-the-file-logging-level-for-a-portal-instance)topic - for information on the logging levels. Replace references to the portal with the respective - service. -7. Click **Save**. - -### Turn Off Windows Logging for a Service - -1. In Admin Center, click **Applications** in the left pane. -2. On the **Applications** page, click the tab for the desired service. For example, click the - **Replication Service** tab. -3. Click the ellipsis button for a service and select **Settings**. -4. Click **Deployments** under **Server Settings**. - The **Deployment Settings** page displays the web server (IIS, remote IIS, or Docker) where the - service is deployed. The **Select Application Deployment** drop-down list displays the deployment - name of the service. -5. Click the **Logging** tab. -6. In the **Windows Logging** area, select _Off_ in the **Log Events** drop-down list. -7. Click **Save**. - -## Delete a Data Service - -Deleting a Data service removes the following: - -- **For a native IIS deployment:** - - - The Data service directory under the following location on the GroupID server: - X:\Program Files\Imanami\GroupID 11.0\GroupIDDataService\Inetpub\ - (X represents the GroupID installation drive) - - The Data service directory from the website in IIS - -- **For a remote IIS deployment:** - - - The service's directory in the remote IIS site - - The service's physical directory under the folder mapped to the remote IIS site - -- **For a Docker deployment:** - - The container created in Docker Engine for the Data service - -**To delete a Data service:** - -1. In Admin Center, click **Applications** in the left pane. -2. On the **Applications** page, click the **Data Service** tab. -3. On the **Data Service** tab page, click the ellipsis button for a Data service and select - **Delete**. - -NOTE: You cannot delete the default Data service. You cannot also delete a Data service that has -been linked with a GroupID client, such as the GroupID portal or a Mobile service. - -**See Also** - -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) -- [Data Service](/docs/directorymanager/11.0/signin/service/dataservice/overview.md) -- [Create a Data Service](/docs/directorymanager/11.0/signin/service/dataservice/create.md) -- [Get Logs](/docs/directorymanager/11.0/signin/concepts/logs.md) diff --git a/docs/directorymanager/11.0/signin/service/dataservice/overview.md b/docs/directorymanager/11.0/signin/service/dataservice/overview.md deleted file mode 100644 index ace84b435b..0000000000 --- a/docs/directorymanager/11.0/signin/service/dataservice/overview.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: "Data Service" -description: "Data Service" -sidebar_position: 20 ---- - -# Data Service - -Admin Center lets you quickly create and deploy a Data service. This service is responsible for core -GroupID operations, such as communication with identity providers, communications with the GroupID -database, object creation and update, and more. - -You can create multiple Data services; the default service is created while configuring GroupID. - -## The Default Data Service - -While configuring GroupID using the Configuration Tool, the administrator can create a Data service -and a Security service in native IIS. - -To deploy these services in native IIS, the Configuration Tool creates and configures a new website -named GroupIDSite11 in IIS. By default, it binds this site to any of the available ports; the -administrator can change it if required. The Data service and Security service directories are -created within GroupIDSite11. - -Admin Center uses the default Data service and Security service; you cannot change this binding. - -To view the default services, see the -[View Data Service Details](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#view-data-service-details) -topic. - -## Why Create Multiple Data Services? - -For load balancing and high availability, GroupID facilitates you to create and maintain multiple -Data services. While creating a GroupID portal or a Mobile service, you can choose a Data service to -bind to it. In this way, different portals and Mobile services can use different Data services for -improved response times and load balancing. - -GroupID enables you to create and deploy a Data service in any of these web servers: native IIS, -remote IIS, and Docker. - -See Also - -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) -- [Create a Data Service](/docs/directorymanager/11.0/signin/service/dataservice/create.md) -- [Manage Data Service Settings](/docs/directorymanager/11.0/signin/service/dataservice/manage.md) diff --git a/docs/directorymanager/11.0/signin/service/emailservice.md b/docs/directorymanager/11.0/signin/service/emailservice.md deleted file mode 100644 index 9d8b372dd8..0000000000 --- a/docs/directorymanager/11.0/signin/service/emailservice.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "Email Service" -description: "Email Service" -sidebar_position: 40 ---- - -# Email Service - -The Email service maintains a queue of all email notification generated by the identity stores in -GroupID, and sends them one by one through the SMTP server configured for the respective identity -store. - -When the SMTP server for an identity store is down, notifications stay in the queue, until they are -delivered when the server is up again. Successfully delivered emails are removed from the queue. - -For more on the notification queue, see the -[Manage the Notification Queue](/docs/directorymanager/11.0/signin/notification/queue.md) -topic. - -What do you want to do? - -- [View Email Service Details](#view-email-service-details) -- [Manage Email Service Settings](#manage-email-service-settings) - -## View Email Service Details - -1. In Admin Center, click **Applications** in the left pane. -2. On the **Applications** page, click the **Email Service** tab. - The tab displays the default Email service(s) hosted in native IIS. The number of services - displayed on the tab depend on the number of Elasticsearch clusters in your environment, as each - cluster has its own Email service. See the - [Elasticsearch Clusters, Nodes, and GroupID](/docs/directorymanager/11.0/signin/service/overview.md#elasticsearch-clusters-nodes-and-groupid) - topic. - For details displayed on a service card, see the table in the - [View Data Service Details](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#view-data-service-details) - topic. - - You cannot create a new Email service or delete the existing one - -## Manage Email Service Settings - -You can manage the following settings for the Email service: - -- [Change a Service’s Display Name](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#change-a-services-display-name) -- [Start or Stop a Service](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#start-or-stop-a-service) -- [View the Deployment Settings for a Service](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#view-the-deployment-settings-for-a-service) -- [Specify Log Settings for a Service](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#specify-log-settings-for-a-service) - -**See Also** - -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) -- [Services](/docs/directorymanager/11.0/signin/service/overview.md) diff --git a/docs/directorymanager/11.0/signin/service/mobileservice/_category_.json b/docs/directorymanager/11.0/signin/service/mobileservice/_category_.json deleted file mode 100644 index 17d5ddecd9..0000000000 --- a/docs/directorymanager/11.0/signin/service/mobileservice/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Mobile Service", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/service/mobileservice/create.md b/docs/directorymanager/11.0/signin/service/mobileservice/create.md deleted file mode 100644 index 6b692b155c..0000000000 --- a/docs/directorymanager/11.0/signin/service/mobileservice/create.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -title: "Create a Mobile Service" -description: "Create a Mobile Service" -sidebar_position: 10 ---- - -# Create a Mobile Service - -You can create a Mobile service in native IIS and remote IIS. - -What do you want to do? - -- [Create a Mobile Service in Native IIS](#create-a-mobile-service-in-native-iis) -- [Create a Mobile Service in Remote IIS](#create-a-mobile-service-in-remote-iis) -- [Deploy Another Instance of a Mobile Service](#deploy-another-instance-of-a-mobile-service) -- [Create a Mobile Service by Copying an Existing Service](#create-a-mobile-service-by-copying-an-existing-service) -- [View Mobile Service Details](#view-mobile-service-details) -- [Launch a Mobile Service or a Service Instance](#launch-a-mobile-service-or-a-service-instance) - -## Create a Mobile Service in Native IIS - -When you deploy a Mobile service in native IIS, GroupID does the following: - -- It creates a directory with the Mobile service’s name at the following physical path on the - GroupID server, and copies the service files from its template directory to the new service - directory: - X:\Program Files\Imanami\GroupID 11.0\GroupIDMobileService\Inetpub\ - (X represents the GroupID installation drive). -- It also creates a virtual directory for the service in your desired IIS site. - -The Mobile service runs within a virtual directory in IIS while the service files are physically -located on disk. - -**To create a Mobile Service:** - -1. In Admin Center, click **Applications** in the left pane. -2. Click **Add Application**. -3. On the next page, select **Mobile Service** and click **Next step**. -4. On the **Create GroupID Application** page, make sure the **IIS** tile is selected. -5. In the **Application Name** box, enter a unique name for the Mobile service or use the default - name. The Mobile service is displayed with this name in GroupID. -6. In the **Deployment Name** box, enter a deployment name for the service. This name is used to - indicate the deployment instance of the service in GroupID. A service can have multiple - deployments, for example, one in native IIS and another in remote IIS. The application name and deployment - name are displayed on the service card, as shown below: - - ![ms_card](/images/directorymanager/11.0/admincenter/mobileservice/ms_card.webp) - -7. In the **IIS Application Name** box, enter an IIS deployment name for the service. The name - should be unique for each Mobile service deployed in IIS. - - - The IIS application name is used to name the service’s directory in IIS and its physical - directory under X:\Program Files\Imanami\GroupID 11.0\GroupIDMobileService\Inetpub\. - (X represents the GroupID installation drive.) - - This IIS application name is also appended to the web server address to construct the URL that - users click to access this deployment instance of the service. Users can then configure the - GroupID app with this instance. For example: - `https://:/` - Hence, a different URL is constructed for each deployment of a service in IIS. - -8. In the **IIS Site** drop-down list, select a website to host the service files. - The list displays the websites defined on the local IIS server. _GroupIDSite11_ is the default - selection. -9. In the **Service Endpoints** area, bind a Data service and a Security service with the Mobile - service. - - 1. In the **Data Service** drop-down list, select a Data service. When the GroupID app is - configured using this deployment of the Mobile service, it will use the Data service you - select here. - 2. In the **Security Service** drop-down list, select a Security service. When the GroupID app - is configured using this deployment of the Mobile service, it will use the Security service - you select here. - -10. In the **Select Identity Stores** area, select the check boxes for the identity stores you want - to associate with the Mobile service. When the GroupID app is configured using this Mobile - service, app users will be presented with these identity stores for signing in. -11. Click **Create Application**. - The Mobile service is created and displayed on the **Mobile Service** tab. - -## Create a Mobile Service in Remote IIS - -You can deploy a Mobile service within a site in remote IIS. For this, you need to connect with the -Microsoft IIS Administration API running on the remote IIS machine. - -When you create a service in remote IIS, GroupID does the following: - -- It creates a virtual directory for the service in a preconfigured site in remote IIS. -- It creates a physical directory for the service in the folder that is mapped to this preconfigured - site. - -The service runs within a virtual directory in remote IIS while the service files are physically -located on disk. - -To learn about the remote IIS settings and configurations before deploying a service there, see the -[Prerequisites for Deployments in Remote IIS](/docs/directorymanager/11.0/signin/applications/remoteiisprerequisites.md) -topic. - -**To create a service:** - -1. In Admin Center, click **Applications** in the left pane. -2. Click **Add Application**. -3. On the next page, select **Mobile Service** and click **Next step**. -4. On the **Create GroupID Application**page, select the **Remote IIS** tile. -5. In the **Application Name** box, enter a unique name for the Mobile service or use the default - name. The service is displayed in GroupID with this name. -6. In the **Deployment Name** box, enter a deployment name for the service. This name is used to - indicate the deployment instance of the service in GroupID. A Mobile service can have multiple - deployments, for example, one in native IIS and another in remote IIS. - The application name and deployment name are displayed on the service card. -7. To enter information for **API URL**, **Access Token**, **Username**, **Password**, **IIS - Application Name**, and **Website**, refer to steps 7-11 in the - [Create a Portal in Remote IIS](/docs/directorymanager/11.0/signin/applications/portal/create.md#create-a-portal-in-remote-iis) - topic. Replace any reference to the portal with the Mobile service. -8. To enter information in the **Service Endpoints** and **Select Identity Stores** areas, refer to - steps 9-10 in the [Create a Mobile Service in Native IIS](#create-a-mobile-service-in-native-iis) - topic. -9. Click **Create Application**. - The Mobile service is displayed on the **Mobile Service** tab. - -## Deploy Another Instance of a Mobile Service - -GroupID enables you to deploy more than one instance of a Mobile Service. Instances can be deployed -in different web servers, for example, one in native IIS and another in remote IIS. -For more on how instances work, see the -[Deploy Multiple Instances of a Portal](/docs/directorymanager/11.0/signin/applications/portal/create.md#deploy-multiple-instances-of-a-portal) -topic. - -To deploy a new instance, you have to provide deployment details only. All instances share the same -server and design configurations, while only deployment details differ. For example, all instances -serve the same identity stores and have the same display and search-related configurations. Changing -a shared setting propagates to all deployment instances of the service. - -**To deploy an instance:** - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Deploy - Another Instance**. -3. Select the **IIS** or **Remote IIS** tile to indicate the web server where you want to deploy the - service instance. - The **Application Name** field displays the name of the service as read-only. -4. Fields on the page vary, depending on the web server selected. In any case, the **Select Identity - Stores** area is not available, as it remains the same for all instances. - - - To deploy an instance in native IIS, follow steps 6-9 in the - [Create a Mobile Service in Native IIS](#create-a-mobile-service-in-native-iis) topic. - - To deploy an instance in remote IIS, follow steps 6-8 in the - [Create a Mobile Service in Remote IIS](#create-a-mobile-service-in-remote-iis) topic. - -5. After entering the required information, click **Deploy Instance**. - The new instance is created and displayed on the service’s card. - - ![ms_instance_deployed](/images/directorymanager/11.0/admincenter/mobileservice/ms_instance_deployed.webp) - -## Create a Mobile Service by Copying an Existing Service - -You can create a new Mobile service by copying an existing service. All server and design -configurations of the template service are duplicated to the new service. Deployment details are not -duplicated, so you can choose to deploy the new service in any of the supported web servers. - -**To create a service:** - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Copy**. - The **Copy GroupID Application** page is displayed; populated with the following settings of the - copied service: - - - The Data service and Security service linked to the service - - The identity store(s) linked with the service - -3. You can deploy the new service in native IIS or remote IIS. - - - To specify settings for a native IIS deployment, follow the instructions in the - [Create a Mobile Service in Native IIS](#create-a-mobile-service-in-native-iis) topic, - beginning at step 4. - - To specify settings for a remote IIS deployment, follow the instructions in the - [Create a Mobile Service in Remote IIS](#create-a-mobile-service-in-remote-iis), beginning at - step 4. - -## View Mobile Service Details - -1. In GroupID Admin Center, select **Applications** in the left pane. -2. On the **Applications** page, click the **Mobile Service** tab. - The tab displays the default Mobile service in GroupID and any other Mobile service that you have - created. For details displayed on a service card, see the table in the - [View Data Service Details](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#view-data-service-details) - topic. - -## Launch a Mobile Service or a Service Instance - -To launch a Mobile service or an instance of a service means that you launch the -**GroupIDMobileService** page in a web browser, which displays a server URL and a QR code. Users can -use any of these to configure the GroupID app on their phones. See the -[Configure the App](/docs/directorymanager/11.0/signin/service/mobileservice/phonesetup.md#configure-the-app) -topic. - -To launch a service or a service instance: - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click **Launch Application** on a service’s card to launch it. - When multiple deployments of a service are available, select a deployment instance on the card - and click **Launch Application** to launch that instance. - - ![mobileservice](/images/directorymanager/11.0/admincenter/mobileservice/mobileservice.webp) - -Provide the URL of the GroupIDMobileService page to your users so they can use the QR code or the -server URL to set up the GroupID app on their mobile phone while binding it to the respective -deployment instance of the Mobile service. - -You can either copy the URL of the GroupIDMobileService page from the address bar or from a -service's deployment settings. See the -[View the Launch URL for an Instance](/docs/directorymanager/11.0/signin/service/mobileservice/server/deployment.md#view-the-launch-url-for-an-instance) -topic. - -**See Also** - -- [Mobile Service](/docs/directorymanager/11.0/signin/service/mobileservice/overview.md) diff --git a/docs/directorymanager/11.0/signin/service/mobileservice/delete.md b/docs/directorymanager/11.0/signin/service/mobileservice/delete.md deleted file mode 100644 index 3ac520d320..0000000000 --- a/docs/directorymanager/11.0/signin/service/mobileservice/delete.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "Delete a Service" -description: "Delete a Service" -sidebar_position: 20 ---- - -# Delete a Service - -You can delete a Mobile service or an instance of a service. On deleting a service, all its -instances are deleted with it. - -What do you want to do? - -- Delete a Deployment Instance for a Service -- Delete a Service - -## Delete a Deployment Instance for a Service - -A service can have multiple deployment instances. When you delete an instance, the following is -removed: - -- **For an instance in native IIS:** - - - The service directory under the following location on the GroupID server: - X:\Program Files\Imanami\GroupID 11.0\GroupIDMobileService\Inetpub\ - (X represents the GroupID installation drive) - - The service directory in the IIS site - -- **For an instance in remote IIS:** - - - The service's directory in the remote IIS site - - The service's physical directory under the folder mapped to the remote IIS site - -- **For an instance in Docker:** - - The container created in Docker Engine for the service - -**To delete a deployment instance:** - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Settings**. -3. Select **Deployments** under **Server Settings** in the left pane. - The **Deployment Settings** page has varying tabs, depending on the deployment instances of the - service. - - - The **IIS** tab is available when one or more service instances are deployed in native IIS. - - The **Remote IIS** tab is available when one or more service instances are deployed in remote - IIS. - - The **Docker** tab is available when one or more service instances are deployed in Docker. - - Select a tab to delete a service instance deployed in the respective web server. - -4. The **Select Application Deployment** drop-down list displays the service instances deployed on - the selected web server. Select an instance and click **Delete**. - -## Delete a Service - -Deleting a Mobile service removes all its deployments and configurations from GroupID. - -**To delete a service:** - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Delete**. diff --git a/docs/directorymanager/11.0/signin/service/mobileservice/design/_category_.json b/docs/directorymanager/11.0/signin/service/mobileservice/design/_category_.json deleted file mode 100644 index e1cbfbe86a..0000000000 --- a/docs/directorymanager/11.0/signin/service/mobileservice/design/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Design Settings", - "position": 50, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/service/mobileservice/design/objectproperties.md b/docs/directorymanager/11.0/signin/service/mobileservice/design/objectproperties.md deleted file mode 100644 index 341c2214bd..0000000000 --- a/docs/directorymanager/11.0/signin/service/mobileservice/design/objectproperties.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: "Customize Object Properties Pages" -description: "Customize Object Properties Pages" -sidebar_position: 30 ---- - -# Customize Object Properties Pages - -Users can view basic information (properties) of the following directory objects in the GroupID app: - -- Users/Contacts -- Groups - -You can customize the property page for an object by specifying the fields (attributes) to display -for that object in the app. - -What do you want to do? - -- [Add a Field to the Properties Page](#add-a-field-to-the-properties-page) -- [Edit a Field on the Properties Page](#edit-a-field-on-the-properties-page) -- [Remove a Field from the Properties Page](#remove-a-field-from-the-properties-page) - -## Add a Field to the Properties Page - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Settings**. -3. Select an identity store under **Design Settings** to customize the app design for it. - All identity stores associated with the Mobile service are listed under **Design Settings**. You - can design a different app for each of these. -4. Click **Properties** in the left pane. The **Properties** page is displayed. -5. In the **Select Directory Object** drop-down list, select a directory object. - The **Name** list displays the tabs currently available on the object’s properties page. -6. Click **Edit** for a form to modify it. -7. On the **Edit Design Category** pane, the **Fields** area displays the fields on the properties - page. Click **Add Field**. -8. On the **Add Field** pane, provide the following information and click **OK**: - - - **Field** – Select a schema attribute to link to the field. The field will display the value - of this attribute. - - **Display Name** – Enter a display name for the field. This name serves as the field’s label - in the app. - - **Display Type** – Select a display type to render this field in the app. - -9. Click **OK** on the **Edit Design Category** pane. -10. Click **Save**. - -## Edit a Field on the Properties Page - -You can change the following for a field on a properties page: - -- The name of the field, as displayed in the app -- The schema attribute linked to the field -- The display type used to render the field in the app - -**To update a field:** - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Settings**. -3. Select an identity store under **Design Settings** to customize the app design for it. - All identity stores associated with the Mobile service are listed under **Design Settings**. You - can design a different app for each of these. -4. Click **Properties** in the left pane. -5. On the **Properties** page, select a directory object in the **Select Directory Object** - drop-down list. - The **Name** list displays the tabs currently available on the object’s properties page. -6. Click **Edit** for a form to modify it. -7. On the **Edit Design Category** pane click **Edit** for a field to update it. - The **Edit Field** pane is displayed. Follow steps 8-10 in the - [Add a Field to the Properties Page](#add-a-field-to-the-properties-page) topic to update the - field. - -## Remove a Field from the Properties Page - -1. n Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Settings**. -3. Select an identity store under **Design Settings** to customize the app design for it. - All identity stores associated with the Mobile service are listed under **Design Settings**. You - can design a different app for each of these. -4. Click **Properties** in the left pane. -5. On the **Properties** page, select a directory object in the **Select Directory Object** - drop-down list. - The **Name** list displays the tabs currently available on the object’s properties page. -6. Click **Edit** for a form to modify it. -7. On the **Edit Design Category** pane, the **Fields** area displays the fields on the properties - page. Click **Remove** for a field to remove it from the properties page. -8. Click **OK**. -9. Click **Save**. - -**See Also** - -- [Mobile Service](/docs/directorymanager/11.0/signin/service/mobileservice/overview.md) -- [Design Settings](/docs/directorymanager/11.0/signin/service/mobileservice/design/overview.md) diff --git a/docs/directorymanager/11.0/signin/service/mobileservice/design/overview.md b/docs/directorymanager/11.0/signin/service/mobileservice/design/overview.md deleted file mode 100644 index d70bd2244b..0000000000 --- a/docs/directorymanager/11.0/signin/service/mobileservice/design/overview.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "Design Settings" -description: "Design Settings" -sidebar_position: 50 ---- - -# Design Settings - -With identity stores associated with a Mobile service, GroupID enables you to define design settings -for each of the identity stores. When users configure the GroupID app with a Mobile service or an -instance of the service, the design settings apply to the app. In this way, the app offers a -different design and functionality for each linked identity store. - -You can customize the following design settings for an identity store associated with a Mobile -service: - -- Directory Search: specify the schema attributes whose values will be matched when users perform a - search in the app. See the - [Manage Search Attributes](/docs/directorymanager/11.0/signin/service/mobileservice/design/quicksearch.md) - topic. -- Search Results: control the fields to be displayed on the search results pages in the app. See the - [Customize the Search Results Pages](/docs/directorymanager/11.0/signin/service/mobileservice/design/searchresults.md) - topic. -- Object Properties: control what properties of directory objects (user, group) you want to display - in the app. See the - [Customize Object Properties Pages](/docs/directorymanager/11.0/signin/service/mobileservice/design/objectproperties.md) - topic. -- Permissions: grant permissions on different functions of the app to security roles in an identity - store. See the - [Grant Permissions to Security Roles](/docs/directorymanager/11.0/signin/service/mobileservice/design/permissions.md) - topic. -- Property Validation: manage the fields (schema attributes) that users must review and update while - validating their profiles using the app. See the - [Manage Property Validation](/docs/directorymanager/11.0/signin/service/mobileservice/design/propertyvalidation.md) - topic. - -**See Also** - -- [Mobile Service](/docs/directorymanager/11.0/signin/service/mobileservice/overview.md) diff --git a/docs/directorymanager/11.0/signin/service/mobileservice/design/permissions.md b/docs/directorymanager/11.0/signin/service/mobileservice/design/permissions.md deleted file mode 100644 index 056711aecc..0000000000 --- a/docs/directorymanager/11.0/signin/service/mobileservice/design/permissions.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Grant Permissions to Security Roles" -description: "Grant Permissions to Security Roles" -sidebar_position: 40 ---- - -# Grant Permissions to Security Roles - -In GroupID, three security roles are defined by default in an identity store: Administrator, -Helpdesk, and User. More security roles can be added as required. - -NOTE: In a Microsoft Entra ID identity store, the Helpdesk role is not available by default. - -You can grant permissions on the GroupID app to security roles that exist in an identity store -associated with a Mobile service, so that role members can access the allowed features only. - -What do you want to do? - -- Grant Permissions to Security Roles - -## Grant Permissions to Security Roles - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Settings**. -3. Select an identity store under **Design Settings** to customize the app design for it. - All identity stores associated with the Mobile service are listed under **Design Settings**. You - can design a different app for each of these. -4. Click **Features** in the left pane. - All security roles in the identity store are listed in the **Role** column. You can grant - permissions to a role on the following app features: - - - **Directory Search**: Enables role members to search the directory. - - **Workflow**: Enables role members to view the workflow requests. - -5. To grant permission to a role on a function, select the check box for it. - To deny permission, clear the respective check box. -6. Click **Save**. - -**See Also** - -- [Mobile Service](/docs/directorymanager/11.0/signin/service/mobileservice/overview.md) -- [Design Settings](/docs/directorymanager/11.0/signin/service/mobileservice/design/overview.md) diff --git a/docs/directorymanager/11.0/signin/service/mobileservice/design/propertyvalidation.md b/docs/directorymanager/11.0/signin/service/mobileservice/design/propertyvalidation.md deleted file mode 100644 index b26f7d653e..0000000000 --- a/docs/directorymanager/11.0/signin/service/mobileservice/design/propertyvalidation.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: "Manage Property Validation" -description: "Manage Property Validation" -sidebar_position: 50 ---- - -# Manage Property Validation - -In GroupID, property validation applies to: - -- Users -- Groups - -#### Profile Validation for Users - -See the -[Profile Validation for Users](/docs/directorymanager/11.0/signin/applications/portal/displaytype/propertyvalidation.md#profile-validation-for-users) -topic. - -#### Property Validation for Groups - -See the -[Property Validation for Groups](/docs/directorymanager/11.0/signin/applications/portal/displaytype/propertyvalidation.md#property-validation-for-groups) -topic. - -What do you want to do? - -- [Add a Property Validation Field](#add-a-property-validation-field) -- [Edit a Field](#edit-a-field) -- [Remove a Field](#remove-a-field) - -## Add a Property Validation Field - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Settings**. -3. Select an identity store under **Design Settings** to customize the app design for it. - All identity stores associated with the Mobile service are listed under **Design Settings**. You - can design a different app for each of these. -4. Click **Property Validation** in the left pane. -5. In the **Select Directory Object** drop-down list on the **Property Validation** page, select: - - - **Group:** to add, edit, or remove attributes for group attestation. - - **User:** to add, edit, or remove attributes for user profile validation. - - On selecting an option, the fields available for group attestation or profile validation in the - app are listed under **Name**. - -6. Click **Add** to add a new field. The **Add Profile Validation Attribute** pane is displayed. -7. Select an attribute from the **Field** drop-down list. -8. In the **Display Name** box, specify a name to use as the field’s label on the Attest - Group/Validate Profile page of the app. -9. In the **Display Type** drop-down list, select a display type for rendering the attribute (field) - in the app. -10. In the **Visibility Level** drop-down list, select a security role. The field would be visible - to users of this role and roles with a priority value higher than this role. See - [Priority](/docs/directorymanager/11.0/signin/securityrole/manage.md). - Select _Never_ to hide the field from all users. -11. Click **Advanced options** to enter further details for the field. -12. As mentioned for visibility level, the field is visible to members of the selected role and - roles with a priority value higher than the selected role. - In the **Exclude Roles** area, select the check boxes for the higher priority roles you want to - hide the field from. -13. In the **ToolTip Text** box, enter the help text to appear when a user hovers the mouse over the - field. -14. In the **Max Length** box, enter a number that represents the maximum number of characters that - users can enter as value for the field. Entering _0_ indicates it can accept an unlimited number - of characters as value. -15. Select the **Is Required** check box to force users to provide a value for the field. -16. Select the **Is Read Only** check box to make the field read-only. -17. Click **OK**. -18. Click **Save**. - -## Edit a Field - -You can change the following for a field available in the app for group attestation or user profile -validation: - -- The attribute associated with the field -- The display name (the field is displayed with this label in the app) -- The display type used to render the field in the app -- Visibility level -- Tooltip -- The maximum characters that a user can enter as value for the field -- Make the field editable or read–only -- Make it optional or mandatory for users to provide a value for the field - -**To update a field:** - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Settings**. -3. Select an identity store under **Design Settings** to customize the app design for it. - All identity stores associated with the Mobile service are listed under **Design Settings**. You - can design a different app for each of these. -4. Click **Property Validation** in the left pane. -5. In the **Select Directory Object** drop-down list on the **Property Validation** page, select: - - - **Group:** to update a group attestation field. - - **User:** to update a user profile validation field. - -6. In the **Name** area, click **Edit** for a field. -7. Modify the required info on the **Edit Profile Validation Attribute** pane. Follow the steps in - the [Add a Property Validation Field](#add-a-property-validation-field) topic, beginning at - step 7. - -## Remove a Field - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Settings**. -3. Select an identity store under **Design Settings** to customize the app design for it. - All identity stores associated with the Mobile service are listed under **Design Settings**. You - can design a different app for each of these. -4. Click **Property Validation** in the left pane. -5. In the **Select Directory Object** drop-down list on the **Property Validation** page, select: - - - **Group:** to remove a field from the Attest Group page in the app. - - **User:** to remove a field from the Validate Profile page in the app. - -6. In the **Name** area, click **Remove** for a field to remove it. -7. Click **Save**. - -**See Also** - -- [Mobile Service](/docs/directorymanager/11.0/signin/service/mobileservice/overview.md) -- [Design Settings](/docs/directorymanager/11.0/signin/service/mobileservice/design/overview.md) diff --git a/docs/directorymanager/11.0/signin/service/mobileservice/design/quicksearch.md b/docs/directorymanager/11.0/signin/service/mobileservice/design/quicksearch.md deleted file mode 100644 index a8bbb7b35c..0000000000 --- a/docs/directorymanager/11.0/signin/service/mobileservice/design/quicksearch.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: "Manage Search Attributes" -description: "Manage Search Attributes" -sidebar_position: 10 ---- - -# Manage Search Attributes - -In the GroupID mobile app, users can search for directory objects (groups, users, contacts) in an -identity store. You can specify the schema attributes that search is performed on. When a user -enters a search string, the values of the specified attributes are matched to return the results. - -You can also specify a search operator that determines what part of the attribute value should match -the search string. - -What do you want to do? - -- [Specify Search Attributes](#specify-search-attributes) - -## Specify Search Attributes - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Settings**. -3. Select an identity store under **Design Settings** to customize the app design for it. - All identity stores associated with the Mobile service are listed under **Design Settings**. You - can design a different app for each of these. -4. Click **Search Forms** in the left pane. -5. On the **Search Forms** page, click the **Quick Search Attributes** tab. -6. On the **Quick Search Attributes** tab, the **Name** column lists the schema attributes whose - values will be matched when a user enters a search string in the app's directory search box. - Click **Add** to add an attribute to this list. -7. On the **Add Search Attribute** dialog box, select a schema attribute in the **Attribute** - drop-down list and click **OK**. - The attribute is displayed in the **Name** column on the **Quick Search Attributes** tab. - To remove an attribute, click **Remove** for it. -8. Click **Save**. - -To specify an operator: - -1. In the **Quick Search Operator** drop-down list on the **Quick Search Attributes** tab, select an - option. - - - **Equal** - looks up the values of the attributes listed in the **Name** column and returns - records with values exactly matching the search string. - - **Contains** - looks up the values of the attributes listed in the **Name** column and returns - records that contain the string anywhere in their values. - - **Starts with** - looks up the values of the attributes listed in the **Name** column and - returns records with values starting with the search string. - - **Ends with** - looks up the values of the attributes listed in the Name column and returns - records with values ending with the search string. - -2. Click **Save**. - -**See Also** - -- [Mobile Service](/docs/directorymanager/11.0/signin/service/mobileservice/overview.md) -- [Design Settings](/docs/directorymanager/11.0/signin/service/mobileservice/design/overview.md) diff --git a/docs/directorymanager/11.0/signin/service/mobileservice/design/searchresults.md b/docs/directorymanager/11.0/signin/service/mobileservice/design/searchresults.md deleted file mode 100644 index 58f4073564..0000000000 --- a/docs/directorymanager/11.0/signin/service/mobileservice/design/searchresults.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: "Customize the Search Results Pages" -description: "Customize the Search Results Pages" -sidebar_position: 20 ---- - -# Customize the Search Results Pages - -When a user searches for objects in the GroupID app, matched items are displayed on the following -search results pages: - -- Groups: displays search results for group objects. -- Default: displays search results for user and contact objects. - -You can customize these pages by adding, updating, and removing fields. - -What do you want to do? - -- [Add a Field to a Search Results Page](#add-a-field-to-a-search-results-page) -- [Edit a Field on a Search Results Page](#edit-a-field-on-a-search-results-page) -- [Remove a Field from a Search Results Page](#remove-a-field-from-a-search-results-page) - -## Add a Field to a Search Results Page - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Settings**. -3. Select an identity store under **Design Settings** to customize the app design for it. - All identity stores associated with the Mobile service are listed under **Design Settings**. You - can design a different app for each of these. -4. Click **Search Forms** in the left pane. - The **Search Results** tab of the **Search Forms** page lists the search result forms in the - GroupID mobile app. -5. Click **Edit** for a form to modify it. -6. On the **Edit Search Results** pane, the **Fields** area lists the fields available on the search - results page. Click **Add Field** to add a new field. -7. On the **Add Field** pane, provide the following information and click **OK**: - - - **Field** – Select a schema attribute to link to this field. The field will display the value - of this attribute on the search results page. - - **Display Name** – Enter a display name for the field. This name is the field’s label on the - search results page. - - **ToolTip** – Enter the text to appear when a user hovers the mouse over the field. - - **Display Type** – Select a display type to render this field in the app. - -8. Click **OK** on the **Edit Search Results** pane. -9. Click **Save**. - -## Edit a Field on a Search Results Page - -You can change the following for a field on a search results page: - -- The name of the field, as displayed in the app -- The schema attribute linked to the field -- The display type used to render the field in the app -- The tooltip for the field - -To update a field: - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Settings**. -3. Select an identity store under **Design Settings** to customize the app design for it. - All identity stores associated with the Mobile service are listed under **Design Settings**. You - can design a different app for each of these. -4. Click **Search Forms** in the left pane. - The **Search Results** tab of the **Search Forms** page lists the search result forms in the - GroupID mobile app. -5. Click **Edit** for a form to modify it. -6. On the **Edit Search Results** pane, click **Edit** for a field to update it. - The **Edit Field** pane is displayed. Follow step 7 and onwards in the - [Add a Field to a Search Results Page](#add-a-field-to-a-search-results-page) topic to update the - field. - -## Remove a Field from a Search Results Page - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Settings**. -3. Select an identity store under **Design Settings** to customize the app design for it. - All identity stores associated with the Mobile service are listed under **Design Settings**. You - can design a different app for each of these. -4. Click **Search Forms** in the left pane. - The **Search Results** tab of the **Search Forms** page lists the search result forms in the - GroupID mobile app. -5. Click **Edit** for a form to modify it. -6. On the **Edit Search Results** pane, click **Remove** for a field to remove it from the search - results page. -7. Click **OK**. -8. Click **Save**. - -**See Also** - -- [Mobile Service](/docs/directorymanager/11.0/signin/service/mobileservice/overview.md) -- [Design Settings](/docs/directorymanager/11.0/signin/service/mobileservice/design/overview.md) diff --git a/docs/directorymanager/11.0/signin/service/mobileservice/overview.md b/docs/directorymanager/11.0/signin/service/mobileservice/overview.md deleted file mode 100644 index 1953021f37..0000000000 --- a/docs/directorymanager/11.0/signin/service/mobileservice/overview.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: "Mobile Service" -description: "Mobile Service" -sidebar_position: 10 ---- - -# Mobile Service - -The Mobile service enables the GroupID mobile app to communicate with the GroupID server, enabling -it to work on smartphones. - -NOTE: The GroupID app can connect with the Mobile service over HTTP and HTTPS. For HTTPS, a security -certificate from a trusted certification authority is required. - -The app enables users to manage the following in an identity store from their smartphones: - -- Search the directory -- Validate their directory profile -- Enroll their identity store accounts -- Join and leave semi-private and public groups -- View the groups they own and the groups they are members of -- Approve and deny workflow requests -- Make phone calls and send emails to users and contacts -- Change their identity store account password -- Reset their identity store account password -- Unlock their identity store account - -Actions performed in the app are logged in Admin Center history. See the -[History in GroupID](/docs/directorymanager/11.0/signin/concepts/history.md) topic. - -To secure access to the app, the administrator can enable the following for an identity store: - -- Second factor authentication: applies when users sign into the app. -- Multifactor authentication: applies when users change their identity store passwords, reset their - passwords, or unlock their accounts using the app. - -## Installation and Configuration - -By default, one Mobile service is created in Admin Center. You can create and deploy one or more -Mobile services in native IIS, remote IIS, and Docker. You can also create multiple instances of the -same service. For more info, refer to -the [Host a Portal](/docs/directorymanager/11.0/signin/applications/portal/create.md#host-a-portal) -topic. - -After creating a Mobile service, you can configure the following for it: - -**In Admin Center** - -- [Server Settings](/docs/directorymanager/11.0/signin/service/mobileservice/server/overview.md), - that control deployment settings and file logging. -- [Design Settings](/docs/directorymanager/11.0/signin/service/mobileservice/design/overview.md), - that control what users can view and do in an identity store using the app. - -**On a smartphone** - -The Android, Windows, and iOS versions of the GroupID app are available on Google Play, Windows -Store, and App Store respectively. To install and configure the app, see the -[Install and Configure the GroupID App](/docs/directorymanager/11.0/signin/service/mobileservice/phonesetup.md) -topic. - -See Also - -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) -- [Services](/docs/directorymanager/11.0/signin/service/overview.md) diff --git a/docs/directorymanager/11.0/signin/service/mobileservice/phonesetup.md b/docs/directorymanager/11.0/signin/service/mobileservice/phonesetup.md deleted file mode 100644 index 89ab33e941..0000000000 --- a/docs/directorymanager/11.0/signin/service/mobileservice/phonesetup.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: "Install and Configure the GroupID App" -description: "Install and Configure the GroupID App" -sidebar_position: 30 ---- - -# Install and Configure the GroupID App - -To use the GroupID app on a smartphone, users must do the following: - -- Install the GroupID app on their smartphone -- Connect it to the GroupID server - -## Install the App - -The Android, Windows, and iOS versions of the GroupID mobile app have been published on Google Play, -Windows Store, and App Store respectively. - -1. Go to the relevant store on your smartphone and search for **Imanami GroupID**. -2. Install the app and launch it on your phone. - -## Configure the App - -The GroupID app uses the Mobile service to communicate with the GroupID server. Mobile service can -be hosted on any of these three web servers: native IIS, remote IIS, and Docker. - -To connect the app to the GroupID server, you must register the URL of the web server that hosts the -Mobile service in the app. Choose any of the following methods to do so: - -- Enter the web server URL manually in the app, or -- Scan a QR code with your phone. - -NOTE: Since you can have multiple Mobile services as well as multiple instances of the same service, -the administrator should provide the URL or QR code of the specific service or instance that they -want users to configure the app with. - -### Manually Provide the Web Server URL - -The web server URL for a Mobile service or an instance of a service is displayed on the -**GroupIDMobileService** page (see the -[Launch a Mobile Service or a Service Instance](/docs/directorymanager/11.0/signin/service/mobileservice/create.md#launch-a-mobile-service-or-a-service-instance) -topic). Provide it to your users to enable them to configure the app. - -**To get the URL of the page that displays the web server URL:** - -1. Launch the required Mobile service or its instance. (See the - [Launch a Mobile Service or a Service Instance](/docs/directorymanager/11.0/signin/service/mobileservice/create.md#launch-a-mobile-service-or-a-service-instance) - topic.) -2. Copy the URL of the **GroupIDMobileService** page and provide it to your users, so they can open - this page in a web browser. - -**To enter the web server URL in the app:** - -1. When you launch the GroupID app on your smartphone for the first time, the **Configure** page is - displayed. Tap **Configure Application Manually**. -2. Copy the web server URL displayed on the GroupIDMobileService page and enter it in the **GroupID - Server URL** box in the app. -3. Tap **Save and Proceed**. - The app validates the URL and on success, the **Login** page is displayed. Sign into the app and - start using it. - -### Scan the QR Code - -The QR code is an easy way to configure the GroupID app. Provide the QR code of a Mobile aervice or -an instance of a service to users, so they can scan it to connect the app with the respective -service. - -**To get the URL of the page that displays the QR code:** - -1. Launch the required Mobile service or its instance. (See the - [Launch a Mobile Service or a Service Instance](/docs/directorymanager/11.0/signin/service/mobileservice/create.md#launch-a-mobile-service-or-a-service-instance) - topic.) -2. Copy the URL of the **GroupIDMobileService** page and provide it to your users, so they can open - this page in a web browser. - -**To configure the app with QR code:** - -1. Launch the **GroupIDMobileService** page with the given URL. -2. Launch the GroupID app on your smartphone and tap **Configure Application using QR Code** on the - **Configure** page. -3. Scan the QR code with your smartphone. - On successful configuration, the **Login** page is displayed. Sign into the app and start using - it. - -**See Also** - -- [Mobile Service](/docs/directorymanager/11.0/signin/service/mobileservice/overview.md) diff --git a/docs/directorymanager/11.0/signin/service/mobileservice/server/_category_.json b/docs/directorymanager/11.0/signin/service/mobileservice/server/_category_.json deleted file mode 100644 index 147ed705a9..0000000000 --- a/docs/directorymanager/11.0/signin/service/mobileservice/server/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Server Settings", - "position": 40, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/service/mobileservice/server/deployment.md b/docs/directorymanager/11.0/signin/service/mobileservice/server/deployment.md deleted file mode 100644 index 88f60379f0..0000000000 --- a/docs/directorymanager/11.0/signin/service/mobileservice/server/deployment.md +++ /dev/null @@ -1,145 +0,0 @@ ---- -title: "Manage Deployment Settings" -description: "Manage Deployment Settings" -sidebar_position: 20 ---- - -# Manage Deployment Settings - -You can manage various deployment settings for a Mobile service in any of the web servers: native -IIS and remote IIS. - -What do you want to do? - -- [View the Deployment(s) for a Mobile Service](#view-the-deployments-for-a-mobile-service) -- [Start or Stop a Deployment Instance](#start-or-stop-a-deployment-instance) -- [View the Launch URL for an Instance](#view-the-launch-url-for-an-instance) -- [View the Data Service and Security Service Bound to an Instance](#view-the-data-service-and-security-service-bound-to-an-instance) -- [Manage Event Logging for an Instance](#manage-event-logging-for-an-instance) -- [Change the IIS Application Name for an Instance (Native IIS)](#change-the-iis-application-name-for-an-instance-native-iis) -- [Move an Instance under a Different Site (Native IIS)](#move-an-instance-under-a-different-site-native-iis) -- [View the Deployment Settings for an Instance (Remote IIS)](#view-the-deployment-settings-for-an-instance-remote-iis) - -## View the Deployment(s) for a Mobile Service - -A Mobile service can have multiple deployments in the same or different web servers. You can update -certain settings for each deployment instance of a service. - -**To view a service’s deployment instances:** - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Settings**. -3. Click **Deployments** under **Server Settings**; the **Deployment Settings** page is displayed: -4. The **Deployment Settings** page has varying tabs, depending on the deployment instances of the - service. - - - The **IIS** tab is available when one or more service instances are deployed in native IIS. - Select an instance to view the name of the instance directory in IIS, the IIS site that hosts - the instance, the URL for the instance, the Data service and Security service associated with - the instance, and logging levels. - - The **Remote IIS** tab is available when one or more service instances are deployed in remote - IIS. Select an instance to view the Microsoft IIS Administration API URL and access token that - GroupID uses to communicate with the remote IIS server, the credentials used to communicate - with the API, the site that hosts the instance, the Data service and Security service - associated with the instance, and logging levels. - -## Start or Stop a Deployment Instance - -See the -[Start or Stop a Service](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#start-or-stop-a-service) -topic for details. Remember to use the **Select Application Deployment** drop-down list to select -the Mobile service instance you want to start or stop. - -## View the Launch URL for an Instance - -See the -[View the Launch URL for a Service](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#view-the-launch-url-for-a-service) -topic for details. Remember to use the **Select Application Deployment** drop-down list to select -the Mobile service instance you want to view the launch URL for. - -Use the launch URL for a Mobile service instance to launch the GroupIDMobileService page, which is -shown in the -[Launch a Mobile Service or a Service Instance](/docs/directorymanager/11.0/signin/service/mobileservice/create.md#launch-a-mobile-service-or-a-service-instance) -topic. - -## View the Data Service and Security Service Bound to an Instance - -See the -[View the Data Service and Security Service Bound to an Instance](/docs/directorymanager/11.0/signin/applications/portal/server/nativeiis.md#view-the-data-service-and-security-service-bound-to-an-instance) -topic. Replace references to the portal with the Mobile service. - -## Manage Event Logging for an Instance - -To manage Windows logging and file logging for an instance of a Mobile service, see the -[Specify Log Settings for a Service](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#specify-log-settings-for-a-service) -topic. Remember to use the **Select Application Deployment** drop-down list to select the Mobile -service instance you want to manage event logging for. - -## Change the IIS Application Name for an Instance (Native IIS) - -An instance of a mobile service is assigned an IIS application name to represent its deployment in -IIS. The name uniquely identifies the deployment in the IIS site and is used to name: - -- The instance’s directory in IIS. -- It’s physical directory at the following path on the GroupID server: - X:\Program Files\Imanami\GroupID 11.0\GroupIDMobileService\Inetpub\ - (X represents the GroupID installation drive). - -This name is also appended to the web server address to construct the URL that users click to launch -the GroupIDMobileService page. For example: -`https://:/` - -When you change the IIS application name, it propagates to the instance’s IIS directory, physical -directory, and launch URL. - -**To change the IIS application name:** - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Applications** page, click the tab for the desired service. For example, click the - **Mobile Service** tab. -3. Click the ellipsis button for a service on its respective card and select **Settings**. -4. Click **Deployments** under **Server Settings**.The **Deployment Settings** page is displayed. -5. On the **IIS** tab, the **Select Application Deployment** drop-down list displays all service - instances deployed in native IIS. Select an instance to change its IIS application name. -6. In the **IIS Application Name** box on the **Deployment Configurations** tab, update the IIS - deployment name for the instance. -7. Click **Save**. - -## Move an Instance under a Different Site (Native IIS) - -You can change the IIS site that hosts a deployment instance of a service. In doing so, the URL of -the deployment instance also changes. The updated URL is displayed in the **Launch URL** box on the -**Deployment Settings** page. You must provide the updated URL to your users to enable them to -configure the GroupID app with this deployment instance of the Mobile service. - -**To change the site:** - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Applications** page, click the tab for the desired service. For example, click the - **Mobile Service** tab. -3. Click the ellipsis button for a service on its respective card and select **Settings**. -4. Click **Deployments** under **Server Settings**; the **Deployment Settings** page is displayed. -5. On the **IIS** tab, the **Select Application Deployment** drop-down list displays all service - instances deployed in native IIS. Select an instance to move its directory under a different IIS - site. -6. In the **IIS Site** drop-down list on the **Deployment Configurations** tab, select a site to - move the instance’s directory under it. The list displays the websites defined in native IIS. -7. Click **Save**. - -## View the Deployment Settings for an Instance (Remote IIS) - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Settings**. -3. Click **Deployments** under **Server Settings**; the **Deployment Settings** page is displayed. - Click the **Remote IIS** tab. -4. The **Select Application Deployment** drop-down list displays all service instances deployed in - remote IIS. Select an instance to view its settings. -5. On the **Deployment Configurations** tab, you can view the Microsoft IIS Administration API URL, - access token, and credentials. You can also view the name of the service application in remote - IIS, the site where it is hosted, the URL to launch the instance, and the Data service and - Security service the instance uses. - -**See Also** - -- [Mobile Service](/docs/directorymanager/11.0/signin/service/mobileservice/overview.md) -- [Server Settings](/docs/directorymanager/11.0/signin/service/mobileservice/server/overview.md) diff --git a/docs/directorymanager/11.0/signin/service/mobileservice/server/general.md b/docs/directorymanager/11.0/signin/service/mobileservice/server/general.md deleted file mode 100644 index b4bbdd661f..0000000000 --- a/docs/directorymanager/11.0/signin/service/mobileservice/server/general.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "Manage General Server Settings" -description: "Manage General Server Settings" -sidebar_position: 10 ---- - -# Manage General Server Settings - -You can change the display name of a Mobile service and associate identity stores with it. - -What do you want to do? - -- [Change a Service’s Display Name](#change-a-services-display-name) -- [Associate Identity Stores with a Service](#associate-identity-stores-with-a-service) - -## Change a Service’s Display Name - -See the -[Change a Service’s Display Name](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#change-a-services-display-name) -topic. - -## Associate Identity Stores with a Service - -You must associate one or more identity stores with a Mobile service. When users configure the app -with a particular service, the identity stores associated with that service will be available in the -app for logging in. - -**To associate an identity store:** - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Mobile Service** tab, click the ellipsis button for a service and select **Settings**. -3. The **Identity Stores** area on the **General Settings** page lists the identity stores defined - in Admin Center. It displays the provider type an identity store is created for, and whether the - identity store is enabled. - - - Select the check box for an identity store to associate it with the service. - - Clear the check box for an identity store to dissociate it. - - All instances of this Mobile service serve the identity stores you select here. - -4. Click **Save**. - -**See Also** - -- [Mobile Service](/docs/directorymanager/11.0/signin/service/mobileservice/overview.md) -- [Server Settings](/docs/directorymanager/11.0/signin/service/mobileservice/server/overview.md) diff --git a/docs/directorymanager/11.0/signin/service/mobileservice/server/overview.md b/docs/directorymanager/11.0/signin/service/mobileservice/server/overview.md deleted file mode 100644 index 5564ba37aa..0000000000 --- a/docs/directorymanager/11.0/signin/service/mobileservice/server/overview.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "Server Settings" -description: "Server Settings" -sidebar_position: 40 ---- - -# Server Settings - -Server settings for a Mobile service include: - -- General settings - - Change the name of a service (i.e., the application name given to the service) - - Associate identity stores with a service -- Deployment settings - - Start or stop a service instance - - Change the IIS application name for an instance (for native IIS) - - Move a service instance under a different site (for native IIS) - - View the IIS application name, API-specific details, and the site hosting an instance (for - remote IIS) - - View the port and Service URL for a service instance (for Docker) - - Configure Windows logging and file logging for an instance - - Delete an instance - -**See Also** - -- [Mobile Service](/docs/directorymanager/11.0/signin/service/mobileservice/overview.md) -- [Manage General Server Settings](/docs/directorymanager/11.0/signin/service/mobileservice/server/general.md) -- [Manage Deployment Settings](/docs/directorymanager/11.0/signin/service/mobileservice/server/deployment.md) diff --git a/docs/directorymanager/11.0/signin/service/overview.md b/docs/directorymanager/11.0/signin/service/overview.md deleted file mode 100644 index 400dadfb5f..0000000000 --- a/docs/directorymanager/11.0/signin/service/overview.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: "Services" -description: "Services" -sidebar_position: 110 ---- - -# Services - -GroupID services are long-running, non-UI software applications that operate in the background and -run in their own Windows sessions. They are usually started when you boot the machine they are -hosted on, and are scheduled to run in the background to execute some tasks. You can also start, -pause, and stop them manually. - -GroupID relies on a few of its own services and third-party services for different functions. - -## GroupID Services - -The following table discusses GroupID services. - -| Service | Description | -| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Data service | GroupID uses it to perform core operations and to communicate with Microsoft SQL Server for storing and fetching data in the database. | -| Security service | - Authenticates and authorizes users on different GroupID functions in accordance with their roles. - Encrypts and decrypts data that GroupID Data service stores and fetches from the SQL database. | -| Replication service | Replicates attributes of the group, user, contact, computer, and organizational unit object from the provider (such as Active Directory) to the Elasticsearch repository. In case of multiple Elasticsearch clusters, this service is also responsible for syncing data between clusters. | -| Mobile service | Enables the GroupID app to communicate with the GroupID server. | -| Email service | Maintains a queue of all notification requests generated by identity stores, and sends them one by one. | -| Scheduler service | Initiates schedule runs for scheduled jobs defined in GroupID. | - -These services run in the context of specific accounts that are different from the logged-on user or -the default computer account. See the -[Accounts to Run the Services](#accounts-to-run-the-services)topic for details. - -### Where are these Services Hosted? - -GroupID services are hosted on a web server, that could be native IIS or remote IIS. - -You can create multiple Data services, Security services, and Mobile services while hosting them on -different web servers. For example, you can host one Data service in native IIS and another in -remote IIS. - -To launch IIS on a machine, see -[Opening IIS Manager](https://docs.microsoft.com/en-us/previous-versions/iis/6.0-sdk/ms525920(v=vs.90)). - -![in_iis](/images/directorymanager/11.0/admincenter/portal/in_iis.webp) - -## Third-party Services - -GroupID requires the following third-party services: - -| Service | Description | -| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| SQL Server Browser service | This service fetches the SQL servers present in the environment and displays them on the Database Settings page of the GroupID Configuration Tool, where you configure a database for GroupID. Moreover, GroupID stops when this service stops. | -| Key Distribution Service (KDS) | You must enable the Key Distribution Service (KDS) on the GroupID server if you want to use Group Managed Service Accounts (gMSA) in GroupID. GroupID supports a gMSA in various contexts, such as for the GroupID app pool and as service account for an identity store. | -| Elasticsearch service | This service is responsible for searching the Elasticsearch repository to display object listings and search results in GroupID. If this service stops, GroupID will not work. | - -### Where are these Services Hosted? - -Third-party services are created as Windows services in Windows Services Manager: - -To launch the Services Manager, type ‘ services.msc’ in the Run dialog box and click OK. Here is an -example of services in Windows Services Manager. You can start, stop, disable, and delay a service. - -![in_windows_services_manager](/images/directorymanager/11.0/admincenter/service/in_windows_services_manager.webp) - -## Accounts to Run the Services - -The GroupID Configuration Tool enables you to specify the service accounts to use for the GroupID -app pool and Windows services. - -| Services | Service Account Description | -| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| GroupID App Pool in IIS | Use a domain account or a Group Managed Service Account (gMSA). The account must be a member of the Administrators group or both the Backup Operators and IIS_IUSRS groups. The account is used to manage the GroupID app pool in IIS. Data service, Mobile service, Security service, and the portals run under the app pool. For a Microsoft Entra ID identity store, you can specify a local account (with local administrator rights) in app pool for a machine that is not joined to any domain. | -| Windows services | Use a domain account, system user account, or gMSA. The account must be a member of the Backup Operators group. The account is used to run the Windows services for GroupID, as discussed in the [Third-party Services](#third-party-services) topic. | - -## Elasticsearch Clusters, Nodes, and GroupID - -When you have multiple Elasticsearch clusters in your environment and each cluster has multiple -nodes, you will notice the following: - -- A separate Admin Center, Data service, Security service, and Replication service is created for - each node in a cluster. Hence you will have as many Admin Centers and default services as the - number of nodes in all the clusters. -- A separate Email service and Scheduler service is created for each cluster, where one Email - service and Scheduler service serve all nodes in the cluster. - Hence you will have as many Email services and Scheduler services as the number of clusters. - -Cluster syncing - -Elasticsearch has its own mechanism to sync data between nodes in a cluster. - -To sync data between clusters, GroupID uses the Replication service. You have to enable data sync -for a Replication service within a cluster to sync th cluster's data to other clusters. See the -[Enable Elastic Cluster Syncing](/docs/directorymanager/11.0/signin/service/replicationservice.md#enable-elastic-cluster-syncing) -topic for details. - -**See Also** - -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) diff --git a/docs/directorymanager/11.0/signin/service/replicationservice.md b/docs/directorymanager/11.0/signin/service/replicationservice.md deleted file mode 100644 index 0766a81e8a..0000000000 --- a/docs/directorymanager/11.0/signin/service/replicationservice.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: "Replication Service" -description: "Replication Service" -sidebar_position: 50 ---- - -# Replication Service - -The Replication service replicates the attributes of the following objects from the provider (such -as Active Directory) to the Elasticsearch repository. - -- Group -- User -- Contact -- Computers -- Organizational Unit - -For more on the Replication service, see the -[Elasticsearch and Replication ](/docs/directorymanager/11.0/signin/replication/overview.md)topic. - -The service is also responsible for syncing data between the Elasticsearch clusters in your -environment. - -What do you want to do? - -- [View Replication Service Details](#view-replication-service-details) -- [Manage Replication Service Settings](#manage-replication-service-settings) -- [Enable Elastic Cluster Syncing](#enable-elastic-cluster-syncing) - -## View Replication Service Details - -1. In Admin Center, click **Applications** in the left pane. -2. On the **Applications** page, click the **Service** tab. - The tab displays the default Replication service hosted in native IIS. When multiple GroupID - instances have been deployed, you will find multiple default Replication services on this tab - page, as each instance has its own default Replication service. See the - [Elasticsearch Clusters, Nodes, and GroupID](/docs/directorymanager/11.0/signin/service/overview.md#elasticsearch-clusters-nodes-and-groupid) - topic. - For details displayed on a service card, see the table in the - [View Data Service Details](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#view-data-service-details) - topic. - - You cannot create a Replication Service or delete an existing one from Admin Center. - -## Manage Replication Service Settings - -You can manage the following settings for a Replication service: - -- [Change a Service’s Display Name](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#change-a-services-display-name) -- [Start or Stop a Service](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#start-or-stop-a-service) -- [View the Deployment Settings for a Service](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#view-the-deployment-settings-for-a-service) -- [Specify Log Settings for a Service](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#specify-log-settings-for-a-service) - -## Enable Elastic Cluster Syncing - -In an environment with multiple Elasticsearch clusters, you can choose to sync data between -clusters. You can also specify an interval for syncing. - -NOTE: In GroupID, a separate Replication service is created for each node in a cluster. To enable -data syncing between clusters, simply enable the sync option for one Replications service within -each cluster. - -To sync data: - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Applications** page, click the **Replication Service** tab. -3. Click the ellipsis button for a service and select **Settings**. -4. Click **Configurations** under **Server Settings**. -5. On the **Configurations** page, enable the **Elastic Cluster Syncing** toggle button to sync data - from all other clusters to the cluster that uses this Replication service. - If this toggle button is disabled for a cluster (say, ClusterA), data from other clusters will - not be synced to ClusterA. - Suppose syncing is disabled for ClusterA but enabled for ClusterB and ClusterC. This means that - (a) data from ClusterB and ClusterC will not be synced to ClusterA (b) data from ClusterA will be - synced to ClusterB and ClusterC. -6. You can specify an interval for syncing data. Click **Edit** under **Elastic Cluster Syncing - Interval**, specify an interval (in seconds) and click the check mark. - By default, the interval is set to 5 seconds. You can specify a maximum interval of 900 seconds. -7. Click **Save**. - -**See Also** - -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) -- [Services](/docs/directorymanager/11.0/signin/service/overview.md) diff --git a/docs/directorymanager/11.0/signin/service/schedulerservice.md b/docs/directorymanager/11.0/signin/service/schedulerservice.md deleted file mode 100644 index 571937e144..0000000000 --- a/docs/directorymanager/11.0/signin/service/schedulerservice.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "Scheduler Service" -description: "Scheduler Service" -sidebar_position: 60 ---- - -# Scheduler Service - -In GroupID, schedules perform different tasks in an identity store. They run at a specified -frequency to auto execute their respective functions. The Scheduler service is responsible for -triggering these schedules at their respective frequency. - -What do you want to do? - -- [View Scheduler Service Details](#view-scheduler-service-details) -- [Manage Scheduler Service Settings](#manage-scheduler-service-settings) - -## View Scheduler Service Details - -1. In Admin Center, click **Applications** in the left pane. -2. On the **Applications** page, click the **Scheduler Service** tab. - - The tab displays the default Scheduler service(s) hosted in native IIS. The number of services - displayed on the tab depend on the number of Elasticsearch clusters in your environment, as each - cluster has its own Scheduler service. See the - [Elasticsearch Clusters, Nodes, and GroupID](/docs/directorymanager/11.0/signin/service/overview.md#elasticsearch-clusters-nodes-and-groupid) - topic. - For details displayed on a service card, see the table in the - [View Data Service Details](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#view-data-service-details) - topic. - - You cannot create a new Scheduler service or delete the existing one - -## Manage Scheduler Service Settings - -You can manage the following settings for the Scheduler service: - -- [Change a Service’s Display Name](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#change-a-services-display-name) -- [Start or Stop a Service](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#start-or-stop-a-service) -- [View the Deployment Settings for a Service](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#view-the-deployment-settings-for-a-service) -- [Specify Log Settings for a Service](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#specify-log-settings-for-a-service) - -**See Also** - -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) -- [Services](/docs/directorymanager/11.0/signin/service/overview.md) diff --git a/docs/directorymanager/11.0/signin/service/securityservice/_category_.json b/docs/directorymanager/11.0/signin/service/securityservice/_category_.json deleted file mode 100644 index 7ebbbe3bd4..0000000000 --- a/docs/directorymanager/11.0/signin/service/securityservice/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Security Service", - "position": 30, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/service/securityservice/create.md b/docs/directorymanager/11.0/signin/service/securityservice/create.md deleted file mode 100644 index 75266ce58b..0000000000 --- a/docs/directorymanager/11.0/signin/service/securityservice/create.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: "Create a Security Service" -description: "Create a Security Service" -sidebar_position: 10 ---- - -# Create a Security Service - -You can create a Security service in native IIS and remote IIS. - -What do you want to do? - -- [Create a Security Service in Native IIS](#create-a-security-service-in-native-iis) -- [Create a Security Service in Remote IIS](#create-a-security-service-in-remote-iis) -- [Launch a Security Service](#launch-a-security-service) - -## Create a Security Service in Native IIS - -When you deploy a Security service in native IIS, GroupID does the following: - -- It creates a directory with the Security service’s name at the following physical path on the - GroupID server, and copies the service files from its template directory to the new service - directory: - X:\Program Files\Imanami\GroupID 11.0\GroupIDSecurityService\Inetpub\ - (X represents the GroupID installation drive) -- It also creates a virtual directory for the service in your desired IIS site. - -The Security service runs within a virtual directory in IIS while the service files are physically -located on disk. - -**To create a Security service:** - -1. In Admin Center, click **Applications** in the left pane. -2. Click **Add Application**. -3. On the next page, select **Security Service** and click **Next step**. -4. On the **Create GroupID Application** page, make sure the **IIS** tile is selected. -5. In the **Application Name** box, enter a name for the service or use the default name. The - Security service is displayed with this name in GroupID. -6. In the **Deployment Name** box, enter a deployment name for the service. The application name and - deployment name are displayed on the service card, as shown below: - - ![ss_card](/images/directorymanager/11.0/admincenter/service/securityservice/ss_card.webp) - -7. In the **IIS Application Name** box, enter an IIS deployment name for the service. This name is - used to name the service’s directory in IIS and its physical directory under X:\Program - Files\Imanami\GroupID 11.0\GroupIDSecurityService\Inetpub\ on the GroupID server. - (X represents the GroupID installation drive) - The IIS application name should be unique for each Security service deployed in IIS. -8. In the **IIS Site** drop-down list, select a website to host the service files. - The list displays the websites defined on the local IIS server. GroupIDSite11 is the default - selection. -9. In the **Data Service** drop-down list, select a Data service to bind to this Security service. - A Security service needs a Data service to perform various tasks, such as authentication and - multifactor authentication. -10. Click **Create Application**. - The Security service is created and displayed on the **Security Service** tab. - -## Create a Security Service in Remote IIS - -You can deploy a Security service within a site in remote IIS. For this, you need to connect with -the Microsoft IIS Administration API running on the remote IIS machine. - -When you create a Data service in remote IIS, GroupID does the following: - -- It creates a virtual directory for the service in a preconfigured site in remote IIS. -- It creates a physical directory for the service in the folder that is mapped to this preconfigured - site. - -The Security service runs within a virtual directory in remote IIS while the service files are -physically located on disk. - -To learn about the remote IIS settings and configurations before deploying a service there, see the -[Prerequisites for Deployments in Remote IIS](/docs/directorymanager/11.0/signin/applications/remoteiisprerequisites.md) -topic. - -**To create a Security service:** - -1. In Admin Center, click **Applications** in the left pane. -2. Click **Add Application**. -3. On the next page select **Security Service** and click **Next step**. -4. On the **Create GroupID Application** page, select the **Remote IIS** tile. -5. In the **Application Name** box, enter a name for the service or use the default name. The - Security service is displayed in GroupID with this name. -6. In the **Deployment Name** box, enter a deployment name for the service. The application name and - deployment name are displayed on the service card. -7. To enter information for **API URL**, **Access Token**, **Username**, **Password**, **IIS - Application Name**, and **Website**, refer to steps 7-11 in the - [Create a Portal in Remote IIS](/docs/directorymanager/11.0/signin/applications/portal/create.md#create-a-portal-in-remote-iis) - topic. Replace any reference to the portal with the Security service. -8. In the **Data Service** drop-down list, select a Data service to bind to this Security service. - A Security service needs a Data service to perform various tasks, such as authentication and - multifactor authentication. -9. Click **Create Application**. - The Security service is displayed on the **Security Service** tab. - -## Launch a Security Service - -1. In Admin Center, select **Applications** in the left pane. -2. On the **Security Service** tab, click **Launch Application** for a service. The **GroupID - Applications** page is displayed. Options on this page are discussed in the - [Access your Applications](/docs/directorymanager/11.0/signin/concepts/accessapplications.md) - topic. Any actions you perform will be carried out through the respective Security service. - -**See Also** - -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) -- [Services](/docs/directorymanager/11.0/signin/service/overview.md) -- [Manage Security Service Settings](/docs/directorymanager/11.0/signin/service/securityservice/manage.md) diff --git a/docs/directorymanager/11.0/signin/service/securityservice/manage.md b/docs/directorymanager/11.0/signin/service/securityservice/manage.md deleted file mode 100644 index 083e4227e5..0000000000 --- a/docs/directorymanager/11.0/signin/service/securityservice/manage.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: "Manage Security Service Settings" -description: "Manage Security Service Settings" -sidebar_position: 20 ---- - -# Manage Security Service Settings - -Security services in GroupID are displayed on the **Security Service** tab. A card for a service -displays information such as its name and status. - -You can manage several settings for a service, such as: - -- Change the name of a service -- Start or stop a service -- Configure file logging for a service -- Delete a service - -What do you want to do? - -- View Service Details -- Manage Security Service Settings -- Delete a Security Service - -## View Service Details - -1. In Admin Center, click **Applications** in the left pane. -2. On the **Applications** page, click the **Security Service** tab. - The tab displays the default Security service created while configuring GroupID and any other - Security service that you have created. When multiple GroupID instances have been deployed, you - will find multiple default Security services on this tab page, as each instance has its own - default Security service. See the - [Elasticsearch Clusters, Nodes, and GroupID](/docs/directorymanager/11.0/signin/service/overview.md#elasticsearch-clusters-nodes-and-groupid) - topic. - For details displayed on a service card, see the table in the - [View Data Service Details](/docs/directorymanager/11.0/signin/service/dataservice/manage.md#view-data-service-details) - topic. - -## Manage Security Service Settings - -See the -[Manage Data Service Settings](/docs/directorymanager/11.0/signin/service/dataservice/manage.md) -topic to manage settings for a Security service, such as deployment and log settings. - -## Delete a Security Service - -Deleting a Security service removes the following: - -- **For a native IIS deployment:** - - - The Security service directory under the following location on the GroupID server: - X:\Program Files\Imanami\GroupID 11.0\GroupIDSecurityService\Inetpub\ - (X represents the GroupID installation drive) - - The Security service directory from the website in IIS - -- **For a remote IIS deployment:** - - - The service's directory in the remote IIS site - - The service's physical directory under the folder mapped to the remote IIS site - -- **For a Docker deployment:** - - The container created in Docker Engine for the Security service - -**To delete a Security service:** - -1. In Admin Center, click **Applications** in the left pane. -2. On the **Applications** page, click the **Security Service** tab. -3. Click the ellipsis button for a Security service and select **Delete**. - -NOTE: You cannot delete the default Security service. You cannot also delete a Security service that -has been linked with a GroupID client, such as the GroupID portal or a Mobile service. - -See Also - -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) -- [Services](/docs/directorymanager/11.0/signin/service/overview.md) -- [Create a Security Service](/docs/directorymanager/11.0/signin/service/securityservice/create.md) diff --git a/docs/directorymanager/11.0/signin/service/securityservice/overview.md b/docs/directorymanager/11.0/signin/service/securityservice/overview.md deleted file mode 100644 index 6fd40a270c..0000000000 --- a/docs/directorymanager/11.0/signin/service/securityservice/overview.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Security Service" -description: "Security Service" -sidebar_position: 30 ---- - -# Security Service - -Admin Center lets you quickly create and deploy a Security service. This web-based service is a -single sign-on implantation for GroupID clients. It is responsible for authenticating and -authorizing users on different GroupID clients and functionalities in accordance with their roles. -The service also encrypts and decrypts data that Data service stores and fetches from the GroupID -database on SQL Server. - -You can create multiple Security services; the default service is created while configuring GroupID. - -## The Default Security Service - -See [Data Service](/docs/directorymanager/11.0/signin/service/dataservice/overview.md) -topic. - -## Why Create Multiple Security Services? - -See the -[Why Create Multiple Data Services?](/docs/directorymanager/11.0/signin/service/dataservice/overview.md#why-create-multiple-data-services) -topic while replacing references to Data service with Security service. - -**See Also** - -- [GroupID Applications](/docs/directorymanager/11.0/signin/applications/applications.md) -- [Create a Security Service](/docs/directorymanager/11.0/signin/service/securityservice/create.md) -- [Manage Security Service Settings](/docs/directorymanager/11.0/signin/service/securityservice/manage.md) diff --git a/docs/directorymanager/11.0/signin/signin.md b/docs/directorymanager/11.0/signin/signin.md deleted file mode 100644 index a12bf1a63b..0000000000 --- a/docs/directorymanager/11.0/signin/signin.md +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: "Access Admin Center" -description: "Access Admin Center" -sidebar_position: 40 ---- - -# Access Admin Center - -Admin Center is a web-based application that can be accessed over the Internet and Intranet. It -comes with a default provider, _GroupID_, which primarily facilitates first-time login to the -application. Typically, the _GroupID_ provider has one default user, _Super Admin_, that has full -access to Admin Center. On signing in, this user can create identity stores and configure settings -to get the application ready for use. - -What do you want to do? - -- [Sign In](#sign-in) -- [Sign Out](#sign-out) -- [View the GroupID Version](#view-the-groupid-version) -- [Modern Authentication Support](#modern-authentication-support) - -## Sign In - -You must connect Admin Center to an identity store while signing in. - -Use any of the following methods to connect and sign in: - -- Select an identity store and enter the username and password of your identity store account. - - NOTE: To sign in using the GroupID provider, enter the username and password you specified for - _GroupID Administrator_ on the **Service Account Settings** page of the Configuration Tool. See - the - [Configure a new GroupID server with a new or an existing database](/docs/directorymanager/11.0/about/configure/gidserver.md) - topic. - -- Select an identity store and sign in using a SAML provider. - (This option is available if a SAML provider is configured with the selected identity store.) - - NOTE: Microsoft Entra ID MFA enabled users cannot log into GroupID using their username and - password. They will be authenticated through the SAML provider configured for in GroupID. - -- Scan the displayed QR code with the GroupID app installed on your smartphone. - (This option is available if the QR code feature is enabled for the identity store you want to - connect to.) - -Next, you may have to pass second factor authentication, depending on whether it is enabled for your -role in the identity store. You can perform tasks in Admin Center in keeping with your role and -permissions in the identity store. - -**To sign in:** - -1. Type the Admin Center URL in the address bar of a web browser and press Enter. For example: - https://[machine name]:4443//AdminCenter - - Or - - On the Windows Start menu, search for the GroupID 11.0 icon and double-click it to launch Admin - Center in a browser window. - -2. You can sign in using any of the following methods: - - - [With your Identity Store Account](#with-your-identity-store-account) - - [With a SAML Provider](#with-a-saml-provider) - - [With QR Code](#with-qr-code) - -### With your Identity Store Account - -1. On the **GroupID Authenticate** page, click an identity store to connect to. -2. In the **Username** and **Password** boxes, enter the username and password of your identity - store account, or click **Edit** next to the identity store name to connect to a different - identity store. -3. After providing your credentials, click **Sign In**. - -### With a SAML Provider - -You can opt for single sign-on across all GroupID clients, provided that a SAML provider is -configured with GroupID. See the following topics for additional information on the SAML provider -configuration: - -- [Configure GroupID in Microsoft Entra ID for SSO](/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/configureinentra.md) -- [Configure the Microsoft Entra SSO Application in GroupID](/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/configureproviderindirectorymanager.md) - -On the **GroupID Authenticate** page, click the button or image for the provider and proceed to sign -in. - -NOTE: For Microsoft Entra ID MFA enabled users, a SAML provider must be configured for signing into -GroupID. - -### With QR Code - -If QR code is enabled for any of the identity stores, the **GroupID Authenticate** page displays the -code too. Use the QR code to sign into an identity store. - -1. Open the GroupID app on your smartphone and connect to an identity store. This identity store - should have the QR code feature enabled for it. - Admin Center would connect to the same identity store you connect the app to. -2. Tap **Configure Application Using QR Code** in the app. -3. Capture the QR code through the app on your phone. One of the following happens: - - - If the identity store that the app is connected to does not have the QR code option enabled, - an error message is displayed. - - If the identity store that the app is connected to has the QR code option enabled, Admin - Center will connect to this identity store. - -### Pass Second Factor Authentication - -The administrator can enable second factor authentication for a security role in an identity store. - -If enabled for your role in the identity store, you must pass second factor authentication after -signing in via any of the above methods. - -For second factor authentication, one of the following applies: - -- If you have not enrolled your identity store account in GroupID, the **Enroll Account** page is - displayed. You must enroll using at least one authentication type. See the - [Enroll with Authentication Types](/docs/directorymanager/11.0/signin/authpolicy/enroll.md) - topic. -- If you have already enrolled your identity store account in GroupID, the **Authenticate** page is - displayed. It lists the authentication type(s) your account is enrolled with. Select an - authentication type to authenticate. See the - [Authenticate with Authentication Types](/docs/directorymanager/11.0/signin/authpolicy/authenticate.md) - topic. - -## Sign Out - -In Admin Center, click your name in the top right corner and select **Sign Out**. - -## View the GroupID Version - -You can view the GroupID 11 version deployed in your environment. - -In Admin Center, click your name in the top right corner; the menu displays the running GroupID -version. - -## Modern Authentication Support - -When you create the GroupID app in Microsoft Entra Admin Center, you have to bind a certificate to -it. Export that certificate to PFX form. - -For modern authentication, GroupID requires this PFX certificate to communicate with the GroupID app -in Microsoft Entra Admin Center. - -In GroupID, you must provide this PFX certificate on the following pages: - -- In Identity store connection settings while creating a Microsoft Entra ID identity store. -- In messaging provider settings (when Exchange Online / Office 365 is set as messaging provider). -- When you select AD as destination and Office 365 as messaging provider in a Synchronize job, you - have to provide the certificate on the Sync Object page. - -### OAuth Notifications - -While configuring an SMTP server for an identity store, you can choose to provide OAuth notification -settings. - -### Modern Authentication and gMSA Permissions - -To use a gMSA as service account for GroupID services and app pool, do the following: - -1. Add the gMSA account to the membership of the _IIS_IUSRS_ group on the GroupID server. -2. Then, add the _IIS_IUSRS_ group in the ‘Manage Private Keys’ permission for the certificate that - GroupID uses for modern authentication. - -See Also - -- [Getting Started](/docs/directorymanager/11.0/introduction/gettingstarted.md) -- [Dashboard](/docs/directorymanager/11.0/signin/concepts/dashboard.md) -- [Navigation](/docs/directorymanager/11.0/signin/concepts/navigation.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/_category_.json b/docs/directorymanager/11.0/signin/smsgateway/_category_.json deleted file mode 100644 index a75a3d956a..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "SMS Gateway", - "position": 140, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/_category_.json b/docs/directorymanager/11.0/signin/smsgateway/custom/_category_.json deleted file mode 100644 index 6dde566d36..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "ISMSGateway Members", - "position": 30, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/accountid.md b/docs/directorymanager/11.0/signin/smsgateway/custom/accountid.md deleted file mode 100644 index 8770cc3178..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/accountid.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: "ISmsGateway.AccountId" -description: "ISmsGateway.AccountId" -sidebar_position: 10 ---- - -# ISmsGateway.AccountId - -Gets or sets the account ID for connecting with the SMS gateway. - -**Namespace:** Imanami.PublicInterfaces - -**Assembly:** Imanami.PublicInterfaces.dll - -**Syntax** - -``` -string AccountId { get; set; } -``` - -**Return Value** - -Type: [System.String](http://msdn.microsoft.com/en-us/library/system.string.aspx) - -The value of the account ID. - -**Remarks** - -The account ID may not be required for every SMS gateway. If required, use this property to get or -set its respective value. This property can also contain any other identification number that a -gateway needs for authenticating a connection. - -**See Also** - -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/class/_category_.json b/docs/directorymanager/11.0/signin/smsgateway/custom/class/_category_.json deleted file mode 100644 index a836b22f41..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/class/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "ShortMessage class", - "position": 150, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "class" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/class/accesscode.md b/docs/directorymanager/11.0/signin/smsgateway/custom/class/accesscode.md deleted file mode 100644 index d24556365c..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/class/accesscode.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "ShortMessage.AccessCode" -description: "ShortMessage.AccessCode" -sidebar_position: 10 ---- - -# ShortMessage.AccessCode - -Gets or sets the confirmation code that will be sent to registered mobile phone users. - -**Namespace:** Imanami.directorymanager.DataTransferObjects.DataContracts.SMS - -**Assembly:** Imanami.directorymanager.DataTransferObjects.dll - -**Syntax** - -``` -public string AccessCode { get; set; } -``` - -**Return Value** - -Type: [System.String](http://msdn.microsoft.com/en-us/library/system.string.aspx) - -The confirmation code. - -See Also - -- [ShortMessage class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/class/class.md b/docs/directorymanager/11.0/signin/smsgateway/custom/class/class.md deleted file mode 100644 index a3f3b70705..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/class/class.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "ShortMessage class" -description: "ShortMessage class" -sidebar_position: 150 ---- - -# ShortMessage class - -ShortMessage is a DTO (Data Transfer Object) class that defines the elements of the text message. - -Following is a list of its members with description: - -- [ShortMessage.AccessCode](/docs/directorymanager/11.0/signin/smsgateway/custom/class/accesscode.md) -- [ShortMessage.MaxLength](/docs/directorymanager/11.0/signin/smsgateway/custom/class/maxlength.md) -- [ShortMessage.Message](/docs/directorymanager/11.0/signin/smsgateway/custom/class/message.md) -- [ShortMessage.PhoneNumbers](/docs/directorymanager/11.0/signin/smsgateway/custom/class/phonenumbers.md) -- [ShortMessage.ReferenceId](/docs/directorymanager/11.0/signin/smsgateway/custom/class/referenceid.md) -- [ShortMessage.Validate](/docs/directorymanager/11.0/signin/smsgateway/custom/class/validate.md) - -| Member | Description | -| ------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -| [ShortMessage.AccessCode](/docs/directorymanager/11.0/signin/smsgateway/custom/class/accesscode.md) property | Gets or sets the confirmation code that will be sent to registered mobile phone users. | -| [ShortMessage.MaxLength](/docs/directorymanager/11.0/signin/smsgateway/custom/class/maxlength.md) property | Defines the maximum length of an SMS message. | -| [ShortMessage.Message](/docs/directorymanager/11.0/signin/smsgateway/custom/class/message.md) property | Gets or sets the supporting message text that will be sent to registered mobile phone users along with the confirmation code. | -| [ShortMessage.PhoneNumbers](/docs/directorymanager/11.0/signin/smsgateway/custom/class/phonenumbers.md) property | Gets or sets the list of phone numbers to send the message to. | -| [ShortMessage.ReferenceId](/docs/directorymanager/11.0/signin/smsgateway/custom/class/referenceid.md) property | Gets or sets the reference ID for the text message. | -| [ShortMessage.Validate](/docs/directorymanager/11.0/signin/smsgateway/custom/class/validate.md) method | Validates various elements in an SMS message, such as message length and phone number. | - -**See Also** - -- [ISMSGateway Members](/docs/directorymanager/11.0/signin/smsgateway/custom/overview.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/class/class_1.md b/docs/directorymanager/11.0/signin/smsgateway/custom/class/class_1.md deleted file mode 100644 index e2ff818ad0..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/class/class_1.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "SendSmsMessageResult class" -description: "SendSmsMessageResult class" -sidebar_position: 160 ---- - -# SendSmsMessageResult class - -Returns the message delivery status (success or failure) and exceptions (if any) that occur while -sending the text message to the target mobile phone numbers. - -Following is a list of its members with description: - -- [SendSmsMessageResult.ExceptionMessage](/docs/directorymanager/11.0/signin/smsgateway/custom/class/exceptionmessage.md) -- [SendSmsMessageResult.Message](/docs/directorymanager/11.0/signin/smsgateway/custom/class/message_1.md) -- [SendSmsMessageResult.Success](/docs/directorymanager/11.0/signin/smsgateway/custom/class/success.md) - -| Member | Description | -| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ExceptionMessage property | Gets the exception message if one occurs while sending the text message. | -| Message property | Returns the [ShortMessage class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class.md) object processed by the [ISmsGateway.SendShortMessage](/docs/directorymanager/11.0/signin/smsgateway/custom/sendshortmessage.md) method. | -| Success property | Returns a boolean value indicating whether the text message is successfully sent to the target mobile phone numbers. | - -**See Also** - -- [ISMSGateway Members](/docs/directorymanager/11.0/signin/smsgateway/custom/overview.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/class/exceptionmessage.md b/docs/directorymanager/11.0/signin/smsgateway/custom/class/exceptionmessage.md deleted file mode 100644 index 9ea5057d41..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/class/exceptionmessage.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "SendSmsMessageResult.ExceptionMessage" -description: "SendSmsMessageResult.ExceptionMessage" -sidebar_position: 10 ---- - -# SendSmsMessageResult.ExceptionMessage - -Gets the exception message if one occurs while sending SMS. - -**Namespace:** Imanami.directorymanager.DataTransferObjects.DataContracts.SMS - -**Assembly:** Imanami.directorymanager.DataTransferObjects.dll - -**Syntax** - -``` -public string ExceptionMessage -``` - -**Return Value** - -Type: [System.String](http://msdn.microsoft.com/en-us/library/system.string.aspx) - -The exception details. - -See Also - -- [SendSmsMessageResult class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class_1.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/class/maxlength.md b/docs/directorymanager/11.0/signin/smsgateway/custom/class/maxlength.md deleted file mode 100644 index 75c9cfaa87..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/class/maxlength.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "ShortMessage.MaxLength" -description: "ShortMessage.MaxLength" -sidebar_position: 20 ---- - -# ShortMessage.MaxLength - -Defines the maximum length of an SMS message. - -**Namespace:** Imanami.directorymanager.DataTransferObjects.DataContracts.SMS - -**Assembly:** Imanami.directorymanager.DataTransferObjects.dll - -**Syntax** - -``` -public int MaxLength = 160 -``` - -**Return Value** - -Type: [System.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32?view=net-8.0) - -The maximum length. - -**Remarks** - -This property stores the maximum length of an SMS message. If you send a message more than this -length, the message is split in two or more pieces and the user is charged for each piece. Most, if -not all, gateways will automatically split the message. You can increase this limit but it may cost -more from the gateway. - -See Also - -- [ShortMessage class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/class/message.md b/docs/directorymanager/11.0/signin/smsgateway/custom/class/message.md deleted file mode 100644 index 5c2fabffdc..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/class/message.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "ShortMessage.Message" -description: "ShortMessage.Message" -sidebar_position: 30 ---- - -# ShortMessage.Message - -Gets or sets the supporting message text that will be sent to registered mobile phone users along -with the confirmation code. - -**Namespace:** Imanami.directorymanager.DataTransferObjects.DataContracts.SMS - -**Assembly:** Imanami.directorymanager.DataTransferObjects.dll - -**Syntax** - -``` -public string Message { get; set; } -``` - -**Return Value** - -Type: [System.String](http://msdn.microsoft.com/en-us/library/system.string.aspx) - -The message text. - -See Also - -- [ShortMessage class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/class/message_1.md b/docs/directorymanager/11.0/signin/smsgateway/custom/class/message_1.md deleted file mode 100644 index 7480c1cb40..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/class/message_1.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: "SendSmsMessageResult.Message" -description: "SendSmsMessageResult.Message" -sidebar_position: 20 ---- - -# SendSmsMessageResult.Message - -Returns the -[ShortMessage class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class.md) -object processed by the -[ISmsGateway.SendShortMessage](/docs/directorymanager/11.0/signin/smsgateway/custom/sendshortmessage.md) -method. - -**Namespace:** Imanami.directorymanager.DataTransferObjects.DataContracts.SMS - -**Assembly:** Imanami.directorymanager.DataTransferObjects.dll - -**Syntax** - -``` -public ShortMessage Message; -``` - -**Return Value** - -Type: Imanami.directorymanager.DataTransferObjects.DataContracts.SMS.ShortMessage - -Object containing elements of the text message. - -See Also - -- [SendSmsMessageResult class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class_1.md) -- [ShortMessage class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class.md) -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/class/phonenumbers.md b/docs/directorymanager/11.0/signin/smsgateway/custom/class/phonenumbers.md deleted file mode 100644 index a2a7f62afc..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/class/phonenumbers.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "ShortMessage.PhoneNumbers" -description: "ShortMessage.PhoneNumbers" -sidebar_position: 40 ---- - -# ShortMessage.PhoneNumbers - -Gets or sets the list of mobile phone numbers to send the message to. - -**Namespace:** Imanami.directorymanager.DataTransferObjects.DataContracts.SMS - -**Assembly:** Imanami.directorymanager.DataTransferObjects.dll - -**Syntax** - -``` -public List PhoneNumbers { get; set; } -``` - -**Return Value** - -Type: -[](http://msdn.microsoft.com/en-us/library/system.string.aspx)[System.Collection.Generic.List(of T)](http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx) - -A list of mobile phone numbers. - -See Also - -- [ShortMessage class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/class/referenceid.md b/docs/directorymanager/11.0/signin/smsgateway/custom/class/referenceid.md deleted file mode 100644 index 9c1518e895..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/class/referenceid.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "ShortMessage.ReferenceId" -description: "ShortMessage.ReferenceId" -sidebar_position: 50 ---- - -# ShortMessage.ReferenceId - -Gets or sets the reference ID for the text message. - -**Namespace:** Imanami.directorymanager.DataTransferObjects.DataContracts.SMS - -**Assembly:** Imanami.directorymanager.DataTransferObjects.dll - -**Syntax** - -``` -public string ReferenceId { get; set; } -``` - -**Return Value** - -Type: [System.String](http://msdn.microsoft.com/en-us/library/system.string.aspx) - -The reference ID for the text message. - -See Also - -- [ShortMessage class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/class/success.md b/docs/directorymanager/11.0/signin/smsgateway/custom/class/success.md deleted file mode 100644 index 330d7ec126..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/class/success.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "SendSmsMessageResult.Success" -description: "SendSmsMessageResult.Success" -sidebar_position: 30 ---- - -# SendSmsMessageResult.Success - -Returns a boolean value indicating whether the text message is successfully sent to the target -mobile phone numbers. - -**Namespace:** Imanami.directorymanager.DataTransferObjects.DataContracts.SMS - -**Assembly:** Imanami.directorymanager.DataTransferObjects.dll - -**Syntax** - -``` -public bool Success; -``` - -**Return Value** - -Type: [System.Boolean](http://msdn.microsoft.com/en-us/library/system.boolean.aspx) - -True if the message is delivered successfully. - -See Also - -- [SendSmsMessageResult class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class_1.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/class/validate.md b/docs/directorymanager/11.0/signin/smsgateway/custom/class/validate.md deleted file mode 100644 index ebd57541a4..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/class/validate.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "ShortMessage.Validate" -description: "ShortMessage.Validate" -sidebar_position: 60 ---- - -# ShortMessage.Validate - -The Validate method validates the following: - -- Message length should not be zero. -- Message length should not be greater than what is specified in the MacLength property. -- PhoneNumbers must be provided. -- PhoneNumber should be valid. - -**Namespace:** Imanami.directorymanager.DataTransferObjects.DataContracts.SMS - -**Assembly:** Imanami.directorymanager.DataTransferObjects.dll - -**Syntax** - -``` -public bool Validate(IValidationDictionary validationDictionary) -``` - -**Return Value** - -Type: [System.Boolean](http://msdn.microsoft.com/en-us/library/system.boolean.aspx) - -True if all validation checks are passed. - -See Also - -- [ShortMessage class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/clone.md b/docs/directorymanager/11.0/signin/smsgateway/custom/clone.md deleted file mode 100644 index e9852ff6aa..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/clone.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "ISmsGateway.Clone" -description: "ISmsGateway.Clone" -sidebar_position: 20 ---- - -# ISmsGateway.Clone - -Returns a clone object of the **ISMSGateway** interface. - -**Namespace:** Imanami.PublicInterfaces - -**Assembly:** Imanami.PublicInterfaces.dll - -**Syntax** - -``` -ISmsGateway Clone(); -``` - -**Return Value** - -Type: Imanami.PublicInterfaces.ISmsGateway - -The clone object. - -**See Also** - -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/overview.md b/docs/directorymanager/11.0/signin/smsgateway/custom/overview.md deleted file mode 100644 index a785d4fa27..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/overview.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "ISMSGateway Members" -description: "ISMSGateway Members" -sidebar_position: 30 ---- - -# ISMSGateway Members - -To define a custom gateway, a list of ISMSGateway members that you must implement are listed below: - -- [ISmsGateway.AccountId](/docs/directorymanager/11.0/signin/smsgateway/custom/accountid.md) -- [ISmsGateway.Clone](/docs/directorymanager/11.0/signin/smsgateway/custom/clone.md) -- [ISmsGateway.Password](/docs/directorymanager/11.0/signin/smsgateway/custom/password.md) -- [ISmsGateway.ProxyDomain](/docs/directorymanager/11.0/signin/smsgateway/custom/proxydomain.md) -- [ISmsGateway.ProxyHostName](/docs/directorymanager/11.0/signin/smsgateway/custom/proxyhostname.md) -- [ISmsGateway.ProxyPassword](/docs/directorymanager/11.0/signin/smsgateway/custom/proxypassword.md) -- [ISmsGateway.ProxyPort](/docs/directorymanager/11.0/signin/smsgateway/custom/proxyport.md) -- [ISmsGateway.ProxyUsername](/docs/directorymanager/11.0/signin/smsgateway/custom/proxyusername.md) -- [ISmsGateway.SendShortMessage](/docs/directorymanager/11.0/signin/smsgateway/custom/sendshortmessage.md) -- [ISmsGateway.TestConnection](/docs/directorymanager/11.0/signin/smsgateway/custom/testconnection.md) -- [ISmsGateway.TestCredentials](/docs/directorymanager/11.0/signin/smsgateway/custom/testcredentials.md) -- [ISmsGateway.TestProxy](/docs/directorymanager/11.0/signin/smsgateway/custom/testproxy.md) -- [ISmsGateway.Url](/docs/directorymanager/11.0/signin/smsgateway/custom/url.md) -- [ISmsGateway.UserId](/docs/directorymanager/11.0/signin/smsgateway/custom/userid.md) - -- ShortMessage - ([ShortMessage class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class.md)) - - - [ShortMessage.AccessCode](/docs/directorymanager/11.0/signin/smsgateway/custom/class/accesscode.md) - - [ShortMessage.MaxLength](/docs/directorymanager/11.0/signin/smsgateway/custom/class/maxlength.md) - - [ShortMessage.Message](/docs/directorymanager/11.0/signin/smsgateway/custom/class/message.md) - - [ShortMessage.PhoneNumbers](/docs/directorymanager/11.0/signin/smsgateway/custom/class/phonenumbers.md) - - [ShortMessage.ReferenceId](/docs/directorymanager/11.0/signin/smsgateway/custom/class/referenceid.md) - - [ShortMessage.Validate](/docs/directorymanager/11.0/signin/smsgateway/custom/class/validate.md) - -- SendSmsMessageResult - ([SendSmsMessageResult class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class_1.md)) - - [SendSmsMessageResult.ExceptionMessage](/docs/directorymanager/11.0/signin/smsgateway/custom/class/exceptionmessage.md) - - [SendSmsMessageResult.Message](/docs/directorymanager/11.0/signin/smsgateway/custom/class/message_1.md) - - [SendSmsMessageResult.Success](/docs/directorymanager/11.0/signin/smsgateway/custom/class/success.md) - -**See Also** - -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/password.md b/docs/directorymanager/11.0/signin/smsgateway/custom/password.md deleted file mode 100644 index 257029280f..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/password.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "ISmsGateway.Password" -description: "ISmsGateway.Password" -sidebar_position: 30 ---- - -# ISmsGateway.Password - -Gets or sets the password of the user account registered with the SMS gateway provider. - -**Namespace:** Imanami.PublicInterfaces - -**Assembly:** Imanami.PublicInterfaces.dll - -**Syntax** - -``` -string Password { get; set; } -``` - -**Return Value** - -Type: [System.String](http://msdn.microsoft.com/en-us/library/system.string.aspx) - -The value of the password. - -**See Also** - -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/proxydomain.md b/docs/directorymanager/11.0/signin/smsgateway/custom/proxydomain.md deleted file mode 100644 index f0e84539e7..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/proxydomain.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "ISmsGateway.ProxyDomain" -description: "ISmsGateway.ProxyDomain" -sidebar_position: 40 ---- - -# ISmsGateway.ProxyDomain - -Gets or sets the domain name or IP address of the proxy server. - -**Namespace:** Imanami.PublicInterfaces - -**Assembly:** Imanami.PublicInterfaces.dll - -**Syntax** - -``` -string ProxyDomain { get; set; } -``` - -**Return Value** - -Type: [System.String](http://msdn.microsoft.com/en-us/library/system.string.aspx) - -The domain name or IP address of the proxy server. - -**Remarks** - -If communication with the SMS gateway is through a proxy server, this property can be used to set -the domain name or IP address of that proxy server. - -**See Also** - -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/proxyhostname.md b/docs/directorymanager/11.0/signin/smsgateway/custom/proxyhostname.md deleted file mode 100644 index 6f86c263f1..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/proxyhostname.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "ISmsGateway.ProxyHostName" -description: "ISmsGateway.ProxyHostName" -sidebar_position: 50 ---- - -# ISmsGateway.ProxyHostName - -Gets or sets the host name of the proxy server. - -**Namespace:** Imanami.PublicInterfaces - -**Assembly:** Imanami.PublicInterfaces.dll - -**Syntax** - -``` -string ProxyHostName { get; set; } -``` - -**Return Value** - -Type: [System.String](http://msdn.microsoft.com/en-us/library/system.string.aspx) - -The host name of the proxy server. - -**Remarks** - -If communication with the SMS gateway is through a proxy server, you can use this property to -provide the host name of the proxy server. - -**See Also** - -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/proxypassword.md b/docs/directorymanager/11.0/signin/smsgateway/custom/proxypassword.md deleted file mode 100644 index ca3653fd85..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/proxypassword.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "ISmsGateway.ProxyPassword" -description: "ISmsGateway.ProxyPassword" -sidebar_position: 60 ---- - -# ISmsGateway.ProxyPassword - -Gets or sets the password of the user account that will be used for connecting to the proxy server. - -**Namespace:** Imanami.PublicInterfaces - -**Assembly:** Imanami.PublicInterfaces.dll - -**Syntax** - -``` -string ProxyPassword { get; set; } -``` - -**Return Value** - -Type: [System.String](http://msdn.microsoft.com/en-us/library/system.string.aspx) - -The password of the proxy account. - -**Remarks** - -Use this property if your proxy server requires a user name and password for connecting to it. - -**See Also** - -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/proxyport.md b/docs/directorymanager/11.0/signin/smsgateway/custom/proxyport.md deleted file mode 100644 index ca53ad2d56..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/proxyport.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "ISmsGateway.ProxyPort" -description: "ISmsGateway.ProxyPort" -sidebar_position: 70 ---- - -# ISmsGateway.ProxyPort - -Gets or sets the port number used by the proxy server. - -**Namespace:** Imanami.PublicInterfaces - -**Assembly:** Imanami.PublicInterfaces.dll - -**Syntax** - -``` -string ProxyPort { get; set; } -``` - -**Return Value** - -Type: [System.String](http://msdn.microsoft.com/en-us/library/system.string.aspx) - -The port number. - -**Remarks** - -If communication with the SMS gateway is through a proxy server, you can use this property to set -the port number the proxy server uses. - -**See Also** - -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/proxyusername.md b/docs/directorymanager/11.0/signin/smsgateway/custom/proxyusername.md deleted file mode 100644 index e700ed5727..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/proxyusername.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "ISmsGateway.ProxyUsername" -description: "ISmsGateway.ProxyUsername" -sidebar_position: 80 ---- - -# ISmsGateway.ProxyUsername - -Gets or sets the user name for connecting to the proxy server. - -**Namespace:** Imanami.PublicInterfaces - -**Assembly:** Imanami.PublicInterfaces.dll - -**Syntax** - -``` -string ProxyUsername { get; set; } -``` - -**Return Value** - -Type: [System.String](http://msdn.microsoft.com/en-us/library/system.string.aspx) - -The user name of the proxy account. - -**Remarks** - -Use this property if your proxy server requires a user name and password for connecting to it. - -**See Also** - -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/sendshortmessage.md b/docs/directorymanager/11.0/signin/smsgateway/custom/sendshortmessage.md deleted file mode 100644 index 31272224a5..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/sendshortmessage.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "ISmsGateway.SendShortMessage" -description: "ISmsGateway.SendShortMessage" -sidebar_position: 90 ---- - -# ISmsGateway.SendShortMessage - -Sends text messages to the target mobile phone numbers. - -**Namespace:** Imanami.PublicInterfaces - -**Assembly:** Imanami.PublicInterfaces.dll - -**Syntax** - -``` -SendSmsMessageResult SendShortMessage(ShortMessage shortMessage); -``` - -Parameters - -**ShortMessage** - -Type: Imanami.directorymanager.DataTransferObjects.DataContracts.SMS.ShortMessage - -The object defining the message elements including the target mobile phone numbers. - -**Return Value** - -Type: Imanami.directorymanager.DataTransferObjects.DataContracts.SMS.SendSmsMessageResult - -The object containing the message delivery status and exception details. - -See Also - -- [ShortMessage class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class.md) -- [SendSmsMessageResult class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class_1.md) -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/testconnection.md b/docs/directorymanager/11.0/signin/smsgateway/custom/testconnection.md deleted file mode 100644 index 9b9c0319ec..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/testconnection.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "ISmsGateway.TestConnection" -description: "ISmsGateway.TestConnection" -sidebar_position: 100 ---- - -# ISmsGateway.TestConnection - -Tests your connection with the SMS gateway. - -**Namespace:** Imanami.PublicInterfaces - -**Assembly:** Imanami.PublicInterfaces.dll - -**Syntax** - -``` -bool TestConnection(); -``` - -**Return Value** - -Type: [System.Boolean](http://msdn.microsoft.com/en-us/library/system.boolean.aspx) - -True if a connection is established with the SMS gateway. - -**See Also** - -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/testcredentials.md b/docs/directorymanager/11.0/signin/smsgateway/custom/testcredentials.md deleted file mode 100644 index e28fadc086..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/testcredentials.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "ISmsGateway.TestCredentials" -description: "ISmsGateway.TestCredentials" -sidebar_position: 110 ---- - -# ISmsGateway.TestCredentials - -Tests the credentials for communicating with the SMS gateway for validity. - -**Namespace:** Imanami.PublicInterfaces - -**Assembly:** Imanami.PublicInterfaces.dll - -**Syntax** - -``` -bool TestCredentials(); -``` - -**Return Value** - -Type: [System.Boolean](http://msdn.microsoft.com/en-us/library/system.boolean.aspx) - -True if the credentials are valid. - -**See Also** - -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/testproxy.md b/docs/directorymanager/11.0/signin/smsgateway/custom/testproxy.md deleted file mode 100644 index 61a8dbac99..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/testproxy.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "ISmsGateway.TestProxy" -description: "ISmsGateway.TestProxy" -sidebar_position: 120 ---- - -# ISmsGateway.TestProxy - -Tests the proxy settings. - -**Namespace:** Imanami.PublicInterfaces - -**Assembly:** Imanami.PublicInterfaces.dll - -**Syntax** - -``` -bool TestProxy(); -``` - -**Return Value** - -Type: [System.Boolean](http://msdn.microsoft.com/en-us/library/system.boolean.aspx) - -True if the proxy settings are valid. - -**See Also** - -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/url.md b/docs/directorymanager/11.0/signin/smsgateway/custom/url.md deleted file mode 100644 index b24746a05f..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/url.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: "ISmsGateway.Url" -description: "ISmsGateway.Url" -sidebar_position: 130 ---- - -# ISmsGateway.Url - -Gets or sets the URL that the SMS gateway provides for sending messages. - -**Namespace:** Imanami.PublicInterfaces - -**Assembly:** Imanami.PublicInterfaces.dll - -**Syntax** - -``` -string Url { get; set; } -``` - -**Return Value** - -Type: [System.String](http://msdn.microsoft.com/en-us/library/system.string.aspx) - -The address for sending messages. - -**Remarks** - -Some SMS gateways provide URLs for you to send your message parameters. The web component (typically -a web service) deployed at that URL then transmits the message to the intended recipients. If this -is the case with your SMS gateway provider, you can use this property to specify that URL. - -**See Also** - -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/custom/userid.md b/docs/directorymanager/11.0/signin/smsgateway/custom/userid.md deleted file mode 100644 index 7483a61e4d..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/custom/userid.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "ISmsGateway.UserId" -description: "ISmsGateway.UserId" -sidebar_position: 140 ---- - -# ISmsGateway.UserId - -Gets or sets the user name of the account registered with the SMS gateway provider. - -**Namespace:** Imanami.PublicInterfaces - -**Assembly:** Imanami.PublicInterfaces.dll - -**Syntax** - -``` -string UserId { get; set; } -``` - -**Return Value** - -Type: [System.String](http://msdn.microsoft.com/en-us/library/system.string.aspx) - -The value of the user name. - -**See Also** - -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md b/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md deleted file mode 100644 index 7d96144e98..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: "Implement and Deploy a Custom SMS Gateway" -description: "Implement and Deploy a Custom SMS Gateway" -sidebar_position: 20 ---- - -# Implement and Deploy a Custom SMS Gateway - -You can integrate with additional SMS gateways using the Custom Gateway API. After creating a -gateway, you can add an account for it. See the -[Create an SMS Gateway Account](/docs/directorymanager/11.0/signin/smsgateway/manage.md#create-an-sms-gateway-account) -topic. - -What do you want to do? - -- [Implement a Custom SMS Gateway](#implement-a-custom-sms-gateway) -- [Deploy a Custom SMS Gateway](#deploy-a-custom-sms-gateway) - -## Implement a Custom SMS Gateway - -1. Define a class that implements the **ISMSGateway interface** which is defined in the - **Imanami.PublicInterfaces** namespace (_Imanami.PublicInterfaces.dll_). The core method for - dispatching text messages makes use of objects that are defined in the - **Imanami.directorymanager.DataTransferObjects.DataContracts.SMS** namespace - (_Imanami.directorymanager.DataTransferObjects.dll_). - The DLLs for both the namespaces are available at the GroupID installation directory. A list of - **ISMSGateway members** that you must implement are discussed in the following table: - - | Member | Description | - | ----------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | [ISmsGateway.SendShortMessage](/docs/directorymanager/11.0/signin/smsgateway/custom/sendshortmessage.md) method | Takes as input the [ShortMessage class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class.md) object, which defines elements of the text message, sends messages to the target recipients, and returns the [SendSmsMessageResult class](/docs/directorymanager/11.0/signin/smsgateway/custom/class/class_1.md) object, which contains  message delivery status and exception details | - | [ISmsGateway.TestCredentials](/docs/directorymanager/11.0/signin/smsgateway/custom/testcredentials.md) method | Returns a boolean value indicating whether the credentials for communicating with the SMS gateway are valid. | - | [ISmsGateway.TestConnection](/docs/directorymanager/11.0/signin/smsgateway/custom/testconnection.md) method | Returns a boolean value indicating whether the connection with the SMS gateway is established successfully. | - | [ISmsGateway.TestProxy](/docs/directorymanager/11.0/signin/smsgateway/custom/testproxy.md) method | Returns a boolean value informing whether the given proxy setting are valid. | - | [ISmsGateway.Clone](/docs/directorymanager/11.0/signin/smsgateway/custom/clone.md) method | Returns the member-wise clone of the ISMSGateway interface. | - | [ISmsGateway.AccountId](/docs/directorymanager/11.0/signin/smsgateway/custom/accountid.md) property | Gets or sets the account ID for connecting to the SMS gateway. | - | [ISmsGateway.Password](/docs/directorymanager/11.0/signin/smsgateway/custom/password.md) property | Gets or sets the password of the user name assigned by the SMS gateway provider. | - | [ISmsGateway.Url](/docs/directorymanager/11.0/signin/smsgateway/custom/url.md) property | Gets or sets the URL that the SMS gateway provides for sending messages. | - | [ISmsGateway.UserId](/docs/directorymanager/11.0/signin/smsgateway/custom/userid.md) property | Gets or sets the user name assigned to you by the SMS gateway provider. | - | [ISmsGateway.ProxyHostName](/docs/directorymanager/11.0/signin/smsgateway/custom/proxyhostname.md) property | Gets or sets the host name of the proxy server. | - | [ISmsGateway.ProxyPort](/docs/directorymanager/11.0/signin/smsgateway/custom/proxyport.md) property | Gets or sets the port number used by the proxy server. | - | [ISmsGateway.ProxyUsername](/docs/directorymanager/11.0/signin/smsgateway/custom/proxyusername.md) property | Gets or set the user name for connecting to the proxy server. | - | [ISmsGateway.ProxyPassword](/docs/directorymanager/11.0/signin/smsgateway/custom/proxypassword.md) property | Gets or sets the password of the user account that will be used for connecting to the proxy server. | - | [ISmsGateway.ProxyDomain](/docs/directorymanager/11.0/signin/smsgateway/custom/proxydomain.md) property | Gets or sets the domain name or IP address of the proxy server. | - -2. Reference **System.ComponentModel.Composition** - (_System.ComponentModel.Composition.dll_). - - This namespace is required as the **ISMSGateway** is built on top of Microsoft Extensibility - Framework (MEF) and at the core uses it for most of its functionality. - -## Deploy a Custom SMS Gateway - -After you have implemented all members of the **ISMSGateway** interface for your custom SMS gateway, -you must add to it the metadata for the MEF's importing interface. This metadata contains basic -attributes that define the custom gateway assembly. - -### Adding the MEF Exporting Interface - -The following example code shows how to set the SMS gateways basic, defining attributes. You must -add these attributes before the class definition. - -``` -namespace ClickatellCustomSMSGateway  -{ -/// Exporting interface of ISMSGateway  -[Export(typeof(ISmsGateway))]  -/// The syntax of initializing the meta data attributes  -// [SMSGatewayMetadataAttribute ( AccountIdRequired=Is Account ID required by the SMS Gateway? Possible values can be true or False,  -// Description = "a description of the Custom SMS Gateway",  -// Name="Name by which the SMS Gateway should appear in GroupID Management Console",  -// PasswordRequired= Does the SMS Gateway require a password for connecting with it? Possible values can be true or False,  -// UserIdRequired=Does the SMS Gateway require a user ID for connecting with it? Possible values can be true or False,       -// UrlRequired=Does the SMS Gateway expose some URL for sending text messages? Possible values can be true or False,  -// ProxyDomainRequired=Does a proxy domain require for communicating with the SMS Gateway? Possible values can be true or False,       -// ProxyHostNameRequired=Is proxy host name required for connecting with the proxy server? Possible values can be true or False,  -// ProxyPasswordRequired=Does the proxy server require a password for connecting with it? Possible values can be true or False,       -// ProxyPortRequired=Does the port number required for connecting with the proxy server? Possible values can be true or False,  -// ProxyUsernameRequired=Does the proxy server require a user name for connecting with it? Possible values can be true or False,,       -// URL="The address provided by SMS gateway for sending messages. If no URL is required by the SMS gateway, provide an empty string like """)] -/// Meta data attributes initialization  -[SMSGatewayMetadataAttribute ( AccountIdRequired=false, Description = "Clickatell SMS Gateway",Name="Clickatell",PasswordRequired=true, UserIdRequired=true,UrlRequired=true,ProxyDomainRequired=false,ProxyHostNameRequired=false,      ProxyPasswordRequired=false,ProxyPortRequired=false, ProxyUsernameRequired=false,URL="http://api.clickatell.com/http/sendmsg?")]  -Class ClickatellCustomSMSGatewayBasic : ISMSGateway  -{ -... -... -... -} -} - -``` - -### Register your Custom SMS Gateway with GroupID - -1. On the GroupID server, go to: - X:\Program Files\Imanami\GroupID - 11.0\GroupIDDataService\Inetpub\GroupIDDataService\Web\SMSGateways\ - (X represents the GroupID installation drive). -2. Create a new folder here using the name that was specified for the **Name** SMS gateway meta data - attribute. -3. Compile and generate the DLL file for your custom SMS gateway. -4. Restart IIS services by typing the following command in the **Run** dialog box: - _iisreset_ - -If the SMS gateway is successfully registered, it will get listed in the **Gateway Type** list (on -the **Create SMS Gateway** page) for selection when creating an SMS gateway account. - -**See Also** - -- [SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/overview.md) -- [ISMSGateway Members](/docs/directorymanager/11.0/signin/smsgateway/custom/overview.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/manage.md b/docs/directorymanager/11.0/signin/smsgateway/manage.md deleted file mode 100644 index 7ba2495d49..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/manage.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Manage SMS Gateway Accounts" -description: "Manage SMS Gateway Accounts" -sidebar_position: 10 ---- - -# Manage SMS Gateway Accounts - -You can create one or more SMS gateway accounts in GroupID and link an account with an identity -store. You can also set an account as the default account, so that it is automatically linked to an -identity store created thereafter. - -GroupID supports several SMS gateway providers. You can also use the Custom Gateway API to integrate -with an unsupported provider. - -What do you want to do? - -- [Create an SMS Gateway Account](#create-an-sms-gateway-account) -- [Modify an SMS Gateway Account](#modify-an-sms-gateway-account) -- [Set an SMS Gateway Account as Default](#set-an-sms-gateway-account-as-default) -- [Test SMS Gateway Account Connection](#test-sms-gateway-account-connection) -- [Link an SMS Gateway Account to an Identity Store](#link-an-sms-gateway-account-to-an-identity-store) -- [Delete an SMS Gateway Account](#delete-an-sms-gateway-account) - -## Create an SMS Gateway Account - -1. In Admin Center, click **SMS Gateway** at the bottom of the left navigation pane. -2. On the **SMS Gateways** page, do either of the following: - - - Click **Setup SMS Gateway** - This button is displayed when no gateway account exists in - GroupID. - - Click **Create SMS Gateway** - This button is displayed when one or more gateway accounts have - been created in GroupID. - - The **Create SMS Gateway** page is displayed. - -3. Enter a name for the gateway account in the **Name** box. -4. In the **Gateway Type** drop-down list, select an SMS gateway provider. - The list includes the gateways that GroupID supports and any custom SMS gateways that you have - written. Selecting a gateway type displays the gateway URL, which is the web service address the - SMS gateway uses for sending text messages. -5. Enter an account ID for the gateway type in the **Account ID** box. -6. Enter the username and password for the account in the **User Name** and **Password** boxes. -7. To communicate with the SMS gateway through a proxy server, click **Show Proxy Options**. This - displays some additional fields for entering proxy settings. Enter the following proxy - information: - - - **Proxy User Name** - the proxy user name, if required by the proxy server. - - **Proxy Password** - the password for the user name. - - **Description** - a description of the proxy connection. - - **Proxy Domain** - the domain name or IP address of the proxy server. - - **Proxy Host Name** - the host name of the proxy server. - - **Proxy Port** - the port number the proxy uses. - -8. Test the account settings: - - 1. Click **Test Connection**. - 2. In the **Test SMS Gateway Connection** dialog box, enter a mobile phone number for receiving - a test message. Use International format, with no spaces or special characters. For example: - 18588123169, 447079692712, 923225867987. - 3. Click **OK** to send the message to the mobile number. - -9. Select the **Set as default account** check box to link this gateway account with the identity - stores created from this point forward. -10. Click **Create SMS Gateway** to create the gateway account. - -## Modify an SMS Gateway Account - -You can update the details of an SMS gateway account, such as its name and the credentials used to -connect to the gateway. - -**To modify an account:** - -1. In Admin Center, click **SMS Gateway** at the bottom of the left navigation pane. - The **SMS Gateways** page is displayed with a list of the SMS gateway accounts that you have - created. -2. To update a gateway account, click **Edit** for it in the **Actions** column. -3. On the **Edit SMS Gateway** page, update the required details. Refer to step 3 and onwards in the - [Create an SMS Gateway Account](#create-an-sms-gateway-account) topic for details. - -## Set an SMS Gateway Account as Default - -1. In Admin Center, click **SMS Gateway** at the bottom of the left navigation pane. - The **SMS Gateways** page is displayed with a list of the SMS gateway accounts that you have - created. -2. Click **Edit** for a gateway account in the **Actions** column. -3. On the **Edit SMS Gateway** page, select the **Set as default account** check box to set this - gateway account as default, which means that it will be linked with the identity stores created - hereafter. -4. Click **Save SMS Gateway**. - -## Test SMS Gateway Account Connection - -1. In Admin Center, click **SMS Gateway** at the bottom of the left navigation pane. - The **SMS Gateways** page is displayed with a list of the SMS gateway accounts that you have - created. -2. Click **Test Connection** for a gateway to test whether GroupID can successfully send text - messages through it. -3. In the **Test SMS Gateway Connection** dialog box, enter a mobile phone number for receiving a - test message. Use International format, with no spaces or special characters. For example: - 18588123169, 447079692712, 923225867987. -4. Click **OK** to send the message to the mobile number. - -## Link an SMS Gateway Account to an Identity Store - -See the -[Link an SMS Gateway Account to an Identity Store](/docs/directorymanager/11.0/signin/identitystore/configure/smsauthentication.md#link-an-sms-gateway-account-to-an-identity-store) -topic. - -## Delete an SMS Gateway Account - -You can delete an SMS gateway account that is not linked with any identity store. - -**To delete an account:** - -1. In Admin Center, click **SMS Gateway** at the bottom of the left navigation pane. -2. On the **SMS Gateways** page, click **Delete** for a gateway account to delete it. -3. One of the following happens: - - - If the gateway account is not linked with an identity store, a message is displayed, asking - you to confirm its deletion. Clicking **Delete** will delete the account. - - If the gateway account is linked with an identity store, GroupID will not allow you to delete - it. - -See Also - -- [SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/overview.md) -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) diff --git a/docs/directorymanager/11.0/signin/smsgateway/overview.md b/docs/directorymanager/11.0/signin/smsgateway/overview.md deleted file mode 100644 index d6c1518ebd..0000000000 --- a/docs/directorymanager/11.0/signin/smsgateway/overview.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: "SMS Gateway" -description: "SMS Gateway" -sidebar_position: 140 ---- - -# SMS Gateway - -In GroupID, an SMS gateway account is required for: - -- SMS verification for multifactor authentication, second factor authentication, and Second Way - Authentication. GroupID uses an SMS gateway account to send verification codes to the users’ - mobile numbers. -- Sending new passwords and password reset links to the users’ mobile numbers by the helpdesk users, - when they reset end users’ passwords using the Helpdesk node in Admin Center. - -The SMS gateway can be any third-party service provider capable of sending text messages to mobile -phone numbers. - -GroupID supports these SMS gateways: - -- Bulletin.net -- Nexmo -- RedOxygen - -To use a gateway not in this list, write your own custom gateway using GroupID's Custom Gateway API. - -For a gateway, you can set up as many gateway accounts as required and then link a gateway account -to an identity store. - -**See Also** - -- [Manage SMS Gateway Accounts](/docs/directorymanager/11.0/signin/smsgateway/manage.md) -- [Implement and Deploy a Custom SMS Gateway](/docs/directorymanager/11.0/signin/smsgateway/implementcustom.md) -- [Authentication Policy](/docs/directorymanager/11.0/signin/authpolicy/authpolicy.md) diff --git a/docs/directorymanager/11.0/signin/workflow/_category_.json b/docs/directorymanager/11.0/signin/workflow/_category_.json deleted file mode 100644 index 43b0f78b26..0000000000 --- a/docs/directorymanager/11.0/signin/workflow/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Workflows", - "position": 80, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/signin/workflow/advancedsettings.md b/docs/directorymanager/11.0/signin/workflow/advancedsettings.md deleted file mode 100644 index 872c8eb39a..0000000000 --- a/docs/directorymanager/11.0/signin/workflow/advancedsettings.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: "Manage Advanced Workflow Settings" -description: "Manage Advanced Workflow Settings" -sidebar_position: 20 ---- - -# Manage Advanced Workflow Settings - -You can specify advanced settings for workflow, such as set a default approver for workflow requests -and define approver acceleration settings. - -NOTE: Functions discussed in this topic are licensed under different add-ons. See the -[ License GroupID](/docs/directorymanager/11.0/signin/concepts/licensing.md) topic. - -What do you want to do? - -- [Specify a Default Approver](#specify-a-default-approver) -- [Apply Approver Acceleration](#apply-approver-acceleration) -- [Delete Workflow Requests](#delete-workflow-requests) -- [Integrate with Microsoft Power Automate](#integrate-with-microsoft-power-automate) - -## Specify a Default Approver - -You can designate a recipient as the default approver for workflow requests. Requests are routed to -this recipient based on the following rules: - -- When approver acceleration is not enabled, the applicable rules are discussed in the - [Workflow Approval Scenarios](/docs/directorymanager/11.0/signin/workflow/overview.md#workflow-approval-scenarios) - topic. -- When approver acceleration is enabled: - - - A request is sent to the default approver when the last approver in the acceleration chain - does not approve or deny it within the specific number of days. - - A request is routed to the default approver when the hierarchy breaks at any point in the - acceleration chain. For example, if the maximum acceleration level is set to 3 but there is no - recipient to accelerate the request after second level acceleration, the request goes to the - default approver. - -The default approver also receives group expiry and deletion notifications for groups without -owners. - -**To specify a default approver:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Workflows** under **Settings** in the left pane. -4. On the **Workflows** page, click the **Advanced Workflow Settings** tab. -5. On th **Advanced Workflow Settings** tab, use the **Default Approver** box to specify a recipient - as the default approver. To search for a recipient: - - - Enter a search string in the box. Group and user names starting with the string are displayed - as you type. Select a user or group to set as the default approver. - - Or - - - Click **Advanced** to search an object by different parameters, such as name, department, - company, and email. - In the _advanced search_ box, enter a search string and click **Search**. User and group - objects matching the string are displayed. Select the required object. - - To remove the default approver, click **Delete** for it. - -6. Click **Save**. - -## Apply Approver Acceleration - -The workflow approver acceleration feature ensures that no workflow request remains undecided. To -apply setting related to approver acceleration, see the -[Workflow Approver Acceleration](/docs/directorymanager/11.0/signin/workflow/approveracceleration.md) -topic. - -## Delete Workflow Requests - -You can delete the workflow requests generated for an identity store based on certain settings. For -example, you can delete the ‘denied’ requests that are old by 30 days or more. - -**To delete workflow requests:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Workflows** under **Settings** in the left pane. -4. On the **Workflows** page, click the **Advanced Workflow Settings** tab. Go to the **Workflow - Requests** section. -5. In the **Delete requests that are x or more days old** box, specify a number, say 30. Workflow - requests that are 30 days old and older will be auto deleted. -6. Select the type of requests you want to delete. - - - **Pending:** to delete requests that are pending, including your own. - - **Approved:** to delete requests that have been approved. - - **Denied:** to delete requests that have been denied. - -7. Click **Delete**. GroupID deletes requests of the selected type that are old or older than the - specified number of days. -8. Click **Save**. - -## Integrate with Microsoft Power Automate - -You can also link your Power Automate flows to GroupID workflows. For details, see the -[Integrate with Power Automate](/docs/directorymanager/11.0/signin/workflow/integrate.md) -topic. - -**See Also** - -- [Workflows](/docs/directorymanager/11.0/signin/workflow/overview.md) -- [Implement Workflows](/docs/directorymanager/11.0/signin/workflow/implement.md) -- [Workflow Approver Acceleration](/docs/directorymanager/11.0/signin/workflow/approveracceleration.md) -- [Integrate with Power Automate](/docs/directorymanager/11.0/signin/workflow/integrate.md) diff --git a/docs/directorymanager/11.0/signin/workflow/approveracceleration.md b/docs/directorymanager/11.0/signin/workflow/approveracceleration.md deleted file mode 100644 index b726daea39..0000000000 --- a/docs/directorymanager/11.0/signin/workflow/approveracceleration.md +++ /dev/null @@ -1,199 +0,0 @@ ---- -title: "Workflow Approver Acceleration" -description: "Workflow Approver Acceleration" -sidebar_position: 30 ---- - -# Workflow Approver Acceleration - -The workflow approver acceleration feature ensures that no workflow request remains undecided. It -automatically accelerates a request to another approver if the current approver does not act on it -for a certain number of days. - -Let’s assume User A, who is the approver of a workflow, does not approve/deny a request for x number -of days. This request will accelerate to User B (first acceleration level), and if User B does not -take action for x days, it will accelerate to User C (second acceleration level). The request will -continue to be accelerated to the maximum level, and if not approved/denied, it will go to the -default approver. When no default approver is defined, the request becomes static. A static request -is one that is active in GroupID and can be approved or denied by the approver any time. It -continues to appear in the list of pending requests for the approver(s). - -Workflow approver acceleration settings apply to all workflows in the identity store. However, you -can exempt individual workflows from it. - -What do you want to do? - -- [Apply Approver Acceleration](#apply-approver-acceleration) -- [Workflow Approver Acceleration Rules](#workflow-approver-acceleration-rules) - -## Apply Approver Acceleration - -To configure approver acceleration for an identity store, you have to: - -- Enable approver acceleration. -- Set the number of days a request stays with an approver before it is accelerated to the next - approver. -- Specify the maximum number of acceleration levels. - -A scheduled job, Workflow Acceleration, is responsible for accelerating requests to the next level, -auto approve requests, and send notifications. See the -[Workflow Acceleration Schedule](/docs/directorymanager/11.0/signin/schedule/workflowacceleration.md) -topic. - -**To apply approver acceleration:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Workflows** under **Settings** in the left pane. -4. On the **Workflows** page, click the **Advanced Workflow Settings** tab. - - NOTE: When an SMTP server is not defined for the identity store, approver acceleration settings - are disabled and a message is displayed with a **Configure Now** link to redirect you to the - **Notifications** page. - -5. Use the **Approver Acceleration** toggle button to apply the approver acceleration settings and - rules to all workflows defined for the identity store. - To exempt a particular workflow, open it and clear the **Approver Acceleration** check box. See - the - [Modify a Workflow](/docs/directorymanager/11.0/signin/workflow/implement.md#modify-a-workflow) - topic. -6. In the **Maximum Levels** box, specify a number, say 2. Workflow requests would be accelerated to - a maximum of 2 levels for approval. Requests that are nor approved or denied at the maximum level - become static. -7. In the **Repeat Every X Days** box, specify x number of days, say 5. When an approver does not - act on a request for the specified number of days, the request is accelerated to the next - approver in the acceleration chain. -8. Click **Save**. - -## Workflow Approver Acceleration Rules - -When the approver of a workflow does not approve/deny a request within a certain number of days, -GroupID applies certain rules to forward it to another approver. - -On acceleration, the new approver receives an email notification to approve/deny the request. - -NOTE: Even after acceleration, all previous approvers are authorized to approve/deny the requests. -Administrators can also approve or deny these requests at any given time from the _All Requests_ -node in the GroupID portal. - -Workflow acceleration rules are discussed below, with these assumed acceleration settings: - -Acceleration level: 3 -Approval days: 5 - -### When the Approver is a User - -Acceleration rules for a user approver are: - -1. When the approver is a user who does not approve/deny a request for 5 days, the request is - accelerated to the user’s primary manager. - Example: A workflow request is with User A, who does not approve/deny it. After 5 days, the - request will be accelerated to User A’s manager (first level acceleration). -2. If the new approver (User B) does not approve/deny the request in the next 5 days, the request is - accelerated to User B's primary manager (User C) - second level acceleration. -3. If the new approver (User C) does not approve/deny the request in the next 5 days, the request is - accelerated to User C’s primary manager (User D) – third level acceleration). -4. After the third (and the last) level acceleration, if User D does not approve or deny the request - for 5 days, the request goes to the default approver. If the default approver is not specified, - the request becomes static. - -NOTE: Consider the following: - -1. If, in the acceleration chain, any approver is disabled, the workflow request is directly sent - to the primary manager of the disabled approver in the same acceleration hop. Referring to the - example in step 3, if User C is disabled, the workflow request will go to User D (instead of - User C) in second-level acceleration. -2. If the hierarchy breaks at any point in the acceleration chain, the request is routed to the - default approver. Referring to the example in step 3, if User C does not have a manager, the - chain breaks. As a result, the request is sent to the default approver. See the - [Cases for the Default Approver](#cases-for-the-default-approver) topic. - -### When the Approver is a Group - -If a group is set as the approver of a workflow route or comes up as an approver in the acceleration -chain, the request is available to all group members for approval. Members added to the group -hereafter do not have the authority to approve or deny the request. The request is considered -approved or denied when any one group member takes action on it. - -Acceleration rules for a group approver are: - -1. When a group is set as the approver in a workflow, the request is available to all existing group - members for approval. If no group member approves/denies the request for 5 days, the request is - accelerated to the group’s primary owner. - Let’s assume a workflow request is with Group A, and none of the members approve/deny it. After 5 - days, the request is accelerated to Group A’s primary owner, (first level acceleration). -2. If Group A’s primary owner (Object O) does not approve/deny the request in the next 5 days, the - following happens: - - - When Object O is a user, the request will accelerate to its manager (second level - acceleration). It will move up the acceleration chain of Object O till the maximum - acceleration level. - - When Object O is a group, the request will accelerate to all group members (second level - acceleration). And when none of the group members approve or deny the request in the next 5 - days, the request will accelerate to the group;s primary owner (third level acceleration). - -3. After the third (and the last) level acceleration, if the approver(s) do not approve or deny the - request for 5 days, the request goes to the default approver. If the default approver is not - specified, the request becomes static. -4. If the group set as approver has a nested group as its member, then requests are also sent to - members of the nested group, but only up till level 1. - Suppose a group has three members; User A, User B, and Group C (nested group). A request sent to - this group goes to User A, User B, and all members of Group C. If Group C has another group as - its member, the request will not go to the member group. -5. Scenarios where an approver is disabled or the hierarchy breaks are discussed as a note at the - end of the [When the Approver is a User](#when-the-approver-is-a-user) topic. - -### Cases for the Default Approver - -Rules for the default approver are: - -1. When the default approver is a user who does not approve/deny a request for 5 days, the request - becomes static. -2. When a default approver is not set in advanced workflow settings, requests cannot be accelerated - to it; hence they become static. -3. When a group is set as the default approver, workflow requests are accelerated to all group - members. -4. If members of the default approver group do not approve/deny a request for 5 days, it is - accelerated to the group's primary owner. -5. If the default approver group has no members or when all members are disabled, the request is - accelerated to the group's primary owner. -6. However, if the owner of the default approver group is also a group, the workflow request is not - accelerated and becomes static. - -### Other Cases - -1. In a circular manager situation, requests are auto-approved. - **Example:** User A is the approver of a workflow, who does not approve/deny a request for 5 - days. The request is accelerated to User A’s manager – User B (first level acceleration). If User - B does not approve/deny the request in the next 5 days, the request goes to User B’s manager – - User C (second level acceleration). If User C does not approve/deny the request in the next 5 - days, the request is accelerated to User C’s manager (third level acceleration). However, if User - A is the manager of User C, a circular manager situation occurs and the workflow request will be - auto approved (and not go to User A). -2. When the requester comes up as an approver in the approval acceleration chain, the request is - auto approved. - Example: User A does not approve/deny a request for 5 days. The request is accelerated to User - A’s manager (first level acceleration). If User A’s manager (User B) is the initiator of the - workflow request, the request is auto approved (and not accelerate to User B). -3. For the _Transfer a User_ workflow, a request goes to the new primary manager of the requester - for first level acceleration. - If User A transfers User B to another manager (User C), a request goes to User C for approval. If - User C does not approve/deny it for 5 days, the request will move up User C’’s acceleration - chain. -4. When the approver, with whom a request currently resides, is removed as manager or group owner, - the request is sent to the recipient that is set as the new manager/owner and removed from the - previous manager’s/owner’s approval queue. The request will also ascend the new manager's/owner's - managerial line. - Example: A workflow request accelerates to User A but before User A approves/denies it and the - next acceleration is due, User A is replaced by User B as manager. In this case, the request will - move to User B and ascend User B’s managerial line accordingly. -5. If an administrator re-routes a workflow request to another user (User B) from the GroupID - portal, the request acceleration chain will follow User B’s managerial line. - -**See Also** - -- [Workflows](/docs/directorymanager/11.0/signin/workflow/overview.md) -- [Implement Workflows](/docs/directorymanager/11.0/signin/workflow/implement.md) -- [Manage Advanced Workflow Settings](/docs/directorymanager/11.0/signin/workflow/advancedsettings.md) -- [Integrate with Power Automate](/docs/directorymanager/11.0/signin/workflow/integrate.md) diff --git a/docs/directorymanager/11.0/signin/workflow/implement.md b/docs/directorymanager/11.0/signin/workflow/implement.md deleted file mode 100644 index 71b2025d0c..0000000000 --- a/docs/directorymanager/11.0/signin/workflow/implement.md +++ /dev/null @@ -1,275 +0,0 @@ ---- -title: "Implement Workflows" -description: "Implement Workflows" -sidebar_position: 10 ---- - -# Implement Workflows - -To create a workflow, you have to specify the following: - -- **Object** - the object(s) - user, contact, group - to apply the workflow to. -- **Event** - a create, edit, or delete event that, when performed for the object(s), would trigger - the workflow. -- **Field** - one or more fields (attributes) that the workflow would apply to. When the values of - these attributes change for the object, an approval request is triggered. -- **Filter** - a condition that prevents the workflow from triggering, even when the _object_, - _event_, and _field_ criterion is met. -- **Approver** - the object to send the workflow request for approval. - -As additional workflow features, you can also: - -- Enable workflow approver acceleration -- Link a workflow with a Microsoft Power Automate flow - -**Workflow example:** - -Consider a workflow where: - -- Object: Group -- Event: Edit -- Field: criteria -- Approver: Group owner - -It implies that when a user edits the values stored in the _criteria_ attribute of a group, a -workflow request is sent to the group owner, who is the workflow approver. Changes are applied after -the request is approved. - -But if you add a filter as: - -| | | | -| ------------- | ---------- | ------- | -| Field | Condition | Value | -| employee Type | Not Equals | manager | - -It implies that when a manager edits the value of the _criteria_ attribute, the change is effective -immediately and this workflow does not apply. When a non-manager user changes the value of the -attribute, it triggers the workflow. - -What do you want to do? - -- [View the Workflows](#view-the-workflows) -- [Create a New Workflow](#create-a-new-workflow) -- [Link a Workflow to a Power Automate Flow](#link-a-workflow-to-a-power-automate-flow) -- [Modify a Workflow](#modify-a-workflow) -- [Enable or Disable a Workflow](#enable-or-disable-a-workflow) -- [Delete a User-defined Workflow](#delete-a-user-defined-workflow) - -## View the Workflows - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Workflows** under **Settings** in the left pane. On the **Configure Workflows** tab of - the **Workflows** page, the following information is displayed for a workflow: - - | Label | Description | - | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | Enable | Shows whether a workflow is enabled or disabled. Use the toggle button next to a workflow to enable or disable it. | - | Type | A workflow has one of these types: - **System:** workflows that are defined by default for an identity store. - **User Defined:** workflows that are defined by users for an identity store. | - | Name | A descriptive name for a workflow that identifies the action the workflow audits. | - | Object(s) | The directory object(s) the workflow applies to. | - | Approver(s) | The approver(s) specified for a workflow. Approver(s) are responsible for approving or denying the requests generated for the workflow. | - | Event | The event that triggers a workflow. | - -4. You can perform the following actions: - - - Click **Add Workflow** to create a new workflow for the identity store. - - Click the ellipsis button for a workflow and select **Edit** to update workflow details, such - as approvers, filters, and fields. - -## Create a New Workflow - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Workflows** under **Settings** in the left pane. -4. On the **Configure Workflows** tab of the **Workflows** page, click **Add Workflow** in the top - right corner. -5. On the **Create Workflow** page, enter a name for the workflow In the **Name** box. -6. Select one or more objects (User, Contact, Group) to apply the workflow to. -7. In the **Events** drop-down list, select the event (Create, Edit, Delete) that will trigger the - workflow. - - NOTE: (1) For the Create event, you can define only one workflow for an object. - (2) A workflow for the Group object with the Delete event will be triggered when the group is - manually deleted. - -8. Select the **Mail Approval** check box to enable the approver to approve or deny a workflow - request from within the workflow email notification. These notifications contain the **Accept** - and **Deny** buttons. On clicking any of these, the approver is redirected and auto-authenticated - on the GroupID portal, where he or she can approve or deny the request. - When this check box is not selected, the **Accept** and **Deny** buttons are not available in the - email notifications. Approvers have to sign into the GroupID portal or the GroupID mobile app to - manage workflow requests. -9. The **Approver Acceleration** check box applies if approver acceleration is enabled for the - identity store. See the - [Apply Approver Acceleration](/docs/directorymanager/11.0/signin/workflow/approveracceleration.md#apply-approver-acceleration) - topic. - - - To apply approver acceleration to this workflow, select the **Approver Acceleration** check - box. - - To exempt this workflow from approver acceleration, clear this check box. - -10. Enter a brief description for the workflow in the **Description** box. -11. In the **Portal URL** drop-down list, select a GroupID portal URL to include in the workflow - email notifications. The URL will redirect the recipients to the portal for taking action on a - request, such as approve or deny it. - The list contains URLs of GroupID portals linked with the identity store. -12. Click **Add Approver(s)** in the **Approver(s)** section to select the users and groups to - approve the requests generated for this workflow: The **Add Approver(s)** dialog box is - displayed. - - 1. Fields on the **Add Approver(s)** dialog box vary, depending on the object and event - selected. Then select one or more of the available options: - - | Option | Available For | Description | - | -------------------------------------------------- | -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | Owner of the Group | _Edit_ and _delete_ events of the _Group_ object | Select it to specify the group’s primary owner as the request approver. | - | Owner and Additional Owner of the Group | _Edit_ and _delete_ events of the _Group_ object | Select it to specify the group’s primary and additional owners as the request approvers. | - | Manager of User | _Edit_ and _Delete_ events of the _User_ and _Contact_ objects | Select it to specify the user’s or contact’s primary manager as the request approver. | - | Manager and Additional Manager of User | _Edit_ and _Delete_ events of the _User_ and _Contact_ objects | Select it to specify the user’s/contact’s primary and additional managers as the request approvers. | - | Search Container Include Sub-Containers Search box | For all objects and events | You can specify one or more users and groups as approvers. In case of a group, all its members are set as approvers. Specify a container to search for the desired object(s); then perform a search to locate and select the object. - Click the down arrow in the **Search Container** box and select a container to limit the search scope to it. - Select the **Include Sub-Containers** check box to include the sub-containers within the selected container to search for the object. - Enter a search string in the search box; objects starting with the string are displayed as you type. Click **Add** for an object to select it. You can also perform an advanced search to locate the object. Click **Advanced** in the search box and use the search fields to enter a search string. On clicking **Search**, objects matching the string are displayed. Select the user or group you want to add as approver. | - - 2. Click **Add** to close the **Add Approver(s)** dialog box. - -13. Use the **Filters** section to specify a criterion; anything beyond that criterion will not - trigger the workflow. For example, when you define the following filter: - - Object: Group - Event: Delete - Filter: groupType = Security - This workflow will trigger when a security group is deleted. However, when a group object with - type other than ‘Security’ is deleted, this workflow will not trigger. - - 1. In the **Filter(s)** section, click **Add Filter(s)**. The **Add Filter** dialog box is - displayed. - 2. Select a schema attribute from the _field_ list. - 3. Select an operator to evaluate the attribute from the _operator_ list. - - - **Present** - returns objects that have a value specified for the attribute. - - **Not Present** - returns objects that do not have a value specified for the attribute. - - **Equals** - returns objects when the attribute value exactly matches the text you specify - in the value box. - - **Not Equals** - returns objects when the attribute value does not match the text you - specify in the value box. - - 4. Enter a value in the _value_ box (not case-sensitive). This box is not available for the - _Present_ and _Not Present_ operators, which are not comparison operators. - 5. Click **Add** to close the **Add Filter** dialog box. - -14. Use the **Field(s)** section to specify the fields (attributes) that you want to apply the - workflow to. For example, when you define a workflow as: - - Object: User - Event: Edit - Filter: Department = IT - Field: Email - This workflow will trigger when the Email field for a user object with department set to IT is - edited. It will not be triggered when the Email field is edited for a user that does not belong - to the IT department, or when a field other than Email is edited for a user in the IT - department. - - 1. To add a field, click **Add Field(s)** in the **Field(s)** section. - 2. On the **Add Fields** dialog box, select the check box for a field to add it to the workflow - and click **Add**. - - NOTE: The **Field(s)** section is not available when _Create_ is selected in the **Events** - drop-down list. - -15. By default, the workflow is enabled, as indicated by the **Enabled** toggle button at the top of - the page. If required, use the toggle button to disable it. -16. Click the **Create Workflow** button on the **Create Workflow** page to create the workflow. -17. Click **Save** on the **Workflows** page. - -## Link a Workflow to a Power Automate Flow - -You can define Power-Automate settings for a workflow to link that workflow to a Power Automate -flow. - -These settings enable you to connect to Power Automate from within a workflow (say Workflow1) and -create a basic flow template there. On providing the URL of the flow template in Workflow1, the two -are linked. As a result, the flow auto triggers when the GroupID workflow is triggered. - -For details on linking a workflow to a flow, see the -[Trigger a Flow from GroupID](/docs/directorymanager/11.0/signin/workflow/integrate.md#trigger-a-flow-from-groupid) -topic. - -## Modify a Workflow - -Workflows for an identity store are differentiated by their type. Predefined workflows (also called -system workflows), by default, are displayed at the top; user-defined workflows follow. - -You can update all details for a user-defined workflow. A system workflow, however, can be modified -to a limited extent. You can only update the approvers, enable/disable mail approval, enable/disable -approver acceleration, and link it to a Power Automate flow. - -**To modify a workflow:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Workflows** under **Settings** in the left pane. -4. On the **Configure Workflows** tab of the **Workflows** page, click the ellipsis button for a - workflow and select **Edit**. -5. The **Edit Workflow** page is displayed. Follow steps 5-15 in the - [Create a New Workflow](#create-a-new-workflow) topic to update the required information. -6. To link this workflow to a Power Automate flow, click **Power Automate Settings** in the top - right corner; the **Power Automate Settings** dialog box is displayed. Follow step 6 and onwards - in the - [Link an Identity Store Workflow to a Flow](/docs/directorymanager/11.0/signin/workflow/integrate.md#link-an-identity-store-workflow-to-a-flow) - topic to complete the task. -7. After making the required changes, click **Update Workflow** on the **Edit Workflow** page to - save the settings. -8. Click **Save** on the **Workflows** page. - -## Enable or Disable a Workflow - -Workflows in an identity store can be disabled to prevent them from triggering. - -You can enable or disable a workflow in any of the following ways. - -**Method 1:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page click the ellipsis button for an identity store and select - **Edit**. -3. Click **Workflows** under **Settings** in the left pane. -4. On the **Configure Workflows** tab of the **Workflows** page, use the **Enable** toggle button - for a workflow to enable or disable it. -5. Click **Save**. - -**Method 2:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page click the ellipsis button for an identity store and select - **Edit**. -3. Click **Workflows** under **Settings** in the left pane. -4. On the **Configure Workflows** tab of the **Workflows** page, click the ellipsis button for a - workflow and select **Edit**. -5. On the **Edit Workflow** dialog box, use the toggle button in the top left to enable or disable - the workflow. Then click **Update Workflow**. -6. On the **Workflows** page, click **Save**. - -## Delete a User-defined Workflow - -Workflows in an identity store can have their type as _System_ or _User Defined_. You can delete -user-defined workflows; system workflows cannot be deleted. - -**To delete a workflow:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Workflows** under **Settings** in the left pane. -4. On the **Configure Workflows** tab of the **Workflows** page, click the ellipsis button for a - user-defined workflow and select **Delete Workflow**. -5. Click **Delete** on the confirmation dialog box. -6. Click **Save**. - -**See Also** - -- [Workflows](/docs/directorymanager/11.0/signin/workflow/overview.md) -- [Manage Advanced Workflow Settings](/docs/directorymanager/11.0/signin/workflow/advancedsettings.md) -- [Workflow Approver Acceleration](/docs/directorymanager/11.0/signin/workflow/approveracceleration.md) -- [Integrate with Power Automate](/docs/directorymanager/11.0/signin/workflow/integrate.md) diff --git a/docs/directorymanager/11.0/signin/workflow/integrate.md b/docs/directorymanager/11.0/signin/workflow/integrate.md deleted file mode 100644 index 917afa4cc8..0000000000 --- a/docs/directorymanager/11.0/signin/workflow/integrate.md +++ /dev/null @@ -1,129 +0,0 @@ ---- -title: "Integrate with Power Automate" -description: "Integrate with Power Automate" -sidebar_position: 40 ---- - -# Integrate with Power Automate - -You can link an identity store in GroupID to Power Automate to achieve the following: - -- **Trigger a flow from** GroupID - To achieve this, you have to link a workflow in an identity - store to a Power Automate flow. When the GroupID workflow is triggered, the linked flow is auto - triggered. - -## Trigger a Flow from GroupID - -You can link a workflow in an identity store to a flow. Both system and user-defined workflows can -be linked to flows. - -- As a one-time process, connect your identity store to Microsoft Power Automate .See the - [Connect an Identity Store to Power Automate](#connect-an-identity-store-to-power-automate) topic. -- Link a workflow to a flow by providing the URL of that flow in the workflow .See the - [Link an Identity Store Workflow to a Flow](#link-an-identity-store-workflow-to-a-flow) topic. - -Consequently, when the identity store workflow is triggered, the linked flow is auto triggered. - -NOTE: When the flow is approved in Power Automate, the identity store workflow request is auto -approved. However, if the identity store workflow request is approved first, the flow would not be -auto approved. - -### Connect an Identity Store to Power Automate - -To connect an identity tore to Power Automate, you must configure a Power Automate client for that -identity store. This will establish a communication channel between the GroupID Data service and the -Power Automate platform. - -NOTE: Make sure the GroupID server is deployed on a machine that is exposed over the Internet, as -Power Automate needs to communicate with the GroupID server for processing requests. Power Automate -cannot communicate with a server deployed on a machine behind NAT. - -**To configure a Power Automate client for an identity store:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Workflows** under **Settings** in the left pane. -4. On the **Workflows** page, click the **Advanced Workflow Settings** tab. -5. In the **Power Automate Settings** section, click **Register Client**. -6. Enter the following information: - - - **Organization Code** - the unique name for the environment that stores your flows in Power - Automate. - - **Region** - the location of your environment. - - **GroupID Data Service URL** - the URL of the Data service. Requests from Power Automate will - communicate with the Data service endpoint. The URL is as: - `https:///` - For example: - https://powerautomate-netwrix1.msappproxy.net/directorymanagerdataservice - - **Tenant ID** - the tenant ID assigned to the GroupID application when you registered it in - Microsoft Entra Admin Center. - - **Client ID** - the application ID assigned to the GroupID application when you registered it - in Microsoft Entra Admin Center. - - NOTE: The GroupID application in Microsoft Entra Admin Center must have the following - permissions for Power Automate: - ![pa_permissions](/images/directorymanager/11.0/admincenter/workflow/pa_permissions.webp) - -7. Click **Save** on the **Advanced Workflow Settings** page. - -### Link an Identity Store Workflow to a Flow - -To link an identity store workflow to a Power Automate flow, generate a flow template from an -identity store workflow and provide the URL of the flow in workflow settings. When the workflow is -triggered, the linked flow is auto triggered. - -**To link a workflow to a flow:** - -1. In Admin Center, click **Identity Stores** in the left pane. -2. On the **Identity Stores** page, click the ellipsis button for an identity store and select - **Edit**. -3. Click **Workflows** under **Settings** in the left pane. -4. On the **Configure Workflows** tab of the **Workflows** page, click the ellipsis button for a - workflow and select **Edit**. -5. On the **Edit Workflow** page, click **Power Automate Settings** in the top right corner. -6. On the **Power Automate Settings** dialog box, provide the username and password of a Microsoft - Entra ID account for managing flows in the Microsoft Power Automate portal. This account must - have the following permissions on the Entra tenant: - - ![pa_permissions](/images/directorymanager/11.0/admincenter/workflow/pa_permissions.webp) - -7. Click **Create Template**. GroupID creates a basic flow in Power Automate with the same name as - the workflow, and displays the following message: - - ![pa_template_message](/images/directorymanager/11.0/admincenter/workflow/pa_template_message.webp) - -8. The next step is to copy the flow URL from Power Automate and provide it here. To copy the URL, - do the following: - - 1. Launch Power Automate and navigate to **Environments > GroupID application > My Flows**. This - page displays the flow you created in Power Automate from the GroupID workflow. - 2. Hover the mouse over the flow to display the ellipsis button. Click it and select **Edit**. - 3. Expand the **Connections** area. - - ![connections_area](/images/directorymanager/11.0/admincenter/workflow/connections_area.webp) - - 4. Click **Approvals** in the **Connections** area. The approver of the GroupID workflow is auto - added here. Click **Save**. - 5. Expand the **When a HTTP request is received** area and copy the URL displayed for **HTTP - POST URL**. - -9. In GroupID, return to the workflow being linked to the flow, and click **Configure a Request - URL** on the **Power Automate Settings** dialog box. -10. Enter the copied HTTP POST URL in the **Request URL** box. -11. Click **Authenticate** and then **Save**. -12. Click **Update Workflow** on the **Edit Workflow** page to save the settings. -13. Click **Save** on the **Workflows** page. -14. Next, enable the linked flow in Power Automate. To do so: - - 1. In Power Automate, navigate to **Environments > GroupID application > My Flows**. This page - displays the flow you created in Power Automate from the GroupID workflow. - 2. Hover the mouse over the flow to display the ellipsis button. Click it and select **Turn - on**. - -**See Also** - -- [Workflows](/docs/directorymanager/11.0/signin/workflow/overview.md) -- [Implement Workflows](/docs/directorymanager/11.0/signin/workflow/implement.md) -- [Manage Advanced Workflow Settings](/docs/directorymanager/11.0/signin/workflow/advancedsettings.md) -- [Workflow Approver Acceleration](/docs/directorymanager/11.0/signin/workflow/approveracceleration.md) diff --git a/docs/directorymanager/11.0/signin/workflow/overview.md b/docs/directorymanager/11.0/signin/workflow/overview.md deleted file mode 100644 index 54f35175c9..0000000000 --- a/docs/directorymanager/11.0/signin/workflow/overview.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: "Workflows" -description: "Workflows" -sidebar_position: 80 ---- - -# Workflows - -A workflow is a set of rules that GroupID uses as a built-in auditing system to ensure that changes -made to an object are approved by an authorized user before they are committed to the directory. - -Workflows are defined for an identity store and apply to the different operations, such as group -creation and expiry. - -A workflow triggers when a certain operation, performed by a user, meets the criteria defined for -that workflow. Designated users can approve or deny workflow requests using the GroupID portal or -the GroupID mobile app. - -NOTE: Workflows require an SMTP server to be configured for the identity store. See the -[Configure an SMTP Server](/docs/directorymanager/11.0/signin/identitystore/configure/smtpserver.md) -topic. - -## System Workflows - -GroupID provides the following predefined workflows (also called system workflows) that trigger when -their associated events occur: - -| | Workflow Name | Description | Default Approver | -| --- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | -| 1. | Workflow to Reset Password | When a user resets his or her password. It does not apply when helpdesk users reset the passwords of other users. | Primary and additional managers of the user | -| 2. | Workflow to Change Group Expiration Policy | When a user changes the expiry policy of a group. By default, this workflow is disabled and no approver is specified. You can edit the workflow to add an approver. | None | -| 3. | Workflow to Nest a Group | When a user adds a group (Group A) to the membership of another group (Group B). | Primary and additional owners of Group B | -| 4. | Workflow to Join a Group | When a user joins a semi-private group. | Primary and additional owners of the group | -| 5. | Workflow to Leave a Group | When a user leaves a semi-private group. | Primary and additional owners of the group | -| 6. | Workflow to Transfer a User | When a user transfers his or her direct report. | The new manager | -| 7. | Workflow to Terminate a User | When a manager terminates a direct report. By default, this workflow is disabled and no approver is specified. You can edit the workflow to add an approver. | None | -| 8. | Workflow to Change Manager | When a user changes his or her primary or additional manager. | Existing primary and additional managers of the user | - -You can also define new workflows for an identity store. - -NOTE: You cannot delete a system workflow, but you can disable it. You can also modify it to a -limited extent. - -## Synchronize Jobs and Workflows - -Workflows apply to Synchronize jobs as follows: - -- When you manually run a Synchronize job, GroupID evaluates whether the task it will perform falls - under the scope of a workflow. If yes, then a workflow request is triggered. The job will run when - the request is approved. - Workflows do not apply to Synchronize jobs that auto run through a Synchronize schedule. - **Example:** You have a Synchronize job that changes the job title of users in bulk. You also have - a ‘Change Title’ workflow that triggers when the job title of a user is changed. In this case, the - Synchronize job falls under the scope of the ‘Change Title’ workflow. When the job is run - manually, the workflow triggers and an approval request goes to the recipient set as the workflow - approver. If the approver approves the request, the job will run. If not, then it will not run. -- When you manually run a job collection in which some jobs fall under the scope of workflows while - others do not, workflow requests will be triggered for the respective jobs while the other jobs - will run as usual. -- When a workflow request against a Synchronize job is pending for approval, another request will be - triggered when the same user or any other user runs the same job again. -- When a Synchronize job runs to set the manager for a user who does not already have a manager, the - following happens: - - - The _Workflow to Change Manager_ will trigger if a default approver is set in advanced - workflow settings. - - If the default approver is not set, the workflow will not trigger and the user's manager will - be set without requiring any approval. - -- When a Synchronize job updates multiple attributes for an object type and different workflows have - been defined for the various attributes that it updates, then a separate request is triggered for - each of the applicable workflows and sent to the respective approvers. Even when one of these - requests is approved, the job runs, irrespective of whether another approver denies it. - **Example:** A Synchronize job falls under the scope of three workflows. Hence, three requests are - generated and sent to three different recipients for approval. If an approver approves it, another - denies it, and the third does not take any action, the job will run and update all target - attributes. -- Filters in workflows do not apply to Synchronize jobs. - -## How are Workflow Requests Handled - -When a workflow is triggered, an approval request is generated and sent to the designated -approver(s), informing them of the actions that a user wants to perform in an identity store. The -approver can view these requests in the GroupID portal and the GroupID mobile app. - -- If the approver is satisfied with the requested actions, he or she can approve the request and the - changes are committed to the directory. -- If the approver deems the actions inappropriate, he or she can deny the request and provide a - reason for denial. - -In any case, the requester and other approvers (in case of multiple approvers) are notified of the -outcome. - -## Workflow Approval Scenarios - -The following scenarios are valid when workflow approver acceleration settings are not applied. - -- When the object specified as an approver for a workflow is not available (such as if it is - disabled or not specified), workflow requests are sent to the default approver. If the default - approver is disabled or not specified either, the requests are auto approved. See the - [Specify a Default Approver](/docs/directorymanager/11.0/signin/workflow/advancedsettings.md#specify-a-default-approver) - topic. -- If the requester is also the approver for that workflow, the request is auto approved. - -## Integration with Microsoft Power Automate - -To automate your everyday tasks, you can also link your GroupID workflows to Power Automate flows. - -**See Also** - -- [Implement Workflows](/docs/directorymanager/11.0/signin/workflow/implement.md) -- [Manage Advanced Workflow Settings](/docs/directorymanager/11.0/signin/workflow/advancedsettings.md) -- [Workflow Approver Acceleration](/docs/directorymanager/11.0/signin/workflow/approveracceleration.md) -- [Integrate with Power Automate](/docs/directorymanager/11.0/signin/workflow/integrate.md) diff --git a/docs/directorymanager/11.0/welcome/_category_.json b/docs/directorymanager/11.0/welcome/_category_.json deleted file mode 100644 index 4e56755fb6..0000000000 --- a/docs/directorymanager/11.0/welcome/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Welcome to the Portal", - "position": 50, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "welcome" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/dashboard.md b/docs/directorymanager/11.0/welcome/dashboard.md deleted file mode 100644 index 41904609f4..0000000000 --- a/docs/directorymanager/11.0/welcome/dashboard.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: "Dashboard" -description: "Dashboard" -sidebar_position: 20 ---- - -# Dashboard - -The interface of the portal is designed in a manner that you can quickly access the main functions -of the portal. These functions are available as links on the top and left navigation bars. - -On logging into GroupID portal, you land on the dashboard. - -![dashboard](/images/directorymanager/11.0/portal/dashboard.webp) - -Use the following to navigate within the application: - -- [Quick Search](#quick-search) -- [Top right options](#top-right-options) -- [Menu pane](#menu-pane) -- [The Dashboard](#the-dashboard) - -## Quick Search - -Look on the top of the page for **Search**. This element appears on every page. Use it to locate and -display information for objects. See the -[Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) topic. - -- Use Quick Search to locate an object by its name. -- Use Advanced Search to search an object using a range of attributes. - -## Top right options - -The top right corner of the application displays: - -| Icon | Description | -| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Background tasks icon | View the status of Smart Group update jobs. A Smart Group Update job updates the membership of a Smart Group on the basis of a query. | -| Portal Settings | Personalize the portal. | -| Help icon | Launch the portal help. | -| User profile icon | Displays your profile picture with your name and the identity store that GroupID portal is connected to. Click it to launch the menu that displays the following: - GroupID version you’re using - The security role assigned to you in GroupID. The menu also displays the following options: - See full profile. See the [Object properties - General tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/general.md) topic. - My Applications. See the [Access your Applications](/docs/directorymanager/11.0/signin/concepts/accessapplications.md) topic. - Enroll your identity store account. See the [Enroll with Authentication Types](/docs/directorymanager/11.0/signin/authpolicy/enroll.md) topic. - Change Password. See the [Change your Password](/docs/directorymanager/11.0/signin/concepts/changepassword.md) topic. - Switch account. See the [Switch Accounts](/docs/directorymanager/11.0/signin/concepts/switchaccount.md) topic. - Sign Out | - -## Menu pane - -Look on the left side of the page for the navigation pane, which lists links to: - -- Create New (Group, User, Contact) -- The Dashboard -- Groups -- Users -- Requests -- History -- Entitlement -- Synchronize -- Reports - -## The Dashboard - -The dashboard comprises of a few cards. - -| Cards | Description | -| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| My Profile | View and update your profile in the directory. | -| All Users | Displays number of active users. Clicking it takes you to the **Users** page. | -| My Expiring Groups | Directs your attention to your expiring groups and any workflow requests that you may have to approve. | -| My Groups | Takes you to a listing of groups that you own. | -| Available Servers | Displays number of available servers for computing the effective NTFS permissions granted on the shared resources residing on those server. | -| Pending Requests | Displays logged-in user's requests that have not been approved yet. | -| Account Protection | Displays logged-in user's requests that have not been approved yet. | -| My Account History | Keeps track of the actions you performed using the portal. Use the **Add Note** button next to a history item to explain the reason for performing the action. | - -**See Also** - -- [Welcome to the Portal](/docs/directorymanager/11.0/welcome/welcome.md) -- [Access Portal](/docs/directorymanager/11.0/welcome/login.md) -- [Enroll Your Identity Store Account](/docs/directorymanager/11.0/welcome/secondfactorauthentication/enrollaccount.md) -- [ Change your password](/docs/directorymanager/11.0/welcome/user/manage/changepassword.md) -- [Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) diff --git a/docs/directorymanager/11.0/welcome/dashboard/_category_.json b/docs/directorymanager/11.0/welcome/dashboard/_category_.json deleted file mode 100644 index a35d45a352..0000000000 --- a/docs/directorymanager/11.0/welcome/dashboard/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Reports", - "position": 110, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "dashboard" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/dashboard/computer.md b/docs/directorymanager/11.0/welcome/dashboard/computer.md deleted file mode 100644 index bd9d04cc3a..0000000000 --- a/docs/directorymanager/11.0/welcome/dashboard/computer.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: "Computer Reports" -description: "Computer Reports" -sidebar_position: 50 ---- - -# Computer Reports - -Computer Reports contains reports for the Computer objects in the directory. Search a specific -report by typing its name in the **Search Reports** box. - -Click any of the report template from the list to -[Generate Reports](/docs/directorymanager/11.0/welcome/dashboard/generate.md). - -Following is the list of reports for this category: - -| Reports | Description | -| ---------------------------------------------------- | ------------------------------------------------------------------------- | -| Computers and operating system | Returns all computers. | -| Computers by frequency of use | Returns computers with their frequency of use. | -| Computers created in X days | Returns computers created in specified number of days. | -| Computers modified in X days | Returns computers modified in specified number of days. | -| Computers that have never logged on to the network | Returns computers that have never logged on to the network. | -| Computers trusted for delegation | Returns all Computers trusted for delegation. | -| Computers with Windows 10 | Returns computers with Windows 10. | -| Computers with Windows 2008 (Non Domain Controllers) | Returns computers with Windows 2008 (Non Domain Controllers). | -| Computers with Windows 2012 (Non Domain Controllers) | Returns computers with Windows 2012 (Non Domain Controllers). | -| Computers with Windows 7 | Returns computers with Windows 7. | -| Computers with Windows 8 | Returns computers with Windows 8. | -| Computers with Windows 8.1 | Returns computers with Windows 8.1. | -| Computers with Windows Vista | Returns computers with Windows Vista. | -| Disabled Computers | Returns all the disabled computers. | -| Disabled computers and their operating system | Returns all disabled computers and their operating system. | -| Domain Controllers in Domain | Returns all Domain Controllers in domain. | -| Domain Controllers running Windows 2008 | Returns Domain Controllers running Windows 2008. | -| Domain Controllers running Windows 2012 | Returns Domain Controllers running Windows 2012. | -| Enabled Computers | Returns all the enabled computers. | -| Inactive Computers from X days | Returns all the computers which are inactive by specified number of days. | -| Managed Computers | Returns all managed computers. | -| Unmanaged Computers | Returns all unmanaged computers. | - -**See Also:** - -- [Generate Reports](/docs/directorymanager/11.0/welcome/dashboard/generate.md) -- [Manage Reports](/docs/directorymanager/11.0/welcome/dashboard/manage.md) -- [Group Reports](/docs/directorymanager/11.0/welcome/dashboard/group.md) -- [User Reports](/docs/directorymanager/11.0/welcome/dashboard/user.md) -- [Contact Reports](/docs/directorymanager/11.0/welcome/dashboard/contact.md) diff --git a/docs/directorymanager/11.0/welcome/dashboard/contact.md b/docs/directorymanager/11.0/welcome/dashboard/contact.md deleted file mode 100644 index fb387997cb..0000000000 --- a/docs/directorymanager/11.0/welcome/dashboard/contact.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "Contact Reports" -description: "Contact Reports" -sidebar_position: 60 ---- - -# Contact Reports - -Contact Reports contains reports for the Contact objects in the directory. Search a specific report -by typing its name in the **Search Reports** box. - -Click any of the report template from the list to -[Generate Reports](/docs/directorymanager/11.0/welcome/dashboard/generate.md). - -Following is the list of reports for this category: - -| Report | Description | -| --------------------------------------------------------------- | ----------------------------------------------- | -| Mail-enabled users and contacts with a phone number (Exchange). | Returns all recipients who have a phone number. | -| User and contacts with a phone number. | Returns all recipients who have a phone number. | - -**See Also:** - -- [Generate Reports](/docs/directorymanager/11.0/welcome/dashboard/generate.md) -- [Manage Reports](/docs/directorymanager/11.0/welcome/dashboard/manage.md) -- [Group Reports](/docs/directorymanager/11.0/welcome/dashboard/group.md) -- [User Reports](/docs/directorymanager/11.0/welcome/dashboard/user.md) -- [Computer Reports](/docs/directorymanager/11.0/welcome/dashboard/computer.md) diff --git a/docs/directorymanager/11.0/welcome/dashboard/dashboard.md b/docs/directorymanager/11.0/welcome/dashboard/dashboard.md deleted file mode 100644 index 1b3b07310d..0000000000 --- a/docs/directorymanager/11.0/welcome/dashboard/dashboard.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: "Reports" -description: "Reports" -sidebar_position: 110 ---- - -# Reports - -The GroupID Reports enables you to generate web-based reports for an identity store. It offers a -wizard guided report generation process that accounts for quick and easy reporting. - -GroupID reports are organized into four categories: - -- [User Reports](/docs/directorymanager/11.0/welcome/dashboard/user.md) -- [Group Reports](/docs/directorymanager/11.0/welcome/dashboard/group.md) -- [Computer Reports](/docs/directorymanager/11.0/welcome/dashboard/computer.md) -- [Contact Reports](/docs/directorymanager/11.0/welcome/dashboard/contact.md) - -NOTE: A Microsoft Entra ID based identity store does not support the computer and contact object -types. - -You can view, edit, and delete the created reports. You can also download them in Excel and PDF -formats. - -The user interface of Reports Dashboard is as follows: - -![reportsdashboard](/images/directorymanager/11.0/portal/report/reportsdashboard.webp) - -Different elements of the Dashboard are described below: - -- Look on the top of the page for Reports Search. Use it to locate and display information for - reports. -- In the top right corner, you will find the following icons: - - - Click the **Help** icon to launch the portal help. - - Your name also appears as an icon. On clicking it, you are presented with the following - options: - - - Connected identity store. - - GroupID version - - See full profile. - - My Applications - - Displays GroupID and third party applications that the user is connected to. Click **Add - Apps** to add new applications. - - - Enroll your account. - - Change Password. - - Switch account - - Sign Out of the portal. - -- The **Dashboard** displays general information about the Reports portal such as: - - - Name of the identity store the Reports portal is connected to. - - Name of the domain. - - Number of each type directory objects in the directory. - -- In the **Pinned Reports** section, you can pin the reports you most frequently will use. - - You can unpin the pinned reports from the dashboard by clicking the unpin icon on the top right - corner of the card. - -- In the **Recent Reports** section, you can view the most recent reports you have created or used. - - You can pin the recent reports by clicking pin icon on the top right corner of the card. - -- Look on the left side of the page for the navigation pane, which lists links to the following: - - - Dashboard - - [User Reports](/docs/directorymanager/11.0/welcome/dashboard/user.md) - - [Group Reports](/docs/directorymanager/11.0/welcome/dashboard/group.md) - - [Computer Reports](/docs/directorymanager/11.0/welcome/dashboard/computer.md) - - [Contact Reports](/docs/directorymanager/11.0/welcome/dashboard/contact.md) - -**See Also:** - -- [Generate Reports](/docs/directorymanager/11.0/welcome/dashboard/generate.md) -- [Manage Reports](/docs/directorymanager/11.0/welcome/dashboard/manage.md) -- [Group Reports](/docs/directorymanager/11.0/welcome/dashboard/group.md) -- [User Reports](/docs/directorymanager/11.0/welcome/dashboard/user.md) -- [Computer Reports](/docs/directorymanager/11.0/welcome/dashboard/computer.md) -- [Contact Reports](/docs/directorymanager/11.0/welcome/dashboard/contact.md) diff --git a/docs/directorymanager/11.0/welcome/dashboard/generate.md b/docs/directorymanager/11.0/welcome/dashboard/generate.md deleted file mode 100644 index a57e74f867..0000000000 --- a/docs/directorymanager/11.0/welcome/dashboard/generate.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: "Generate Reports" -description: "Generate Reports" -sidebar_position: 10 ---- - -# Generate Reports - -Generating reports in GroupID Portal is a two step process that makes the reporting process quick -and easy. The steps for generating a report are the same for all reports; you have to specify -settings, such as the source container or organizational unit, the field to sort all records, and -the display names for the fields in the report. - -After generating a report, you can download it in different formats such as Excel, PDF, and HTML. - -You can generate a report in any of the two ways: - -- Use the Create Report option. -- Use a Scheduled Reports job. - -Of these, the last method can only be used for a report that has previously been generated. - -What do you want to do? - -- [Create a Report](#create-a-report) -- [Scheduled Report job](#scheduled-report-job) - -## Create a Report - -Reports are generated for the domain that your machine is joined to. For example, when your machine -is joined to a domain, techwr5.local, reports would display data for techwr5.local. - -**To generate a report:** - -1. In GroupID Portal, select **Reports** from the left pane. -2. On Reports Portal, select the type of objects whose report you want to generate. It will display - the reports templates for that object. - - For example, to create a user report, click **User Report** from left pane. You will see all the - user reports that you can generate. - -3. Click on the template of your choice from the list and click **Create Report**. -4. In **Step 1** of generating a report: - - 1. You can specify a custom title for your report. Type the title of the report, replacing the - existing one, in the **Report Name** box. - 2. Click **Browse** to open the **Select Container** dialog box and select the required source - container. The default selection is the Global Catalog. - 3. Select the **Include sub containers** check box to include the sub-containers for the - selected container when reporting. - 4. In the **Filter Criteria** section, modify the default LDAP filter as required. This filter - is used for selecting items from the container, to display in the report. - - To add additional filter, click **Add More Filters.** - - 5. Click **Next**. - -5. In **Step 2** of generating a report: - - 1. The **Fields** section displays the fields that will be included in the report. You can add - or remove fields from the list. You can also move the given fields to change their order. - 2. From **Sort By** drop down list, select the field by which you want to sort the results in - the report. - 3. From **Schedule** drop down list, select the schedule for the report. If you select a - schedule, the report will run automatically on the specified time of the schedule. - 4. Click **Finish.** - - Report based on the setting you set on the portal is displayed. The report displays the - following information: - - 1. Connected identity store name - 2. The selected container - 3. Number of the records fetched - 4. Date the report was created on - 5. The filter applied while creating the report - 6. List of the report results - - The report is then listed in the template's page. You can create multiple reports of the - same template. - -6. To download the report, click **Download** and select the format for the report (PDF, Excel, or - HTML). -7. You can also pin the report on Dashboard by clicking **Pin Report**. - -## Scheduled Report job - -You can create a **Scheduled Report job** on GroupID Admin Center. See -[Reports Schedule](/docs/directorymanager/11.0/signin/schedule/reports.md) - -**See Also:** - -- [Reports](/docs/directorymanager/11.0/welcome/dashboard/dashboard.md) -- [Manage Reports](/docs/directorymanager/11.0/welcome/dashboard/manage.md) -- [Group Reports](/docs/directorymanager/11.0/welcome/dashboard/group.md) -- [User Reports](/docs/directorymanager/11.0/welcome/dashboard/user.md) -- [Computer Reports](/docs/directorymanager/11.0/welcome/dashboard/computer.md) -- [Contact Reports](/docs/directorymanager/11.0/welcome/dashboard/contact.md) diff --git a/docs/directorymanager/11.0/welcome/dashboard/group.md b/docs/directorymanager/11.0/welcome/dashboard/group.md deleted file mode 100644 index 4aebbc1580..0000000000 --- a/docs/directorymanager/11.0/welcome/dashboard/group.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: "Group Reports" -description: "Group Reports" -sidebar_position: 40 ---- - -# Group Reports - -Group Reports contains reports for the Group objects in the directory. Search a specific report by -typing its name in the **Search Reports** box. - -Click any of the report template from the list to -[Generate Reports](/docs/directorymanager/11.0/welcome/dashboard/generate.md). - -Following is the list of reports for this category: - -| Reports | Description | -| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| All distribution groups in domain | Provides a list of distribution groups in the domain. | -| All domain local distribution groups in domain | Provides a list of distribution groups with Domain Local scope in the domain. | -| All domain local groups in domain | Provides a list of groups with Domain Local scope in the domain. | -| All domain local security groups in domain | Provides a list of security groups with Domain Local scope in the domain. | -| All global distribution groups in domain | Provides a list of distribution groups with Global scope in the domain. | -| All global groups in domain | Provides a list of groups with Global scope in the domain. | -| All global security groups in domain | Provides a list of security groups with Global scope in the domain. | -| All groups in domain | Provides a list of groups in the domain. | -| All groups with report to originator set to False | Provides a list of groups with the ‘Send delivery reports to message originator’ option not selected. The message sender does not receive a delivery report on sending a message/email. | -| All groups with report to originator set to True | Provides a list of groups with the ‘Send delivery reports to message originator’ option selected. The message sender receives a delivery report on sending a message/email. | -| All groups with report to owner set to False | Provides a list of groups with the ‘Send delivery reports to group manager’ option not selected. The manager does not receive delivery reports for the group. | -| All groups with report to owner set to True | Provides a list of groups with the ‘Send delivery reports to group manager’ option selected. The manager receives delivery reports for the group. | -| All security groups in domain | Provides a list of security groups in the domain. | -| All universal distribution groups in domain | Provides a list of distribution groups with Universal scope in the domain. | -| All universal groups in domain | Provides a list of groups with Universal scope in the domain. | -| All universal security groups in domain | Provides a list of security groups with Universal scope in the domain. | -| All unmanaged groups in domain | Provides a list of unmanaged (static) groups in the domain. Any change in the membership of an unmanaged group is made manually. | -| Deleted groups | Provides a list of logically deleted groups. Logically deleted groups are those expired groups that are not renewed within the time interval set in the identity store configurations. | -| Distribution Lists managed by GroupID | Provides a list of the distribution lists that are managed by GroupID. | -| Distribution lists with no delivery restrictions (Exchange) | Provides a list of groups that can receive email from everyone. | -| Dynasty with Script | Provides a list of Dynasties that have a script provided on the Smart Script tab of the Query Designer window. | -| Expired groups | Provides a list of groups that are either expired by the Group Life Cycle job according to their associated expiry policy or are manually expired by users. | -| Expiring groups | Provides a list of groups that are approaching their expiry date. | -| Groups and members | Provides a list of members for each group in the domain. | -| Groups and Members with Membership Type | Provides a list of groups with members along with their membership type. | -| Groups and number of members | Provides a count of total members per group. | -| Groups and number of members with nesting | Provides the grand total number of members of all groups in the selected container of the domain. | -| Groups and owners | Provides a list of owners and the groups they own. | -| Groups and their last modified time | Provides the date and time of the last change made to a group, such as change in membership. | -| Groups changed in X days | Provides a list of groups that are changed in one day, seven days or one month. | -| Groups created in X days | Provides a list of groups created in the last one day, seven days or one month. | -| Groups hidden from address list | Provides a list of groups that do not appear in global address list (GAL) and other address lists that are defined in the Exchange organization. | -| Groups that have no members | Provides a list of groups without members. | -| Groups which do not require authentication to send to (Exchange) | Provides a list of groups that can receive messages from anonymous users. This allows external senders to send messages to distribution groups. | -| Groups which require authentication to send to (Exchange) | Provides a list of groups that cannot receive messages from anonymous users. This prevents external senders from sending messages to distribution groups. | -| Groups with expiration policy defined | Provides a list of groups with an expiration policy defined. | -| Groups with membership hidden | Sometimes, to protect the privacy of the recipients, it is necessary to hide the members of a mail-enabled group. This report provides a list of such mail-enabled groups. | -| Groups with membership not hidden | Provides a list of mail-enabled groups with membership not hidden. | -| Groups with message delivery restrictions | Provides a list of groups with message delivery restrictions options specified. | -| Groups with message size restrictions | Provides a list of groups with restriction on the maximum message size. | -| Groups with no owner | Provides a list of groups that do not have an owner. | -| Groups with security types | Provides a list of the groups with security types. GroupID supports three security types: Public, Private, and Semi-Private. | -| Groups without additional owners | Provides a list of groups that do not have any GroupID or Microsoft Exchange additional owner. | -| Groups without expiration policy defined | Provides a list of groups without an expiration policy defined. | -| Groups without message delivery restriction | Provides a list of groups with no message delivery restrictions. Members of such groups can send messages to users in your Exchange organization and can accept or reject messages sent by any user. | -| Groups without message size restrictions | Provides a list of groups that have no message size restriction on an entire message as a whole, or the size of individual parts of a message, or both. | -| Mail-enabled groups and members (Exchange) | Provides a list of mail-enabled groups and members. | -| Mail-enabled groups and number of members (Exchange) | Provides a list of mail-enabled groups and the count of members they have. | -| Mail-enabled groups and number of members with nesting (Exchange) | Provides the grand total number of members of all mail-enabled groups in the selected container of the domain. | -| Mail-enabled groups and owners (Exchange) | Provides a list of all mail-enabled groups and their owners. | -| Mail-enabled groups and the time they were last used (Exchange) | Provides a list of groups with a time stamp of the last time mail was sent to the group. The Group Usage Service job is required for this report. | -| Mail-enabled groups and their last modified time (Exchange) | Provides a list of all mail-enabled groups and the date and time when they were last modified. | -| Mail-enabled groups with no members (Exchange) | Provides a list of all mail-enabled groups having no members. | -| Mail-enabled groups with no owner (Exchange) | Provides a list of mail-enabled groups having no owner. | -| Mail enabled Security Groups (Exchange) | Provides a list of mail-enabled groups in the domain. | -| Owners and objects they own Listed in [User Reports](/docs/directorymanager/11.0/welcome/dashboard/user.md) category as well. | Provides a list of managers and their direct reports. | -| Security Groups managed by GroupID | Provides a list of the security groups that are managed by GroupID. | -| Smart Groups/Dynasties with their update status | Provides a list of Smart Groups and Dynasties with their update status information. | -| Smart Groups and Included members | Provides a list of Smart Group members that are mentioned in the Include list on the Include/Exclude tab of the Query Designer window. | -| Smart Groups and number of expected members | Provides a count of the expected members for the Smart Groups in the selected container or domain. | -| Smart Groups and their expected membership | Provides information of expected members for the Smart Groups in the selected container or domain. | -| Smart Groups in current domain | Provides a list of Smart Groups in the domain. | -| Smart Groups with Exclude members | Provides a list of Smart Group members that are mentioned in the Exclude list on the Include/Exclude tab of the Query Designer window. | - -**See Also:** - -- [Generate Reports](/docs/directorymanager/11.0/welcome/dashboard/generate.md) -- [Manage Reports](/docs/directorymanager/11.0/welcome/dashboard/manage.md) -- [User Reports](/docs/directorymanager/11.0/welcome/dashboard/user.md) -- [Computer Reports](/docs/directorymanager/11.0/welcome/dashboard/computer.md) -- [Contact Reports](/docs/directorymanager/11.0/welcome/dashboard/contact.md) diff --git a/docs/directorymanager/11.0/welcome/dashboard/manage.md b/docs/directorymanager/11.0/welcome/dashboard/manage.md deleted file mode 100644 index c05b42b61d..0000000000 --- a/docs/directorymanager/11.0/welcome/dashboard/manage.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: "Manage Reports" -description: "Manage Reports" -sidebar_position: 20 ---- - -# Manage Reports - -Once you generate a report, the report is listed under the template you used to create it. The -Reports listings displays the following for each report: - -- Report name -- Category -- Created On -- Modified On -- Actions - -You can run, edit, download, and delete the job from the Reports listing. - -What do you want to do? - -- [Run a Report](#run-a-report) -- [Edit a Report](#edit-a-report) -- [Download a Report](#download-a-report) -- [Delete a Report](#delete-a-report) - -## Run a Report - -You can run a previously generated report to view the latest data for it. - -1. In GroupID Portal, select Reports from the left pane. -2. On Reports Portal, select the type of object (User, Group, Computer, or Contact) whose report you - generated and click on the template that you used. - - The template page will list the generated report. - -3. Click the **Run arrow** icon next to the report. It will run the report and display it on the - page. - -## Edit a Report - -When you generate a report, GroupID Portal saves the settings provided in the respective report. You -can launch this wizard again for a report and edit the settings. - -1. In GroupID Portal, select **Reports** from the left pane. -2. On Reports Portal, select the type of object (User, Group, Computer, or Contact) whose report you - generated and click on the template that you used. - - The template page will list the generated report. - -3. Click the **Edit** icon next to the report and follow the steps in - [Generate Reports](/docs/directorymanager/11.0/welcome/dashboard/generate.md). Make the - relevant changes and click Finish to generate the report. - -## Download a Report - -You can also download a report directly from the Report listing page. - -1. In GroupID Portal, select **Reports** from the left pane. -2. On Reports Portal, select the type of object (User, Group, Computer, or Contact) whose report you - generated and click on the template that you used. - - The template page will list generated report. - -3. Click the **Download** icon next to the report and select one of the following format to download - the report: - - 1. Excel - 2. PDF - 3. HTML - -## Delete a Report - -When you delete a report, all its settings are removed. - -1. In GroupID Portal, select **Reports** from the left pane. -2. On Reports Portal, select the type of object (User, Group, Computer, or Contact) whose report you - generated and click on the template that you used. - - The template page will list the generated report. - -3. Click the **Delete** button next to the report. It will permanently delete the report. - -**See Also** - -- [Generate Reports](/docs/directorymanager/11.0/welcome/dashboard/generate.md) -- [Group Reports](/docs/directorymanager/11.0/welcome/dashboard/group.md) -- [User Reports](/docs/directorymanager/11.0/welcome/dashboard/user.md) -- [Computer Reports](/docs/directorymanager/11.0/welcome/dashboard/computer.md) -- [Contact Reports](/docs/directorymanager/11.0/welcome/dashboard/contact.md) diff --git a/docs/directorymanager/11.0/welcome/dashboard/user.md b/docs/directorymanager/11.0/welcome/dashboard/user.md deleted file mode 100644 index fa317aeef1..0000000000 --- a/docs/directorymanager/11.0/welcome/dashboard/user.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: "User Reports" -description: "User Reports" -sidebar_position: 30 ---- - -# User Reports - -User Reports contains reports for the User objects in the directory. Search a specific report by -typing its name in the **Search Reports** box. - -Click any of the report template from the list to -[Generate Reports](/docs/directorymanager/11.0/welcome/dashboard/generate.md). - -Following is the list of reports for this category: - -| Report | Description | -| --------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Direct Reports of X Manager | Provides a list of the direct reports of the specific manager. | -| Disabled Users | Provides a list of accounts with no authentication access to mail or computers in an organization. | -| Enabled Users | Provides a list of enabled users in the selected container. | -| Inactive Users | Provides a list of inactive users in the selected container. | -| Mailbox users hidden from exchange address lists (Exchange) | Provides a list of all the mailboxes that are currently hidden from the Exchange global address list (GAL) or other address lists. | -| Mailbox users with default message receiving size restriction (Exchange) | Provides a list of mailbox users with default message size for receiving messages. | -| Mailbox users with default message sending size restriction (Exchange) | Provides a list of mailbox users with default message size for sending messages. | -| Mailbox users with Default recipient limit (Exchange) | Provides a list of mailbox users with default recipients limits. | -| Mailbox users with default storage limit (Exchange) | Provides a list of mailbox users with default mailbox size for Microsoft Exchange. | -| Mailbox users with IMAP disabled (Exchange) | Provides a list of mailbox users that have IMAP mailbox protocol disabled for Microsoft Exchange Server. | -| Mailbox users with IMAP4 enabled (Exchange) | Provides a list of mailbox users that have IMAP mailbox protocol enabled for Microsoft Exchange Server. | -| Mailbox users with message receiving size restriction (Exchange) | Provides a list of mailbox users with message receiving size restriction. | -| Mailbox users with message sending size restriction (Exchange) | Provides a list of mailbox users with message sending size restriction. | -| Mailbox users with OWA disabled (Exchange) | Provides a list of mailbox users that have Outlook Web App disabled for them. | -| Mailbox users with OWA enabled (Exchange) | Provides a list of mailbox users that have Outlook Web App enabled for them. | -| Mailbox users with POP3 disabled (Exchange) | Provides a list of mailbox users that have POP3 mailbox protocol disabled for Microsoft Exchange Server. | -| Mailbox users with POP3 enabled (Exchange) | Provides a list of mailbox users that have POP3 mailbox protocol enabled for Microsoft Exchange Server. | -| Mailbox users with storage limit (Exchange) | Provides a list of mailbox users with default mailbox size for Microsoft Exchange. | -| Mail-enabled Recipients and the groups they are a member of (Exchange) | Provides a list of all mail-enabled recipients and the groups that they hold membership of. | -| Mail-enabled users and contacts with a phone number (Exchange) | Provides a phone list of accounts within an organization for only mail-enabled users and contacts. | -| Mail-enabled users hosted on Exchange server X (Exchange) | Provides a list of mail enabled users that are hosted on a specific exchange sever. | -| Mail-enabled users who can receive messages from all users (Exchange) | Provide a list of mail enabled users that can receive messages from all users. | -| Mail-enabled users who can send Email to maximum X recipients (Exchange) | Provides a list of mail-enabled users who can send email to specified number of recipients per message. | -| Managers and their Direct Reports | Provides a list of managers and their direct reports. | -| Non expiring user accounts | Provides a list of users account that will never expire. | -| OUs created in X days | Provides a list of organization units (OUs) that are created in specified number of days. | -| OUs modified in X days | Provides a list of organization units (OUs) modified in specified number of days. | -| Owners and objects they own Listed in [Group Reports](/docs/directorymanager/11.0/welcome/dashboard/group.md) category as well. | Provides a list of owners and their direct reports. | -| Pending Terminate Users | Provides a list of users that have been terminated by their managers, but their termination request is pending for approval/rejection by an approver. | -| Recently expired users | Provides a list of users expired in one day, seven days or one month. | -| Recipients and the groups they are a member of | Provides a list of users and each group that they are a member of. | -| Tombstone Users | Provides a list of deleted users in the selected container. The deleted user remains in the directory for a period defined for tombstone lifetime. | -| User Life Cycle – Expired Users | Provides a list of expired users in a container. | -| User Life Cycle – Expiring Users | Provides a list of expiring users for a specific period. Expiring users are those who have been sent the final reminder because they have not validated their profiles within the profile validation life cycle period. | -| User Life Cycle – Extended Users | Provides a list of users for whom the profile validation period has been extended. | -| User Life Cycle – Terminated Users | Provides a list of terminated users in the selected container. | -| User Life Cycle – Transfer Pending Users | Provides a list of direct reports that have been transferred but the transfer has to be accepted or rejected yet. | -| User Life Cycle – Transferred Users | Provides a list of transferred users in the selected container. | -| User Life Cycle – Verified Users | Provides a list of users who have validated their directory profiles. | -| Users and contacts with a phone number Listed in [Contact Reports](/docs/directorymanager/11.0/welcome/dashboard/contact.md) category as well. | Provides a phone list of accounts within an organization. | -| Users changed in X days | Provides a list of users modified in one day, seven days or one month. | -| Users created in X days | Provides a list of users created in one day, seven days or one month. | -| Users member of Built in Security Groups | Provides a list of users that are member of default security groups, such as the Domain Admins group. | -| Users with multiple DL membership | Provides a list of users that are members of multiple distribution lists. | -| Users who are locked out | Provides a list of accounts that have been denied access to their computer. | -| Users who never logged on | Provides a list of users that have never logged on to the network. | -| Users with bad logon attempts in X days | Provides a list of users with bad logon attempts in specified time period. | -| Users with changed password | Provides a list all users accounts who changed their passwords. | -| Users with expiration set | Provides a list of user accounts set to expire after a certain number of days. | -| Users with expired password | Provides a list of user accounts with expired passwords. | -| Users with manager | Provides a list of users with a manager. | -| Users with missing contact numbers | Provides a list of users with missing contact numbers. | -| Users with password never expire | Provides a list of users whose passwords never expire. | -| Users with profile photo | Provides a list of users with profile photo. | -| Users with unchanged passwords | Provides a list all users accounts with unchanged passwords. | -| Users without manager | Provides a list of users without a manager. | -| Users without profile photo | Provides a list of users who do not have profile photo. | - -See Also: - -- [Generate Reports](/docs/directorymanager/11.0/welcome/dashboard/generate.md) -- [Manage Reports](/docs/directorymanager/11.0/welcome/dashboard/manage.md) -- [Group Reports](/docs/directorymanager/11.0/welcome/dashboard/group.md) -- [Computer Reports](/docs/directorymanager/11.0/welcome/dashboard/computer.md) -- [Contact Reports](/docs/directorymanager/11.0/welcome/dashboard/contact.md) diff --git a/docs/directorymanager/11.0/welcome/entitlement/_category_.json b/docs/directorymanager/11.0/welcome/entitlement/_category_.json deleted file mode 100644 index 5ce296e926..0000000000 --- a/docs/directorymanager/11.0/welcome/entitlement/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Entitlement", - "position": 80, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/entitlement/fileservers.md b/docs/directorymanager/11.0/welcome/entitlement/fileservers.md deleted file mode 100644 index 5ea6bc8108..0000000000 --- a/docs/directorymanager/11.0/welcome/entitlement/fileservers.md +++ /dev/null @@ -1,152 +0,0 @@ ---- -title: "File Servers" -description: "File Servers" -sidebar_position: 10 ---- - -# File Servers - -The [ Entitlement](/docs/directorymanager/11.0/welcome/entitlement/overview.md) page lists -the servers specified for permission analysis in the identity store, displaying granular level -permission granted to objects on shared files and folders. This data is subject to the date and time -the permissions were last replicated. - -You can view all active servers as enabled and not replicated servers as disabled. It is as: - -![disabledfileserver](/images/directorymanager/11.0/portal/entitlement/disabledfileserver.webp) - -Here, the second server is disabled while the first one is enabled. A disabled server indicates that -the Entitlement job has not run to replicate permission data for it. Once permissions are -replicated, the server is enabled. - -- You will find the following information under a server name: - - - **Path**: the location where the server exists. - - **Total Shares**: Number of shared folders that exist in the configured and replicated server. - - **Last Replication**: day, date, and time when the server was last replicated. - - **Time Taken**: time it took to complete the replication. - -- Double click on the card to explore the server. Once explored, click **Go Back** to return to the - list of available sites. -- You can search specific servers on the search bar on the top. If you want to undo the search - results, click **Refresh List** which will display all the servers on the page. - -What do you want to do? - -- Explore a Server Card View -- View file/folder permissions -- Search shared files and folders on the server -- How GroupID Entitlement displays permissions - -## Explore a Server Card View - -On double clicking the fileserver, a separate card for each file and folder shared at the root is -displayed, showcasing the following information: - -- The date and time the file/folder was last created. -- Owner of the file/folder. - - ![fileservercard](/images/directorymanager/11.0/portal/entitlement/fileservercard.webp) - -NOTE: Date format: mm/dd/yyyy - -- For child folders, the path is as: servername.parentsharedfoldername. - - ![fileserverpath](/images/directorymanager/11.0/portal/entitlement/fileserverpath.webp) - -- You can view the child files and folders within a shared folder till the nth level. Double-click a - folder card to view its direct child files and folders. Continue till the nth level. - -## View file/folder permissions - -On clicking a file/folder card, all users and groups with effective NTFS permission on it are listed -in the right pane. - -![fileserverpermissions](/images/directorymanager/11.0/portal/entitlement/fileserverpermissions.webp) - -Information includes: - -- The date and time the file/folder was replicated and created, the name of the owner, and the - number of files and folders that reside directly in the selected folder. - - For example, if the folder contains a folder, ABC, that further contains 3 folders, the direct - sub file/folder count will be 1, not 4. - -- Under **Users/Groups**, you can view all users and groups with permissions on the file/folder. You - can also view the permission status, such as _Full Control_, _Read & Execute_, and so on. - - Use the search box to filter the listing. - -- Add new users/groups who can have permissions on the file/folder. You can permanently or - temporarily add user/groups. - - You can select multiple user/groups and collectively assign them the same permissions. - -- On clicking a user or group name, the user/group's properties are displayed - - You can view and update properties, depending on your rights and privileges. - -- Clicking the permission status for a user/group displays the effective permissions assigned to - this user/group on the file/folder. - - You can allow and deny access and inherited access and click **Save** icon. - - ![filespermissions](/images/directorymanager/11.0/portal/entitlement/filespermissions.webp) - - Permissions are displayed as **Explicit permissions** which list the effective permissions set - the user/group has on the file/folder. - -With the effective permissions displayed, clicking the user/group again would launch the object -properties as well as collapse the permissions view. - -## Search shared files and folders on the server - -You can search for specific files and folders (shared) on the server. You can also search for a file -or folder in a particular folder. - -![filefolderssearch](/images/directorymanager/11.0/portal/entitlement/filefolderssearch.webp) - -**Search filter** - -Below the search box is the **Add new filter** link. Click it to apply a search filter with a -user/group, access type, and permission criterion. This will display shared files/folders that match -your criterion. - -- Type the name of a user or group in the **User or Group** box. It must be a specific name, like - 'Sarah' (for user) or 'Engineering team' (for group), and not an object type, like 'users', - 'groups', 'contacts', or 'computers'. -- From the **Access Type** drop-down list, select the _Allow_ or _Deny_ option. -- In the **Permission** box, select one or more permissions. -- Click **Apply filters**. - -GroupID Entitlement displays folders and files on which the user/group has the specific access type -with respect to the specified permission(s). - -**Example:** - -User: Administrator - -Access type: Allow - -Permission: WriteAttributes, ExecuteFile, Read - -This would list all files and folders on which the Administrator has these three permissions - -WriteAttributes, ExecuteFile, and Read - set to 'Allow'. - -You can apply multiple search filters. Click **Add new filter** to insert a filter row. Each filter -row is taken as a separate criterion; any file or folder that matches all of these criteria will be -displayed in the results. - -## How GroupID Entitlement displays permissions - -| Condition | Access level displayed | -| ----------------------------------------------------------------------------- | ------------------------------------------------------------ | -| User has direct Allow access on a folder. | Allow | -| User has direct Deny access on a folder. | Deny | -| Group has direct Deny access on a folder. | Explicit Deny access is displayed on the root parent folder. | -| User has inherited the Allow access but has explicit Deny access on a folder. | Deny access is displayed on the folder. | -| User has inherited the Deny access but has explicit Allow access on a folder. | Allow access is displayed on the folder. | - -**See Also** - -- [ Entitlement](/docs/directorymanager/11.0/welcome/entitlement/overview.md) diff --git a/docs/directorymanager/11.0/welcome/entitlement/overview.md b/docs/directorymanager/11.0/welcome/entitlement/overview.md deleted file mode 100644 index d0754637cc..0000000000 --- a/docs/directorymanager/11.0/welcome/entitlement/overview.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Entitlement" -description: "Entitlement" -sidebar_position: 80 ---- - -# Entitlement - -GroupID Entitlement enables you to stay informed on the permissions assigned to objects residing on -your Active Directory servers and SharePoint sites. - -See the [Entitlement](/docs/directorymanager/11.0/signin/entitlement/overview.md) -topic for detailed information on Entitlement. - -**See Also** - -- [Manage File Servers](/docs/directorymanager/11.0/signin/entitlement/manage.md) -- [Manage SharePoint Sites](/docs/directorymanager/11.0/signin/entitlement/manage_1.md) -- [File Servers](/docs/directorymanager/11.0/welcome/entitlement/fileservers.md) -- [Explore SharePoint Sites](/docs/directorymanager/11.0/welcome/entitlement/sharepointsites.md) diff --git a/docs/directorymanager/11.0/welcome/entitlement/sharepointsites.md b/docs/directorymanager/11.0/welcome/entitlement/sharepointsites.md deleted file mode 100644 index b809e4e832..0000000000 --- a/docs/directorymanager/11.0/welcome/entitlement/sharepointsites.md +++ /dev/null @@ -1,145 +0,0 @@ ---- -title: "Explore SharePoint Sites" -description: "Explore SharePoint Sites" -sidebar_position: 20 ---- - -# Explore SharePoint Sites - -The **SharePoint Sites** page lists the sites specified for permission analysis in the identity -store, displaying granular level permission granted to objects on document libraries. This data is -subject to the date and time the permissions were last replicated. - -You can view all active sites as enabled and inactive sites as disabled. It is as: - -![disabledsites](/images/directorymanager/11.0/portal/entitlement/disabledsites.webp) - -A disabled site indicates that the Insights job has not run to replicate permission data for it. -Once permissions are replicated, the site is enabled. - -- You will find the following information under a site name: - - - **Path**: the location where the site exists. - - **Total Share**: number of the shared document libraries. - - **Last Replication**: day, date, and time when the site was last replicated. - - **Time Taken**: time it took to complete the replication. - -- Double click on the card to explore the site. Once explored, click **Go Back** to return to the - list of available sites. -- You can search specific sites on the search bar on the top. If you want to undo the search - results, click **Refresh** which will display all the sites on the page. - -What do you want to do? - -- Explore a Site Card View -- View levels and permissions on a library -- Search document libraries, files and folders in a site -- How GroupID Entitlement displays permissions - -## Explore a Site Card View - -On double clicking the site, a separate card for each document library in the site is displayed, -showcasing the following information: - -- The date and time the library was last created. - - NOTE: Date format: mm/dd/yyyy - -- You can view the files and folders within a document library till the nth level. Double-click a - folder card to view its direct child files and folders. Continue till the nth level. - - ![sitesfolders](/images/directorymanager/11.0/portal/entitlement/sitesfolders.webp) - -## View levels and permissions on a library - -On clicking a library card or even a file/folder card, all users and groups with permission on it -are listed in the right pane. - -![sitesrightpane](/images/directorymanager/11.0/portal/entitlement/sitesrightpane.webp) - -Information includes: - -- The date and time the file/folder was created and the number of files and folders that reside - directly in the selected folder. - - For example, if the folder contains a folder, ABC, that further contains 3 folders, the direct - sub file/folder count will be 1, not 4. - -- Under **Users/Groups**, you can view all users and groups with permissions on the file/folder. You - can also view the levels, such as _Full Control_, _Limited Access_, _View_, _Read, and Edit._ - - Use the search box to filter the listing. - -- Add new users who can have permissions on the file/folder in a site. You can permanently or - temporarily add users. - - You can select multiple users and collectively assign them the same permissions. - -- On clicking a user or group name, the user/group's properties are displayed. - - You can view and update properties, depending on your rights and privileges. - - NOTE: For groups, this functionality is available for domain groups only; SharePoint groups are - not linked. - -- Clicking a level for a user displays the effective permissions assigned to this user on the - file/folder. - - You can update the permissions and click **Save** icon. - - ![sitespermissions](/images/directorymanager/11.0/portal/entitlement/sitespermissions.webp) - - Permissions are displayed as **Explicit permissions** which list the effective permissions set - the user/group has on the file/folder. - -## Search document libraries, files and folders in a site - -Use the search bar to search for specific files and folders in the site. You can also search for a -file or folder in a particular folder. Click the card for that folder and search for the required -child file/folder. - -![sitessearch](/images/directorymanager/11.0/portal/entitlement/sitessearch.webp) - -**Search filter** - -Below the search box is the **Add new filter** link. Click it to apply a search filter with a -user/group, access type, and permission criterion. This will display shared files/folders that match -your criterion. - -- Type the name of a user or group in the **User or Group** box. It must be a specific name, like - 'Sarah' (for user) or 'Engineering team' (for group), and not an object type, like 'users', - 'groups', 'contacts', or 'computers'. -- From the **Access Type** drop-down list, select the _Allow_ or _Deny_ option. -- In the **Permission** box, select one or more permissions. -- Click **Apply filters**. - -GroupID Entitlement displays folders and files on which the user/group has the specific access type -with respect to the specified permission(s). - -**Example:** - -User: Administrator - -Access type: Allow - -Permission: WriteAttributes, ExecuteFile, Read - -This would list all files and folders on which the Administrator has these three permissions - -WriteAttributes, ExecuteFile, and Read - set to 'Allow'. - -You can apply multiple search filters. Click **Add new filter** to insert a filter row. Each filter -row is taken as a separate criterion; any file or folder that matches all of these criteria will be -displayed in the results. - -## How GroupID Entitlement displays permissions - -| Level | Access level displayed in GroupID Entitlement SharePoint | -| ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | -| User/Group has the 'Full Control' permission level on a file/folder. | 'Allow' for all list permissions. | -| User/Group has the 'Limited Access' permission level on a file/folder. | 'Allow' only for the View Application Pages list permission. | -| User/Group has the 'Edit' permission level on a file/folder. | 'Allow' for all list permissions except Full Control and Approve Items. | -| User/Group has the 'Read' permission level on a file/folder. | 'Allow' for the View Items, Open Items, View Versions, Create Alerts, and View Application Pages list permissions. | - -**See Also** - -- [ Entitlement](/docs/directorymanager/11.0/welcome/entitlement/overview.md) diff --git a/docs/directorymanager/11.0/welcome/generalfeatures/_category_.json b/docs/directorymanager/11.0/welcome/generalfeatures/_category_.json deleted file mode 100644 index 535cc16965..0000000000 --- a/docs/directorymanager/11.0/welcome/generalfeatures/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "General Portal Features", - "position": 30, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "generalfeatures" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/generalfeatures/find.md b/docs/directorymanager/11.0/welcome/generalfeatures/find.md deleted file mode 100644 index 44ea3d14be..0000000000 --- a/docs/directorymanager/11.0/welcome/generalfeatures/find.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: "Find Dialog Box" -description: "Find Dialog Box" -sidebar_position: 20 ---- - -# Find Dialog Box - -This dialog box enables you to search **User**, **Group**, and **Contact** objects in the connected -identity store. - -The object types available for search may vary, depending on the page you launch the **Find** dialog -box from. - -1. From the **Look For** list, select one or more object types that you want to search for. - - - **Users** - to search for users only. - - **Groups** - to search for groups only. - - **Contacts** - to search for contacts only. - -2. The **Search In** list shows all organizational units or containers in the connected identity - store. Select the check boxes for the required containers to search in. To search all containers, - select the **Entire Directory** check box. -3. In the **Search** box, type a search parameter. Below are some tips to get the best out of your - searching: - - - You can type the complete string as a search parameter. - - For example, you can type **Administrator** in this box to find all objects with the display - name '_Administrator'_. - - - You can type a part of the string as a search parameter. - - For example, you can type **Ad** in this box to find all objects with the display name - beginning with '_Ad'_. - - - You can use wildcard search if you do not remember the exact search criteria. - - For example, you can type **\*** in this box to find all objects with any display name or - you can type **\*d** in this box to find all objects containing '_d'_ anywhere in their - display name. - -4. Click the **Advanced Search** link to display additional search fields (such as description, - first name, last name, and company) to search for objects using attributes other than the - object's display name. - - NOTE: The fields available for Advanced Search may vary, depending on the portal's - configuration. - -5. Click the **Search** button to display the search results. -6. The **Search Results** section displays a list of objects matching the search criteria. - - From the search results, select the required objects and click the right-arrow to move them to - the **Selected Results** list. - -7. The **Selected Results** section displays the objects that you have selected from the **Search - Results** list. - - Click the left-arrow to move the selected objects from the **Selected Results** list to the - **Search Results** list. - -**See Also** - -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) diff --git a/docs/directorymanager/11.0/welcome/generalfeatures/generalfeatures.md b/docs/directorymanager/11.0/welcome/generalfeatures/generalfeatures.md deleted file mode 100644 index 2416327290..0000000000 --- a/docs/directorymanager/11.0/welcome/generalfeatures/generalfeatures.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: "General Portal Features" -description: "General Portal Features" -sidebar_position: 30 ---- - -# General Portal Features - -GroupID Portal encompasses various functionalities available for the users that are: - -- [Directory Search](#directory-search) -- [Find Dialog Box](#find-dialog-box) -- [ Portal Settings ](#portal-settings) -- [ User Account Settings ](#user-account-settings) -- [Toolbars ](#toolbars) - -## Directory Search - -The GroupID portal provides a robust search feature that empowers users to efficiently manage -various directory objects within their identity store. These objects include mailboxes, users, -groups, and contacts. Once a search is performed, the results are displayed on the **Search -Results** page. - -See the [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) topic. - -## Find Dialog Box - -The Find dialog box enables you to search **User**, **Group**, and **Contact** objects in the -connected identity store. The object types available for search may vary, depending on the page you -launch the **Find** dialog box from. - -See the [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) topic. - -## Portal Settings - -GroupID Portal offers flexible portal settings to customize the user experience and personalize the -portal for each user. - -See the [Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) topic. - -## User Account Settings - -Users can manage their own profile information and perform various account-related actions through -the User Settings. - -See the [User Account Settings](/docs/directorymanager/11.0/welcome/generalfeatures/user.md) topic. - -## Toolbars - -The portal provides toolbars with diverse options that users can use on the objects. These actions -include editing properties, managing membership, viewing history, and more. - -See the [Toolbar](/docs/directorymanager/11.0/welcome/generalfeatures/toolbar.md) topic. - -**See Also** - -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) -- [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) -- [Query Based Advanced Search](/docs/directorymanager/11.0/welcome/generalfeatures/querysearch.md) -- [Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) -- [User Account Settings](/docs/directorymanager/11.0/welcome/generalfeatures/user.md) -- [Toolbar](/docs/directorymanager/11.0/welcome/generalfeatures/toolbar.md) diff --git a/docs/directorymanager/11.0/welcome/generalfeatures/portal.md b/docs/directorymanager/11.0/welcome/generalfeatures/portal.md deleted file mode 100644 index a287fdb4b0..0000000000 --- a/docs/directorymanager/11.0/welcome/generalfeatures/portal.md +++ /dev/null @@ -1,248 +0,0 @@ ---- -title: "Portal Settings" -description: "Portal Settings" -sidebar_position: 50 ---- - -# Portal Settings - -You can fine-tune your portal pages by customizing display options. This also enables you to -personalize the GroupID portal. - -These settings are saved for a user with respect to the identity store. When this user logs on to -another GroupID portal for the same identity store, the settings apply there too. - -What do you want to do? - -- [Set Identity Store mode](#set-identity-store-mode) -- [Set a language for notifications](#set-a-language-for-notifications) -- [Set the time zone](#set-the-time-zone) -- [Set a default start page](#set-a-default-start-page) -- [Set the number of history items to show on the home page](#set-the-number-of-history-items-to-show-on-the-home-page) -- [Set the number of history items to show for objects](#set-the-number-of-history-items-to-show-for-objects) -- [Set the number of recent objects to show](#set-the-number-of-recent-objects-to-show) -- [Set the default domains for search lists](#set-the-default-domains-for-search-lists) -- [Set the number of results to show on a page](#set-the-number-of-results-to-show-on-a-page) -- [Show additional group ownership in My Groups](#show-additional-group-ownership-in-my-groups) -- [Show additional group ownership in My Expiring Groups](#show-additional-group-ownership-in-my-expiring-groups) -- [Show additional group ownership in My Expired Groups](#show-additional-group-ownership-in-my-expired-groups) -- [Show additional group ownership in My Deleted Groups](#show-additional-group-ownership-in-my-deleted-groups) -- [Display additional group ownership in my Smart Groups](#display-additional-group-ownership-in-my-smart-groups) -- [Display additional group ownership in my Dynasties](#display-additional-group-ownership-in-my-dynasties) -- [Display Additional Manager Direct Reports](#display-additional-manager-direct-reports) -- [Reset default user options](#reset-default-user-options) - -## Set Identity Store mode - -GroupID portal works with a single identity store. However, GroupID also enables administrators to -link different identity stores. If an administrator creates a GroupID Portal and associates it with -the linked identity stores, the portal users can view the data from the linked identity stores at -the same time, rather than having to switch identity stores. - -Via Portal settings, you can choose either of the two modes by following these steps: - -1. Click the **Settings** icon at the top of the page. -2. From the **Identity Store Mode** list, select one of the following mode: - - - Stand-alone mode - - Linked mode - -3. Click **Save**. - -## Set a language for notifications - -GroupID generates a number of notifications that are, by default, sent to users in the English -language. However, a user can opt to receive notifications in a different language by personalizing -the language settings from the **User Settings** panel in the portal. - -However, there are a few exceptions to it. See the -[Localization](/docs/directorymanager/11.0/signin/notification/overview.md#localization) -topic for more information. - -1. Click the **Settings** icon at the top of the page. -2. From the **Notification Language** list, select a language for receiving the notifications in. -3. Click **Save**. - -## Set the time zone - -You can set the portal's date and time for your time zone. - -1. Click the **Settings** icon at the top of the page. -2. In the **User Time Zone** list, select the time zone for your region. -3. Click **Save**. - -## Set a default start page - -You can set the first page you see when you log into the portal. - -1. Click the **Settings** icon at the top of the page. -2. From the **Default startup page** list, select a page to set as your start page. -3. Click **Save**. - -## Set the number of history items to show on the home page - -You can specify the number of history items to display in the History section on the portal's home -page. - -1. Click the **Settings** icon at the top of the page. -2. In the **History items to display on home page** box, set the maximum number of history items to - be displayed on the portal's home page. -3. Click **Save**. - -History is displayed if the administrator has enabled history tracking for the identity store. - -## Set the number of history items to show for objects - -Set the number of history items to display on the History tab. This tab is displayed when viewing -the properties for a User, Group, Contact or Mailbox. - -This setting also controls the number of history items displayed on the -[My History](/docs/directorymanager/11.0/welcome/history/myhistory.md), -[My Direct Reports' History](/docs/directorymanager/11.0/welcome/history/mydirectreport.md), -and [My Groups' History](/docs/directorymanager/11.0/welcome/history/mydirectorygroup.md) -pages. - -1. Click the **Settings** icon at the top of the page. -2. In the **History items to display** box, set the number of history items to display on the pages - that display history data. -3. Click **Save**. - -History is displayed if the administrator has enabled history tracking for the identity store. - -## Set the number of recent objects to show - -The GroupID portal keeps a list of recently viewed objects on the left navigation bar. This provides -a convenient way to navigate back to objects later. You can specify the number of recent objects to -be shown on the navigation bar. - -1. Click the **Settings** icon at the top of the page. -2. In the **Most recent objects** box, type the number of recent objects to display on the - navigation bar. -3. Click **Save**. - -## Set the default domains for search lists - -You can specify the default domains to be searched when you perform a search using the portal. If -portal is running in: - -- **Stand-alone mode**: domain of the associated identity store is listed. - -- **Linked mode**: domains of all the linked identity stores are listed. - -To select domain(s) for searches: - -1. Click the **Settings** icon at the top of the page. -2. In the **Domains to search** list, select the domains that you use frequently in your searches. -3. Click **Save**. - -## Set the number of results to show on a page - -You can specify the number of search results to be displayed on a portal page. - -1. Click the **Settings** icon at the top of the page. -2. In the **Search results per page** box, type or select the number of search results to display on - a page. -3. Click **Save**. - -## Show additional group ownership in My Groups - -By default, the **My Groups** page displays the groups that you are a primary owner for. You can, -however, set this page to display those groups too for which you are an additional owner. - -1. Click the **Settings** icon at the top of the page. -2. Select the **Display additional group ownership in My Groups** check box. - - Selecting this option also displays the history of these groups in the **My Groups History** - view. - -3. Click **Save**. - -## Show additional group ownership in My Expiring Groups - -By default, the **My Expiring Groups** page displays the soon-to-expire groups that you are the -primary owner of. You can, however, set this page to display those expiring groups too for which you -are an additional owner. - -1. Click the **Settings** icon at the top of the page. -2. Select the **Display additional group ownership in My Expiring Groups** check box. -3. Click **Save**. - -## Show additional group ownership in My Expired Groups - -By default, the **My Expired Groups** page displays the expired groups that you are the primary -owner for. You can, however, set this page to display those expired groups too for which you are an -additional owner. - -1. Click the **Settings** icon at the top of the page. -2. Select the **Display additional group ownership in My Expired Groups** check box. -3. Click **Save**. - -## Show additional group ownership in My Deleted Groups - -By default, the **My Deleted Groups** page displays the deleted groups that you are the primary -owner for. You can, however, set this page to display those deleted groups too for which you are an -additional owner. - -1. Click the **Settings** icon at the top of the page. -2. Select the **Display additional group ownership in My Deleted Groups** check box. -3. Click **Save**. - -## Display additional group ownership in my Smart Groups - -By default, the **My Smart Groups** page displays the Smart Group that you are the primary owner -for. You can, however, set this page to display those Smart Groups too for which you are an -additional owner. - -1. Click the **Settings** icon at the top of the page. -2. Select the **Display additional group ownership in My Smart Groups** check box. -3. Click **Save**. - -## Display additional group ownership in my Dynasties - -By default, the My Dynasties page displays the Dynasties that you are the primary owner for. You -can, however, set this page to display those Dynasties too for which you are an additional owner. - -1. Click the **Settings** icon at the top of the page. -2. Select the **Display additional group ownership in My Dynasties** check box. -3. Click **Save**. - -## Display Additional Manager Direct Reports - -By default, the **My Direct Reports** page displays the users that you are the primary manager for. -You can, however, set this page to display those users too for which you are an additional manager. - -1. Click the **Settings** icon at the top of the page. -2. Select the **Display Additional Manager Direct Reports** check box. -3. Click **Save**. - -## Reset default user options - -You can reset the settings on the **User Settings** panel to their default values. - -1. Click the **Settings** icon at the top of the page. -2. On the **User Settings** page, click **Reset Defaults**. - - The following table lists the default values that are reset: - - | Option | Default Value | - | ---------------------------------------------- | ------------------------------------------------ | - | Identity Store Mode | Stand-alone | - | Notification Language | English | - | User Time Zone | The time zone set on the GroupID server machine. | - | Default startup page | Welcome | - | History items to display on home page | 10 | - | History items to display | 10 | - | Most recent objects | 5 | - | Domains to Search | Entire Directory | - | Search results per page | 25 | - | Display additional group ownership check boxes | Not selected | - | Display Additional Manager Direct Reports | Not selected | - -**See Also** - -- [My History](/docs/directorymanager/11.0/welcome/history/myhistory.md) -- [My Groups' History](/docs/directorymanager/11.0/welcome/history/mydirectorygroup.md) -- [My Groups](/docs/directorymanager/11.0/welcome/group/mygroups/mygroups.md) -- [My Expiring Groups](/docs/directorymanager/11.0/welcome/group/mygroups/myexpiringgroups.md) -- [My Expired Groups](/docs/directorymanager/11.0/welcome/group/mygroups/myexpiredgroups.md) -- [My Deleted Groups](/docs/directorymanager/11.0/welcome/group/mygroups/mydeletedgroups.md) diff --git a/docs/directorymanager/11.0/welcome/generalfeatures/querysearch.md b/docs/directorymanager/11.0/welcome/generalfeatures/querysearch.md deleted file mode 100644 index 42d4e1998d..0000000000 --- a/docs/directorymanager/11.0/welcome/generalfeatures/querysearch.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: "Query Based Advanced Search" -description: "Query Based Advanced Search" -sidebar_position: 40 ---- - -# Query Based Advanced Search - -GroupID portal enables you to search directory objects (users, mailboxes, contacts, groups) in the -identity store based on a query. You can create queries and save them for later directory objects -searches. - -The Query Designer option on the Advanced Search page is available which presents you the -[Query Designer](/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md) dialog -box similar to the query designer dialog box used for creating queries for Smart Groups and -Dynasties. - -**In Linked mode**: Query based searches cannot be performed. - -What do you want to do? - -- [Create a query](#create-a-query) -- [Preview query results](#preview-query-results) -- [Execute a query](#execute-a-query) -- [Modify a query](#modify-a-query) -- [Delete a query](#delete-a-query) - -## Create a query - -The Query Designer dialog box provides you a visual interface for creating search queries. - -1. Click **Advanced Search** at the top. -2. On the **Advanced Search** page, click **Or use the new query based search** link. - - The **Queries** page is displayed. - - NOTE: If you are creating a search query for the first time the **Query Designer** dialog box - opens automatically. - -3. Click **Query Designer** to create queries to search directory objects. -4. Select an option from the - [Query Designer - General tab](/docs/directorymanager/11.0/welcome/group/querydesigner/general.md) - list to specify the type of object the query should fetch. -5. You must specify the containers that the query should search for retrieving the directory - objects. - - Click the **Start in** button and select a container on the Select Container dialog box. The - query would search for objects only in this container and its sub-containers. - -6. The **Query Designer** dialog box groups similar query options by tabs. - - 1. **General tab**: lets you select object categories that you want the query to search in. The - available options vary according to the object type selected in the **Find** list. See the - [Query Designer - General tab](/docs/directorymanager/11.0/welcome/group/querydesigner/general.md) - topic. - 2. **Storage tab**: lets you filter the mailboxes to return. See the - [Query Designer - Storage tab](/docs/directorymanager/11.0/welcome/group/querydesigner/storage.md) - topic. - 3. **Filter Criteria tab**: lets you add additional filter criteria. For example, you can add - criteria to retrieve all directory users who live in Houston and have a fax number. You can - also apply logical operators (AND, OR) to your custom query to achieve the most accurate - results. - - The condition list may vary while creating queries for object searches. See the - [Query Designer - Filter Criteria tab](/docs/directorymanager/11.0/welcome/group/querydesigner/filtercriteria.md) - topic. - - 4. **Include/Exclude tab:** lets you include or exclude objects regardless of whether they are - returned by the query or not. Use the Add and Remove buttons to add and remove objects in the - Include and Exclude sections respectively. See the - [Query Designer - Include/Exclude tab](/docs/directorymanager/11.0/welcome/group/querydesigner/includeexclude.md) - topic. - 5. **Database tab**: enables you to combine an external data source with the directory to search - directory objects. See the - [Query Designer - Database tab](/docs/directorymanager/11.0/welcome/group/querydesigner/database.md) - topic. - -7. Click the **LDAP Query** button to view the query generated from the settings you have entered so - far. -8. In the **Query name** box, type a name for the query. -9. Select the **Global Query** check box, if you want to share this query with other users in the - connected identity store. -10. Click the **Save Query** button to save the query. - -## Preview query results - -Use the **Preview** button to preview query results obtained with the current settings on all tabs -of the Query Designer dialog box. This is a check to ensure the accuracy of data before changes are -committed to the directory. - -On clicking it, results are displayed in the **Preview Results** pane, that appear at the bottom of -the dialog box. - -## Execute a query - -To execute the query, click the **Run** arrow. It will display all the results matching the search -criteria. - -## Modify a query - -To modify the query, click the **Edit** button. It will open the query designer where you can apply -changes to the search query. - -## Delete a query - -To delete a query, click the **Delete** icon. The query will be removed from the saved queries list. - -**See Also** - -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) diff --git a/docs/directorymanager/11.0/welcome/generalfeatures/search.md b/docs/directorymanager/11.0/welcome/generalfeatures/search.md deleted file mode 100644 index 7deb609c36..0000000000 --- a/docs/directorymanager/11.0/welcome/generalfeatures/search.md +++ /dev/null @@ -1,137 +0,0 @@ ---- -title: "Directory Search" -description: "Directory Search" -sidebar_position: 30 ---- - -# Directory Search - -Using the GroupID portal, you can search and manage different directory objects (users, groups, -contacts and mailboxes). - -NOTE: The contact object type is not supported in a Microsoft Entra ID based identity store. - -What do you want to do? - -- [Search directory objects (Quick Search)](#search-directory-objects-quick-search) -- [Search directory objects (Advanced Search)](#search-directory-objects-advanced-search) -- [Search directory objects (Query Based Advanced Search)](#search-directory-objects-query-based-advanced-search) -- [View Search Results](#view-search-results) - -## Search directory objects (Quick Search) - -Use Quick Search to quickly locate objects in the identity store. You can search the entire -directory or specific OU(s) within the directory, depending on search permissions granted to your -role in the identity store. - -1. In the Quick Search box in the top-of the page, enter the display name, first name, or email - address of an object to search for it. - - A list of matched objects is displayed as you type the search string. - -2. Select your required object or click magnifying glass icon. - - Matches are displayed on the **Search Results** page. - -NOTE: Display name, first name and email address are the default schema attributes for Quick Search. -If the GroupID administrator specifies different attributes, you will not get the desired results -when you perform a search with the display name, first name or email address. - -## Search directory objects (Advanced Search) - -Use the portal's Advanced Search to search for directory objects (users, mailboxes, contacts, -groups) in the identity store. You can search the entire directory or specific OU(s) within the -directory, depending on search permissions granted to your role in the identity store. - -Multiple filters are available to search for objects. You can use them individually or in -combination to get the most appropriate search results. - -NOTE: In portal's linked mode, you cannot search contacts in linked Azure / Google Workspace / -Generic LDAP store as contact object is not available in these providers. - -1. Click **Advanced Search** at the top. The **Advanced Search** page is displayed. -2. In the **Search** box: - - In **Stand-alone** mode: select the check boxes for the entire directory or the OUs that you - want to search in. You can also specify the default search OUs using the **Domains to Search** - setting on the User Settings panel. - - NOTE: In **Linked** mode: the **Search** and the **Domains to Search** boxes will list all the - domains of the linked identity stores. You can select domain(s) or OUs you want to search in. - -3. In the **Objects** box, select the objects (User, mailboxes, contact, group) you want to search - for. - - In **Linked** mode: If you log into the portal with an AD primary store, you can search a - contact object and if you log in with any of the other providers i.e., Microsoft Entra ID, - Google Workspace or Generic LDAP, you cannot search as they do not support the contact object - type. - -4. Enter search criteria as needed: - - - Type the display name, first name, last name, title, alias, company, department, office, - and/or city of an object to search for it. - - You can select a custom attribute from the **Select a field** list and type a search string in - the box next to the list. - -5. Click **Search**. - - Objects matching the search criteria are displayed on the **Search Results** page. - -## Search directory objects (Query Based Advanced Search) - -GroupID portal enables you to search directory objects (users, mailboxes, contacts, groups) in the -identity store based on a query. See the -[Query Based Advanced Search](/docs/directorymanager/11.0/welcome/generalfeatures/querysearch.md) -topic. - -NOTE: In portal's linked mode, you cannot search contacts in linked Azure / Google Workspace / -Generic LDAP store as contact object is not available in these providers. - -## View Search Results - -On performing a search, all objects matching your filter criteria are displayed on the **Search -Results** page. - -The **Modify Search Directory** box in: - -- **Stand-alone** mode: displays Entire Directory option. You can select a specific child domain or - particular OUs to view search results from. - -- **linked** mode: lists all domains of the linked identity stores. You can select domain(s) or OUs - to view the search result from. - -The page has multiple tabs, namely: - -- **All**: displays all objects that match the search criterion. -- **Groups**: displays groups that match the search criterion. -- **Users**: displays users and mailboxes that match the search criterion. -- **Contacts**: displays contacts that match the search criterion. - -The Search **Results** page displays results against the following columns: - -- Type -- Display name -- Department -- Office -- Business -- Email - -If portal is running in the Linked mode, the **Identity Store** column is displayed. It displays the -name of the identity store in which the object resides. - -**Important**: For performing searches in customized portal using the Linked mode, it is important -that customized portal fields, which are used while creating filter expressions for use and group -objects, are bind with similar attributes of stores. Otherwise, GroupID will not be able to linked -identities. - -You can perform multiple actions on objects. See the -[Toolbar](/docs/directorymanager/11.0/welcome/generalfeatures/toolbar.md) topic. - -To move through search results, use the page numbers given at the bottom of the listing. You can -also control the number of results per page by modifying the **Search results per page** setting on -the User Settings panel. - -See Also - -- [Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) diff --git a/docs/directorymanager/11.0/welcome/generalfeatures/toolbar.md b/docs/directorymanager/11.0/welcome/generalfeatures/toolbar.md deleted file mode 100644 index c95dcab6f2..0000000000 --- a/docs/directorymanager/11.0/welcome/generalfeatures/toolbar.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Toolbar" -description: "Toolbar" -sidebar_position: 10 ---- - -# Toolbar - -Use the toolbar to perform different actions on the portal pages. Buttons on the toolbar vary, -depending on the page you are on. Toolbar buttons are listed in the following table. - -| Button | Description | -| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ![expire](/images/directorymanager/11.0/portal/expire.webp) | The behavior of this button depends on the expiry policy of the selected group. - When the group has its expiry policy set to ‘never expire’, clicking this button displays an error message that the group cannot be expired. - When the group has an expiry policy other than ‘never expire’, clicking this button expires the group and moves it to the My Expired Groups page. - A group without an expiry policy will not expire. Directory groups that are created outside of GroupID do not have an expiry policy. | -| ![properties](/images/directorymanager/11.0/portal/properties.webp) | View the properties of the selected object. | -| ![update](/images/directorymanager/11.0/portal/update.webp) | Use this button to manually update a Smart Group. On clicking it, a dialog box is displayed, that shows the progress of the Smart Group Update job. To run this job in the background, click the **Run in Background** buttons. Use the **Background Tasks** icon in the top right corner to view the status of the Smart Group Update jobs. | -| ![join](/images/directorymanager/11.0/portal/join.webp) | The logged-on user can use this button to join group(s). 1. Click the arrow and select one of the following: - **Join perpetually**- to join the selected group(s) permanently. - **Join temporarily** - to join the selected group(s) for a specified period. At the end of the period, you are automatically removed from the group membership. 2. Click the **Join** button. The **Other** option is visible to users who have the ‘Manage my Direct Reports’ or ‘Join/Leave on behalf of Peer’ permission or both in the identity store. It enables the logged-on user to join a group permanently or temporarily on behalf of a direct report or peer. | -| ![leave](/images/directorymanager/11.0/portal/leave.webp) | The logged-on user can use this button to leave group(s). 1. Click the arrow and select one of the following: - **Leave perpetually**- to leave the selected group(s) permanently. - **Leave temporarily** - to leave the selected group(s) for a specified period. At the end of the period, you are automatically added back to the group membership. 2. Click the **Leave** button. The **Other** option is visible to users who have the ‘Manage my Direct Reports’ or ‘Join/Leave on behalf of Peer’ permission or both in the identity store. It enables the logged-on user to leave a group permanently or temporarily on behalf of a direct report or peer. | -| ![managedby](/images/directorymanager/11.0/portal/managedby.webp) | View the groups managed by the selected object, i.e., the groups for which the selected object is a primary or additional owner. | -| ![addtogroup](/images/directorymanager/11.0/portal/addtogroup.webp) | Adds the selected objects to the membership of one or more groups. Click the button to search for groups to add the selected objects to. | -| ![exportresult](/images/directorymanager/11.0/portal/exportresult.webp) | Exports the displayed object list to a Microsoft Excel file. | -| ![addtocontacts](/images/directorymanager/11.0/portal/addtocontacts.webp) | Creates a vCard file for the selected object and prompts you to save it on your machine. You can then use it to add the group's email address to your email contact list. This feature requires a program registered for the vCard MIME type, such as Microsoft Outlook or Microsoft Outlook Express. | -| ![sendemail](/images/directorymanager/11.0/portal/sendemail.webp) | Sends an email to the selected object(s). Clicking this button launches the default Windows email application for sending email. | -| ![renew](/images/directorymanager/11.0/portal/renew.webp) | Renews the selected groups by re-applying the expiration policy of the group, starting from today. | -| ![attesticon](/images/directorymanager/11.0/portal/attesticon.webp) | Verify and validate a group's attributes and membership; then renew the group by re-applying its expiration policy, starting from today. | -| ![delete](/images/directorymanager/11.0/portal/delete.webp) | Deletes the selected users and contacts. For groups, it physically deletes expired and logically deleted groups. Physically deleted groups are not available in the portal anymore. It does not delete groups with a valid expiry policy. | -| ![save](/images/directorymanager/11.0/portal/save.webp) | Saves your changes. | -| ![import](/images/directorymanager/11.0/portal/import.webp) | Add members or additional owners to a group using an external file. | -| ![export](/images/directorymanager/11.0/portal/export.webp) | Export members or additional owners of a group to an external file. | -| ![movegroup](/images/directorymanager/11.0/portal/movegroup.webp) | Move groups from one container to another. | -| ![setowner](/images/directorymanager/11.0/portal/setowner.webp) | Set owner for a group. | -| ![securitytype](/images/directorymanager/11.0/portal/securitytype.webp) | Set security type of a group. | -| ![expiration](/images/directorymanager/11.0/portal/expiration.webp) | Set the expiration policy of a group. | -| ![resetpassword](/images/directorymanager/11.0/portal/resetpassword.webp) | Reset password for a user. | -| ![heirarchy](/images/directorymanager/11.0/portal/heirarchy.webp) | View the organizational hierarchy chart of a user. | -| ![validate](/images/directorymanager/11.0/portal/validate.webp) | Verify and update your profile information. | -| ![subscribe](/images/directorymanager/11.0/portal/subscribe.webp) | Subscribe to the Teams channel. NOTE: Only non MFA Entra ID users can subscribe to the Teams channel. | -| ![unsubscribe](/images/directorymanager/11.0/portal/unsubscribe.webp) | Unsubscribe from the Team channel. | - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/generalfeatures/user.md b/docs/directorymanager/11.0/welcome/generalfeatures/user.md deleted file mode 100644 index a88c14d60d..0000000000 --- a/docs/directorymanager/11.0/welcome/generalfeatures/user.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: "User Account Settings" -description: "User Account Settings" -sidebar_position: 60 ---- - -# User Account Settings - -Using the GroupID portal, you can manage your profile information and even change your password, -provided that the GroupID administrator has granted you the required permissions. You can also add -your picture to your profile. - -Administrators can also reset the passwords of other user accounts in the identity store. They can -also set the expiration policy of user accounts, lock or unlock accounts, and enable or disable -accounts. - -What do you want to do? - -- [Update your account information](#update-your-account-information) -- [Add a photo to your profile](#add-a-photo-to-your-profile) -- [Set a user account to never expire](#set-a-user-account-to-never-expire) -- [Set a user account to expire on a specific date](#set-a-user-account-to-expire-on-a-specific-date) -- [Lock/Unlock a user account](#lockunlock-a-user-account) -- [Enable/Disable a user account](#enabledisable-a-user-account) - -## Update your account information - -1. In GroupID portal, click **Dashboard** in the left pane and click the **My Profile** card. -2. Make the required changes to your profile on the My Profile page. -3. Click **Save**. - -NOTE: If the administrator has specified this action for review, your changes will not take effect -until verified by an approver. - -## Add a photo to your profile - -1. In GroupID portal, click **Dashboard** in the left pane and click the **My Profile** card. -2. Click the **General** tab. -3. Click **Modify** next to the **Photo** box. - - The **Manage Photo** dialog box is displayed. - -4. Click **Browse** to browse the file system to select the photo. The size of the image should not - exceed the size displayed in the header area of the dialog box. - - Use the options on the dialog box to edit the photo as desired. - -5. Click **OK** to close the **Manage Photo** dialog box. -6. Click **Save.** - -NOTE: If the administrator has specified this action for review, your changes will not take effect -until verified by an approver. - -## Set a user account to never expire - -1. Search a user to set its directory account to 'never expire'. -2. Select this user on the **Search Results** page and click **Properties** on the toolbar. - - The user's properties page is displayed. - -3. On the **Account** tab, select the **Never** option button for **Account Expires**. -4. Click **Save**. - -## Set a user account to expire on a specific date - -1. Search a user to set its directory account to expire on a specific date. -2. Select this user on the **Search Results** page and click **Properties** on the toolbar. - - The user's properties page is displayed. - -3. On the **Account** tab, select **End of** from the **Account Expire** options and click the - Calendar button to set the date for expiring the user account. -4. Click **Save**. - -## Lock/Unlock a user account - -1. Search a user to lock or unlock their directory account. -2. Select this user on the **Search Results** page and click **Properties** on the toolbar. - - The user's properties page is displayed. - -3. On the **Account** tab: - - - Select the **Account is locked out** check box to lock the user account. - - Clear the **Account is locked out** check box to unlock the account. - -4. Click **Save**. - -## Enable/Disable a user account - -1. Search a user to disable or enable their directory account. -2. Select this user on the **Search Results** page and click **Properties** on the toolbar. - - The user's properties page is displayed. - -3. On the **Account** tab: - - - Select the **Account is disabled** check box to disable the user account. - - Clear the **Account is disabled** check box to enable the user account. - -4. Click **Save**. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) diff --git a/docs/directorymanager/11.0/welcome/group/_category_.json b/docs/directorymanager/11.0/welcome/group/_category_.json deleted file mode 100644 index 7525cf29eb..0000000000 --- a/docs/directorymanager/11.0/welcome/group/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Group Management", - "position": 70, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/group/allgroups/_category_.json b/docs/directorymanager/11.0/welcome/group/allgroups/_category_.json deleted file mode 100644 index 54d4bf545a..0000000000 --- a/docs/directorymanager/11.0/welcome/group/allgroups/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "All Groups", - "position": 30, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "allgroups" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/group/allgroups/alldynasties.md b/docs/directorymanager/11.0/welcome/group/allgroups/alldynasties.md deleted file mode 100644 index a57b7ef604..0000000000 --- a/docs/directorymanager/11.0/welcome/group/allgroups/alldynasties.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Dynasties" -description: "Dynasties" -sidebar_position: 70 ---- - -# Dynasties - -A [Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/overview.md)is a Smart Group -that creates and manages other Smart Groups using information in the directory. This view lists only -the Dynasties created in GroupID in the connected identity store, and does not include expired and -deleted Dynasties. - -The **Type** column shows whether a Dynasty is a parent, middle, or leaf Dynasty. Both middle and -leaf Dynasties are child Dynasties. The parent Dynasty comes at the top of the hierarchy, followed -by middle and then leaf Dynasties. - -Dynasty names help you group a parent Dynasty with its respective child Dynasties. - -- For a Geographical/Organizational/Custom Dynasty - The name of a child Dynasty starts with the - name of its parent Dynasty (unless you change the naming template for Dynasty children). -- For a Managerial Dynasty - By default, the naming template for its child Dynasties starts with - "Direct reports of ``". - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search dynasties and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups)by -clicking **Dynasties Grid Filters**. All the dynasties matching the filters will be displayed. - -**See Also** - -- [All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md) -- [Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/overview.md) -- [Dynasties Functions](/docs/directorymanager/11.0/welcome/group/workingwithgroups/dynastyfunction.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Group Expiry](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md) -- [Join/Leave a Group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md) -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) diff --git a/docs/directorymanager/11.0/welcome/group/allgroups/allexpiredgroups.md b/docs/directorymanager/11.0/welcome/group/allgroups/allexpiredgroups.md deleted file mode 100644 index 3e573a354a..0000000000 --- a/docs/directorymanager/11.0/welcome/group/allgroups/allexpiredgroups.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "Expired Groups" -description: "Expired Groups" -sidebar_position: 40 ---- - -# Expired Groups - -This page lists expired groups. A group expires when: - -- Its validity period, as defined in its expiration policy, ends. - - OR - -- The administrator manually designates a group as expired. - -Expired groups are locked for all activities until renewed. - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search expired groups and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups) -by clicking **Expired Group Grid Filters**. All the expired groups matching the filters will be -displayed. - -**See Also** - -- [All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md) -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Group Expiry](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md) -- [Join/Leave a Group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) diff --git a/docs/directorymanager/11.0/welcome/group/allgroups/allexpiringgroups.md b/docs/directorymanager/11.0/welcome/group/allgroups/allexpiringgroups.md deleted file mode 100644 index dae1d3af4d..0000000000 --- a/docs/directorymanager/11.0/welcome/group/allgroups/allexpiringgroups.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Expiring Groups" -description: "Expiring Groups" -sidebar_position: 50 ---- - -# Expiring Groups - -This page shows only the expiring groups in the connected identity store. - -Groups that will expire in 30 days or less are considered as expiring groups. The expiry date is -calculated from a group’s expiry policy. The Group Lifecycle job is responsible for expiring these -groups on their respective expiry dates; however, you can also manually expire a group before it -reaches the expiry date. - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search expiring groups and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups) -by clicking **Expiring Group Grid Filters**. All the expiring groups matching the filters will be -displayed. - -**See Also** - -- [All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md) -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Group Expiry](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md) -- [Join/Leave a Group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md b/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md deleted file mode 100644 index 8571364f7c..0000000000 --- a/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: "All Groups" -description: "All Groups" -sidebar_position: 30 ---- - -# All Groups - -This tab lists all groups defined in the identity store including all active groups: - -- [Private Groups](/docs/directorymanager/11.0/welcome/group/allgroups/privategroups.md) -- [Semi Private Groups](/docs/directorymanager/11.0/welcome/group/allgroups/semiprivategroups.md) -- [Public Groups](/docs/directorymanager/11.0/welcome/group/allgroups/publicgroups.md) -- [Expired Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allexpiredgroups.md) -- [Expiring Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allexpiringgroups.md) -- [Smart Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allsmartgroups.md) -- [Dynasties](/docs/directorymanager/11.0/welcome/group/allgroups/alldynasties.md) -- [Password Expiry Groups](/docs/directorymanager/11.0/welcome/group/allgroups/passwordexpirygroups.md) -- [Teams](/docs/directorymanager/11.0/welcome/group/allgroups/teams.md) (for Microsoft Entra ID based - identity store) - -Viewing all groups from the directory source may slow down the loading of groups in the view, -especially when there are more than 100 groups. - -**You can:** - -- Manually update the membership of a Smart Group using the **Update** command. You can also view - update details on **Processing Object (s)** wizard. Click **OK** once done. - - If you click **Background**, the update runs in the background and will show in the **Background - Tasks** tab. - -- View and modify the - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) of a - group. -- [Expire a group manually ](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiryfunction.md#expire-a-group-manually). - After expiring the group, it will be listed in **Expired Group** list. -- Select a smart group and click **Renew** on the toolbar; this re-applies the expiry policy of the - group starting from today, thus renewing the group. -- Join a group as a - [Join a group temporarily](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#join-a-group-temporarily) - or - [Join a group permanently](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#join-a-group-permanently) - - Select **Other** to add other users to the group. - -- Leave a group’s membership - [Leave a group temporarily](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#leave-a-group-temporarily) - or - [Leave a group permanently](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#leave-a-group-permanently). - - Select **Other** to remove other users from the group. - -- To Join/Leave the group, you can also click on **Want to write reason to group owner?** and state - the reason for joining or leaving the group for the group owner. -- Update the security type of a group group using **Set Security Type** option. You can select one - of the following security types: - - - Public - - Semi Private - - Private - -- Update the expiration policy of a group using **Set Expiration Policy** option. - - - Never Expire - - Expire Every 30 Days - - Expire Every 60 Days - - Expire Every 90 Days - - Expire Every 120 Days - - Expire Every 6 Months - - Expire Every Year - - Other - -- Set owner for a group using **Set Owner** option. The drop down list displays two options: - - - **Me**: You can set yourself as the Owner. - - **Other**: You can select some other user as the Owner. - -- Physically delete a group. Select a group and click **Delete** on the toolbar. -- Click **Attest Group** to update and verify group's attributes and memberships. -- Get a list of all groups managed by a particular group (i.e., all groups for which the selected - group is a primary or additional owner). - - Select a group and click **Managed By** on the toolbar to get a list of groups managed by the - selected group. - -- Select a group and click **Move Group** from the toolbar. You can specify a new container from - **Select Container** box where you want to move the group. -- Add a group’s email to your email contact list using the vCard. - - Select a group and click **Add to Contacts** on the toolbar. The portal creates the group's - vCard and prompts you to save it on your machine. You can then use it to add the group's email - address to your email contact list. - -- Click **Add to Group** to add the group into the membership of another group - ([Add a group to the membership of another group (nesting)](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupmembershipfunction.md#add-a-group-to-the-membership-of-another-group-nesting)). -- Select a group and click **Send Email** on the toolbar. This launches the default Windows email - application for sending an email to group members. -- Click **Export Results** on the toolbar to export the group list to a Microsoft Excel file. -- In the **Results** box, select the number of search results to display on a page. - -Use the page numbers under the group listing to page through all groups. - -You can also control the number of records to be displayed per page by modifying the **Search -results per page** setting on the -[Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) panel. - -## Modify Search Directory - -You can modify the search results in **Modify Search Directory.** You can select entire directory or -a domain to search active groups from. - -## Transfer Ownership - -You can find -[Transfer Ownership](/docs/directorymanager/11.0/welcome/group/transferownership.md) option -on the top right corner. Transfer Ownership enables you to: - -- Assign owners to orphan groups. -- Transfer group ownership (including Exchange 2013/2016/2019 additional ownership) from one - recipient to another. - -## Filter All Groups - -You can add filters in **All Group Grid Filters** while searching for specific groups. - -1. Click **Add Filter** to specify a criterion for filtering groups. -2. From the **Select a Filter** list, select the attribute to filter groups. -3. Two more boxes get displayed next to **Select a Filter** box upon selecting a filter. - - - **Select an Operator** from the first list. - - Specify a value for the selected operator in the second box. - -4. Click **Apply Filter**. - - All active groups that match the specified criterion are displayed. - -5. You can add additional filters by clicking **Add Filter.** -6. To undo the filters, click **Reset Filter.** It will remove all the criteria set before. - -**See Also** - -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/allgroups/allsmartgroups.md b/docs/directorymanager/11.0/welcome/group/allgroups/allsmartgroups.md deleted file mode 100644 index 62c178410c..0000000000 --- a/docs/directorymanager/11.0/welcome/group/allgroups/allsmartgroups.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Smart Groups" -description: "Smart Groups" -sidebar_position: 60 ---- - -# Smart Groups - -This view lists only the Smart Groups created using GroupID in the connected identity store. It does -not list expired or deleted Smart Groups. To view the expired or deleted groups, select the -[Expired Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allexpiredgroups.md) or -[Deleted Groups](/docs/directorymanager/11.0/welcome/group/recyclebin/overview.md) -respectively. - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search smart groups and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups)by -clicking **Smart Group Grid Filter**. All the smart groups matching the filters will be displayed. - -**See Also** - -- [All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md) -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Group Expiry](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md) -- [Join/Leave a Group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md) -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) diff --git a/docs/directorymanager/11.0/welcome/group/allgroups/passwordexpirygroups.md b/docs/directorymanager/11.0/welcome/group/allgroups/passwordexpirygroups.md deleted file mode 100644 index 27f9d5c18d..0000000000 --- a/docs/directorymanager/11.0/welcome/group/allgroups/passwordexpirygroups.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "Password Expiry Groups" -description: "Password Expiry Groups" -sidebar_position: 80 ---- - -# Password Expiry Groups - -A password expiry group is a Smart Group whose membership contains users whose identity store -account passwords are approaching their expiry dates. Members of this group are notified by email to -reset their passwords. When they do so, they are automatically removed from the group membership. - -On the **Password Expiry Options** tab of the Query Designer, you can define the password expiry -policy for the group. Based on this policy and the users' **PWDLASTSET** attribute, GroupID Portal -creates this group with users whose passwords will soon expire. - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search password expiry groups and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups)by -clicking **Password Expiry Group Grid Filters**. All the password expiry groups matching the filters -will be displayed. - -**See Also** - -- [All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md) -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Group Expiry](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md) -- [Join/Leave a Group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/allgroups/privategroups.md b/docs/directorymanager/11.0/welcome/group/allgroups/privategroups.md deleted file mode 100644 index c11b80cb6f..0000000000 --- a/docs/directorymanager/11.0/welcome/group/allgroups/privategroups.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Private Groups" -description: "Private Groups" -sidebar_position: 10 ---- - -# Private Groups - -This view lists only the private groups created using GroupID in the connected identity store. It -does not list expired or deleted private groups. To view the expired or deleted groups, select the -[Expired Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allexpiredgroups.md) or -[Deleted Groups](/docs/directorymanager/11.0/welcome/group/recyclebin/overview.md) -respectively. - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search private groups and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups) -by clicking **Private Group Grid Filters**. All the private groups matching the filters will be -displayed. - -**See Also** - -- [All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md) -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Group Expiry](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md) -- [Join/Leave a Group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/allgroups/publicgroups.md b/docs/directorymanager/11.0/welcome/group/allgroups/publicgroups.md deleted file mode 100644 index c3579ef7fd..0000000000 --- a/docs/directorymanager/11.0/welcome/group/allgroups/publicgroups.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Public Groups" -description: "Public Groups" -sidebar_position: 30 ---- - -# Public Groups - -This view lists only the public groups created using GroupID in the connected identity store. It -does not list expired or deleted public groups. To view the expired or deleted groups, select the -[Expired Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allexpiredgroups.md) or -[Deleted Groups](/docs/directorymanager/11.0/welcome/group/recyclebin/overview.md) -respectively. - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search private groups and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups) -by clicking **Public Group Grid Filters**. All the public groups matching the filters will be -displayed. - -**See Also** - -- [All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md) -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Group Expiry](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md) -- [Join/Leave a Group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/allgroups/semiprivategroups.md b/docs/directorymanager/11.0/welcome/group/allgroups/semiprivategroups.md deleted file mode 100644 index f154fea3e9..0000000000 --- a/docs/directorymanager/11.0/welcome/group/allgroups/semiprivategroups.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "Semi Private Groups" -description: "Semi Private Groups" -sidebar_position: 20 ---- - -# Semi Private Groups - -This view lists only the semi-private groups created using GroupID in the connected identity store. -It does not list expired or deleted semi private groups. To view the expired or deleted groups, -select the [Expired Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allexpiredgroups.md) -or [Deleted Groups](/docs/directorymanager/11.0/welcome/group/recyclebin/overview.md) -respectively. - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search semi private groups and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups) -by clicking **Private Group Grid Filters**. All the semi private groups matching the filters will be -displayed. - -**See Also** - -- [All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md) -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Group Expiry](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md) -- [Join/Leave a Group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/allgroups/teams.md b/docs/directorymanager/11.0/welcome/group/allgroups/teams.md deleted file mode 100644 index a15d8fa71f..0000000000 --- a/docs/directorymanager/11.0/welcome/group/allgroups/teams.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "Teams" -description: "Teams" -sidebar_position: 90 ---- - -# Teams - -This page lists all the Microsoft Teams groups. - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search teams and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups)by -clicking **Teams Grid Filters**. All the teams matching the filters will be displayed. - -**See Also** - -- [All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md) -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Group Expiry](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md) -- [Join/Leave a Group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/create/_category_.json b/docs/directorymanager/11.0/welcome/group/create/_category_.json deleted file mode 100644 index f5bae9912f..0000000000 --- a/docs/directorymanager/11.0/welcome/group/create/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Groups", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/group/create/create.md b/docs/directorymanager/11.0/welcome/group/create/create.md deleted file mode 100644 index af39903ae9..0000000000 --- a/docs/directorymanager/11.0/welcome/group/create/create.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Create Teams" -description: "Create Teams" -sidebar_position: 80 ---- - -# Create Teams - -Using GroupID portal, you can create Team in the identity store. - -What do you want to do? - -- Create Teams - -## Create Teams - -1. In the GroupID portal, click the **Create New** button and select **Team**. - - The **Create Group** wizard opens to the **Group Type** page. - - NOTE: Pages and fields on the Create Group wizard may vary, since the administrator can - customize the wizard by adding or removing pages and fields. - -2. On the [Group Type page](/docs/directorymanager/11.0/welcome/group/create/grouptype.md), - select the required group type and click **Next**. -3. On the General page, specify basic information about the group. -4. If you select Static Group, specify members for the group on the - [Members page](/docs/directorymanager/11.0/welcome/group/create/group/members.md). -5. If you select Smart Group or a Dynasty, review and modify the query for updating group membership - on the - [ Smart Group page](/docs/directorymanager/11.0/welcome/group/create/group/smartgroup.md). -6. On the - [Owners page](/docs/directorymanager/11.0/welcome/group/create/group/owners.md), - specify primary and additional owners for the group. -7. On the - [Summary Page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md), - review the settings and then click Finish to complete the wizard. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/create/group/_category_.json b/docs/directorymanager/11.0/welcome/group/create/group/_category_.json deleted file mode 100644 index 832f2c37f2..0000000000 --- a/docs/directorymanager/11.0/welcome/group/create/group/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Create Active Directory Groups", - "position": 20, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "group" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/group/create/group/general.md b/docs/directorymanager/11.0/welcome/group/create/group/general.md deleted file mode 100644 index 7bd934521d..0000000000 --- a/docs/directorymanager/11.0/welcome/group/create/group/general.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "General page" -description: "General page" -sidebar_position: 10 ---- - -# General page - -Use this page to specify basic information about the group. - -1. Click **Browse** next to the **Container** box to select or create the container or - organizational unit to create the group in and click **OK**. - - If you want to create a container, click **Create** and then add container to create the group - in. Click **Refresh** to remove the changes. - - This field will be read-only if the administrator has predefined a container for creating new - groups. - -2. In the **Group Name** box, provide a name for the group by selecting a prefix and then entering a - name for the group. - - NOTE: The prefix box is displayed if the administrator has defined the prefixes. See Group name - prefixes. - These prefixes, when appended to group names, help standardize the group naming convention - across the enterprise. - -3. The **Name Preview** is displayed if the prefix list is available and displays a preview of the - prefix combined with the group name. -4. The group name is also displayed in the **Group Name (Pre Windows 2000)** box. Modify it, if - required. -5. Select the **Mail Enabled** check box to create the group as mail-enabled. A mail-enabled group - is one with an email address. Members of a mail-enabled group can receive emails. -6. The **Alias** box displays an alias for creating the group's email address. You can modify the - alias, if required. - - If Microsoft Exchange Server is the designated messaging provider for the identity store, then - the alias length is limited to 64 characters, it does not contain spaces, and it is unique to - the forest. For other messaging systems, the alias length must not exceed the number of - characters supported by the respective messaging system. - - Also, the alias must not contain characters that are invalid for the configured messaging - system. - - The **Alias** box is displayed if the **Mail Enabled** check box is selected. - -7. Set the group type by selecting an option for **Group Type**. - - - **Security** - this group will be used for securing public folders, printers and other network - resources. - - **Distribution** - this group will only be used for email distribution. - - NOTE: If the administrator has predefined a group type, you cannot change it. - -8. In the **Group Scope** list, select a scope for the group. - - - **Domain Local** - if the group is to contain only users in this domain. - - **Global Group** - if the group is to contain users from other domains, but should only be - visible within its own domain. - - **Universal Group** - if the group is to contain users and groups from any domain and be - visible in the Global Catalog. - - NOTE: (1) If the administrator has predefined a group scope, you cannot change it. - (2) To create a mail-enabled group (with Exchange 2013/2016/2019 as the messaging provider), you - must select **Universal** as the group scope. - -9. In the **Security** list, select a security type for the group. -10. Enter a description for the group in the **Description** box. -11. Click **Next**. - -**See Also** - -- [Create Active Directory Groups](/docs/directorymanager/11.0/welcome/group/create/group/group.md) diff --git a/docs/directorymanager/11.0/welcome/group/create/group/general_1.md b/docs/directorymanager/11.0/welcome/group/create/group/general_1.md deleted file mode 100644 index e8fbf277f2..0000000000 --- a/docs/directorymanager/11.0/welcome/group/create/group/general_1.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: "General page" -description: "General page" -sidebar_position: 10 ---- - -# General page - -Use this page to specify basic information about the group. - -1. Click **Browse** next to the **Container** box to select the container or organizational unit to - create the group in. - - This field would be read-only if the administrator has predefined a container for creating new - groups. - -2. In the **Group Name** box, provide a name for the group by selecting a prefix and then entering a - name for the group. - - NOTE: The prefix box is displayed if the administrator has defined the prefixes. See the - [Set Group Name Prefixes](/docs/directorymanager/11.0/signin/identitystore/configure/prefixes.md) - topic. - These prefixes, when appended to group names, help standardize the group naming convention - across the enterprise. - -3. The **Name Preview** is displayed if the prefix list is available and displays a preview of the - prefix combined with the group name. -4. In the **Security** list, select a security type for the group. -5. Set the group type by selecting an option for **Group Type** - - - **Security** - this group will be used for securing public folders, printers and other network - resources. - - **Distribution** - this group will only be used for email distribution. - - **Teams** - this groups is used for manage Microsoft Teams and their associated channels. - - **Microsoft 365** - this group will be used to select a set of people to collaborate and use a - collection of resources. - -6. Enter a description for the group in the **Description** box. -7. Click **Next**. - -**See Also** - -- [Create Microsoft Entra ID Groups](/docs/directorymanager/11.0/welcome/group/create/group/group_1.md) diff --git a/docs/directorymanager/11.0/welcome/group/create/group/group.md b/docs/directorymanager/11.0/welcome/group/create/group/group.md deleted file mode 100644 index 10acabb590..0000000000 --- a/docs/directorymanager/11.0/welcome/group/create/group/group.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -title: "Create Active Directory Groups" -description: "Create Active Directory Groups" -sidebar_position: 20 ---- - -# Create Active Directory Groups - -Using GroupID portal, you can create static groups and Smart Groups in an Active Directory identity -store. - -NOTE: If the GroupID administrator has specified the group creation action for review, the new group -will be created after it is verified by an approver. See -[Requests](/docs/directorymanager/11.0/welcome/request/overview.md). - -What do you want to do? - -- [Create a Static Group](#create-a-static-group) -- [Create a Smart Group](#create-a-smart-group) -- [Create a Password Expiry Group](#create-a-password-expiry-group) - -## Create a Static Group - -1. In the GroupID portal, click the **Create New** button in the left pane and select **Group**. - - The **Create Group** wizard opens to the **Group Type** page. - - Pages and fields on the Create Group wizard may vary, since the administrator can customize the - wizard by adding or removing pages and fields. - -2. On the [Group Type page](/docs/directorymanager/11.0/welcome/group/create/grouptype.md), - select the **Static Group** option button and click **Next**. -3. On the - [General page](/docs/directorymanager/11.0/welcome/group/create/group/general.md), - specify basic information about the group. -4. On the - [Members page](/docs/directorymanager/11.0/welcome/group/create/group/members.md), - specify members for the group. -5. On the - [Owners page](/docs/directorymanager/11.0/welcome/group/create/group/owners.md), - specify primary and additional owners for the group. -6. On the - [Summary Page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md), - review the settings and then click Finish to complete the wizard. - -## Create a Smart Group - -A Smart Group is one that dynamically maintains its membership based on the rules applied by a -user-defined query, such as an LDAP query. - -Rather than specifying static user memberships, you can use a query (for example, "All full-time -employees in my company") to dynamically build membership in a Smart Group. Managing memberships -with queries significantly reduces administrative costs. - -**To create a Smart Group:** - -1. In the GroupID portal, click the **Create New** button in the left pane and select **Group**. - - The **Create Group** wizard opens to the **Group Type** page. - - Pages and fields on the Create Group wizard may vary, since the administrator can customize the - wizard by adding or removing tabs and fields. - -2. On the [Group Type page](/docs/directorymanager/11.0/welcome/group/create/grouptype.md), - select the **Smart Group** option button and click **Next**. -3. On the - [General page](/docs/directorymanager/11.0/welcome/group/create/group/general.md), - specify basic information about the group. -4. On the - [ Smart Group page](/docs/directorymanager/11.0/welcome/group/create/group/smartgroup.md), - review and modify the query for updating group membership. -5. On the - [Owners page](/docs/directorymanager/11.0/welcome/group/create/group/owners.md), - specify primary and additional owners for the group. - - When a Smart Group Update job runs on a group, the notification behavior is as follows: - Even when the **Do not Notify** check box is selected, the additional owner will receive the - notifications if the administrator has included its email address for job-specific - notifications. - -6. On the - [Summary Page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md), - review the settings and then click Finish to complete the wizard. - -## Create a Password Expiry Group - -A password expiry group is a Smart Group whose membership contains users whose identity store -account passwords are approaching their expiry dates. Members of this group are notified by email to -reset their passwords. When they do so, they are automatically removed from the group membership. - -NOTE: Password Expiry group is not supported in Microsoft Entra ID. - -**To create a Password Expiry Group:** - -1. In the GroupID portal, click the **Create New** button in the left pane and select **Group**. - - The **Create Group** wizard opens to the **Group Type** page. - - Pages and fields on the Create Group wizard may vary, since the administrator can customize the - wizard by adding or removing tabs and fields. - -2. On the [Group Type page](/docs/directorymanager/11.0/welcome/group/create/grouptype.md), - select the **Password Expiry Group** option button and click **Next**. -3. On the - [General page](/docs/directorymanager/11.0/welcome/group/create/group/general.md), - specify basic information about the group. -4. On the - [ Smart Group page](/docs/directorymanager/11.0/welcome/group/create/group/smartgroup.md), - review and modify the query for updating group membership. -5. On the - [Owners page](/docs/directorymanager/11.0/welcome/group/create/group/owners.md), - specify primary and additional owners for the group. - - When a Smart Group Update job runs on a group, the notification behavior is as follows: - Even when the **Do not Notify** check box is selected, the additional owner will receive the - notifications if the administrator has included its email address for job-specific - notifications. - -6. On the - [Summary Page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md), - review the settings and then click Finish to complete the wizard. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/create/group/group_1.md b/docs/directorymanager/11.0/welcome/group/create/group/group_1.md deleted file mode 100644 index 519a35bfc7..0000000000 --- a/docs/directorymanager/11.0/welcome/group/create/group/group_1.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: "Create Microsoft Entra ID Groups" -description: "Create Microsoft Entra ID Groups" -sidebar_position: 30 ---- - -# Create Microsoft Entra ID Groups - -Using GroupID portal, you can create static groups and Smart Groups in the identity store. - -NOTE: If the GroupID administrator has specified the group creation action for review, the new group -will be created after it is verified by an approver. See the -[Requests](/docs/directorymanager/11.0/welcome/request/overview.md) topic. - -What do you want to do? - -- [Create a Static Group](#create-a-static-group) -- [Create a Smart Group](#create-a-smart-group) - -## Create a Static Group - -1. In the GroupID portal, click the **Create New** button in the left pane and select **Group**. - - The **Create Group** wizard opens to the **Group Type** page. - - NOTE: Pages and fields on the Create Group wizard may vary, since the administrator can - customize the wizard by adding or removing tabs and fields. - -2. On the [Group Type page](/docs/directorymanager/11.0/welcome/group/create/grouptype.md), - select the **Static Group** option button and click **Next**. -3. On the [General page](/docs/directorymanager/11.0/welcome/group/create/group/general_1.md), - specify basic information about the group. -4. On the - [Members page](/docs/directorymanager/11.0/welcome/group/create/group/members.md), - add objects to group membership. - - Only user objects can be added as members of an Office 365 group. - -5. On the - [Owners page](/docs/directorymanager/11.0/welcome/group/create/group/owners.md), - specify primary and additional owners for the group. - - Only users can be set as primary owners. You can specify multiple primary owners for a group. At - least one primary owner is mandatory. - -6. On the - [Summary Page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md), - review the settings and then click Finish to complete the wizard. - -## Create a Smart Group - -1. In the GroupID portal, click the **Create New** button in the left pane and select **Group**. - - The **Create Group** wizard opens to the **Group Type** page. - - Remember, pages and fields on the Create Group wizard may vary, since the administrator can - customize the wizard by adding or removing tabs and fields. - -2. On the [Group Type page](/docs/directorymanager/11.0/welcome/group/create/grouptype.md) - page, select the **Smart Group** option button and click **Next**. -3. On the [General page](/docs/directorymanager/11.0/welcome/group/create/group/general_1.md) - page, specify basic information about the group. -4. On the - [ Smart Group page](/docs/directorymanager/11.0/welcome/group/create/group/smartgroup.md) - page, review and modify the query for updating group membership. - - Smart Groups in an Microsoft Entra ID based identity store use a device structured query - language to update group membership. You should either apply a query to a group in the Microsoft - Entra ID portal or in GroupID. - -5. On the - [Owners page](/docs/directorymanager/11.0/welcome/group/create/group/owners.md), - specify primary and additional owners for the group. - - - Only users can be set as primary owners. - - You can specify multiple primary owners for a group. At least one primary owner is mandatory. - - When a Smart Group Update job runs on a group, the notification behavior is as follows: - - Even when the **Do not Notify** check box is selected, the additional owner will receive the - notifications if the administrator has included its email address for job-specific - notifications. - -6. On the - [Summary Page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md), - review the settings and then click Finish to complete the wizard. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/create/group/members.md b/docs/directorymanager/11.0/welcome/group/create/group/members.md deleted file mode 100644 index 7b77afdda5..0000000000 --- a/docs/directorymanager/11.0/welcome/group/create/group/members.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Members page" -description: "Members page" -sidebar_position: 20 ---- - -# Members page - -You can add members to the group. You can also remove members. By default, you are a member of the -group. - -- To add member(s), click **Add**. Enter a search string to locate the object to add as a group - member, or click **Advance** to use the - [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing a - search. - - The selected members get listed in the grid on the **Members** page. - -- You can also add members to the group using an external file. You can also choose to import all - members of an existing group or groups to the membership of this group. - - Click **Import** to launch the **Import Members** wizard for importing group members. See - [Import Group Members](/docs/directorymanager/11.0/welcome/group/properties/importmembers.md) - for information. - -- To remove an object from the members list, select it and click **Remove**. - -The **Members** table displays the following information: - -| Column Name | Description | -| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Type | The object type of the member object, such as user or group. | -| Display Name | The name of the member object. You can view the memberships of groups that are members of this group. For example, when you add a group (Group B) as a member of this group (Group A), you can view the membership of Group B. You can continue to view memberships of groups that are members of Group B, and so on. This enables the owner of a distribution group to view all users who will receive the messages sent to the distribution group. Click the plus sign (![plus](/images/directorymanager/11.0/portal/group/create/activedirectory/plus.webp)) next to a member group to view its members. Group membership can be viewed up to the nth level. However, you cannot modify membership of nested groups here. For a parent Dynasty, all child Dynasties are listed as members. NOTE: For an expired security group and Office 365 group, the members list would be empty. | -| Membership | Indicates whether the object is a temporary or permanent member of this group. The available membership types are: - **Perpetual** - To make the object a permanent member of the group. - **Temporary Member** - To make the object a temporary member of the group for the period you specify in the **Beginning** and **Ending** boxes. At the end of the period, the object is removed from the group membership. - **Addition Pending** - Indicates that the object will be a temporary member of the group for a period in the future. Use the **Beginning** and **Ending** boxes to set a period. Before the beginning date, the object’s membership type is displayed as ‘Addition Pending’. On the beginning date, the membership type changes to ‘Temporary Member’. **Here is an example:** You add Smith as a temporary member to Group A on May 15, 2019 for future dates, May 20-30, 2019. Smith will be displayed in Group A’s membership with ‘Addition Pending’ as its membership type from May 15 to 19, 2019. However, Smith would not be added to group membership in the provider. On May 20, Smith will become a temporary member of Group A and its membership type will change to ‘Temporary Member’ from May 20 to 30, 2019. Smith will also be added to group membership in the provider. After May 30, Smith will be removed from Group A as a member in GroupID and in the provider. - **Removal Pending** - Indicates that the object will be temporarily removed from group membership for a period in the future. Use the **Beginning** and **Ending** boxes to set a period. Before the beginning date, the object’s membership type is displayed as ‘Removal Pending’. On the beginning date, the membership type will change to ‘Temporary Removed’. _Here is an example:_ You remove Smith from Group A on May 15, 2019 for future dates, May 20-30, 2019. Smith will be displayed in Group A’s membership with ‘Removal Pending’ as membership type from May 15 to 19, 2019. On May 20, Smith’s membership type in GroupID will change to ‘Temporary Removed’; lasting till May 30, 2019. However, Smith will be removed from Group A’s membership in the provider. After May 30, Smith will be added back to Group A as a permanent member in GroupID and in the provider. - **Temporary Removed** - Indicates that the object is temporarily removed from group membership for the period specified in the **Beginning** and **Ending** boxes. At the end of the period, the object is added back to the group membership as a permanent member. When the object is a perpetual member, the Membership column is blank. Click anywhere in the row to make it editable for changing the membership type of the group member. NOTE: You cannot change the membership type when the member object is a group. | -| Beginning | Displays the beginning date of the temporary addition or removal. | -| Ending | Shows the ending date of the temporary addition or removal. | - -The Membership Life Cycle job updates the temporary membership of groups. It adds and removes -temporary members from group membership on the specified dates. - -Consider a scenario where the Membership Life Cycle job is scheduled to run once a week, say -Mondays. If an object is to be added to group membership for three days - Wednesday till Friday, it -will not be added. This happens because the Membership Life Cycle job did not run on the particular -days for temporary membership update. - -After adding members, click **Next**. - -**See Also** - -- [Create Active Directory Groups](/docs/directorymanager/11.0/welcome/group/create/group/group.md) diff --git a/docs/directorymanager/11.0/welcome/group/create/group/owners.md b/docs/directorymanager/11.0/welcome/group/create/group/owners.md deleted file mode 100644 index cea8298aee..0000000000 --- a/docs/directorymanager/11.0/welcome/group/create/group/owners.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "Owners page" -description: "Owners page" -sidebar_position: 30 ---- - -# Owners page - -You can manage the primary and additional owners for the group. Additional owners have the same -privileges as the primary owner to manage the group. - -Users, contacts and security groups can be set as the primary and additional owners. In case of a -group, all its members are considered as owners. - -- The **Owner** box displays your name as the primary owner of the group. - - To change the primary owner, click **Browse** next to the **Owner** box to launch the - [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md), where you can - search and select a primary owner. - -- If the administrator has not enforced the selection of a primary owner (see Role policies), you - can also remove the primary owner. Click the **Remove** button next to the **Owner** box to remove - the primary owner. -- To specify additional owner(s) for the group, click **Add**. - - Enter a search string to locate the object to add as an additional owner, or click **Advance** - to use the [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for - performing a search. - -- You can also specify additional owners for the group using an external file. Click **Import** to - launch the **Import Additional Owners** wizard for importing additional owners. See - [Import Additional Owners](/docs/directorymanager/11.0/welcome/group/properties/importadditionalowners.md) - for further information and instructions. -- To remove an object from the additional owners list, select it and click **Remove**. - -The **Additional Owners** grid displays the following information: - -| Column Name | Description | -| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Type | The object type of the additional owner, such as user or group. | -| Name | The display name of the additional owner. | -| Ownership | Indicates whether an object is a temporary or permanent additional owner of a group. The available ownership types are: - **Perpetual** - To make the object a permanent additional owner of the group. - **Temporary Owner** - To make the object a temporary additional owner of the group for the period you specify in the **Beginning** and **Ending** boxes. At the end of the period, the object is removed from the group ownership. - **Addition Pending** - Indicates that the object will be a temporary additional owner of the group for a period in the future. Use the **Beginning** and **Ending** boxes to set a period. Before the beginning date, the object’s ownership type is displayed as ‘Addition Pending’. On the beginning date, the ownership type changes to ‘Temporary Owner’. **Here is an example:** You add Smith as a temporary additional owner of Group A on May 15, 2019 for future dates, May 20-30, 2019. Smith will be listed with Group A’s additional owners with ‘Addition Pending’ as its ownership type from May 15 to 19, 2019. On May 20, Smith will become a temporary additional owner of Group A and its ownership type will change to ‘Temporary Owner’ from May 20 to 30, 2019. After May 30, Smith will be removed from Group A as an additional owner. - **Removal Pending** - Indicates that the object will be temporarily removed from group ownership for a period in the future. Use the **Beginning** and **Ending** boxes to set a period. Before the beginning date, the object’s ownership type is displayed as ‘Removal Pending’. On the beginning date, the ownership type will change to ‘Temporary Removed’. **Here is an example:** You remove Smith as an additional owner of Group A on May 15, 2019 for future dates, May 20-30, 2019. Smith will be displayed as Group A’s additional owner with ‘Removal Pending’ as ownership type from May 15 to 19, 2019. On May 20, Smith’s ownership type in GroupID will change to ‘Temporary Removed’; lasting till May 30, 2019. After May 30, Smith will be added back to Group A as a permanent additional owner. - **Temporary Removed** - Indicates that the object is temporarily removed from group ownership for the period specified in the **Beginning** and **Ending** boxes. At the end of the period, the object is added back to the group as a permanent additional owner. When the object is a perpetual additional owner, the Ownership column is blank. Click anywhere in the row to make it editable for changing the ownership type of the additional owner. NOTE: You cannot change the ownership type when the additional owner is a group. | -| Beginning | Displays the beginning date of the temporary addition or removal. | -| Ending | Displays the ending date of the temporary addition or removal. | -| Do not notify | By default, all group-related notifications (such as expiry, deletion, and renewal notifications) are sent to the primary owner and all additional owners, so they can take the necessary action indicated. To exclude an additional owner from receiving notifications, select the Do not notify check box. | - -The Managed By Life Cycle job updates the temporary ownership of groups by adding and removing -temporary owners on the specified dates. - -Consider a scenario where the Managed By Life Cycle job is scheduled to run once a week, say -Mondays. If an object is to be added as a group’s temporary additional owner for three days - -Wednesday till Friday, it will not be added. This happens because the Managed By Life Cycle job did -not run on the particular days for temporary ownership update. - -After specifying group owners, click **Next**. - -You may observe a message, asking you to select X number of additional owners. It occurs because the -Group Owners policy defined for your role in the identity store requires that the group must have at -least x number of additional owners. Do the needful and click **Next**. - -**See Also** - -- [Create Active Directory Groups](/docs/directorymanager/11.0/welcome/group/create/group/group.md) diff --git a/docs/directorymanager/11.0/welcome/group/create/group/smartgroup.md b/docs/directorymanager/11.0/welcome/group/create/group/smartgroup.md deleted file mode 100644 index 55242b0083..0000000000 --- a/docs/directorymanager/11.0/welcome/group/create/group/smartgroup.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: "Smart Group page" -description: "Smart Group page" -sidebar_position: 40 ---- - -# Smart Group page - -This page displays the default query for the Smart Group; however, you can modify it. The group’s -membership is updated with the records fetched by the query. - -- The **Container(s)** area displays the domain or containers the query will run on. -- **Object Types**: Lists the object types the query will fetch. -- The **Server** and **Storage** areas are displayed if the query only fetches messaging system - recipients. These areas display the server and storage for the query to fetch the records from. - -In an Active Directory identity store, the default query returns the following: - -- If a messaging provider is configured for the identity store, the default query returns messaging - system recipients (users with mailboxes, users with external email addresses, and contacts with - external email addresses). -- Without a messaging provider, the default query returns all users, contacts and groups in the - identity store. - -In a Microsoft Entra IDidentity store, the default query returns the following: - -- If a messaging provider is configured for the identity store, the default query returns messaging - system recipients (users with mailboxes and users with external email addresses). -- Without a messaging provider, the default query returns all users and groups. For an Office 365 - group, however, only user objects are added to group membership. - -You can do the following: - -1. To modify the query, click the **Query Designer** button. This launches the - [Query Designer](/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md) - dialog box, where you can modify the query. -2. You can also associate a Smart Group Update job with the group; this is a scheduled job that - updates the group’s membership when it runs. - - From the **Scheduled Job** list, select a Smart Group Update job to associate with the group. - - This list contains Smart Group Update jobs defined in the identity store. - - NOTE: If the administrator has enforced the job selection option, you cannot proceed unless you - select a scheduled job for this group. - -3. Click **Next**. - -**See Also** - -- [Create Active Directory Groups](/docs/directorymanager/11.0/welcome/group/create/group/group.md) diff --git a/docs/directorymanager/11.0/welcome/group/create/grouptype.md b/docs/directorymanager/11.0/welcome/group/create/grouptype.md deleted file mode 100644 index 3c5cecd0b2..0000000000 --- a/docs/directorymanager/11.0/welcome/group/create/grouptype.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Group Type page" -description: "Group Type page" -sidebar_position: 10 ---- - -# Group Type page - -Select the type of group you want to create and click **Next**. Options are: - -- [Create a Static Group](/docs/directorymanager/11.0/welcome/group/create/group/group.md#create-a-static-group) -- [Create a Smart Group](/docs/directorymanager/11.0/welcome/group/create/group/group.md#create-a-smart-group) -- [Create a Password Expiry Group](/docs/directorymanager/11.0/welcome/group/create/group/group.md#create-a-password-expiry-group) - (not supported in Microsoft Entra ID) -- [Create a Dynasty using the Organizational/Geographical/Custom template](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/createdynasty.md#create-a-dynasty-using-the-organizationalgeographicalcustom-template) -- [Create a Dynasty using the Managerial template](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/createdynasty.md#create-a-dynasty-using-the-managerial-template) -- [Create Teams](/docs/directorymanager/11.0/welcome/group/create/create.md) (for Microsoft - Entra ID only) - -**See Also** - -- [Group Management](/docs/directorymanager/11.0/welcome/group/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/create/overview.md b/docs/directorymanager/11.0/welcome/group/create/overview.md deleted file mode 100644 index ec7635eee5..0000000000 --- a/docs/directorymanager/11.0/welcome/group/create/overview.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Groups" -description: "Groups" -sidebar_position: 10 ---- - -# Groups - -Using GroupID portal, you can create: - -- An unmanaged group or a static group. - - - A static group is a group you would normally create in a directory (for example, by using the - Active Directory Users and Computers snap-in). Though such groups can be created using GroupID - portal, GroupID does not support dynamic updates to them. Any changes to the membership have - to be updated manually. - -- A managed group or a Smart Group or a Dynasty. - - - A Smart Group (normal Smart Group and Smart Group with a password expiry condition) - - A Smart Group is one that dynamically maintains its membership based on rules. These rules - are applied in the form of a user-defined query, such as an LDAP query. This query is - defined once and scheduled for membership update using a Smart Group Update job. When the - Smart Group update job runs, it applies the defined rules to update the group's memberships. - - In this way, Smart Groups are automatically updated whenever the directory information - changes. This automated group management allows administrators to easily maintain large - distribution lists and security groups without having to manually add or remove members. - - - A Dynasty is a Smart Group that creates and manages other Smart Groups using information in - the directory. Dynasties help you manage large distribution lists by creating hierarchical - group structures that represent your organization’s hierarchy. - -**See Also** - -- [Group Management](/docs/directorymanager/11.0/welcome/group/overview.md) -- [Create Active Directory Groups](/docs/directorymanager/11.0/welcome/group/create/group/group.md) -- [Create Microsoft Entra ID Groups](/docs/directorymanager/11.0/welcome/group/create/group/group_1.md) -- [Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/dynasty/_category_.json b/docs/directorymanager/11.0/welcome/group/dynasty/_category_.json deleted file mode 100644 index ba1fa4ad6f..0000000000 --- a/docs/directorymanager/11.0/welcome/group/dynasty/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Dynasty", - "position": 20, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/_category_.json b/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/_category_.json deleted file mode 100644 index 5c7410e758..0000000000 --- a/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Create an Active Directory Dynasty", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "createdynasty" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/createdynasty.md b/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/createdynasty.md deleted file mode 100644 index 2df04c4e5c..0000000000 --- a/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/createdynasty.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: "Create an Active Directory Dynasty" -description: "Create an Active Directory Dynasty" -sidebar_position: 10 ---- - -# Create an Active Directory Dynasty - -The GroupID portal provides the following templates for creating Dynasties: - -- **Organizational:** To create a Smart Group for every distinct company, then for each department - within a company, and finally for each title in a department. -- **Geographical:** To create a Smart Group for every distinct country, then for each state within a - country, and finally for each city within a state. -- **Managerial:** To either create separate Smart Groups for the direct reports of each manager or - add all direct reports of the top manager and sub-level managers to a single group. -- **Custom:** To begin with a blank Dynasty and select your own group-by attributes. - -These templates provide pre-defined grouping attributes for creating Dynasty levels. You can define -custom group-by attributes to expand the Dynasty levels to suit your organizational model. You can -also combine an external data source with the templates to provide extended criteria for determining -group membership. - -NOTE: Settings related to Dynasty membership are configured at the identity store level. - -NOTE: Do not move a Dynasty from one domain to another. Child Dynasties would get orphaned and -subsequently deleted. - -NOTE: You cannot create mail-enabled Dynasties of the Office 365 group type in a Microsoft Entra ID -based identity store, since an Office 365 group cannot have groups as its members. Only non -mail-enabled Dynasties of the security group type are supported. - -Naming conventions for Child Dynasties - -Dynasty names help you group a parent Dynasty with its respective child Dynasties. - -- For an Organizational/Geographical/Custom Dynasty: - - The name of a child Dynasty starts with the name of its parent Dynasty (unless you change the - naming template for Dynasty children). - -- For a Managerial Dynasty: - - By default, the naming template for its child Dynasties starts with "Direct reports of - ``". - -To modify the display name template for child Dynasties, see -[Modify alias and display name templates](/docs/directorymanager/11.0/welcome/group/workingwithgroups/dynastyfunction.md#modify-alias-and-display-name-templates). - -NOTE: In the Dynasty creation/update process, a child Dynasty will not be created if it bears the -same name as that of an existing object in the directory. For example, when you create a custom -Dynasty, test1, on one attribute, SamAccountName, it’s child Dynasties would be named as -test1-Robert, test1-John, and so on. However, if test1-Robert already exists as a user object, -GroupID will skip the test1-Robert child Dynasty and continue to create the rest of the Dynasty. - -What do you want to do? - -- [Create a Dynasty using the Organizational/Geographical/Custom template](#create-a-dynasty-using-the-organizationalgeographicalcustom-template) -- [Create a Dynasty using the Managerial template](#create-a-dynasty-using-the-managerial-template) - -## Create a Dynasty using the Organizational/Geographical/Custom template - -1. In the GroupID portal, click the **Create New** button in the left pane and select **Group**. - - The **Create Group** wizard opens to the **Group Type** page. - - NOTE: Pages and fields on the wizard may vary, since the administrator can customize the wizard - by adding or removing pages and fields. - -2. On the [Group Type page](/docs/directorymanager/11.0/welcome/group/create/grouptype.md), - select the **Organizational Dynasty**, **Geographical Dynasty**, or **Custom Dynasty** option - button and click **Next**. -3. On the - [General page](/docs/directorymanager/11.0/welcome/group/create/group/general.md), - specify basic information about the Dynasty. -4. On the - [Dynasty Options page](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsorggeocus.md), - view or change the attributes in the **Attributes** area and click **Next**. - - Dynasties create Smart Groups for each distinct value of each listed attribute. Depending on the - Dynasty template selected, the **Attributes** area displays the list of default attributes for - the template; however, you can add and remove attributes. For the Custom template, no attribute - is displayed. - -5. The [Query Designer](/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md) - page displays the default query that GroupID will use to determine the Dynasty membership. The - default query returns all users with Exchange mailboxes, along with users and contacts with - external email addresses, which are then grouped by the specified group-by attributes. - - Review the query for selecting the group members, then click **Next**. - - For details, see the - [ Smart Group page](/docs/directorymanager/11.0/welcome/group/create/group/smartgroup.md). - -6. On the - [Owners page](/docs/directorymanager/11.0/welcome/group/create/group/owners.md), - specify primary and additional owners for the Dynasty. - - NOTE: (1) Additional owners are only set for the parent and are not inherited by child Dynasties - during update. - (2) When a Smart Group Update job runs on a group, the notification behavior is as follows: - Even when the **Do not Notify** check box is selected, the additional owner will receive the - notifications if the administrator has included its email address for job-specific - notifications. - -7. On the - [Summary Page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md), - review the settings and then click Finish to complete the wizard. - -## Create a Dynasty using the Managerial template - -1. In the GroupID portal, click the **Create New** button in the left pane and select **Group**. - - The **Create Group** wizard opens to the **Group Type** page. - - NOTE: Pages and fields on the wizard may vary, since the administrator can customize the wizard - by adding or removing pages and fields. - -2. On the [Group Type page](/docs/directorymanager/11.0/welcome/group/create/grouptype.md), - select the **Managerial Dynasty** option button and click **Next**. -3. On the - [General page](/docs/directorymanager/11.0/welcome/group/create/group/general.md), - specify basic information about the Dynasty. -4. On the - [Dynasty Options page (Managerial Dynasty)](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsmanagerial.md), - specify a structure for the Dynasty and click **Next**. - - By default, GroupID constructs a managerial Dynasty structure by first creating a Smart Group - for all direct reports of the selected top-level manager and then continues down the Dynasty - structure, creating separate Smart Groups for the direct reports to each sub-level manager. - However, you can choose to create a single Smart Group for the direct reports of all levels of - managers rather than creating separate groups. - -5. The [Query Designer](/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md) - page displays the default query that GroupID will use to determine the Dynasty membership. This - query returns all users with Exchange mailboxes, along with users and contacts with external - email addresses, which are then grouped as per the managerial Dynasty structure. - - Review the query for selecting the group members, then click **Next.** - - For details, see the - [ Smart Group page](/docs/directorymanager/11.0/welcome/group/create/group/smartgroup.md). - -6. On the - [Owners page](/docs/directorymanager/11.0/welcome/group/create/group/owners.md), - specify primary and additional owners for the Dynasty. - - NOTE: (1) Additional owners are only set for the parent and are not inherited by child Dynasties - during update. - (2) When a Smart Group Update job runs on a group, the notification behavior is as follows: - Even when the **Do not Notify** check box is selected, the additional owner will receive the - notifications if the administrator has included its email address for job-specific - notifications. - (3) If you have selected the **Set Manager as owner** option on the **Dynasty Options** page, - the top manager would be displayed as the primary owner instead of the logged-in user. - In case you change the owner, the new recipient would be the Dynasty’s primary owner even if - the **Set Manager as owner** check box is selected. - -7. On the - [Summary Page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md), - review the settings and then click Finish to complete the wizard. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/createdynasty_1.md b/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/createdynasty_1.md deleted file mode 100644 index ce7053eaa4..0000000000 --- a/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/createdynasty_1.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: "Create a Microsoft Entra ID Dynasty" -description: "Create a Microsoft Entra ID Dynasty" -sidebar_position: 20 ---- - -# Create a Microsoft Entra ID Dynasty - -The GroupID portal provides the following templates for creating Dynasties: - -- **Organizational:** To create a Smart Group for every distinct company, then for each department - within a company, and finally for each title in a department. -- **Geographical:** To create a Smart Group for every distinct country, then for each state within a - country, and finally for each city within a state. -- **Managerial:** To either create separate Smart Groups for the direct reports of each manager or - add all direct reports of the top manager and sub-level managers to a single group. -- **Custom:** To begin with a blank Dynasty and select your own group-by attributes. - -These templates provide pre-defined grouping attributes for creating Dynasty levels. You can define -custom group-by attributes to expand the Dynasty levels to suit your organizational model. You can -also combine an external data source with the templates to provide extended criteria for determining -group membership. - -NOTE: Settings related to Dynasty membership are configured at the identity store level. - -NOTE: Do not move a Dynasty from one domain to another. Child Dynasties would get orphaned and -subsequently deleted. - -NOTE: You cannot create mail-enabled Dynasties of the Office 365 group type in a Microsoft Entra -IDbased identity store, since an Office 365 group cannot have groups as its members. Only non -mail-enabled Dynasties of the security group type are supported. - -**Naming conventions for Child Dynasties** - -Dynasty names help you group a parent Dynasty with its respective child Dynasties. - -- For an Organizational/Geographical/Custom Dynasty: - - The name of a child Dynasty starts with the name of its parent Dynasty (unless you change the - naming template for Dynasty children). - -- For a Managerial Dynasty: - - By default, the naming template for its child Dynasties starts with "Direct reports of - ``". - -To modify the display name template for child Dynasties, see -[Modify alias and display name templates](/docs/directorymanager/11.0/welcome/group/workingwithgroups/dynastyfunction.md#modify-alias-and-display-name-templates). - -NOTE: In the Dynasty creation/update process, a child Dynasty will not be created if it bears the -same name as that of an existing object in the directory. For example, when you create a custom -Dynasty, test1, on one attribute, SamAccountName, it’s child Dynasties would be named as -test1-Robert, test1-John, and so on. However, if test1-Robert already exists as a user object, -GroupID will skip the test1-Robert child Dynasty and continue to create the rest of the Dynasty. - -What do you want to do? - -- [Create a Dynasty using the Organization/Geographical/Custom template](#create-a-dynasty-using-the-organizationgeographicalcustom-template) -- [Create a Dynasty using the Managerial template](#create-a-dynasty-using-the-managerial-template) - -## Create a Dynasty using the Organization/Geographical/Custom template - -1. In the GroupID portal, click the **Create New** button in the left pane and select **Group**. - - The **Create Group** wizard opens to the **Group Type** page. - - NOTE: Pages and fields on the wizard may vary, since the administrator can customize the wizard - by adding or removing pages and fields. - -2. On the [Group Type page](/docs/directorymanager/11.0/welcome/group/create/grouptype.md), - select the **Organizational Dynasty**, **Geographical Dynasty**, or **Custom Dynasty** option - button and click **Next**. -3. On the - [General - Microsoft Entra ID](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/general.md)page, - specify basic information about the Dynasty. -4. On the - [Dynasty Options page](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsorggeocus.md), - view or change the attributes in the **Attributes** area and click **Next**. - - Dynasties create Smart Groups for each distinct value of each listed attribute. Depending on the - Dynasty template selected, the **Attributes** area displays the list of default attributes for - the template; however, you can add and remove attributes. For the Custom template, no attribute - is displayed. - -5. The [Query Designer](/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md) - page displays the default query that GroupID will use to determine the Dynasty membership. The - default query returns all users with Exchange mailboxes, along with users and contacts with - external email addresses, which are then grouped by the specified group-by attributes. - - Review the query for selecting the group members, then click **Next**. - - For details, see the - [ Smart Group page](/docs/directorymanager/11.0/welcome/group/create/group/smartgroup.md). - -6. On the - [Owners page](/docs/directorymanager/11.0/welcome/group/create/group/owners.md), - specify primary and additional owners for the Dynasty. - - NOTE: (1) Additional owners are only set for the parent and are not inherited by child Dynasties - during update. - (2) When a Smart Group Update job runs on a group, the notification behavior is as follows: - Even when the **Do not Notify** check box is selected, the additional owner will receive the - notifications if the administrator has included its email address for job-specific - notifications. - -7. On the - [Summary Page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md), - review the settings and then click **Finish** to complete the wizard. - -## Create a Dynasty using the Managerial template - -1. In the GroupID portal, click the **Create New** button in the left pane and select **Group**. - - The **Create Group** wizard opens to the **Group Type** page. - - NOTE: Pages and fields on the wizard may vary, since the administrator can customize the wizard - by adding or removing pages and fields. - -2. On the [Group Type page](/docs/directorymanager/11.0/welcome/group/create/grouptype.md), - select the **Managerial Dynasty** option button and click **Next**. -3. On the - [General - Microsoft Entra ID](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/general.md)page, - specify basic information about the Dynasty. -4. On the - [Dynasty Options page (Managerial Dynasty)](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsmanagerial.md), - specify a structure for the Dynasty and click **Next**. - - By default, GroupID constructs a managerial Dynasty structure by first creating a Smart Group - for all direct reports of the selected top-level manager and then continues down the Dynasty - structure, creating separate Smart Groups for the direct reports to each sub-level manager. - However, you can choose to create a single Smart Group for the direct reports of all levels of - managers rather than creating separate groups. - -5. The [Query Designer](/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md) - page displays the default query that GroupID will use to determine the Dynasty membership. This - query returns all users with Exchange mailboxes, along with users and contacts with external - email addresses, which are then grouped as per the managerial Dynasty structure. - - Review the query for selecting the group members, then click **Next**. - - For details, see the - [ Smart Group page](/docs/directorymanager/11.0/welcome/group/create/group/smartgroup.md). - -6. On the - [Owners page](/docs/directorymanager/11.0/welcome/group/create/group/owners.md), - specify primary and additional owners for the Dynasty. - - NOTE: (1) Additional owners are only set for the parent and are not inherited by child Dynasties - during update. - (2) When a Smart Group Update job runs on a group, the notification behavior is as follows: - Even when the **Do not Notify** check box is selected, the additional owner will receive the - notifications if the administrator has included its email address for job-specific - notifications. - (3) If you have selected the **Set Manager as owner** option on the **Dynasty Options** page, - the top manager would be displayed as the primary owner instead of the logged-in user. - In case you change the owner, the new recipient would be the Dynasty’s primary owner even if - the **Set Manager as owner** check box is selected. - -7. On the - [Summary Page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md), - review the settings and then click Finish to complete the wizard. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsmanagerial.md b/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsmanagerial.md deleted file mode 100644 index 86e8593460..0000000000 --- a/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsmanagerial.md +++ /dev/null @@ -1,238 +0,0 @@ ---- -title: "Dynasty Options page (Managerial Dynasty)" -description: "Dynasty Options page (Managerial Dynasty)" -sidebar_position: 10 ---- - -# Dynasty Options page (Managerial Dynasty) - -On the **Dynasty Options** page, select whether you want to create separate Smart Groups for the -direct reports of the top manager and sub-level managers, or add all direct reports of the top -manager and sub-level managers as members of a single group. In any case, you must specify a top -manager to work as the starting point for the Dynasty. - -On the Dynasty Options page: - -1. Use the **Top Manager** field to specify the top-level manager, and thus, the start location for - the Dynasty. - - Click the ellipsis button and use the - [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) to select a top - manager. - -2. Select an option from **Dynasty Type** to specify the type of managerial Dynasty you want to - create. - - - **Managerial List** - - Construct a managerial Dynasty structure by first creating a Smart Group containing all - direct reports of the top-level manager as members, then creating separate Smart Groups for - the direct reports (with their respective direct reports as members). This Dynasty structure - continues till a Smart Group is created for all managers and sub-managers with their - respective direct reports as members. - - **Example:** - - Take the following data set: - - - Paul is the top manager with three direct reports: Sam, Eric and Don. - - Sam has two direct reports, Peter and Sean. - - Eric has no direct report. - - Don has three direct reports: Ashley, Jason and Tanya. - - Jason has a direct report, April. - - GroupID would create a Dynasty with the following child groups: - - - Direct reports of Paul - - Members: Sam, Eric, Don - - - Direct reports of Sam - - Members: Peter, Sean - - - Direct reports of Don - - Members: Ashley, Jason, Tanya - - - Direct reports of Jason - - Members: April - - - **Flat Managerial List** - - A flat managerial list is one in which all direct reports of the top manager and sub-level - managers are added as members of a single group; no separate groups are created for - different levels of managers. - - Referring the data set used for a Managerial List, a flat managerial list would consist of - one Smart Group for Paul, with all users as members. - - On selecting this option button, some options on this page get disabled since they do not - apply to a flat managerial list. - - - **Recursive Flat Managerial List** - - Use a recursive flat managerial list to create a Smart Group for each manager and - sub-manager. For members, each group would contain the respective manager’s direct reports, - the direct reports of those direct reports, thus continuing till the nth level. - - Referring to the data set used for a Managerial List, the following child groups will be - created: - - - Direct reports of Paul - - Members: Sam, Eric, Don, Peter, Sean, Ashley, Jason, Tanya, April - - - Direct reports of Sam - - Members: Peter, Sean - - - Direct reports of Don - - Members: Ashley, Jason, Tanya, April - - - Direct reports of Jason - - Members: April - - On the - [Query Designer](/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md) - page, you can also specify a criterion to filter the managers for whom you want to create - child groups in the Dynasty. - -3. Select the **Include manager as member** check box to include the manager as a member of their - group along with their direct reports, while creating groups for the managerial structure. With - this check box selected, the manager receives a copy of any email sent to the direct reports - group. - - By default, this check box is not selected, indicating that the manager of each level of direct - reports is not included in their respective group. - -4. Select the **Set Manager as owner** check box to set the top manager as the primary owner of the - parent Dynasty. - - On the **Owners** page of the wizard, the top manager would be displayed as the primary owner. - If you change it, the new recipient would be the owner, even with the **Set manager as owner** - check box selected. - - In case the Dynasty is not a flat managerial Dynasty, the manager of each child Dynasty will be - set as its respective owner. - -5. For a hierarchical managerial Dynasty, by default, the Dynasty structure adds a sub-level - manager’s Smart Groups in the membership of the top-level manager’s Smart Groups. Select the - **Exclude nested lists of direct reports** check box to exclude them from the membership. -6. Specify a container for creating child groups. Options are: - - - **Create groups in same container as manager**: to create groups in the container the - top-level manager resides in. - - **Create groups in this container**: to specify a container or organizational unit for the - child groups to be created in. Click **Browse** next to the **Child Dynasty Container** box to - specify a container. - -7. You can create a managerial Dynasty based on any attribute. - - Use the **Attributes** area to set a custom attribute, such as the XAdditonalManager attribute, - to create a managerial lineage in the context of this attribute. - - By default, the ‘Manager’ attribute is selected to create a managerial lineage. This attribute - involves the collaboration of two attributes: manager and direct reports, to create the - Dynasty’s hierarchical structure. - - Some examples of a managerial Dynasty with a different set of attributes are give below: - - - To add another attribute, click **Add** and select the required attribute. - - To remove an attribute, select it and click **Remove**. - - To replace an attribute, select it and click **Edit**. Select another attribute as a - replacement and click **OK**. - - Specify the ‘XadditionalManager’ attribute in addition to the ‘Manager’ attribute to create a - managerial lineage - - Here ‘Manager’ is the primary attribute to create the managerial lineage.) - - You select a top manager to create the Dynasty. The managerial hierarchy for this manager in - a provider (such as Active Directory) is as follows: - - Top manager: Alan - - Alan is the manager of John, Jane, and Josephine - - John is the manager of Mark and Martin - - Mark is the manager of Sophia and Martin is the manager of Sarah - - John is also the additional manager of Sophia and Sarah - - When the Dynasty is updated: - - - ‘TestManagerial1’ is the parent Dynasty with child Dynasties such as: - - - Direct reports of John - - Direct reports of Mark - - Direct reports of Martin - - Direct reports of Sophia - - (This child Dynasty will be a part of the Direct reports of John and Direct reports - of Mark, since John is the additional manager and Mark is the primary manager.) - - - Direct reports of Sarah - - (This child Dynasty will be a part of the Direct reports of Martin.) - - If no user is set as additional manager, no child Dynasty will be created with the - additional manager attribute. - - - Specify a single attribute, ‘XadditionalManager’ - - Suppose the managerial hierarchy for the top manager in a provider (such as Active - Directory) is as follows: - - Top manager: Alan - - Alan is the additional manager of John, Jane, and Josephine - - John is the additional manager of Mark and Martin - - Mark is the additional manager of Sophia and Martin is the additional manager of Sarah - - When the Dynasty is updated: - - - ‘TestManagerial1’ is the parent Dynasty with child Dynasties such as: - - Direct reports of John - - Direct reports of Mark - - Direct reports of Martin - - When Alan is not the additional manager of any user, the parent Dynasty would be created - without any child Dynasties. - - - Specify a custom attribute, ‘customattribute1’ - - Let’s take employeeID as the custom attribute. Data will be as: - - Top manager: Alan with EmployeeId 1 - - John (EmpID: 2, CA: 1); Jane (EmpID: 3, CA: 1); Josephine (EmpID: 4, CA: 1) - - Mark (EmpID: 5, CA: 2); Martin (EmpID: 6, CA: 2) - - Sophia (EmpID: 7, CA: 5); Sarah (EmpID: 8, CA: 6) - - When the Dynasty is updated: - - - ‘TestManagerial1’ is the parent Dynasty with child Dynasties such as: - - - Direct reports of John (having Mark and Martin) - - Direct reports of Mark (having Sophia) - - Direct reports of Martin (having Sarah) - - - Specify multiple attributes – ‘Manager’, ‘XadditionalManager’ and ‘customattribute1’ - - Direct reports for users created with respect to additional manager and custom attribute 1 - are added in their respective managers and additional managers according to the custom - attribute 1 data. - -8. Click **Next**. - -**See Also** - -- [Create an Active Directory Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/createdynasty.md) diff --git a/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsorggeocus.md b/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsorggeocus.md deleted file mode 100644 index 90b82e36e1..0000000000 --- a/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsorggeocus.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: "Dynasty Options page" -description: "Dynasty Options page" -sidebar_position: 20 ---- - -# Dynasty Options page - -Dynasties create Smart Groups for each distinct value of each attribute listed in the **Attributes** -area. Depending on the Dynasty template selected, the **Attributes** area displays the default -attributes for the template; however, you can add and remove attributes. For the Custom template, no -attribute is displayed. - -For example, if you specify the Country, State, and City attributes, GroupID creates a group for -every distinct country value, then for each state within a country, and finally for each city in a -state. - -- Click **Add** to specify an attribute. -- Click **Edit** to edit the selected attribute options. -- Click **Remove** to remove the selected attribute. - -**On the Dynasty Options page:** - -1. (Optional) Click **Add** to add more attributes to those shown in the **Attributes** list. - - The **Add Attributes** dialog box is displayed. - - This filter is used to strip out values from Dynasties by allowing you to collapse several - values into one. - - An example is populating the Office field with the building/office number, thus conveniently - storing two items of related data in the same field. Now, suppose you need a distribution list - for each building. If the building name was in its own field (custom attribute 1), you could - create a Dynasty that groups by the custom attribute 1 field and GroupID would then create a - group for each building value. - - Attribute value: - - Custom Attribute 1 = MacArthur Plaza - - Sample groups created by GroupID: - - Everyone in MacArthur Plaza - - However, if you were to create a Dynasty that groups by the Office field (which contains both - the building name and office number), GroupID will create a group for each distinct - building/office value. This strategy gives you a group for every office number, rather than for - each building. - - Attribute value: - - Office = MacArthur Plaza/1256C - - Sample groups created by GroupID: - - Everyone in MacArthur Plaza/1256C - - The filter option solves this problem by enabling you to filter out unwanted permutations of - values. - -1. In the **Group items by** list, type or select the field to use for expanding the Dynasty. - - GroupID creates a child group for each unique value of this field. - -1. The **Child container** box displays the container where new child groups will be created. If - this setting is blank, GroupID creates child groups in the same container as the parent Dynasty. - - To change the container, click **Browse** and select a new container. - -1. From the **Filter** drop-down list, select an additional group-by filter for greater control over - the values used to create children. - - - **None**: Do not apply any filter. Simply create a group for each distinct value of the - attribute selected in the **Group items by** list. For example, distinct values for the - ‘department’ attribute might be _Engineering_, _Marketing_, and _Finance_. - - **Left**: Select a portion of the group-by attribute starting from the left for the number of - characters specified in the **Value** box, and create a group for each distinct value of the - portion of the attribute selected. - - **Right**: Select a portion of the group-by attribute, starting from the right for the number - of characters specified in the **Value** box, and create a group for each distinct value of - the portion of the attribute selected. - - **Regular Expression**: A group is created for each distinct value of the regular expression - specified in the **Value** box. - -1. Each group-by level can have a separator. In the **Separator** box, enter a separator character - to use in both the display name and alias of child groups to separate the group-by values. -1. Click **OK** to close the **Add Attributes** dialog box. - -1. Click **Next**. - -**See Also** - -- [Create an Active Directory Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/createdynasty.md) diff --git a/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/general.md b/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/general.md deleted file mode 100644 index 027f57704d..0000000000 --- a/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/general.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "General - Microsoft Entra ID" -description: "General - Microsoft Entra ID" -sidebar_position: 10 ---- - -# General - Microsoft Entra ID - -Use this page to specify basic information about the group. - -1. Click **Browse** next to the **Container** box to select or create the container or - organizational unit to create the group in and click **OK**. - - If you want to create a container, click **Create** and then add container to create the group - in. Click **Refresh** to remove the changes. - - This field will be read-only if the administrator has predefined a container for creating new - groups. - -2. In the **Group Name** box, provide a name for the group by selecting a prefix and then entering a - name for the group. - - NOTE: The prefix box is displayed if the administrator has defined the prefixes. See the - [Set Group Name Prefixes](/docs/directorymanager/11.0/signin/identitystore/configure/prefixes.md) - topic. - These prefixes, when appended to group names, help standardize the group naming convention - across the enterprise. - -3. In the **Security** list, select a security type for the group. -4. Set the group type by selecting an option for **Group Type**. - - - **Security** - this group will be used for securing public folders, printers and other network - resources. - - **Distribution** - this group will only be used for email distribution. - - **Teams** - this groups is used for manage Microsoft Teams and their associated channels. - - **Microsoft 365** - this group will be used to select a set of people to collaborate and use a - collection of resources. - - NOTE: If the administrator has predefined a group type, you cannot change it. - -5. Enter a description for the group in the **Description** box. -6. Click **Next**. - -**See Also** - -- [Create a Microsoft Entra ID Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/createdynasty_1.md) diff --git a/docs/directorymanager/11.0/welcome/group/dynasty/overview.md b/docs/directorymanager/11.0/welcome/group/dynasty/overview.md deleted file mode 100644 index e669789682..0000000000 --- a/docs/directorymanager/11.0/welcome/group/dynasty/overview.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: "Dynasty" -description: "Dynasty" -sidebar_position: 20 ---- - -# Dynasty - -A Dynasty is a Smart Group that creates and manages other Smart Groups using information in the -directory. Dynasties help you manage large distribution lists by creating hierarchical group -structures that represent your organization. The Smart Groups that the Dynasty creates are called -child groups and become members of their respective parent Dynasty. - -A Dynasty retrieves data from the directory on the same pattern as a Smart Group does, but it has -its own mechanism of dividing the query results into child groups. - -## The group-by field determines child groups - -When you create a Dynasty, you specify a query and a field, referred to as the _group-by_ field. The -group-by field is used to divide the query results into groups. - -For example, if you set ‘department’ as the group-by field, then each distinct value for the -‘department’ field is returned, for instance, Sales, Marketing, and Human Resources. Thus, a Dynasty -with the group-by field set to ‘department’ creates child groups for each distinct value: Sales, -Marketing, and Human Resources. - -## Built-in updates - -GroupID keeps the Dynasty active in two ways: - -- By adding new child groups as new values are returned for the group-by field. -- By removing existing child groups as previous values of the group-by field no longer exist in the - directory. - -Thus, as new values of the ‘department’ field appear, new groups are created, and as old values -disappear, the corresponding child groups are deleted. - -The same process occurs with the membership of each child group. When a user’s department changes -from Sales to Marketing, for example, the user is removed from the Sales child group and added to -the Marketing child group. - -## The child-parent relationship - -Dynasty children inherit their parent's characteristics and properties, such as group type, group -security, expiry policy, owner, delivery restrictions, message size restrictions and more. -Inheritance saves administrators incalculable time through the systematic application of pre-defined -properties to new groups. - -You can modify the values of all inherited attributes for a child, except the expiry policy. Child -Dynasties always inherit the expiry policy from the parent Dynasty and it can only be modified at -the parent level. - -Depending on the inheritance option selected for the parent Dynasty on the -[Group properties - Dynasty Options tab](/docs/directorymanager/11.0/welcome/group/properties/dynastyoptions.md) -in group properties, the modified values of inherited attributes may or may not persist. - -## Multi-level Structure - -Dynasties have a multi-level structure. For example, you can create a Dynasty that groups first by -country, then state, and then city. When updated, the Dynasty creates a group for every country, -then it creates a group for every state in a country, and finally it creates a group for each city -within each state. Thus, each user in the organization belongs to a country group, a state group, -and a city group, and as the groups are updated through their multi-level structure, you do not need -to worry that they will go out-of-date. - -Dynasties come in handy for creating and maintaining large dynamic distribution lists in your -organization. - -**See Also** - -- [Group Management](/docs/directorymanager/11.0/welcome/group/overview.md) -- [Create an Active Directory Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/createdynasty.md) -- [Create a Microsoft Entra ID Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/createdynasty_1.md) -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/mygroups/_category_.json b/docs/directorymanager/11.0/welcome/group/mygroups/_category_.json deleted file mode 100644 index 314ee5b98d..0000000000 --- a/docs/directorymanager/11.0/welcome/group/mygroups/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "My Groups", - "position": 50, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "mygroups" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/group/mygroups/mydeletedgroups.md b/docs/directorymanager/11.0/welcome/group/mygroups/mydeletedgroups.md deleted file mode 100644 index 2b63e9586f..0000000000 --- a/docs/directorymanager/11.0/welcome/group/mygroups/mydeletedgroups.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "My Deleted Groups" -description: "My Deleted Groups" -sidebar_position: 40 ---- - -# My Deleted Groups - -To view a list of deleted groups, click **Groups** on the left navigation pane and select **My -Groups**. On the My Groups page, click the **My Deleted Groups** tab. - -The **My Deleted Groups** tab lists the deleted groups that you are the primary owner for. To -include the groups for which you are an additional owner, select the **Display additional group -ownership in My Deleted Groups** check box on the -[Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) panel. - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search deleted groups and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups)by -clicking **My Deleted Groups Grid Filters**. All your deleted groups matching the filters will be -displayed. - -**See Also** - -- [My Groups](/docs/directorymanager/11.0/welcome/group/mygroups/mygroups.md) -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [ Group Deletion](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupdeletion.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) diff --git a/docs/directorymanager/11.0/welcome/group/mygroups/mydynasties.md b/docs/directorymanager/11.0/welcome/group/mygroups/mydynasties.md deleted file mode 100644 index b0fa0b9e47..0000000000 --- a/docs/directorymanager/11.0/welcome/group/mygroups/mydynasties.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "My Dynasties" -description: "My Dynasties" -sidebar_position: 60 ---- - -# My Dynasties - -This page lists the Dynasties you are the primary owner of. To include the groups for which you are -an additional owner, select the **Display additional group ownership in My Dynasties** check box on -the [Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) panel. - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search dynasties and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups)by -clicking **My Dynasties Grid Filters**. All the dynasties matching the filters will be displayed. - -**See Also** - -- [My Groups](/docs/directorymanager/11.0/welcome/group/mygroups/mygroups.md) -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Group Expiry](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md) -- [Join/Leave a Group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md) -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) diff --git a/docs/directorymanager/11.0/welcome/group/mygroups/myexpiredgroups.md b/docs/directorymanager/11.0/welcome/group/mygroups/myexpiredgroups.md deleted file mode 100644 index 833662970a..0000000000 --- a/docs/directorymanager/11.0/welcome/group/mygroups/myexpiredgroups.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "My Expired Groups" -description: "My Expired Groups" -sidebar_position: 20 ---- - -# My Expired Groups - -To view a list of your expired groups in the identity store, click **Groups** on the left navigation -pane and select **My Groups**. On the My Groups page, click the **My Expired Groups** tab. - -The following events occur when a group expires: - -- The group becomes inactive and is locked for all activities. -- "EXPIRED_" is added as a prefix to the group name. -- A mail-enabled distribution group is mail-disabled, which means that any emails sent to the group - are bounced back with an expiry message. -- For an Office 365 group, its member list is backed up in the database and cleared from Office 365. -- For a security group, its member list is cleared and any permissions set for that group no longer - apply. However GroupID keeps a backup of its membership in the database. - -All groups that are expired by the Group Lifecycle job are available on the **My Expired Groups** -page. Moreover, when you manually expire a group that has an expiry policy other than ‘Never -expire’, it is also moved to this page. - -The Group Lifecycle job is responsible for logically deleting expired groups, but you can also -physically delete a group. See -[ Group Deletion](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupdeletion.md). - -By default, the **My Expired Groups** tab lists the groups that you are the primary owner for. To -include the groups for which you are an additional owner, select the **Display additional group -ownership in My Expired Groups** check box on the -[Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) panel. - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search expired groups and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups)by -clicking **My Expired Group Grid Filters**. All the expired groups matching the filters will be -displayed. - -**See Also** - -- [My Groups](/docs/directorymanager/11.0/welcome/group/mygroups/mygroups.md) -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Group Expiry](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md) -- [ Group Deletion](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupdeletion.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) diff --git a/docs/directorymanager/11.0/welcome/group/mygroups/myexpiringgroups.md b/docs/directorymanager/11.0/welcome/group/mygroups/myexpiringgroups.md deleted file mode 100644 index 7579fa2842..0000000000 --- a/docs/directorymanager/11.0/welcome/group/mygroups/myexpiringgroups.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: "My Expiring Groups" -description: "My Expiring Groups" -sidebar_position: 30 ---- - -# My Expiring Groups - -To view a list of your expiring groups, click **Groups** on the left navigation pane and select **My -Groups**. On the My Groups page, click the **My Expiring Groups** tab. - -Groups that will expire in 30 days or less are considered as expiring groups. The expiry date is -calculated from a group’s expiry policy. The Group Life Cycle job is responsible for expiring these -groups on their respective expiry dates; however, you can also manually expire a group before it -reaches the expiry date. - -By default, the tab lists the groups that you are the primary owner for. To include the groups for -which you are an additional owner, select the **Display additional group ownership in My Expiring -Groups** check box on the -[Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) panel. - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search expiring groups and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups)by -clicking **My Expiring Group Grid Filters**. All the expiring groups matching the filters will be -displayed. - -**See Also** - -- [My Groups](/docs/directorymanager/11.0/welcome/group/mygroups/mygroups.md) -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Group Expiry](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md) -- [ Group Deletion](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupdeletion.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) diff --git a/docs/directorymanager/11.0/welcome/group/mygroups/mygroups.md b/docs/directorymanager/11.0/welcome/group/mygroups/mygroups.md deleted file mode 100644 index faf148a2e6..0000000000 --- a/docs/directorymanager/11.0/welcome/group/mygroups/mygroups.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: "My Groups" -description: "My Groups" -sidebar_position: 50 ---- - -# My Groups - -To view and manage the groups that you own in the identity store, click **Groups** on the left -navigation pane and select **My Groups**. This page lists all your active groups: - -- [My Memberships](/docs/directorymanager/11.0/welcome/group/mygroups/mymemberships.md) -- [My Expired Groups](/docs/directorymanager/11.0/welcome/group/mygroups/myexpiredgroups.md) -- [My Expiring Groups](/docs/directorymanager/11.0/welcome/group/mygroups/myexpiringgroups.md) -- [My Deleted Groups](/docs/directorymanager/11.0/welcome/group/mygroups/mydeletedgroups.md) -- [My Smart Groups](/docs/directorymanager/11.0/welcome/group/mygroups/mysmartgroups.md) -- [My Dynasties](/docs/directorymanager/11.0/welcome/group/mygroups/mydynasties.md) -- [My Teams](/docs/directorymanager/11.0/welcome/group/mygroups/myteams.md) (for Microsoft Entra ID - based identity store) - -By default, the **My Groups** tab displays the groups that you are the primary owner for. To include -the groups for which you are an additional owner, select the **Display additional group ownership in -My Groups** check box on the -[Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) panel. This tab -lists active groups only; expired and deleted groups are not displayed. - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search your groups and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups)by -clicking **My Groups Grid Filters**. All your groups matching the filters will be displayed. - -**You can:** - -- Manually update the membership of a Smart Group using the **Update** command. You can also view - update details on **Processing Object (s)** wizard. Click **OK** once done. If you click - **Background**, the update runs in the background and will show in the **Background Tasks** tab. -- View and modify the - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) of a - group. -- Manually expire your groups. After expiring the group, it will be listed in **My Expired Groups** - list. -- Select a smart group and click **Renew** on the toolbar; this re-applies the expiry policy of the - group starting from today, thus renewing the group. -- Join a group as a - [Join a group temporarily](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#join-a-group-temporarily) - or - [Join a group permanently](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#join-a-group-permanently) -- Leave a group’s membership - [Leave a group temporarily](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#leave-a-group-temporarily) - or - [Leave a group permanently](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#leave-a-group-permanently). -- Join / leave a group - [Join or leave a group on behalf of a direct report or peer](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#join-or-leave-a-group-on-behalf-of-a-direct-report-or-peer)a - direct report or peer. -- To Join/Leave the group, you can also click on **Want to write reason to group owner?** and state - the the reason for joining or leaving the group for the group owner. -- Update the security type of your group using **Set Security Type** option. You can select one of - the following security types: - - - Public - - Semi Private - - Private - -- Select a group and click **Move Group** from the toolbar. You can specify a new container from - **Select Container** box where you want to move the group. -- Select a group and click **Add to Contacts** on the toolbar to add a group’s email to your email - contact list using the vCard. The portal creates the group's vCard and prompts you to save it on - your machine. You can then use it to add the group's email address to your email contact list. -- Click **Add to Group** to add the group into the membership of another group - ([Add a group to the membership of another group (nesting)](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupmembershipfunction.md#add-a-group-to-the-membership-of-another-group-nesting)). -- Select a group and click **Send Email** on the toolbar to send an email to the group. This - launches the default Windows email application for sending an email to group members. -- Click **Export Results** on the toolbar to export the group list to a Microsoft Excel file. -- Update the expiration policy of your group using **Set Expiration Policy** option. -- Update owner for your group using **Set Owner** option. The drop down list displays two options: - - - **Me:** You can set yourself as the Owner - - **Other:** You can select some other user as the owner. - -- Manually - [ Group Deletion](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupdeletion.md) any - of your group. -- Get a list of all groups managed by s particular group (i.e., all groups for which the selected - group is a primary or additional owner) - - Select a group and click **Managed By** on the toolbar to get a list of groups managed by the - selected group. - -- Click **Attest Group** to update smart groups and dynasties, and verify your group's attributes - and memberships. -- In the **Results** box, select the number of search results to display on a page. - -Use the page numbers under the group listing to page through all groups. - -You can control the number of records to be displayed per page by modifying the **Search results per -page** setting on the -[Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) panel. - -## Modify Search Directory - -You can modify the search results in **Modify Search Directory.** You can select entire directory or -a domain to search active groups from. - -## Transfer Ownership - -You can find -[Transfer Ownership](/docs/directorymanager/11.0/welcome/group/transferownership.md) option -on the top right corner. Transfer Ownership enables you to: - -- Assign owners to orphan groups. -- Transfer group ownership (including Exchange 2013/2016/2019 additional ownership) from one - recipient to another. - -## Filter My Groups - -You can add filters in **My Group Grid Filters** while searching for specific groups. - -1. Click **Add Filter** to specify a criterion for filtering groups. -2. From the **Select a Filter** list, select the attribute to filter groups. -3. Two more boxes get displayed next to **Select a Filter** box upon selecting a filter. - - - **Select an Operator** from the first list. - - Specify a value for the selected operator in the second box. - -4. Click **Apply Filter**. - - All your groups that match the specified criterion are displayed. - -5. You can add additional filters by clicking **Add Filter.** -6. To undo the filters, click **Reset Filter.** - - It will remove all the criteria set before. - -**See Also** - -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/mygroups/mymemberships.md b/docs/directorymanager/11.0/welcome/group/mygroups/mymemberships.md deleted file mode 100644 index 5d63c73774..0000000000 --- a/docs/directorymanager/11.0/welcome/group/mygroups/mymemberships.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "My Memberships" -description: "My Memberships" -sidebar_position: 10 ---- - -# My Memberships - -To view the groups that you are a member of, click **Groups** on the left navigation pane and select -**My Groups**. On the My Groups page, click the **My Memberships** tab. - -The **My Memberships** tab lists only active groups that you are a member of; expired and deleted -groups are not displayed. - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search your memberships and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups)by -clicking **My Memberships Grid Filters**. All your memberships matching the filters will be -displayed. - -**See Also** - -- [My Groups](/docs/directorymanager/11.0/welcome/group/mygroups/mygroups.md) -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Group Membership functions](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupmembershipfunction.md) -- [Join/Leave a Group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md) -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) diff --git a/docs/directorymanager/11.0/welcome/group/mygroups/mysmartgroups.md b/docs/directorymanager/11.0/welcome/group/mygroups/mysmartgroups.md deleted file mode 100644 index 92f3711782..0000000000 --- a/docs/directorymanager/11.0/welcome/group/mygroups/mysmartgroups.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "My Smart Groups" -description: "My Smart Groups" -sidebar_position: 50 ---- - -# My Smart Groups - -This page lists only the Smart Groups that you are primary owner of. To include the groups for which -you are an additional owner, select the **Display additional group ownership in My Smart Groups** -check box on the [Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) -panel. - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search your smart groups and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups)by -clicking **Smart Group Grid Filters**. All the smart groups matching the filters will be displayed. - -**See Also** - -- [My Groups](/docs/directorymanager/11.0/welcome/group/mygroups/mygroups.md) -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Group Expiry](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md) -- [Join/Leave a Group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md) -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) diff --git a/docs/directorymanager/11.0/welcome/group/mygroups/myteams.md b/docs/directorymanager/11.0/welcome/group/mygroups/myteams.md deleted file mode 100644 index a5fdc6d7a3..0000000000 --- a/docs/directorymanager/11.0/welcome/group/mygroups/myteams.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "My Teams" -description: "My Teams" -sidebar_position: 70 ---- - -# My Teams - -This page lists all the Microsoft Teams groups that you own. - -You can -[Modify Search Directory](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#modify-search-directory) -to search teams and add -[Filter All Groups](/docs/directorymanager/11.0/welcome/group/allgroups/allgroups.md#filter-all-groups)by -clicking **My Teams Grid Filters**. All the teams matching the filters will be displayed. - -**See Also** - -- [My Groups](/docs/directorymanager/11.0/welcome/group/mygroups/mygroups.md) -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Group Expiry](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md) -- [Join/Leave a Group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md) -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) diff --git a/docs/directorymanager/11.0/welcome/group/overview.md b/docs/directorymanager/11.0/welcome/group/overview.md deleted file mode 100644 index af15f9bdef..0000000000 --- a/docs/directorymanager/11.0/welcome/group/overview.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "Group Management" -description: "Group Management" -sidebar_position: 70 ---- - -# Group Management - -GroupID portal enables you to manage directory groups, that includes both static groups and Smart -Groups. You can: - -- Create static groups, Smart Groups and Dynasties. -- Manage the type, scope, security type, and ownerships of groups. -- Manage group membership dynamically. -- Specify an expiry policy for groups. This policy defines the period for which the group remains - active. When the period is over, the group becomes inactive and is locked for all activities. -- Groups can also be moved between domains within a single forest. - -Examples of directory groups include distribution lists and security groups. - -GroupID portal updates Smart Groups and Dynasties on the basis of user-defined queries. When -directory information changes, GroupID portal automatically updates the appropriate groups, thus -ensuring that groups are never out of date. - -This allows administrators to easily maintain large groups without having to manually add and remove -members. - -NOTE: You must [Sign In](/docs/directorymanager/11.0/welcome/login.md#sign-in) before using -it for group management. - -NOTE: When two identity stores (say, ID1 and ID2) are connected to the same domain (for example, -demo1.com), then objects in demo1.com would have a distinct state in ID1 and ID2. For example, an -object’s state (such as expiry policy, Smart Group criteria, additional owners, etc.) would be -different in both identity stores. - -**See Also** - -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/_category_.json b/docs/directorymanager/11.0/welcome/group/properties/_category_.json deleted file mode 100644 index 395223c37a..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Group Properties", - "position": 90, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/group/properties/advanced.md b/docs/directorymanager/11.0/welcome/group/properties/advanced.md deleted file mode 100644 index 3cac648d17..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/advanced.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "Group properties - Advanced tab" -description: "Group properties - Advanced tab" -sidebar_position: 80 ---- - -# Group properties - Advanced tab - -Use this tab to control the group's visibility in the messaging provider's address book and manage -out-of-office notifications. - -You can also specify non-delivery report (NDR) recipients when this group does not receive a message -sent to it. The non-delivery report lets the recipient know that the message was not delivered. - -**Admin Note** - -Notes from the administrator. - -**OOF Reply to originator** - -Set a mail-enabled group (Group A) to send out-of-office auto-replies to the message originator -(sender), when the group (Group A) receives a message and one or more group members have -out-of-office status. - -NOTE: This setting applies if Microsoft Exchange is configured as the messaging system for the -identity store. - -**Hide membership** - -Indicates whether to hide the membership of mail-enabled groups in the messaging provider's address -book (such as the Outlook address book). - -If selected, the group members will not be visible from within the address book. - -**Delivery Reports** - -Specify non-delivery report (NDR) recipients when a message sent to this group is not delivered. The -non-delivery report lets the recipient know that the message was not delivered. - -Options are: - -- **Report to originator** - The non-delivery report is sent to the sender to inform him or her that - the message was not delivered to the target group. -- **Report to owner** - The non-delivery report is sent to the group owner to inform him or her that - a message sent to the group was not delivered to group members. -- **Do not send delivery report** - Non-delivery reports are not sent to anyone. - -NOTE: Non-delivery reports are sent if an SMTP server is configured for the identity store. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/attributes.md b/docs/directorymanager/11.0/welcome/group/properties/attributes.md deleted file mode 100644 index fa8ab2d55a..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/attributes.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: "Object properties - Attributes tab" -description: "Object properties - Attributes tab" -sidebar_position: 60 ---- - -# Object properties - Attributes tab - -Use this tab to manage custom attributes for this object. These attributes are used to store -additional information about the object. For example, you can use custom attributes to save health -insurance data of a user. - -Attribute 1 - -The value of the custom attribute 1. - -Attribute 2 - -The value of the custom attribute 2. - -Attribute 3 - -The value of the custom attribute 3. - -Attribute 4 - -The value of the custom attribute 4. - -Attribute 5 - -The value of the custom attribute 5. - -Attribute 6 - -The value of the custom attribute 6. - -Attribute 7 - -The value of the custom attribute 7. - -Attribute 8 - -The value of the custom attribute 8. - -Attribute 9 - -The value of the custom attribute 9. - -Attribute 10 - -The value of the custom attribute 10. - -Attribute 11 - -The value of the custom attribute 11. - -Attribute 12 - -The value of the custom attribute 12. - -Attribute 13 - -The value of the custom attribute 13. - -Attribute 14 - -The value of the custom attribute 14. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/channels.md b/docs/directorymanager/11.0/welcome/group/properties/channels.md deleted file mode 100644 index d35832c36c..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/channels.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "Teams Properties - Channels" -description: "Teams Properties - Channels" -sidebar_position: 170 ---- - -# Teams Properties - Channels - -Use this tab to view, add, and remove the channels in a Teams group. - -## Add - -To add channel(s) to the group, click **Add** on the toolbar. It displays the **Add Channel** dialog -box. - -Add the information for the following: - -- **Display Name** - - Assign a display name for the channel that you are adding. - -- **Privacy** - - Select the security for the channel. You can choose one of the following options: - - - **Public:** Does not require any members. It is open to all. - - **Private:** Requires you to add members who will be allowed to view the channel. - -- **Description** - - Provide a description for the channel you are creating. - -- **Members** - - It is displayed only if you select Private from the Privacy drop-down list. - - Click **Add** and enter a search string to locate the user to add as a member, or click - **Advance** to use the - [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing a - search. - - Click **Remove** if you want to remove any member. - -Click **Add** to add the channel to the Teams group. The channel get listed in the **Channels** grid - -## Remove - -Select a channel from the **Channels** list and click **Remove** to remove this channel from the -membership of Teams group. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/deliveryrestrictions.md b/docs/directorymanager/11.0/welcome/group/properties/deliveryrestrictions.md deleted file mode 100644 index c8f1f94c9b..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/deliveryrestrictions.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Group properties - Delivery Restrictions tab" -description: "Group properties - Delivery Restrictions tab" -sidebar_position: 50 ---- - -# Group properties - Delivery Restrictions tab - -Use this tab to apply email restrictions to this group. You can manage the list of objects (users, -contacts, groups) from whom this group can and cannot receive emails. - -By default, no object is added to the **Accept from** and **Reject from** lists, which indicates -that the group can receive emails from any object. However, when you specify an object in the -**Accept from** list, the group will receive emails from that object only. - -**A scenario can be as:** - -If you want the group to receive emails from all except one member (Member A) of a group (Group A), -add Group A to the Accept from list and then add Member A to the Reject from list. - -**Accept from** - -Shows the objects that can send emails to the group. - -**Reject from** - -Shows the objects whose emails will not be delivered to the group. - -**Add** - -To add an object to a list, click **Add** in the respective area. Enter a search string to locate -the required object, or click **Advance** to use the -[Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing a -search. - -**Remove** - -To remove an object from a list, select it and click **Remove** in the respective area. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/dynastyoptions.md b/docs/directorymanager/11.0/welcome/group/properties/dynastyoptions.md deleted file mode 100644 index 7ccbc35f61..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/dynastyoptions.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -title: "Group properties - Dynasty Options tab" -description: "Group properties - Dynasty Options tab" -sidebar_position: 100 ---- - -# Group properties - Dynasty Options tab - -GroupID provides advanced options that you can use to enhance the Dynasty structure and its -membership. You can: - -- Modify the attributes an Organizational/Geographical/Custom Dynasty is build on -- Modify the structure of a managerial Dynasty -- Edit the template used to generate the alias and display names of child groups -- Control the attribute inheritance behavior - -Your changes will be reflected on the next update of the Dynasty. - -NOTE: Advanced Dynasty options are available for Dynasties of the parent and middle level, but not -for the leaf level. - -## For an Organizational/Geographical/Custom Dynasty - -**Alias Template** - -This setting generates the alias names of child groups. **%GROUPBY%** is replaced with the actual -value of the Attributes. - -If Exchange Server is the designated messaging system for the identity store, the alias length is -limited to 64 characters and must be unique to the forest. For other messaging systems, the alias -length must not exceed the number of characters supported by the respective messaging system. - -Also, the alias must not contain characters that are invalid for the configured messaging system. -The following table lists the valid characters the supported messaging systems. - -| Messaging System | Valid Characters | -| -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Exchange Server 2013 Exchange Server 2016 Exchange Server 2019 | - Uppercase letters (A - Z) - Lowercase letters (a - z) - Numeric digits (0 - 9) - Special characters (#, $, %, &, ', \*, +, -, /, =, ?, ^, _, \`, \{, \| , \} or ~). You can use one or more periods in an alias, but each must be preceded and followed by at least one of the other characters | -| All other messaging systems | - Uppercase letters (A - Z) - Lowercase letters (a - z) - Numeric digits (0 - 9) | - -**Display Name Template** - -The template to use to generate the display names of the child groups. **%GROUPBY%** is replaced -with the actual value of the Attributes. - -**Attributes** - -Dynasties create Smart Groups for each distinct value of each attribute listed in the **Attributes** -area. - -You can view and change the attributes for parent and middle Dynasties. - -- Click **Add** to select a new attribute to add a new level to the Dynasty. -- Select an attribute and click **Edit** to modify it. -- Click **Remove** to remove the selected attribute. - -See the -[Dynasty Options page](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsorggeocus.md) -for details. - -**Inheritance** - -Use this setting to specify when Dynasty children inherit attributes. Options are: - -- **Inherit on creation**: Dynasty children will inherit the attributes' values only when the - Dynasty is created. Moreover, whenever a new child group is created, it will inherit the - attributes' values. -- **Always inherit**: Dynasty children will inherit the attributes' values every time the parent - Dynasty is updated. -- **Never inherit**: Dynasty children will never inherit attribute values from the parent. - -The attributes to be inherited are specified at the identity store level. See Dynasty Settings. - -When, for a child Dynasty, you change the value of an inherited attribute, the new value may or may -not persist, depending on the inheritance option selected for the parent Dynasty. Here is an -example: - -Suppose the administrator has set the managedBy attribute for inheritance. - -- With the **Always inherit** option selected for the parent Dynasty, any modifications made to the - value of the managedBy attribute for a child Dynasty will be replaced with the value of the - managedBy attribute set for the parent Dynasty, whenever the Dynasty is updated. -- With the **Never inherit** option selected, any modifications made to the value of the managedBy - attribute for a child Dynasty will persist after update - -## For a Managerial Dynasty - -Top Manager, Include manager as member, Set manager as owner, Create a Flat managerial list, Exclude -nested lists of direct reports, Create groups in same container as manager, Create groups in this -container - -When you create a managerial Dynasty, you specify a Dynasty structure that determines how query -results are grouped. - -For example, you specify whether you want to create a separate Smart Group for the direct reports of -the top manager and sub-level managers, or add all direct reports of the top manager and sub-level -managers as members of a single group. - -You can view and change these structure options for parent and middle Dynasties. For details, see -the -[Dynasty Options page (Managerial Dynasty)](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsmanagerial.md). - -NOTE: (1) If the **Set manager as owner** check box is selected, the **Always inherit** option is -set for Inheritance, and the managedBy attribute is specified for inheritance, the **Set manager as -owner** option takes priority over the managedBy attribute inheritance. Hence, the manager of a -child Dynasty would be set as its respective primary owner. -(2) When you clear the **Set manager as owner** check box, the manager set as the primary owner of a -parent Dynasty will not be removed. However, when the Dynasty is updated, the primary owner of a -child Dynasty may be updated, depending on the Dynasty inheritance options. For example, if the -**Always inherit** option is set for Inheritance and the managedBy attribute is specified for -inheritance, the primary owner of the parent Dynasty would be set as the primary owner for all child -Dynasties, replacing their respective primary owners. - -**Attributes** - -Set a custom attribute to create a managerial lineage in the context of this attribute. - -See the -[Dynasty Options page (Managerial Dynasty)](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsmanagerial.md)for -a discussion on attributes. - -In addition to the scenarios discussed, the following also apply on Dynasty update: - -- Specify the 'XadditionalManager' attribute in addition to the 'Manager' attribute for a parent - managerial Dynasty. - - On update, new child Dynasties are created with respect to the additional manager attribute data - and added in their respective managers' direct reports and additional manager's direct reports. - -- Remove the 'XadditionalManager' attribute for a parent managerial Dynasty. - - On update, the direct reports of users created with respect to the additional manager attribute - data are removed from their respective managers' and additional managers' direct reports. - - If the Delete Empty and Orphan Dynasty children setting is applied, direct reports of users - created due to the additional manager attribute data are not only removed from their respective - managers' and additional managers' direct reports; they also get deleted. - -**Alias Template** - -This setting is used to generate the alias names of the Dynasty's child groups. **%MANAGER%** is -replaced with the alias of the manager being processed. Normally, the mailnickname attribute is used -to store the alias. However, if this attribute is not set, then **%MANAGER%** is replaced with the -display name of the manager. - -To use an attribute other than mailNickname for generating the alias for child groups, update the -**%MANAGER%** statement with the desired attribute name. Note that the value of the attribute must -be unique. - -Example using the cn attribute: - -%MANAGER.cn% - -Example using the name attribute: - -%MANAGER.name% - -If Exchange Server is the designated messaging system for the identity store, the alias length is -limited to 64 characters and must be unique to the forest. For other messaging systems, the alias -length must not exceed the number of characters supported by the respective messaging system. - -Also, the alias must not contain characters that are invalid for the configured messaging system. -The following table lists the valid characters the supported messaging systems. - -| Messaging System | Valid Characters | -| -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Exchange Server 2013 Exchange Server 2016 Exchange Server 2019 | - Uppercase letters (A - Z) - Lowercase letters (a - z) - Numeric digits (0 - 9) - Special characters (#, $, %, &, ', \*, +, -, /, =, ?, ^, _, \`, \{, \| , \} or ~). You can use one or more periods in an alias, but each must be preceded and followed by at least one of the other characters | -| All other messaging systems | - Uppercase letters (A - Z) - Lowercase letters (a - z) - Numeric digits (0 - 9) | - -**Display Name Template** - -The template is used to generate the display names of the Dynasty's child groups. **%MANAGER%** is -replaced with the display name of the manager being processed. To use an attribute other than -displayName to name the child groups, update the **%MANAGER%** statement with the desired attribute -name. Note that the value of the attribute must be unique. - -Example using the cn attribute: - -%MANAGER.cn% - -Example using the name attribute: - -%MANAGER.name% - -NOTE: For a managerial Dynasty, the **%MANAGER%** variable for the alias and display name templates -must be the same. The selected attribute must be a string and cannot include characters that are not -supported in pre-Windows 2000 group names. - -**Inheritance** - -See Inheritance. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/email.md b/docs/directorymanager/11.0/welcome/group/properties/email.md deleted file mode 100644 index 14b493dc53..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/email.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "Group properties - Email tab" -description: "Group properties - Email tab" -sidebar_position: 70 ---- - -# Group properties - Email tab - -Use this tab to view the email addresses assigned to this group. If your portal is connected to an -identity store having Exchange 2013/2016/2019 deployed; then on this tab, you can also specify -Exchange additional owners for the group. Exchange additional owners have the same privileges as the -primary owner. - -**Addresses** - -In case of a mail-enabled group, Microsoft Exchange assigns different addresses to it for -communication with different repositories (such as Address Book, SIP, Outlook). These addresses are -displayed in this box. - -**Managed by** - -Microsoft Exchange 2013/2016/2019 offers the co-managed by feature that enables you to specify -Exchange additional owners for a group. - -The **Managed by** section is displayed when Microsoft Exchange Server 2013/2016/2019 is deployed as -the messaging provider for the identity store your portal is connected to. This list shows Exchange -additional owners specified for the group. - -GroupID sends group expiry, deletion, and renewal notifications to all Exchange additional owners -along with the group’s primary owner and additional owners. See -[Group properties - Owner tab](/docs/directorymanager/11.0/welcome/group/properties/owner.md) -in group properties. - -- Click **Add** to add an Exchange additional owner. Enter a search string to locate the required - object, or click **Advance** to use the - [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing a - search. -- To remove an Exchange additional owner, select it and click **Remove**. - -NOTE: Only mail-enabled users can be designated as Exchange additional owners. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/entitlements.md b/docs/directorymanager/11.0/welcome/group/properties/entitlements.md deleted file mode 100644 index d312d19920..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/entitlements.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: "Group Properties - Entitlement tab" -description: "Group Properties - Entitlement tab" -sidebar_position: 120 ---- - -# Group Properties - Entitlement tab - -Entitlement computes the effective NTFS permissions granted to objects on shared resources residing -on a server in an Active Directory identity store. The Entitlement tab provides an interface for -users to view these permissions. Users can view the permissions granted to an the group over files -and folder residing on a server. - -Permission types include: - -- Explicit permissions -- Inherited permissions (inherited from a group or folder) - -So, for example, if a user is a member of a group that has permissions on a shared server, you can -simply remove the user from group membership to revoke his/her access to that server. - -To facilitate permission viewing, do the following: - -- Specify one or more servers in identity store configurations. - This must be a server in an Active Directory based identity store. -- Compute all permissions that directory objects have on the shared files and folders on those - server(s). -- View these permissions in the GroupID portal. - -## Insights job - -When you add the first server for permission analysis, an Insights job is automatically created for -that identity store and displayed against the Scheduling node. By default, this job runs daily to -replicate permissions granted on shared files and folders on the servers. - -## Permissions on the GroupID Insights portal - -You can enable or restrict a security role from accessing the Insights portal. Use the Criteria tab -in role properties to specify the GroupID clients that role members can or cannot access. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/general.md b/docs/directorymanager/11.0/welcome/group/properties/general.md deleted file mode 100644 index 04cddc9794..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/general.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: "Group properties - General tab" -description: "Group properties - General tab" -sidebar_position: 10 ---- - -# Group properties - General tab - -This tab allows you to view or modify the general information about the group. - -**Display name** - -The display name of the group. - -**Alias** - -The alias for the group. - -**Manager can update membership** - -Select this check box to enable the group managers (primary owner and Exchange additional owners) to -update this group’s membership directly on the directory server. Additional owners are not included -because they are GroupID-specific and the directory does not recognize them. - -This is a provider-end permission and does not impact role-based permissions assigned at the -identity store level in GroupID. Nor do role-based permissions assigned at the identity store level -have any impact on this feature. - -Enabling this setting auto-grants the required permissions to the manager. For Active Directory, for -example, the manager is granted the following permissions: - -- Create, delete, and manage user accounts. -- Reset user password and force password change at next logon. -- Create, delete and manage groups. -- Modify the membership of a group. - -NOTE: Do not update Smart Group membership manually; changes might be reversed when the Smart Group -Update job runs. - -NOTE: The _manager can update membership_ feature is not available for groups in a Microsoft Entra -ID based identity store. - -**Description** - -The description provided for the group. - -**Expiration Policy** - -The expiry policy for this group. It specifies the duration the group remains active for. The group -would expire when the period ends. - -If you select the Other option from the list, two boxes are displayed under the Expiration Policy -box. First, select an option (Days, Months, or Years) from the second list. Then enter a value for -the selected option in the first box. the group will remain active for the duration you specify -here. - -The Group Life Cycle job is responsible for expiring groups. - -**Expiration Date** - -Displays the expiry date for the group. This box is blank when the expiration policy is set to -"Never expire". - -When you change the expiration policy of a group, the expiration date is updated when you save the -changes. - -**Group Scope** - -The scope set for this group. - -- **Domain Local** - Can only contain users in this domain. -- **Global Group** - Can contain users from other domains but is visible only within its own domain. -- **Universal Group** - Can contain users and groups from any domain and is visible in the Global - Catalog. - -NOTE: With Exchange 2013/2016/2019 configured as the messaging provider for the identity store, the -group scope must be set to _Universal_ for mail-enabled groups. - -NOTE: In a Microsoft Entra ID based identity store, the group scope does not apply. - -**Group Type** - -The group type set for the group. - -- **Security** - this group will be used for securing public folders, printers and other network - resources. -- **Distribution** - this group will only be used for email distribution. - -NOTE: In a Microsoft Entra ID based identity store, the group type is set to 'security' by default -and this option is not displayed. - -**Security** - -Indicates the security type set for the group. - -**Email** - -The email address of the group (applies to mail-enabled groups only, such as an Office 365 group). - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/history.md b/docs/directorymanager/11.0/welcome/group/properties/history.md deleted file mode 100644 index 68f342e0b9..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/history.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: "Object properties - History tab" -description: "Object properties - History tab" -sidebar_position: 140 ---- - -# Object properties - History tab - -This tab displays the object's history, which includes all changes to the object since its creation. - -History is available if the administrator has enabled history tracking for the identity store in -GroupID Management Console. See -[History](/docs/directorymanager/11.0/welcome/history/overview.md). - -What do you want to do? - -- [View History](#view-history) -- [Export History Data](#export-history-data) -- [Add notes to history items](#add-notes-to-history-items) - -## View History - -The **History** area displays the history for the object. History items in the view are arranged -according to date, showing the most recent at the top. - -This view is also called the detailed view. - -### Switch to Administrative View - -Click the **Switch to Administrative View** link to switch to the administrative view. This view is -only available if you have administrative privileges. - -It displays history data in a tabular form. History items are grouped by date. Each date group -displays changes made to the object during that period. - -You can expand an item to view more details, such as the names of the attributes modified in an -action along with their old and new values. - -## Export History Data - -You can export history data displayed on this page to an external file. - -1. Click the **Export History** button and select the file type to export history data to. Supported - formats are: - - - Excel - - CSV - - XML - -2. The file is created at the download location specified in the browser settings. - -## Add notes to history items - -GroupID enables a user to add notes to history items that were logged as a result of any change they -made. A note may explain the reason for making a certain change, such as why they changed the -security type for a group. - -Only the user who added the note can update it. Other users can only view this note; they cannot -edit or add comments. - -- The **Add Note** button is available next to a history item listed. -- Once you add a note, the **Add Note** button changes to **View Note**. All portal users can use - this button to view the note. - -### Add a note - -The option to add a note is available on the My Account History card on Dashboard, and all History -pages i.e.[My History](/docs/directorymanager/11.0/welcome/history/myhistory.md), -[My Direct Reports' History](/docs/directorymanager/11.0/welcome/history/mydirectreport.md) -and [My Groups' History](/docs/directorymanager/11.0/welcome/history/mydirectorygroup.md) -pages. - -1. Click the **Add Note** button next to a history item to add a note to it. -2. On the **Add Note** dialog box, write a note and click **Add Note** to save it. - - Your note can have a maximum of 500 characters. - -### Edit a note - -You can only edit the note that you have added. - -1. Click the **View Note** button next to a history item to view or edit the note for it. -2. On the **Note** dialog box, click the **Edit Note** button and update the note. -3. Click **Update Note** to save the changes. - -### View a note - -Once a note is added, other users can view it, but they cannot edit it or add comments to it. - -- In the Detailed view: - - Click the **View Note** button next to a history item to view the note for it. - -- In the Administrative view: - - The **Note** column displays the note. - -### Remove a note - -You can only remove the note that you have added. - -1. Click the **View Note** button next to a history item to view or remove the note for it. -2. Click the **Edit Note** button and remove the note. -3. Click **Update Note**. - -See Also - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [History](/docs/directorymanager/11.0/welcome/history/overview.md) -- [Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/importadditionalowners.md b/docs/directorymanager/11.0/welcome/group/properties/importadditionalowners.md deleted file mode 100644 index f1b5fc7126..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/importadditionalowners.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "Import Additional Owners" -description: "Import Additional Owners" -sidebar_position: 160 ---- - -# Import Additional Owners - -The **Import Additional Owners** wizard enables you to specify additional owners for a group using -an external file. - -The wizards search the directory for objects listed in the external file, and if found, adds them as -additional owners to the group. - -Supported file formats are: - -- Text (.txt) -- Comma Separated Value (.csv) -- Microsoft Excel (.xls and .xlsx) -- Extensible Markup Language (.xml) - -What do you want to do? - -- [Import additional owners using a wizard](#import-additional-owners-using-a-wizard) - -## Import additional owners using a wizard - -Use the **Import** button on the **Owners** tab of the New Group page and in group properties to -launch the **Import Additional Owners** wizard. - -1. On the **File** page, click **Browse** to locate and select the file containing the data to - upload. -2. Click the **Up** arrow to upload the file to the GroupID server for processing. -3. Click **Next**. -4. On the **Import** page, follow these steps: - - 1. In the **Import Options** section, select this site/domain or the entire directory from the - **Search** drop-down list. - - The wizard compares records in the import file with records in the selected domain or - directory to update the group's membership. - - 2. In the **Map Field** area, map a field in the source file (**Source Field**) with a directory - attribute (**Destination**). - - The value in the selected source field is compared to the value of the selected destination - field, and records with matching values are added to the group as members. - -5. The **Preview** page displays the possible outcome of the import process based on the settings - specified on the previous pages. The wizard processes the records from the source file by - matching the values of the source and destination fields. Results displayed may include the - following types of items: - - - **Resolved Items:** - - Shows all objects that will be successfully processed. - - - **Unresolved Items:** - - Shows objects that will not be processed because a matching object could not be found in the - destination directory. - - - **Ambiguous Items:** - - Shows objects for which duplicate entries were found in the destination directory. - -6. Click **Finish** to import the Additional Owners. - -**See Also** - -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/importmembers.md b/docs/directorymanager/11.0/welcome/group/properties/importmembers.md deleted file mode 100644 index 00e16abad4..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/importmembers.md +++ /dev/null @@ -1,137 +0,0 @@ ---- -title: "Import Group Members" -description: "Import Group Members" -sidebar_position: 150 ---- - -# Import Group Members - -The **Import Members** wizard enables you to add members to the group using an external file. - -The wizards search the directory for objects listed in the external file, and if found, adds them as -members to the group. - -Supported file formats are: - -- Text (.txt) -- Comma Separated Value (.csv) -- Microsoft Excel (.xls and .xlsx) -- Extensible Markup Language (.xml) - -What do you want to do? - -- [Import group members using a wizard](#import-group-members-using-a-wizard) -- [Import members of an existing group to this group](#import-members-of-an-existing-group-to-this-group) - -## Import group members using a wizard - -Use the **Import** button on the **Members** tab of the New Group page and in group properties to -launch the **Import Members** wizard. - -1. On the **Lifecycle** page, select whether the imported members should be added permanently or - temporarily to the group membership. You can also import members from an existing group. - - - **Import Members Perpetually**: to add imported members permanently to the group membership. - - **Import Members Temporarily**: to add imported members to the group membership for a specific - period. At end of the period, the imported members are automatically removed from membership. - - **Import Members From Group(s)**: to add all members of another group or groups to the - membership of this group. See - [Import members of an existing group to this group](#import-members-of-an-existing-group-to-this-group). - -2. In case of temporary membership, use the **Duration** list to specify the membership duration of - the imported members. Options are: - - - **7 Days**, to add members to the group for 7 days starting today. - - **30 Days**, to add members to the group for 30 days starting today. - - **60 Days**, to add members to the group for 60 days starting today. - - **90 Days**, to add members to the group for 90 days starting today. - - **Custom**, to add objects to the group for the period you specify in the **From Date** and - **To Date** boxes. - -3. Click **Next**. -4. On the Data Source page, select the data source that contains the objects to import to the group - membership from the directory. Select either of the two options: - - - **Local File** - - 1. On the **File** page, click **Browse** to locate and select the file containing the data - to upload. - 2. Click the **Up** arrow to upload the file to the GroupID server for processing. - 3. The **File Options** section appears after uploading the file. Select the sheet from the - drop-down list. - 4. Click **Read Data** to complete the selection process. - 5. Click **Next**. - - - **External Data Source** - - 1. On the **Providers** page, select - [Query Designer](/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md) - to create a query. The query will fetch all those members that match the set criteria. - - The Query Designer is not working. After adding provider in the data source, it is - unable to read the table. - - 2. Click **Next**. - -5. On the **Import** page, follow these steps: - - 1. In the **Import Options** section, select this site/domain or the entire directory from the - **Search** drop-down list. - - The wizard compares records in the import file with records in the selected domain or - directory to update the group's membership. - - 2. In the **Map Field** area, map a field in the source file (**Source Field**) with a directory - attribute (**Destination**). - - The value in the selected source field is compared to the value of the selected destination - field, and records with matching values are added to the group as members. - -6. Click **Next**. -7. The **Preview** page displays the possible outcome of the import process based on the settings - specified on the previous pages. The wizard processes the records from the source file by - matching the values of the source and destination fields. Results displayed may include the - following types of items: - - - **Resolved Items:** - - Shows all objects that will be successfully processed. - - - **Unresolved Items:** - - Shows objects that will not be processed because a matching object could not be found in the - destination directory. - - - **Ambiguous Items:** - - Shows objects for which duplicate entries were found in the destination directory. - -8. If you do not want existing group members to be deleted during import, make sure that the - **Append existing items (uncheck to replace)** check box is selected. -9. Click **Finish** to import members from the specified file or provider. - -## Import members of an existing group to this group - -You can import all members of an existing group or groups to the membership of another group. - -Use the **Import** button on the **Members** page of the New Group wizard and in group properties to -launch the **Import Members** wizard. - -1. On the **Lifecycle** page, select the **Import Members From Group(s)** option to add all members - of another group or groups to the membership of this group. -2. Click the **Search Groups** button; the - [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) is displayed, where - you can search and select the group(s) whose members you want to import into the membership of - this group. -3. Click **Next**. -4. The **Preview** page lists the groups whose members are to be imported. Click the name of a group - to view a list of its members. -5. If you do not want existing group members to be deleted during import, make sure that the - **Append existing items (uncheck to replace)** check box is selected. -6. Click **Finish** to import members from the selected group(s). - -**See Also** - -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/memberof.md b/docs/directorymanager/11.0/welcome/group/properties/memberof.md deleted file mode 100644 index 2e850c3b71..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/memberof.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "Group properties - Member Of tab" -description: "Group properties - Member Of tab" -sidebar_position: 40 ---- - -# Group properties - Member Of tab - -Use this tab to view the groups of which this group is a member. You can add and remove this group -from the membership of other groups. - -**Member Of** - -This group is a member of all groups listed in this grid. - -For each group listed, you can view the display name, email, and description. - -For each column in the grid, an item level filter is also available that lets you filter records -based on a particular criterion. For example; to show groups whose display names start with D, type -**D** in the box under the **Display Name** header and press Enter. - -| Column Name | Description | -| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Display Name | Displays the names of the groups this user is a member of. | -| Membership | Indicates whether the user is a temporary or permanent member of the group. - **Perpetual** - To make the object a permanent member of the group. - **Temporary Member** - To make the object a temporary member of the group for the period you specify in the **Beginning** and **Ending** boxes. At the end of the period, the object is removed from the group membership. - **Addition Pending** - Indicates that the object will be a temporary member of the group for a period in the future. Use the **Beginning** and **Ending** boxes to set a period. Before the beginning date, the object’s membership type is displayed as ‘Addition Pending’. On the beginning date, the membership type changes to ‘Temporary Member’. **Here is an example:** You add Smith as a temporary member to Group A on May 15, 2019 for future dates, May 20-30, 2019. Smith will be displayed in Group A’s membership with ‘Addition Pending’ as its membership type from May 15 to 19, 2019. However, Smith would not be added to group membership in the provider. On May 20, Smith will become a temporary member of Group A and its membership type will change to ‘Temporary Member’ from May 20 to 30, 2019. Smith will also be added to group membership in the provider. After May 30, Smith will be removed from Group A as a member in GroupID and in the provider. - **Removal Pending** - Indicates that the object will be temporarily removed from group membership for a period in the future. Use the **Beginning** and **Ending** boxes to set a period. Before the beginning date, the object’s membership type is displayed as ‘Removal Pending’. On the beginning date, the membership type will change to ‘Temporary Removed’. _Here is an example:_ You remove Smith from Group A on May 15, 2019 for future dates, May 20-30, 2019. Smith will be displayed in Group A’s membership with ‘Removal Pending’ as membership type from May 15 to 19, 2019. On May 20, Smith’s membership type in GroupID will change to ‘Temporary Removed’; lasting till May 30, 2019. However, Smith will be removed from Group A’s membership in the provider. After May 30, Smith will be added back to Group A as a permanent member in GroupID and in the provider. - **Temporary Removed** - Indicates that the object is temporarily removed from group membership for the period specified in the **Beginning** and **Ending** boxes. At the end of the period, the object is added back to the group membership as a permanent member. When the user is a perpetual member, the **Membership** column is blank. You cannot change the membership type of the user for any group on the **Member Of** tab. Rather, go to the properties of the specific group and change the user's membership type on the [Group properties - Members tab](/docs/directorymanager/11.0/welcome/group/properties/members.md). | -| Beginning | Displays the beginning date of the temporary addition or removal. | -| Ending | Displays the ending date of the temporary addition or removal. | - -**Add** - -Click it to add this group to the memberships of another group (for example, Group A). - -Enter a search string to locate the required group (Group A), or click **Advance** to use the -[Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing a -search - -The selected group(s) get listed in the **Member Of** grid. - -**Remove** - -Select a group (Group A) from the Member Of list and click **Remove** to remove this group from the -membership of Group A. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/members.md b/docs/directorymanager/11.0/welcome/group/properties/members.md deleted file mode 100644 index 3701157144..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/members.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: "Group properties - Members tab" -description: "Group properties - Members tab" -sidebar_position: 30 ---- - -# Group properties - Members tab - -Use this tab to view or modify the members of a group. By default, the primary owner is also a -member of the group. - -NOTE: In a Microsoft Entra ID based identity store, only user objects can be added as members of an -Office 365 group. - -**Members** - -Displays a list of member objects in this group. - -| Column Name | Description | -| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Type | The object type of the member object, such as user or group. | -| Display Name | The name of the member object. | -| | You can view the memberships of groups that are members of this group. For example, when you add a group (Group B) as a member of this group (Group A), you can view the membership of Group B. You can continue to view memberships of groups that are members of Group B, and so on. This enables the owner of a distribution group to view all users who will receive the messages sent to the distribution group. Click the plus sign next to a member group to view its members. Group membership can be viewed up to the nth level. However, you cannot modify membership of nested groups here. For a parent Dynasty, all child Dynasties are listed as members. NOTE: For an expired security group and Office 365 group, the members list would be empty. | -| Membership | Indicates whether the object is a temporary or permanent member of this group. The available membership types are: - **Perpetual** - To make the object a permanent member of the group. - **Temporary Member** - To make the object a temporary member of the group for the period you specify in the **Beginning** and **Ending** boxes. At the end of the period, the object is removed from the group membership. - **Addition Pending** - Indicates that the object will be a temporary member of the group for a period in the future. Use the **Beginning** and **Ending** boxes to set a period. Before the beginning date, the object’s membership type is displayed as ‘Addition Pending’. On the beginning date, the membership type changes to ‘Temporary Member’. **Here is an example:** You add Smith as a temporary member to Group A on May 15, 2019 for future dates, May 20-30, 2019. Smith will be displayed in Group A’s membership with ‘Addition Pending’ as its membership type from May 15 to 19, 2019. However, Smith would not be added to group membership in the provider. On May 20, Smith will become a temporary member of Group A and its membership type will change to ‘Temporary Member’ from May 20 to 30, 2019. Smith will also be added to group membership in the provider. After May 30, Smith will be removed from Group A as a member in GroupID and in the provider. - **Removal Pending** - Indicates that the object will be temporarily removed from group membership for a period in the future. Use the **Beginning** and **Ending** boxes to set a period. Before the beginning date, the object’s membership type is displayed as ‘Removal Pending’. On the beginning date, the membership type will change to ‘Temporary Removed’. _Here is an example:_ You remove Smith from Group A on May 15, 2019 for future dates, May 20-30, 2019. Smith will be displayed in Group A’s membership with ‘Removal Pending’ as membership type from May 15 to 19, 2019. On May 20, Smith’s membership type in GroupID will change to ‘Temporary Removed’; lasting till May 30, 2019. However, Smith will be removed from Group A’s membership in the provider. After May 30, Smith will be added back to Group A as a permanent member in GroupID and in the provider. - **Temporary Removed** - Indicates that the object is temporarily removed from group membership for the period specified in the **Beginning** and **Ending** boxes. At the end of the period, the object is added back to the group membership as a permanent member. When the object is a perpetual member, the Membership column is blank. Click anywhere in the row to make it editable for changing the membership type of the group member. NOTE: You cannot change the membership type when the member object is a group. | -| Beginning | Shows the beginning date of the temporary addition or removal. | -| Ending | Shows the ending date of the temporary addition or removal. | - -NOTE: For each column, an item level filter is also available that lets you filter records based on -a particular criterion. For example; to show objects whose display names start with D, type **D** in -the box under the **Display Name** header and press Enter. - -The Membership Life Cycle job updates the temporary membership of groups. It adds and removes -temporary members from group membership on the specified dates. - -Consider a scenario where the Membership Life Cycle job is scheduled to run once a week, say -Mondays. If an object is to be added to group membership for three days - Wednesday till Friday, it -will not be added. This happens because the Membership Life Cycle job did not run on the particular -days for temporary membership update. - -**Add** - -To add member(s) to the group, click **Add**. Enter a search string to locate the object to add as a -member, or click **Advance** to use the -[Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing a -search. - -The selected members get listed in the **Members** grid. - -NOTE: This button is disabled for Smart Groups and Dynasties since their memberships is determined -by the query set on the -[Group properties - Smart Group/Query Designer tab](/docs/directorymanager/11.0/welcome/group/properties/smartgroup.md). - -See -[Schedule periodic membership updates for Smart Groups/Dynasties](/docs/directorymanager/11.0/welcome/group/workingwithgroups/scheduleupdate.md#schedule-periodic-membership-updates-for-smart-groupsdynasties). - -**Import** - -You can add members to the group using an external file. - -You can also choose to import all members of an existing group or groups to the membership of this -group. - -Click **Import** to launch the **Import Members** wizard for importing group members. See -[Import Group Members](/docs/directorymanager/11.0/welcome/group/properties/importmembers.md) -for information and instructions. - -**Export** - -You can export the list of members to an external file. Supported file formats are: .txt, .csv, -.xls, .xlsx and .xml. - -Click **Export** to launch the **Export Members** wizard for exporting group members. Select the -attributes you want to export. For information and instructions, see -[Export group members](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupmembershipfunction.md#export-group-members). - -**Remove All** - -To remove all the members at together, click **Remove all**. - -**Remove** - -To remove an object from the members list, select it and click **Remove**. - -See Also - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/overview.md b/docs/directorymanager/11.0/welcome/group/properties/overview.md deleted file mode 100644 index 97785ef22f..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/overview.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: "Group Properties" -description: "Group Properties" -sidebar_position: 90 ---- - -# Group Properties - -You can view and manipulate the properties of groups in the connected identity store, depending on -the permissions the GroupID administrator has granted you. - -Select the required object and click **Properties** on the toolbar. The object's properties page is -displayed. - -**On the group's properties page, you can:** - -1. Save the changes made in the properties by clicking **Save**. -2. Click **Delete** to delete the group. -3. **Join** a group as a - [Join a group temporarily](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#join-a-group-temporarily) - or - [Join a group permanently](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#join-a-group-permanently) - - Select **Other** to add other users to the group. - -4. **Leave** a group's membership - [Leave a group temporarily](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#leave-a-group-temporarily) - or - [Leave a group permanently](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#leave-a-group-permanently). - - Select **Other** to remove other users from the group. - -5. To **Join/Leave** the group, you can also click on **Want to write reason to group owner?** and - state the the reason for joining or leaving the group for the group owner. -6. Click **Upgrade To** to change the group into one of the following: - - - Smart Group - - Dynasty - - Managerial Dynasty - -7. Select a group and click **Move Group** from the toolbar. You can specify a new container from - **Select Container** box where you want to move the group. -8. Add a group's email to your email contact list using the vCard. - - Select a group and click **Add to Contacts** on the toolbar. The portal creates the group's - vCard and prompts you to save it on your machine. You can then use it to add the group's email - address to your email contact list. - -9. Select a group and click **Send Email** on the toolbar. This launches the default Windows email - application for sending an email to group members. -10. For Teams, click **Subscribe Group** to get subscriptions of that Teams channel. -11. To unsubscribe from the Teams channel, click **Unsubscribe Group** from the toolbar. - -## Group Properties - -- [Group properties - General tab](/docs/directorymanager/11.0/welcome/group/properties/general.md) -- [Group properties - Owner tab](/docs/directorymanager/11.0/welcome/group/properties/owner.md) -- [Group properties - Members tab](/docs/directorymanager/11.0/welcome/group/properties/members.md) -- [Group properties - Member Of tab](/docs/directorymanager/11.0/welcome/group/properties/memberof.md) -- [Group properties - Delivery Restrictions tab](/docs/directorymanager/11.0/welcome/group/properties/deliveryrestrictions.md) -- [Object properties - Attributes tab](/docs/directorymanager/11.0/welcome/group/properties/attributes.md) -- [Group properties - Email tab](/docs/directorymanager/11.0/welcome/group/properties/email.md) -- [Group properties - Advanced tab](/docs/directorymanager/11.0/welcome/group/properties/advanced.md) -- [Group properties - Tree View](/docs/directorymanager/11.0/welcome/group/properties/treeview.md) -- [Group Properties - Entitlement tab](/docs/directorymanager/11.0/welcome/group/properties/entitlements.md) -- [Group properties - Similar Groups tab](/docs/directorymanager/11.0/welcome/group/properties/similargroups.md) -- [Object properties - History tab](/docs/directorymanager/11.0/welcome/group/properties/history.md) -- [Teams Properties - Channels](/docs/directorymanager/11.0/welcome/group/properties/channels.md) - (For Teams only) -- [Group properties - Smart Group/Query Designer tab](/docs/directorymanager/11.0/welcome/group/properties/smartgroup.md) - (for Smart Groups and Dynasties only) -- [Group properties - Dynasty Options tab](/docs/directorymanager/11.0/welcome/group/properties/dynastyoptions.md) - (for Dynasties only) - -NOTE: The **Delivery Restrictions**, **Attributes**, **Email**, and **Advanced** tabs are not -available for groups in a Microsoft Entra IDbased identity store. - -**See Also** - -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/overview.md) -- Group Properties -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/owner.md b/docs/directorymanager/11.0/welcome/group/properties/owner.md deleted file mode 100644 index 50a666787d..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/owner.md +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: "Group properties - Owner tab" -description: "Group properties - Owner tab" -sidebar_position: 20 ---- - -# Group properties - Owner tab - -This tab displays the primary and additional owners of the group. You can do the following, -depending on the Group Owner policy. - -- Change the primary owner or even remove it. -- Add and remove additional owners for the group. - -Additional owners have the same privileges as the primary owner to manage the group. - -NOTE: Only users, contacts and security groups can be set as the primary and additional owners of a -group. - If you specify a group, all its members are considered additional owners. - -You can also specify Exchange additional owners for the group. See the -[Group properties - Email tab](/docs/directorymanager/11.0/welcome/group/properties/email.md) -in group properties. - -NOTE: 1. For groups in an Microsoft Entra ID based identity store, only users can be set as primary -owners. Moreover, Microsoft Entra ID supports multiple primary owners for a group. Exchange -additional owners are not supported. -2. A group must have at least one primary owner. - -**Owner** - -The primary owner of the group. - -To change the primary owner, click **Browse** next to the **Owner** box to launch the -[Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md), where you can search -and select a primary owner. - -If the administrator has not enforced the selection of a primary owner in the Group Owner policy, -you can also remove the primary owner. Click the **Remove** button next to the **Owner** box to -remove the primary owner. - -NOTE: In a Microsoft Entra ID based identity store, use the **Add** and **Remove** buttons to update -the group's primary owners. - -**Suggested Owners** - -The GroupID portal can suggest a primary owner for orphan groups, provided that the **Suggest -Owner/Manager** setting is enabled by the administrator in GroupID Admin Center. - -The owner is suggested with respect to the group’s membership; GroupID checks the managers of group -members and the user who shows up most as a manager is suggested as the group owner. This user may -or may not be a member of the group. - -For example, when 40 members of Group A have User A as their manager and 38 members have User B as a -manager, User A is suggested as Group A’s primary owner. User A may not necessarily be a member of -Group A. - -- Click **Make Owner** to set the suggested user as the group's primary owner. -- You may also click **Show more options** to view a list of suggested owners. - -**Additional Owners** - -Lists the additional owners of the group, if any. - -The **Additional Owners** grid displays the following information: - -| Column Name | Description | -| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Type | The object type of the additional owner, such as user or group. | -| Name | The display name of the additional owner. | -| Ownership | Indicates whether an object is a temporary or permanent additional owner of a group. The available ownership types are: - **Perpetual** - To make the object a permanent additional owner of the group. - **Temporary Owner** - To make the object a temporary additional owner of the group for the period you specify in the **Beginning** and **Ending** boxes. At the end of the period, the object is removed from the group ownership. - **Addition Pending** - Indicates that the object will be a temporary additional owner of the group for a period in the future. Use the **Beginning** and **Ending** boxes to set a period. Before the beginning date, the object’s ownership type is displayed as ‘Addition Pending’. On the beginning date, the ownership type changes to ‘Temporary Owner’. **Here is an example:** You add Smith as a temporary additional owner of Group A on May 15, 2019 for future dates, May 20-30, 2019. Smith will be listed with Group A’s additional owners with ‘Addition Pending’ as its ownership type from May 15 to 19, 2019. On May 20, Smith will become a temporary additional owner of Group A and its ownership type will change to ‘Temporary Owner’ from May 20 to 30, 2019. After May 30, Smith will be removed from Group A as an additional owner. - **Removal Pending** - Indicates that the object will be temporarily removed from group ownership for a period in the future. Use the **Beginning** and **Ending** boxes to set a period. Before the beginning date, the object’s ownership type is displayed as ‘Removal Pending’. On the beginning date, the ownership type will change to ‘Temporary Removed’. **Here is an example:** You remove Smith as an additional owner of Group A on May 15, 2019 for future dates, May 20-30, 2019. Smith will be displayed as Group A’s additional owner with ‘Removal Pending’ as ownership type from May 15 to 19, 2019. On May 20, Smith’s ownership type in GroupID will change to ‘Temporary Removed’; lasting till May 30, 2019. After May 30, Smith will be added back to Group A as a permanent additional owner. - **Temporary Removed** - Indicates that the object is temporarily removed from group ownership for the period specified in the **Beginning** and **Ending** boxes. At the end of the period, the object is added back to the group as a permanent additional owner. When the object is a perpetual additional owner, the **Ownership** column is blank. Click anywhere in the row to make it editable for changing the ownership type of the additional owner. NOTE: You cannot change the ownership type when the additional owner is a group. | -| Beginning | Displays the beginning date of the temporary addition or removal. | -| Ending | Displays the ending date of the temporary addition or removal. | -| Do not notify | By default, all group-related notifications (such as expiry, deletion, and renewal notifications) are sent to the primary owner and all additional owners, so they can take the necessary action indicated. To exclude an additional owner from receiving notifications, select the **Do not notify** check box. NOTE: When a Smart Group Update job runs on a group, the notification behavior is as follows: Even when the **Do not Notify** check box is selected, the additional owner will receive the notifications if the administrator has included its email address for job-specific notifications. | - -NOTE: For each column, a filter is also available that lets you filter records based on a criterion. -For example; to show objects whose display names start with D, type D in the box under the **Name** -header and press **Enter**. -The Managed By Life Cycle job updates the temporary ownership of groups by adding and removing -temporary owners on the specified dates. - -Consider a scenario where the Managed By Life Cycle job is scheduled to run once a week, say -Mondays. If an object is to be added as a group’s temporary additional owner for three days - -Wednesday till Friday, it will not be added. This happens because the Managed By Life Cycle job did -not run on the particular days for temporary ownership update. - -**Add** - -To specify additional owner(s) for the group, click **Add**. - -Enter a search string to locate the object to add as an additional owner, or click **Advance** to -use the [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing -a search. - -**Import** - -You can also specify additional owners for the group using an external file. Click **Import** to -launch the **Import Additional Owners** wizard for importing additional owners. See -[Import Additional Owners](/docs/directorymanager/11.0/welcome/group/properties/importadditionalowners.md) -for further information and instructions. - -**Export** - -You can export the list of additional owners to an external file. Supported file formats are: .txt, -.csv, .xls, .xlsx and .xml. - -Click **Export** to launch the **Export Additional Owners** wizard for exporting additional owners. -Select the attributes you want to export. For information and instructions, see -[Export additional owners](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupownershipfunction.md#export-additional-owners). - -**Remove** - -To remove an object from the additional owners list, select it and click **Remove**. - -NOTE: On saving group properties, you may observe a message, asking you to select X number of -additional owners. It occurs because the Group Owner policy defined for your role at the identity -store level requires that the group must have at least x number of additional owners. Do the needful -and then save the information. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/similargroups.md b/docs/directorymanager/11.0/welcome/group/properties/similargroups.md deleted file mode 100644 index f3f5309d5b..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/similargroups.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "Group properties - Similar Groups tab" -description: "Group properties - Similar Groups tab" -sidebar_position: 130 ---- - -# Group properties - Similar Groups tab - -GroupID enables you to compare groups for similarity on the basis of: - -- Group type -- Membership - -Take an example of a distribution group (Group A) that has 3 members; Sarah, Frank, and Robin. On -the Similar Groups tab in Group A properties, the portal displays six groups that have the strongest -similarity to Group A. To be ranked as similar to Group A, groups must be of the ‘distribution’ type -and have any or all three members that Group A has. - -The six similar groups are sorted in the order of strength, with the strongest match at the top. - -Click a group bar or a group in the left pane to view similarity details. The **Similarity Details** -dialog box displays the common type and common members that both groups have. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/smartgroup.md b/docs/directorymanager/11.0/welcome/group/properties/smartgroup.md deleted file mode 100644 index 4eb130cae2..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/smartgroup.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "Group properties - Smart Group/Query Designer tab" -description: "Group properties - Smart Group/Query Designer tab" -sidebar_position: 90 ---- - -# Group properties - Smart Group/Query Designer tab - -Use this tab to view and modify the query defined for the Smart Group/Dynasty, and even schedule -updates. - -The group’s membership is updated with the records fetched by the query. - -NOTE: In case of an Office 365 group in a Microsoft Entra ID based identity store, group membership -is updated with user objects only. - -Membership update settings defined for the identity store also impact Smart Group and Dynasty -membership update. - -**Container(s)** - -Displays the domain or containers the query will run on. - -**Object Types** - -Lists the object types the query will fetch. - -**Server and Storage** - -These areas are displayed if the query only fetches messaging system recipients. They display the -server and storage for the query to fetch the records from. - -**Query Designer** - -To modify the query, click the **Query Designer** button. This launches the -[Query Designer](/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md) dialog -box, where you can modify the query. - -Smart Groups and Dynasties in a Microsoft Entra IDbased identity store use a device structured query -language while those in an Active Directory based identity store use LDAP queries to update group -membership. - -**Membership Preview** - -You can preview the group members of the smart group before executing the changes. - -**Clear** - -To remove all the queries set in the Query Designer, click **Clear**. - -**Scheduled Job** - -You can associate a Smart Group Update job with the group; this is a scheduled job that updates the -group’s membership when it runs. - -From the **Scheduled Job** list, select a Smart Group Update job to associate with the group. - -This list contains Smart Group Update jobs define for the identity store. - -NOTE: If the administrator has enforced the job selection option, you cannot save any changes unless -you associate a scheduled job with this group. - -**Updated On** - -Display the date and time when the group was updated based on the schedule set for it. - -**Create a Schedule** - -You can create a new schedule other than the ones on the list. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/properties/treeview.md b/docs/directorymanager/11.0/welcome/group/properties/treeview.md deleted file mode 100644 index 41bf1e1aa7..0000000000 --- a/docs/directorymanager/11.0/welcome/group/properties/treeview.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "Group properties - Tree View" -description: "Group properties - Tree View" -sidebar_position: 110 ---- - -# Group properties - Tree View - -Using the GroupID portal, you can view the hierarchy for a group. This hierarchy is displayed in the -form of a tree. For example, if Group A is a member of Group B, the graph will display group A and B -in a heirarchical form in this tab. - -**Export** - -You can also export the graphical representation of the group in the form of a png file. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/querydesigner/_category_.json b/docs/directorymanager/11.0/welcome/group/querydesigner/_category_.json deleted file mode 100644 index 6b0c31cf81..0000000000 --- a/docs/directorymanager/11.0/welcome/group/querydesigner/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Query Designer", - "position": 70, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/group/querydesigner/database.md b/docs/directorymanager/11.0/welcome/group/querydesigner/database.md deleted file mode 100644 index 77324664de..0000000000 --- a/docs/directorymanager/11.0/welcome/group/querydesigner/database.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: "Query Designer - Database tab" -description: "Query Designer - Database tab" -sidebar_position: 70 ---- - -# Query Designer - Database tab - -You can combine an external data provider with the directory to determine a group's membership. - -The supported external data providers are: - -- Microsoft Access -- Microsoft Excel -- Oracle -- ODBC -- Microsoft SQL Server -- Text/CSV -- SCIM - -Before using any of the above external data providers, a data source for the provider must be -defined in Admin Center. See the -[Create a Data Source](/docs/directorymanager/11.0/signin/datasource/create.md) topic. - -A connection is configured in a data source, GroupID portal connects to the external database, -retrieves the results, and then queries the directory for matching records. - -You must map one column returned by the command on the Database tab with a directory attribute to -join the external data source to the identity store. The query compares the values of the mapped -attributes and extracts objects with matching values to add to the group’s membership. - -For example, if you want to add to group membership all employees whose employee IDs are present in -an external data source, you can select that data source and map a key attribute with a directory -attribute. Use attributes that store the employee ID. When group membership is updated, GroupID will -fetch only those users from the directory whose employee IDs also exist in the data source. - -**External Data Provider** - -Select the data source from the drop-down list that you want to use to determine the group's -membership. - -**External Provider Table** - -Once the data source is selected, select the provider's table that contains the data. - -**Identity Store Attribute** - -Select an identity store attribute to map a database attribute to it. - -**External Provider Attribute** - -Select a data provider attribute to map it to the selected identity store attribute. - -**Command String** - -This field displays the command that the **Query Designer** executes to retrieve the query results -from the data source. The value can be a query statement and can include multiple columns separated -by commas. Field names are enclosed in brackets ([ ]) to prevent any ambiguity that the query engine -might encounter due to spaces between column names. - -You can modify the command and even write your own command. - -For better performance, it is recommended to select only the columns required to create your group. - -For example: - -``` -SELECT [Column1],[Column2] FROM [Filename.csv] -``` - -Execute - -Click this button to execute the command and preview the results. This process may take several -minutes depending on the size of your data source. - -**Clear** - -Click this button to clear the query. - -**Preview** - -Enables you to preview the results returned with the criteria specified on all tabs of the Query -Designer dialog box. This is a check to ensure the accuracy of data before changes are committed to -the directory. - -**OK** - -Saves settings and closes the dialog box. - -**Cancel** - -Discards settings and closes the dialog box. - -**LDAP Query** - -View the provider query in the LDAP Query box. - -**See Also** - -- [Query Designer](/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/querydesigner/filtercriteria.md b/docs/directorymanager/11.0/welcome/group/querydesigner/filtercriteria.md deleted file mode 100644 index 3fcee68345..0000000000 --- a/docs/directorymanager/11.0/welcome/group/querydesigner/filtercriteria.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: "Query Designer - Filter Criteria tab" -description: "Query Designer - Filter Criteria tab" -sidebar_position: 10 ---- - -# Query Designer - Filter Criteria tab - -Use this tab to add custom criteria to your query that do not fit any of the categories represented -on other tabs of the Query Designer dialog box. For example, you can add criteria to retrieve all -directory users who live in Houston and have a fax number. You can also apply logical operators -(AND, OR) to your custom query to achieve the most accurate results. - -If the administrator in your role's Query Designer policy has defined a default filter criteria, -that filter criteria is displayed on this tab. You can view and copy the query using the **View -Query** button. See the -[Specify a Default Filter Criteria](/docs/directorymanager/11.0/signin/securityrole/policy/querydesigner.md#specify-a-default-filter-criteria) -section of the -[ Query Designer Policy](/docs/directorymanager/11.0/signin/securityrole/policy/querydesigner.md) -topic. - -The default criteria is part of the policy; therefore, in GroupID portal it is visible to the role -members only. - -Let's say the administrator has defined the following default criteria in the policy: - -department is exactly HR - -You can add another row of filter criteria in the portal query designer window, if need be. - -**Select Attribute** - -By default, this is the only list displayed on the tab. It displays all or specific schema and -Exchange attributes, depending on what the GroupID administrator has configured. - -Select an attribute to be searched. For example, to search for users who live in the city of -Houston, select the City attribute from this list. - -**Contains** - -From here, select the condition that identifies search results. The following table lists the -available conditions: - -NOTE: Depending on configurations made by the GroupID administrator for the portal, all of the -following or specific conditions will be displayed in the list. - -The condition list for query based searches may vary. - -| Condition | Description | -| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Contains | Returns everything that contains the value. NOTE: This is resource-intensive for the directory server. | -| Does Not End With | Returns everything that does not end with the value. NOTE: This is resource-intensive for the directory server. | -| Does Not Start With | Returns everything that does not start with the value. | -| Ends With | Returns everything that ends with the value. ( NOTE: This is resource-intensive for the directory server. | -| Greater Or Equal | Returns everything with a value greater than or equal to the given value. | -| Is Exactly | Returns everything that matches the value. | -| Is Not | Returns everything that does not match the value. | -| Less Or Equal | Returns everything with a value less than or equal to the given value. | -| Not Contain | Returns everything that does not contain the value. NOTE: This is resource-intensive for the directory server. | -| Not Present | Returns everything that does not have the specified value. | -| Present | Returns everything that has the value. | -| Starts With | Returns everything that starts with the value. | -| All Flags On | Performs bit-wise comparison to find objects that have all the specific flags set for the attribute according to the given value. The value must be a decimal number; it cannot be a hexadecimal number or a constant name. For example, to search all users who do not need a password (decimal value of PASSWD_NOTREQD flag = 32) and whom passwords never expires (decimal value of DONT_EXPIRE_PASSWORD flag = 65536), set the value of UserAccessControl's attribute against this condition to 65568 (65536 + 32). For more information, refer to the article [http://support.microsoft.com/kb/305144](http://support.microsoft.com/kb/305144). | -| All Flags Off | Performs bit-wise comparison to find objects that have all the specific flags not set for the attribute according to the given value. The value must be a decimal number; it cannot be a hexadecimal number or a constant name. For example, to search all users which are neither disabled (decimal value of ACCOUNTDISABLE flag =2) nor locked out (decimal value of LOCKOUT flag = 16), set the value of UserAccessControl's attribute against this condition to 18 (2 + 16). For more information, refer to the article [http://support.microsoft.com/kb/305144](http://support.microsoft.com/kb/305144). | -| Any Flag On | Performs bit-wise comparison to find objects that have any of the specific flag set for the attribute according to the given value. The value must be a decimal number; it cannot be a hexadecimal number or a constant name. For example, to search all users who do not need a password (decimal value of PASSWD_NOTREQD flag = 32) or whom passwords never expires (decimal value of DONT_EXPIRE_PASSWORD flag = 65536), set the value of UserAccessControl's attribute against this condition to 65568 (65536 + 32). For more information, refer to the article [http://support.microsoft.com/kb/305144](http://support.microsoft.com/kb/305144). | -| Any Flag Off | Performs bit-wise comparison to find objects that have any of the specific flag not set for the attribute according to the given value. The value must be a decimal number; it cannot be a hexadecimal number or a constant name. For example, to search all users which are either disabled (decimal value of ACCOUNTDISABLE flag =2) or locked out (decimal value of LOCKOUT flag = 16), set the value of UserAccessControl's attribute against this condition to 18 (2 + 16). For more information, refer to the article [http://support.microsoft.com/kb/305144](http://support.microsoft.com/kb/305144). | -| Chain Match | Limited to the attributes of DN (distinguished name) type only. This is a special extended filter that walks the chain of ancestry in objects all the way to the root until it finds a match. For example, you can use this filter with the **ManagedBy** attribute to find all the groups for which the selected user is a direct or indirect owner. | - -**Value** - -Specify a value for the attribute. The query will return results considering the specified criteria -(attribute, condition, value). - -For some operators, the Value box is not available, as in the case of Present or Not Present. This -happens when the operators are not comparison operators. They only check whether the value for the -selected field exists and return either TRUE or FALSE. - -**AND** - -Click this button after selecting two or more records to insert a logical AND to the selected -criteria. - -To select a record, click the arrow icon next to it and click **Select Row**. - -**OR** - -Click this button after selecting two or more records to insert a logical OR to the selected -criteria. - -To select a record, click the arrow icon next to it and click **Select Row**. - -**Clear** - -Use this button to clear the given criteria. - -**Preview** - -Enables you to preview the results returned with the criteria specified on all tabs of the Query -Designer dialog box. This is a check to ensure the accuracy of data before changes are committed to -the directory. - -**OK** - -Saves settings and closes the dialog box. - -**Cancel** - -Discards settings and closes the dialog box. - -**LDAP Query** - -View the provider query in the LDAP Query box. - -**See Also** - -- [Query Designer](/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/querydesigner/general.md b/docs/directorymanager/11.0/welcome/group/querydesigner/general.md deleted file mode 100644 index 57773504bc..0000000000 --- a/docs/directorymanager/11.0/welcome/group/querydesigner/general.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: "Query Designer - General tab" -description: "Query Designer - General tab" -sidebar_position: 30 ---- - -# Query Designer - General tab - -Use this tab to specify the type of objects to include in your search. Options vary according to the -object type selected in the **Find** list. - -Select the sub-types of the selected object type to include in your search. - -The following table lists the options available on the **General** tab for each object type in the -**Find** list. - -| Find list option | Objects available for selection | -| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Messaging System Recipients | - **Users with mailboxes** - Includes users with messaging system mailboxes - **Users with External Email Address** - Includes users with email addresses that are external to your organization - **Contacts with External Email Address** - Includes contacts with email addresses that are external to your organization - **Mail-Enabled Groups** - Includes mail-enabled groups - **Mail-Enabled Folders** - Includes mail-enabled folders | -| Computers | - **Workstations and Servers** - Includes workstations and servers - **Domain Controllers** - Includes domain controllers | -| Custom | By default, it includes all object options for Messaging System Recipients, Computers, and Users, Contact, and Groups. For this reason, the General tab does not display any option for this object type. | -| Users, Contacts and Groups | - **Users** - Includes users - **Contacts** - Includes contacts - **Groups** - Includes groups | - -NOTE: The Computer and Contact object types are not supported in a Microsoft Entra ID identity -store. - -**Preview** - -Enables you to preview the results returned with the criteria specified on all tabs of the Query -Designer dialog box. This is a check to ensure the accuracy of data before changes are committed to -the directory. - -**OK** - -Saves settings and closes the dialog box. - -**Cancel** - -Discards settings and closes the dialog box. - -**LDAP Query** - -View the provider query in the LDAP Query box. - -**See Also** - -- [Query Designer](/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/querydesigner/includeexclude.md b/docs/directorymanager/11.0/welcome/group/querydesigner/includeexclude.md deleted file mode 100644 index f96c579fdc..0000000000 --- a/docs/directorymanager/11.0/welcome/group/querydesigner/includeexclude.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: "Query Designer - Include/Exclude tab" -description: "Query Designer - Include/Exclude tab" -sidebar_position: 20 ---- - -# Query Designer - Include/Exclude tab - -Use this tab to include or exclude an object from group membership, regardless of whether it is -returned by the query. The Include and Exclude lists affect group membership at two points in the -update process: - -- **Immediately** - When you close the Query Designer dialog box, the GroupID portal adds the - objects in the Include list to the group membership and removes the objects in the Exclude list - from the group membership. If you have removed objects from the Include list, the group’s - membership is updated immediately. However, if you have removed objects from the Exclude list, the - group’s membership is updated only by manual update or by a scheduled job. -- **At group membership update** - When the group membership is updated using a scheduled job or the - Update command, GroupID obtains the query results, adds the objects to include, and then removes - the objects to exclude. - -NOTE: For best performance, use query criteria to include or exclude objects as opposed to -statically selecting the objects using this tab. - -**Include** - -Displays the list of objects to include in group membership. The list also displays the objects that -are imported to the membership of this group using the portal's import feature. Use the **Add** and -**Remove** buttons to modify this list. - -**Exclude** - -Displays the list of objects to exclude from group membership. Use the **Add** and **Remove** -buttons to modify this list. - -**Preview** - -Enables you to preview the results returned with the criteria specified on all tabs of the Query -Designer dialog box. This is a check to ensure the accuracy of data before changes are committed to -the directory. - -**OK** - -Saves settings and closes the dialog box. - -**Cancel** - -Discards settings and closes the dialog box. - -**LDAP Query** - -View the provider query in the LDAP Query box. - -**See Also** - -- [Query Designer](/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md b/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md deleted file mode 100644 index 27e3f69ced..0000000000 --- a/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: "Query Designer" -description: "Query Designer" -sidebar_position: 70 ---- - -# Query Designer - -The Query Designer enables you to create queries for Smart Groups, Dynasties and directory objects -searches. These queries provide a quick and consistent way to retrieve a common set of directory -objects on which you want to perform specific tasks. For example, you can construct a query to -retrieve all users having mailboxes on a particular Exchange Server or you can build a query to -retrieve all directory objects whose information is present in an external data source, such as -Microsoft SQL Server. - -If the administrator has defined a Query Designer access policy for your role, you can create -queries as per the defined policy. A banner is displayed on the Query Designer dialog box indicating -that the administrator has implemented a policy for your role. See the -[ Query Designer Policy](/docs/directorymanager/11.0/signin/securityrole/policy/querydesigner.md) -topic. - -The query language depends on the identity store type. - -- An Active Directory based identity store supports an LDAP query. -- A Microsoft Entra ID based identity store supports a device structured query language. - -## Launch the Query Designer - -You can launch the Query Designer dialog box for a Smart Group or a Dynasty or a search query in any -of the following ways: - -- While creating a Smart Group or Dynasty - On the Smart Group/Query Designer page of the New Smart - Group wizard or New Dynasty wizard, click **Query Designer**. -- From group properties - On the Smart Group/Query Designer tab in Smart Group/Dynasty properties, - click **Query Designer**. -- When you upgrade a static group to a Smart Group or Dynasty. -- From the Queries page - On the Advanced Search page, click the **Or use the new query based - search** link. Then click **Query Designer**. - -## The Query Designer Interface - -The Query Designer dialog box provides a visual interface for designing queries, so that you do not -have to write the commands. Its preview feature returns the results for the query before you commit -them to the directory server. - -The Query Designer dialog box groups similar query options by tabs. Settings that are not grouped in -tabs are global; they apply to all tabs. - -### Common Settings and Buttons - -**Find** - -Select an option to specify the type of object to include in the membership of the group. - -- **Messaging System Recipients** - Mail-enabled objects -- **Computers** - Returns computers only -- **Custom** - Returns all objects regardless of objectClass. Be sure to add an objectClass - predicate on the Database tab to avoid unpredictable results. - - Be sure to combine an external data source with the directory to search directory objects on the - Database tab to avoid unpredictable results. - -- **Users, Contacts, and Groups** - Any user, contact, or group, whether mail-enabled or not. - -NOTE: The _Computers_ and _Contact_ object types are not supported in a Microsoft Entra ID identity -store. - -**Start in** - -Click this button to select the containers to search in. The query would search for objects only in -this container and its sub-containers to determine a group’s membership. - -**Preview** - -Enables you to preview the results returned with the criteria specified on all tabs of the Query -Designer dialog box. This is a check to ensure the accuracy of data before changes are committed to -the directory. - -**OK** - -Saves settings and closes the dialog box. - -**Cancel** - -Discards settings and closes the dialog box. - -**LDAP Query** - -View the provider query in the LDAP Query box. - -### Tabs - -The Query Designer has the following tabs: - -- [Query Designer - General tab](/docs/directorymanager/11.0/welcome/group/querydesigner/general.md) -- [Query Designer - Storage tab](/docs/directorymanager/11.0/welcome/group/querydesigner/storage.md) -- [Query Designer - Filter Criteria tab](/docs/directorymanager/11.0/welcome/group/querydesigner/filtercriteria.md) -- [Query Designer - Include/Exclude tab](/docs/directorymanager/11.0/welcome/group/querydesigner/includeexclude.md) -- [Query Designer - Database tab](/docs/directorymanager/11.0/welcome/group/querydesigner/database.md) -- [Query Designer - Script tab](/docs/directorymanager/11.0/welcome/group/querydesigner/script.md) -- [Query Designer - Password Expiry Options tab](/docs/directorymanager/11.0/welcome/group/querydesigner/passwordexpiryoptions.md)[Query Designer - Password Expiry Options tab](/docs/directorymanager/11.0/welcome/group/querydesigner/passwordexpiryoptions.md) - (only available for Smart Groups with a password expiry condition) - -NOTE: The **Storage** and **Script** tabs are not available for groups in a Microsoft Entra ID -identity store. - -**See Also** - -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Group properties - Smart Group/Query Designer tab](/docs/directorymanager/11.0/welcome/group/properties/smartgroup.md) diff --git a/docs/directorymanager/11.0/welcome/group/querydesigner/passwordexpiryoptions.md b/docs/directorymanager/11.0/welcome/group/querydesigner/passwordexpiryoptions.md deleted file mode 100644 index 02fc909b47..0000000000 --- a/docs/directorymanager/11.0/welcome/group/querydesigner/passwordexpiryoptions.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -title: "Query Designer - Password Expiry Options tab" -description: "Query Designer - Password Expiry Options tab" -sidebar_position: 40 ---- - -# Query Designer - Password Expiry Options tab - -The **Password Expiry Options** tab is only available for password expiry groups. You can create a -password expiry group by selecting the **Password Expiry** group option on the Welcome page of the -**Create Group** wizard. - -A password expiry group is a Smart Group whose membership contains users whose identity store -account passwords are approaching their expiry dates. Members of this group are notified by email to -reset their passwords. On doing so, they are automatically removed from group membership. - -On the **Password Expiry Options** tab of the Query Designer, you can define the password expiry -policy for the group. Based on this policy and the users' PWDLASTSET attribute, GroupID creates this -group with users whose passwords will soon expire. - -When the group is updated, GroupID will add/remove users from the group and send email notifications -to all members. - -You can also include disabled users and users whose password never expire to the password expiry -group. - -## Domain Expiration Policy - -Specify the maximum password age. The default age is 42 days. This setting does not affect your -domain security settings on the directory server. - -## Expiration Range Policy - -This policy defines when the user is added in the password expiry group. For example, take a domain -security policy configured with a maximum password age of 30 days. Setting the expiration range -policy to 10 days includes users who have passwords aged 20 days or older in the password expiry -group. - -### Include disabled users - -Select this check box to include disabled user accounts in the new group. - -### Include users whose password never expires - -Select this check box to include users with the **Password never expires** setting enabled, in group -membership. - -## Send email after update - -Select this check box to send a password expiry warning email to group members each time group -membership is updated either manually or through a scheduled job. - -This email contains a URL that redirects users to a Password Center portal for changing their -identity store account passwords. (The administrator specifies this URL while configuring an SMTP -server for the identity store.) - -The **Send email after update** options is enabled after the group is created. - -Warning emails are not sent to group members (users) whose passwords are set to 'never expire'. Such -users are included in group membership when you select the **Include users whose password never -expires** check box or add such users to the **Include** list on the -[Query Designer - Include/Exclude tab](/docs/directorymanager/11.0/welcome/group/querydesigner/includeexclude.md). - -For warning emails to be sent, you must have an SMTP server configured for the identity store. - -## Preview - -Use this button to preview results obtained with the current settings on all tabs of the **Query -Designer** dialog box. This is a check to ensure the accuracy of data before changes are committed -to the directory. On clicking it, results are displayed on the following two tabs at the bottom of -the dialog box: - -- Directory tab: displays the results for all the options set on all the tabs of the Query Designer - dialog box. -- Advanced tab: displays the results from the selected external data source when you click the - Execute button on the Advanced tab of the dialog box. - -## Display preferences - -The attributes of the objects displayed on the **Directory** and **Advanced** tabs are set using the -context (right-click) menu of each column header on the tab. Options are: - -| Column header's context menu option | Description | -| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Size All Columns to Fit | Set the column size of each column to fit its content. | -| `` | The names of the attributes currently displayed on the tab. Clear the check box for an attribute to remove it from the **Directory** tab. | -| **More** | Select additional attributes to display on the tab. After adding attributes, re-launch the **Directory** tab to refresh the list of the attributes displayed. | - -In addition to the column header display options, the **Directory** tab also provides object display -options that are available when you right-click an object. Options are: - -| Object's Context Menu Option | Description | -| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Add to Exclude | Add the object to the Exclude list so that it cannot be added to the group's membership. | -| Export | Export the selected object's information to a comma-separated value (csv) or XML file. The export action exports only the attributes displayed on the tab. | -| Export All | Export the information of all objects on the **Directory** tab to a comma-separated value (csv) or XML file. The export action exports only the attributes displayed on the tab. | - -**Preview** - -Enables you to preview the results returned with the criteria specified on all tabs of the Query -Designer dialog box. This is a check to ensure the accuracy of data before changes are committed to -the directory. - -**OK** - -Saves settings and closes the dialog box. - -**Cancel** - -Discards settings and closes the dialog box. - -**LDAP Query** - -View the provider query in the LDAP Query box. - -**See Also** - -- [Query Designer](/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/querydesigner/script.md b/docs/directorymanager/11.0/welcome/group/querydesigner/script.md deleted file mode 100644 index a58c992fb1..0000000000 --- a/docs/directorymanager/11.0/welcome/group/querydesigner/script.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: "Query Designer - Script tab" -description: "Query Designer - Script tab" -sidebar_position: 50 ---- - -# Query Designer - Script tab - -This tab is read-only and displays any script that has been added for the group. The scripting -feature enables administrators to manipulate group memberships and the Query Designer dialog -attributes (except for Include and Exclude attributes). - -If no script has been added for the group, the box on this tab is blank. - -**Load Default Script** - -Displays the script based on the query set by the user. - -**Compile Script** - -Compile the script to determine if there are any errors which would prevent the code from loading or -executing. While compiling your script will verify the code is free of syntactical errors, it does -not guarantee that the code is free from logical errors. - -**References** - -Displays the script reference. A script references file contains information about the run-time -requirements of a library or component, such as which files are needed, how they are to be -registered, and where on the host machine they should be installed. - -**Preview** - -Enables you to preview the results returned with the criteria specified on all tabs of the Query -Designer dialog box. This is a check to ensure the accuracy of data before changes are committed to -the directory. - -**OK** - -Saves settings and closes the dialog box. - -**Cancel** - -Discards settings and closes the dialog box. - -**LDAP Query** - -View the provider query in the LDAP Query box. - -**See Also** - -- [Query Designer](/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/querydesigner/storage.md b/docs/directorymanager/11.0/welcome/group/querydesigner/storage.md deleted file mode 100644 index 6316a837f3..0000000000 --- a/docs/directorymanager/11.0/welcome/group/querydesigner/storage.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: "Query Designer - Storage tab" -description: "Query Designer - Storage tab" -sidebar_position: 60 ---- - -# Query Designer - Storage tab - -Settings on the Storage tab are available when the ‘Messaging System Recipients’ option is selected -in the **Find** list. - -For the ‘Messaging System Recipients’ option, the default settings on the Storage tab retrieve all -mailboxes, irrespective of any server or mailbox store. You can apply a filter to mailboxes you want -the query to return. - -If filters are specified, the query will return only mailboxes on the specified server or mailbox -store. This filter does not affect custom recipients, public folders, and distribution lists. - -**Mailbox on any Server** - -Returns all mailboxes. No filters apply with this selection. - -**Mailbox on this Server** - -Returns mailboxes from the server you select from the drop-down list. - -**Mailbox on this MailStore** - -Returns mailboxes from the mailbox store you select from the drop-down list. - -**Preview** - -Enables you to preview the results returned with the criteria specified on all tabs of the Query -Designer dialog box. This is a check to ensure the accuracy of data before changes are committed to -the directory. - -**OK** - -Saves settings and closes the dialog box. - -**Cancel** - -Discards settings and closes the dialog box. - -**LDAP Query** - -View the provider query in the LDAP Query box. - -**See Also** - -- [Query Designer](/docs/directorymanager/11.0/welcome/group/querydesigner/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/recyclebin/_category_.json b/docs/directorymanager/11.0/welcome/group/recyclebin/_category_.json deleted file mode 100644 index 7e85c20bf1..0000000000 --- a/docs/directorymanager/11.0/welcome/group/recyclebin/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Deleted Groups", - "position": 60, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/group/recyclebin/general.md b/docs/directorymanager/11.0/welcome/group/recyclebin/general.md deleted file mode 100644 index d586cac004..0000000000 --- a/docs/directorymanager/11.0/welcome/group/recyclebin/general.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "General tab" -description: "General tab" -sidebar_position: 10 ---- - -# General tab - -This tab displays the general attributes of the deleted group, such as the group name, last known -parent, creation date, and deletion date. - -Use this tab to view attributes of the deleted groups. - -This tab displays the following general attributes: - -- Name -- Creation Date -- Common Name -- Object GUID -- Last Known Parent -- Deletion Date -- Distinguished Name -- Group Type - -**See Also** - -- [Deleted Groups](/docs/directorymanager/11.0/welcome/group/recyclebin/overview.md) diff --git a/docs/directorymanager/11.0/welcome/group/recyclebin/overview.md b/docs/directorymanager/11.0/welcome/group/recyclebin/overview.md deleted file mode 100644 index 69efac7b6d..0000000000 --- a/docs/directorymanager/11.0/welcome/group/recyclebin/overview.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: "Deleted Groups" -description: "Deleted Groups" -sidebar_position: 60 ---- - -# Deleted Groups - -GroupID Portal handles group deletion as either physical or logical. - -## Tombstone Groups - -Physically deleted groups have Tombstone as type. Physical group deletion refers to manually -deleting groups using the **Delete** option on the **Actions** menu or shortcut menu. GroupID moves -a physically deleted it to the Recycle Bin while stripping it of most of its properties. You can -delete or restore a group from the Recycle Bin. The restoration process not only restores the group -to its original container, but it also reinstates the home container for the group, if deleted. - -When restored, a physically deleted group is restored with limited attributes; its membership is not -restored. - -A Smart Group and Dynasty is restored as a static group with no members and no query. - -NOTE: Tombstone groups are not available in Microsoft Entra ID. - -## Logical Deletion - -Groups that are deleted by the Group Lifecycle job are considered to be logically deleted. The job -deletes expired groups X number of days after group expiry, as specified in Group Lifecycle policy -settings. - -Upon deletion, logically deleted groups are moved to the Recycle Bin, with all their attributes -intact. As a result, a logically deleted group, when restored, returns to its state it had at the -time of deletion. The restoration process not only restores the group to the container from where it -was deleted but it also reinstates the home container for the group, if deleted. - -You can also manually delete a logically deleted group in the Recycle Bin, making it physically -deleted. Simply select the required group and select Delete on the shortcut menu. - -## Deletion notifications - -When the Group Lifecycle job deletes a group, it notifies the group owners or, if there is no owner, -the default approver specified in the Group Lifecycle policy. - -What do you want to do? - -- [Modify Search Directory](#modify-search-directory) -- [Filter Deleted Groups](#filter-deleted-groups) -- [Delete a group from Recycle Bin](#delete-a-group-from-recycle-bin) -- [Restore a deleted group](#restore-a-deleted-group) - -## Modify Search Directory - -You can modify the search results in **Modify Search Directory**. You can select entire directory or -a domain to search deleted groups from. - -## Filter Deleted Groups - -You can add filters while searching for specific deleted groups from Tombstone or Logically Deleted -Groups. - -1. Click **Add Filter** to specify a criterion for filtering deleted groups. -2. From the **Select a Filter** list, select the attribute to filter deleted groups. -3. Two more boxes get displayed next to **Select a Filter** box upon selecting a filter. - - - **Select an Operator** from the first list. - - Specify a value for the selected operator in the second box. - -4. Click **Apply Filter**. - - Deleted Groups that match the specified criterion are displayed. - -5. You can add additional filters by clicking **Add Filter**. -6. To undo the filters, click **Reset Filter.** It will remove all the criteria set before. - -## Delete a group from Recycle Bin - -1. In GroupID Portal, select **Groups > Deleted Groups** from the left pane. -2. From the groups list, select one or more groups. -3. Click **Delete** on the shortcut menu. - -The group / groups will be permanently deleted from the recycle bin. - -## Restore a deleted group - -1. In GroupID Portal, select **Groups > Deleted Groups** from the left pane. -2. From the groups list, select one or more groups. -3. Click **Restore** on the shortcut menu. - -The group / groups will be restored in the directory. - -NOTE: You can only restore a physically deleted group from the Recycle Bin if the service account -for the connected identity store has the ‘Reanimate Tombstone’ permissions. - -NOTE: While all searches in GroupID are catered through Elasticsearch, the Recycle Bin is an -exception, as it fetches data from the directory. - -NOTE: The Recycle Bin does not display data for a Microsoft Entra ID based identity store. - -**See Also** - -- [Create Active Directory Groups](/docs/directorymanager/11.0/welcome/group/create/group/group.md) -- [Create an Active Directory Dynasty](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/createdynasty.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) diff --git a/docs/directorymanager/11.0/welcome/group/transferownership.md b/docs/directorymanager/11.0/welcome/group/transferownership.md deleted file mode 100644 index 881f2ea6a2..0000000000 --- a/docs/directorymanager/11.0/welcome/group/transferownership.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: "Transfer Ownership" -description: "Transfer Ownership" -sidebar_position: 100 ---- - -# Transfer Ownership - -The Transfer Ownership wizard provides a convenient way to: - -- Assign ownership to orphan groups. -- Transfer group ownership (including Exchange 2016/2019 additional ownerships) from one recipient - to another. - -Depending on the number of groups and the amount of available bandwidth between GroupID and the -messaging system server (such as Exchange server) or directory server, this process may take several -minutes. - -## Transfer the ownership of a group - -1. In GroupID Portal, from the left pane, select **All Groups** or **My Groups** under **Groups** - and select **Transfer Ownership** option on the top right corner. -2. On the **Containers** page, click **Browse** to select an organizational unit, domain, or the - entire directory. - - Your selection determines where the wizard searches for the groups to transfer their ownership. - The smaller the selection, the less time it takes to carry out the transfer. - - Specify whether to search for groups in sub-containers by selecting or clearing the **Include - sub-containers** check box. - - The scope of this setting varies, depending on the container that you selected in the previous - step. The following table explains the actual structures searched when you select the Include - sub-containers option: - - | Selected Container | Selecting Include sub-containers | - | ------------------- | ---------------------------------------------------------------------------------------- | - | Organizational Unit | Includes the Sub-organizational units in the search for required groups. | - | Domain | Includes all organizational units and their sub-trees in the search for required groups. | - | Entire Directory | Searches the entire forest. | - - NOTE: For Active Directory, if the search container is set to Global Catalog and Extension Data - is not replicated to the Global Catalog, additional ownership of the groups will not be - transferred. - -3. Click **Next**. -4. On the **Existing Owner** page, select one of the following: - - 1. **No Owner**: To change the ownership of groups without owner. - 2. **Selected Owner**: To change the ownership of groups managed by a owner. This option - includes all groups for which the selected owner is the primary owner, additional owner, or - Exchange 2013/2016/2019 additional owner. After selecting this option, click **Browse** and - use the **Find** dialog box to select the required owner. - - Click the **Preview** button to view the list of groups that match the given criteria for - ownership transfer. - -5. Click **Next**. -6. On the **New Owner** page, click **Browse** to select a new owner using the **Find** dialog box. -7. Click **Next**. -8. The **Summary** page displays following details regarding Ownership - - 1. **Existing Owner:** It will display name of the owner who owns that group. In case of the - group has no owner, it will display **None.** - 2. **Container:** It will display the container name you selected in step 2. - 3. **Include Subcontainers:** It will say **Yes** if you have selected the **Include - Subcontainers** checkbox and **No** otherwise. - 4. **New Owner**: It will display the name of new owner that you selected in step 6. - -9. Click **Finish** to complete ownership transfer. -10. The **Transferring ownership** page displays the transfer progress. Click **Show Details** to - view object name and status. - - The page displays the distinguished names of all groups that have been successfully processed - and transferred to the new owner. It also displays any errors that were encountered during the - process. - -**See Also** - -- [Group Ownership Functions](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupownershipfunction.md) diff --git a/docs/directorymanager/11.0/welcome/group/workingwithgroups/_category_.json b/docs/directorymanager/11.0/welcome/group/workingwithgroups/_category_.json deleted file mode 100644 index 4508f0827a..0000000000 --- a/docs/directorymanager/11.0/welcome/group/workingwithgroups/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Working with Groups", - "position": 40, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "workingwithgroups" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/group/workingwithgroups/attestation.md b/docs/directorymanager/11.0/welcome/group/workingwithgroups/attestation.md deleted file mode 100644 index 8578d2363f..0000000000 --- a/docs/directorymanager/11.0/welcome/group/workingwithgroups/attestation.md +++ /dev/null @@ -1,155 +0,0 @@ ---- -title: "Attest an Expiring Group" -description: "Attest an Expiring Group" -sidebar_position: 20 ---- - -# Attest an Expiring Group - -If the GroupID administrator enables group attestation for the identity store, then group owners -must review and validate the attributes and membership of an expiring group before renewing it. - -While attesting a group, the owner can: - -- Update a few attributes, such as the group’s display name, expiration policy, security type, etc. -- Verify the group’s membership and inactivate unrequired members. Inactive members are removed from - group membership instantly or after x number of days, depending on the configurations made by the - administrator. - -A group expires when it is not attested and renewed during its expiring days. - -**History Logging** - -GroupID tracks and maintains history for group attestation. On the -[Object properties - History tab](/docs/directorymanager/11.0/welcome/group/properties/history.md) -in group properties, the following is logged: - -- The date the group was attested on. -- Any attribute value updated during group attestation. -- The status of a group member set to ‘active’ or ‘inactive’. - -What do you want to do? - -- [Attest a group](#attest-a-group) - -## Attest a group - -1. In GroupID portal, on the left navigation bar, click **Groups.** On the **Groups** page select - the **All Groups** tab. -2. Select an expiring group and click **Attest Group** on the toolbar. - - The button would be disabled if you select multiple groups. - -3. On the **Attest Group** wizard, review the values provided for the group attributes and update - any information, if required. Then click **Next Step**. -4. On the **Step 2: Member Attestation** page, verify the group members. The page has 3 tabs: - - - **Disabled Members**: Lists group members that are disabled in the directory. - - **Not logged in 30 days**: Lists group members that have not logged into their workstations in - the last 30 days. - - **All Members**: Lists active group members only. Disabled members and those who have not - logged in during the last 30 days are not included. - -5. On each of these tabs, review the members list and set their status to _active_ or _inactive_. - - - Use the **Active All** and **Inactive All** buttons to mark the status of all members as - active or inactive respectively. To individually mark an active member as inactive and vice - versa, click the relevant button for it. - - The **Active All** and **Inactive All** buttons are available if the administrator has - allowed group owners to specify the status of all member in a single click. - - - If the **Active All** and **Inactive All** buttons are not available, the group owner must - verify each member one by one (by individually specifying its status as active or inactive. - - NOTE: Setting ‘active’ as status for a disabled user does not activate or enable the user's - account. - Setting ‘active’ as status for users who have not logged in during the last 30 days does not - move them to the **All Members** listing. - -6. The **Membership** column displays the membership type for active members. - - You can change the membership type of users in all three listings – **All Members**,**Disabled - Members** and **Not logged in 30 days**. - - Membership types are: - - - **Perpetual** - To make the object a permanent member of the group. - - **Temporary Member** - To make the object a temporary member of the group for the period you - specify in the **Beginning** and **Ending** boxes. At the end of the period, the object is - removed from the group membership. - - **Addition Pending** - Indicates that the object will be a temporary member of the group for a - period in the future. Use the **Beginning** and **Ending** boxes to set a period. Before the - beginning date, the object’s membership type is displayed as ‘Addition Pending’. On the - beginning date, the membership type changes to ‘Temporary Member’. - - **Here is an example:** - - You add Smith as a temporary member to Group A on May 15, 2019 for future dates, May - 20-30, 2019. - - Smith will be displayed in Group A’s membership with ‘Addition Pending’ as its membership - type from May 15 to 19, 2019. However, Smith would not be added to group membership in the - provider. - - On May 20, Smith will become a temporary member of Group A and its membership type will - change to ‘Temporary Member’ from May 20 to 30, 2019. Smith will also be added to group - membership in the provider. - - After May 30, Smith will be removed from Group A as a member in GroupID and in the provider. - - - **Removal Pending** - Indicates that the object will be temporarily removed from group - membership for a period in the future. Use the **Beginning** and **Ending** boxes to set a - period. Before the beginning date, the object’s membership type is displayed as ‘Removal - Pending’. On the beginning date, the membership type will change to ‘Temporary Removed’. - - _Here is an example:_ - - You remove Smith from Group A on May 15, 2019 for future dates, May 20-30, 2019. - - Smith will be displayed in Group A’s membership with ‘Removal Pending’ as membership type - from May 15 to 19, 2019. - - On May 20, Smith’s membership type in GroupID will change to ‘Temporary Removed’; lasting - till May 30, 2019. However, Smith will be removed from Group A’s membership in the provider. - - After May 30, Smith will be added back to Group A as a permanent member in GroupID and in - the provider. - - - **Temporary Removed** - Indicates that the object is temporarily removed from group membership - for the period specified in the **Beginning** and **Ending** boxes. At the end of the period, - the object is added back to the group membership as a permanent member. - -7. For inactive members, the **Membership** column displays the status as _Inactive_. The duration - for an inactive member to remain in group membership depends on configurations made by the - administrator. - - - The administrator can specify X number of days, say 5. - - When the status of a member is set to inactive, he/she is immediately removed from group - membership in the directory provider. In GroupID, however, he/she remains a group member - till the specified number of days, starting from the inactivation date. On the **Attest & - Renew Group** wizard, the **Beginning** column displays the date when the user’s status was - set to inactive, and the **Ending** column displays the date when the user would be removed - from group membership in GroupID, based on the specified days. - - During this period, the member can be activated (added back to group membership). When the - member is not activated, the Membership Life Cycle job removes it from group membership in - GroupID too. - - - If the administrator has not specified any days, the inactivated member is removed from group - membership in the directory provider and in GroupID when the **Attest & Renew Group** wizard - completes. In this case, the **Beginning** and **Ending** columns remain blank. - -8. Click **Next Step**. -9. The **Summary** page displays the attributes that have been updated and the members’ updated - status. - - Click **Attest Group** to attest and renew the group. - - On attestation, the group’s expiration policy is re-applied to it, starting from today. - -**See Also** - -- [My Expiring Groups](/docs/directorymanager/11.0/welcome/group/mygroups/myexpiringgroups.md) -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/workingwithgroups/dynastyfunction.md b/docs/directorymanager/11.0/welcome/group/workingwithgroups/dynastyfunction.md deleted file mode 100644 index 7291e45e96..0000000000 --- a/docs/directorymanager/11.0/welcome/group/workingwithgroups/dynastyfunction.md +++ /dev/null @@ -1,135 +0,0 @@ ---- -title: "Dynasties Functions" -description: "Dynasties Functions" -sidebar_position: 100 ---- - -# Dynasties Functions - -In GroupID portal, you can manage Dynasty structure and its membership using the following -functions. - -What do you want to do? - -- [Manage attributes for an Organizational/Geographical/Custom Dynasty](#manage-attributes-for-an-organizationalgeographicalcustom-dynasty) -- [Manage Managerial Dynasty structure](#manage-managerial-dynasty-structure) -- [Set attribute inheritance](#set-attribute-inheritance) -- [Modify alias and display name templates](#modify-alias-and-display-name-templates) - -## Manage attributes for an Organizational/Geographical/Custom Dynasty - -Dynasties are built on attributes. For example, if the Country, State, and City attributes are -specified for a Geographical Dynasty, GroupID creates a Smart Group for every distinct country, then -for each state within a country, and finally for each city within a state. - -1. On the left navigation bar, click **Groups** and then select the **My Groups** tab. - - You can also [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) - the Organizational, Organizational, or custom Dynasty you want to change the attributes for. - -2. Select the required Dynasty and click **Properties** on the toolbar. - - The Dynasty's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed with the **General** tab in view. - -3. On the **Dynasty Options** tab, update the attributes in the **Attributes** area. - - Refer to the - [Dynasty Options page](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsorggeocus.md) - for details. - -4. Click **Save**. - -## Manage Managerial Dynasty structure - -1. On the left navigation bar, click **Groups** and then select the **My Groups** tab. - - You can also [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) - the Managerial Dynasty you want to restructure. - -2. Select the required Dynasty and click **Properties** on the toolbar. - - The Dynasty's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed with the **General** tab in view. - -3. On the **Dynasty Options** tab, modify the options related to the Dynasty structure. - - Refer to the - [Dynasty Options page (Managerial Dynasty)](/docs/directorymanager/11.0/welcome/group/dynasty/createdynasty/dynastyoptionsmanagerial.md) - for details. - -4. Click **Save**. - -## Set attribute inheritance - -1. On the left navigation bar, click **Groups** and then select the **My Groups** tab. - - You can also [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) - the Dynasty you want to change the inheritance option for. - -2. Select the required Dynasty and click **Properties** on the toolbar. - - The Dynasty's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed with the **General** tab in view. - -3. On the **Dynasty Options** tab, select the required option from the **Inheritance** drop-down - list. - - See the Inheritance section in - [Dynasty Options](/docs/directorymanager/11.0/welcome/group/properties/dynastyoptions.md). - -4. Click **Save**. - -## Modify alias and display name templates - -**For an Organizational/Geographical/Custom Dynasty** - -1. On the left navigation bar, click **Groups** and then select the **My Groups** tab. - - You can also [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) - the Dynasty you want to change the alias or display name template for. - -2. Select the required Organizational/Geographical/Custom Dynasty and click **Properties** on the - toolbar. - - The Dynasty's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed with the **General** tab in view. - -3. On the **Dynasty Options** tab, use the **Alias Template** and **Display Name Template** boxes to - modify the respective templates. - - For details, see the Alias Template and Display Name Template sections in - [Dynasty Options](/docs/directorymanager/11.0/welcome/group/properties/dynastyoptions.md) - for an Organizational/Geographical/Custom Dynasty. - -4. Click **Save**. - -**For a Managerial Dynasty** - -1. On the left navigation bar, click **Groups** and then select the **My Groups** tab. - - You can also [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) - the Dynasty you want to change the alias or display name template for. - -2. Select the required Managerial Dynasty and click **Properties** on the toolbar. - - The Dynasty's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed with the **General** tab in view. - -3. On the **Dynasty Options** tab, use the **Alias Template** and **Display Name Template** boxes to - modify the respective templates. - - For details, see the Alias Template and Display Name Template sections in - [Dynasty Options](/docs/directorymanager/11.0/welcome/group/properties/dynastyoptions.md) - for a Managerial Dynasty. - -4. Click **Save**. - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/workingwithgroups/generalfunction.md b/docs/directorymanager/11.0/welcome/group/workingwithgroups/generalfunction.md deleted file mode 100644 index 0cb8c1beb4..0000000000 --- a/docs/directorymanager/11.0/welcome/group/workingwithgroups/generalfunction.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: "General Group functions" -description: "General Group functions" -sidebar_position: 10 ---- - -# General Group functions - -You can perform the following general functions on your directory groups. - -What do you want to do - -- [Search for groups](#search-for-groups) -- [View object properties](#view-object-properties) -- [View groups managed by an object](#view-groups-managed-by-an-object) -- [Manage group access](#manage-group-access) -- [Set email delivery restrictions](#set-email-delivery-restrictions) - -## Search for groups - -See [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md). - -## View object properties - -You can view and modify the properties of a mailbox, group, user and contact. - -1. [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) the required - object. -2. Select this object on the **Search Results** page and click **Properties** on the toolbar. - - The object's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed. - -## View groups managed by an object - -You can get a list of all groups managed by a particular object (i.e., all groups for which the -selected object is a primary or additional owner). - -1. [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) the required - object. -2. Select this object on the **Search Results** page and click **Owner** on the toolbar. - -## Manage group access - -A group’s security type determines how non-members can access the group and become its members. - -A security type is assigned to the group when it is created. However, you can change it later, if -required. - -1. In GroupID portal, click **Groups** in the left navigation pane, select Groups. - - The Groups page is displayed with the **My Groups** tab in view. - -2. Select a group and click **Properties** on the toolbar. - - The group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed with the **General** tab in view. - -3. Select a different security type for the group from the **Security** list. -4. Click **Save**. - -## Set email delivery restrictions - -You can allow or restrict a group from receiving emails from specified recipients. - -NOTE: This feature is not available for groups in a Microsoft Entra ID based identity store. - -1. In GroupID portal, click **Groups** in the left navigation pane, select **My Groups**. - - The Groups page is displayed with the **My Groups** tab in view. - -2. Select the required group and click **Properties** on the toolbar. - - The group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed. - -3. Click the **Delivery Restrictions** tab. -4. Specify the senders that the group can receive emails from: - - 1. Click the **Add** button in the **Accept from** area. - 2. Enter a search string to locate the required object, or click **Advanced** to use the - [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing - a search. - -5. Select the senders that the group cannot accept emails from: - 1. Click the **Add** button in the **Reject from** area. - 2. Enter a search string to locate the required object, or click **Advanced** to use the - [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing - a search. -6. Save the changes. - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupaccess.md b/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupaccess.md deleted file mode 100644 index 37ac1b7dfc..0000000000 --- a/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupaccess.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Manage Group Access" -description: "Manage Group Access" -sidebar_position: 40 ---- - -# Manage Group Access - -A group's security type determines how non-members can access the group and become its members. -GroupID provides three security types: - -- Private -- Semi-Private -- Public - -A security type is assigned to the group when it is created. However, you can change it later, if -required. - -What do you want to do? - -- [Changing the security type for a group](#changing-the-security-type-for-a-group) -- [Changing the security type for multiple groups](#changing-the-security-type-for-multiple-groups) - -## Changing the security type for a group - -1. In **GroupID Portal**, select **Groups**> [required group node]. -2. In the groups list, click the required group and select **Set Security Type** from the above - pane. Select any of the following: - - - Private - - Semi-Private - - Public - -3. Click **Save**. - -## Changing the security type for multiple groups - -1. In **GroupID Portal**, select **Groups > [required group node]**. -2. In the groups list, select the required groups and select **Set Security Type** from the above - pane. Select any of the following: - - - Private - - Semi-Private - - Public - -3. Click **Save**. - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupdeletion.md b/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupdeletion.md deleted file mode 100644 index 4f0de689cb..0000000000 --- a/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupdeletion.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: "Group Deletion" -description: "Group Deletion" -sidebar_position: 60 ---- - -# Group Deletion - -In GroupID, groups can be deleted in any of the following ways: - -- Physical deletion -- Logical deletion - -## Physical Deletion - -When you manually delete a group using the **Delete** button on the toolbar, the group is said to be -physically deleted. However, - -- A group with a valid expiry policy will not be deleted. -- A group without an expiry policy will be physically deleted. - - Directory groups that are created outside of GroupID do not have an expiry policy. - - In GroupID, you cannot distinguish groups with an expiry policy from groups without an expiry - policy because groups without an expiry policy are displayed with "Never Expire' set as policy. - -Moreover, when you use the **Expire** button on the toolbar to expire a group with a ‘Never Expire’ -policy, the portal physically deletes it. - -Physically deleted groups are not available in the portal anymore. - -To renew a physically deleted group, contact the GroupID administrator. - -## Logical Deletion - -Groups that are deleted by the Group Life Cycle job are considered to be logically deleted. This job -deletes expired groups automatically based on the Group Life Cycle policy for the identity store. - -Logically deleted groups are moved to the -[My Deleted Groups](/docs/directorymanager/11.0/welcome/group/mygroups/mydeletedgroups.md) page with -the 'Deleted_' prefix added to their names. Such groups have all their attributes intact. As a -result, a logically deleted group, when renewed, returns to the state it had at the time of -deletion. - -See the -[What Happens When a Group is Deleted](/docs/directorymanager/11.0/signin/identitystore/configure/groupexpirydeletion.md#what-happens-when-a-group-is-deleted) -topic for additional information on group deletion. - -## Group Deletion Notifications - -The Group Life Cycle job also notifies the owner or, if there is no owner, the default approver -specified in the Group Life Cycle policy for the identity store. The job does not delete a group -that neither has an owner nor a default approver. - -Deleted groups are locked for further operations until renewed. - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) -- [ Group Expiry and Deletion](/docs/directorymanager/11.0/signin/identitystore/configure/groupexpirydeletion.md) -- [Manage Group Lifecycle Settings](/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md) diff --git a/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md b/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md deleted file mode 100644 index 7160a68486..0000000000 --- a/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: "Group Expiry" -description: "Group Expiry" -sidebar_position: 90 ---- - -# Group Expiry - -GroupID provides two ways to expire a group: - -- Use the **Expire** button on the Group Properties toolbar to expire a group manually. -- The Group Lifecycle job expires groups automatically based on the expiry policy specified for each - group. - - The expiry policy for a group specifies the period for which the group remains active. At the - end of the period, the group expires. - -The following events take place when a group expires: - -- The group becomes inactive and is locked for all activities. -- "EXPIRED_" is added as a prefix to the group name. -- A mail-enabled group is mail-disabled, which means that any emails sent to the group and are - bounced back with an expiration message. -- For a security group, its member list is cleared and any permissions set for that group no longer - apply. However GroupID keeps a backup of its membership in the database. - -GroupID moves an expired group to the Expired Groups tab; however all group attributes remain -intact. You can renew an expired group. - -When you expire an Office 365 group using GroupID, its member list is backed up in the database and -cleared from Office 365. - -**In case of an Active Directory identity store with Office 365 as messaging provider:** - -In case of an Active Directory identity store with Office 365 as the messaging provider, the -following happens when a distribution group is expired manually or via the Group Lifecycle job: - -- The group’s email address is removed in Active Directory. -- "EXPIRED_" is added as a prefix to the group name. -- The group is removed from Office 365 when the AAD Sync schedule runs. - -On renewing an expired distribution group, the following happens: - -- The group’s email address is added in Active Directory. -- The "EXPIRED_" prefix is removed from the group’s name. -- The group is created with members in Office 365 when the AAD Sync schedule runs. - -In case of a Microsoft Entra ID identity store with Office 365 as messaging provider: - -In case of a Microsoft Entra ID identity store with Office 365 as the messaging provider, the -following happens when a distribution group is expired manually or via the Group Lifeycle job: - -- GroupID takes a backup of the group’s membership. -- It empties out the group’s membership in Office 365. - -On renewing an expired distribution group, the following happens: - -- The group’s membership is repopulated in Microsoft Entra IDand Office 365. - -## Group Expiry policy - -All settings related to group expiry are specified in the default Group Lifecycle policy. This -policy is defined for an identity store and applies to all groups. - -The Group Life Cycle policy mainly defines: - -- When to expire a group. Groups with a 'Never Expire' policy cannot be expired manually or by the - Group Lifecycle job. -- Whether to notify the group owner or the default approver (in case the group has no owner) about - group expiry x number of days before the group expires. -- The x number of days after which an expired group would be deleted, starting from the expiry date. - This also applies to manually expired groups. - -Of these, only the expiry period can be changed for individual groups. The remaining settings apply -to all groups in the identity store and cannot be changed for individual groups. - -When the Group Lifeycle job executes the Group Lifecycle policy, it monitors group expiry dates as -determined by each group’s expiration period. See the -[Set a Default Expiry Policy for Groups](/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md#set-a-default-expiry-policy-for-groups) -topic. - -## Group Expiry Notifications - -The Group Lifecycle job monitors the expiry policy of all groups. When a group approaches its -expiry, the job does the following: - -- When notifications are not enabled in the Group Lifecycle policy, the Group Lifecycle job expires - the group without notifying anyone. -- When notifications are enabled, the job notifies the primary and additional owners or the default - approver (in case no owner is set for the group) about the approaching expiry. - - In case the notification could not be sent or no recipient is available, the schedule extends - the expiry date of the group by 7 days on the group’s expiry day. It continues to do so until - the notification is sent. - -- When the **1 day before group expiration** option is selected for sending notifications and the - Group Life Cycle schedule evaluates the group for the first time a day before its expiration date, - GroupID will extend the group’s expiration date by 7 days. - -Notifications are sent if an SMTP server is configured for the identity store. See the -[Set Group Expiry Notifications](/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md#set-group-expiry-notifications) -topic for additional information. - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) -- [ Group Expiry and Deletion](/docs/directorymanager/11.0/signin/identitystore/configure/groupexpirydeletion.md) -- [Manage Group Lifecycle Settings](/docs/directorymanager/11.0/signin/identitystore/configure/grouplifecycle.md) diff --git a/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiryfunction.md b/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiryfunction.md deleted file mode 100644 index 69d38ff70f..0000000000 --- a/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiryfunction.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: "Group Expiry Functions" -description: "Group Expiry Functions" -sidebar_position: 120 ---- - -# Group Expiry Functions - -You can expire, renew or delete a group using GroupID portal. You can change expiry policy of a -group and attest an expiring group, if required. - -What do you want to do? - -- [Expire a group manually ](#expire-a-group-manually) -- [Change the expiry policy for a group](#change-the-expiry-policy-for-a-group) -- [Attest an expiring group](#attest-an-expiring-group) -- [Renew an expired group](#renew-an-expired-group) - -## Expire a group manually - -1. On the left navigation bar, click **Groups** and then select the **My Groups**, **My - Memberships**, or **My Expiring Groups** tab. - - You can also [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) - the group you want to expire. - -2. On the page displayed, select the required group and click **Expire** on the toolbar. - -NOTE: Note the following: - -- When you try to manually expire a group with the expiry policy set to ‘Never Expire’, an error - message is displayed, informing you that the group cannot be expired. -- When you manually expire a group with an expiry policy other than ‘Never Expire’, the group - expires and is moved it to the - [My Expired Groups](/docs/directorymanager/11.0/welcome/group/mygroups/myexpiredgroups.md) page. -- A group without an expiry policy will not expire. - - Directory groups that are created outside of GroupID do not have an expiry policy. - - In GroupID, you cannot distinguish groups with an expiry policy from group without an expiry - policy because groups without an expiry policy are displayed with "Never Expire' set as policy. - -If expired groups are not renewed within a specific period (set by the GroupID administrator in the -Group Lifecycle policy for the identity store), they are logically deleted when the period ends. See -Group life cycle job. - -Logically deleted groups are moved to the -[My Deleted Groups](/docs/directorymanager/11.0/welcome/group/mygroups/mydeletedgroups.md) page with -the “Deleted_” prefix added to their names. - -## Change the expiry policy for a group - -When a group is created, it has its expiry policy set to 'Never Expire'. You can change this policy -as required. - -The Group Life Cycle job expires groups according to their respective expiry policies and moves them -to the [My Expired Groups](/docs/directorymanager/11.0/welcome/group/mygroups/myexpiredgroups.md) -page. - -1. [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) the group you - want to change the expiry policy for. -2. Select this group on the **Search Results** page and click **Properties** on the toolbar. - - The group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed with the **General** tab in view. - -3. From the **Expiration Policy** list, select the duration that the group would remain active for, - starting today. The group expires when the period ends. - - If you select the _Other_ option from the list, two boxes are displayed under the Expiration - Policy box. First, select an option (Days, Months, or Years) from the second list. Then enter a - value for the selected option in the first box. The group will remain active for the duration - you specify here. - - The **Expiration Date** box displays the group's expiry date after you save the changes. - -4. Click **Save**. - -NOTE: If the GroupID administrator has specified this action for review, your changes will not take -effect until verified by an approver. See -[Requests](/docs/directorymanager/11.0/welcome/request/overview.md). - -## Attest an expiring group - -See -[Attest an Expiring Group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/attestation.md). - -## Renew an expired group - -To use an expired group again, you can renew it. On renewal, the group becomes active again and its -expiry policy is re-applied to it, starting from the date of renewal. - -In the Group Life Cycle policy, the administrator can specify a period for retaining expired groups -in the directory. If a group is not renewed within this period, the Group Life Cycle job -automatically deletes it from the directory. - -1. On the left navigation bar, click **Groups** and then select the **My Groups** tab. -2. Go to **My Expired Groups** tab and select the required group and click **Renew** on the toolbar. -3. Click **OK** to confirm the renewal. - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md b/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md deleted file mode 100644 index e6b87de3d5..0000000000 --- a/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md +++ /dev/null @@ -1,233 +0,0 @@ ---- -title: "Join/Leave a Group" -description: "Join/Leave a Group" -sidebar_position: 110 ---- - -# Join/Leave a Group - -GroupID provides you the facility to join/leave a group temporarily or permanently for a specified -period of time. - -What do you want to do? - -- [Join a group permanently](#join-a-group-permanently) -- [Join a group temporarily](#join-a-group-temporarily) -- [Leave a group permanently](#leave-a-group-permanently) -- [Leave a group temporarily](#leave-a-group-temporarily) -- [Join or leave a group on behalf of a direct report or peer](#join-or-leave-a-group-on-behalf-of-a-direct-report-or-peer) - -## Join a group permanently - -You can join a semi-private or public group as a permanent member. - -1. [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) the group(s) you - want to join. -2. On the page displayed, select the group(s) to join. -3. Point to the **Join** button on the toolbar, make sure that the **Join Perpetually** option is - selected, and click **Join**. - - You can also join a group on the group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page by using the **Join** button on the toolbar. - -When a user joins a Smart Group or Dynasty, he or she is added to the **Include** list on the -[Query Designer - Include/Exclude tab](/docs/directorymanager/11.0/welcome/group/querydesigner/includeexclude.md) -of the Query Designer. As a result, the user remains a group member even when it does not fall in -the scope of the query. - -NOTE: For a semi-private group, the group owner must approve your _join_ request before you are -added to group membership. See -[Requests](/docs/directorymanager/11.0/welcome/request/overview.md). - -## Join a group temporarily - -The logged-in user can join a semi-private or public group as a temporary member. - -1. [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) the group(s) you - want to join. -2. On the page displayed, select the group(s) to join. -3. Point to the **Join** button on the toolbar and select the **Join Temporarily** option. -4. In the **Duration** list, select one of the following options: - - - **7 Days** - to join the selected group(s) for 7 days starting today - - **30 Days** - to join the selected group(s) for 30 days starting today. - - **60 Days** - to join the selected group(s) for 60 days starting today. - - **90 Days** - to join the selected group(s) for 90 days starting today. - - **Custom** - to join the selected group(s) for the time period you specify in the **From - Date** and **To Date** boxes. You will become a member of the selected group(s) on the date - given in the **From Date** box. - -5. Click **Join**. - - You can also join a group on the group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page by using the **Join** button on the toolbar. - -When a user joins a Smart Group or Dynasty, he or she is added to the **Include** list on the -[Query Designer - Include/Exclude tab](/docs/directorymanager/11.0/welcome/group/querydesigner/includeexclude.md) -of the Query Designer. As a result, the user remains a group member even when it does not fall in -the scope of the query. - -NOTE: For a semi-private group, the group owner must approve your _join_ request before you are -added to group membership. See -[Requests](/docs/directorymanager/11.0/welcome/request/overview.md). - -## Leave a group permanently - -The logged-in user can permanently leave the membership of a semi-private or public group. - -1. In GroupID portal, click **Groups** in the left navigation pane, select Groups. - - Select the **My Groups**/**My Memberships** tab. - - Or - - [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) the group(s) - you want to leave. - -2. On the page displayed, select the required group(s). -3. Point to the **Leave** button on the toolbar, make sure that the **Leave Perpetually** option is - selected, and click **Leave**. - - You can also leave a group on the group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page by using the **Leave** button on the toolbar. - -When a user leaves a Smart Group or Dynasty, he or she is added to the **Exclude** list on the -[Query Designer - Include/Exclude tab](/docs/directorymanager/11.0/welcome/group/querydesigner/includeexclude.md) -of the Query Designer. As a result, the user is not added to group membership even when it falls in -the scope of the query. - -NOTE: For a semi-private group, the group owner must approve your _leave_ request before you are -removed from group membership. See -[Requests](/docs/directorymanager/11.0/welcome/request/overview.md). - -## Leave a group temporarily - -The logged-in user can leave the membership of a semi-private or public group on a temporary basis. - -1. In GroupID portal, click **Groups** in the left navigation pane, select Groups. - - Select the **My Groups**/**My Memberships** tab. - - Or - - [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) the group(s) - you want to leave. - -2. On the page displayed, select the required group(s). -3. Point to the **Leave** button on the toolbar and select the **Leave Temporarily** option. -4. In the **Duration** list, select one of the following options: - - - **7 Days** - to leave the selected group(s) for 7 days starting today. - - **30 Days** - to leave the selected group(s) for 30 days starting today. - - **60 Days** - to leave the selected group(s) for 60 days starting today. - - **90 Days** - to leave the selected group(s) for 90 days starting today. - - **Custom** - to leave the selected group(s) for the time period you specify in the **From - Date** and **To Date** boxes. You will be removed from group membership on the date selected - in the **From Date** box. - -5. Click **Leave**. - - You can also leave a group on the group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page by using the **Leave** button on the toolbar. - -When a user leaves a Smart Group or Dynasty, he or she is added to the **Exclude** list on the -[Query Designer - Include/Exclude tab](/docs/directorymanager/11.0/welcome/group/querydesigner/includeexclude.md) -of the Query Designer. As a result, the user is not added to group membership even when it falls in -the scope of the query. - -NOTE: For a semi-private group, the group owner must approve your _leave_ request before you are -removed from group membership. See -[Requests](/docs/directorymanager/11.0/welcome/request/overview.md). - -## Join or leave a group on behalf of a direct report or peer - -Using the GroupID portal, a user can join or leave a group on behalf of another user. - -- If a user has the ‘Manage my Direct Reports’ permission in the identity store, he or she can join - or leave a group on behalf of any of his or her direct reports. - - For example, User A has two direct reports, User B and User C. User A can have User B and User C - join/leave a group. - -- Similarly, if a user has the ‘Join/Leave on behalf of Peer’ permission in the identity store, he - or she can join or leave a group on behalf of any of his or her peers. - - For example, User A, User B and User C are peers (users having the same manager are considered - as peers). If User A has the ‘Join/Leave on behalf of Peer’ permission, he or she can have User - B and User C join/leave a group. - -**To join on behalf**: - -The logged-in user can join a group on behalf of a direct report or peer. - -1. On the left navigation bar, click **Groups** and then select the **My Groups**, **My - Memberships**, or **My Expiring Groups** tab. - - You can also [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) - the group you want to join on behalf of a direct report or peer. - -2. On the page displayed, select the group to join. -3. Click **Join** on the toolbar and then click **Other** on the dialog box. - - The _Other_ option is visible to users who have the ‘Manage my Direct Reports’ or ‘Join/Leave on - behalf of Peer’ permission or both. - -4. Search the required direct report or peer. - - - A user with the ‘Manage My Direct Reports’ permission can only search and select direct - reports. - - A user with the ‘Join/Leave on behalf of Peer’ permission can only search and select peers. - - A user with both permissions can search and select both direct reports and peers. - -5. Specify whether this direct report/peer should join the group for a permanent or temporary - period, and click **Join**. - -When a user is joined on behalf to a Smart Group or Dynasty, he or she is added to the **Include** -list on the -[Query Designer - Include/Exclude tab](/docs/directorymanager/11.0/welcome/group/querydesigner/includeexclude.md) -of the Query Designer. As a result, the user remains a group member even when it does not fall in -the scope of the query. - -**To leave on behalf:** - -The logged-in user can leave a group on behalf of a direct report or peer. - -1. On the left navigation bar, click **Groups** and then select the **My Groups**, **My - Memberships**, or **My Expiring Groups** tab. - - You can also [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) - the group you want to leave on behalf of a direct report or peer. - -2. On the page displayed, select the group to leave. -3. Click **Leave** on the toolbar and then click **Other** on the dialog box. - - The _Other_ option is visible to users who have the ‘Manage my Direct Reports’ or ‘Join/Leave on - behalf of Peer’ permission or both. - -4. Search the required direct report or peer. - - - A user with the ‘Manage My Direct Reports’ permission can only search and select direct - reports. - - A user with the ‘Join/Leave on behalf of Peer’ permission can only search and select peers. - - A user with both permissions can search and select both direct reports and peers. - -5. Specify whether this direct report/peer should leave the group for a permanent or temporary - period, and click **Leave**. - -When a user is removed on behalf from a Smart Group or Dynasty, he or she is added to the -**Exclude** list on the -[Query Designer - Include/Exclude tab](/docs/directorymanager/11.0/welcome/group/querydesigner/includeexclude.md) -of the Query Designer. As a result, the user is not added to group membership even when it falls in -the scope of the query. - -NOTE: For a semi-private group, workflow is triggered and a notification is sent to the group’s -primary owner for approval. If the requester is the default approver, the request is auto approved. -Else, the request must be approved by an authorized user for changes to take effect. - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupmembershipfunction.md b/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupmembershipfunction.md deleted file mode 100644 index 610b7355ba..0000000000 --- a/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupmembershipfunction.md +++ /dev/null @@ -1,300 +0,0 @@ ---- -title: "Group Membership functions" -description: "Group Membership functions" -sidebar_position: 80 ---- - -# Group Membership functions - -Groups let you apply a common set of policies to multiple users. Groups also guarantee consistency -of permissions and privileges across the membership. - -You can add members to groups manually, using a scheduled job, or import them from an external data -source. - -## Group Membership Settings - -To avoid large, unusual changes to Smart Group and Dynasty memberships, the administrator can -configure the ‘Out of Bounds’ setting for an identity store. - -The administrator can: - -- Specify the maximum number of members for a Smart Group and Dynasty. -- Determine actions to take if the limit is exceeded, such as not updating group membership or - breaking the membership into smaller nested groups. - -**Example:** - -Let’s assume the administrator sets the maximum membership limit to 500 and opts for nested groups -when membership exceeds this limit. - -**Scenario 1**: On update, 485 objects are fetched to be added to Group A’s membership. Since the -count is less than 500, the objects are directly added as group members. - -**Scenario 2:** On the next update, 620 objects are fetched to be added to Group A’s membership. -Since the count exceeds 500, it breaks the membership into 2 child groups (Group 1 with 500 members -and Group 2 with 120 members) and nests them into Group A. Hence, GroupID checks the member count -and takes necessary action before adding members to the group. - -NOTE: An Office 365 group cannot have other groups as members. Therefore, the option to break the -membership into child groups would have the following impact: - An Office 365 group (Group A) will be updated according to the Smart Group update process. When the -maximum membership limit is hit, the update process will create child group(s). These child groups -will exist but without any link to Group A. Hence, Group A’s membership will be empty. - -What do you want to do? - -- [Add members to a group](#add-members-to-a-group) -- [Change the membership type of a group member ](#change-the-membership-type-of-a-group-member) -- [Remove members permanently from a group](#remove-members-permanently-from-a-group) -- [Add a group to the membership of another group (nesting)](#add-a-group-to-the-membership-of-another-group-nesting) -- [Import members to a group](#import-members-to-a-group) -- [Export group members](#export-group-members) -- [Invite a guest user](#invite-a-guest-user) - -## Add members to a group - -You can add one or more objects to the membership of one or more groups. These objects would be -added as permanent members. You will find them listed as members on the Members tab in -[Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md). - -NOTE: In a Microsoft Entra ID based identity store, only user objects can be added as members of an -Office 365 group. - -Use any of the following methods to add members to groups. - -### Method 1: - -1. [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) the required - objects. -2. Select these objects on the **Search Results** page and click **Add to Group** on the toolbar. -3. The [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) is displayed, - where you can search and select the group(s) to add the objects to. - -### Method 2: - -1. [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) the group you - want to add members to. -2. Select this group on the **Search Results** page and click **Properties** on the toolbar. - - The group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed. - -3. On the **Members** tab, click **Add**. -4. Enter a search string to locate the objects to add as members, or click **Advanced** to use the - [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing a - search. -5. Save the changes. - -NOTE: These methods for adding members are recommended for static (unmanaged) groups only. For Smart -Groups, GroupID will discard any manual membership changes when it updates the group through the -Smart Group Update job. - -To add a member temporarily to a group, see -[Change the membership type of a group member ](#change-the-membership-type-of-a-group-member). - -## Change the membership type of a group member - -By default, all new members are added as permanent member to a group. However, you can change the -membership type of an object from permanent to temporary and vice versa. - -You can also add or remove an object from a group's membership for a temporary period. - -1. [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) a group to - change the membership type of its member(s). -2. Select this group on the **Search Results** page and click **Properties** on the toolbar. - - The group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed, where the **Members** tab lists the group members. - -3. To change the membership type of a member, click anywhere in the respective row to make it - editable, and select one of the following options from the **Membership** list: - - - **Perpetual** - To make the object a permanent member of the group. - - **Temporary Member** - To make the object a temporary member of the group for the period you - specify in the **Beginning** and **Ending** boxes. At the end of the period, the object is - removed from the group membership. - - **Addition Pending** - Indicates that the object will be a temporary member of the group for a - period in the future. Use the **Beginning** and **Ending** boxes to set a period. Before the - beginning date, the object’s membership type is displayed as ‘Addition Pending’. On the - beginning date, the membership type changes to ‘Temporary Member’. - - **Here is an example:** - - You add Smith as a temporary member to Group A on May 15, 2019 for future dates, May - 20-30, 2019. - - Smith will be displayed in Group A’s membership with ‘Addition Pending’ as its membership - type from May 15 to 19, 2019. However, Smith would not be added to group membership in the - provider. - - On May 20, Smith will become a temporary member of Group A and its membership type will - change to ‘Temporary Member’ from May 20 to 30, 2019. Smith will also be added to group - membership in the provider. - - After May 30, Smith will be removed from Group A as a member in GroupID and in the provider. - - - **Removal Pending** - Indicates that the object will be temporarily removed from group - membership for a period in the future. Use the **Beginning** and **Ending** boxes to set a - period. Before the beginning date, the object’s membership type is displayed as ‘Removal - Pending’. On the beginning date, the membership type will change to ‘Temporary Removed’. - - _Here is an example:_ - - You remove Smith from Group A on May 15, 2019 for future dates, May 20-30, 2019. - - Smith will be displayed in Group A’s membership with ‘Removal Pending’ as membership type - from May 15 to 19, 2019. - - On May 20, Smith’s membership type in GroupID will change to ‘Temporary Removed’; lasting - till May 30, 2019. However, Smith will be removed from Group A’s membership in the provider. - - After May 30, Smith will be added back to Group A as a permanent member in GroupID and in - the provider. - - - **Temporary Removed** - Indicates that the object is temporarily removed from group membership - for the period specified in the **Beginning** and **Ending** boxes. At the end of the period, - the object is added back to the group membership as a permanent member. - -4. Save the changes. - -The Membership Life Cycle job updates the temporary membership of groups. It adds and removes -temporary members from group membership on the specified dates. - -Consider a scenario where the Membership Life Cycle job is scheduled to run once a week, say -Mondays. If an object is to be added to group membership for three days - Wednesday till Friday, it -will not be added. This happens because the Membership Life Cycle job did not run on the particular -days for temporary membership update. - -## Remove members permanently from a group - -1. [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) the group you - want to remove member(s) from. -2. Select this group on the **Search Results** page and click **Properties** on the toolbar. - - The group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed. - -3. On the **Members** tab, select the group members you want to remove and click **Remove**. -4. Save the changes. - -NOTE: This method of removing members is recommended for static (unmanaged) groups only. For Smart -Groups, GroupID will discard any manual membership changes when it updates the group through the -Smart Group Update job. - -To remove a member temporarily from a group, see -[Change the membership type of a group member ](#change-the-membership-type-of-a-group-member). - -## Add a group to the membership of another group (nesting) - -1. In GroupID portal, click **Groups** in the left navigation pane, select Groups. -2. Select the My Groups, **My Memberships**, or **My Expiring Groups** tab. -3. Select the group(s) to add to the membership of another group and click **Add to Group** on the - toolbar. -4. On the [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md), search and - select the group to add members to it, and click **OK**. - -## Import members to a group - -You can import members to a group using an external file. - -NOTE: In a Microsoft Entra ID based identity store, only user objects can be added as members of an -Office 365 group. - -1. In GroupID portal, click **Groups** in the left navigation pane, select Groups. - - The Groups page is displayed with the **My Groups** tab in view. - -2. Select the group you want to import members to, and click **Properties** on the toolbar. - - The group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed. - -3. On the - [Group properties - Members tab](/docs/directorymanager/11.0/welcome/group/properties/members.md), - click **Import** to launch the **Import Members** wizard. -4. See - [Import Group Members](/docs/directorymanager/11.0/welcome/group/properties/importmembers.md) - for further information and instructions. -5. Save the changes. - -## Export group members - -You can export members of a group to an external file. - -1. [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) a group to - export its members to an external file. -2. Select this group on the **Search Results** page and click **Properties** on the toolbar. - - The group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed. - -3. On the **Members** tab, click **Export** to launch the **Export Members** wizard. -4. On the **Attributes** page: - - 1. In the **Attributes** list, select the required directory attributes and move them to the - **Selected Attributes** list. - - Members' data for the selected attributes is exported to the output file. - - 2. Click **Next**. - -5. On the **File Type** page, select the file type to export the data to. Supported file types are: - - - Microsoft Excel (.xls and .xlsx) - - Comma Separated Value (.csv) - - Extensible Markup Language (.xml) - - Text (.txt) - -6. Click **Finish**. -7. When the file is successfully generated, you can save it to your machine. - -## Invite a guest user - -For a Microsoft Entra ID based identity store, the portal enables you to invite a user from another -Microsoft Entra ID tenant to the membership of a group in your domain. - -1. In GroupID portal, click **Groups** in the left navigation pane, select Groups. - - The Groups page is displayed with the **My Groups** tab in view. - - Or - - [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) the group you - want to invite a guest user to. - -2. Select the required group from the list and click **Properties** on the toolbar. The group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) page - is displayed. -3. On the **Members** tab, click the **Invite User** button. -4. On the **Invite User** dialog box, provide the following information: - - 1. In the **Email** box, enter the email address of the user you want to invite to your domain. - 2. In the **Redirect URL** box, provide the URL of a portal page, such as the My Profile page. - On accepting the invite, the guest user will be redirected to this page. - 3. Add any message for the guest user in the **Personal Message** box. - 4. Click **Invite User**. - - NOTE: If the group you want to invite a guest user to is a distribution group and the - invited user is not in the guest user list of Microsoft 365 Admin portal than the invited - user is not added into the group on the first invite but on the second invite. - -5. The guest user is sent an email with the redirect link. On clicking this link, the guest user is - successfully invited. - - The **Invite User** button on the **Invite User** dialog box changes to **Add To Group**. - -6. Click the **Add To Group** button to add the guest user as a group member. -7. Save the information. - -An object for the guest user is created in Microsoft Entra ID, with type as ‘guest user’. This user -has the same rights and permissions as any other group member. - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupownershipfunction.md b/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupownershipfunction.md deleted file mode 100644 index 41d9df5717..0000000000 --- a/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupownershipfunction.md +++ /dev/null @@ -1,289 +0,0 @@ ---- -title: "Group Ownership Functions" -description: "Group Ownership Functions" -sidebar_position: 50 ---- - -# Group Ownership Functions - -The GroupID portal enables you to perform ownership related functions such as change primary owner -of a group, specify additional owner(s) of a group, import/export additional owner and so on. - -When a new group is created; by default, the group creator is set as its primary owner. However, you -can change the primary owner or even remove it, leaving the group orphan. - -You cannot remove a group’s primary owner if the Group Owners policy for your role does not allow -it. - -## Additional owners - -You can also specify temporary and permanent additional owners for a group. These can be users, -contacts and even security groups. In case of a group, all its members will be considered as -additional owners. - -You can change the ownership type of an additional owner from temporary to permanent and vice versa. - -Additional owners have the same privileges as the primary owner to manage the group. Group expiry, -deletion, and renewal notifications are sent to the additional owners along with the primary owner. -However, you can exclude some or all additional owners from receiving email notifications. - -By default, there is no restriction on the number of additional owners a group can have. However, if -the administrator has specified a maximum and minimum value for additional owners in the Group -Owners policy for your role in the identity store, you cannot create a group or save modifications -to it unless it has the specified number of additional owners. - -## Exchange 2013/2016/2019 additional owners - -Microsoft Exchange 2013/2016/2019 offers the co-managed by feature that enables you to specify -Exchange additional owners for a group, provided that Exchange 2013/2016/2019 is configured as the -messaging provider for the identity store. Exchange additional owners are stored in the -_msExchangecoManagedby_ attribute. - -GroupID sends group expiry, deletion, and renewal notifications to all Exchange additional owners -along with the group’s primary owner and additional owners. - -NOTE: For email notifications to be sent, an SMTP server must be configured for the connected -identity store. - -NOTE: Only users, contacts and security groups can be set as the primary and additional owners of a -group. Moreover, only mail-enabled users can be set as Exchange additional owners. - -NOTE: Note the following for a Microsoft Entra ID based identity store: - -- Only users can be set as primary owners. -- Microsoft Entra ID supports multiple primary owners for a group. -- At least one primary owner is mandatory. -- Exchange additional owners are not supported. - -What do you want to do? - -- [Change a group's primary owner](#change-a-groups-primary-owner) -- [Set additional owners for a group](#set-additional-owners-for-a-group) -- [Import additional owners for a group](#import-additional-owners-for-a-group) -- [Export additional owners](#export-additional-owners) -- [Change an additional owner’s ownership type](#change-an-additional-owners-ownership-type) -- [Set Exchange additional owners](#set-exchange-additional-owners) - -## Change a group's primary owner - -1. In GroupID portal, click **Groups** in the left navigation pane, select **My Groups**. - - The Groups page is displayed with the **My Groups** tab in view. - -2. Select the required group and click **Properties** on the toolbar. -3. The group's properties page is displayed. -4. On the - [Group properties - Owner tab](/docs/directorymanager/11.0/welcome/group/properties/owner.md), - the **Owner** box displays the group's primary owner. - - To change the primary owner, click **Browse** to launch the - [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md), where you can - search and select another owner. - -5. Save the changes. - -## Set additional owners for a group - -You can add and remove additional owners for a group. - -Additional owners have the same privileges as the primary owner to manage the group. - -NOTE: Only users, contacts and security groups can be set as the additional owners of a group. - If you specify a group, all its members are considered additional owners. - -NOTE: The contact object type is not supported in a Microsoft Entra ID based identity store. - -If the administrator has specified the Group Owner policy for the identity store, it may have an -impact on the number of additional owners the group can have. - -1. In GroupID portal, click **Groups** in the left navigation pane, select **My Groups**. - - The Groups page is displayed with the **My Groups** tab in view. - -2. Select the required group and click **Properties** on the toolbar. -3. The group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) page - is displayed. -4. On the - [Group properties - Owner tab](/docs/directorymanager/11.0/welcome/group/properties/owner.md), - click **Add** in the **Additional Owners** area. -5. Enter a search string to locate the object to add as an additional owner, or click **Advanced** - to use the [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for - performing a search. -6. By default, all group-related notifications (such as group expiry, deletion, and renewal - notifications) are sent to the primary owner and all additional owners. To exclude an additional - owner from receiving notifications, select the **Do not notify** check box. - - NOTE: When a Smart Group Update job runs on a group, the notification behavior is as follows: - - Even with the **Do not Notify** check box selected, the additional owner will receive the - notifications if the administrator has included its email address for job-specific - notifications. - -7. Save the changes. - -## Import additional owners for a group - -1. In GroupID portal, click **Groups** in the left navigation pane, select **My Groups**. - - The Groups page is displayed with the **My Groups** tab in view. - - Or - - [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) a group to - import its additional owners from an external file. - -2. Select the required from the list. and click **Properties** on the toolbar. - - The group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed. - -3. On the - [Group properties - Owner tab](/docs/directorymanager/11.0/welcome/group/properties/owner.md), - click **Import** to launch the **Import Additional Owners** wizard. -4. See - [Import Additional Owners](/docs/directorymanager/11.0/welcome/group/properties/importadditionalowners.md) - for further information and instructions. -5. Save the changes. - -## Export additional owners - -You can export additional owners of a group to an external file. - -1. In GroupID portal, click **Groups** in the left navigation pane, select **My Groups**. - - The Groups page is displayed with the **My Groups** tab in view. - - Or - - [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) a group to - export its additional owners to an external file. - -2. Select the group and click **Properties** on the toolbar. - - The group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed. - -3. On the **Owner** tab, click **Export** to launch the **Export Additional Owners** wizard. -4. On the **Attributes** page: - - 1. In the **Attributes** list, select the required directory attributes and move them to the - **Selected Attributes** list. - - Additional owners' data for the selected attributes is exported in the output file. - - 2. Click **Next**. - -5. On the **File Type** page, select the file type to export the data to. Supported file types are: - - - Microsoft Excel (.xls and .xlsx) - - Comma Separated Value (.csv) - - Extensible Markup Language (.xml) - - Text (.txt) - -6. Click **Finish**. -7. When the file is successfully generated, you can save it to your machine. - -## Change an additional owner’s ownership type - -Ownership type indicates whether an object is a temporary or permanent additional owner of a group. -You can change the ownership type of an additional owner from temporary to permanent and vice versa. - -1. [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) a group to - change the ownership type of its additional owner(s). -2. Select this group on the Search Results page and click **Properties** on the toolbar. -3. On the group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page, click the **Owner** tab. -4. To change the ownership type of an additional owner, click anywhere in the respective row to make - it editable, and select an option from the **Ownership** list: - - - **Perpetual** - To make the object a permanent additional owner of the group. - - **Temporary Owner** - To make the object a temporary additional owner of the group for the - period you specify in the **Beginning** and **Ending** boxes. At the end of the period, the - object is removed from the group ownership. - - **Addition Pending** - Indicates that the object will be a temporary additional owner of the - group for a period in the future. Use the **Beginning** and **Ending** boxes to set a period. - Before the beginning date, the object’s ownership type is displayed as ‘Addition Pending’. On - the beginning date, the ownership type changes to ‘Temporary Owner’. - - **Here is an example:** - - You add Smith as a temporary additional owner of Group A on May 15, 2019 for future dates, - May 20-30, 2019. - - Smith will be listed with Group A’s additional owners with ‘Addition Pending’ as its - ownership type from May 15 to 19, 2019. - - On May 20, Smith will become a temporary additional owner of Group A and its ownership type - will change to ‘Temporary Owner’ from May 20 to 30, 2019. - - After May 30, Smith will be removed from Group A as an additional owner. - - - **Removal Pending** - Indicates that the object will be temporarily removed from group - ownership for a period in the future. Use the **Beginning** and **Ending** boxes to set a - period. Before the beginning date, the object’s ownership type is displayed as ‘Removal - Pending’. On the beginning date, the ownership type will change to ‘Temporary Removed’. - - **Here is an example:** - - You remove Smith as an additional owner of Group A on May 15, 2019 for future dates, May - 20-30, 2019. - - Smith will be displayed as Group A’s additional owner with ‘Removal Pending’ as ownership - type from May 15 to 19, 2019. - - On May 20, Smith’s ownership type in GroupID will change to ‘Temporary Removed’; lasting - till May 30, 2019. - - After May 30, Smith will be added back to Group A as a permanent additional owner. - - - **Temporary Removed** - Indicates that the object is temporarily removed from group ownership - for the period specified in the **Beginning** and **Ending** boxes. At the end of the period, - the object is added back to the group as a permanent additional owner. - -5. Save the changes. - -The Managed By Life Cycle job updates the temporary ownership of groups by adding and removing -temporary additional owners on the specified dates. - -Consider a scenario where the Managed By Life Cycle job is scheduled to run once a week, say -Mondays. If an object is to be added as a group’s temporary additional owner for three days - -Wednesday till Friday, it will not be added. This happens because the Managed By Life Cycle job did -not run on the particular days for temporary ownership update. - -## Set Exchange additional owners - -If your portal is connected to an identity store having Exchange Server - -2013/2016/2019 deployed; then you can specify Exchange additional owners for a group. Exchange -additional owners have the same privileges as the primary owner. GroupID sends group expiry, -deletion, and renewal notifications to all Exchange additional owners along with the group’s primary -owner and additional owners. - -Microsoft Exchange 2013/2016/2019 offers the co-managed by feature that enables you to specify -Exchange additional group owners. - -1. In GroupID portal, click **Groups** in the left navigation pane, select **My Groups**. - - The Groups page is displayed with the **My Groups** tab in view. - -2. Select the required group and click **Properties** on the toolbar. -3. The group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) page - is displayed. -4. On the **Email** tab, click **Add** in the **Managed By** area. -5. Enter a search string to locate the object to add as an Exchange additional owner, or click - **Advance** to use the - [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing a - search. - - NOTE: Only mail-enabled users can be set as Exchange additional owners. - -6. Save the changes on the **Email** tab. - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/workingwithgroups/scheduleupdate.md b/docs/directorymanager/11.0/welcome/group/workingwithgroups/scheduleupdate.md deleted file mode 100644 index 2f501baf9f..0000000000 --- a/docs/directorymanager/11.0/welcome/group/workingwithgroups/scheduleupdate.md +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: "Scheduled Updates Functions" -description: "Scheduled Updates Functions" -sidebar_position: 70 ---- - -# Scheduled Updates Functions - -When a Smart Group or Dynasty is updated using a scheduled job, it involves the following: - -- Each Smart Group and Dynasty has a query defined for it. On update, the query retrieves records - from the directory and group membership is updated with these records. - - If the administrator has defined a Query Designer policy for your role, group membership is - updated as per the defined policy. See the - [ Query Designer Policy](/docs/directorymanager/11.0/signin/securityrole/policy/querydesigner.md)topic - for additional information. - - NOTE: Whatever the records returned by the query, the membership of an Office 365 group is - updated with user objects only. - -- The values of certain attribute(s) is updated. - - - For a Smart Group, for example, the value of the managedBy attribute is updated for nested - groups. These nested groups are created when the Out of Bounds settings are applied at the - identity store level. - - For Dynasties, the administrator can specify certain attributes in Dynasty Settings for an - identity store. Values for the selected attributes are passed on from parent to child - Dynasties. - - These attributes’ values are updated for child Dynasties on update, depending on the - inheritance option set for each Dynasty. - -## Update Methods - -GroupID Portal provides different methods to update Smart Groups and Dynasties, namely: - -- Manual update -- Scheduled update - -In both methods, the query defined for the group is executed to update membership; the difference -being that in manual update, you can execute the query manually any time while scheduled updates run -automatically at a specified frequency. - -In GroupID portal, you can perform the following functions for Smart Groups and Dynasties. - -What do you want to do? - -- [Modify the query for a Smart Group/Dynasty](#modify-the-query-for-a-smart-groupdynasty) -- [Schedule periodic membership updates for Smart Groups/Dynasties](#schedule-periodic-membership-updates-for-smart-groupsdynasties) -- [Update the membership of a Smart Group/Dynasty using the Update command](#update-the-membership-of-a-smart-groupdynasty-using-the-update-command) -- [View Smart Group Update job status](#view-smart-group-update-job-status) -- [Modify the query for a Smart Group/Dynasty created by other role members](#modify-the-query-for-a-smart-groupdynasty-created-by-other-role-members) - -## Modify the query for a Smart Group/Dynasty - -1. In GroupID portal, click **Groups** in the left navigation pane, select **My Groups**. - - The Groups page is displayed with the **My Groups** tab in view. - - Or - - [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) the group you - want to modify the query for. - -2. Select the required Smart Group or Dynasty and click **Properties** on the toolbar. -3. Use the - [Group properties - Smart Group/Query Designer tab](/docs/directorymanager/11.0/welcome/group/properties/smartgroup.md) - to view the query defined for the group. - - Click the **Query Designer** button to launch the **Query Designer** dialog box, where you can - modify the query. - -4. Save the changes. - -NOTE: For an Office 365 group in a Microsoft Entra ID based identity store, group membership is -updated with user objects only. - -## Schedule periodic membership updates for Smart Groups/Dynasties - -You can associate a scheduled Smart Group Update job with a Smart Group/Dynasty. This job runs on a -set frequency and updates the group's membership with records fetched by the respective group's -query. - -Membership update settings defined for the identity store also impact Smart Group and Dynasty -membership update. - -1. In GroupID portal, click **Groups** in the left navigation pane, select **My Groups**. - - The Groups page is displayed with the **My Groups** tab in view. - - Or - - [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) the group you - want to associate a Smart Group Update job with. - -2. Select the required Smart Group or Dynasty and click **Properties** on the toolbar. - - The group's - [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) - page is displayed. - -3. On the **Smart Group/Query Designer** tab, select a Smart Group Update job from the **Scheduled - Job** list. - - When this job runs, it updates the group's membership. - - NOTE: The schedule job will update the group taking into account Query Designer policy of group - owner role, if defined. - -4. Save the changes. - -## Update the membership of a Smart Group/Dynasty using the Update command - -You can manually update a Smart Group or Dynasty any time by selecting the group and clicking -**Update** on the toolbar. This executes the query defined for the group and updates its membership. - -Membership update settings defined for the identity store also impact Smart Group and Dynasty -membership update. - -1. In GroupID portal, click **Groups** in the left navigation pane, select **My Groups** -2. On the Groups page, click **My Groups**/**My Memberships**/**My Expiring Groups** tab. -3. On the page displayed, select the groups for manual membership update and click **Update** on the - toolbar. - - A dialog box is displayed, that shows the progress of the Smart Group Update job. - -4. You can click the **Run in Background** button on this dialog box to run the update job in the - background. - -## View Smart Group Update job status - -Use the **Background Tasks** icon in the top right corner to view the status of the Smart Group -Update jobs. - -- Jobs that are currently running in the background are displayed under **In Progress**. -- All jobs that have completed successfully, failed or canceled are listed under **Other**. - -## Modify the query for a Smart Group/Dynasty created by other role members - -If you have the permission to manage any group, you can view and modify the query of an existing or -a new Smart Group/Dynasty created by other role member according to the policy defined for your -role. You can only modify the group if there is no conflict between yours and other role's policies. - -Let’s say the administrator has defined the following Query Designer policy for the Administrator -role: - -- Start In Containers: Entire Directory containers -- Objects: Users, Groups, Contacts -- Default Filter Criteria: None - -The administrator has defined the following Query Designer Policy for the User role of which you are -a member of: - -- Start In Containers: Users -- Objects: Users -- Default Filter Criteria: Company is Exactly ABC - -A member of administrator role has created a Smart Group named QDGroup1. - -1. In GroupID portal, you search this group query of which you want to view or modify. -2. On the **Properties** page, select the **Smart Group** tab. -3. Click the **Query Designer** button to open the Query Designer dialog box. - - All the options that the administrator has restricted for your role appear as disabled. You can - modify the query using the options allowed for your role. - - Please note in case of a conflict in the role policies, you cannot modify the group. For - example: - - - the administrator role member who created the group has defined some settings on the Database - tab but in your role policy the Database tab is hidden, in this case, you will not be able to - modify the query of the group. - - Similarly, if the group has been created using the user object and in your role policy the - user object is not available, upon group update an error will be displayed. - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/workingwithgroups/sendassendonbehalf.md b/docs/directorymanager/11.0/welcome/group/workingwithgroups/sendassendonbehalf.md deleted file mode 100644 index 5d66045ad2..0000000000 --- a/docs/directorymanager/11.0/welcome/group/workingwithgroups/sendassendonbehalf.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: "The Send As and Send on Behalf features" -description: "The Send As and Send on Behalf features" -sidebar_position: 30 ---- - -# The Send As and Send on Behalf features - -The administrator can configure the Send As and Send on Behalf features for a GroupID portal. - -For the **Send As** feature, a portal user (User A) can set another object or objects in its Send As -list. An added object (User B) will be able to choose User A’s email address in the ‘From’ field -when composing a message in Outlook. In this instance, the message, while sent by User B, will -appear as sent by User A. - -Similarly, for the **Send on Behalf** feature, a portal user (User A) can set another object or -objects in its Send on Behalf list. An added object (User B) will be able to choose User A’s email -address in the From field when composing a message in Outlook. However, message recipients will see -both User A’s address and User B’s address (as the actual author of the message). This means that -when User B sends a message using User A’s address, the ‘From’ address will show ‘From: Mailbox -`` on behalf of Mailbox ``'. - -The administrator can provide the Send As and Send on Behalf features on any tab in -[Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md). They -are displayed as: - -![sendassendon](/images/directorymanager/11.0/portal/group/manage/sendassendon.webp) - -Use the **Add** and **Remove** buttons to add and remove objects in the Send As and Send on Behalf -lists. - -NOTE: Only mailboxes and mail-enabled groups can add objects to their Send As and Send on Behalf -lists. - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md b/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md deleted file mode 100644 index 72e029fe4a..0000000000 --- a/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: "Working with Groups" -description: "Working with Groups" -sidebar_position: 40 ---- - -# Working with Groups - -A GroupID portal enables you to manage your directory groups in the identity store, so you can do -the following and more: - -- Add and remove members from your groups -- Join and leave other groups -- Associate a scheduled job for membership update with Smart Groups -- Expire groups instantly or set an expiry policy to auto expire them later - -General - -- [Search for groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/generalfunction.md#search-for-groups) -- [View object properties](/docs/directorymanager/11.0/welcome/group/workingwithgroups/generalfunction.md#view-object-properties) -- [View groups managed by an object](/docs/directorymanager/11.0/welcome/group/workingwithgroups/generalfunction.md#view-groups-managed-by-an-object) -- [Manage group access](/docs/directorymanager/11.0/welcome/group/workingwithgroups/generalfunction.md#manage-group-access) -- [Set email delivery restrictions](/docs/directorymanager/11.0/welcome/group/workingwithgroups/generalfunction.md#set-email-delivery-restrictions) -- [The Send As and Send on Behalf features](/docs/directorymanager/11.0/welcome/group/workingwithgroups/sendassendonbehalf.md) - -Group Membership - -- [Add members to a group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupmembershipfunction.md#add-members-to-a-group) -- [Change the membership type of a group member ](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupmembershipfunction.md#change-the-membership-type-of-a-group-member) -- [Remove members permanently from a group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupmembershipfunction.md#remove-members-permanently-from-a-group) -- [Add a group to the membership of another group (nesting)](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupmembershipfunction.md#add-a-group-to-the-membership-of-another-group-nesting) -- [Import members to a group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupmembershipfunction.md#import-members-to-a-group) -- [Export group members](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupmembershipfunction.md#export-group-members) -- [Invite a guest user](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupmembershipfunction.md#invite-a-guest-user) - -Scheduled Updates - -- [Modify the query for a Smart Group/Dynasty](/docs/directorymanager/11.0/welcome/group/workingwithgroups/scheduleupdate.md#modify-the-query-for-a-smart-groupdynasty) -- [Schedule periodic membership updates for Smart Groups/Dynasties](/docs/directorymanager/11.0/welcome/group/workingwithgroups/scheduleupdate.md#schedule-periodic-membership-updates-for-smart-groupsdynasties) -- [Update the membership of a Smart Group/Dynasty using the Update command](/docs/directorymanager/11.0/welcome/group/workingwithgroups/scheduleupdate.md#update-the-membership-of-a-smart-groupdynasty-using-the-update-command) -- [View Smart Group Update job status](/docs/directorymanager/11.0/welcome/group/workingwithgroups/scheduleupdate.md#view-smart-group-update-job-status) - -Group Ownership - -- [Change a group's primary owner](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupownershipfunction.md#change-a-groups-primary-owner) -- [Set additional owners for a group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupownershipfunction.md#set-additional-owners-for-a-group) -- [Import additional owners for a group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupownershipfunction.md#import-additional-owners-for-a-group) -- [Export additional owners](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupownershipfunction.md#export-additional-owners) -- [Change an additional owner’s ownership type](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupownershipfunction.md#change-an-additional-owners-ownership-type) -- [Set Exchange additional owners](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupownershipfunction.md#set-exchange-additional-owners) - -Join/Leave a Group - -- [Join a group permanently](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#join-a-group-permanently) -- [Join a group temporarily](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#join-a-group-temporarily) -- [Leave a group permanently](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#leave-a-group-permanently) -- [Leave a group temporarily](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#leave-a-group-temporarily) -- [Join or leave a group on behalf of a direct report or peer](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupjoinleave.md#join-or-leave-a-group-on-behalf-of-a-direct-report-or-peer) - -Dynasties - -- [Manage attributes for an Organizational/Geographical/Custom Dynasty](/docs/directorymanager/11.0/welcome/group/workingwithgroups/dynastyfunction.md#manage-attributes-for-an-organizationalgeographicalcustom-dynasty) -- [Manage Managerial Dynasty structure](/docs/directorymanager/11.0/welcome/group/workingwithgroups/dynastyfunction.md#manage-managerial-dynasty-structure) -- [Set attribute inheritance](/docs/directorymanager/11.0/welcome/group/workingwithgroups/dynastyfunction.md#set-attribute-inheritance) -- [Modify alias and display name templates](/docs/directorymanager/11.0/welcome/group/workingwithgroups/dynastyfunction.md#modify-alias-and-display-name-templates) - -Group Expiry and Deletion - -- [Group Expiry](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiry.md) -- [Expire a group manually ](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiryfunction.md#expire-a-group-manually) -- [Change the expiry policy for a group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiryfunction.md#change-the-expiry-policy-for-a-group) -- [Attest an expiring group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiryfunction.md#attest-an-expiring-group) -- [Renew an expired group](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupexpiryfunction.md#renew-an-expired-group) -- [ Group Deletion](/docs/directorymanager/11.0/welcome/group/workingwithgroups/groupdeletion.md) - -Query Designer Policy for Groups - -- [Modify the query for a Smart Group/Dynasty created by other role members](/docs/directorymanager/11.0/welcome/group/workingwithgroups/scheduleupdate.md#modify-the-query-for-a-smart-groupdynasty-created-by-other-role-members) -- [Schedule periodic membership updates for Smart Groups/Dynasties](/docs/directorymanager/11.0/welcome/group/workingwithgroups/scheduleupdate.md#schedule-periodic-membership-updates-for-smart-groupsdynasties) - (as per group owner role's Query Designer policy) - -**See Also** - -- [Groups](/docs/directorymanager/11.0/welcome/group/create/overview.md) -- [Group Properties](/docs/directorymanager/11.0/welcome/group/properties/overview.md) -- [User Account Settings](/docs/directorymanager/11.0/welcome/generalfeatures/user.md) diff --git a/docs/directorymanager/11.0/welcome/history/_category_.json b/docs/directorymanager/11.0/welcome/history/_category_.json deleted file mode 100644 index 7afd4779cc..0000000000 --- a/docs/directorymanager/11.0/welcome/history/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "History", - "position": 100, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/history/mydirectorygroup.md b/docs/directorymanager/11.0/welcome/history/mydirectorygroup.md deleted file mode 100644 index f241d2424f..0000000000 --- a/docs/directorymanager/11.0/welcome/history/mydirectorygroup.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -title: "My Groups' History" -description: "My Groups' History" -sidebar_position: 30 ---- - -# My Groups' History - -To view a detailed list of the actions that you have performed on the groups that you own using the -following, click **History** on the left navigation bar: - -- GroupID portal -- GroupID Management Shell cmdlets -- GroupID mobile app -- GroupID APIs - -History page opens with the **My History** tab in view. On the displayed page, click the **My Groups -History** tab. - -History is logged for groups that have you as the primary or additional owner. - -What do you want to do? - -- History view modes -- Filter history data -- Add notes to history items -- Export history data - -## History view modes - -History data can be viewed in two modes: - -### Detailed view - -Displays history data in a descriptive and user-friendly manner. Items are sorted according to the -date and time of modification, showing the most recent at the top. - -This is the default view of history data. - -### Administrative view - -This view is only available if you have administrative privileges. - -Click **Switch to Administrative View** to view history data in administrative mode. It displays -history data in a tabular form. History items are grouped by date. Each date group displays changes -made to your groups during that period. - -You can expand an item to view more details, such as the names of the attributes modified in an -action along with their old and new values. - -## Filter history data - -1. Click **My Groups History Grid Filter** to specify a criteria for filtering history data. -2. Click **Add Filter** to add the filter criteria. -3. From the **Select a filter** list, select attributes to filter history data on the basis of the - attribute modified. -4. Two more boxes get displayed next to **Select a filter** box upon selecting a filter. - - - **Select an Operator**: Select an operator from the first list. - - **Select a Value**: Specify a value for the selected operator in the second box. - - For example, if you select '_Modified on_' from the first list, '_is exactly_' from the second - list, and specify a date in the third box, then history items that were modified on the - specified date will be displayed. - -5. Click **Apply Filter**. - - History items that match the specified criteria are displayed. - -6. Use the **Search In** list to load history data from the entire directory or a domain. - - This list shows a tree view of all the domains in the connected identity store. Select the - required domains or select **Entire Directory** to view objects' history from all domains. - -7. Click **Refresh** to reload history data for the domains selected in the **Search In** list. - -## Add notes to history items - -GroupID enables a user to add notes to history items that were logged as a result of any change they -made. A note may explain the reason for making a certain change, such as why they changed the -security type for a group. - -Only the user who added the note can update it. Other users can only view this note; they cannot -edit or add comments. - -- The **Add Note** button is available next to a history item listed. -- Once you add a note, the **Add Note** button changes to **View Note**. All portal users can use - this button to view the note. - -### Add a note - -The option to add a note is available on the My Account History card on Dashboard, and all History -pages i.e.[My History](/docs/directorymanager/11.0/welcome/history/myhistory.md), -[My Direct Reports' History](/docs/directorymanager/11.0/welcome/history/mydirectreport.md) -and My Groups' History pages. - -1. Click the **Add Note** button next to a history item to add a note to it. -2. On the **Add Note** dialog box, write a note and click **Add Note** to save it. - - Your note can have a maximum of 500 characters. - -### Edit a note - -You can only edit the note that you have added. - -1. Click the **View Note** button next to a history item to view or edit the note for it. -2. On the **Note** dialog box, click the **Edit Note** button and update the note. -3. Click **Update Note** to save the changes. - -### View a note - -Once a note is added, other users can view it, but they cannot edit it or add comments to it. - -- In the Detailed view: - - Click the **View Note** button next to a history item to view the note for it. - -- In the Administrative view: - - The **Note** column displays the note. - -### Remove a note - -You can only remove the note that you have added. - -1. Click the **View Note** button next to a history item to view or remove the note for it. -2. Click the **Edit Note** button and remove the note. -3. Click **Update Note**. - -## Export history data - -You can export history data displayed to an external file. - -Click the **Export History** button and select the file type to export history data to. Supported -formats are: - -- Excel -- CSV -- XML - -The file is created at the download location specified in the browser settings. - -**See Also** - -- [History](/docs/directorymanager/11.0/welcome/history/overview.md) -- [Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) diff --git a/docs/directorymanager/11.0/welcome/history/mydirectreport.md b/docs/directorymanager/11.0/welcome/history/mydirectreport.md deleted file mode 100644 index 5129256cad..0000000000 --- a/docs/directorymanager/11.0/welcome/history/mydirectreport.md +++ /dev/null @@ -1,145 +0,0 @@ ---- -title: "My Direct Reports' History" -description: "My Direct Reports' History" -sidebar_position: 20 ---- - -# My Direct Reports' History - -To view the history of updates and changes made to your direct reports, click **History** on the -left navigation bar. History page opens with the **My History** tab in view. On the displayed page, -click the **My Direct Reports' History** tab. - -The following events are logged on this page: - -- When an object is added as your direct reports. -- When a direct report is removed from your direct reports. -- When you or any other user makes certain changes to the properties of a direct report. - -NOTE: When any of your direct reports is deleted, its history is also deleted. - -What do you want to do? - -- History view modes -- Filter history data -- Add notes to history items -- Export history data - -## History view modes - -History data can be viewed in two modes: - -### Detailed view - -Displays history data in a descriptive and user-friendly manner. Items are sorted according to the -date and time of modification, showing the most recent at the top. - -This is the default view of history data. - -### Administrative view - -This view is only available if you have administrative privileges. - -Click **Switch to Administrative View** to view history data in administrative mode. It displays -history data in a tabular form. History items are grouped by date. Each date group displays changes -made to your direct reports during that period. - -You can expand an item to view more details, such as the names of the attributes modified in an -action along with their old and new values. - -## Filter history data - -1. Click **My Direct Reports History Grid Filter** to specify a criteria for filtering history data. -2. Click **Add Filter** to add the filter criteria. -3. From the **Select a filter** list, select attributes to filter history data on the basis of the - attribute modified. -4. Two more boxes get displayed next to **Select a filter** box upon selecting a filter. - - - **Select an Operator**: Select an operator from the first list. - - **Select a Value**: Specify a value for the selected operator in the second box. - - For example, if you select '_Modified on_' from the first list, _'is exactly_' from the second - list, and specify a date in the third box, then history items that were modified on the - specified date will be displayed. - -5. Click **Apply Filter**. - - History items that match the specified criteria are displayed. - -6. Use the **Search In** list to load history data from the entire directory or a domain. - - This list shows a tree view of all the domains in the identity store. Select the required - domains or select **Entire Directory** to view objects' history from all domains. - -7. Click **Refresh** to reload history data for the domains selected in the **Search In** list. - -## Add notes to history items - -GroupID enables a user to add notes to history items that were logged as a result of any change they -made. A note may explain the reason for making a certain change, such as why they changed the -security type for a group. - -Only the user who added the note can update it. Other users can only view this note; they cannot -edit or add comments. - -- The **Add Note** button is available next to a history item listed. -- Once you add a note, the **Add Note** button changes to **View Note**. All portal users can use - this button to view the note. - -### Add a note - -The option to add a note is available on the My Account History card on Dashboard, and all History -pages i.e.[My History](/docs/directorymanager/11.0/welcome/history/myhistory.md), My Direct -Reports' History and -[My Groups' History](/docs/directorymanager/11.0/welcome/history/mydirectorygroup.md) pages. - -1. Click the **Add Note** button next to a history item to add a note to it. -2. On the **Add Note** dialog box, write a note and click **Add Note** to save it. - - Your note can have a maximum of 500 characters. - -### Edit a note - -You can only edit the note that you have added. - -1. Click the **View Note** button next to a history item to view or edit the note for it. -2. On the **Note** dialog box, click the **Edit Note** button and update the note. -3. Click **Update Note** to save the changes. - -### View a note - -Once a note is added, other users can view it, but they cannot edit it or add comments to it. - -- In the Detailed view: - - Click the **View Note** button next to a history item to view the note for it. - -- In the Administrative view: - - The **Note** column displays the note. - -### Remove a note - -You can only remove the note that you have added. - -1. Click the **View Note** button next to a history item to view or remove the note for it. -2. Click the **Edit Note** button and remove the note. -3. Click **Update Note**. - -## Export history data - -You can export history data displayed to an external file. - -Click the **Export History** button and select the file type to export history data to. Supported -formats are: - -- Excel -- CSV -- XML - -The file is created at the download location specified in the browser settings. - -**See Also** - -- [History](/docs/directorymanager/11.0/welcome/history/overview.md) -- [Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) diff --git a/docs/directorymanager/11.0/welcome/history/myhistory.md b/docs/directorymanager/11.0/welcome/history/myhistory.md deleted file mode 100644 index 810ef9273f..0000000000 --- a/docs/directorymanager/11.0/welcome/history/myhistory.md +++ /dev/null @@ -1,136 +0,0 @@ ---- -title: "My History" -description: "My History" -sidebar_position: 10 ---- - -# My History - -To view a log of all actions you have performed in the identity store using the following: , click -**History** on the left navigation bar. - -On the History page, click **My History** tab to view your history. - -The log also tracks any change that another user makes to your profile using the portal. - -What do you want to do? - -- History view modes -- Filter history data -- Add notes to history items -- Export history data - -## History view modes - -History data is available in two modes: - -### Detailed view - -Displays history data in a descriptive and user-friendly manner. Items are sorted according to the -date and time of modification, showing the most recent at the top. - -This is the default view of history data. - -### Administrative view - -This view is only available if you have administrative privileges. - -Click **Switch to Administrative View** to view history data in administrative mode. It displays -history data in a tabular form. History items are grouped by date. Each date group displays changes -made to directory objects during that period. - -You can expand an item to view more details, such as the names of the attributes modified in an -action along with their old and new values. - -## Filter history data - -1. Click **My History Grid Filter** to specify a criteria for filtering history data. -2. Click **Add Filter** to add the filter criteria. -3. From the **Select a filter** list, select attributes to filter history data on the basis of the - attribute modified. -4. Two more boxes get displayed next to **Select a filter** box upon selecting a filter. - - - **Select an Operator**: Select an operator from the first list. - - **Select a Value**: Specify a value for the selected operator in the second box. - - For example, if you select '_Modified on_' from the first list, _'is exactly_' from the second - list, and specify a date in the third box, then history items that were modified on the - specified date will be displayed. - -5. Click **Apply Filter**. - - History items that match the specified criteria are displayed. - -6. Click **Reset Filter** to remove all the filters. - -## Add notes to history items - -GroupID enables a user to add notes to history items that were logged as a result of any change they -made. A note may explain the reason for making a certain change, such as why they changed the -security type for a group. - -Only the user who added the note can update it. Other users can only view this note; they cannot -edit or add comments. - -- The **Add Note** button is available next to a history item listed. -- Once you add a note, the **Add Note** button changes to **View Note**. All portal users can use - this button to view the note. - -### Add a note - -The option to add a note is available on the My Account History card on Dashboard, and all History -pages i.e.My History, -[My Direct Reports' History](/docs/directorymanager/11.0/welcome/history/mydirectreport.md) -and [My Groups' History](/docs/directorymanager/11.0/welcome/history/mydirectorygroup.md) -pages. - -1. Click the **Add Note** button next to a history item to add a note to it. -2. On the **Add Note** dialog box, write a note and click **Add Note** to save it. - - Your note can have a maximum of 500 characters. - -### Edit a note - -You can only edit the note that you have added. - -1. Click the **View Note** button next to a history item to view or edit the note for it. -2. On the **Note** dialog box, click the **Edit Note** button and update the note. -3. Click **Update Note** to save the changes. - -### View a note - -Once a note is added, other users can view it, but they cannot edit it or add comments to it. - -- In the Detailed view: - - Click the **View Note** button next to a history item to view the note for it. - -- In the Administrative view: - - The **Note** column displays the note. - -### Remove a note - -You can only remove the note that you have added. - -1. Click the **View Note** button next to a history item to view or remove the note for it. -2. Click the **Edit Note** button and remove the note. -3. Click **Update Note**. - -## Export history data - -You can export history data displayed to an external file. - -Click the **Export History** button and select the file type to export history data to. Supported -formats are: - -- Excel -- CSV -- XML - -The file is created at the download location specified in the browser settings. - -**See Also** - -- [History](/docs/directorymanager/11.0/welcome/history/overview.md) -- [Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) diff --git a/docs/directorymanager/11.0/welcome/history/overview.md b/docs/directorymanager/11.0/welcome/history/overview.md deleted file mode 100644 index 334d939aa9..0000000000 --- a/docs/directorymanager/11.0/welcome/history/overview.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: "History" -description: "History" -sidebar_position: 100 ---- - -# History - -The GroupID portal maintains a log of actions when objects are created, modified, and deleted in the -portal provided that the GroupID administrator has enabled history tracking for the identity store. -GroupID portal also tracks all actions that are committed to the directory using: - -- GroupID Management Shell cmdlets - -- GroupID mobile app - -- GroupID APIs - -The administrator can configure the following for history tracking: - -- track all or specific events -- retain history data forever or for a specified duration - -Therefore, history data represents only the events that history-tracking is configured to track. -Furthermore, if history-tracking is not enabled or has been recently disabled for the identity -store, the portal does not display history data or it displays data that was logged before -history-tracking was turned off. - -A user can add a note to a history action that he/she performed. Other users can just view that -note. This note may explain the reason for performing that action. See the -[Configure History Tracking](/docs/directorymanager/11.0/signin/identitystore/configure/historytracking.md) -topic. - -## History views in the portal - -The GroupID Portal displays history as below: - -- **My Account History** on the portal's dashboard - Displays a list of actions performed by the logged-on user. -- The **History** tab in group / user / mailbox / contact properties. - Displays the actions performed on the object by different users. -- The [My History](/docs/directorymanager/11.0/welcome/history/myhistory.md) page. - Displays the actions performed by the logged-on user and any changes made to this user's profile - by another user. -- The - [My Direct Reports' History](/docs/directorymanager/11.0/welcome/history/mydirectreport.md) - page. - Displays the changes made to the logged-on user's direct reports by this user or by any other - user. -- The [My Groups' History](/docs/directorymanager/11.0/welcome/history/mydirectorygroup.md) - page. - Displays the changes made by the logged-on user to a group that they own. - -Use the **History items to display on home page** setting on the User Settings panel to specify the -number of history items to display on Dashboard. - -Use the **History items to display** setting on the User Settings panel to specify the number of -history items to display on the History tab, My History page, My Direct Reports History page, and My -Groups History page. - -Use the **Most recent objects** setting on the User Settings panel to specify the number of recent -objects to show on the **My Account History** card on Dashboard. - -See Also - -- [My History](/docs/directorymanager/11.0/welcome/history/myhistory.md) -- [My Direct Reports' History](/docs/directorymanager/11.0/welcome/history/mydirectreport.md) -- [My Groups' History](/docs/directorymanager/11.0/welcome/history/mydirectorygroup.md) -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) -- [Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) -- [History in GroupID](/docs/directorymanager/11.0/signin/concepts/history.md) diff --git a/docs/directorymanager/11.0/welcome/login.md b/docs/directorymanager/11.0/welcome/login.md deleted file mode 100644 index bb7dde8738..0000000000 --- a/docs/directorymanager/11.0/welcome/login.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: "Access Portal" -description: "Access Portal" -sidebar_position: 10 ---- - -# Access Portal - -Use the GroupID portal URL the administrator has provided you to access the portal. The URL lands -you on the **Welcome to GroupID** page. Using this page, you can perform the following functions: - -- Unlock your identity store account -- Reset forgotten or lost passwords -- Sign In - -To manage access in GroupID, security roles are defined for an identity store. Each role is granted -a set of permissions that enable role members to access specific GroupID functions. - -## Sign In - -You must connect GroupID portal to an identity store while signing in. - -Use any of the following methods to connect and sign in: - -- Select an identity store and enter the username and password of your identity store account. -- Select an identity store and sign in using a SAML provider. - (This option is available if a SAML provider is configured with the selected identity store.) - - NOTE: Microsoft Entra ID MFA enabled users cannot log into GroupID using their username and - password. They will be authenticated through the SAML provider configured for in GroupID. - -- Scan the displayed QR code with the GroupID app installed on your smartphone. - (This option is available if the QR code feature is enabled for the identity store you want to - connect to.) - -Next, you may have to pass second factor authentication, depending on whether it is enabled for your -role in the identity store. You can perform tasks in GroupID portal in keeping with your role and -permissions in the identity store. - -**To sign in:** - -1. Type the GroupID portal URL in the address bar of a web browser and press Enter. For example: - https://[machine name]:4443/[portal name] -2. You can sign in using any of the following methods: - - - [With your Identity Store Account](#with-your-identity-store-account) - - [With a SAML Provider](#with-a-saml-provider) - - [With QR Code](#with-qr-code) - -### With your Identity Store Account - -1. On the **GroupID Authenticate** page, click an identity store to connect to. -2. In the **Username** and **Password** boxes, enter the username and password of your identity - store account, or click **Edit** next to the identity store name to connect to a different - identity store. -3. After providing your credentials, click **Sign In**. - -### With a SAML Provider - -You can opt for single sign-on across all GroupID clients, provided that a SAML provider is -configured with GroupID. See the following topics for additional information on the SAML provider -configuration: - -- [Configure GroupID in Microsoft Entra ID for SSO](/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/configureinentra.md) -- [Configure the Microsoft Entra SSO Application in GroupID](/docs/directorymanager/11.0/authenticate/asserviceprovider/entrasso/configureproviderindirectorymanager.md) - -On the **GroupID Authenticate** page, click the button or image for the provider and proceed to sign -in. - -NOTE: For Microsoft Entra ID multifactor-enabled users, a SAML provider must be configured for -signing into GroupID. - -### With QR Code - -If QR code is enabled for any of the identity stores, the **GroupID Authenticate** page displays the -code too. Use the QR code to sign into an identity store. - -1. Open the GroupID app on your smartphone and connect to an identity store. This identity store - should have the QR code feature enabled for it. - GroupID portal would connect to the same identity store you connect the app to. -2. Tap **Configure Application Using QR Code** in the app. -3. Capture the QR code through the app on your phone. One of the following happens: - - - If the identity store that the app is connected to does not have the QR code option enabled, - an error message is displayed. - - If the identity store that the app is connected to has the QR code option enabled, GroupID - portal will connect to this identity store. - -### Second Factor Authentication - -When Second Factor Authentication is enabled for your role in the selected identity store, one of -the following applies: - -- If you have not enrolled your identity store account in GroupID, the Enroll Account window is - displayed. You must enroll your identity store account using at least one authentication type. - - See the - [Enroll Your Identity Store Account](/docs/directorymanager/11.0/welcome/secondfactorauthentication/enrollaccount.md) - topic. - -- If you have already enrolled your identity store account in GroupID, the Authenticate window is - displayed. It lists the authentication types that you used to enroll your account with. You must - authenticate your identity store account with one authentication type. - - See the - [Authenticate Your Identity Store Account](/docs/directorymanager/11.0/welcome/secondfactorauthentication/authenticateaccount.md) - topic. - -## Sign Out - -In GroupID portal, click your profile info in the top right corner and select **Sign Out**. - -**See Also** - -- [Second Factor Authentication](/docs/directorymanager/11.0/welcome/secondfactorauthentication/secondfactorauthentication.md) -- [Unlock your accounts](/docs/directorymanager/11.0/welcome/user/manage/unlockaccount.md) -- [Reset Passwords](/docs/directorymanager/11.0/welcome/secondfactorauthentication/passwordreset.md) diff --git a/docs/directorymanager/11.0/welcome/passwordmanagement.md b/docs/directorymanager/11.0/welcome/passwordmanagement.md deleted file mode 100644 index d3c0c008a4..0000000000 --- a/docs/directorymanager/11.0/welcome/passwordmanagement.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: "Password Management" -description: "Password Management" -sidebar_position: 60 ---- - -# Password Management - -Complex passwords keep network infrastructure secure but there is a real cost to that security. -Users forget their complex passwords. They can be given two options: either they call helpdesk to -reset their password at an exorbitant cost or have a self-service tool. GroupID can serve both these -functions. Using it: - -- **Helpdesk**: can reset passwords and unlock accounts for users after authentication. See the - [Reset Passwords](/docs/directorymanager/11.0/signin/helpdesk/operation/resetpassword.md) - topic for detailed information. -- **Users**: can reset their own passwords and their own accounts after passing multifactor - authentication. They can perform these password related functions through various mediums, such - as: - - - **GroupID portal**: Using it, they can: - - - reset their forgotten passwords. See the - [Reset Passwords](/docs/directorymanager/11.0/welcome/secondfactorauthentication/passwordreset.md) - topic for further information on how to reset forgotten passwords. - - change their account passwords. See the - [ Change your password](/docs/directorymanager/11.0/welcome/user/manage/changepassword.md) - topic for further information on how to change their account passwords. - - reset their own password or password of any other user. See the - [Reset your password](/docs/directorymanager/11.0/welcome/user/manage/resetpassword.md) - topic for further information. - - unlock their identity store account. See the - [Unlock your accounts](/docs/directorymanager/11.0/welcome/user/manage/unlockaccount.md) - topic for detailed information on how to unlock their identity store accounts. - - - **GroupID app**: Using it, they can: - - - change their identity store account password - - reset their identity store account password - - unlock their identity store account - - - **Client Software and Web Access** - - The client software to install on user workstations is called - [ GroupID Credential Provider](/docs/directorymanager/11.0/credentialprovider/credentialprovider.md) - and available for distribution using various IT enabled distribution methods such as group - policy and Microsoft System Center Configuration Manager (SCCM). See the - [Install GroupID Credential Provider](/docs/directorymanager/11.0/credentialprovider/installcp.md) - topic for additional information. - - The distributed client enables the **Forgot Password?** and **Unlock Account** links on the - Windows logon screen of users’ workstations. Users, who forget their passwords or are locked - out, can easily access these functions from their machine. There is also an option for web - access for users if they are on a remote computer. - - - **Passwordless Authentication with QR Code** - - Opt for a hassle-free experience by signing into GroupID through QR code as an alternative - to entering a username and password. See the - [With QR Code](/docs/directorymanager/11.0/signin/signin.md#with-qr-code) - section in the - [Access Admin Center](/docs/directorymanager/11.0/signin/signin.md) topic. diff --git a/docs/directorymanager/11.0/welcome/request/_category_.json b/docs/directorymanager/11.0/welcome/request/_category_.json deleted file mode 100644 index 620c2903c1..0000000000 --- a/docs/directorymanager/11.0/welcome/request/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Requests", - "position": 120, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/request/allrequest.md b/docs/directorymanager/11.0/welcome/request/allrequest.md deleted file mode 100644 index a7357128c8..0000000000 --- a/docs/directorymanager/11.0/welcome/request/allrequest.md +++ /dev/null @@ -1,142 +0,0 @@ ---- -title: "All Requests" -description: "All Requests" -sidebar_position: 20 ---- - -# All Requests - -Use **All Requests** node to view workflow requests generated by enterprise users. The view displays -pending requests only. - -You can click a column header to sort the requests by that attribute. For each request, you can view -the description, approver(s), requester name, the target to change, status, date the request was -made on, and the reason why that request was denied. Expand a request to view more details, such as -the field changed along with its old and new value. - -What do you want to do? - -- [Approve a request](#approve-a-request) -- [Deny a request](#deny-a-request) -- [ReRoute a request ](#reroute-a-request) -- [Filter requests](#filter-requests) - -## Approve a request - -1. On the left navigation bar, click **Requests**. Then click the **All Requests** tab to view the - workflow requests that are pending for approval. - - You can expand a request to view its details. - -2. Select a request and click **Approve Requests** to approve it. - - GroupID will process the request and execute the changes. - -## Deny a request - -1. On the left navigation bar, click **Requests**. Then click the **All Requests** tab to view the - workflow requests that are pending for approval. - - You can expand a request to view its details. - -2. Select the request you want to deny, type the reason for denial and click **Deny Request**. - - GroupID will not perform any action and no changes will be made. - -## ReRoute a request - -To reroute a request to a different approver, follow these steps: - -1. On the left navigation bar, click **Requests**. Then click the **All Requests** tab to view the - workflow requests that are pending for approval. - - You can expand a request to view its details. - -2. Select the request you want to reroute, click **ReRoute**. -3. On the **Reroute Workflow Request** wizard, select one of the following: - - - Manager of User - - Manager and Additional Manager of User - - Other - - Search the any user and select them from the search list. - -4. Click **Reroute** to close the wizard. - -## Filter requests - -1. On the **Requests** page, use the following areas to specify a criterion for filtering the - requests' list. - - - Requesters - - Approvers - - Date - - Actual Approver / Denier - - Target Object - - Request Status - -2. From **Requesters** list, select an option: - - - **All:** view requests requested by all the users. - - **Custom:** view requests requested by specific users mentioned in **Custom Requesters** box. - -3. From **Approvers** list, select an option: - - - **All:** view requests approved by all the users. - - **Custom:** view requests approved by specific users mentioned in **Custom Approvers** box. - -4. Use the **Date** list to specify the duration you want to view the requests for. - - - All - - Today - - Yesterday - - Last 7 Days - - Last 30 Days - - Last 90 Days - - Requests that are initiated in the given period will be displayed. - -5. From **Actual Approver/Denier** list, select an option: - - - **All:** view requests approved/denied by all the users. - - **Custom:** view requests approved/denied by specific users mentioned in **Custom Actual - Approvers/Deniers** box. - -6. From **Target Object** list, select an option: - - - **All:** view requests related to all types of objects. - - **Custom:** view requests related to specific objects mentioned in **Custom Target Object** - box. - -7. From the **Request status** list, select an option: - - - **Pending**: view requests that are pending for you to approve or deny. - - **Approved**: view requests that you have approved. - - **Denied**: view requests that you have denied. - - **All**: view all pending, approved, and denied requests. - -8. To add more filters, click **Add Filter**. -9. From the **Select a filter** list, select any of the following to search relevant requests: - - - Description - - Workflow Event - - Workflow Type - -10. Two more boxes get displayed next to **Select a filter** box upon selecting a filter. - - - **Select an Operator**: select the operator from that is relevant to your filter. - - **Select a Value**: Specify the value for the selected operator in the first box. - -11. Click **Apply**. - - Workflow requests matching the specified criteria are displayed. - -12. Click **Reset Filter** to remove the filters that you have added. - - All the workflow request will be displayed below. - -**See Also** - -- [Requests](/docs/directorymanager/11.0/welcome/request/overview.md) -- [My Requests](/docs/directorymanager/11.0/welcome/request/myrequest.md) -- [Request Inbox](/docs/directorymanager/11.0/welcome/request/pending.md) diff --git a/docs/directorymanager/11.0/welcome/request/myrequest.md b/docs/directorymanager/11.0/welcome/request/myrequest.md deleted file mode 100644 index 03b03c50f3..0000000000 --- a/docs/directorymanager/11.0/welcome/request/myrequest.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "My Requests" -description: "My Requests" -sidebar_position: 10 ---- - -# My Requests - -To view the workflow requests that you initiated, expand the **Requests** node on the left -navigation bar and select **My Requests**. You can view the requests pending for approval as well as -requests that have been processed (approved or denied). - -By default, the page displays pending requests that you initiated today. You can also filter the -request by adding filters. - -For each request, you can view the description, approver(s), requester name, the target to change, -status, date the request was made on, and the reason why that request was denied. Expand a request -to view more details, such as the field changed along with its old and new value. - -**See Also** - -- [Requests](/docs/directorymanager/11.0/welcome/request/overview.md) -- [All Requests](/docs/directorymanager/11.0/welcome/request/allrequest.md) -- [Request Inbox](/docs/directorymanager/11.0/welcome/request/pending.md) diff --git a/docs/directorymanager/11.0/welcome/request/overview.md b/docs/directorymanager/11.0/welcome/request/overview.md deleted file mode 100644 index 214f854393..0000000000 --- a/docs/directorymanager/11.0/welcome/request/overview.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: "Requests" -description: "Requests" -sidebar_position: 120 ---- - -# Requests - -A workflow request is a set of rules that GroupID uses as a built-in auditing system to ensure that -users enter correct data before committing changes to a directory. A workflow triggers when some -GroupID operation, performed by a user, meets the criteria defined in the workflow route. - -Workflow requests are defined for an identity store and applied to the different operations -performed using GroupID. - -GroupID provides the following predefined workflows (also called system workflows) that trigger when -their associated events occur: - -| | Workflow Name | Description | Default Approver | -| --- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------- | -| 1. | Workflow to Reset Password | When a user resets his or her password. It does not apply when helpdesk users reset the passwords of other users. | Primary and additional managers of the user | -| 2. | Workflow to Change Group Expiration Policy | When a user changes the expiry policy of a group. By default, this workflow is disabled and no approver is specified. You can edit the workflow to add an approver. | None | -| 3. | Workflow to Nest a Group | When a user adds a group (Group A) to the membership of another group (Group B). | Primary and additional owners of Group A | -| 4. | Workflow to Join a Group | When a user joins a semi-private group. | Primary and additional owners of the group | -| 5. | Workflow to Leave a Group | When a user leaves a semi-private group. | Primary and additional owners of the group | -| 6. | Workflow to Transfer a User | When a user transfers his or her direct report. | The new manager | -| 7. | Workflow to Terminate a User | When a manager terminates a direct report. By default, this workflow is disabled and no approver is specified. You can edit the workflow to add an approver. | None | -| 8. | Workflow to Change Manager | When a user changes his or her primary or additional manager. If the user does not have a primary manager, and no default approver is set, the request is auto approved. | Existing primary and additional managers of the user | - -The administrator can also define more workflows for the identity store. - -In case of a Synchronize job, GroupID evaluates whether the task it will perform falls under the -scope of a workflow. If yes, then a workflow request is triggered the first time the job is -executed. The job will run when the request is approved. - -On GroupID Portal, use the **Requests** node to view and manage workflow requests for the connected -identity store. Expanding this node displays the following tabs: - -- [My Requests](/docs/directorymanager/11.0/welcome/request/myrequest.md) lists workflow - requests that you have generated. It displays both pending and processed requests. -- [Request Inbox](/docs/directorymanager/11.0/welcome/request/pending.md) lists the workflow - requests for which you are the approver. You can view, approve, deny, or reroute these requests. -- [All Requests](/docs/directorymanager/11.0/welcome/request/allrequest.md) lists all - pending workflow requests generated by enterprise users. - -NOTE: If the user is high priority such as _Administrator_, only then they will see the _All -Requests_ tab. - -## Workflow Implementation - -GroupID workflows are carried out in a standard action sequence: - -- When a user performs an action in GroupID, it is evaluated according to the workflow settings. -- If no approval is required, the change takes place in the directory and change notifications are - sent. -- If a workflow applies, GroupID routes an approval request to the approving authorities and a - 'request sent' notification is send to the requester. When the request is approved, the requested - changes are made in the directory and change notifications go to the requester and approvers - (except the one who has approved the request) by email. -- If the request is denied, information is not updated in the directory and an email notification is - sent to the requester and the approvers (except the one who has approved the request) with an - explanation of why it was denied. - -The administrator may enable the email approval option for a workflow route. Email notifications -generated for such workflow requests contain the **Accept** and **Deny** buttons. On clicking any of -these, the approver is redirected to the GroupID portal, where he or she can approve or deny the -request. Navigation within the portal will require authentication. - -NOTE: Email notifications are sent when an SMTP server has been configured for the identity store. - -## Approving authority for a Workflow Request (without Workflow Acceleration) - -For each workflow, an approving authority is also specified. The following scenarios are valid when -workflow approver acceleration settings are not applied: - -- If the object specified as an approver in a workflow route is not available (such as if it is - disabled or not specified), the workflow request would be routed to the default approver. If the - default approver is not specified or disabled, the request is auto approved. - - See the - [Specify a Default Approver](/docs/directorymanager/11.0/signin/workflow/advancedsettings.md#specify-a-default-approver) - topic. - -- If the requester is also the approver for that workflow, the request is auto-approved. -- When a Synchronize job runs to set the manager for a user who does not already have a manager, the - following happens: - - - The _Workflow to Change Manager_ will trigger if a default approver is set in advanced - workflow settings. - - If the default approver is not set, the workflow will not trigger and the user's manager will - be set without requiring any approval. - -## Workflow Acceleration - -The workflow approver acceleration feature in GroupID ensures that no workflow request remains -unnoticed and undecided. Based on certain rules, it automatically accelerates a request to another -approver if the current approver does not act on it for a certain number of days. - -The administrator can enable and configure workflow approver acceleration for an identity store in -GroupID Admin Center. - -See -[Workflow Approver Acceleration](/docs/directorymanager/11.0/signin/workflow/approveracceleration.md) - -**See Also** - -- [All Requests](/docs/directorymanager/11.0/welcome/request/allrequest.md) -- [My Requests](/docs/directorymanager/11.0/welcome/request/myrequest.md) -- [Request Inbox](/docs/directorymanager/11.0/welcome/request/pending.md) diff --git a/docs/directorymanager/11.0/welcome/request/pending.md b/docs/directorymanager/11.0/welcome/request/pending.md deleted file mode 100644 index 8fc1a80dbb..0000000000 --- a/docs/directorymanager/11.0/welcome/request/pending.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Request Inbox" -description: "Request Inbox" -sidebar_position: 30 ---- - -# Request Inbox - -Using the GroupID portal, designated approvers can view the workflow requests and approve or deny -them accordingly. On the left navigation bar, click **Requests**. Then click the **Request Inbox** -to view the workflow requests that are waiting for approval. You can also view the request count -next to the **Request Inbox** label. - -By default, the page displays pending requests that were initiated today. You can also view -processed (approved or denied) requests. Use add filters to filter the requests list as required. - -For each request, you can view the description, approver(s), requester name, the target to change, -status of the request, creation date, and the reason why that request was denied. Expand a request -to view more details, such as the field changed along with its old and new value. - -You can perform the following functions on **Requests Inbox** page: - -- [Approve a request](/docs/directorymanager/11.0/welcome/request/allrequest.md#approve-a-request). -- [Deny a request](/docs/directorymanager/11.0/welcome/request/allrequest.md#deny-a-request). -- [Filter requests](/docs/directorymanager/11.0/welcome/request/allrequest.md#filter-requests). - -**See Also** - -- [Requests](/docs/directorymanager/11.0/welcome/request/overview.md) -- [All Requests](/docs/directorymanager/11.0/welcome/request/allrequest.md) -- [My Requests](/docs/directorymanager/11.0/welcome/request/myrequest.md) diff --git a/docs/directorymanager/11.0/welcome/secondfactorauthentication/_category_.json b/docs/directorymanager/11.0/welcome/secondfactorauthentication/_category_.json deleted file mode 100644 index 4d01e3e9ee..0000000000 --- a/docs/directorymanager/11.0/welcome/secondfactorauthentication/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Second Factor Authentication", - "position": 40, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "secondfactorauthentication" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/secondfactorauthentication/authenticateaccount.md b/docs/directorymanager/11.0/welcome/secondfactorauthentication/authenticateaccount.md deleted file mode 100644 index 328c824659..0000000000 --- a/docs/directorymanager/11.0/welcome/secondfactorauthentication/authenticateaccount.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: "Authenticate Your Identity Store Account" -description: "Authenticate Your Identity Store Account" -sidebar_position: 20 ---- - -# Authenticate Your Identity Store Account - -With second factor authentication enabled, users must authenticate the identity store account they -use for logging into the portal. - -This means that a user must prove his or her identity using the Authentication Types they used to -enroll his or her identity store account with. - -## Authenticate your identity store account - -1. On the login page of the portal, select an identity store and then provide your user name and - password to connect the portal to it. -2. Click **Sign In**. -3. You are directed to the **Authenticate Account** page. - - This page displays the authentication type(s) you enrolled this account with. You must - authenticate using one authentication type. - - - **Authenticate using Security Questions** - - 1. On the **Authenticate Account** page, select **Security Questions** and click - **Continue**. - 2. Provide answers to the security questions you enrolled your account with. - 3. Click **Verify and Continue**. - - - Authenticate using SMS - - 1. On the **Authenticate Account** page, select **Security Questions** and click - **Continue**. - 2. Type the last four digits of your mobile number and click **Send Code**. - 3. In the _access code_ box, type the 5 digit access code sent on your mobile phone by SMS. - 4. **Verify and Continue**. - - If you do not receive a code, click **Send Again** and then enter the received code in the - box. - - - Authenticate using Email - - 1. On the **Authenticate Account** page, select **Email Verification** and click - **Continue**. - 2. Complete your email address and click **Send Code**. - 3. In the _access code_ box, type the 5 digit access code sent to the provided email - address. - 4. Click **Verify and Continue**. - - If you do not receive a code, click **Send Again** and then enter the received code in the - box. - - - Authenticator using Authenticator - - 1. On the **Authenticate Account** page, select **Authenticator** and click **Continue**. - 2. Launch the Google Authenticator or Microsoft Authenticator app on your smartphone. The - app generates a verification code and displays it on your phone’s screen. - 3. Enter the code in the **Security code** box and click **Verify and Continue**. - - Authenticator apps generate a new code every 30 seconds, with each code expiring after 30 - seconds. - - - Authenticate using YubiKey - - 1. Insert the YubiKey device in the USB slot of your computer. - 2. On the **Authenticate Account** page, select **YubiKey Verification** and click - **Continue**. - 3. Click your YubiKey device name. - - The portal directs you to tap on the device. - - 4. On tapping, you are authenticated on the portal. - - - Authenticate using Windows Hello - - 1. On the **Authenticate Account** page, select **Windows Hello** and click **Continue**. - 2. Click **Authenticate and Continue**. - 3. Provide the biometric information you enrolled your account with. - -**See Also** - -- [Second Factor Authentication](/docs/directorymanager/11.0/welcome/secondfactorauthentication/secondfactorauthentication.md) -- [Enroll Your Identity Store Account](/docs/directorymanager/11.0/welcome/secondfactorauthentication/enrollaccount.md) diff --git a/docs/directorymanager/11.0/welcome/secondfactorauthentication/enrollaccount.md b/docs/directorymanager/11.0/welcome/secondfactorauthentication/enrollaccount.md deleted file mode 100644 index 3091eb5fbb..0000000000 --- a/docs/directorymanager/11.0/welcome/secondfactorauthentication/enrollaccount.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: "Enroll Your Identity Store Account" -description: "Enroll Your Identity Store Account" -sidebar_position: 10 ---- - -# Enroll Your Identity Store Account - -With second factor authentication enabled for a user role in an identity store, unenrolled users -must enroll their identity store accounts before they can connect the portal to that identity store -and log in. - -Enrolling an identity store account means that a user must register this account in GroupID using an -Authentication Type. - -Once a user has enrolled his or her account, he or she must authenticate with the same -authentication types whenever he or she has to log into the GroupID portal using that account. - -What do you want to do? - -- Enroll your identity store account - -## Enroll your identity store account - -1. On the login page of the portal, select an identity store and then provide your user name and - password to connect the portal to it and click Sign In. - - OR - - Scan the QR code if the OR code is enabled in GroupID Admin Center. - -2. Click the profile icon on the top right corner and select Enroll your account. -3. The authentication type(s) available for enrollment are listed as tabs on Your Enrollments page. - Select an authentication type to enroll your account with. - - - Enroll your account using Security Questions - - 1. On the **Your Enrollments** page, click the **Security Questions** tab. - 2. From a **Question X** list, select a security question of your choice (X represents the - question number). - 3. In the **Answer** box, type an answer for the selected question. - If the answer meets the requirements, such as length-related checks, a tick mark is - displayed for it. - 4. Repeat steps 2 and 3 to select another security question and provide an answer. - 5. Click **Enroll Account**. - - - Enroll your account using SMS - - 1. On the **Your Enrollments** page, click the **Mobile** tab. - 2. Select your country and then type your mobile number in the box. - 3. Click **Send Code**. - 4. When the code is successfully sent to your provided mobile number, a box is displayed; - enter the received code in it. - 5. Click **Enroll Account**. - - If you do not receive the code, recheck your mobile number and click **Send code again**. - - - Enroll your account using Email - - 1. On the **Your Enrollments** page, click the **Email** tab. - 2. Type your email address in the box and click **Send Verification Code**. - 3. When the code is successfully sent to your provided email address, a box is displayed; - enter the received code in it. - 4. Click **Enroll Account**. - - If you do not receive the code, recheck your email address and click **Send code again**. - - - Enroll your account using Authenticator - - 1. On the **Your Enrollments** page, click the **Authenticator** tab. - 2. Scan the QR code with the authenticator app installed on your phone. - - The app generates a verification code and displays it on your phone's screen. - - 3. Enter this code in the box and click **Enroll Account**. - - The authenticator app generates a new code every 30 seconds, with each code expiring after - 30 seconds. - - - Enroll your account using YubiKey - - 1. Insert the YubiKey device in the USB slot of your computer. - 2. On the **Your Enrollments** page, click the **YubiKey** tab. - 3. Enter a name for your YubiKey device and click **Enroll Account**. - 4. The portal directs you to tap on the device. This enrolls your account on the portal. - - - Enroll your account using Windows Hello - - 1. On the **Your Enrollments** page, click the **Windows Hello** tab. - 2. Enter a name for your authentication device and click **Start Registration**. - -**See Also** - -- [Second Factor Authentication](/docs/directorymanager/11.0/welcome/secondfactorauthentication/secondfactorauthentication.md) -- [Authenticate Your Identity Store Account](/docs/directorymanager/11.0/welcome/secondfactorauthentication/authenticateaccount.md) diff --git a/docs/directorymanager/11.0/welcome/secondfactorauthentication/passwordreset.md b/docs/directorymanager/11.0/welcome/secondfactorauthentication/passwordreset.md deleted file mode 100644 index f3762d25a6..0000000000 --- a/docs/directorymanager/11.0/welcome/secondfactorauthentication/passwordreset.md +++ /dev/null @@ -1,183 +0,0 @@ ---- -title: "Reset Passwords" -description: "Reset Passwords" -sidebar_position: 30 ---- - -# Reset Passwords - -The GroupID portal enables enrolled users in an identity store reset their account passwords -securely. They can reset their passwords if they have forgotten or lost their existing passwords. -Unenrolled users can reset their passwords if the administrator has enabled the Second Way -Authentication option for their role. - -The GroupID portal provides an authentication mechanism, whereby users must authenticate themselves -with Multifactor Authentication type(s) they enrolled their accounts with. - -If the administrator has enabled multifactor authentication for the identity store, users must -authenticate their accounts using the authentication type(s) they enrolled their account with. After -successful authentication, users can reset account password in accordance with the password policies -the GroupID administrator has defined for your role in the identity store. - -What do you want to do? - -- [Reset identity store account password (enrolled users)](#reset-identity-store-account-password-enrolled-users) -- [Reset identity store account password (unenrolled users)](#reset-identity-store-account-password-unenrolled-users) - -## Reset identity store account password (enrolled users) - -1. On the **Welcome to GroupID** page of GroupID portal, click the **Forgot Password** card. -2. Select the identity store where your account exists from the identity store drop down list. -3. Type your identity store account name in the user name box. -4. Provide the displayed captcha code in the **Captcha** box. -5. Click **Reset Password**. You will be directed to a page that shows the authentication type(s) - you enrolled this account with. -6. Authenticate your account using the required type(s). - - - Security Questions - - 1. On the Multifactor Authentication window, select the **Security Questions** check box and - click **Continue**. - 2. The page lists the security questions you enrolled your account with. Provide answers to - these questions. - 3. Click **Verify and Continue**. - - - Mobile Verification - - 1. On the **Multifactor Authentication** window, select the **Mobile Verification** check - box and click **Continue**. - 2. Type the last four digits of your mobile number and click **Send Code**. - 3. In the displayed box, type the 5 digit access code sent on your mobile phone. - 4. Click **Verify and Continue**. - - If you have not received a code, click **Send Again** and then enter the received code in - the given box. - - - Email Verification - - 1. On the **Multifactor Authentication** window, select the **Email**check box and click - **Continue**. - 2. Complete your email address and click **Send Code**. - 3. In the displayed box, type the 5 digits access code sent to the provided email address. - 4. Click **Verify and Continue**. - - If you have not received a code, click **Send Again** and then enter the received code in - the given box. - - - Authenticator - - 1. On the **Multifactor Authentication** window, select the **Authenticator**check box and - click **Continue**. - 2. Launch the authenticator app on your smartphone. - 3. The app displays a 6-digit code. Enter that code in the **Security Code** box on the - Authenticator page. - - The app generates a new code every 30 seconds. - - 4. Click **Verify and Continue**. - - - Link Account - - 1. On the **Multifactor Authentication** window, select the **Link Account** check box and - click **Continue**. - 2. On the **Link Account** tab, select a link account you want to use for resetting the - password of your account. - - This tab lists the link account(s) that have the **Allow Authentication** option - enabled. - - 3. Type the username and password of the selected linked account in the respective boxes. - 4. Click **Next**. - - - YubiKey - - Insert the YubiKey device in the USB slot of your computer. - - 1. On the **Multifactor Authentication** window, select the **YubiKey**check box and click - **Continue**. - 2. Click your YubiKey device name. The portal directs you to tap on the device. - On tapping, you are authenticated. - - - Windows Hello - - 1. On the **Multifactor Authentication** window, click the **Windows Hello** check box and - click **Continue**. - 2. Click **Authenticate and Continue**. - - Authenticate with the provided biometric information or with the PIN given in Windows - Hello sign-in options. - - On getting authenticated, the **Reset My Password** page is displayed. - -7. All your linked accounts, if any, are listed in the **Select the account to reset their - passwords** section. Select the check boxes for the account(s) to reset their password(s). -8. Type your new password in the **New password** box. On typing the new password, the **Password - Acceptance** box appears. The new password must meet the password complexity requirements and - conform to the password complexity rules defined by the GroupID administrator for the identity - store. - - To meet the password complexity requirements, the password must: - - 1. be at least as per the characters length defined in the password policy of the provider. - 2. contain uppercase lowercase characters, digit or special character: - - - English uppercase characters (A through Z) - - English lowercase characters (a through z) - - Base 10 digits (0 through 9) - - Special characters (for example, !, $, #, %) - -9. Type the new password for the selected account(s) in the **Confirm new password** box. -10. Click **Reset Password**. - - If you have reused an old password and it does not meet the **Enforce password history** policy - of the provider, a message inform you that the password must be different from the old one. - -11. On reset, the **Reset Password Results** page displays the message ,"Password has been reset - successfully.". -12. Click **OK**. - -## Reset identity store account password (unenrolled users) - -1. On the **Welcome to GroupID** page, click the **Forgot Password** card. -2. Select the identity store from the **Identity Store** list your account resides in. -3. Type your user name in the **Username** box. -4. Provide the displayed captcha code in the **Captcha** box. -5. Click **Reset Password**. You will be directed to a page that shows the second way authentication - type(s) the GroupID administrator has enabled for your role. -6. Authenticate your account using the listed types. - - - Security Question - - 1. Select the **Security Questions** check box and click **Continue**. - 2. Provide answer to the question the administrator has set for you. - 3. Click **Verify and Continue**. - - - Mobile Verification - - 1. Select **Mobile Verification** check box and click **Continue**. - 2. Type the last four digits of your mobile number in the box and click **Send Code**. - 3. In the displayed box, type the 5 digit access code sent on your mobile phone. - 4. Click **Verify and Continue**. - - If you have not received a code, click **Send Again** and then enter the received code in - the given box. - - - Email Verification - - 1. Select **Email Verification** check box and click **Continue**. - 2. Complete your email address and click **Send Code**. - 3. Type the 5 digit access code sent to the provided email address in the displayed box. - 4. Click **Verify and Continue**. - - If you have not received a code, click **Send Again** and then enter the received code in - the given box. - -7. Follow the steps 6 - 12 in - [Reset identity store account password (enrolled users)](#reset-identity-store-account-password-enrolled-users) - section to reset your password. - -**See Also** - -- [Enroll Your Identity Store Account](/docs/directorymanager/11.0/welcome/secondfactorauthentication/enrollaccount.md) -- [ Change your password](/docs/directorymanager/11.0/welcome/user/manage/changepassword.md) -- [Unlock your accounts](/docs/directorymanager/11.0/welcome/user/manage/unlockaccount.md) diff --git a/docs/directorymanager/11.0/welcome/secondfactorauthentication/secondfactorauthentication.md b/docs/directorymanager/11.0/welcome/secondfactorauthentication/secondfactorauthentication.md deleted file mode 100644 index e30682b0e5..0000000000 --- a/docs/directorymanager/11.0/welcome/secondfactorauthentication/secondfactorauthentication.md +++ /dev/null @@ -1,153 +0,0 @@ ---- -title: "Second Factor Authentication" -description: "Second Factor Authentication" -sidebar_position: 40 ---- - -# Second Factor Authentication - -The GroupID administrator can enable second factor authentication for a user role in an identity -store. - -This implies that, in addition to providing a valid user name and password to connect the portal to -an identity store, role members must authenticate themselves using an authentication type. - -Second factor authentication works as follows: - -- An unenrolled user must enroll his or her identity store account in GroupID. See the - [Enroll Your Identity Store Account](/docs/directorymanager/11.0/welcome/secondfactorauthentication/enrollaccount.md) - topic. Enrollment is a one-time process. -- An enrolled user has to authenticate on the GroupID portal using the authentication type he or she - used to enroll his or her identity store account with. See - the[Authenticate Your Identity Store Account](/docs/directorymanager/11.0/welcome/secondfactorauthentication/authenticateaccount.md) - topic. - - Authentication is required every time the user logs into the portal. - -GroupID supports seven authentication types for second factor authentication. The administrator can -enable all or any of these for enrollment. Of the enabled authentication types, users have to enroll -and then authenticate with any one type. - -## Supported Authentication Types - -GroupID supports the following authentication types: - -- [Security Questions Authentication](#security-questions-authentication) -- [SMS Verification](#sms-verification) -- [Email Verification](#email-verification) -- [Authenticator app](#authenticator-app) -- [Link Account authentication](#link-account-authentication) -- [YubiKey authentication](#yubikey-authentication) -- [Windows Hello authentication](#windows-hello-authentication) - -### Security Questions Authentication - -The administrator is responsible for configuring the security questions that users must answer to -enroll their identity store accounts using the GroupID portal. Administrators can also enroll using -GroupID Admin Center. - -To authenticate using the security questions, users must provide answers to the security questions -they used to enroll their accounts with. - -### SMS Verification - -In SMS authentication, confirmation codes sent on the user’s mobile phone are used to enroll and -authenticate. - -- To enroll an identity store account through SMS verification, a user has to enter his or her - mobile number in the portal. The portal will send a verification code on this number via SMS and - the user has to enter it in the portal to enroll his or her account. -- To authenticate using SMS, a user has to provide the last 4 digits of his or her registered mobile - number. The portal then sends a confirmation code on this number; the user has to enter the code - in the portal for authentication. - -NOTE: The SMS authentication type is available if the GroupID administrator has linked an SMS -gateway account with the identity store. - -### Email Verification - -In Email authentication, confirmation codes sent on the user’s email address are used to enroll and -authenticate. - -- To enroll an identity store account through Email verification, a user has to enter his or her - email address in the portal. The portal will send a verification code to this email address and - the user has to enter it in the portal to enroll his or her account. -- To authenticate using Email, a user has to complete the email address he or she provided during - enrollment. The portal then sends a confirmation code to this email address; the user has to enter - the code in the portal for authentication. - -NOTE: The Email authentication type is available if the administrator has defined an SMTP server for -the identity store. - -### Authenticator app - -Users have to install the Google Authenticator or Microsoft Authenticator app on their smartphones -and use it to enroll and authenticate their identity store accounts on the portal. - -- To enroll, a user has to use the Authenticator app on his or her phone to scan the QR image - displayed on the portal. This generates a verification code in the app, that the user has to enter - in the portal to enroll. - - Authenticator apps generate a new code every 30 seconds, with each code expiring after 30 - seconds. - -- To authenticate, the user simply has to launch the Authenticator app on his or her phone and enter - the QR code generated by the app in the portal. - -### Link Account authentication - -The GroupID portal enables a user to link accounts that he or she may have in different identity -stores. When the user enrolls any one of those linked accounts in GroupID, it suffices for the -enrollment of all linked accounts. - -Users can then reset their account passwords and unlock accounts through a linked account. Let’s -assume a user links his or her accounts in Identity Store A and Identity Store B. Using the Linked -Account authentication type, the user can unlock the Identity Store A account by providing the -credentials of the Identity Store B account and vice versa. - -### YubiKey authentication - -YubiKey is a key-sized device that users can plug into the computer’s USB slot to provide another -layer of security when accessing their identity store accounts. - -YubiKey supported browsers: - -- Google Chrome version 38 or later -- Opera version 40 or later -- Firefox (requires the U2F Support Add-on extension) - -IE and Microsoft Edge are not supported. - -- To enroll your identity store account on the portal using YubiKey, insert the YubiKey device in - the USB slot of your computer, enter a name for your device in the portal and tap on the device. -- To authenticate with this YubiKey, insert the device in your computer and then tap on the device - in the portal. - -NOTE: Users can enroll and authenticate with a YubiKey only on a physical machine. Virtual machines -are not supported. - -### Windows Hello authentication - -The Windows Hello authentication type can be used on devices running Windows 10 with specialized -hardware installed, such as fingerprint reader and 3D camera. - -Enable Windows Hello on Windows 10 - -1. Go to the **Start** menu and select **Settings**. -2. Go to **Accounts Sign-in options**. -3. Windows Hello prompts you to enter a PIN; click/tap **Add** under **PIN** to set up a PIN code - first. - - Having set a PIN, proceed to add biometric data. - -4. In the **Windows Hello** section, click **Set up** under **Face** or **Fingerprint** to add the - recognition data. - -NOTE: If your device does not meet the hardware requirements, Windows Hello is not available, even -if Windows 10 is installed on it. - Window Hello supports the Microsoft Edge browser only. - -**See Also** - -- [Enroll Your Identity Store Account](/docs/directorymanager/11.0/welcome/secondfactorauthentication/enrollaccount.md) -- [Authenticate Your Identity Store Account](/docs/directorymanager/11.0/welcome/secondfactorauthentication/authenticateaccount.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/_category_.json b/docs/directorymanager/11.0/welcome/synchronize/_category_.json deleted file mode 100644 index 921530382f..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Synchronize", - "position": 90, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/_category_.json b/docs/directorymanager/11.0/welcome/synchronize/create/_category_.json deleted file mode 100644 index a7bbf90477..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Create a Job", - "position": 30, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "create" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/chooseyourjobcollectiontemplate.md b/docs/directorymanager/11.0/welcome/synchronize/create/chooseyourjobcollectiontemplate.md deleted file mode 100644 index d57a098799..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/chooseyourjobcollectiontemplate.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Choose your Job Template" -description: "Choose your Job Template" -sidebar_position: 10 ---- - -# Choose your Job Template - -For creating a job, GroupID Synchronize enables you to create a new job collection based on your -setting and criteria. In addition to that, it also gives you multiple templates to directly create a -job collection from. - -**Follow these steps:** - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Create New** and then click **Job Collection.** -3. On the **Choose Your Job Template** page, enter job collection details and select whether to use - a job group template or create the job group from scratch. -4. Click **Next Step**. - -**See Also** - -- [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/chooseyourjobtemplate.md b/docs/directorymanager/11.0/welcome/synchronize/create/chooseyourjobtemplate.md deleted file mode 100644 index 309803cc27..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/chooseyourjobtemplate.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Choose Your Job Template" -description: "Choose Your Job Template" -sidebar_position: 20 ---- - -# Choose Your Job Template - -For creating a job, GroupID Synchronize enables you to create a new job based on your setting and -criteria. In addition to that, it also gives you multiple templates to directly create a job from. - -**Follow these steps:** - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Create New** and then click **Job**. -3. On the **Choose Your Job Template** page, enter the following job details: - - 1. In **Job Name,** write a name for the job you are creating. - 2. In **Job Description**, enter a description for the job. - 3. In **Job Owner (s)** select one or more owners for the job. - 4. To create a new job from the scratch, select **Blank Job**. - 5. To use a pre-defined template, click on the card of one of the following templates: - - - Linked Mailbox Creation in Active Directory - - Move and Disable Objects in Active Directory - - Move Objects in Active Directory - - Sync GAL in Active Directory - -**See Also** - -- [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/create.md b/docs/directorymanager/11.0/welcome/synchronize/create/create.md deleted file mode 100644 index 38e4aa81c4..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/create.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: "Create a Job" -description: "Create a Job" -sidebar_position: 30 ---- - -# Create a Job - -Synchronize allows you to move data from one data source to another using a set of sequential -commands that run in the background. The set of commands is called a job. You can create a job from -scratch, from a predefined template, or from a template that you create yourself. - -Synchronize provides these predefined job templates: - -- Linked Mailbox Creation in Active Directory -- Move and Disable Objects in Active Directory -- Move Objects in Active Directory -- Sync GAL in Active Directory - -These job templates represent common business scenarios. You can use these templates or modify them -to create your own custom templates. Templates offer predefined settings, which you can apply to the -new job (except for the source and destination configurations) and modify as required. You can also -create a new job by duplicating and modifying an existing one. - -Creating a job from scratch requires that you specify the source and destination resources involved -in the transfer of data. You must also map the fields for the source and destination objects in -which the data transfer takes place. - -You can also apply data transformations. A transformation allows you to modify data as it is being -transferred to the destination. - -Once you create a job, you can either run it manually or schedule it to run periodically. - -You can create templates from existing jobs on-the-fly and reuse their settings in new jobs. - -To understand how workflows work with Synchronize jobs, see the -[Synchronize Jobs and Workflows](/docs/directorymanager/11.0/signin/workflow/overview.md#synchronize-jobs-and-workflows) -topic. - -## Create a new job - -1. On GroupID Portal, select **Synchronize**on left pane. -2. On the Synchronize portal, click **Create New** and then click **Job**. -3. On the - [Choose Your Job Template](/docs/directorymanager/11.0/welcome/synchronize/create/chooseyourjobtemplate.md) - page, enter the job details and select whether to use a job template or create the job from - scratch. -4. Click **Next Step**. -5. On the - [Select Your Source and Destination](/docs/directorymanager/11.0/welcome/synchronize/create/sourceanddestination.md) - page, specify the source and destination providers. -6. Click **Next Step**. -7. On the - [Objects, Fields and Mapping ](/docs/directorymanager/11.0/welcome/synchronize/create/objectfieldsandmapping.md) - page, map the source and destination fields and apply transformations. -8. On the - [Schedule Job and Notifications](/docs/directorymanager/11.0/welcome/synchronize/create/scheduleandnotification.md) - page, choose a schedule for a job and set up notification settings. - - NOTE: After creating the job, you can modify the schedule for the job and you can also create a - new schedule. - -9. Select **Preview job when finished** checkbox to preview the job. -10. **Review your Changes** before finishing the job. -11. Click **Finish** and create the job. -12. Once you run the job, the job runs if workflow is not configured. If workflow is configured, the - request gets generated. -13. Generated workflow request will be displayed in the - [Requests](/docs/directorymanager/11.0/welcome/request/overview.md) section for the - workflow approver(s). If the approver approves the workflow request, the job will execute the - results. -14. The **Review Job Run** dialog box appears, providing access to run statistics, reports, and logs - for the last job run. - -**See Also** - -- [Job Templates](/docs/directorymanager/11.0/welcome/synchronize/manage/jobtemplate.md) -- [Manage a Job](/docs/directorymanager/11.0/welcome/synchronize/manage/job.md) -- [Synchronize Schedule](/docs/directorymanager/11.0/signin/schedule/synchronize.md) -- [Transform](/docs/directorymanager/11.0/welcome/synchronize/transformation/overview.md) -- [Auto-Generate Unique, Complex Passwords](/docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md) -- [Sample Transform Scripts](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/sampletransformscript.md) -- [Sample Container Scripts](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/samplecontainerscript.md) -- [Script](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/dtmscript.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md b/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md deleted file mode 100644 index 80cd86cad7..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: "Create a Job Collection" -description: "Create a Job Collection" -sidebar_position: 40 ---- - -# Create a Job Collection - -A job collection is a group of individual jobs that you want to run in a particular order. For -instance, you can create a job collection to synchronize user accounts between multiple Active -Directory domains. You first create multiple Synchronize jobs to transfer data between two -directories, and then combine them in a job collection. Then you can execute the job collection -instead of executing each job one by one. - -To understand how workflows work with Synchronize jobs, see the -[Synchronize Jobs and Workflows](/docs/directorymanager/11.0/signin/workflow/overview.md#synchronize-jobs-and-workflows) -topic. - -What do you want to do? - -- Create a job Collection - -## Create a job Collection - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Create New** and then click **Job Collection.** -3. On the - [Choose your Job Template](/docs/directorymanager/11.0/welcome/synchronize/create/chooseyourjobcollectiontemplate.md) - page, enter job collection details and select whether to use a job collection template or create - the job collection from scratch. -4. Click **Next Step** -5. On the - [Synchronized Job Collection](/docs/directorymanager/11.0/welcome/synchronize/create/synchronizedjobcollection.md) - page, add jobs to the collection. You can either add existing jobs or create new jobs to add them - to the job collection. -6. On the - [Scheduling and Notifications](/docs/directorymanager/11.0/welcome/synchronize/create/schedulingandnotification.md) - page, choose a schedule for a job collection and set up notification settings. - - NOTE: After creating the job collection, you can modify the schedule for the job collection and - you can also create a new schedule. - -7. Select **Preview job collection when finished** checkbox to preview the job collection before - executing it. -8. To review the information and changes regarding the job collection, click **Review Your Change** - at the bottom. -9. Click **Finish** to exit the wizard and create the job collection. -10. Once you run the job collection, the job collection runs and only those jobs will process for - which workflow is not configured. If workflow is configured for any job, the request gets - generated against that specific job. -11. Generated workflow request will be displayed in the - "[Requests](/docs/directorymanager/11.0/welcome/request/overview.md)" section for the - workflow approver(s). If the approver approves the workflow request, the job will execute the - results. -12. **Run Job Collection** dialog box displays overall collection statistics for the run, reports - and individual logs for each job in the collection. - -**See Also** - -- [Job Collection Template](/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollectiontemplate.md) -- [Manage a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollection.md) -- [Synchronize Schedule](/docs/directorymanager/11.0/signin/schedule/synchronize.md) -- [Transform](/docs/directorymanager/11.0/welcome/synchronize/transformation/overview.md) -- [Auto-Generate Unique, Complex Passwords](/docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/mappingfield.md b/docs/directorymanager/11.0/welcome/synchronize/create/mappingfield.md deleted file mode 100644 index 6d9a25e89f..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/mappingfield.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: "Map Fields" -description: "Map Fields" -sidebar_position: 40 ---- - -# Map Fields - -When creating a job, you select any of the following destination providers. - -- Microsoft Active Directory -- Microsoft Entra ID -- Generic LDAP version 3.0 -- Google Workspace -- Microsoft Access -- Microsoft Excel -- Oracle -- ODBC -- Microsoft SQL Server -- Text - -Once selected, you can see a specific set of objects that can be created in the destination -providers. Once the object type is selected, there are a set of mandatory attributes that are -required for creating the respective objects. - -The tables below show the mandatory attribute for different object types for each provider and what -transformations that need to apply to them while mapping. - -Mandatory attributes for User: - -| Provider | Mandatory Attributes | Explanation | -| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -| Active Directory | cn | | -| givenname | | | -| sAMAccountName | | | -| sn | | | -| password | | | -| Microsoft Entra ID | accountenabled | To create disabled users, select False in static transformation. To create enabled users, select True in static transformation. | -| directoryrole | Every user is assigned a role in Microsoft Entra ID. In static transformation, it will auto-generate all roles in the tenant. Select the one you want to choose. | | -| displayname | Given the name that appears on Microsoft Entra ID. You can map it with the first name. | | -| givenname | First name of the user in Microsoft Entra ID. | | -| userprincipalname | You need to amend the domain name to give the userprincipalname. It is the mandatory key value and is unique for every user. In static transformation, select join to modify the name. Then go to the script transformation and you will see the updated script. `DTM.Source("First") & "." & DTM.Source("Last") & "@001wrc.onmicrosoft.com"` In the script, add the domain name and generate new userprincipal names for each user based on the join and script transform. | | -| password | Generate passwords for the users. | | - -Mandatory attributes for Mail-enabled User: - -| Provider | Mandatory Attributes | Explanation | -| ---------------- | -------------------- | ----------- | -| Active Directory | cn | | -| displayname | | | -| givenname | | | -| mailNickname | | | -| sAMAccountName | | | -| sn | | | -| targetAddress | | | -| password | | | - -Mandatory Attributes for Mailbox-enabled User: - -| Provider | Mandatory Attributes | Explanation | -| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | -| Active Directory | cn | | -| displayname | | | -| givenname | | | -| homeMDB | | | -| mailNickname | | | -| sAMAccountName | | | -| sn | | | -| password | | | -| Microsoft Entra ID | accountenabled | | -| directoryrole | | | -| displayname | | | -| givenname | | | -| mailnickname | Same as user principalname. We do not need to update script. It will add domain name itself. | | -| surname | | | -| userprincipalname | | | -| password | | | -| UsageLocation | Mailbox-specific. You can apply the static transformation. | | -| LicenseAssignment | All mailboxes are assigned a license. We assign that license while creation. Select static transformation, it will display all available licenses. You can select any and once user is created they will be assigned this license. | | - -Mandatory Attributes for Mailbox-enabled Contact: - -| Provider | Mandatory Attributes | Explanation | -| ---------------- | -------------------- | ----------- | -| Active Directory | cn | | -| | displayname | | -| | givename | | -| | mailNickname | | -| | sn | | -| | targetAddress | | - -Mandatory Attributes for Group: - -| Provider | Mandatory Attributes | Explanation | -| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | -| Active Directory | cn | | -| displayname | | | -| grouptype | | | -| member (sAMAccountName) | | | -| sAMAccountName | | | -| Microsoft Entra ID | description | Text fields that you can map with anything | -| displayname | The name that appears in the directory. It will uniquely identify the group. You can also apply transformations. | | -| grouptype | Go to static transformation, you will get a group-type list. Select any of the following: - Security - Distribution - Office365 | | -| If you add Messaging provider, the group becomes mail-enabled and you will see the following additional mandatory attribute while mapping. | | | -| mailNickname | Same as user principalname. We do not need to update the script. It will add domain name itself. | | - -**See Also** - -- [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) -- [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md) -- [Transform](/docs/directorymanager/11.0/welcome/synchronize/transformation/overview.md) -- [Auto-Generate Unique, Complex Passwords](/docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/_category_.json b/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/_category_.json deleted file mode 100644 index c9b5fdf5a2..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Messaging System", - "position": 70, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "messagingsystemoverview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/exchange.md b/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/exchange.md deleted file mode 100644 index 9c82b9e4f7..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/exchange.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "Exchange Subscription" -description: "Exchange Subscription" -sidebar_position: 10 ---- - -# Exchange Subscription - -While creating or editing mail enabled objects through a Synchronize job, GroupID provides you the -facility to sync or deprovision subscriptions from Office 365 messaging provider. - -What do you want to do? - -- [Sync Exchange subscriptions](#sync-exchange-subscriptions) - -## Sync Exchange subscriptions - -While creating or editing a Synchronize job (mailbox-enabled user) you can sync subscriptions from -Exchange messaging provider. - -On the **Object, Fields and Mapping** page: - -1. In the **Messaging Provider** drop-down list, select the **Exchange** version that you want to - use. -2. Enter the domain name where the mail server resides in the **Domain** name box. -3. Enter the username and password of an authorized user account on the mail server in the - **Username** and **Password** boxes. -4. Set Exchange server priority. - - With Microsoft Exchange as the messaging provider, the **Server Name** column in the **Server - Status & Priority** area lists the mail servers in the environment. By default, GroupID randomly - assigns the highest priority to a server. You can change its priority level and set the priority - for other servers. - - If your required server is not listed, click **Sync Again**. - - 1. In the **Server Status and Priority** section, select the check box for the server you want - to specify or change the priority for. - - GroupID checks the availability of the server and displays its status as _Online_ - (available) or _Offline_ (unavailable) in the **Status** column. - - 2. In the **Priority** box, select a priority level for the server, with ‘1’ representing the - highest priority. - -5. Click **Save**. - -**See Also** - -- [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) -- [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md) -- [Transform](/docs/directorymanager/11.0/welcome/synchronize/transformation/overview.md) -- [Auto-Generate Unique, Complex Passwords](/docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/googleapp.md b/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/googleapp.md deleted file mode 100644 index 1d73e82cd1..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/googleapp.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: "Google Workspace Subscription" -description: "Google Workspace Subscription" -sidebar_position: 20 ---- - -# Google Workspace Subscription - -While creating or editing mail enabled objects through a Synchronize job, GroupID provides you the -facility to sync or deprovision subscriptions from Google Workspace messaging provider. - -What do you want to do? - -- [Sync Google Workspace subscriptions](#sync-google-workspace-subscriptions) -- [Deprovision existing Google Workspace subscriptions](#deprovision-existing-google-workspacesubscriptions) - -## Sync Google Workspace subscriptions - -While creating or editing a Synchronize job (mailbox-enabled user) you can sync subscriptions from G -Suite messaging provider. - -On the **Object, Fields and Mapping** page: - -1. Click **Add Messaging Provider** and select Google Workspace from the drop down list. -2. Enter service account name in the **Service Account** box. -3. Enter admin username in the **Admin Username** box. -4. Specify the location of .P12 key file in the **P12 Certificate Path** box. -5. Click **Sync Again**. - - The name of mail server populates in the **Server Name** list. - -6. Click **Save.** -7. On the **Select Fields** page, the following Google Workspace specific fields are selected by - default in the **Selected Fields** box: - - - First Name - - familyName - - Email - - LicenseAssignemnt - - Password - - AppName - - Sam Account Name - - Common Name(CN) - - Display Name - -8. Click **Next**. - - You have to transform all the above fields to work them properly with Google Workspace messaging - provide. - -9. On the **Field Map(s)** page, click the **Transform** button against: - - 1. the **familyName** field. - - 1. On the **Transform** dialog box, select _Join - combine two source fields together_ from - the **Set the destination field to** box. - 2. Select an attribute from the **First field** list to form a value for the family name - field. - 3. Provide a separator of your choice in the **Separator** box to separate value of **First - field** and **Second field**. It is an optional field. - 4. Select an attribute from the **Second field** list to form a value for the family name - field. - 5. Click **Transform** - - 2. the **Email** field. - - 1. On the **Transform** dialog box, select _Script -write a Visual Baisc.Net script to - assign a value programmatically_ from the **Set the destination field to** box. - 2. Click **Edit Script** to edit the script to append the user logon name with Google - Workspace domain name. - - By default, it displays: DTM.Result = "" - - Modify it with the attributes you want to form email address of the mailbox-enabled - user. For example: - - ``` -  DTM.Result = DTM.Source("First") & "_go_" & DTM.Source("Last")&"@theasp.net" - ``` - - 3. To test the script, click **Test Script** from **Field Options** dropdown. - 4. On the **Script Tester** window click Run Script button to populate the test results in - the **Test Result** box. Close the **Script Editor** to return to the **Transform** - dialog box. - 5. Click **Transform**. - - 3. the **LicenseAssignment** field. - - 1. On the **Transform** dialog box, select _Static - assign a static value_ from the **Set - the destination field to** box. - 2. Select check box(es) of the required subscription(s) from the list of subscriptions - displayed. - 3. Click **Transform** - - 4. the **AppName** field. - - 1. On the **Transform** dialog box, select _Static - assign a static value_ from the **Set - the destination field to** box. - 2. In the **Static text** box, enter G Suite. - 3. Click **Transform**. - -10. Continue with the rest of the pages of the wizard to complete the job. - -## Deprovision existing Google Workspace subscriptions - -To delete a subscription in an existing job, double click the required job. **Edit job** wizard -opens. - -1. Click **Next** until you reach on the **Filed Map(s)** page of the **Edit job** wizard. -2. Click the **Transform** button against the **LicenseAssignment** field. - - 1. On the **Transform** dialog box, select _Static - assign a static value_ from the **Set the - destination field to** box. - 2. Select check box(es) of the required subscription(s) you want to remove from the list of - subscriptions displayed. - 3. Select the **Deprovisioning** check box. - 4. Click **OK**. - -3. Click **Finish** or click **Next** if you want to modify a setting on any rest of the pages of - the **Edit Job** wizard. - -**See Also** - -- [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) -- [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md) -- [Transform](/docs/directorymanager/11.0/welcome/synchronize/transformation/overview.md) -- [Auto-Generate Unique, Complex Passwords](/docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/messagingsystemoverview.md b/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/messagingsystemoverview.md deleted file mode 100644 index 348303fddf..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/messagingsystemoverview.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "Messaging System" -description: "Messaging System" -sidebar_position: 70 ---- - -# Messaging System - -GroupID enables users to configure messaging systems to efficiently create or edit mail enabled -objects through a Synchronize job. Users can sync or deprovision subscriptions from the following -messaging systems: - -- [Exchange Subscription](/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/exchange.md) -- [Google Workspace Subscription](/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/googleapp.md) -- [Office 365 Subscription](/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/office365.md) - -See Also - -- [Exchange Subscription](/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/exchange.md) -- [Google Workspace Subscription](/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/googleapp.md) -- [Office 365 Subscription](/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/office365.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/office365.md b/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/office365.md deleted file mode 100644 index 9990817035..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/office365.md +++ /dev/null @@ -1,136 +0,0 @@ ---- -title: "Office 365 Subscription" -description: "Office 365 Subscription" -sidebar_position: 30 ---- - -# Office 365 Subscription - -While creating or editing mail enabled objects through a Synchronize job, GroupID provides you the -facility to sync or deprovision subscriptions from Office 365 messaging provider. - -What do you want to do? - -- [Sync Office 365 subscription in a Synchronize job](#sync-office-365-subscription-in-a-synchronize-job) -- [Deprovision Office 365 subscription in a Synchronize job](#deprovision-office-365-subscription-in-a-synchronize-job) - -## Sync Office 365 subscription in a Synchronize job - -While creating or editing a Synchronize job (mailbox-enabled user) you can sync subscriptions from -Office 365 messaging provider. - -On the **Object, Fields and Mapping** page: - -1. Click **Add Messaging Provider** and select **Office 365** from the drop down list. -2. Enter domain name in which the mail server resides in the **Domain Name** box. -3. Type the user name of an authorized user account on the mail server in the **User name** box. -4. Type the application id in **Application ID** box. -5. Enter password of the user mentioned in the User name field in the **Password** box. -6. Enter **Tenant ID** in the box. Tenant ID is **a globally unique identifier (GUID)** that is - different than your organization name or domain. -7. Enter client secret in the **Client Secret** box. -8. Click **Sync Again**. - - The name of mail server(s) in the given environment populates in the **Server Name** list, - select your required mail server from the list. - -9. Click **Save**. -10. On the **Selected Fields** section, the following Office 365 specific fields are selected by - default in the **Selected Fields** box: - - - Sam Account Name - - Display Name - - First Name - - Common Name (CN) - - Last Name - - Password - - LicenseAssignment - - User logon name - - UsageLocation - - Alias - -11. Select **Field Mapping.** You have to transform the following fields to sync subscriptions of - Office 365: - - - LicenseAssignment - - User logon name - - UsageLocation - - Password - -12. On the **Field Map(s)** section, click the **Transform** button against the: - - 1. the **LicenseAssignment** field. - - 1. On the **Transform** dialog box, select _Static - assign a static value_ from the **Set - the destination field to** box. - 2. Select check box(es) of the required subscription(s) from the list of subscriptions - displayed. - 3. Click **Transform**. - - 2. the **User Logon Name** field. - - 1. On the **Transform** dialog box, select _Script -write a Visual Baisc.Net script to - assign a value programmatically_ from the **Set the destination field to** box. - 2. Click **Edit Script** to edit the script to append the user logon name with Office 365 - domain name. - - By default, it displays: DTM.Result = DTM.Source("userPrincipalName") script. - - Modify it with the attributes you want for the user logon part and add domain name. - - For Example: - - ``` -  DTM.Result = DTM.Source("First")&DTM.Source("Last")&"@directorymanager.onmicrosoft.com" - ``` - - 3. To test the script, click **Test Script** from **Field Options** dropdown. - 4. On the **Script Tester** window click Run Script button to populate the test results in - the **Test Result** box. Close the **Script Editor** to return to the **Transform** - dialog box. - 5. Click **Transform**. - - 3. the **UsageLocation** field. - - 1. On the **Transform** dialog box, select _Static - assign a static value_ from the **Set - the destination field to** box. - 2. In the **Static text** box, enter 2-letter country name abbreviation such as US for - United States. - 3. Click **Transform**. - - 4. the **Password** field. - - 1. On the **Transform** dialog box, select _Static - assign a static value_ from the **Set - the destination field to** box. - 2. Click - [Auto-Generate Unique, Complex Passwords](/docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md). - 3. On the Password Complexity Options dialog box, enter 10 in the **Password Length** box. - 4. Clear the **Special symbols** check box. - 5. Click **Transform.** - - 5. Continue with the rest of the pages of the wizard to complete the job. - -## Deprovision Office 365 subscription in a Synchronize job - -To delete a subscription in an existing job, double click the required job. **Edit job** wizard -opens. - -1. Click **Next** until you reach on the **Filed Map(s)** page of the **Edit job** wizard. -2. Click the **Transform** button against the: the **LicenseAssignment** field. - - 1. On the **Transform** dialog box, select _Static - assign a static value_ from the **Set the - destination field to** box. - 2. Select check box(es) of the required subscription(s) you want to remove from the list of - subscriptions displayed. - 3. Select the Deprovisioning check box. - 4. Click **Transform**. - -3. Click **Finish** or click **Next** if you want to modify a setting on any rest of the pages of - the **Edit Job** wizard. - -**See Also** - -- [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) -- [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md) -- [Transform](/docs/directorymanager/11.0/welcome/synchronize/transformation/overview.md) -- [Auto-Generate Unique, Complex Passwords](/docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/objectfieldsandmapping.md b/docs/directorymanager/11.0/welcome/synchronize/create/objectfieldsandmapping.md deleted file mode 100644 index 9c991ebd15..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/objectfieldsandmapping.md +++ /dev/null @@ -1,168 +0,0 @@ ---- -title: "Objects, Fields and Mapping" -description: "Objects, Fields and Mapping" -sidebar_position: 30 ---- - -# Objects, Fields and Mapping - -On the **Object, Fields and Mappings** page, map the a attributes with source fields. - -1. In the **Sync Object Options**, select an object type that you want to either create or update. - - Object types vary depending on the destination provider. - - | Destination Provider | Object Type | Description | - | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- | - | Active Directory | User | An Active Directory user. | - | Mail-enabled User | An Active Directory user with an external e-mail address (requires Exchange 2013 or later). | | - | Mailbox-enabled User | An Active Directory user with an Exchange mailbox (requires Exchange 2013 or later). | | - | Linked Mailbox | A mailbox that is accessed by a user in a separate, trusted forest. Linked mailboxes may be necessary for organizations that deploy Exchange in a resource forest. | | - | Contact | An Active Directory contact. | | - | Group | An Active Directory group. Members of the group will be synced with, but not created at, the destination. | | - | Mail-enabled Contact | An Active Directory contact with an external e-mail address (Exchange 2013 or later) | | - | Microsoft Entra ID | User | A Microsoft Entra ID user. | - | Mailbox-enabled User | A Microsoft Entra ID user with an external e-mail address (requires Exchange 2013 or later). | | - | Group | A Microsoft Entra IDgroup. | | - | Generic LDAP | inetOrgPerson | inetOrgPerson is an object class found in standard Lightweight Directory Access Protocol (LDAP) implementations. | - | Google Workspace | User | A Google Workspace user. | - | Group | A Google Workspace group. | | - -2. The **Add Messaging Provider** option is only available with the mail-enabled objects. Click - **Add Now** to select a messaging system you want to use with this job. You need to select from - the two options: - - - **Configure with Destination Provider** - - It displays the messaging provider configured in the destination provider. - - - **Add New Provider** - - It displays the following list of new providers that you can use to create a job. - - - [Google Workspace Subscription](/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/googleapp.md) - - Add connection details for Google Workspace. - - - [Office 365 Subscription](/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/office365.md) - - Add Connection details for Office 365. - - - [Exchange Subscription](/docs/directorymanager/11.0/welcome/synchronize/create/messagingsystemoverview/exchange.md) - - Add connection details for Exchange. - - - Others - - Add details for any other provider that is not present in the list. - - - None - - Select None if you not want to add any messaging provider. - -3. In the **Script Language** section, specify the scripting language you want to use. Select one of - the following language: - - - [Visual Basic .NET for GroupID](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/visualbasicnetbasic.md) - - Python for GroupID - -4. The Global Script Editor allows the script author to extend the functionality of Synchronize by - authoring scripts in Visual Basic .NET and Python. Before saving a script, the code must be - verified by compiling the script. Click on **Edit Global Script,**and follow these steps: - - 1. Click on **Edit** option from the header of the screen to edit the script. You can perform - the following action: - - | Actions | Description | - | ------------------- | ------------------------------------------------------------------------------------------------------------------------ | - | Go To (Ctrl+G) | Opens the Go To Line dialog box for jumping to a specific line in the editor | - | Cut (Ctrl+X) | Copies the current text selection to the clipboard and deletes the selection | - | Copy (Ctrl+C) | Copies the current text selection to the clipboard while keeping the selection. | - | Paste (Ctrl+V) | Inserts the copied or cut text from the clipboard in the workspace. | - | Undo (Ctrl+Z | Reverses the last change. | - | Redo (Ctrl+Y | Re-applies a change reversed using the Undo action. | - | Insert Datetime | Inserts the current date and time in the editor. | - | Insert File As Text | Opens the Select a text file dialog box that allows you to select a text file from which to insert text into the editor. | - - 2. Use the **Tools > Add or remove references** to display various components and DLL libraries - included in your script. - 3. Click **Import** to import the previously exported script to run the job. - 4. To export the script, click **Export** to save it for future use. - 5. You can also click the **Plus** icon to clear the scripting editor and then copy and paste - the attached script in the global scripting editor. - 6. To compile the script, click on **Build** and then click **Compile Script**. - - Synchronize will review the code to determine if there are any errors which would prevent - the code from loading or executing. While compiling your script will verify the code is free - of syntactical errors, it does not guarantee that the code is free from logical errors. If - the code is free of syntactical errors, a message box will appear informing the user that - the code has been successfully compiled. In the event of one or more errors, the user can - view any problems at the bottom of the screen in the **Errors** section. Double-clicking on - a given error will position the cursor to the location of the error in the script. - - 7. The toolbar displays various actions that you can perform on your script: - - | Icon | Description | - | --------------------------------------------------------------------------------------------- | ------------------------------------------------------ | - | ![undo](/images/directorymanager/11.0/portal/synchronize/job/undo.webp) | Reverses the last change. | - | ![redo](/images/directorymanager/11.0/portal/synchronize/job/redo.webp) | Re-applies a change reversed using the Undo action. | - | ![indent](/images/directorymanager/11.0/portal/synchronize/job/indent.webp) | Increases the indenting of the current text selection. | - | ![outdent](/images/directorymanager/11.0/portal/synchronize/job/outdent.webp) | Decreases the indenting of the current text selection. | - | ![comment](/images/directorymanager/11.0/portal/synchronize/job/comment.webp) | Comments the current text selection. | - | ![uncomment](/images/directorymanager/11.0/portal/synchronize/job/uncomment.webp) | Uncomments the current text selection. | - | ![uppercase](/images/directorymanager/11.0/portal/synchronize/job/uppercase.webp) | Converts the current text selection to uppercase. | - | ![lowercase](/images/directorymanager/11.0/portal/synchronize/job/lowercase.webp) | Converts the current text selection to lowercase. | - | ![darktheme](/images/directorymanager/11.0/portal/synchronize/job/darktheme.webp) | Switch the theme of the script editor to dark. | - | ![lighttheme](/images/directorymanager/11.0/portal/synchronize/job/lighttheme.webp) | Switch the theme of the script editor to light. | - | ![selectall](/images/directorymanager/11.0/portal/synchronize/job/selectall.webp) | Selects all the text in the editor. | - - 8. Click **Save** to save the changes made to the script. - -5. On the - [Selected Fields for object types](/docs/directorymanager/11.0/welcome/synchronize/create/selectedfield.md) - type section, click **Add/Edit Fields**. You can specify the action to take if the data or object - being exported from the source does not exist at the destination. -6. Use the **Map Field** section to map the source and destination fields and to apply - transformations: - - 1. In the **Key** column, select at least one field to be a unique identifier. - - Do one of the following: - - - [Map Fields](/docs/directorymanager/11.0/welcome/synchronize/create/mappingfield.md) - - In the Source column of each destination item, select the source fields that contribute - the data for the destination. - - - **Apply a - [Transform](/docs/directorymanager/11.0/welcome/synchronize/transformation/overview.md)** - - In the **Transform** column, click the **More Options** button to open the **Transform** - [ _field_] dialog box and apply a transformation to the field value before it is saved - at the destination. - - 2. If the source or destination field is multi-valued, set a delimiter from the **Delimiter** - list. - - This delimiter is used either to separate the values of a multi-valued field at the source, - or to merge values of a multi-valued field at the destination, depending on the types of - data sources. - - 3. In the **New only** column, select the check boxes for fields to be updated only when - creating a new object. Fields that are not selected are continually updated. Key fields are - selected by default as New Only fields as a requirement; you cannot change this selection. - - NOTE: For Microsoft Entra ID objects, primary key fields are: - (1) UserPrincipleName attribute for “User/Mailbox” object - (2) DisplayName attribute for “Group” object. - - 4. Select **Show field reference** check box to view a list of attributes from the schema of the - source provider. - 5. Click **Next**. - -**See Also** - -- [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) -- [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md) -- [Transform](/docs/directorymanager/11.0/welcome/synchronize/transformation/overview.md) -- [Auto-Generate Unique, Complex Passwords](/docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/scheduleandnotification.md b/docs/directorymanager/11.0/welcome/synchronize/create/scheduleandnotification.md deleted file mode 100644 index 0be59081f1..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/scheduleandnotification.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: "Schedule Job and Notifications" -description: "Schedule Job and Notifications" -sidebar_position: 60 ---- - -# Schedule Job and Notifications - -On **Schedule Job and Notifications**, you can set the schedule on the basis of which the job can -run in future and set the notifications settings for the job. - -1. On the **Schedule Job and Notifications** page: - - 1. In the **Schedule Job** section, choose an existing job from the drop down list. - 2. In the **Schedule** section, the **Task name** drop down lists the Smart Group Update jobs - existing in the identity store for the Active Directory domain that is provided as - destination in this Synchronize job. Select a job that you want to run along with this - Synchronize job. The selected job will run each time the Synchronize job is run either - manually or from the Synchronize job scheduler. - - If you are modifying an existing job, you can also a new schedule for the job. Visit - [Synchronize Schedule](/docs/directorymanager/11.0/signin/schedule/synchronize.md) - -2. Set up email notification of job run results: - - 1. Select the **Enable** option. - 2. Enter email addresses of notification recipients in **Send notification to the following - email(s)** box - 3. From the **Send Notification** options, select one of the following notification trigger - event: - - 1. **Always**: Send a notification every time the job  is run, regardless of outcome. - 2. **Records are updated**: Send a notification only when one or more records have been - updated. - 3. **One or more errors occur**: Send a notification only when errors occur while executing - the job. - 4. **Job fails**: Send a notification only when a fatal error occurs causing the job to - fail. - - RECOMMENDED: This step requires that notification settings are already configured in the - connected identity store. Click Configure Notifications if notifications are not - configured. - -3. Click on **Advanced Settings** to go to **Advanced Setting For the Job** page: - -4. Review and test the default query statement shown and modify it, if required on the **Source - Query** section. - - The Source Query page shows the default query statement generated from the settings you have - entered into the wizard. Synchronize job uses this query to fetch records from the source - provider. - -5. On the **Destination Query** section, review the default query statement shown and modify it if - required. - - Like the Source Query page, the Destination Query page shows the default query statement - generated from the settings you have entered into the wizard. Synchronize job uses this query to - sync records at the destination provider. - - - In case of Identity store providers, filter criteria will be used, and its data will be - fetched from elastic search. - - In case of Data source providers (SQL/Excel/Access), SQL query will be used, and data will be - fetched directly from the provider. - Click Test to preview the results before executing the query. You can click Clear to delete - the command query. - -6. On the **Synchronize Settings** wizard page, configure directory synchronization and job - scheduling: - - - **Update all records from source**: to synchronize all records from the source to the - destination. This is limited to Exchange 5.5, Active Directory, SQL Server, or Excel.) each - time the job runs. - - **Update only records that have changed**: to synchronize only those records that have changed - in the source data since the last time the job was run. For this option to apply, your source - must carry the last updated time stamp of each record. - - The **Select source time stamp** field drop-down box gets enabled when you select the - **Update only records that have changed** option. From here, select the attribute or field - in the source that would contain a value for the time stamp. - - NOTE: Synchronizing all fields every time the job runs can be inefficient. If your data - source has a time stamp field that indicates the last time the row was updated or modified, - Synchronize can use it to selectively update only the rows that have changed since the last - time the job was run. - -7. Click **Save**. - -8. Select **Preview job when finished** checkbox to preview the job. -9. **Review your Changes** before finishing the job. -10. Click **Finish** and create the job. -11. Once you run the job, a workflow request is triggered. -12. Generated workflow request will be displayed in the - [Requests](/docs/directorymanager/11.0/welcome/request/overview.md) section for the - workflow approver(s). If the approver approves the workflow request, the job will execute the - results. - -**See Also** - -- [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) -- [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md) -- [Transform](/docs/directorymanager/11.0/welcome/synchronize/transformation/overview.md) -- [Auto-Generate Unique, Complex Passwords](/docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/schedulingandnotification.md b/docs/directorymanager/11.0/welcome/synchronize/create/schedulingandnotification.md deleted file mode 100644 index 095860356e..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/schedulingandnotification.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: "Scheduling and Notifications" -description: "Scheduling and Notifications" -sidebar_position: 20 ---- - -# Scheduling and Notifications - -On the **Scheduling and Notifications** page, you can set the schedule on the basis of which the job -collection can run in future and can also set the notifications settings for the job collection. - -1. On the **Scheduling and Notifications** page: - - 1. In the **Schedule Job Collection** section, choose from existing schedules from the drop down - list. - 2. In the **Schedule** section, the **Task name** drop down lists the Smart Group Update jobs - existing in the identity store for the Active Directory domain that is provided as - destination in this Synchronize job. Select a job that you want to run along with this - Synchronize job. The selected job will run each time the Synchronize job is run either - manually or from the Synchronize job scheduler. - - If you are modifying an existing job collection, you can also a new schedule for the job - collection. Visit - [Synchronize Schedule](/docs/directorymanager/11.0/signin/schedule/synchronize.md) - -2. On the **Notifications** section, set up email notification of job collection run results. This - feature requires Microsoft Exchange. Notifications are disabled by default and can be enabled and - disabled from this page. Select the **Enable notifications** check box to enable them. -3. Enter the email address of notification recipients in the given box. -4. From the **Send notification** list, select the notification trigger event. Options are: - - NOTE: This step requires that the identity store of the destination should be configured. - - - **Always**: Send a notification every time the job collection is run, regardless of outcome. - - **Records are updated**: Send a notification only when one or more records have been updated. - - **One or more errors occur**: Send a notification only when errors occur while executing the - job collection. - - **Job fails**: Send a notification only when a fatal error occurs causing the job collection - to fail. - -5. Select **Preview job collection when finished** checkbox to preview the job collection before - executing it. -6. To review the information and changes regarding the job collection, click **Review Your Changes** - at the bottom. -7. Click **Finish** to exit the wizard and create the job collection. -8. Once you run the job collection, a workflow request is triggered. -9. Generated workflow request will be displayed in the - [Requests](/docs/directorymanager/11.0/welcome/request/overview.md) section for the - workflow approver(s). If the approver approves the workflow request, the job will execute the - results. - -**See Also** - -- [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/selectedfield.md b/docs/directorymanager/11.0/welcome/synchronize/create/selectedfield.md deleted file mode 100644 index 579ec66c91..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/selectedfield.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: "Selected Fields for object types" -description: "Selected Fields for object types" -sidebar_position: 50 ---- - -# Selected Fields for object types - -On the Selected Fields for Object type section, click Add/Edit Fields. You can specify the action to -take if the data or object being exported from the source does not exist at the destination. - -1. Select the operation that you want to perform. Click **Create** to create new objects and - **Update** if you want to update the existing objects. - - - If table provider is the destination, you can enable two-way synchronization. - - - If an object exists in the source but does not exist in the destination, you can select - one of the following options: - - - **Create** - - Select this option to create objects at the destination for source objects that have - no counterparts in the destination during synchronization. - - - **Skip** - - Ignore items that do not exist on the destination and update only those that do. - - - If an object does not exist in the source but exists in the destination, you can select - one of the following options: - - - **Delete** - - Delete such objects from the destination. - - - **Skip** - - Ignore objects at the destination that do not exist at the source. - - - If LDAP-compliant directory server or a phone system is the destination, you can do the - following: - - - For LDAP providers such as Active Directory, you can select one or more object types that - are synced between the source and destination directories. For other LDAP providers you - can create or update objects of a specific type. - - For each object type, you must specify the action to take. - - - **Create** - - Select this option to create objects at the destination for source objects that have - no counterparts in the destination during synchronization. You must specify a target - container for each object type. - - Click the **Container** button to view of each **Create** action that you selected - in the preceding step, and select one of the following: - - - **Create objects in this container** - Click **Browse** to change the displayed - destination container (specified on the Destination Provider page) or select a new - container. - - **Create objects in the container specified in this source field**- Enter the - distinguished name of the container. - - **Create objects in a container specified in script** - Click the Edit Script - button and write a script that identifies the desired container. - - - **Skip** - - The default selection is to skip items that do not exist on the destination and only - update those that do. - - - For phone systems such as a third-party Switchvox provider, you can only select one object - type to be synced between the source and destination directories. - - For the selected object type, you must specify the action to take. - - - **Create** - - Select this option to create object at the destination for source object that has no - counterparts in the destination during synchronization. You must specify a target - container for the selected object type. - - - **Skip** - - Select this option to ignore any source objects that does not exist at the - destination during synchronization. - -2. Select the fields to be synced. Repeat for each object type desired. Object types listed are - based on the source directory that you selected on the previous page. -3. If the destination is not an Active Directory domain, select the names of fields to sync from the - list. -4. By default, Synchronize moves selects some fields from the list by analyzing the fields from the - source. -5. For the Group object type, clicking _member (sAMAccountName_) displays **Member Key** list. - Select the required Active Directory attribute from it to search matching group members in the - destination. - - NOTE: A Synchronize job can only create groups at the destination. In order to sync group - members, it searches Active Directory for the matching objects based on the Member Key field and - adds them to the group membership. - -6. To select all the fields, check the **All Fields** checkbox below. -7. Click **Save**. - -**See Also** - -- [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) -- [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md) -- [Transform](/docs/directorymanager/11.0/welcome/synchronize/transformation/overview.md) -- [Auto-Generate Unique, Complex Passwords](/docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/sourceanddestination.md b/docs/directorymanager/11.0/welcome/synchronize/create/sourceanddestination.md deleted file mode 100644 index 8f309a0442..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/sourceanddestination.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: "Select Your Source and Destination" -description: "Select Your Source and Destination" -sidebar_position: 10 ---- - -# Select Your Source and Destination - -You must create required identity providers and data sources before creating a job. They are created -in Admin Center under Identity Stores and Data Sources tab respectively. After creating the -providers, you need to specify the providers in **Select Your Source and Destination** page. - -Follow these steps to configure the settings for the providers: - -1. On the **Select Your Source and Destination** page, do the following: - - - **Your Source**: Specify the data source or identity store from which to move data. - - **Your Destination**: Specify the data source or Identity store to move data to. - - Provide the following information for the selected providers: - - - Microsoft Active Directory - - Specify a container. To include sub containers, select the checkbox **Include Sub - Containers**. - - - In case of a source, the job will fetch data from the container. - - In case of a destination the job will create or update data in the container. - - - Microsoft Entra ID - - Specify a container. To include sub containers, select the checkbox **Include Sub - Containers**. - - - In case of a source, the job will fetch data from the container. - - In case of a destination, the job will create or update data in the container. - - - Generic LDAP - - You do not need to provide any additional information for this provider. - - - Google Workspace - - Specify a container. To include sub containers, select the checkbox **Include Sub - Containers**. - - - In case of a source, the job will fetch data from the container. - - In case of a destination, the job will create or update data in the container. - - - Microsoft Access - - In the **Table Name** drop-down list, select the table you want to use. - - The list displays the tables in the selected Microsoft Access database. - - - Microsoft Excel - - In the **Select Sheet Name** drop-down list, select the sheet you want to use. - - The list displays the sheets in the selected Microsoft Excel file. - - 1. In case of Excel as destination (with Replace file-discard existing content option - selected on the Destination Provider page of the Job wizard), if any sheet name of the - Excel file is of two or less character the Synchronize job corrupts all the sheets in - that Excel file. - - 2. In case of Excel as destination (with Delete option selected on the Create Object page of - the Job wizard), If the Excel file schema is of more than 127 columns the job fails. - - - Oracle - - In the **Table or View** drop-down list, select the database table you want to use. - - The list displays the tables in the Oracle database. - - In case the type column of Oracle database is not set as Datetime then time stamp - functionality of Synchronize do not work. The given type needs to be converted into Datetime - explicitly while configuring the Synchronize job. - - - ODBC - - In **Table Name** box, enter the name of the table you want to use. - - Souldn't user select instead of entering the name? - - - Microsoft SQL Server - - In the **Table or View** drop-down list, select the database table you want to use. - - The list displays the tables in the Microsoft SQL Server database. - - - Text Driver/CSV - - You do not need to provide any additional information for this provider. - -2. Click **Next Step**. - -**See Also** - -- [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) -- [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md) -- [Transform](/docs/directorymanager/11.0/welcome/synchronize/transformation/overview.md) -- [Auto-Generate Unique, Complex Passwords](/docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/create/synchronizedjobcollection.md b/docs/directorymanager/11.0/welcome/synchronize/create/synchronizedjobcollection.md deleted file mode 100644 index 91eddef84e..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/create/synchronizedjobcollection.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Synchronized Job Collection" -description: "Synchronized Job Collection" -sidebar_position: 30 ---- - -# Synchronized Job Collection - -On the Synchronize Job Collection page, you view the list of jobs that you have added to the -collection and their information. You can add exisitng jobs or new jobs to the collections. You can -also rename, change the order, and remove jobs from the job collection. - -1. On the **Synchronized Jobs Collection** page, add jobs to the collection. - - - To add an existing job to the collection, select **Add Existing Job(s)** dialog box. Select - the check box next to the name of each job to be added and click **Add in Collection**. - - To add a new job to the collection, select **Add New Job** dialog box. Follow the steps from - [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md). - -2. Rename the jobs in the job collection by clicking the **three vertical dots** button and click - **Rename**. -3. Set the run order of an individual job by clicking the **three vertical dots** button and then - selecting **Move Up** or **Move Down.** -4. Set the action to take on the failure of a job by clicking its cell in the **On Failure** column - and then selecting one of the following: - - - **Abort**, to stop the execution of the remaining jobs in the collection. - - **Continue**, to continue the execution of next job in the collection. - -5. If you want to remove a job from the job collection, select the required job and click - **Remove**. -6. Click **Next Step** to continue. - -**See Also** - -- [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/dashboard.md b/docs/directorymanager/11.0/welcome/synchronize/dashboard.md deleted file mode 100644 index bf5db09120..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/dashboard.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: "Dashboard" -description: "Dashboard" -sidebar_position: 10 ---- - -# Dashboard - -After signing into the GroupID Portal, from the left pane select **Synchronize** to land on the -dashboard. - -![synchronizedashboard](/images/directorymanager/11.0/portal/synchronize/synchronizedashboard.webp) - -The interface has intuitive navigation options: - -- Quick Search -- Top Right Options -- Menu Pane -- Dashboard - -## Quick Search - -Look on the top of the page for **Search**. Use it to locate and display information for the jobs -and job templates. - -## Top Right Options - -The top right corner of the application displays: - -| Icon | Description | -| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Background jobs icon | View the status of jobs and job collections that are running in the background. It displays: - Jobs - Completed Jobs: Jobs that have been completed. - In Progress Jobs: Jobs that are still in running. - Job Collections - Completed Jobs: Job collections that have been completed. - In Progress Jobs: Job collections that are still in running. | -| Help icon | Launch the synchronize portal help. | -| User profile icon | Displays your profile picture with your name and the identity store that GroupID Portal is connected to. Click it to launch the menu that displays the option to [Sign Out](/docs/directorymanager/11.0/welcome/login.md#sign-out) of the portal. | - -## Menu Pane - -Look on the left side of the page for the navigation pane, which lists links to: - -- Create New ([Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) - and - [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md)) -- Dashboard -- [Manage a Job](/docs/directorymanager/11.0/welcome/synchronize/manage/job.md) -- [Manage a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollection.md) -- [Job Templates](/docs/directorymanager/11.0/welcome/synchronize/manage/jobtemplate.md) -- [Job Collection Template](/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollectiontemplate.md) - -## Dashboard - -The dashboard comprises of the following cards: - -| Cards | Description | -| ---------------------- | ----------------------------------------------------------- | -| Jobs For | Displays the jobs based on their object types. | -| Successful Jobs | Displays the jobs that have been completed successfully. | -| Jobs with Errors | Displays the jobs that are completed with errors. | -| Scheduled Jobs | Displays jobs that will run based on the time set for them. | -| My Pinned Jobs | Displays frequently used jobs. | -| Pinned Job Collections | Displays frequently used job collections. | - -**See Also** - -- [Synchronize](/docs/directorymanager/11.0/welcome/synchronize/overview.md) -- [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) -- [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md) -- [Manage a Job](/docs/directorymanager/11.0/welcome/synchronize/manage/job.md) -- [Manage a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollection.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/dtmscript/_category_.json b/docs/directorymanager/11.0/welcome/synchronize/dtmscript/_category_.json deleted file mode 100644 index a6617f79b4..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/dtmscript/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Script", - "position": 70, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "dtmscript" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/synchronize/dtmscript/dtmscript.md b/docs/directorymanager/11.0/welcome/synchronize/dtmscript/dtmscript.md deleted file mode 100644 index 8d030004e2..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/dtmscript/dtmscript.md +++ /dev/null @@ -1,174 +0,0 @@ ---- -title: "Script" -description: "Script" -sidebar_position: 70 ---- - -# Script - -Synchronize scripts are written in Visual Basic .NET. A script is run after having established a -current source row (”object”). The script determines a single value--the ”result” value--and assigns -that value to the keyword **DTM.Result**. - -The type of script determines the nature of the script result: - -- **Transform scripts:** the script result is the value of a destination field. -- **Container scripts:** the script result is the distinguished name of a parent container. - -## Examples and Language Overview - -- For examples of transform scripts, see the - [Sample Transform Scripts](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/sampletransformscript.md) - topic -- For examples of container scripts, see the - [Sample Container Scripts](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/samplecontainerscript.md) - topic -- For general information, see - [Visual Basic .NET for GroupID](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/visualbasicnetbasic.md) - topic -- For general information, see Python for GroupID topic - -## DTM keywords - -DTM keywords give you access to the data being processed. - -- DTM.Source(**``**) - - This function has a single string argument: field name. DTM.Source returns the value of the - specified field (or "attribute") for the current row ("object") in the source data. - -- DTM.Result - - This is a write-only property. This script must assign a value to DTM.Result. This type of - script determines what the value signifies. - - - Transform script – assign to DTM.Result the desired value of the transform’s destination - field. - - Container script – assign to DTM.Result the distinguished name of the new object’s container. - - In any script, each branch of execution must assign a value to DTM.Result. Failure to assign a - value to DTM.Result causes a runtime error, and the destination row ("object") is not updated or - created . The job still runs to completion. - -- DTM.ExpandVariables(**``**) - - This function has a single string argument: text. It returns the valueof the specified text as a - string after replacing each environment variable embedded in the text with its string - equivalent. Environment variables are surrounded by "%" characters, as in "%now%" and - "%SystemDrive%". - -- DTM.CancelRow() - - This subroutine contains no arguments. The current destination row ("object") is not updated or - created. DTM.CancelRow provides a way to bypass certain objects based on their attributes. (In - general, using a filter query for this purpose gives better performance.) - -- DTM.AddToContext(`<__Key__>`,`<__Value__>`) - - This function has two arguments: Key and Value. When data is to be shared across segments of - code in different editors supported by the Synchronize job wizard, it needs to be placed in the - Context. This practice prevents errors and exceptions. - -- DTM.Context(`<__Key__>`) - - This property has a single argument: Key. An object that has been added to the Context is - retrieved by passing its key (identity) to this property. - -## Context - -The Context plays a central role in the Synchronize job model. In a Synchronize job, assemblies for -Synchronize PowerTools and other third-party libraries can only be referenced in the Global Script -Editor, therefore, manipulating objects of these libraries in other code segments in a job is only -possible by adding them to the Context. - -The Context is an implementation of the .NET Hashtable collection, which is an in-memory data -structure that stores and retrieves objects using key/value pairs. The DTM object in the Synchronize -job model provides two members, AddToContext and Context, for adding and retrieving objects from the -Context. To learn more about these two members, please see the previous section on DTM keywords. - -Although a Context makes it possible to share objects added to it across different code segments of -a Synchronize job, it is not possible to test code for each segment individually without actually -running the job. For this reason, you may encounter one of the following situations: - -- You receive an exception when trying to compile the code in the Script Editor, stating that the - object reference is not found. -- Testing your script using the built-in Script Tester with random data does not provide the - expected results, even though the code handles the exception and checks are placed for null object - references. - -## Scripting restrictions enforced by Synchronize - -Behind the scenes, Synchronize inserts each script into the body of a subroutine before compiling. -Therefore, any Visual Basic .NET constructs that are only valid outside of a subroutine/function -will fail to compile and will be disallowed. - -These restrictions apply to creating a Synchronize script: - -- Subroutines, functions, classes, modules, and namespaces are not allowed. -- Module-level statements, such as Import or Option statements, are not permitted. -- Shared (that is, static, and global) variables are not supported. - -## Visual Basic options set by Synchronize - -Synchronize establishes the following Option statements which apply to all scripts and cannot be -overridden: - -- Option Explicit On – all variables must be declared before use via a Dim statement. With Visual - Basic .Net, it is possible to both declare and assign variables at their first use, as follows: - - ``` - Dim MyVariable = "Hello" - ``` - - ``` - Dim MyObject = New Object() - ``` - -- Option Strict Off – data types do not need to be declared for each variable. Conversions between - types, when possible, are performed implicitly. (By declaring data types, unnecessary conversions - can be avoided, and performance improved). - -## .Net assembly references - -Synchronize establishes certain system assembly references before compiling your scripts. These -references apply to all scripts and cannot be overridden. - -These references are: - -- MsCorLib.dll -- System.dll -- System.Data.dll -- System.Xml.dll - -System.DirectoryServices, in particular, is ”off-limits” to your scripts so as to prevent direct -access to Active Directory and other LDAP identity providers. This restriction is desirable, as it -prevents your script from acting in conflict with Synchronize, which, after all, has ultimate -responsibility for updating these providers. - -## .Net Namespaces - -Synchronize imports certain namespaces when compiling your scripts. These imports apply to all -scripts and cannot be overridden. - -These imports are: - -- Imports System -- Imports System.Text -- Imports System.Text.RegularExpressions -- Imports System.IO -- Imports System.Math - -.Net namespaces other than those listed here can still be accessed by specifying the fully-qualified -namespace. For example, a DataSet (which belongs to the System.Data namespace) can be read from a -file as follows: - -``` - Dim ds = New System.Data.DataSet()
ds.ReadXml("C:\Temp\MyFile.xml") -                 -``` - -**See Also** - -- [Visual Basic .NET for GroupID](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/visualbasicnetbasic.md) -- [Sample Transform Scripts](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/sampletransformscript.md) -- [Sample Container Scripts](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/samplecontainerscript.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/dtmscript/samplecontainerscript.md b/docs/directorymanager/11.0/welcome/synchronize/dtmscript/samplecontainerscript.md deleted file mode 100644 index bd48e8ea1e..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/dtmscript/samplecontainerscript.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: "Sample Container Scripts" -description: "Sample Container Scripts" -sidebar_position: 10 ---- - -# Sample Container Scripts - -## Object Routing Case-By-Case - -**Assumptions**: - -- Source data contains a **DeptCode** field with 2-character codes. -- Each department has a container to which new user objects should be directed. - - ``` - Select Case DTM.Source("DeptCode") - Case "SA" -  DTM.Result = "CN=Sales,CN=Users,DC=dc2000,DC=imanami,DC=biz" - Case "EN" -  DTM.Result = "CN=Engineering,CN=Users,DC=dc2000,DC=imanami,DC=biz" - Case "AD" -  DTM.Result = "CN=Administration,CN=Users,DC=dc2000,DC=imanami,DC=biz" - Case Else -  DTM.Result = "CN=Users,DC=dc2000,DC=imanami,DC=biz" - End Select - ``` - -## Object Routing Via an XML File - -**Assumptions:** - -- Source data contains a **DeptCode** field. -- Each department has a container to which new user objects should be directed. -- XML file **DeptCodes.xml** contains root element with **``** child elements, each of - which contains **``** and **``** attributes specifying desired location for - user objects belonging to each department. - - ``` - Dim dsDeptCodes As System.Data.DataSet = New System.Data.DataSet - dsDeptCodes.ReadXml("C:\temp\DeptCodes.xml") - Dim Rows As System.Data.DataRow() = _ - dsDeptCodes.Tables[0].Select("DeptCode='" & DTM.Source("DeptCode") & "'") - If Rows.Length > 0 Then - DTM.Result = Rows(0)("Container").ToString() - Else - DTM.Result = "CN=Users,DC=dc2000,DC=imanami,DC=biz" - End If - ``` - -## Object routing using an Excel file - -**Assumptions:** - -- Source data contains a **DeptCode** field. -- Each department has a container to which new user objects should be directed. -- Excel file **DeptCodes.xls** contains columns: **DeptCode** and **Container** specifying desired - location for user objects belonging to each department. - - ``` - Dim dtDeptCodes As System.Data.DataTable = New System.Data.DataTable - Dim sConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ - "Data Source=C:\temp\DeptCodes.xls;" & _ - "Persist Security Info=false;" & _ - "Extended Properties='Excel 8.0;HDR=YES'" - Dim sCmdString As String = "SELECT * FROM [Sheet1$]" - Dim daExcel As System.Data.OleDb.OleDbDataAdapter = _ - New System.Data.OleDb.OleDbDataAdapter(sCmdString, sConnString) - daExcel.Fill(dtDeptCodes) - daExcel.Dispose() - Dim Rows As System.Data.DataRow() = _ - dtDeptCodes.Select("DeptCode='" & DTM.Source("DeptCode") & "'") - If Rows.Length > 0 Then - DTM.Result = Rows(0)("Container").ToString() - Else - DTM.Result = "CN=Users,DC=dc2000,DC=imanami,DC=biz" - End If - ``` - -**See Also** - -- [Script](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/dtmscript.md) -- [Visual Basic .NET for GroupID](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/visualbasicnetbasic.md) -- [Sample Transform Scripts](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/sampletransformscript.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/dtmscript/sampletransformscript.md b/docs/directorymanager/11.0/welcome/synchronize/dtmscript/sampletransformscript.md deleted file mode 100644 index 67a8af8015..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/dtmscript/sampletransformscript.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: "Sample Transform Scripts" -description: "Sample Transform Scripts" -sidebar_position: 20 ---- - -# Sample Transform Scripts - -## Assembling a Full Name: ``, `` - -**Assumptions:** - -- Last name is present in a source field named "sn" (for surname) -- First name may or may not be present in a source field named "givenName" - -``` -If Len(DTM.Source("givenName")) > 0 Then -DTM.Result = DTM.Source("sn") & ", " & DTM.Source("givenName") -Else -DTM.Result = DTM.Source("sn") -End If -``` - -## Assembling a Full Name: ``, ``. `` - -**Assumptions:** - -- Last name is present in a source field named "sn" (for surname) -- First name may or may not be present in a source field named "givenName" -- Middle name may or may not be present in a source field named "middleName" - -``` -Dim LastName = DTM.Source("sn") -Dim FirstName = DTM.Source("givenName") -Dim MiddleName = DTM.Source("middleName") -Dim FullName = LastName -If Len(FirstName) > 0 Or Len(MiddleName) > 0 Then - FullName = FullName & ", " -End If -FullName = FullName & FirstName -If Len(FirstName) > 0 And Len(MiddleName) > 0 Then - FullName = FullName & " " -End If -If Len(MiddleName) > 0 Then - FullName = FullName & Left(MiddleName, 1) & "." -End If -DTM.Result = FullName -``` - -## Formulating a UserName: 6 chars of last name & first initial, all lower case - -**Assumptions:** - -- Last name is present in a source field named "sn" (for surname) -- First name is present in a source field named "givenName" - -``` -DTM.Result = LCase(Left(DTM.Source("sn"), 6) & Left(DTM.Source("givenName"), 1)) -``` - -## Formulating a UserName: Combine first letter of each part of name, all lower case - -**Assumptions:** - -- Last name is present in a source field named "sn" (for surname) -- First name may or may not be present in a source field named "givenName" -- Middle name may or may not be present in a source field named "middleName" -- Each part of name may be composed of multiple words separated by hyphens, spaces or commas, and - script must pick out the first character of each word – for example,. "Reginald Howard-Hughes - Thompson, Jr." converts to "rhhtj". - -``` -Dim Fullname As String = DTM.Source("givenName") & " " _ -& DTM.Source("middleName") & " " _ -& DTM.Source("sn") -Dim Nameparts As String() = Fullname.Split(" ,-".ToCharArray()) -Dim Initials As String = "" -For Each Namepart As String In Nameparts - Initials = Initials & Left(Namepart, 1) -Next  - DTM.Result = LCase(Initials) -``` - -## Code Translation: Translating Case-By-Case - -**Assumptions:** - -- Source data contains a "DeptCode" field with 2-character codes. -- Corres. destination field data needs full spelling of department name. - -``` -Select Case DTM.Source("DeptCode") -Case "SA" -  DTM.Result = "Sales" -Case "EN" -  DTM.Result = "Engineering" -Case "AD" -  DTM.Result = "Administration"        -Case Else    -  DTM.Result = "Other" -End Select -``` - -**See Also** - -- [Script](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/dtmscript.md) -- [Visual Basic .NET for GroupID](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/visualbasicnetbasic.md) -- [Sample Container Scripts](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/samplecontainerscript.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/dtmscript/visualbasicnetbasic.md b/docs/directorymanager/11.0/welcome/synchronize/dtmscript/visualbasicnetbasic.md deleted file mode 100644 index f886c7751e..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/dtmscript/visualbasicnetbasic.md +++ /dev/null @@ -1,189 +0,0 @@ ---- -title: "Visual Basic .NET for GroupID" -description: "Visual Basic .NET for GroupID" -sidebar_position: 30 ---- - -# Visual Basic .NET for GroupID - -This topic discusses some points of information relevant to DTM scripting in GroupID. See -[Visual Basic Language Reference](https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/) -article for additional information. - -## Differences between Visual Basic .NET and other Visual Basic versions - -Visual Basic .NET is largely a superset of Visual Basic 6. If you are familiar with Visual Basic -before the advent of .NET technology, you may wish to refer to -[Language Changes in Visual Basic](https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2008/skw8dhdd(v%3dvs.90)), -and particularly to -[Programming Element Support Changes Summary](https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2008/kaf4ssya(v%3dvs.90)). -For the most part, statements and constructs that worked in Visual Basic 6, Visual BasicScript, and -Visual BasicA continue to work in Visual Basic .NET. - -Important: A key difference, however, is that the Set keyword is no longer used to assign a value to -an object. Simply omit it! - -## Declaring variables - -Variables must be declared via the Dim keyword prior to, or concurrent with, their first use. -Optionally, you can indicate the data type of the variable in the declaration. - -The following declarations are valid: - -- Dim Lastname -- Dim Lastname, Firstname -- Dim Lastname, Firstname As String -- Dim Lastname = DTM.Source("sn") -- Dim Lastname As String = DTM.Source("sn") - -## Manipulating Strings - -The most common use of Synchronize scripting is to dissect and combine strings. String literals are -always enclosed in quotes, and Visual Basic provides the operator for concatenating strings. - -``` -Dim Fullname = Lastname & ", " & Firstname -``` - -Visual Basic also provides a host of global functions that perform various string manipulations, for -example: - -- Len(Str): e.g., - - ``` - Dim LengthOfName = Len(Fullname) - ``` - -- Left(Str, Length): e.g., - - ``` - Dim MiddleInitial = Left(DTM.Source("middleName"), 1) - ``` - -- Mid(Str, Start, Length): e.g., - - ``` - Dim SeventhCharacter = Mid(Fullname, 7, 1) - ``` - -- LCase(Str): e.g., - - ``` - Dim LowerCaseName = LCase(Fullname) - ``` - -For a list of such string functions, see the -[String Manipulation Summary](https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/keywords/string-manipulation-summary) -topic. - -As an alternative to global functions (which are handed down from Visual Basic before the advent of -.NET technology) you can instead use the .NET string class and related classes. These methods can -only be applied to a variable if you declare the data type of the variable to be As String (as in -Dim Lastname As String). Unlike global functions, positions within a string are 0-based (that is, -the first character occupies position 0) instead of 1-based (the first character occupies position -1). - -- String.Length: e.g., - - ``` - Dim LengthOfName As Integer = Fullname.Length - ``` - -- String.Substring(Start, Length): e.g., - - ``` - Dim MiddleInitial As String = DTM.Source("middleName").Substring(0, 1) - ``` - -- String.ToLower(): e.g. - - ``` - Dim LowerCaseName As String = Fullname.ToLower() - ``` - -For a list of such string methods, see -[.NET String Methods](https://msdn.microsoft.com/en-us/library/system.string_methods(v%3dvs.110).aspx). - -## Line Continuation - -With extensive string manipulation, statement lines frequently become quite long. In order to break -a statement into two or more lines, insert a space followed by an underline (”_”) just prior to -each line break. - -NOTE: Be sure to insert the line break characters ("_") outside of a string literal. - -Example: - -``` -Dim DistinguishedName = "cn=Sales,CN=SF,CN=WestCoast,CN=Users," _ -& "OU=corporation,DC=dc2000,DC=imanami,DC=biz" -``` - -## Decision Structures - -You can make decisions in your script using the If-Then or If-Then-Else constructs. These require a -condition clause that evaluates to true or false. - -Example 1: - -``` -Dim Fullname = DTM.Source("sn") -If Len(DTM.Source("givenName")) > 0 Then -Fullname = Fullname & ", " & DTM.Source("givenName") -End If -``` - -Example 2: - -``` -If DTM.Source("Department") = "Sales" Then -DTM.Result = "cn=Sales,CN=Users,DC=dc2000,DC=imanami,DC=biz" -Else -DTM.Result = "CN=Users,DC=dc2000,DC=imanami,DC=biz" -End If -``` - -To perform one of a number of alternative actions based on the value of a variable, the Select Case -construct comes in handy. In this example, note the use of the global LCase function. This example -illustrates a how to make case-insensitive string comparisons. - -``` -Select Case LCase(DTM.Source("Department")) -Case "sales" -DTM.Result = "cn=Sales,CN=Users,DC=dc2000,DC=imanami,DC=biz" -Case "engineering" -DTM.Result = "cn=Eng,CN=Users,DC=dc2000,DC=imanami,DC=biz" -Case "admin" -DTM.Result = "cn=Admin,CN=Users,DC=dc2000,DC=imanami,DC=biz" -Case Else -DTM.Result = "CN=Users,DC=dc2000,DC=imanami,DC=biz" -End Select -``` - -## Loops - -It is uncommon to use loops in a DTM script, since the script itself is executed in the context of a -single source row (or object) and a single destination row (or object). However, complex string -manipulations may require iterating through the characters of a string. Iteration through the -characters is most easily accomplished using the or Each construct. - -**Example:** - -Count the number of numeric digits in an alphanumeric ID source field using the IsDigit() shared -function of the .Net Char class. - -``` - Dim Count = 0 - For Each ch As Char In DTM.Source("ID") - If Char.IsDigit(ch) Then - Count = Count + 1 - End If - Next -                 -``` - -**See Also** - -- [Script](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/dtmscript.md) -- [Sample Transform Scripts](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/sampletransformscript.md) -- [Sample Container Scripts](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/samplecontainerscript.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/manage/_category_.json b/docs/directorymanager/11.0/welcome/synchronize/manage/_category_.json deleted file mode 100644 index 748ad3d8da..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/manage/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Manage Jobs", - "position": 50, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/synchronize/manage/job.md b/docs/directorymanager/11.0/welcome/synchronize/manage/job.md deleted file mode 100644 index 5d67f62ef2..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/manage/job.md +++ /dev/null @@ -1,231 +0,0 @@ ---- -title: "Manage a Job" -description: "Manage a Job" -sidebar_position: 10 ---- - -# Manage a Job - -After creating a job, you can open a job to edit and change the settings of the job. You can also -rename a job without changing its setting or entirely delete a job. All these actions are easily -accessible through the Actions pane in **All Jobs** page. - -What do you want to do? - -- [Filter a Job](#filter-a-job) -- [Open a Job](#open-a-job) -- [Run a Job](#run-a-job) -- [Edit a Job](#edit-a-job) -- [Deleting a Job](#deleting-a-job) -- [Preview a Job](#preview-a-job) -- [Schedule a Job](#schedule-a-job) -- [Pin a Job](#pin-a-job) -- [Save as Template](#save-as-template) -- [Duplicate a Job](#duplicate-a-job) -- [View Job Details](#view-job-details) -- [Export a Job](#export-a-job) -- [Import a Job](#import-a-job) -- [Rename a Job](#rename-a-job) - -## Filter a Job - -You can apply filters on the **All Jobs** page to display only those jobs that match the criteria -set in the **Search Filters** section. - -1. On GroupID Portal, select **Synchronize**on left pane. -2. On Synchronize portal, click **All Jobs**. -3. In the **Search Filters** section, select one of the following attributes from the **Attributes** - list to filter jobs: - - - Name - - Description - - Source - - Destination - - LastRun - - Created - - Modified - - TimesRun - -4. Two more boxes get displayed next to **Attributes** box upon selecting a filter. - - - **Select an Operator** from the first list. - - Specify a value for the selected operator in the second box. - -5. Click **Apply Filter**. - - All the jobs that match the specified criterion are displayed. - -## Open a Job - -When you open a job to view or change its settings, the **Edit Job** wizard opens, which is -virtually identical to the -[Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) wizard. - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On Synchronize portal, click **All Jobs**. - - Click the job name to launch the **Job Details** wizard. - -3. In the **Job Details** wizard, navigate to the page containing the information that you want to - review or modify. - -## Run a Job - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the **Synchronize** portal, click **All Jobs**. -3. In the jobs list, click - ![option](/images/directorymanager/11.0/portal/synchronize/manage/option.webp) on the - job that you want to run and click **Run**. -4. If workflow requests are enabled, the request for running the job will go to the approver. If - they approve the requests, the job will run. If they deny the requests, you will not be able to - run the job. -5. The **Review Job Run** dialog box appears, providing access to run statistics, reports, and logs - for the last job run. -6. Click **Run Job in the Background** to list the job in the **Background** tasks. - -## Edit a Job - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **All Jobs**. -3. In the jobs list, click the **three vertical dots** icon on the job that you want to edit and - click **Edit**. -4. Go through the wizard pages to modify the job as required. -5. Click **Finish** twice to close both wizards. - -## Deleting a Job - -Deleting a Job removes it from Synchronize. By deleting a Job, you also loose any information about -it, such as its run history. - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On Synchronize portal, click **All Jobs**. -3. Click the **three vertical dots** icon of the job that has to be deleted and select **Delete** - from the menu. - -## Preview a Job - -Before running a job, you can preview the results and identify if the job consists of any errors. - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On Synchronize portal, click **All Jobs**. -3. Click the **three vertical dots** icon of the job and select **Preview** from the menu. - -## Schedule a Job - -To add or update the schedule for a job: - -1. On GroupID Portal, select **Synchronize**on left pane. -2. On Synchronize portal, click **All Jobs**. -3. Click the **three vertical dots** icon of the job and select **Schedule** from the menu. - - It will take you to the **Schedule and Job Notifications** page of - [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md). Update - the schedule and click **Finish** to save the changes. - -## Pin a Job - -To pin a job to the -[Dashboard](/docs/directorymanager/11.0/welcome/synchronize/dashboard.md) under the pinned -job card: - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On Synchronize portal, click **All Jobs**. -3. Click the **three vertical dots** icon of the job and select **Pin Item** from the menu. -4. The job is displayed on **My Pinned Jobs** card on the - [Dashboard](/docs/directorymanager/11.0/welcome/synchronize/dashboard.md). - -## Save as Template - -You can save a job as a template to use it for future job creation. - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On Synchronize portal, click **All Jobs**. -3. Click the **three vertical dots** icon of the job and select **Save as Template** from the menu. -4. On **Template Name Description wizard**, update the name and description and click Save. - - The new template gets listed in the **Job Templates** page. - -## Duplicate a Job - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the **Synchronize** portal, click **All Jobs**. -3. In the **Jobs** list, click the **three vertical dots** icon on the job that has to be duplicated - and click **Duplicate**. -4. Update the **Job name** and **Job Description**. -5. Click **Save**. - -## View Job Details - -You can view the details of the job by following these steps: - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the **Synchronize** portal, click **All Jobs**. -3. In the **Jobs** list, click the **three vertical dots** icon on the job and click **Job - Details**. - -## Import a Job - -You can also import jobs. Only job that have been exported from GroupID Synchronize can be imported -to other machines running GroupID Synchronize. - -The import action only requires you to select the location where the exported job resides. - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **All Jobs**. -3. Click **Import Jobs** to open the dialog box. -4. Click the **Browse** button to browse to the location where the exported jobs are placed. - - Enter the password in the **Password** box. - - Select the **Rename Job if already exists** checkbox if you do not want multiple jobs with same - names. - -5. Click **Import Job(s)**. The job gets listed with other jobs. - -## Export a Job - -To export a job collection template, you need to follow these steps: - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **All Jobs**. -3. On the **All Job** page, click the **three vertical dots** icon on the job in the list that you - want to export and click **Export**. -4. On the **Export Job(s)** wizard, enter the password and export the job. - -If you want to export multiple jobs, select all and click **Export Job(s)** from the top right -corner. - -## Rename a Job - -Renaming a job lets you save a job under a new name and a new description. As you would expect, -renaming a job does not affect its settings. - -**Renaming a Job, using shortcut** - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On Synchronize portal, click **All Jobs**. -3. Click the required Job. It takes you to Job creation pages. -4. Go to **Job Details** to rename the job. - - 1. In the **Job Name** box, type a new name for the Job. - 2. In the **Description** box, type a new description for the box (optional). - -5. Click **Finish** to close the dialog box and save changes. - -**Rename a Job, using the Actions menu** - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On Synchronize portal, click **All Jobs**. -3. From the list, select the required Job. -4. On the **Actions** menu, click **Rename**. -5. On the **Rename Job** dialog box: - - 1. In the **Job Name** box, type a new name for the Job. - 2. In the **Description** box, type a new description for the box (optional). - -6. Click **Save** to close the dialog box and save changes. - -**See Also** - -- [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) -- [Synchronize Schedule](/docs/directorymanager/11.0/signin/schedule/synchronize.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollection.md b/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollection.md deleted file mode 100644 index ceff245bab..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollection.md +++ /dev/null @@ -1,250 +0,0 @@ ---- -title: "Manage a Job Collection" -description: "Manage a Job Collection" -sidebar_position: 20 ---- - -# Manage a Job Collection - -You can do the following in a job collection: - -- **Duplicate a job collection** - select an existing job collection and duplicate it to create a - new job with the same settings. -- **Remove jobs from a collection** - Suppose you add an existing job to a collection. If this job - is deleted from the collection, the collection’s copy is deleted while the original continues to - exist in the All Jobs list. -- **Determine the order of their execution** - specify the order in which jobs run one after - another. -- **Specify a failure action for each job** - For each job in the collection, you can specify the - action to take if it fails to run successfully, choosing whether to continue or to abort the - execution of the remaining jobs in collection. -- **Set up job run notifications** - Email notifications contain a brief numerical summary of the - objects processed by the job collection and a detailed log of statistics and errors. - - NOTE: Notification settings for individual jobs do not apply when they are run as part of a job - collection. - -What do you want to do? - -- [Filter Job Collection](#filter-job-collection) -- [Run a Job Collection](#run-a-job-collection) -- [Create a Job Collection by duplicating an existing one](#create-a-job-collection-by-duplicating-an-existing-one) -- [Change the execution order of individual jobs in a Job Collection](#change-the-execution-order-of-individual-jobs-in-a-job-collection) -- [Edit a Job in a Job Collection](#edit-a-job-in-a-job-collection) -- [Remove a job from a job collection](#remove-a-job-from-a-job-collection) -- [Delete a Job Collection](#delete-a-job-collection) -- [Preview a Job Collection](#preview-a-job-collection) -- [Pin a Job Collection](#pin-a-job-collection) -- [Save as Template](#save-as-template) -- [Rename a Job Collection](#rename-a-job-collection) -- [Export a Job Collection](#export-a-job-collection) -- [Import a Job Collection](#import-a-job-collection) -- [Recent Runs](#recent-runs) - -## Filter Job Collection - -You can apply filters on the **Job Collections** page to display only those jobs that match the -criteria set in the **Search Filters** section. - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On Synchronize portal, click **Job Collections**. -3. In the **Search Filters** section, select one of the following attributes from the **Attributes** - list to filter job collections: - - - Name - - Description - - TimesRun - - NextRun - - LastRun - - Created - -4. Two more boxes get displayed next to **Attributes** box upon selecting a filter. - - - **Select an Operator** from the first list. - - Specify a value for the selected operator in the second box. - -5. Click **Apply Filter**. - - All the job collections that match the specified criterion are displayed. - -## Run a Job Collection - -1. On GroupID Portal, click **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Collection.** -3. From the list, click the **three vertical dots** icon of the required job collection and click - **Run Job Collection**. - - The **Run Job Collection** dialog box opens, showing the progress of the of the job collection - as it runs. - -4. **Run Job Collection** dialog box displays overall collection statistics for the run, reports and - individual logs for each job in the collection. -5. Click **Run Job Collection in the Background** to list the job in the **Background** tasks. - -## Create a Job Collection by duplicating an existing one - -1. In GroupID Portal, select **Synchronize**. -2. On the Synchronize portal, click **Job Collection**. -3. In the job collection list, click the **three vertical dots** icon on the job collection you want - to duplicate and select **Duplicate**. -4. Update the **Job name** and **Job Description**. -5. Click Save. - -## Change the execution order of individual jobs in a Job Collection - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Collection**. -3. In the job collection list, click the required job collection. -4. In the jobs list on **Synchronized Job Collections** page, click the **three vertical dots** icon - the required job and then click **Move Up** or **Move Down** as needed. -5. Click **Finish**. - -## Edit a Job in a Job Collection - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Collections**. -3. In the job collections list, click the job collection you want to edit. -4. Click the **three vertical dots** icon the required job and click **Edit**. -5. Go through the wizard pages to modify the job as required. -6. Click **Finish** twice to close both wizards. - -## Remove a job from a job collection - -You can remove a certain job from your job collection by the following methods: - -**Remove a job from a job collection, using Action Menu** - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Collections**. -3. In the job collections list, expand the required job collection. -4. **Added Jobs** displays the jobs of that collection. -5. Select See Details. -6. Click the **three vertical dots** icon on the job you want to remove and click **Delete**. - -**Remove a job from a job collection, using job collection creation wizard** - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Collections**. -3. In the job collections list, click on the required job collection to open **Synchronized Job - Collection** page. -4. Select the required job and click **Remove**. - -## Delete a Job Collection - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Collections.** -3. In the job collections list, click the **three vertical dots** icon on the job collection you - want to delete and click **Delete**. - -## Preview a Job Collection - -1. On GroupID Portal, click select **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Collection.** -3. From the list, click the **three vertical dots** icon of the required job collection and click - **Preview**. - - The **Preview Job Collection** dialog box opens, showing the progress of all the jobs included - in the job collection., - -4. **Preview Job Collection** dialog box displays overall job collection statistics and reports. - -## Pin a Job Collection - -To pin a job to the -[Dashboard](/docs/directorymanager/11.0/welcome/synchronize/dashboard.md) under the pinned -job card: - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On Synchronize portal, click **All Collections**. -3. Click the **three vertical dots** icon of the job collection and select **Pin Item** from the - menu. -4. The job collection is displayed on **My Pinned Job Collections** section on the - [Dashboard](/docs/directorymanager/11.0/welcome/synchronize/dashboard.md). - -## Save as Template - -You can save a job as a template to use it for future job creation. - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On Synchronize portal, click **All Collections**. -3. Click the **three vertical dots** icon of the job collection and select **Save as Template** from - the menu. -4. On **Job Collection Template Name Description wizard**, update the name and description and click - Save. - - The new template gets listed in the **Job Collection Templates** page. - -## Rename a Job Collection - -Renaming a job collection lets you save a job collection under a new name and a new description. -Renaming a job collection does not affect its settings. - -**Renaming a Job Collection, using shortcut** - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On Synchronize portal, click **Job Collection**. -3. Click the required Job Collection. It takes you to Job Collection creation pages. -4. Go to **Job Details** to rename the job. - - 1. In the **Job Collection Name** box, type a new name for the Job. - 2. In the Job Collection **Description** box, type a new description for the box (optional). - -5. Click **Finish** to close the dialog box and save changes. - -**Rename a Job Collection, using the Actions menu** - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On Synchronize portal, click **Job Collection**. -3. From the list, select the required Job Collection. -4. On the **Actions** menu, click **Rename**. -5. On the **Rename Job Collection** dialog box: - - 1. In the **Job Name** box, type a new name for the Job. - 2. In the Job Collection **Description** box, type a new description for the box (optional). - -6. Click **Save** to close the dialog box and save changes. - -## Export a Job Collection - -To export a job collection, you need to follow these steps: - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On Synchronize portal, click **Job Collection**. -3. On the **Job Collection** page, click the **three vertical dots** icon on the job in the list - that you want to export and click **Export**. -4. On the **Export Job(s)** wizard, enter the password and export the job collection. - -If you want to export multiple job collections, select all and click **Export Job(s)** from the top -right corner. - -## Import a Job Collection - -Only job that have been exported from GroupID Synchronize can be imported to other machines running -GroupID Synchronize. - -The import action only requires you to select the location where the exported job resides. - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On Synchronize portal, click **Job Collection**. -3. Click **Import Jobs** to open the dialog box. -4. Click the **Browse** button to browse to the location where the exported jobs are placed. - - Enter the password in the **Password** box. - - Select the **Rename Job if already exists** checkbox if you do not want multiple jobs with same - names. - -5. Click **Import Job(s)**. The Job collection gets listed with other jobs. - -## Recent Runs - -1. On GroupID Portal, click **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Collections**. -3. From the list, right-click the required job group and click **Recent Runs**. -4. This provides the overall collection statistics, reports and individual logs for each of the jobs - in the collection for their last run activity. - -**See Also** - -- [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md) -- [Synchronize Schedule](/docs/directorymanager/11.0/signin/schedule/synchronize.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollectiontemplate.md b/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollectiontemplate.md deleted file mode 100644 index 571e6acdee..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollectiontemplate.md +++ /dev/null @@ -1,143 +0,0 @@ ---- -title: "Job Collection Template" -description: "Job Collection Template" -sidebar_position: 30 ---- - -# Job Collection Template - -You can create a job collection template either by converting an existing job collection into a job -collection template or by importing a job collection template. - -By using a template for creating a new job collection, you can duplicate its job set, execution -order, and failure actions. The run schedule for the collection, however, is not defined in the -template. - -A job collection template cannot be modified. Any changes made to it are not saved in the template -but a new job collection is created with the modifications. - -Because of the wide variation of possible job combinations, Synchronize does not provide predefined -job collection templates. - -What do you want to do? - -- [Create a job collection template from a job collection](#create-a-job-collection-template-from-a-job-collection) -- [Import a Job Collection Template](#import-a-job-collection-template) -- [Export a Job Collection Template](#export-a-job-collection-template) -- [Create a Job Collection from a Template](#create-a-job-collection-from-a-template) -- [Rename a Job Collection Template](#rename-a-job-collection-template) -- [Delete a Job Collection Template](#delete-a-job-collection-template) -- [Filter Job Collection Templates](#filter-job-collection-templates) - -## Create a job collection template from a job collection - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Collections**. -3. In the **Job Collections** view, click - ![option](/images/directorymanager/11.0/portal/synchronize/manage/option.webp) on the - job collection you want to save as a template and click **Save As Template**. -4. Now click **Job Collection Templates** and refresh the page. The newly created job group template - appears in the **Job Collection Templates** list. -5. If a run schedule has been define for the collection, it does not become part of the template. - Rather, when you create a job collection from the template, you have to define a run schedule for - it. - -## Import a Job Collection Template - -You can also import job collection templates. Only job collection templates that have been exported -from GroupID Synchronize can be imported to other machines running GroupID Synchronize. - -The import action only requires you to select the location where the exported template resides. - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Collections Templates**. -3. Click **Import Jobs** to open the dialog box. -4. Click the **Browse** button to browse to the location where the exported job Collection templates - are placed. The selected path is displayed in the adjacent box. - - All job collection templates at the given location get listed in the **Name** column. - - The **Description** column shows the description of the job collection template. - - The **Total Jobs** column shows the total number of jobs in the job collection template. - -While importing, if a job collection template with the same name already exists on the machine, a -confirmation box is displayed for you to verify the import by replacing the existing template or -saving it as a new one. If you import it as a new template, Synchronize appends a numeric code to -the template name to differentiate it from the existing template. - -## Export a Job Collection Template - -To export a job collection template, you need to follow these steps: - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Collections Templates**. -3. On the **Job Collection Templates** page, click the **three vertical dots** icon on the template - in the list that you want to export and click **Export**. - -If you want to export multiple job collection templates, select all and click **Export Job(s)** from -the top right corner. - -## Create a Job Collection from a Template - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Collection Templates**. - - For every template listed, the view provides its name, description and the number of jobs it - contains. - -3. On the **Job Collection Templates** page, click the **three vertical dots** icon on the template - in the list and select **Create from Template**. - - OR - - Double-click the job collection template you want to use for the new job collection. - -4. This will launch - [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md) - wizard starting from the Job Collection(s) page. Proceed to map the settings stored in the - template on to the new job collection. - -## Rename a Job Collection Template - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Collection Templates**. -3. On the **Job Collection Templates** page, click the **three vertical dots** icon on the template - in the list click **Rename**. -4. On **Rename Job Template Name and Description wizard**, update the name and description and click - **Save.** - -## Delete a Job Collection Template - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Collection Templates**. -3. On the **Job Collection Templates** page, click the **three vertical dots** icon on the template - in the list that you want to delete and click **Delete**. - -## Filter Job Collection Templates - -You can apply filters on the **Job Collection Templates** page to display only those job templatess -that match the criteria set in the **Search Filters** section. - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On Synchronize portal, click **Job Collection Templates**. -3. In the **Search Filters** section, select one of the following attributes from the **Attributes** - list to filter job collection templates: - - - Name - - Description - -4. Two more boxes get displayed next to **Attributes** box upon selecting a filter. - - - **Select an Operator** from the first list. - - Specify a value for the selected operator in the second box. - -5. Click **Apply Filter**. - - All the job collection templates that match the specified criterion are displayed. - -**See Also** - -- [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md) -- [Manage a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollection.md) -- [Synchronize Schedule](/docs/directorymanager/11.0/signin/schedule/synchronize.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/manage/jobtemplate.md b/docs/directorymanager/11.0/welcome/synchronize/manage/jobtemplate.md deleted file mode 100644 index bd22e36221..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/manage/jobtemplate.md +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: "Job Templates" -description: "Job Templates" -sidebar_position: 40 ---- - -# Job Templates - -Synchronize comes with a set of pre-defined job templates that represent some of the most common -business scenarios in use. You can use these templates as is, modify them to suit your needs, or -create your own custom templates. - -Creating a custom template involves saving a job as a template. Therefore, you must first create a -job with commonly used settings before you can save it as a template. You can also create templates -of existing jobs on-the-fly to reuse their settings in new jobs. - -What do you want to do? - -- [Create a Job Template](#create-a-job-template) -- [Import a Job Template](#import-a-job-template) -- [Export a Job Template](#export-a-job-template) -- [Create a Job from a Template](#create-a-job-from-a-template) -- [Rename a Job Template](#rename-a-job-template) -- [Delete a Job Template](#delete-a-job-template) -- [Filter Job Templates](#filter-job-templates) - -## Create a Job Template - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On **Synchronize** portal, select **All Jobs**. -3. From the **All Jobs** list, select the job you want to save as a template. -4. Click the **three vertical dots** icon and select **Save as Template**. -5. On **Template Name and Description wizard**, update the name and description and click **Save.** - -## Import a Job Template - -You can also import job templates. Only job templates that have been exported from GroupID -Synchronize can be imported to other machines running GroupID Synchronize. - -The import action only requires you to select the location where the exported template resides. - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Templates**. -3. Click **Import Jobs** to open the dialog box. -4. Click the **Browse** button to browse to the location where the exported job templates are - placed. The selected path is displayed in the adjacent box. - - All job templates at the given location get listed in the **Name** column. - - The **Description** column shows the description of the job template. - - The **Source and Destination** column displays the name of providers. - -While importing, if a job template with the same name already exists on the machine, a confirmation -box is displayed for you to verify the import by replacing the existing template or saving it as a -new one. If you import it as a new template, Synchronize appends a numeric code to the template name -to differentiate it from the existing template. - -## Export a Job Template - -To export a job collection template, you need to follow these steps: - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Templates**. -3. On the **Job Templates** page, click the **three vertical dots** icon on the template in the list - that you want to export and click **Export**. - -If you want to export multiple job templates, select all and click **Export Job(s)** from the top -right corner. - -## Create a Job from a Template - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Templates**. - - For every template listed, the view provides its name, description, source, and the destination - proider. - -3. On the **Job Templates** page, click the **three vertical dots** icon on the template in the list - and select **Create from Template**. - - OR - - Click the job template you want to use for the new job.. - -4. This will launch - [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) wizard. - Proceed to map the settings stored in the template on to the new job. - -## Rename a Job Template - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On the Synchronize portal, click **Job Templates**. -3. On the **Job Templates** page, click the **three vertical dots** icon on the template in the list - click **Rename**. -4. On **Rename Job Template Name & Description wizard**, update the name and description and click - **Save.** - -## Delete a Job Template - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On **Synchronize** portal, select **Job Templates**. -3. On the **Job Templates** list, click the **three vertical dots** icon of the template that you - want to delete and select **Delete** from the menu. - -## Filter Job Templates - -You can apply filters on the **Job Templates** page to display only those job templates that match -the criteria set in the **Search Filters** section. - -1. On GroupID Portal, select **Synchronize** on left pane. -2. On Synchronize portal, click **Job Templates**. -3. In the **Search Filters** section, select one of the following attributes from the **Attributes** - list to filter job templates: - - - Name - - Description - - Source - - Destination - -4. Two more boxes get displayed next to **Attributes** box upon selecting a filter. - - - **Select an Operator** from the first list. - - Specify a value for the selected operator in the second box. - -5. Click **Apply Filter**. - - All the job templates that match the specified criterion are displayed. - -**See Also** - -- [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) -- [Manage a Job](/docs/directorymanager/11.0/welcome/synchronize/manage/job.md) -- [Synchronize Schedule](/docs/directorymanager/11.0/signin/schedule/synchronize.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/manage/overview.md b/docs/directorymanager/11.0/welcome/synchronize/manage/overview.md deleted file mode 100644 index 189967b6c6..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/manage/overview.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Manage Jobs" -description: "Manage Jobs" -sidebar_position: 50 ---- - -# Manage Jobs - -Synchronize allows its users to create, manage, and schedule jobs and job collections. Synchronize -simplifies this process by providing an efficient system to manage jobs and job collections. - -See Also - -- [Manage a Job](/docs/directorymanager/11.0/welcome/synchronize/manage/job.md) -- [Job Templates](/docs/directorymanager/11.0/welcome/synchronize/manage/jobtemplate.md) -- [Manage a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollection.md) -- [Job Collection Template](/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollectiontemplate.md) -- [Schedule a Job / Job Collection](/docs/directorymanager/11.0/welcome/synchronize/manage/schedule.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/manage/schedule.md b/docs/directorymanager/11.0/welcome/synchronize/manage/schedule.md deleted file mode 100644 index 8272175f84..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/manage/schedule.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "Schedule a Job / Job Collection" -description: "Schedule a Job / Job Collection" -sidebar_position: 50 ---- - -# Schedule a Job / Job Collection - -The GroupID scheduling function enables you to set any Synchronize job or job collection to run -automatically. Create a Synchronize schedule and add Synchronize jobs and job collections as -targets. When the schedule runs, the target jobs and job collections are executed. - -To create a Synchronize schedule, see the -[Synchronize Schedule](/docs/directorymanager/11.0/signin/schedule/synchronize.md) -topic. - -See Also - -- [Schedules](/docs/directorymanager/11.0/signin/schedule/overview.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/overview.md b/docs/directorymanager/11.0/welcome/synchronize/overview.md deleted file mode 100644 index aa22885967..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/overview.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: "Synchronize" -description: "Synchronize" -sidebar_position: 90 ---- - -# Synchronize - -GroupID Synchronize is a web-based application that can be accessed using the GroupID portal. The -application is a bi-directional synchronization engine for transferring data from one data source to -another. The data sources may include directory servers, databases or files. Utilizing a very -intuitive GUI, you can create Synchronize jobs to provision, de-provision or synchronize multiple -data sources. - -The Synchronize portal is also capable of applying transformations to the data being transferred. -This allows you to convert data after retrieving it from the source and before it gets saved at the -destination. - -## Prerequisites for Synchronize - -Using GroupID, you can create identity stores for several identity providers (such as Active -Directory and Microsoft Entra ID) as well as create data sources for providers such as files and -databases. GroupID Synchronize uses user-defined identity stores (as source and destination) built -on databases, files and other applications such as Oracle, SQL and so on. To view the list of -supported Synchronize providers, see the -[Synchronize Providers](/docs/directorymanager/11.0/welcome/synchronize/provider.md) topic. - -The following must be defined before you can use Synchronize: - -- **Identity Store:** Identity stores must be created in Admin Center for sources and destinations - providers. For working with Synchronize, create a Synchronize based identity store for creating - jobs and job collections. - - Synchronize data for AD and Microsoft Entra ID is directly saved to Elasticsearch and - Replication is not required. - -- **Data sources:** You need to add the data sources in Admin Center like Microsoft Excel, Text, - Oracle, etc for creating job and job collections. -- **Permissions:** For performing Synchronize operations, the logged-in user must have Synchronize - specific permissions. These permissions enable the user to create, edit and run jobs or job - collections as per the defined Synchronize policy. -- **Policies**: Using the Synchronize policy, you can allow or disallow a provider to be used as a - source or destination. You can choose the object types that can be created or synced at the - destination using a Synchronize job. For each object type in an identity store and data source, - specify the attributes that will be available for mapping the source and destination fields in a - Synchronize job. -- **History:** Synchronize can maintain a complete track of actions performed in a directory through - a Synchronize job, provided that an identity store for the destination provider has been defined - in GroupID Admin Center and history tracking is enabled for that identity store. The actions to be - tracked for Synchronize are also specified in history settings of that identity store. -- **Workflows:** Workflow requests can be enabled to run job or job collections. A workflow needs to - be created in the Admin Center and an approver must be assigned for that workflow. Each time if a - user runs a synchronize job, the job runs only when the approver approves the request. If they - deny, the job will not run. -- **Notifications:** An SMTP server must be configured for the destination's identity store. Using - that SMTP server email notification can be sent to designated recipients for different actions - performed while executing a Synchronize job. -- **Messaging Provider:** A messaging provider must be configured for the destination's identity - store so that mail-enabled objects can be created through Synchronize job in the destination. - -## Dashboard - -Synchronize dashboard displays performance widgets and cards displaying the data about your jobs and -job collections. On the navigation pane on the left side, you will see the following tabs: - -- Create New ([Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) - and - [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md)) -- [Dashboard](/docs/directorymanager/11.0/welcome/synchronize/dashboard.md) -- [Manage a Job](/docs/directorymanager/11.0/welcome/synchronize/manage/job.md) -- [Manage a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollection.md) -- [Job Templates](/docs/directorymanager/11.0/welcome/synchronize/manage/jobtemplate.md) -- [Job Collection Template](/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollectiontemplate.md) - -**See Also** - -- [Dashboard](/docs/directorymanager/11.0/welcome/synchronize/dashboard.md) -- [Synchronize Providers](/docs/directorymanager/11.0/welcome/synchronize/provider.md) -- [Requests](/docs/directorymanager/11.0/welcome/request/overview.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/provider.md b/docs/directorymanager/11.0/welcome/synchronize/provider.md deleted file mode 100644 index f2485aae32..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/provider.md +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: "Synchronize Providers" -description: "Synchronize Providers" -sidebar_position: 20 ---- - -# Synchronize Providers - -You can create identity stores for several identity providers (such as Active Directory and -Microsoft Entra ID) as well as create data sources for providers such as files and databases. These -identity stores and data sources can be used as source and destination in Synchronize jobs. -Synchronize transfers data from one data source to another. - -A brief description of about each supported data provider is given below. - -## Identity Stores - -Identity store must be created for these providers. Identity store providers can be used as both -source and destination. - -- Microsoft Active Directory - - The Active Directory provider can serve as both a source and destination provider. This provider - supports dynamic schema detection. - -- Microsoft Entra ID - - Microsoft Entra ID is a cloud computing platform operated by Microsoft. It can also be used as - source and destination provider. - -- Generic LDAP version 3.0 - - Use the Generic LDAP Version 3.0 provider to connect to any LDAP version 3-compliant directory - server. This provider does not support dynamic schema detection. The schema included for this - provider mostly contains commonly used fields. You can add fields to the existing schema. - - Synchronize supports many LDAP-compliant directory servers directly and provides specialized - providers for connecting with them. These directories include: - - - Active Directory - - Lotus Notes - - Novell Directory Services - - Sun ONE Directory Server - - When connecting with any of these, it is recommended that you use their specific provider - instead of the generic LDAP provider. The use of specialized providers results in performance - gains since they eliminate the extra steps involved in connecting with generic providers. - -- Google Workspace - - Use Google Workspace to connect to Google Workspace plans. You can use it as a source and - destination provider. - -See the -[Identity Stores](/docs/directorymanager/11.0/signin/identitystore/overview.md) topic -for additional information on identity stores. - -## Data Sources - -External data sources must be created first in Data Sources tab in Admin Center. - -- Microsoft Access - - Use the Access provider to connect to a Microsoft Access (.mdb | .accdb) database. Microsoft - Access (.mdb | .accdb) supports automatic schema detection. - - For communicating with this provider, Synchronize requires data connectivity components to be - installed on your machine. You can download a compatible version of the required components from - either of the following links: - - - Microsoft Access Database Engine 2010 Redistributable - - 2007 Office System Driver: Data Connectivity Components - -- Microsoft Excel - - Use Microsoft Excel (\*.xls | xlsx) as a source and destination provider. You can use the Excel - provider as destination to export source data to a new Excel worksheet, where the schema of the - new Excel worksheet is automatically built according to fields that you select from the source - to map to the destination. - - To use Microsoft Excel as provider, you must install these software components on your machine: - - - Microsoft Office 2007/2010 - - Data connectivity components found at these sites: - - - Microsoft Access Database Engine 2010 Redistributable - - 2007 Office System Driver: Data Connectivity Components - - You may encounter the following issues while using Excel provider in a Synchronize job: - - - In case of Excel as destination (with Replace file-discard existing content option selected on - the Destination Provider page of the Job wizard), if any sheet name of the Excel file is of - two or less character the Synchronize job corrupts all the sheets in that Excel file. - - In case of Excel as destination (with Delete option selected on the Create Object page of the - Job wizard), If the Excel file schema is of more than 127 columns the job fails. - -- Oracle - - You can use the Oracle provider as both a source and destination provider. This provider - supports dynamic schema detection. - - The Oracle client must be installed to use this provider (you must reboot your computer after - installing the Oracle client. - -- ODBC - - You can connect the ODBC provider to any ODBC-compatible data source including databases, - directories, and files. - -- Microsoft SQL Server - - Use the SQL Server provider to connect to Microsoft SQL Server 2005, 2008, 2008 R2 and 2012. It - can be selected both as a source and destination. This provider supports dynamic schema - detection. - - To connect with Microsoft SQL Server versions 6.5 and 7.0, use the ODBC provider. - -- Text - - Use the Microsoft Text Driver (\*.txt; \*.csv) to connect to comma-separated value (CSV) text - files or tab-separated value (TSV) text files. This provider supports automatic schema detection - if a header row is included in the file. - -See the [ Data Sources](/docs/directorymanager/11.0/signin/datasource/overview.md) -topic for additional information on Data Sources. - -**See Also** - -- [Synchronize](/docs/directorymanager/11.0/welcome/synchronize/overview.md) -- [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) -- [Create a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/create/create_1.md) -- [Manage a Job](/docs/directorymanager/11.0/welcome/synchronize/manage/job.md) -- [Manage a Job Collection ](/docs/directorymanager/11.0/welcome/synchronize/manage/jobcollection.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/transformation/_category_.json b/docs/directorymanager/11.0/welcome/synchronize/transformation/_category_.json deleted file mode 100644 index 2140c7ae95..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/transformation/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Transform", - "position": 60, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md b/docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md deleted file mode 100644 index 5ecf5d040e..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: "Auto-Generate Unique, Complex Passwords" -description: "Auto-Generate Unique, Complex Passwords" -sidebar_position: 10 ---- - -# Auto-Generate Unique, Complex Passwords - -In GroupID Portal, you can auto-generate passwords based on password complexity rules through -Synchronize. - -Common uses: - -- Provisioning a user, providing a login and temporary password -- Providing users with a new password after password expiration or account lock -- Generating a password for multiple objects - -Launched from within the Transform (Password) dialog box, the Password Complexity Options dialog box -enables you to set password complexity rules to generate passwords randomly for the objects being -synced. You can assign a single password to all synced objects or generate individual passwords for -each object. This feature requires that notifications are configured, since the new password for -each object will be sent to the administrator by email. - -If the destination is Active Directory, the Password Complexity Options dialog box also ensures that -options set here comply with the password policy of the target domain. - -In addition, should a user choose to ignore a generated password and enter their own, Synchronize -validates their entry according to the complexity requirements set on the destination Active -Directory. If the user’s password does not meet those requirements, Synchronize requires the user to -correct the password before continuing, with the exception of these two conditions: - -- Password history: The user tries to enter a previously used password. -- Account name containment: The user tries to enter a password that includes the username in it. - -If the destination is an Active Directory domain, the password transformation is available only for -the objects that support the password attribute; for example, users, mail-enabled users, and -mailbox-enabled users. The same applies to other directory services that Synchronize supports. For -destination providers such as CSV and text files, password transformation is performed for the -fields under any column labeled Password in the header. - -## To auto-generate unique, complex passwords - -1. In GroupID Portal, click **Synchronize**, to open Synchronize portal. -2. On the left navigation bar, click **Create New**, and select **Job** or open an existing job. -3. Click **Next** until you reach the **Map Fields** section on the **Objects, Fields and Mappings** - page. -4. In the **Password** row, click the **More Options** button next to the **Transform** column. The - Transformation [Password] dialog box opens. -5. Select _Static – assign a static value_. A dialog box with specific settings appears. -6. Select one of the following options: - - - **Use a single static password for all rows** – Select this option to assign the same password - to all objects. You can either enter the password manually or click the Generate Password - button to auto generate a password. This password is based on the rules defined in the - Password Complexity Options dialog box. - - **Use unique password generated dynamically against each row**- Select this option to generate - a unique password for every object. - -7. Select the **Send email notification to manager** check box if you want to send the new password - for each object to the user’s manager by email when the job runs. This applies to both static and - dynamic passwords. Note that the email is not sent if the user doesn’t have a manager. -8. Click the **Password Complexity Options** button. The Password Complexity Options dialog box - opens. If you have selected the **Use unique password generated dynamically against each row** - option, then this dialog box must be configured because unique passwords are generated on the - basis of the rules you specify here. -9. In the **Password Length** box, type or select the number of characters within the given range - that a password should contain. - - The minimum value displayed in the range may vary depending on the selected destination - provider. For an Active Directory destination, the minimum value is determined on the basis of - the password complexity requirements and minimum password length set for the domain. - - The following table explains the rules that determine how the minimum value is calculated. - - | | Password Complexity Requirements | Minimum Password Length | Minimum Value Displayed in the Range | - | --- | -------------------------------- | ----------------------------------------------- | ------------------------------------ | - | 1 | Enabled | Less than or equal to 6 | 6 | - | | Greater than 6 | 6 | | - | 2 | Disabled | Less than or equal to 6 | 6 | - | | Greater than 6 | The minimum password length set for the domain. | | - - For any other destination providers, you can type a value from 6 to 99. - -10. Select the Upper case alphabets (A-Z) check box if you want the password to contain any - uppercase English alphabets (A through Z). -11. Select the Lower case alphabets (a-z) check box if you want the password to contain any - lowercase English alphabets (a through z). -12. Select the Digits (0-9) check box if you want the password to contain any base 10 digits (0 - through 9). -13. Select the Special Symbols check box if you want the password to contain special characters. - When the check box is selected, the box next to it becomes available. You can specify special - characters in the box that you want the password to contain. - - NOTE: For Active Directory destinations, if password complexity requirements are enabled for the - domain, then you must select three of the preceding four settings. - -14. Select the **Exclude similar symbols** check box if you do not want a special character to - appear more than once in the password. -15. The **Password** box shows a sample password based on the settings you have selected on this - dialog box. It is displayed as text rather than placeholder characters if the **Show Password** - check box is selected. -16. You can view as many sample passwords as you want by clicking the **Generate** button. -17. Click the **Transform** button to save your settings and close the dialog box. - - If you chose to assign a static password for all synced objects on the Transform (Password) - dialog box, the auto-generated password will be shown in the corresponding box. If you selected - the dynamic password assignment option, a password is auto generated for each object based on - the rules defined in the Password Complexity Options dialog box. - -18. Click **Next Step**. -19. In the **Notifications** page, select **Enable Notifications**. If you have selected the Use - unique password generated dynamically against each row option on the Transformation [Password] - dialog box, then the new password for each object is sent to the administrator by email when the - job runs. - - NOTE: Notifications will be sent if an SMTP server and notification recipients have been - configured for the destination identity store. - -**See Also** - -- [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) -- [Manage a Job](/docs/directorymanager/11.0/welcome/synchronize/manage/job.md) -- [Transform](/docs/directorymanager/11.0/welcome/synchronize/transformation/overview.md) -- [Objects, Fields and Mapping ](/docs/directorymanager/11.0/welcome/synchronize/create/objectfieldsandmapping.md) diff --git a/docs/directorymanager/11.0/welcome/synchronize/transformation/overview.md b/docs/directorymanager/11.0/welcome/synchronize/transformation/overview.md deleted file mode 100644 index 49ae87b644..0000000000 --- a/docs/directorymanager/11.0/welcome/synchronize/transformation/overview.md +++ /dev/null @@ -1,157 +0,0 @@ ---- -title: "Transform" -description: "Transform" -sidebar_position: 60 ---- - -# Transform - -During the creation of synchronize jobs, you can apply transformation scripts to manipulate source -data before saving it to the destination. - -You can use transformations to perform these actions and more: - -- Combining the values of two source fields into one destination field. -- Extracting a set of characters from field values. -- Assigning a string constant to a field regardless of source restrictions. - -Synchronize includes a set of commonly used transformations, or you can write your own -transformation scripts using the Visual Basic .NET or Python editor. - -Synchronize provides these transformations: - -- [Static](#static) -- [Resolve](#resolve) -- [Join](#join) -- [Left](#left) -- [Substring](#substring) -- [Script](#script) - -## Static - -During synchronization, the static transformation copies specified text to the destination field and -ignores the value in the source field mapped to it. - -- Type the text in the **Static text** box. This text is copied for the field at the destination. - - You can also specify Windows environment variables as static text. While transferring the data - during a job run, the job obtains the current value of the variable and saves it to the - destination field. - - Examples: - - - If static text is set to **%COMPUTERNAME%**, running the Job will save the host computer's - name in the target field. - - If static text is set to variables **%NOW%** and **%Computer%** as follows: - - _Updated by GroupID %NOW% from %COMPUTERNAME%._ - - Running the job will return the current date and the name of the host machine. The results - will look like as: - - _Updated by GroupID 1/12/2003 10:04 AM from EX01-DTM_ - - Environment variables may vary for different Windows releases and editions. Before using - environment variables, determine that they are supported by the Windows installed on your - host machine - -- [Auto-Generate Unique, Complex Passwords](/docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md) - based on complexity rules - - You can assign a single password to all synced objects or generate individual passwords for each - object. - -## Resolve - -The Resolve transformation attempts to locate a recipient at the destination that matches the -selected filter and returns the distinguished name. It is useful for setting the manager or owner -fields. - -destination: The target location to which to copy data. Destinations must be Exchange 5.5, Active -Directory, SQL Server, or Excel. - -NOTE: This transformation can adversely affect performance, as it adds an additional query to each -record. It applies to Active Directory and Exchange only. - -## Join - -The Join transformation combines values from two source fields into a single destination field. - -For instance, you can use a Join transformation to create a Display Name field at the destination -from the source’s **FirstName** and **LastName** fields. The values for the two source fields are -saved as a single value in the destination. - -The following table list the three parameters the Join transformation requires: - -| Parameter | Description | -| ------------ | --------------------------------------------------------------------------------------------------------------------------------------- | -| First field | Select the first source field. | -| Separator | Specify the character to use as separator between the values of the two fields. You can specify more than one characters as separators. | -| Second field | Select the second source field. | - -## Left - -Use the Left transformation to return a specific number of characters from the left side of a source -value. You can use a Left transformation to pull characters from a value to create an abbreviation -or an alias. - -For example, your requirement is to set the first three characters of a user's logon name as their -initials. You can easily achieve this by applying the settings shown in the following figure. - -The following table lists the two parameters the Left transformation requires: - -| Parameter | Description | -| -------------------- | ----------------------------------------------------------------------- | -| Source field | Select the source field from which to get the value. | -| Number of characters | Specify here the number of character to extract starting from the left. | - -## Substring - -The Substring transformation returns a set of characters from the source value. The set of -characters to extract from the source value is determined form the **Start at** and **Length** -parameters passed to the transformation. - -Substring transformation is useful in cases where the set of characters to extract are from within a -value that has a fixed number of characters or digits. The use of this transformation can become -tricky if the number of characters or digits in values of the source field may vary. - -The following table lists the parameters the Substring transformation requires: - -| Parameter | Description | -| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| Source field | Select the source field from which to get the value. | -| Start at | Specify the index number of the character to set as the starting point. The character at this position will not be included in the result itself. | -| Length | This represents the count of characters to extract from the starting point. | - -**Example:** - -Telephone numbers are usually written with country and city codes. You may have a destination field -where you may only require the country code to be copied excluding the city code and the number -itself. - -Consider the number, +92-42-5787711. Where: - -| Country Code | City Code | Telephone | -| ------------ | --------- | --------- | -| 92 | 42 | 5787711 | - -To extract the country code, you would set the parameters for this transformation. When executed, -this would extract 92 from the number and save it to the destination field. - -## Script - -Unlike the built-in transforms described above, the Script transformation is a template for writing -custom scripts. Use the **Script** template by selecting a built-in transform that provides most of -the functionality you need, select parameters, if any, and then switch the transform type to -**Script** to view the resulting script. You can then modify the script to add the functionality you -need. - -**See Also** - -- [Create a Job](/docs/directorymanager/11.0/welcome/synchronize/create/create.md) -- [Objects, Fields and Mapping ](/docs/directorymanager/11.0/welcome/synchronize/create/objectfieldsandmapping.md) -- [Auto-Generate Unique, Complex Passwords](/docs/directorymanager/11.0/welcome/synchronize/transformation/autogenerateuniquepassword.md) -- [Script](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/dtmscript.md) -- [Visual Basic .NET for GroupID](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/visualbasicnetbasic.md) -- [Sample Transform Scripts](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/sampletransformscript.md) -- [Sample Container Scripts](/docs/directorymanager/11.0/welcome/synchronize/dtmscript/samplecontainerscript.md) diff --git a/docs/directorymanager/11.0/welcome/user/_category_.json b/docs/directorymanager/11.0/welcome/user/_category_.json deleted file mode 100644 index 1e3f2c03a1..0000000000 --- a/docs/directorymanager/11.0/welcome/user/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "User Management", - "position": 50, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/user/create/_category_.json b/docs/directorymanager/11.0/welcome/user/create/_category_.json deleted file mode 100644 index 21f9a9f962..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Create User Objects", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/user/create/activedirectory/_category_.json b/docs/directorymanager/11.0/welcome/user/create/activedirectory/_category_.json deleted file mode 100644 index 9d58eab829..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/activedirectory/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Create Active Directory User Objects", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/user/create/activedirectory/account.md b/docs/directorymanager/11.0/welcome/user/create/activedirectory/account.md deleted file mode 100644 index f9e480935e..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/activedirectory/account.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Account page" -description: "Account page" -sidebar_position: 40 ---- - -# Account page - -(of Create User and Create Mailbox wizards) - -Use this page to specify basic account info, such as the user's first name, last name, login ID and -the UPN suffix. - -1. Click **Browse** next to the **Container** box to select a container to create the user in. - - This field would be read-only if the administrator has predefined a container for creating new - users. - -2. Enter the user's **First Name**, **Iitials**, and **Last Name** in the respective boxes. -3. The wizard uses the provided information to populate the **Full Name**, **Display Name**, **User - logon name**, and **User logon name (pre-windows 2000)** boxes. You can modify this information, - if required. - - The pre-Windows 2000 user logon name cannot exceed 24 characters. This name is used for logging - on to computers running Windows 95, Windows 98, or Windows NT. - - The logon name is the user ID the user w ill use to log into the identity store. - -4. The **UPN Suffix** box displays the UPN suffix for the user account. This is the name of the - domain the connected identity store is running on. An example of a UPN suffix can be - 'mydomain.com'. - - When a domain user account is created, the complete domain account comprises of a user logon - name followed by '@' and then the domain name. - -5. Click **Next**. - -**See Also** - -- [Create an AD User](/docs/directorymanager/11.0/welcome/user/create/activedirectory/user.md) -- [Create an AD Mailbox](/docs/directorymanager/11.0/welcome/user/create/activedirectory/mailbox.md) diff --git a/docs/directorymanager/11.0/welcome/user/create/activedirectory/contact.md b/docs/directorymanager/11.0/welcome/user/create/activedirectory/contact.md deleted file mode 100644 index cb7cc5c91f..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/activedirectory/contact.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "Create an AD Contact" -description: "Create an AD Contact" -sidebar_position: 20 ---- - -# Create an AD Contact - -The GroupID portal enables you to create the 'contact' object in the directory. - -NOTE: The contact object type is not supported in a Microsoft Entra ID based identity store. - -NOTE: Pages and fields on the Create Contact wizard may vary from those discussed here, since the -administrator can customize the wizard by adding or removing pages and fields. - -What do you want to do? - -- [Create a contact](#create-a-contact) - -## Create a contact - -1. In the GroupID portal, click the **Create New** button in the left pane and select **Contact**. - - The **Create Contact** wizard opens to the Account page. - -2. On the **Account** page: - - 1. Click **Browse** next to **Container** to select a container to create the contact in. - - This field would be read-only if the administrator has pre-defined a container for creating - new contacts. - - 2. Enter the contact's **First Name**, **Initials**, and **Last Name** in the respective boxes. - - The wizard uses this information to populate the **Full Name** and **Display Name** boxes. - - 3. Click **Next**. - -3. Use the **Exchange** page to mail-enable the contact. -4. On the **Summary** page, review the settings and then click Finish to complete the wizard. - -NOTE: If the GroupID administrator has specified the contact creation action for review, your -changes will not take effect until verified by an approver. See the -[Requests](/docs/directorymanager/11.0/welcome/request/overview.md) topic. - -**See Also** - -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/create/activedirectory/exchange.md b/docs/directorymanager/11.0/welcome/user/create/activedirectory/exchange.md deleted file mode 100644 index 7c6aff8b69..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/activedirectory/exchange.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Exchange page" -description: "Exchange page" -sidebar_position: 80 ---- - -# Exchange page - -(of Create Mailbox wizard) - -1. In the **Alias** box, type an alias for the mailbox. -2. In the **Mailbox Store** list, select a mailbox store to create the user's mailbox on. -3. The **Subscription List** provides the subscriptions offered by Office 365 to a mailbox user. - Select the check boxes for the subscriptions you want to assign to this mailbox. - - The subscription list is displayed when Office 365 is configured as the messaging provider for - the identity store. - -4. Click **Next**. - -**See Also** - -- [Create an AD Mailbox](/docs/directorymanager/11.0/welcome/user/create/activedirectory/mailbox.md) diff --git a/docs/directorymanager/11.0/welcome/user/create/activedirectory/mailbox.md b/docs/directorymanager/11.0/welcome/user/create/activedirectory/mailbox.md deleted file mode 100644 index 786dcbdf7c..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/activedirectory/mailbox.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: "Create an AD Mailbox" -description: "Create an AD Mailbox" -sidebar_position: 30 ---- - -# Create an AD Mailbox - -You can create a mailbox using GroupID portal when a messaging provider has been configured for the -identity store. - -A mailbox is a user with a mailbox, such as an Exchange mailbox. - -NOTE: Pages and fields on the Create Mailbox wizard may vary from those discussed here, since the -administrator can customize the wizard by adding or removing pages and fields. - -What do you want to do? - -- [Create a mailbox in Active Directory](#create-a-mailbox-in-active-directory) - -## Create a mailbox in Active Directory - -1. In the GroupID portal, click the Create New button in the left pane and select **Mailbox**. - - The **Create Mailbox** wizard opens to the Account page. - -2. On the - [Account page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/account.md), - specify basic account info, such as the object's first name, last name, login ID and the UPN - suffix. -3. On the - [Password page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/password.md), - provide a password for the mailbox account and set other password-specific options. -4. On the - [Exchange page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/exchange.md), - set the alias and Office 365 subscriptions. -5. On the - [Summary Page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md), - review the settings and then click Finish to complete the wizard. - -NOTE: If the GroupID administrator has specified the mailbox creation action for review, your -changes will not take effect until verified by an approver. See the -[Requests](/docs/directorymanager/11.0/welcome/request/overview.md) topic. - -**See Also** - -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/create/activedirectory/messaging.md b/docs/directorymanager/11.0/welcome/user/create/activedirectory/messaging.md deleted file mode 100644 index b4bc88cf02..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/activedirectory/messaging.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "Exchange page" -description: "Exchange page" -sidebar_position: 60 ---- - -# Exchange page - -Use this page to create the object as mail-enabled. - -1. Make sure that the **Mail-Enabled** check box is selected to create the user as mail-enabled. - - A mail-enabled user is one with an email address. - -2. The **Alias** box displays an alias for the user. -3. The **Email Type** displays drop-down list of all the types of email your want to create. -4. In the **Email Address** box, type an email address for the user. GroupID uses this email address - to send email notifications to the user. -5. Click **Next**. - -NOTE: To create a mail-enabled user, a messaging provider (such as Microsoft Exchange) must be -configured for the identity store. - If it is not configured, the **Messaging** page is disabled. - -**See Also** - -- [Create an AD User](/docs/directorymanager/11.0/welcome/user/create/activedirectory/user.md) -- [Create an AD Contact](/docs/directorymanager/11.0/welcome/user/create/activedirectory/contact.md) diff --git a/docs/directorymanager/11.0/welcome/user/create/activedirectory/overview.md b/docs/directorymanager/11.0/welcome/user/create/activedirectory/overview.md deleted file mode 100644 index c87a3e657f..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/activedirectory/overview.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "Create Active Directory User Objects" -description: "Create Active Directory User Objects" -sidebar_position: 10 ---- - -# Create Active Directory User Objects - -In an Active Directory identity stores, you can create the following types of users: - -- User -- Mailbox -- Contact - -See Also - -- [User Management](/docs/directorymanager/11.0/welcome/user/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/create/activedirectory/password.md b/docs/directorymanager/11.0/welcome/user/create/activedirectory/password.md deleted file mode 100644 index 5fea4ac443..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/activedirectory/password.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Password page" -description: "Password page" -sidebar_position: 50 ---- - -# Password page - -Provide a password for the user account and set other password-specific options. - -1. Type a password for the user account in the **Password** and **Confirm password** boxes. -2. Select the following check boxes to set the security options for the user account: - - **User must change password at next logon** - to force the user to change the password the - next time they log into their workstations with the account. - - **Password never expires** - to prevent the account password from expiring. - - **Account is disabled** - to disable the account, so that the user cannot log-on with it. -3. Click **Next**. - -**See Also** - -- [Create an AD User](/docs/directorymanager/11.0/welcome/user/create/activedirectory/user.md) -- [Create an AD Mailbox](/docs/directorymanager/11.0/welcome/user/create/activedirectory/mailbox.md) diff --git a/docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md b/docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md deleted file mode 100644 index 6a8dc0b878..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Summary Page" -description: "Summary Page" -sidebar_position: 70 ---- - -# Summary Page - -The **Summary** page summarizes the selections you made on the previous pages. Review the settings -before creating the object. - -- To make changes, click **Previous** until you reach the required page. -- Click **Finish** to complete the wizard and create the new object. - -**See Also** - -- [Create an AD User](/docs/directorymanager/11.0/welcome/user/create/activedirectory/user.md) -- [Create an AD Mailbox](/docs/directorymanager/11.0/welcome/user/create/activedirectory/mailbox.md) -- [Create an AD Contact](/docs/directorymanager/11.0/welcome/user/create/activedirectory/contact.md) -- [Create Active Directory Groups](/docs/directorymanager/11.0/welcome/group/create/group/group.md) diff --git a/docs/directorymanager/11.0/welcome/user/create/activedirectory/user.md b/docs/directorymanager/11.0/welcome/user/create/activedirectory/user.md deleted file mode 100644 index 84c217502a..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/activedirectory/user.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: "Create an AD User" -description: "Create an AD User" -sidebar_position: 10 ---- - -# Create an AD User - -In GroupID portal, you can create mail-enabled and non mail-enabled users. - -NOTE: In a Microsoft Entra ID based identity store, users can only be created as non mail-enabled. -Create a mailbox as an alternative to a mail-enabled user. - -NOTE: Pages and fields on the Create User wizard may vary from those discussed here, since the -administrator can customize the wizard by adding or removing pages and fields. - -What do you want to do? - -- [Create a mail-enabled user in Active Directory](#create-a-mail-enabled-user-in-active-directory) -- [Create a non mail-enabled user in Active Directory](#create-a-non-mail-enabled-user-in-active-directory) - -## Create a mail-enabled user in Active Directory - -1. In the GroupID portal, click the **Create New** button in the left pane and select **User**. - - The **Create User** wizard opens to the Account page. - -2. On the - [Account page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/account.md), - specify basic account info, such as the user's first name, last name, login ID and the UPN - suffix. -3. On the - [Password page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/password.md), - provide a password for the user account and set other password-specific options. -4. Use the - [Exchange page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/messaging.md), - to create the user as mail-enabled. -5. On the - [Summary Page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md), - review the settings and then click Finish to complete the wizard. - -NOTE: If the GroupID administrator has specified the user creation action for review, your changes -will not take effect until verified by an approver. See the -[Requests](/docs/directorymanager/11.0/welcome/request/overview.md) topic. - -## Create a non mail-enabled user in Active Directory - -1. In the GroupID portal, click the **Create New** button in the left pane and select **User**. - - The **Create User** wizard opens to the Account page. - -2. On the - [Account page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/account.md), - specify basic account info, such as the user's first name, last name, login ID and the UPN - suffix. -3. On the - [Password page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/password.md), - provide a password for the user account and set other password-specific options. -4. On the - [Exchange page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/messaging.md), - clear the **Mail-Enabled** check box to create the user as non mail-enabled. This disables the - remaining fields on the page. - - A non mail-enabled user does not have an email address. - -5. On the - [Summary Page](/docs/directorymanager/11.0/welcome/user/create/activedirectory/summary.md), - review the settings and then click Finish to complete the wizard. - -NOTE: If the GroupID administrator has specified the user creation action for review, your changes -will not take effect until verified by an approver. See the -[Requests](/docs/directorymanager/11.0/welcome/request/overview.md) topic. - -**See Also** - -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/create/azure/_category_.json b/docs/directorymanager/11.0/welcome/user/create/azure/_category_.json deleted file mode 100644 index 8dc6b7ad67..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/azure/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Create Microsoft Entra ID User Objects", - "position": 20, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/user/create/azure/account.md b/docs/directorymanager/11.0/welcome/user/create/azure/account.md deleted file mode 100644 index 277bda3049..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/azure/account.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "Account page" -description: "Account page" -sidebar_position: 30 ---- - -# Account page - -Use this page to specify basic account info, such as the user's first name, last name, login ID and -the UPN suffix. - -1. Click **Browse** next to the **Container** box to select a container to create the user in. -2. Enter the user's first name and last name in the respective boxes. -3. The wizard uses the provided information to populate the **Display Name** and **User logon name** - boxes. You can modify this information, if required. - - The logon name is the user ID the user will use to log into the identity store. - -4. The **UPN Suffix** box displays the UPN suffix for the user account. This is the name of the - domain the identity store is running on. An example of a UPN suffix can be 'mydomain.com'. - - When a domain user account is created, the complete domain account comprises of a user logon - name followed by '@' and then the domain name. - -5. Click **Next**. - -**See Also** - -- [Create a Microsoft Entra ID User](/docs/directorymanager/11.0/welcome/user/create/azure/user.md) -- [Create a Microsoft Entra ID Mailbox](/docs/directorymanager/11.0/welcome/user/create/azure/mailbox.md) diff --git a/docs/directorymanager/11.0/welcome/user/create/azure/directoryrole.md b/docs/directorymanager/11.0/welcome/user/create/azure/directoryrole.md deleted file mode 100644 index 1fd86e65b9..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/azure/directoryrole.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Directory Roles page" -description: "Directory Roles page" -sidebar_position: 50 ---- - -# Directory Roles page - -Use this page to assign a role and role privileges to the user on the Microsoft Entra Admin Center -portal. - -1. The **Directory Roles** drop-down list displays the roles that can be assigned to users on the - Microsoft Entra Admin Center portal. These are: Global Administrator, Limited Administrator, and - User. - - Click the down arrow next to a role and select the check boxes for the privileges within that - role for assignment. - -2. Click **Next**. - -**See Also** - -- [Create a Microsoft Entra ID User](/docs/directorymanager/11.0/welcome/user/create/azure/user.md) diff --git a/docs/directorymanager/11.0/welcome/user/create/azure/exchange.md b/docs/directorymanager/11.0/welcome/user/create/azure/exchange.md deleted file mode 100644 index c593e956e6..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/azure/exchange.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "Exchange page (Create Mailbox wizard)" -description: "Exchange page (Create Mailbox wizard)" -sidebar_position: 60 ---- - -# Exchange page (Create Mailbox wizard) - -1. In the **Alias** box, type an alias for the mailbox. -2. From the **Usage Location** list, select a geographical location for the mailbox. - - The usage location determines what Office 365 licenses and associated features can be assigned - to a mailbox based on geographic availability and laws. This attribute is mandatory when you - assign subscriptions and licenses to Office 365 mailboxes. - -3. In the **Mailbox Store** list, select a mailbox store to create the user's mailbox on. -4. The **Directory Roles** drop-down list displays the roles that can be assigned to mailboxes on - the Microsoft Entra Admin Center portal. These are: Global Administrator, Limited Administrator, - and User. - - Click the down arrow next to a role and select the check boxes for the privileges within that - role for assignment. - -5. The **Subscription List** provides the subscriptions offered by Office 365 to a mailbox user. - Select the check boxes for the subscriptions you want to assign to this mailbox. - - The subscription list is displayed when Office 365 is configured as the messaging provider for - the identity store. - -6. Click **Next**. - -**See Also** - -- [Create a Microsoft Entra ID Mailbox](/docs/directorymanager/11.0/welcome/user/create/azure/mailbox.md) diff --git a/docs/directorymanager/11.0/welcome/user/create/azure/mailbox.md b/docs/directorymanager/11.0/welcome/user/create/azure/mailbox.md deleted file mode 100644 index 20d3f4db34..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/azure/mailbox.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Create a Microsoft Entra ID Mailbox" -description: "Create a Microsoft Entra ID Mailbox" -sidebar_position: 20 ---- - -# Create a Microsoft Entra ID Mailbox - -You can create a mailbox using GroupID portal when a messaging provider has been configured for the -identity store. - -A mailbox is a user with a mailbox, such as an Exchange mailbox. - -NOTE: Pages and fields on the Create Mailbox wizard may vary from those discussed here, since the -administrator can customize the wizard by adding or removing pages and fields. - -What do you want to do? - -- [Create a mailbox in an Microsoft Entra ID](#create-a-mailbox-in-an-microsoftentra-id) - -## Create a mailbox in an Microsoft Entra ID - -1. In the GroupID portal, clickthe **Create New** button and select **Mailbox**. - - The **Create Mailbox** wizard opens to the Account page. - -2. On the **Account** page, specify basic account info, such as the object's first name, last name, - login ID and the UPN suffix. -3. On the **Password** page, provide a password for the mailbox account and set other - password-specific options. -4. On the **Exchange** page,set the alias and Office 365 subscriptions for the mailbox. -5. On the **Summary** page, review the settings and then click Finish to complete the wizard. - -NOTE: If the GroupID administrator has specified the mailbox creation action for review, your -changes will not take effect until verified by an approver. See the -[Requests](/docs/directorymanager/11.0/welcome/request/overview.md) topic. - -See Also - -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/create/azure/overview.md b/docs/directorymanager/11.0/welcome/user/create/azure/overview.md deleted file mode 100644 index 7a7d766d53..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/azure/overview.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Create Microsoft Entra ID User Objects" -description: "Create Microsoft Entra ID User Objects" -sidebar_position: 20 ---- - -# Create Microsoft Entra ID User Objects - -In a Microsoft Entra ID identity stores, you can create the following types of users: - -- User -- Mailbox - -See Also - -- [User Management](/docs/directorymanager/11.0/welcome/user/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/create/azure/password.md b/docs/directorymanager/11.0/welcome/user/create/azure/password.md deleted file mode 100644 index 1e34e3dd0e..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/azure/password.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "Password page" -description: "Password page" -sidebar_position: 40 ---- - -# Password page - -Provide a password for the user account and set other password-specific options. - -1. Type a password for the user account in the **Password** and **Confirm password** boxes. -2. Select the check boxes to set the security options for the user account: - - - **User must change password at next logon** - to force the user to change the password the - next time they log into their workstations with the account. - - **Account is enabled** - this check box is selected by default, indicating that the user - account is enabled. - - Clear it to disable the account, so that the user would not be able to log-on with it. - -3. Click **Next**. - -**See Also** - -- [Create a Microsoft Entra ID User](/docs/directorymanager/11.0/welcome/user/create/azure/user.md) -- [Create a Microsoft Entra ID Mailbox](/docs/directorymanager/11.0/welcome/user/create/azure/mailbox.md) diff --git a/docs/directorymanager/11.0/welcome/user/create/azure/user.md b/docs/directorymanager/11.0/welcome/user/create/azure/user.md deleted file mode 100644 index 7cd4737434..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/azure/user.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Create a Microsoft Entra ID User" -description: "Create a Microsoft Entra ID User" -sidebar_position: 10 ---- - -# Create a Microsoft Entra ID User - -In GroupID portal, you can create mail-enabled and non mail-enabled users. - -NOTE: In a Microsoft Entra ID based identity store, users can only be created as non mail-enabled. -Create a mailbox as an alternative to a mail-enabled user. - -NOTE: Pages and fields on the Create User wizard may vary from those discussed here, since the -administrator can customize the wizard by adding or removing pages and fields. - -What do you want to do? - -- [Create a user in Microsoft Entra ID](#create-a-user-in-microsoft-entra-id) - -## Create a user in Microsoft Entra ID - -1. In the GroupID portal, click the **Create New** button in the left pane and select **User**. - - The **Create User** wizard opens to the Account page. - -2. On the **Account** page, specify basic account info, such as the user's first name, last name, - login ID and the UPN suffix. -3. On the **Password** page, provide a password for the user account and set other password-specific - options. -4. Use the **Directory Roles** page to assign a role and role privileges to the user on the - Microsoft Entra Admin Center portal. -5. On the **Summary** page, review the settings and then click Finish to complete the wizard. - -NOTE: If the GroupID administrator has specified the user creation action for review, your changes -will not take effect until verified by an approver. See the -[Requests](/docs/directorymanager/11.0/welcome/request/overview.md) topic. - -**See Also** - -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/create/overview.md b/docs/directorymanager/11.0/welcome/user/create/overview.md deleted file mode 100644 index c08989ad7b..0000000000 --- a/docs/directorymanager/11.0/welcome/user/create/overview.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "Create User Objects" -description: "Create User Objects" -sidebar_position: 10 ---- - -# Create User Objects - -GroupID Portal enalbles you to create following types of users: - -- User -- Mailbox -- Contact - -GroupID supports the following identity providers for creating the user objects: - -- Active Directory -- Microsoft Entra ID -- Generic LDAP -- Google Workspace - -See Also - -- [User Management](/docs/directorymanager/11.0/welcome/user/overview.md) -- [Create an AD User](/docs/directorymanager/11.0/welcome/user/create/activedirectory/user.md) -- [Create a Microsoft Entra ID User](/docs/directorymanager/11.0/welcome/user/create/azure/user.md) diff --git a/docs/directorymanager/11.0/welcome/user/linkedaccounts.md b/docs/directorymanager/11.0/welcome/user/linkedaccounts.md deleted file mode 100644 index 6f1985249b..0000000000 --- a/docs/directorymanager/11.0/welcome/user/linkedaccounts.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Linked Accounts" -description: "Linked Accounts" -sidebar_position: 40 ---- - -# Linked Accounts - -The GroupID portal allows users to reset their accounts' passwords and unlock their accounts through -their linked accounts. - -A user can have accounts in multiple identity stores configured in Admin Center. They have to enroll -each of these accounts separately on the GroupID Portal before they can reset its password or unlock -it. - -To eliminate the necessity of separate enrollment, a user can simply enroll one of these accounts on -the portal and then link other accounts with it. Once it's done, the enrolled account becomes the -master account. - -A user can then unlock or reset the password of any linked account through the authentication policy -associated with the master account. - -Any account linked with the master account can neither be enrolled, nor used to log on to the -portal. Users must use their master account credentials to log into the portal. - -When two accounts are linked, notification emails are sent to the master account as well as to the -linked account, provided that notifications are configured for the respective identity stores in -GroupID Admin Center. Un-linking an account also initiates notifications. - -What do you want to do? - -- [Link an account](#link-an-account) -- [View your linked accounts](#view-your-linked-accounts) -- [Un-link a linked account](#un-link-a-linked-account) - -## Link an account - -Enroll any one of your identity store accounts on the GroupID Portal. This account becomes the -master account, with which you can link other identity store accounts that you may have. - -1. In GroupID portal, click **Users** in the left pane and select **Linked Account**. -2. On the **My Linked Accounts** page, select the account you want to link and click **Link - Account**. -3. On the **GroupID Authenticate** window, provide the sign in information for the account to link - to the master account. -4. A message **Account has been successfully linked** is displayed. - - If the master account is not enrolled yet, it automatically gets enrolled when an account is - linked to it. - - NOTE: An already enrolled or linked account cannot be linked to a master account. - -5. Turn on the **Allow Authentication** button against the account(s) you want to use to - authenticate with, while unlocking any linked accounts or resetting passwords of linked accounts. - - If you do not enable it either for master or child account(s), then the Link Account - authentication type cannot be used both for master account and child account(s). - - If in the Multifactor Authentication policy for your role: - - - Only Link Account authentication is defined, then a message appears that Link Account - authentication is disabled. - - Other authentication type(s) are defined along with the Link Account authentication, then you - can use those authentication type(s) to unlock your account and reset password of your - identity store account. - -6. To link another account, click **Link Account** again and repeat steps 3-4. - -## Link MicroSoft Entra ID account(s) - -The Entra ID account(s) that you want to link with must be logged into the Entra ID portal in the -same browser. Use the Sign in with a different account option in the Entra ID portal for logging -into multiple accounts. - -![Entra ID Sign In with a different account option](/images/directorymanager/11.0/portal/user/linkntraidacc.webp) - -1. In GroupID portal, click **Users** in the left pane and select **Linked Account**. -2. On the **My Linked Accounts** page, select the account you want to link and click **Link - Account**. -3. On the **GroupID Authenticate** window, click the SAML button or image for the configured SAML - provider in GroupID. The following window is displayed: - - ![Multiple Signed in users in Entra ID portal](/images/directorymanager/11.0/portal/user/entraidsigninusers.webp) - -4. Select the account you want to link to. You will be redirected back to the GroupID portal’s My - Linked Account page and a message **Account has been successfully linked** is displayed. - - If the master account is not enrolled yet, it automatically gets enrolled when an account is - linked to it. - - NOTE: An already enrolled or linked account cannot be linked to a master account. - -5. Turn on the **Allow Authentication** button against the account(s) you want to use to - authenticate with, while unlocking any linked accounts or resetting passwords of linked accounts. - - If you do not enable it either for master or child account(s), then the Link Account - authentication type cannot be used both for master account and child account(s). - - If in the Multifactor Authentication policy for your role: - - - Only Link Account authentication is defined, then a message appears that Link Account - authentication is disabled. - - Other authentication type(s) are defined along with the Link Account authentication, then you - can use those authentication type(s) to unlock your account and reset password of your - identity store account. - -6. To link another account, click **Link Account** again and repeat steps 3-4. - -## View your linked accounts - -If you are not logged on to the portal, the **GroupID Authenticate** window appears. Provide the -information of your master account. In GroupID portal, click **Users** in the left pane and select -**Linked Account** to view your linked account. - -## Un-link a linked account - -1. In GroupID portal, click **Users** in the left pane and select **Linked Account**. - - If you are not logged on to the portal, the **GroupID Authenticate** window appears. Provide the - logon information of your master account. - -2. On the **My Linked Account** page, select the check box for the account you want to un-link. -3. Click **Un-link Account**. - -**See Also** - -- [Enroll Your Identity Store Account](/docs/directorymanager/11.0/welcome/secondfactorauthentication/enrollaccount.md) -- [Second Factor Authentication](/docs/directorymanager/11.0/welcome/secondfactorauthentication/secondfactorauthentication.md) diff --git a/docs/directorymanager/11.0/welcome/user/manage/_category_.json b/docs/directorymanager/11.0/welcome/user/manage/_category_.json deleted file mode 100644 index 136389c480..0000000000 --- a/docs/directorymanager/11.0/welcome/user/manage/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Manage Users", - "position": 20, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/user/manage/changepassword.md b/docs/directorymanager/11.0/welcome/user/manage/changepassword.md deleted file mode 100644 index fac718c073..0000000000 --- a/docs/directorymanager/11.0/welcome/user/manage/changepassword.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "Change your password" -description: "Change your password" -sidebar_position: 50 ---- - -# Change your password - -You can change the password of your identity store account provided that the administrator has -granted you the required permissions. After changing it, use the new password to sign into GroupID -and any other application that uses your domain account. - -To do this, provide the existing password and then a new password to replace it. The new password -must conform to the password policy the administrator has defined for your role in the connected -identity store. - -NOTE: Microsoft Entra ID users with multifactor authentication enabled cannot change their passwords -in GroupID. The following message is displayed: - -![Change Password error message for Entra ID user](/images/directorymanager/11.0/portal/user/manage/changepasswordentraiduser.webp) - -If the user's account is a master account, password of its child accounts also cannot be changed in -GroupID. - -**Follow these steps to change your password:** - -1. In GroupID Portal, click your profile info in the top right corner and select **Change Password** - on the **My Account** panel. -2. In the **Select the accounts to change their password** section, your account and its linked - accounts, if any, are listed. Your logged in account is selected. -3. In the **Change Password** section, do the following steps: - - 1. In the **Current Password** box, type the password of your account you are logged on with on - the portal. - 2. Type your new password in the **New password** box. On typing the new password, the - **Password Acceptance** box appears. The new password must meet the password complexity - requirements and conform to the password complexity rules defined by the GroupID - administrator for the identity store. - - To meet the password complexity requirements, the password must: - - 1. Be at least as per the characters length defined in the password policy of the provider. - 2. Contain uppercase and lowercase characters, digit or special character: - - - English uppercase characters (A through Z) - - English lowercase characters (a through z) - - Base 10 digits (0 through 9) - - Special characters (for example, !, $, #, %) - - 3. Type the new password for the selected account(s) in the **Confirm New Password** box. - -4. Click **Change Password**. - - If you have reused an old password and it does not meet the **Enforce password history** policy - of the provider, a message inform you that the password must be different from the old one. - -5. On successful change password, the message,"Password has been reset successfully." is displayed. -6. Click **OK**. - -**See Also** - -- [Access Portal](/docs/directorymanager/11.0/welcome/login.md) -- [Dashboard](/docs/directorymanager/11.0/welcome/dashboard.md) diff --git a/docs/directorymanager/11.0/welcome/user/manage/directreport.md b/docs/directorymanager/11.0/welcome/user/manage/directreport.md deleted file mode 100644 index 7432431df6..0000000000 --- a/docs/directorymanager/11.0/welcome/user/manage/directreport.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: "Update your Direct Reports" -description: "Update your Direct Reports" -sidebar_position: 10 ---- - -# Update your Direct Reports - -To view the users and contacts that report directly to you, click **Users** on the left navigation -bar and select **My Direct Reports**. - -The page lists the direct reports for which you are the primary manager. To include the direct -reports for which you are an additional manager, select the **Display Additional Manager Direct -Reports** check box on the User Settings panel. - -**You can:** - -- View and modify the **Properties** of a direct report. - - The properties for a direct report are the same as the properties of a user/contact. Refer to - the information for user or contact properties to manage the properties of a direct report. - -- Select a direct report and click **Delete** on the toolbar to delete the direct report from the - directory. -- Select a direct report and **Managed By** on the toolbar to get a list of all groups managed by a - direct report (i.e., all groups for which the direct report is a primary or additional owner). -- Select a direct report and click **Add to Contacts** on the toolbar. The portal creates the direct - report's vCard and prompts you to save it on your machine. You can then use it to add the direct - report's email address to your email contact list. -- Select a direct report and click **Add to Group** on the toolbar to the direct report to the - membership of a group. The - [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) is displayed, where - you can search and select the group(s) to add the direct report as a member. -- Select a direct report and click **Send email** on the toolbar to send an email to the direct - report. This launches the default Windows email application for sending an email to the direct - report. -- Click **Export Results** on the toolbar to export the direct report list to a Microsoft Excel - file. - -Use the page numbers under the direct report listing to page through the records. - -You can control the number of records to be displayed per page by modifying the **Search results per -page** setting on the User Settings panel. You can modify the search results in **Modify Search -Directory.** You can select entire directory or a domain to search active groups from. - -NOTE: You cannot add or remove direct reports on this page. Use the **Organization** tab of your -profile to add or remove your direct reports. -You can also transfer and terminate your direct reports while you validate your Profile. - -To view any changes made to your direct reports, see the -[My Direct Reports' History](/docs/directorymanager/11.0/welcome/history/mydirectreport.md) -topic. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) -- [Create an AD User](/docs/directorymanager/11.0/welcome/user/create/activedirectory/user.md) -- [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) -- [Validate your profile](/docs/directorymanager/11.0/welcome/user/manage/validateprofile.md) diff --git a/docs/directorymanager/11.0/welcome/user/manage/disableduser.md b/docs/directorymanager/11.0/welcome/user/manage/disableduser.md deleted file mode 100644 index 4bd6c4a987..0000000000 --- a/docs/directorymanager/11.0/welcome/user/manage/disableduser.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "Disabled Users" -description: "Disabled Users" -sidebar_position: 70 ---- - -# Disabled Users - -To view a list of disabled users in the identity store, click **Users** on the left navigation bar -and select **My Direct Reports**. On the displayed page, select the **Disabled Users** tab. - -**The list consists of:** - -- Users that have been expired by the User Life Cycle job for not validating their profiles within - the required period. - - An expired user is disabled in the directory. - -- Users that have been terminated or disabled by their respective managers. -- Users that are disabled in the directory. - -A disabled user can be reinstated but not extended. An expired user can be extended but not -reinstated. The administrator or a Helpdesk user is responsible for reinstating and extending users. - -What do you want to do? - -- [View User Properties](#view-user-properties) -- [Reinstate a Disabled User](#reinstate-a-disabled-user) -- [Grant extension to an Expired User](#grant-extension-to-an-expired-user) -- [Send Disabled Users list to an Excel file](#send-disabled-users-list-to-an-excel-file) -- [Navigate the Disabled Users listing](#navigate-the-disabled-users-listing) - -## View User Properties - -To view and modify the properties of a disabled or expired user, select it and click **Properties** -on the toolbar. - -Refer to the information for user properties to manage the properties of a disabled/expired user. - -## Reinstate a Disabled User - -To reinstate a disabled user, select it and click **Reinstate** on the toolbar. - -## Grant extension to an Expired User - -To grant an extension period to an expired user, select it and click **Extend** on the toolbar. - -The extension period applies to users who did not validate their profiles within the required -period, and were consequently expired. - -On extension, the user's account is temporarily unlocked. If they do not validate their profile -information within that extension period either, GroupID expires them again. Only the administrator -or Helpdesk users can reactivate these accounts. - -The duration of the extension period is set by the administrator in identity store configurations. - -## Send Disabled Users list to an Excel file - -To export list of disabled users to an Excel file, click **Export Results** on the toolbar. - -### Navigate the Disabled Users listing - -Use the page numbers under the disabled users listing to page through the records. - -You can control the number of records to be displayed per page by modifying the **Search results per -page** setting on the User Settings panel. You can modify the search results in **Modify Search -Directory.** You can select entire directory or a domain to search active groups from. - -**See Also** - -- [Validate your profile](/docs/directorymanager/11.0/welcome/user/manage/validateprofile.md) -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) -- [Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) diff --git a/docs/directorymanager/11.0/welcome/user/manage/organizationalheirarchy.md b/docs/directorymanager/11.0/welcome/user/manage/organizationalheirarchy.md deleted file mode 100644 index 27d0d9c379..0000000000 --- a/docs/directorymanager/11.0/welcome/user/manage/organizationalheirarchy.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: "Organizational Hierarchy" -description: "Organizational Hierarchy" -sidebar_position: 20 ---- - -# Organizational Hierarchy - -You can view the organizational hierarchy for a user. it shows the direct reports of the reference -user recursively, starting from the immediate direct reports of the user and moving downwards till -the nth level. This hierarchy is presented in graphical form, creating a kind of an organogram that -displays the email address, photo, and other attributes of each user. - -By default, the organizational hierarchy chart is displayed for the logged-in user. However, the -user can view it for any user in the organization. - -What do you want to do? - -- [View the hierarchy structure for a user](#view-the-hierarchy-structure-for-a-user) - -## View the hierarchy structure for a user - -1. In GroupID portal, go to **My Profile** or search for the user whose organizational hierarchy you - want to view on the - [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) dialog box. -2. On the toolbar tab of the user profile's page, select **Organizational Hierarchy**. The - **Organizational Hierarchy** page displays the organizational hierarchy chart for the logged-in - user. -3. To view the chart for another user, click the ellipsis button next to **Select User**. -4. On the [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md), search and - select the required user and click **OK**. This displays the organizational hierarchy chart for - the selected user. -5. You can: - - - Click a user’s name to view his or her profile. - - Click a user’s email address to send an email to him or her. - - Use the **Export** button to export the chart to a PNG file. - -**See Also** - -- [Create an AD User](/docs/directorymanager/11.0/welcome/user/create/activedirectory/user.md) -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) -- [Update your Direct Reports](/docs/directorymanager/11.0/welcome/user/manage/directreport.md) diff --git a/docs/directorymanager/11.0/welcome/user/manage/overview.md b/docs/directorymanager/11.0/welcome/user/manage/overview.md deleted file mode 100644 index 464e83f083..0000000000 --- a/docs/directorymanager/11.0/welcome/user/manage/overview.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "Manage Users" -description: "Manage Users" -sidebar_position: 20 ---- - -# Manage Users - -Using GroupID portal, you can perform the following actions: - -- [Update your Direct Reports](/docs/directorymanager/11.0/welcome/user/manage/directreport.md) -- [Validate your profile](/docs/directorymanager/11.0/welcome/user/manage/validateprofile.md) -- [Reset your password](/docs/directorymanager/11.0/welcome/user/manage/resetpassword.md) -- [ Change your password](/docs/directorymanager/11.0/welcome/user/manage/changepassword.md) -- [Unlock your accounts](/docs/directorymanager/11.0/welcome/user/manage/unlockaccount.md) - -See Also - -- [User Management](/docs/directorymanager/11.0/welcome/user/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/manage/resetpassword.md b/docs/directorymanager/11.0/welcome/user/manage/resetpassword.md deleted file mode 100644 index fa6283e48a..0000000000 --- a/docs/directorymanager/11.0/welcome/user/manage/resetpassword.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Reset your password" -description: "Reset your password" -sidebar_position: 30 ---- - -# Reset your password - -GroupID Portal enables you to reset password for user accounts. You can reset your identity store -password, and even the account passwords of other users in the connected identity store, provided -you have the rights. - -The new password must meet the complexity requirements specified for the identity store. - -1. Select the account from the list. -2. Search for the user whose password you need to reset on the - [Directory Search](/docs/directorymanager/11.0/welcome/generalfeatures/search.md) dialog box. -3. On the toolbars tab, select **Reset Password** enter the information for the given fields: - - - **Identity Store** - Shows the name of the identity store the portal is connected to. - - **User name** - Shows your logged-on user name. - - If you have the rights to reset the passwords for other user accounts, then type the login - name of a user. - - - **New password** and **Confirm password** - Type a new password for the specified user. - -4. Click **Save**. - -**See Also** - -- [Access Portal](/docs/directorymanager/11.0/welcome/login.md) -- [Dashboard](/docs/directorymanager/11.0/welcome/dashboard.md) diff --git a/docs/directorymanager/11.0/welcome/user/manage/unlockaccount.md b/docs/directorymanager/11.0/welcome/user/manage/unlockaccount.md deleted file mode 100644 index 674b6a44f5..0000000000 --- a/docs/directorymanager/11.0/welcome/user/manage/unlockaccount.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -title: "Unlock your accounts" -description: "Unlock your accounts" -sidebar_position: 40 ---- - -# Unlock your accounts - -With the GroupID portal, you can unlock your identity store account yourself, without having to -contact the administrator or wait. - -Your account can get locked due to: - -1. **Wrong password attempts while logging on to the portal** - - the consecutive number of times a user can provide the wrong password (Account lockout - threshold), after which the user's identity store account gets locked. - - the duration to lock the user account (_Account lockout duration_). -2. **Invalid response to authentication type(s)** - - The GroupID Administrator can specify Password Policy for the identity store, which includes: - - - the consecutive number of times a role member can provide a wrong value for any authentication - type (Failed Authentication Attempts Threshold). - - the duration to lock the user account (_Account Lockout duration_). - -With authentication disabled, you cannot authenticate yourself on the GroupID portal; hence, you -cannot unlock your identity store accounts or reset your passwords until the account is unlocked. - -What do you want to do? - -- Unlock Identity Store User Accounts after Wrong Password Attempts (Enrolled Users) -- Unlock Identity Store User Accounts after Wrong Password Attempts (Unenrolled Users) -- Unlock Identity Store User Accounts after Providing Wrong Response to Authentication Types - (Enrolled and Unenrolled Users) - -### Unlock identity store user accounts (_after wrong password attempts_) - enrolled users - -While logging on GroupID portal you provide wrong password on the **GroupID Authenticate** window -for the specified number of times, the following message appears: - -![GroupID Authenticate](/images/directorymanager/11.0/portal/user/manage/locked.webp) - -Now you cannot login to portal unless you unlock your identity store account. Follow the -instructions given below to unlock your account: - -1. On the **Welcome to GroupID** page of GroupID portal, click **Account Locked?** card. -2. Select the identity store where your account exists from the identity store drop down list. -3. Type your identity store account name in the **Username** box. -4. Enter captcha in the **Captcha** box. -5. Click **Unlock Account**. You will be directed to a page where the authentication type(s) you - enrolled your account with are listed. - - To get authenticated through the required authentication type(s), click the relevant option - below: - - - Security Questions - - 1. On the Multifactor Authentication window, select the **Security Questions** check box and - click **Continue**. - 2. The page lists the security questions you enrolled your account with. Provide answers to - these questions. - 3. Click **Verify and Continue**. - - - Mobile Verification - - 1. On the **Multifactor Authentication** window, select the **Mobile Verification** check - box and click **Continue**. - 2. Type the last four digits of your mobile number and click **Send Code**. - 3. In the displayed box, type the 5 digit access code sent on your mobile phone. - 4. Click **Verify and Continue**. - - If you have not received a code, click **Send Again** and then enter the received code in - the given box. - - - Email Verification - - 1. On the **Multifactor Authentication** window, select the **Email** check box and click - **Continue**. - 2. Complete your email address and click **Send Code**. - 3. In the displayed box, type the 5 digits access code sent to the provided email address. - 4. Click **Verify and Continue**. - - If you have not received a code, click **Send Again** and then enter the received code in - the given box. - - - Authenticator - - 1. On the **Multifactor Authentication** window, select the **Authenticator** check box and - click **Continue**. - 2. Launch the authenticator app on your smart phone. - 3. The app displays a 6-digit code. Enter that code in the **Security Code** box on the - Authenticator page. - - The app generates a new code every 30 seconds. - - 4. Click **Verify and Continue**. - - - Link Account - - 1. On the **Multifactor Authentication** window, select the **Link Account** check box and - click **Continue**. - 2. On the **Link Account** tab, select a link account you want to use for resetting the - password of your account. - - This tab lists the link account(s) that have the **Allow Authentication** option - enabled. - - 3. Type the username and password of the selected linked account in the respective boxes. - 4. Click **Next**. - - - YubiKey - - Insert the YubiKey device in the USB slot of your computer. - - 1. On the **Multifactor Authentication** window, select the **YubiKey** check box and click - **Continue**. - 2. Click your YubiKey device name. The portal directs you to tap on the device. - - On tapping, you are authenticated. - - - **Windows Hello** - - 1. On the **Multifactor Authentication** window, click the **Windows Hello** check box and - click **Continue**. - 2. Click **Authenticate and Continue**. - - Authenticate with the provided biometric information or with the PIN given in Windows - Hello sign-in options. - -6. Click **Unlock Account**. -7. A message that the account has been unlocked successfully is displayed. - -You can now log in to GroupID portal with your account and perform the required function. - -### Unlock identity store user accounts (_after wrong password attempts_) - unenrolled users - -On entering the wrong password on the **GroupID Authenticate** window for the specified number of -times, your account gets locked. You cannot login to Password Center user portal unless you unlock -your identity store account. Follow the instructions given below to unlock your account: - -1. On the **Welcome to GroupID** page of GroupID portal, click **Unlock my account** card. -2. Select the identity store where your account exists from the identity store drop down list. -3. Type your identity store account name in the user name box. -4. Click **Unlock Account**. - - You will be directed to a page where the **Second Way Authentication** type options are listed - as the administrator has configured for your role. - - To get authenticated through the defined authentication type(s) for your role, click the - relevant option below: - - - Security Question - - 1. On the Second Way Authentication window, select the **Security Question** check box and - click **Continue**. - 2. Provide answer to the question the administrator has set for you. - 3. Click **Verify and Continue** - - - Mobile Verification - - 1. On the Second Way Authentication window, select the **Mobile Verification** check box and - click **Continue**. - 2. Type in the last four digit of your mobile number. - 3. Click **Send Code**. - 4. Type the 5 digits access code sent on your mobile phone. - 5. Click **Verify and Continue**. - - If you have not received a code, click **Send Again** and then enter the received code - in the given box. - - - Email Verification - - 1. On the Second Way Authentication window, select the **Email Verification** check box and - click **Continue**. - 2. Complete your email address and click **Send Code**. - 3. In the displayed box, type the 5 digits access code sent to the provided email address. - 4. Click **Verify and Continue**. - - If you have not received a code, click **Send Again** and then enter the received code - in the given box. - -5. You will be asked to enroll your account as per the **Multifactor Authentication** policy defined - for your role. - - On successful enrollment, you are redirected to the **Unlock My Account** page. Your account is - listed on this page with the check box selected for it. - -6. Click **Unlock Account**. - - A message that the account has been unlocked successfully is displayed. - -7. You can now log in to portal with your account and perform the required function. - -### Unlock identity store user accounts (_after providing wrong response to authentication types_) - enrolled and unenrolled users - -While authenticating on the portal, if enrolled or unenrolled users provide a wrong answer for the -specified number of times, their account gets locked and the following message is displayed: - -![accountlockout](/images/directorymanager/11.0/portal/user/manage/accountlockout.webp) - -This type of account unlock can be resolved in one of the following two ways: - -- While logging on to the portal, you provide the correct password for your account. - - **OR** - -- You wait for the specified duration, after which the account will be unlocked automatically. - - NOTE: Helpdesk members cannot unlock accounts that get locked out on providing a wrong response - to the authentication type(s). - -**See Also** - -- [Enroll Your Identity Store Account](/docs/directorymanager/11.0/welcome/secondfactorauthentication/enrollaccount.md) -- [Reset Passwords](/docs/directorymanager/11.0/welcome/secondfactorauthentication/passwordreset.md) -- [ Change your password](/docs/directorymanager/11.0/welcome/user/manage/changepassword.md) diff --git a/docs/directorymanager/11.0/welcome/user/manage/validateprofile.md b/docs/directorymanager/11.0/welcome/user/manage/validateprofile.md deleted file mode 100644 index 5a2aa0bf08..0000000000 --- a/docs/directorymanager/11.0/welcome/user/manage/validateprofile.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: "Validate your profile" -description: "Validate your profile" -sidebar_position: 80 ---- - -# Validate your profile - -The profile validation process in GroupID is designed to ensure the accuracy of users' information -in the directory. - -When the administrator applies profile validation to a group in an identity store, all group members -must verify and update their profile information in the directory using the GroupID portal. The -administrator also specifies a profile validation life cycle period (for example, 90 days), so that -each member must validate his/her profile once during each 90-day cycle. - -While validating the profile, a user can: - -- Update his or her directory profile. -- Specify or change his or her primary manager. -- Transfer his or her direct reports to another manager. -- Terminate his or her direct reports. - -Periodically, users receive reminder emails to validate their profile information. GroupID expires -users who ignore these reminders and do not validate their profiles within the required time. -Expired users get disabled in the directory. - -Such users can request the administrator or Helpdesk to unlock their accounts temporarily and grant -an extension period. If they do not validate their profile information within that extension period -either, GroupID expires them again and their managers are informed by email. To reactivate these -accounts, users' managers must send a request to the administrator or Helpdesk. The administrator or -Helpdesk user can extend the profile validation period on the -[Disabled Users](/docs/directorymanager/11.0/welcome/user/manage/disableduser.md) page of the -portal. - -NOTE: For notifications to be sent, an SMTP server must be configured for the identity store. - -### Profile Validation for New Users - -Apart from the regular profile validation life cycle, the administrator can set a separate profile -validation period for new users by specifying a certain number of days, say 30. - -All new users receive a welcome email and a profile validation request, so that users must validate -their profiles for the first time within the given number of days. Once they validate their -profiles, the regular profile validation life cycle settings would apply. - -### The User Life Cycle job - -The profile validation feature in GroupID is monitored by the User Life Cycle job. This is a -scheduled job that runs on a set frequency and does the following: - -- Monitors the profile validation dates of users. -- Generates reminder emails. -- Expires users who do not validate their profiles within the given period. - -What do you want to do? - -- Validate your profile - -## Validate your profile - -If profile validation applies to you, then you will see the following message displayed on the **My -Account** panel: - -![validateprofile](/images/directorymanager/11.0/portal/user/manage/validateprofile.webp) - -The message displays the number of days left to validate your profile. - -1. The **My Profile** card on the dashboard indicates your profile validation status. Click it to - launch the user properties page. -2. The toolbar on user properties page will display **Validate your profile** option. Click on it to - launch the profile validation window. -3. Provide or update information in the fields displayed on this window. -4. Your direct reports, if any, are listed in the **My Direct Reports** area. Select one of these - options for each of your direct reports: - - - Works for me - - Transfer - - Terminate - -5. After verifying and updating the information, click the **Validate Now** button. Your profile is - validated and a message is displayed that your changes have been saved. - -NOTE: You can also manage your direct reports and managers on the **Organization** tab of the my -profile window. - -## Change your primary manager - -The **Manager** field displays the name of your primary manager (if you have one); else it is blank. - -To add or change your primary manager, click the ellipsis button next to the field. This launches -the [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md), where you can -search and select your primary manager. - -When you change your primary manager (Manager A), then Manager A is notified by email to accept or -reject the request. If Manager A accepts, your manager is changed. If Manager A rejects the request, -you remain with Manager A and a notification is sent to you and Manager A. - -NOTE: This is the default flow of the 'Workflow to Change Manager' workflow. If the administrator -disables the workflow or changes the approver, the flow changes accordingly. See -[Requests](/docs/directorymanager/11.0/welcome/request/overview.md). - -## Transfer your direct report - -When you transfer a direct report, the direct report is notified by email to accept or reject the -transfer. If the direct report accepts the transfer, he or she has to select another primary manager -and validate his or her profile. If the direct report rejects the transfer, he or she is transferred -back to the old manager, i.e., you. - -NOTE: This is the default flow of the 'Workflow to Transfer a User' workflow, with the direct report -set as the workflow approver. If the administrator disables the workflow or changes the approver, -the flow changes accordingly. See -[Requests](/docs/directorymanager/11.0/welcome/request/overview.md). - -## Terminate your direct report - -When you terminate a direct report, it takes effect immediately if the 'Workflow to Terminate a -User' workflow is disabled. If enabled, a request is sent to the approver. If the approver accepts -it, the direct report is terminated and if the approver rejects it, the direct report remains with -the manager, i.e., you. - -**See Also** - -- [Manage your profile](/docs/directorymanager/11.0/welcome/user/manage/viewprofile.md) -- [Object properties - Organization tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/organization.md) -- [Requests](/docs/directorymanager/11.0/welcome/request/overview.md) -- [Disabled Users](/docs/directorymanager/11.0/welcome/user/manage/disableduser.md) diff --git a/docs/directorymanager/11.0/welcome/user/manage/viewprofile.md b/docs/directorymanager/11.0/welcome/user/manage/viewprofile.md deleted file mode 100644 index fcaabe66bf..0000000000 --- a/docs/directorymanager/11.0/welcome/user/manage/viewprofile.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "Manage your profile" -description: "Manage your profile" -sidebar_position: 60 ---- - -# Manage your profile - -To view and update your profile information in the directory, click your profile info in the top -right corner and select **See full profile**. - -The profile page has the same tabs as the user properties page. Refer to the information for -[User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) to manage -your profile. - -## User profile validation - -If profile validation applies to you, then you must verify and update your profile information in -the directory using the GroupID portal. - -Profile validation is not a one-time process; rather, the administrator specifies a profile -validation life cycle period (for example, 90 days), which implies that you must validate your -profile once during each 90-day cycle. - -On your profile page, your profile validation status is displayed next to your name. - -- The status, **Verified User**, indicates that your profile is validated. -- The status, **Verification Pending**, indicates that you must validate your profile. - - Click **Validate Your Profile** on the toolbar. The **Validate Profile Properties** window is - displayed, where you can validate your profile. - -- The status, **Expired User**, indicates that a user has expired because he or she did not validate - his or her profile within the required duration. An expired user is disabled in the directory. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) -- [Validate your profile](/docs/directorymanager/11.0/welcome/user/manage/validateprofile.md) diff --git a/docs/directorymanager/11.0/welcome/user/overview.md b/docs/directorymanager/11.0/welcome/user/overview.md deleted file mode 100644 index 0891bec05a..0000000000 --- a/docs/directorymanager/11.0/welcome/user/overview.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: "User Management" -description: "User Management" -sidebar_position: 50 ---- - -# User Management - -With GroupID, you can: - -- Automate user provisioning and deprovisioning in bulk. See the - [Synchronize](/docs/directorymanager/11.0/welcome/synchronize/overview.md) section. -- Establish ownership by defining a clear managerial hierarchy with dotted line management. See the - [Dotted line management](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/organization.md#dotted-line-management) - section of the - [Object properties - Organization tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/organization.md) - topic. -- Delegate user management to end users by enabling them to: - - - Create and manage users, contacts, and mailboxes in the directory. See the - [ Create User Objects](/docs/directorymanager/11.0/welcome/user/create/overview.md) - topic. - - Manage their direct reports. See the - [Update your Direct Reports](/docs/directorymanager/11.0/welcome/user/manage/directreport.md) - topic. - - Update their profiles in the directory. See the - [Validate your profile](/docs/directorymanager/11.0/welcome/user/manage/validateprofile.md) - topic. - -- Link identical users in different directory services, such as Active Directory and Microsoft Entra - ID. See the [Linked Accounts](/docs/directorymanager/11.0/welcome/user/linkedaccounts.md) - topic. - -The table below displays the major functions that users can perform in GroupID portal. - -| Functions | Description | -| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Create Objects | Create mail-enabled and non-mail-enabled Users, Contact, or Mailbox. | -| Manage your Profile | On the top right corner, view your profile and verify the information. | -| Manage Your Direct Reports | View Users and Contacts that report directly to you. If required, you can modify the properties of your direct reports. | -| Manage Disabled Users | View the list of users that have been disabled or expired. You can modify the properties of the users, extend the time for the expired users and also reinstate any disabled user. | -| View Organizational Hierarchy | Displays the complete hierarchy in graphical form. It displays few attributes of users like email address and profile picture etc. | -| Link Accounts | With accounts in multiple identity stores, you can reset passwords or unlock accounts with Linked Accounts | -| Reset Password | Reset your forgotten or lost passwords. Unenrolled users can reset passwords if Second Way Authentication is enabled. | -| Unlock Account | Unlock your accounts yourself without contacting the Administrator. | -| Change Password | Change your password according to the Password Policy set by the administrator. | -| Validate Your Profile | Validate your profile after a particular time in order to ensure the user information in the directory. | -| User Account Settings | Modify your profile information. Administrators can manage the user information, enable/disable the user, or expire a user. | - -NOTE: The contact object type is not supported in a Microsoft Entra ID based identity store. - -**See Also** - -- [Enroll Your Identity Store Account](/docs/directorymanager/11.0/welcome/secondfactorauthentication/enrollaccount.md) -- [Second Factor Authentication](/docs/directorymanager/11.0/welcome/secondfactorauthentication/secondfactorauthentication.md) -- [Portal Settings](/docs/directorymanager/11.0/welcome/generalfeatures/portal.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/_category_.json b/docs/directorymanager/11.0/welcome/user/properties/_category_.json deleted file mode 100644 index 8238f01062..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "User Properties", - "position": 30, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/_category_.json b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/_category_.json deleted file mode 100644 index 3241cbd4ab..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Overview", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/_category_.json b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/_category_.json deleted file mode 100644 index 3241cbd4ab..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Overview", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/advanced.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/advanced.md deleted file mode 100644 index 3ffa807181..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/advanced.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Contact properties - Advanced tab" -description: "Contact properties - Advanced tab" -sidebar_position: 10 ---- - -# Contact properties - Advanced tab - -Use this tab to specify advanced settings for a contact. - -**Home Page** - -The URL of the contact's website. - -Use the **Add** and **Remove** buttons to add and remove the URL. - -**Emp Type** - -The job category of the contact. - -**Emp #** - -The employee ID of the contact. - -**Admin No**tes - -Notes by the administrator. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/memberof.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/memberof.md deleted file mode 100644 index b4fc3258aa..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/memberof.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Contact properties - Member Of tab" -description: "Contact properties - Member Of tab" -sidebar_position: 20 ---- - -# Contact properties - Member Of tab - -Use this tab to view the groups that the contact is a member of. You can also add and remove this -contact from the membership of groups. - -**Member Of** - -Displays the groups this contact is a member of. - -**Add** - -Click it to add the contact to the memberships of one or more groups. - -Enter a search string to locate the required group, or click **Advance** to use the -[Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing a -search. - -**Remove** - -Select a group in the Member Of list and click **Remove** to remove the contact from the membership -of that group. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/overview.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/overview.md deleted file mode 100644 index c77e0803fc..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/overview.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Overview" -description: "Overview" -sidebar_position: 10 ---- - -# Overview - -You can view and manipulate the properties of contacts in Active Directory. - -## Contact properties - -Following is the list of all the properties that Contacts have in Active Directory based identity -store. - -- [Object properties - General tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/general.md) -- [Object properties - Organization tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/organization.md) -- [Contact properties - Member Of tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/memberof.md) -- [Object properties - Phone / Notes tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/phonenote.md) -- [Object properties - Attributes tab](/docs/directorymanager/11.0/welcome/group/properties/attributes.md) -- [Object properties - Email tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/email.md) -- [Contact properties - Advanced tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/advanced.md) -- [Object properties - History tab](/docs/directorymanager/11.0/welcome/group/properties/history.md) - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/_category_.json b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/_category_.json deleted file mode 100644 index a9fbb952ed..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Overview", - "position": 20, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/advanced.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/advanced.md deleted file mode 100644 index 570ffb04f8..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/advanced.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: "Mailbox properties - Advanced tab" -description: "Mailbox properties - Advanced tab" -sidebar_position: 10 ---- - -# Mailbox properties - Advanced tab - -Use this tab to configure advanced settings for a user. - -The **Server** box helps differentiate between a user and a mailbox object. If it displays the name -of a messaging server, the object is a mailbox. If it is empty, the object is a user. - -**Home Page** - -The URL of the user's website. - -**Emp #** - -The employee ID of the user. - -**Hide from address book** - -Indicates whether to hide the user in the messaging provider's address book (such as the Outlook -address book). - -If selected, the user will not be visible in the address book. - -**Recipient** - -Specify an alternate recipient to receive the emails sent to this user. - -Click the ellipsis button to launch the -[Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md), where you can search -and select the required recipient. - -To remove the alternate recipient, click the **Remove** button. - -**Server** - -The distinguished name (DN) of the messaging server, such as the Exchange server. - -This field is populated for a 'mailbox' object only. - -**Emp Type** - -The job category of this user. - -**Admin Notes** - -Notes by the administrator. - -**Deliver messages to both forwarding address and mailbox** - -Indicates whether to send every email for this user to the alternate recipient as well. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/autoreply.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/autoreply.md deleted file mode 100644 index 0c515506c4..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/autoreply.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: "Mailbox properties - Auto Reply tab" -description: "Mailbox properties - Auto Reply tab" -sidebar_position: 20 ---- - -# Mailbox properties - Auto Reply tab - -Use this tab to configure automatic replies for the emails sent to a mailbox object. You can: - -- Enable/disable automatic replies to senders from your organization. -- Enable/disable automatic replies to senders from other organizations. -- Compose the message to be sent as auto-reply. Different messages can be composed for senders from - your organization and for those from other organizations. -- Specify the time period during which automatic replies must be sent. - -**Don't send automatic replies** - -Select this option button to disable the out-of-office replies feature. - -**Send automatic replies** - -Select this option button to send out-of-office replies to senders. - -**Send replies only during this time period** - -Select this check box if you want to specify a time frame during which the automatic replies should -be sent. - -**Start Time, End Time** - -Specify the date and time between which the replies will be sent. - -**Send reply once to each sender inside my organization with the following message** - -In the text box, type the content that you want to be sent as the reply to the senders from your -organization. - -**Send automatic reply messages to senders outside my organization** - -Select this check box to send automatic replies to the senders from other organizations as well. - -**Send replies only to senders in my contact list** - -Select this option button to send replies to those external senders that are on your contact list. - -**Send replies to all external senders** - -Select this option button to send replies to all external senders. - -**Send a reply once to each sender outside my organization with the following message** - -In the text box, type the content that should be sent as the reply to the senders who do not belong -to your organization. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/limits.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/limits.md deleted file mode 100644 index 0f0ebb22f0..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/limits.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "Mailbox properties - Limits tab" -description: "Mailbox properties - Limits tab" -sidebar_position: 30 ---- - -# Mailbox properties - Limits tab - -This tab applies to mailboxes only. It allows you to set the storage quota for the object's mailbox, -such as an Exchange mailbox. - -**Use default storage quota** - -Select this check box to use the default quota for the mailbox store instead of defining it -individually. - -**Issue warning (K)** - -The mailbox size in kilobytes (KB) for this user, that, when exceeded, triggers an over-limit -warning. However, the user can still send and receive messages. - -**Prohibit Send (K)** - -The maximum mailbox size in kilobytes (KB) for this user, that, when exceeded, suspends the user's -ability to send emails. - -**Prohibit Send/Receive (K)** - -The maximum mailbox size, in kilobytes (KB) for this user, that, when exceeded, suspends the user's -ability to both send and receive emails. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/overview.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/overview.md deleted file mode 100644 index ac138c99c7..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/overview.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Overview" -description: "Overview" -sidebar_position: 20 ---- - -# Overview - -You can view and manipulate the properties of mailboxes in Active Directory. - -## Mailbox properties - -Following is the list of all the properties that Users and Mailbox Users have in Active Directory -based identity store. - -- [Object properties - General tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/general.md) -- [Object properties - Organization tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/organization.md) -- [User properties - Member Of tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/memberof.md) -- [Object properties - Phone / Notes tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/phonenote.md) -- [Object properties - Attributes tab](/docs/directorymanager/11.0/welcome/group/properties/attributes.md) -- [Object properties - Email tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/email.md) -- [Mailbox properties - Limits tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/limits.md) -- [Mailbox properties - Advanced tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/advanced.md) -- [User properties - Account tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/account.md) -- [Mailbox properties - Auto Reply tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/autoreply.md) -- [Object Properties - Entitlements tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/entitlement.md) -- [Object properties - History tab](/docs/directorymanager/11.0/welcome/group/properties/history.md) - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/overview.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/overview.md deleted file mode 100644 index 93f745ac9f..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/overview.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Overview" -description: "Overview" -sidebar_position: 10 ---- - -# Overview - -You can view and manipulate the properties of directory objects (users, mailboxes, and contacts) in -Active Directory, depending on the permissions the GroupID administrator has granted you. - -## User and Mailbox properties - -Following is the list of all the properties that Users and Mailbox Users have in Active Directory -based identity store. - -- [Object properties - General tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/general.md) -- [Object properties - Organization tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/organization.md) -- [User properties - Member Of tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/memberof.md) -- [Object properties - Phone / Notes tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/phonenote.md) -- [Object properties - Attributes tab](/docs/directorymanager/11.0/welcome/group/properties/attributes.md) -- [Object properties - Email tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/email.md) -- [Mailbox properties - Limits tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/limits.md) - (for mailbox only) -- [Mailbox properties - Advanced tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/advanced.md) - (for mailbox only) -- [Object properties - Advanced tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/advanced.md) -- [User properties - Account tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/account.md) -- [Mailbox properties - Auto Reply tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/autoreply.md) - (for mailbox only) -- [Object Properties - Entitlements tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/entitlement.md) -- [Object properties - History tab](/docs/directorymanager/11.0/welcome/group/properties/history.md) - -## Contact properties - -Following is the list of all the properties that Contacts have in Active Directory based identity -store. - -- [Object properties - General tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/general.md) -- [Object properties - Organization tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/organization.md) -- [Contact properties - Member Of tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/memberof.md) -- [Object properties - Phone / Notes tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/phonenote.md) -- [Object properties - Attributes tab](/docs/directorymanager/11.0/welcome/group/properties/attributes.md) -- [Object properties - Email tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/email.md) -- [Contact properties - Advanced tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/advanced.md) -- [Object properties - History tab](/docs/directorymanager/11.0/welcome/group/properties/history.md) - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/_category_.json b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/_category_.json deleted file mode 100644 index 169ebd21b7..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Overview", - "position": 30, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "useroverview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/account.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/account.md deleted file mode 100644 index 9853bf37f9..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/account.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "User properties - Account tab" -description: "User properties - Account tab" -sidebar_position: 10 ---- - -# User properties - Account tab - -This tab enables administrators to manage the account status and expiry policy of a user. - -**Account Expires** - -Set the account expiry policy for the user. - -- **Never**: to set this user account to never expire. This is the default option for new users. -- **End Of**: to set this user account to expire on a specified date. Use the calendar selector to - enter the expiry date for the user account. - -**Account is disabled** - -Select this check box to disable the user account, so that the user cannot log-on with it. - -**Account is locked out** - -This check box will be selected when this user account is locked, for example, due to failed logon -attempts. Clear this check box to unlock the account. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/advanced.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/advanced.md deleted file mode 100644 index 7a5a19d199..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/advanced.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "Object properties - Advanced tab" -description: "Object properties - Advanced tab" -sidebar_position: 20 ---- - -# Object properties - Advanced tab - -Use this tab to specify advanced settings for a user/mailbox. - -**Home Page** - -The URL of the user/mailbox's website. - -Use the **Add** and **Remove** buttons to add and remove the URL. - -**Emp Type** - -The job category of the user/mailbox. - -**Emp #** - -The employee ID of the user/mailbox. - -**Hide from address book** - -Indicates whether to hide the user in the messaging provider's address book (such as the Outlook -address book). - -When selected, the user will not be visible in the address book. - -This option is available for user objects only. - -**Admin Notes** - -Notes by the administrator. - -## For mailbox objects only - -**Server** - -The server name of the messaging provider where the mailbox resides. - -**Recipient** - -An email address or mailbox object that should receive the emails sent to the particular mailbox. - -Enter a search string to locate the object to add as a recipient, or click the ellipsis button to -use the [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing -a search. - -**Deliver messages to both forwarding address and mailbox** - -Select the check box to ensure that any email sent to the mailbox is also forwarded to the -object/email specified in the **Recipient** box. - -- When no recipient is set and this check box is cleared, emails are only sent to the mailbox. -- However, when an email/object is specified in the **Recipient** box and this check box is cleared, - emails will not be sent to the mailbox but only to the recipient. - -See Also - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/email.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/email.md deleted file mode 100644 index bd49967b34..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/email.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Object properties - Email tab" -description: "Object properties - Email tab" -sidebar_position: 30 ---- - -# Object properties - Email tab - -Use this tab to view the addresses assigned to this object. - -**Addresses** - -In case of a mail-enabled object, the messaging provider (such as Microsoft Exchange) assigns -different addresses to it for communication with different repositories (such as Address Book, SIP, -Outlook). These addresses are displayed in this box. - -**Subscriptions** - -Displays the subscriptions assigned to the mailbox. - -It also lists other subscriptions offered by Office 365 to a mailbox user. Select the check box for -a subscription to assign it to the mailbox. - -The subscription list is displayed for mailbox objects when Office 365 is configured as the -messaging provider for the identity store. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/entitlement.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/entitlement.md deleted file mode 100644 index 93fbcaeb91..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/entitlement.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: "Object Properties - Entitlements tab" -description: "Object Properties - Entitlements tab" -sidebar_position: 40 ---- - -# Object Properties - Entitlements tab - -Entitlement computes the effective NTFS permissions granted to objects on shared resources residing -on a server in an Active Directory identity store. The Entitlement tab provides an interface for -users to view these permissions. Users can view the permissions granted to a user over files and -folder residing on a server. - -Explicit permissions are assigned to a user. To facilitate permission viewing, do the following: - -- Specify one or more servers in identity store configurations. - - This must be a server in an Active Directory based identity store. - -- Compute all permissions that directory objects have on the shared files and folders on those - server(s). -- View these permissions in the GroupID portal. - -## Entitlement job - -An Entitlement schedule is automatically created for an identity store when: - -- A server is added for permission analysis on the **Entitlement** page in an Active Directory - identity store. - - Or - -- A SharePoint site is added for permission analysis on the **Entitlement** page in a Microsoft - Entra ID identity store. - -By default, the schedule runs weekly to compute permissions on shared files and folders residing on -the specified servers (for Active Directory), and the document libraries present in the specified -sites (for SharePoint). It then replicates these permissions to Elasticsearch, enabling users to -view, manage and update these permissions in the GroupID portal. - -## Permissions on the GroupID Entitlement portal - -You can grant permissions to security roles on the Entitlement section in the GroupID portal. Based -on these permissions, role members can performs different actions in the Entitlement section, such -as navigate file servers and SharePoint sites, grant permissions to objects on shared resources, -revoke permissions, and more. - -Entitlement-related permissions for a security role in an identity store are discussed in the -[Entitlement](/docs/directorymanager/11.0/signin/securityrole/permissions.md#entitlement) -section. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/general.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/general.md deleted file mode 100644 index d90e12a9ff..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/general.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: "Object properties - General tab" -description: "Object properties - General tab" -sidebar_position: 50 ---- - -# Object properties - General tab - -Use this tab to view or update the general information for a user, mailbox, or contact. - -**First name** - -The first name of the contact or user. - -**Last name** - -The last name of the contact or user. - -**Initials** - -The initials of the user or contact. - -**Alias** - -The email alias of the user or contact. - -**Display name** - -The name of the contact or user as it is displayed in the portal. - -**Address** - -The office address of the user or contact. - -**Title** - -The job title of the contact or user. - -**Company** - -The name of the organization where the user or contact works. - -**City** - -The city, state, zip code, and country where the organization of this user or contact is located. - -The **State** list is populated based on the selection made in the **Country** list. - -**Department** - -The department in the organization that the user or contact works in. - -**State** - -The **State** list is populated based on the selection made in the **Country** list. - -**Office** - -The office number of the user or contact. - -**Zip** - -The zip code of the location where the organization of this user or contact resides. - -**Country** - -The country where the organization of this user or contact is located. - -**Business** - -The type of business the contact or user's organization conducts. - -**Home page** - -The URL of the web page of the user. This field is not available for a contact. - -**Exchange Assistant** - -The name of the Exchange assistant for the mailbox/contact. Any email sent to the mailbox/contact is -also forwarded to this assistant. - -Enter a search string to locate the object to add as an Exchange assistant, or click **Browse** to -use the [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing -a search. - -This field is not available for a user. - -**Email** - -The email address of the user or contact. - -**Photo** - -The photo of the user or contact. - -Click the **Edit** icon to launch the Manage Photo dialog box for uploading a photo. The dialog box -also provides many image editing options, including rotate, crop, flip, and re-size. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/memberof.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/memberof.md deleted file mode 100644 index 49c3f4bbb6..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/memberof.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "User properties - Member Of tab" -description: "User properties - Member Of tab" -sidebar_position: 60 ---- - -# User properties - Member Of tab - -Use this tab to view the groups that the user is a member of. You can also add and remove this user -from the membership of groups. - -The tab displays a list of all groups this user is a member of. - -| Column Name | Description | -| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Display Name | Displays the names of the groups this user is a member of. | -| Membership | Indicates whether the user is a temporary or permanent member of the group. - **Perpetual** - To make the object a permanent member of the group. - **Temporary Member** - To make the object a temporary member of the group for the period you specify in the **Beginning** and **Ending** boxes. At the end of the period, the object is removed from the group membership. - **Addition Pending** - Indicates that the object will be a temporary member of the group for a period in the future. Use the **Beginning** and **Ending** boxes to set a period. Before the beginning date, the object’s membership type is displayed as ‘Addition Pending’. On the beginning date, the membership type changes to ‘Temporary Member’. **Here is an example:** You add Smith as a temporary member to Group A on May 15, 2019 for future dates, May 20-30, 2019. Smith will be displayed in Group A’s membership with ‘Addition Pending’ as its membership type from May 15 to 19, 2019. However, Smith would not be added to group membership in the provider. On May 20, Smith will become a temporary member of Group A and its membership type will change to ‘Temporary Member’ from May 20 to 30, 2019. Smith will also be added to group membership in the provider. After May 30, Smith will be removed from Group A as a member in GroupID and in the provider. - **Removal Pending** - Indicates that the object will be temporarily removed from group membership for a period in the future. Use the **Beginning** and **Ending** boxes to set a period. Before the beginning date, the object’s membership type is displayed as ‘Removal Pending’. On the beginning date, the membership type will change to ‘Temporary Removed’. _Here is an example:_ You remove Smith from Group A on May 15, 2019 for future dates, May 20-30, 2019. Smith will be displayed in Group A’s membership with ‘Removal Pending’ as membership type from May 15 to 19, 2019. On May 20, Smith’s membership type in GroupID will change to ‘Temporary Removed’; lasting till May 30, 2019. However, Smith will be removed from Group A’s membership in the provider. After May 30, Smith will be added back to Group A as a permanent member in GroupID and in the provider. - **Temporary Removed** - Indicates that the object is temporarily removed from group membership for the period specified in the **Beginning** and **Ending** boxes. At the end of the period, the object is added back to the group membership as a permanent member. When the user is a perpetual member, the **Membership** column is blank. You cannot change the membership type of the user for any group on the **Member Of** tab. Rather, go to the properties of the specific group and change the user's membership type on the [Group properties - Members tab](/docs/directorymanager/11.0/welcome/group/properties/members.md). | -| Beginning | Displays the beginning date of the temporary addition or removal. | -| Ending | Displays the ending date of the temporary addition or removal. | - -For each column in the grid, an item level filter is also available that lets you filter records -based on a criterion. For example; to show groups whose display names start with D, type D in the -box under the **Display Name** header and press Enter. - -**Add** - -Click it to add the user to the memberships of one or more groups. - -Enter a search string to locate the required group, or click **Advance** to use the -[Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing a -search. - -The selected group(s) get listed in the **Member Of** grid. - -**Remove** - -Select a group in the Member Of list and click **Remove** to remove the user from the membership of -that group. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/organization.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/organization.md deleted file mode 100644 index 56fdd592ad..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/organization.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: "Object properties - Organization tab" -description: "Object properties - Organization tab" -sidebar_position: 70 ---- - -# Object properties - Organization tab - -Use this tab to add or change the primary manager for this user or contact. You can also remove the -manager. - -You can also specify additional manager(s) for the user or contact. Additional managers have the -same privileges as the primary manager. - -Furthermore, this tab shows the direct reports of this user or contact. Direct reports are groups, -users or contacts that report directly to the user or contact. You can add direct reports as well as -transfer or terminate a direct report. - -NOTE: A user can also manage his/her direct reports and change his/her primary manager while -validating his/her profile in the portal. See the -[Validate your profile](/docs/directorymanager/11.0/welcome/user/manage/validateprofile.md) -topic. - -## Dotted line management - -Each user can be assigned one primary manager and one or more dotted-line managers (also called -additional managers). However, users can add, change, or remove their primary and dotted-line -managers. - -When a user changes his or her primary or additional manager, the primary manager is notified -through email to accept or reject the request. If the primary manager accepts, the user’s manager is -changed. If the primary manager rejects the request, the user remains with the manager. - -NOTE: This is the default flow for the ‘Workflow to Change Manager’ workflow, with the primary -manager set as the approver. If the administrator disables the workflow or changes the workflow -approver, the flow changes accordingly. See the -[Requests](/docs/directorymanager/11.0/welcome/request/overview.md) topic. - -**Manager** - -Displays the contact/user's primary manager, if specified. The user/contact can change his or her -primary manager. - -Click the ellipsis button to launch the -[Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md), where you can search -and select a user to set as the manager. - -**Reports** - -Displays a list of objects that report directly to this user or contact. These may include users, -groups and contacts. - -- To add a direct report, click **Add**. Enter a search string to locate the object to add as a - direct report, or click **Advance** to use the - [Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing a - search. -- To transfer a direct report, select it and click **Transfer**. - - When you transfer a direct report, the direct report is notified through email to accept or - reject the transfer. If the direct report accepts the transfer, he or she must select another - primary manager and validate his or her profile. If the direct report rejects the transfer, he - or she is transferred back to the old manager, i.e., you. - - NOTE: This is the default flow for the ‘Workflow to Transfer a User’ workflow, with the direct - report set as the approver. If the administrator disables the workflow or changes the approver, - the flow changes accordingly. See the - [Requests](/docs/directorymanager/11.0/welcome/request/overview.md) topic. - -- To terminate a direct report, select it and click **Terminate**. - - When you terminate a direct report, it takes effect immediately if the ‘Workflow to Terminate a - User’ workflow is disabled. If enabled, a request is sent to an approver. If the approver - approves it, the direct report is terminated and if the approver denies it, the direct report - remains with the manager, i.e., you. - -**Additional Manager** - -To add a manager, click **Add**. Enter a search string to locate the object to add as an additional -manager, or click **Advance** to use the -[Find Dialog Box](/docs/directorymanager/11.0/welcome/generalfeatures/find.md) for performing a -search. - -To remove an additional manager, select it and click **Remove**. - -This section displays a list of the additional managers of the user or contact. - -| Column Name | Description | -| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Type | The object type of the addition manager, such as user or group. | -| Name | The name of the additional manager. | -| Manager Type | Indicates whether the object is a temporary or permanent additional manager of this user/contact. The available manager types are: - **Perpetual** - To make the object a permanent additional manager of the user/contact. - **Temporary Manager** - To make the object a temporary additional manager of the user/contact for the period you specify in the **Beginning** and **Ending** boxes. At the end of the period, the object is removed as manager. - **Addition Pending** - Indicates that the object will be a temporary additional manager of the user/contact for a period in the future. Use the **Beginning** and **Ending** boxes to set a period. Before the beginning date, the object’s manager type is displayed as ‘Addition Pending’. On the beginning date, the manager type changes to ‘Temporary Owner’. _Here is an example:_ You add Smith as a temporary additional manager of User A on May 15, 2019 for future dates, May 20-30, 2019. Smith will be listed with User A’s additional managers with ‘Addition Pending’ as its manager type from May 15 to 19, 2019. On May 20, Smith will become a temporary additional manager of User A and its manager type will change to ‘Temporary Manager’ from May 20 to 30, 2019. After May 30, Smith will be removed as User A’s additional manager. - **Removal Pending** - Indicates that the object will be temporarily removed as an additional manager of the user/contact for a period in the future. Use the **Beginning** and **Ending** boxes to set a period. Before the beginning date, the object’s manager type is displayed as ‘Removal Pending’. On the beginning date, the manager type will change to ‘Temporary Removed’. **Here is an example:** You remove Smith as an additional manager of User A on May 15, 2019 for future dates, May 20-30, 2019. Smith will be displayed as User A’s additional manager with ‘Removal Pending’ as manager type from May 15 to 19, 2019. On May 20, Smith’s manager type in GroupID will change to ‘Temporary Removed’; lasting till May 30, 2019. After May 30, Smith will be added back as a permanent additional manager of User A. - **Temporary Removed** - Indicates that the object is temporarily removed as the user/contact’s additional manager for the period specified in the **Beginning** and **Ending** boxes. At the end of the period, the object is added back as a permanent additional manager of the user/contact. When the object is a perpetual additional manager, the **Manager Type** column is blank. Click anywhere in the row to make it editable for changing the manager type of the additional manager. NOTE: You cannot change the manager type when the additional manager is a group. | -| Beginning | Shows the beginning date of the temporary addition or removal. | -| Ending | Shows the ending date of the temporary addition or removal. | - -NOTE: For each column, a filter is also available that lets you filter records based on a criterion. -For example; to show objects whose display names start with D, type D in the box under the **Name** -header and press Enter. - -The Managed By Life Cycle job updates the temporary managers of users/contacts by adding and -removing temporary additional managers on the specified dates. - -Consider a scenario where the Managed By Life Cycle job is scheduled to run once a week, say -Mondays. If an object is to be added as a user’s temporary additional manager for three days - -Wednesday till Friday, it will not be added. This happens because the Managed By Life Cycle job did -not run on the particular days for temporary manager update. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) -- [Validate your profile](/docs/directorymanager/11.0/welcome/user/manage/validateprofile.md) -- [Requests](/docs/directorymanager/11.0/welcome/request/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/phonenote.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/phonenote.md deleted file mode 100644 index 43f29f01d7..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/phonenote.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "Object properties - Phone / Notes tab" -description: "Object properties - Phone / Notes tab" -sidebar_position: 80 ---- - -# Object properties - Phone / Notes tab - -Use this tab to view or update the contact information of the user or contact. - -**Business** - -The primary business phone number of the user or contact. - -**Business 2** - -The secondary business phone number of the user or contact. - -**Home** - -The primary home phone number of the user or contact. - -**Home 2** - -The secondary home phone number of the user or contact. - -**Fax** - -The fax number of the user or contact. - -**Mobile** - -The cell phone number of the user or contact. - -**Telephone Assistant** - -The contact number of the assistant of the user or contact, if any. - -**Notes** - -Any additional information about the user or contact. - -**Pager** - -The pager number of the user or contact. - -See Also - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/useroverview.md b/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/useroverview.md deleted file mode 100644 index 42aea0e809..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/useroverview.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Overview" -description: "Overview" -sidebar_position: 30 ---- - -# Overview - -You can view and manipulate the properties of users in Active Directory. - -## User properties - -Following is the list of all the properties that Users and Mailbox Users have in Active Directory -based identity store. - -- [Object properties - General tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/general.md) -- [Object properties - Organization tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/organization.md) -- [User properties - Member Of tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/memberof.md) -- [Object properties - Phone / Notes tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/phonenote.md) -- [Object properties - Attributes tab](/docs/directorymanager/11.0/welcome/group/properties/attributes.md) -- [Object properties - Email tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/email.md) -- [Object properties - Advanced tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/advanced.md) -- [User properties - Account tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/account.md) -- [Object Properties - Entitlements tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/entitlement.md) -- [Object properties - History tab](/docs/directorymanager/11.0/welcome/group/properties/history.md) - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/azure/_category_.json b/docs/directorymanager/11.0/welcome/user/properties/azure/_category_.json deleted file mode 100644 index a9fbb952ed..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/azure/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Overview", - "position": 20, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/directorymanager/11.0/welcome/user/properties/azure/contactinfo.md b/docs/directorymanager/11.0/welcome/user/properties/azure/contactinfo.md deleted file mode 100644 index ffcc9e5508..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/azure/contactinfo.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "User properties - Contact Info tab" -description: "User properties - Contact Info tab" -sidebar_position: 10 ---- - -# User properties - Contact Info tab - -Use this tab to view or update the contact information of the user/mailbox. - -**Street address** - -The street address of the user's office. - -**City, State or province, ZIP or postal code, Country or region** - -The city, state, zip code, and country where the office of this user is located. - -**Office** - -The office number of the user. - -**Mobile** - -The cell phone number of the user. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/azure/directoryrole.md b/docs/directorymanager/11.0/welcome/user/properties/azure/directoryrole.md deleted file mode 100644 index 411a018a8b..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/azure/directoryrole.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "User properties - Directory Role tab" -description: "User properties - Directory Role tab" -sidebar_position: 20 ---- - -# User properties - Directory Role tab - -This tab displays the role assigned to the user/mailbox in Microsoft Entra ID. If required, you can -change the role or modify the permissions assigned to the current role. - -Roles are: Global Administrator, Limited Administrator, and User. - -**Directory Roles** - -Displays the role assigned to the user on the Microsoft Entra Admin Center. - -To change the user role, click the down arrow for the new role you want to assign, and then select -the check boxes for the role privileges for assignment. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/azure/identity.md b/docs/directorymanager/11.0/welcome/user/properties/azure/identity.md deleted file mode 100644 index 660de9347c..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/azure/identity.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: "User properties - Identity tab" -description: "User properties - Identity tab" -sidebar_position: 30 ---- - -# User properties - Identity tab - -Use this tab to view or update the general information for a user and mailbox in a Microsoft Entra -ID based identity store. - -**Display name** - -The name of the user as it is displayed in the GroupID portal. - -**Username** - -The login ID of the user. - -**First name** - -The first name of the user. - -**Last name** - -The last name of the user. - -**User type** - -The user type assigned to the user in Microsoft Entra ID, such as _Member_ or _Guest_. - -- **Member**: This value indicates an employee of the host organization and a user in the - organization's payroll. For example, this user expects to have access to internal-only sites. This - user would not be considered an external collaborator. -- **Guest**: This value indicates a user who isn't considered internal to the company, such as an - external collaborator, partner, customer, or similar user. Such a user wouldn't be expected to - receive a CEO's internal memo, or receive company benefits, for example. - -NOTE: The User Type has no link to the user login function, the directory role of the user, and so -on. It simply indicates the user's relationship to the host organization and allows the organization -to enforce policies that depend on this property. - -**Object ID** - -The unique ID assigned to the object in Microsoft Entra ID. - -**Alias** - -The email alias of the user. - -**Email** - -The email address of the user. - -**Account is enabled** - -This check box is selected by default, indicating that the user account is enabled. - -Clear it to disable the user account, so that the user cannot log-on with it. - -**Usage Location** - -The country where the user is located. - -The usage location is mandatory for a mailbox and displays the object's geographical location. It -determines what Office 365 licenses and associated features can be assigned to a mailbox based on -geographic availability and laws. - -**Photo** - -The user's photo. - -Click the **Edit** icon to launch the Manage Photo dialog box for uploading a photo. The dialog box -also provides many image editing options, including rotate, crop, flip, and re-size. - -**See Also** - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/azure/jobinfo.md b/docs/directorymanager/11.0/welcome/user/properties/azure/jobinfo.md deleted file mode 100644 index d87188ee98..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/azure/jobinfo.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "User properties - Job Info tab" -description: "User properties - Job Info tab" -sidebar_position: 40 ---- - -# User properties - Job Info tab - -The **Job Info** tab is similar to the -[Object properties - Organization tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/organization.md) -in user properties, with the addition of two fields: **Title** and **Department**. - -**Title** - -The job title of the user/mailbox. - -**Department** - -The department in the organization that the user/mailbox works in. - -See Also - -- [User Properties](/docs/directorymanager/11.0/welcome/user/properties/overview.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/azure/overview.md b/docs/directorymanager/11.0/welcome/user/properties/azure/overview.md deleted file mode 100644 index c8498867c5..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/azure/overview.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Overview" -description: "Overview" -sidebar_position: 20 ---- - -# Overview - -You can view and manipulate the properties of directory objects (users and mailboxes) in Microsoft -Entra ID, depending on the permissions the GroupID administrator has granted you. - -## User and Mailbox properties - -Following is the list of all the properties that Users and Mailbox Users have in an Microsoft Entra -ID based identity store. - -- [User properties - Identity tab](/docs/directorymanager/11.0/welcome/user/properties/azure/identity.md) -- [User properties - Directory Role tab](/docs/directorymanager/11.0/welcome/user/properties/azure/directoryrole.md) -- [User properties - Job Info tab](/docs/directorymanager/11.0/welcome/user/properties/azure/jobinfo.md) -- [User properties - Member Of tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/memberof.md) -- [Object properties - Email tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/email.md) - (for mailbox only) -- [Mailbox properties - Auto Reply tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/autoreply.md) - (for mailbox only) -- [Object properties - History tab](/docs/directorymanager/11.0/welcome/group/properties/history.md) - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/user/properties/overview.md b/docs/directorymanager/11.0/welcome/user/properties/overview.md deleted file mode 100644 index 822c3bddf1..0000000000 --- a/docs/directorymanager/11.0/welcome/user/properties/overview.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: "User Properties" -description: "User Properties" -sidebar_position: 30 ---- - -# User Properties - -You can view and manipulate the properties of directory objects (users, mailboxes, and contacts) in -the connected identity store, depending on the permissions the GroupID administrator has granted -you. - -**You can:** - -- Select the required object and click **Properties** on the toolbar. The object's properties page - is displayed. -- Click **Save** after making any changes in any properties' tab -- Click **Delete** to delete that user, contact, or mailbox. -- Click **Add to Contacts** on the toolbar. The portal creates the direct report's vCard and prompts - you to save it on your machine. You can then use it to add the direct report's email address to - your email contact list. -- Click **Send email** on the toolbar. This launches the default Windows email application for - sending an email to the direct report. -- Click Reset Password to reset the password for the object. -- Click **Organizational Hierarchy** to view the hierarchy of the object. - -## User and Mailbox properties in Active Directory - -Following is the list of all the properties that Users and Mailbox Users have in Active Directory -based identity store. - -- [Object properties - General tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/general.md) -- [Object properties - Organization tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/organization.md) -- [User properties - Member Of tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/memberof.md) -- [Object properties - Phone / Notes tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/phonenote.md) -- [Object properties - Attributes tab](/docs/directorymanager/11.0/welcome/group/properties/attributes.md) -- [Object properties - Email tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/email.md) -- [Mailbox properties - Limits tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/limits.md) - (for mailbox only) -- [Mailbox properties - Advanced tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/advanced.md) - (for mailbox only) -- [Object properties - Advanced tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/advanced.md) -- [User properties - Account tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/account.md) -- [Mailbox properties - Auto Reply tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/autoreply.md) - (for mailbox only) -- [Object Properties - Entitlements tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/entitlement.md) -- [Object properties - History tab](/docs/directorymanager/11.0/welcome/group/properties/history.md) - -## User and Mailbox properties in Microsoft Entra ID - -Following is the list of all the properties that Users and Mailbox Users have in an Microsoft Entra -ID based identity store. - -- [User properties - Identity tab](/docs/directorymanager/11.0/welcome/user/properties/azure/identity.md) -- [User properties - Directory Role tab](/docs/directorymanager/11.0/welcome/user/properties/azure/directoryrole.md) -- [User properties - Job Info tab](/docs/directorymanager/11.0/welcome/user/properties/azure/jobinfo.md) -- [User properties - Contact Info tab](/docs/directorymanager/11.0/welcome/user/properties/azure/contactinfo.md) -- [User properties - Member Of tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/memberof.md) -- [Object properties - Email tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/email.md) - (for mailbox only) -- [Mailbox properties - Auto Reply tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/mailbox/autoreply.md) - (for mailbox only) -- [Object properties - History tab](/docs/directorymanager/11.0/welcome/group/properties/history.md) - -## Contact properties - -Following is the list of all the properties that Contacts have in Active Directory based identity -store. - -NOTE: Contact object is not supported in Microsoft Entra ID. - -- [Object properties - General tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/general.md) -- [Object properties - Organization tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/organization.md) -- [Contact properties - Member Of tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/memberof.md) -- [Object properties - Phone / Notes tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/phonenote.md) -- [Object properties - Attributes tab](/docs/directorymanager/11.0/welcome/group/properties/attributes.md) -- [Object properties - Email tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/useroverview/email.md) -- [Contact properties - Advanced tab](/docs/directorymanager/11.0/welcome/user/properties/activedirectory/contact/advanced.md) -- [Object properties - History tab](/docs/directorymanager/11.0/welcome/group/properties/history.md) - -**See Also** - -- [Working with Groups](/docs/directorymanager/11.0/welcome/group/workingwithgroups/workingwithgroups.md) diff --git a/docs/directorymanager/11.0/welcome/welcome.md b/docs/directorymanager/11.0/welcome/welcome.md deleted file mode 100644 index ee44aea186..0000000000 --- a/docs/directorymanager/11.0/welcome/welcome.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "Welcome to the Portal" -description: "Welcome to the Portal" -sidebar_position: 50 ---- - -# Welcome to the Portal - -A GroupID portal represents a virtual link with the directory. Using it, users can do the following -in an identity store: - -- Search the directory. -- Perform group management tasks, such as create and update their groups, join/leave a group, attest - an expiring group, group expiry and renew an expired group , and more. -- Carry out user management tasks, such as create, update, and delete users in the directory. Users - can maintain and update their profiles, change password, manage their profile, direct reports, and - more. -- Synchronize data between a source and a destination, such as directories, files, and databases. -- Manage user and group entitlements to shared resources on file servers and SharePoint sites. -- Approve and deny workflow requests. -- Generate hundreds of insightful reports on Active Directory, Microsoft Entra ID, Exchange, and - Office 365 objects (groups, users, mailboxes, contacts, computers, and servers). -- View history data for directory objects that are created, updated, or deleted in the directory - using GroupID. - -Delegating group and user management tasks to end-users reduces the workload on IT administrators -and helpdesk, as users are empowered to manage their groups and direct reports without assistance -from an administrator. Moreover, when users maintain and update their profile information, data is -more accurate and reliable. - -Administrators can maintain complete control over data integrity, as they can implement fine-grained -controls and policies that determine what users can view and change using the GroupID portal. They -can also define workflows for an identity store, that serve as a built-in auditing system to ensure -that users enter correct data before changes are committed to the directory. - -A GroupID portal can be linked with multiple identity stores, thus eliminating the need to create a -separate portal for each identity store. Users can select an identity store to log in. - -NOTE: Since the administrator can customize the portal for different identity stores and for -different user roles within an identity stores, you may not have access to all portal features. - -**See Also** - -- [Access Portal](/docs/directorymanager/11.0/welcome/login.md) -- [Dashboard](/docs/directorymanager/11.0/welcome/dashboard.md) -- [Group Management](/docs/directorymanager/11.0/welcome/group/overview.md) -- [User Management](/docs/directorymanager/11.0/welcome/user/overview.md) -- [Requests](/docs/directorymanager/11.0/welcome/request/overview.md) -- [History](/docs/directorymanager/11.0/welcome/history/overview.md) -- [ Entitlement](/docs/directorymanager/11.0/welcome/entitlement/overview.md) -- [Synchronize](/docs/directorymanager/11.0/welcome/synchronize/overview.md) -- [Reports](/docs/directorymanager/11.0/welcome/dashboard/dashboard.md) From 42daf343d024541d43de875353bbf243fa3221eb Mon Sep 17 00:00:00 2001 From: "ivan.zamkovyi" Date: Thu, 16 Jul 2026 16:11:20 +0300 Subject: [PATCH 2/4] clear reference about directory manager v11.0 --- sidebars/directorymanager/11.0.js | 8 -------- src/config/products.js | 6 ------ 2 files changed, 14 deletions(-) delete mode 100644 sidebars/directorymanager/11.0.js diff --git a/sidebars/directorymanager/11.0.js b/sidebars/directorymanager/11.0.js deleted file mode 100644 index f4e8941a40..0000000000 --- a/sidebars/directorymanager/11.0.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - sidebar: [ - { - type: 'autogenerated', - dirName: '.', - }, - ], -}; diff --git a/src/config/products.js b/src/config/products.js index 10a46029bd..51ab31c1a2 100644 --- a/src/config/products.js +++ b/src/config/products.js @@ -260,12 +260,6 @@ export const PRODUCTS = [ isLatest: true, sidebarFile: './sidebars/directorymanager/11.1.js', }, - { - version: '11.0', - label: '11.0', - isLatest: false, - sidebarFile: './sidebars/directorymanager/11.0.js', - }, ], defaultVersion: '11.1', }, From da9ac7a38b86f021a5156f442f1b4de3586ea0a4 Mon Sep 17 00:00:00 2001 From: "ivan.zamkovyi" Date: Thu, 16 Jul 2026 16:13:18 +0300 Subject: [PATCH 3/4] remove static images for direcotry manager v11.0 --- .../admincenter/entitlement/ad/rc_fail.webp | Bin 324 -> 0 bytes .../admincenter/entitlement/ad/rc_request.webp | Bin 200 -> 0 bytes .../admincenter/entitlement/ad/rc_running.webp | Bin 254 -> 0 bytes .../admincenter/entitlement/ad/rc_success.webp | Bin 408 -> 0 bytes .../entitlement/ad/replicate_permissions.webp | Bin 688 -> 0 bytes .../general/admin_center_dashboard.webp | Bin 45522 -> 0 bytes .../general/admincenterchangepassword.webp | Bin 5102 -> 0 bytes .../11.0/admincenter/general/image38.webp | Bin 2634 -> 0 bytes .../11.0/admincenter/general/quick_search.webp | Bin 2706 -> 0 bytes .../identitystore/moreinfo/advsecsettings.webp | Bin 56642 -> 0 bytes .../advsecsettingsfullcontrolcontact.webp | Bin 60504 -> 0 bytes .../advsecsettingsgrantedpermissions.webp | Bin 59358 -> 0 bytes .../moreinfo/advsecsettingsreqpermissions.webp | Bin 59896 -> 0 bytes .../moreinfo/fullcontrolcontact.webp | Bin 42082 -> 0 bytes .../moreinfo/permissionentry.webp | Bin 36876 -> 0 bytes .../moreinfo/permissions_list.webp | Bin 10742 -> 0 bytes .../identitystore/moreinfo/security_tab.webp | Bin 20580 -> 0 bytes .../identitystore/moreinfo/select_user.webp | Bin 10634 -> 0 bytes .../mobileservice/mobileservice.webp | Bin 34106 -> 0 bytes .../admincenter/mobileservice/ms_card.webp | Bin 9926 -> 0 bytes .../mobileservice/ms_instance_deployed.webp | Bin 3482 -> 0 bytes .../admincenter/notification/send_refresh.webp | Bin 380 -> 0 bytes .../notification/tag_dictionary.webp | Bin 3742 -> 0 bytes .../11.0/admincenter/portal/accesskeys.webp | Bin 7118 -> 0 bytes .../admincenter/portal/accesskeyspurpose.webp | Bin 3948 -> 0 bytes .../11.0/admincenter/portal/accesstoken.webp | Bin 8240 -> 0 bytes .../11.0/admincenter/portal/addsite.webp | Bin 57148 -> 0 bytes .../11.0/admincenter/portal/addwebsite.webp | Bin 30864 -> 0 bytes .../11.0/admincenter/portal/apps_page.webp | Bin 2362 -> 0 bytes .../admincenter/portal/appsettings-full.webp | Bin 50946 -> 0 bytes .../admincenter/portal/container_details.webp | Bin 3356 -> 0 bytes .../portal/design/add_attributes.webp | Bin 2470 -> 0 bytes .../portal/design/filter_criteria_tab.webp | Bin 17702 -> 0 bytes .../admincenter/portal/design/group_type.webp | Bin 5866 -> 0 bytes .../admincenter/portal/design/groupcard.webp | Bin 5888 -> 0 bytes .../portal/design/importmembers.webp | Bin 15400 -> 0 bytes .../portal/design/navigation_bar.webp | Bin 13412 -> 0 bytes .../11.0/admincenter/portal/design/sendas.webp | Bin 10696 -> 0 bytes .../portal/design/sendonbehalf.webp | Bin 5984 -> 0 bytes .../portal/design/similar_groups.webp | Bin 4946 -> 0 bytes .../portal/design/sub-manager_query.webp | Bin 17582 -> 0 bytes .../admincenter/portal/design/usercard.webp | Bin 3986 -> 0 bytes .../admincenter/portal/displaytype/dn.webp | Bin 3412 -> 0 bytes .../displaytype/linked_field_message.webp | Bin 2390 -> 0 bytes .../displaytype/multi-value_display_type.webp | Bin 6892 -> 0 bytes .../portal/displaytype/multiline_textbox.webp | Bin 880 -> 0 bytes .../portal/displaytype/photo_placeholder.webp | Bin 3664 -> 0 bytes .../portal/displaytype/search_row_in_grid.webp | Bin 2530 -> 0 bytes .../admincenter/portal/images_-_local_tab.webp | Bin 6120 -> 0 bytes .../portal/images_-_remote_repositories.webp | Bin 7236 -> 0 bytes .../11.0/admincenter/portal/in_iis.webp | Bin 40646 -> 0 bytes .../admincenter/portal/linked_message.webp | Bin 3108 -> 0 bytes .../binding_expressions_examples.webp | Bin 5700 -> 0 bytes .../portal/linkedcombo/child_fields.webp | Bin 1490 -> 0 bytes .../admincenter/portal/linkedcombo/image.webp | Bin 3238 -> 0 bytes .../admincenter/portal/linkedcombo/image1.webp | Bin 1950 -> 0 bytes .../admincenter/portal/linkedcombo/image2.webp | Bin 9108 -> 0 bytes .../admincenter/portal/linkedcombo/schema.webp | Bin 6852 -> 0 bytes .../11.0/admincenter/portal/portal_card.webp | Bin 8432 -> 0 bytes .../admincenter/replication/cluster_info.webp | Bin 12450 -> 0 bytes .../replication/es_health_monitor.webp | Bin 7094 -> 0 bytes .../schedule/entraidscheduleauthenticate.webp | Bin 3388 -> 0 bytes .../admincenter/schedule/historyretention.webp | Bin 8980 -> 0 bytes .../securityrole/policy/querydesigner.webp | Bin 26424 -> 0 bytes .../securityrole/policy/search_query.webp | Bin 2718 -> 0 bytes .../service/dataservice/ds_card.webp | Bin 2364 -> 0 bytes .../11.0/admincenter/service/in_docker.webp | Bin 4404 -> 0 bytes .../service/in_windows_services_manager.webp | Bin 14476 -> 0 bytes .../service/securityservice/ss_card.webp | Bin 2436 -> 0 bytes .../admincenter/setupauth/access_code.webp | Bin 10196 -> 0 bytes .../admincenter/workflow/connections_area.webp | Bin 3220 -> 0 bytes .../admincenter/workflow/pa_permissions.webp | Bin 10794 -> 0 bytes .../workflow/pa_template_message.webp | Bin 2156 -> 0 bytes .../register/add_a_permission.webp | Bin 71284 -> 0 bytes .../register/add_assignment.webp | Bin 56614 -> 0 bytes .../configureentraid/register/all_roles.webp | Bin 72666 -> 0 bytes .../configureentraid/register/allsites.webp | Bin 10984 -> 0 bytes .../register/app_registeration.webp | Bin 66654 -> 0 bytes .../register/app_registeration_overview.webp | Bin 46994 -> 0 bytes .../register/application_permission.webp | Bin 20732 -> 0 bytes .../register/authenticate_node.webp | Bin 77326 -> 0 bytes .../register/certificates_n_secrets.webp | Bin 56734 -> 0 bytes .../configureentraid/register/channel.webp | Bin 14258 -> 0 bytes .../register/create_new_user_page.webp | Bin 33306 -> 0 bytes .../configureentraid/register/create_user.webp | Bin 43328 -> 0 bytes .../configureentraid/register/directory.webp | Bin 5590 -> 0 bytes .../configureentraid/register/exchange.webp | Bin 3036 -> 0 bytes .../11.0/configureentraid/register/group.webp | Bin 12436 -> 0 bytes .../11.0/configureentraid/register/mail.webp | Bin 10932 -> 0 bytes .../register/modern_auth_command.webp | Bin 18624 -> 0 bytes .../register/office365_permission.webp | Bin 42212 -> 0 bytes .../register/register_an_application.webp | Bin 59072 -> 0 bytes .../register/request_api_permissions.webp | Bin 69468 -> 0 bytes .../11.0/configureentraid/register/role.webp | Bin 24584 -> 0 bytes .../register/roles_and_administration.webp | Bin 74470 -> 0 bytes .../register/sharepoint_api_card.webp | Bin 38468 -> 0 bytes .../sharepoint_delegated_permissions.webp | Bin 16566 -> 0 bytes .../configureentraid/register/thumbprint.webp | Bin 66080 -> 0 bytes .../register/user-pw-phone.webp | Bin 10050 -> 0 bytes .../11.0/configureentraid/register/user.webp | Bin 21058 -> 0 bytes .../install/configure/configuresuccess.webp | Bin 29686 -> 0 bytes .../11.0/install/configure/configuring.webp | Bin 19438 -> 0 bytes .../configure/createserviceaccount.webp | Bin 11136 -> 0 bytes .../install/configure/databasesettings.webp | Bin 36856 -> 0 bytes .../configure/elasticsearchsettings-2.webp | Bin 26298 -> 0 bytes .../configure/elasticsearchsettings.webp | Bin 29980 -> 0 bytes .../install/configure/findserviceaccount.webp | Bin 17930 -> 0 bytes .../11.0/install/configure/intro.webp | Bin 20914 -> 0 bytes .../11.0/install/configure/launchgid.webp | Bin 16154 -> 0 bytes .../11.0/install/configure/license.webp | Bin 17864 -> 0 bytes .../license_w_existing_db_option.webp | Bin 21404 -> 0 bytes .../install/configure/securitysettings.webp | Bin 35230 -> 0 bytes .../select_cluster_w_existing_db_option.webp | Bin 19950 -> 0 bytes .../select_to_create_a_new_server-new.webp | Bin 28138 -> 0 bytes .../configure/selectelasticcluster.webp | Bin 32534 -> 0 bytes ...service_account_settings_w_existing_db.webp | Bin 36488 -> 0 bytes .../11.0/install/configure/serviceaccount.webp | Bin 40872 -> 0 bytes .../configure/servicesconfiguration.webp | Bin 48314 -> 0 bytes .../11.0/install/installer/eula.webp | Bin 138876 -> 0 bytes .../installer/installationprogress.webp | Bin 17822 -> 0 bytes .../11.0/install/installer/introduction.webp | Bin 26810 -> 0 bytes .../11.0/install/installer/ready_to_begin.webp | Bin 30462 -> 0 bytes .../install/installer/ready_to_install.webp | Bin 36128 -> 0 bytes .../installer/runconfigurationtool.webp | Bin 17380 -> 0 bytes .../11.0/install/installer/wearepreparing.webp | Bin 22294 -> 0 bytes .../11.0/install/installer/welcome.webp | Bin 38126 -> 0 bytes .../11.0/install/upgrade/1-welcome.webp | Bin 21728 -> 0 bytes .../upgrade/2-select_source_version.webp | Bin 20520 -> 0 bytes .../upgrade/3-select_modules-custom.webp | Bin 25390 -> 0 bytes .../11.0/install/upgrade/3-select_modules.webp | Bin 18868 -> 0 bytes .../11.0/install/upgrade/5-summary.webp | Bin 40578 -> 0 bytes .../upgrade/6-upgrade_process_complete.webp | Bin 14316 -> 0 bytes .../install/upgrade/7-upgrade_complete.webp | Bin 53964 -> 0 bytes .../upgrade/entraidmessagingsystem.webp | Bin 11860 -> 0 bytes .../11.0/install/upgrade/entraidstore.webp | Bin 12682 -> 0 bytes .../upgrade/entraidsynmessagingsystem.webp | Bin 9448 -> 0 bytes .../11.0/install/upgrade/reports_upgrade.webp | Bin 12012 -> 0 bytes .../upgrade/store_selection_for_schedules.webp | Bin 15520 -> 0 bytes .../install/upgrade/synchronize_upgrade.webp | Bin 14842 -> 0 bytes .../directorymanagerdatabase.webp | Bin 62672 -> 0 bytes .../managementshell/group/managementshell.webp | Bin 28930 -> 0 bytes .../11.0/managementshell/login-2.webp | Bin 17414 -> 0 bytes .../11.0/managementshell/login.webp | Bin 11494 -> 0 bytes .../11.0/managementshell/powershellwindow.webp | Bin 17726 -> 0 bytes .../11.0/managementshell/pssessioncommand.webp | Bin 6896 -> 0 bytes .../11.0/managementshell/shell.webp | Bin 46094 -> 0 bytes .../11.0/portal/addtocontacts.webp | Bin 756 -> 0 bytes .../11.0/portal/addtogroup.webp | Bin 896 -> 0 bytes .../11.0/portal/attesticon.webp | Bin 1492 -> 0 bytes .../11.0/portal/dashboard.webp | Bin 70358 -> 0 bytes .../directorymanager/11.0/portal/delete.webp | Bin 558 -> 0 bytes .../portal/entitlement/disabledfileserver.webp | Bin 8232 -> 0 bytes .../11.0/portal/entitlement/disabledsites.webp | Bin 11838 -> 0 bytes .../portal/entitlement/filefolderssearch.webp | Bin 7936 -> 0 bytes .../portal/entitlement/fileservercard.webp | Bin 2368 -> 0 bytes .../portal/entitlement/fileserverpath.webp | Bin 7662 -> 0 bytes .../entitlement/fileserverpermissions.webp | Bin 8346 -> 0 bytes .../portal/entitlement/filespermissions.webp | Bin 16372 -> 0 bytes .../11.0/portal/entitlement/sitesfolders.webp | Bin 7414 -> 0 bytes .../portal/entitlement/sitespermissions.webp | Bin 16866 -> 0 bytes .../portal/entitlement/sitesrightpane.webp | Bin 11394 -> 0 bytes .../11.0/portal/entitlement/sitessearch.webp | Bin 10682 -> 0 bytes .../11.0/portal/expiration.webp | Bin 1710 -> 0 bytes .../directorymanager/11.0/portal/expire.webp | Bin 628 -> 0 bytes .../directorymanager/11.0/portal/export.webp | Bin 464 -> 0 bytes .../11.0/portal/exportresult.webp | Bin 748 -> 0 bytes .../group/create/activedirectory/plus.webp | Bin 124 -> 0 bytes .../11.0/portal/group/manage/sendassendon.webp | Bin 12078 -> 0 bytes .../11.0/portal/heirarchy.webp | Bin 2136 -> 0 bytes .../directorymanager/11.0/portal/import.webp | Bin 464 -> 0 bytes .../directorymanager/11.0/portal/join.webp | Bin 576 -> 0 bytes .../directorymanager/11.0/portal/leave.webp | Bin 634 -> 0 bytes .../11.0/portal/managedby.webp | Bin 774 -> 0 bytes .../11.0/portal/movegroup.webp | Bin 1420 -> 0 bytes .../11.0/portal/properties.webp | Bin 688 -> 0 bytes .../directorymanager/11.0/portal/renew.webp | Bin 544 -> 0 bytes .../11.0/portal/report/reportsdashboard.webp | Bin 65240 -> 0 bytes .../11.0/portal/resetpassword.webp | Bin 1330 -> 0 bytes .../directorymanager/11.0/portal/save.webp | Bin 520 -> 0 bytes .../11.0/portal/securitytype.webp | Bin 1518 -> 0 bytes .../11.0/portal/sendemail.webp | Bin 632 -> 0 bytes .../directorymanager/11.0/portal/setowner.webp | Bin 1190 -> 0 bytes .../11.0/portal/subscribe.webp | Bin 2006 -> 0 bytes .../11.0/portal/synchronize/job/comment.webp | Bin 414 -> 0 bytes .../11.0/portal/synchronize/job/darktheme.webp | Bin 572 -> 0 bytes .../11.0/portal/synchronize/job/indent.webp | Bin 362 -> 0 bytes .../portal/synchronize/job/lighttheme.webp | Bin 552 -> 0 bytes .../11.0/portal/synchronize/job/lowercase.webp | Bin 386 -> 0 bytes .../11.0/portal/synchronize/job/outdent.webp | Bin 402 -> 0 bytes .../11.0/portal/synchronize/job/redo.webp | Bin 386 -> 0 bytes .../11.0/portal/synchronize/job/selectall.webp | Bin 576 -> 0 bytes .../11.0/portal/synchronize/job/uncomment.webp | Bin 532 -> 0 bytes .../11.0/portal/synchronize/job/undo.webp | Bin 410 -> 0 bytes .../11.0/portal/synchronize/job/uppercase.webp | Bin 404 -> 0 bytes .../11.0/portal/synchronize/manage/option.webp | Bin 136 -> 0 bytes .../synchronize/synchronizedashboard.webp | Bin 31936 -> 0 bytes .../11.0/portal/unsubscribe.webp | Bin 2298 -> 0 bytes .../directorymanager/11.0/portal/update.webp | Bin 566 -> 0 bytes .../11.0/portal/user/entraidsigninusers.webp | Bin 7056 -> 0 bytes .../11.0/portal/user/linkntraidacc.webp | Bin 6554 -> 0 bytes .../portal/user/manage/accountlockout.webp | Bin 9636 -> 0 bytes .../user/manage/changepasswordentraiduser.webp | Bin 8460 -> 0 bytes .../11.0/portal/user/manage/cp_loaded.webp | Bin 29554 -> 0 bytes .../11.0/portal/user/manage/deploy_cp.webp | Bin 31448 -> 0 bytes .../11.0/portal/user/manage/edit_gpo.webp | Bin 32408 -> 0 bytes .../portal/user/manage/generate_transform.webp | Bin 59482 -> 0 bytes .../11.0/portal/user/manage/gp_policy.webp | Bin 28478 -> 0 bytes .../11.0/portal/user/manage/locked.webp | Bin 8954 -> 0 bytes .../portal/user/manage/modification_tab.webp | Bin 6462 -> 0 bytes .../11.0/portal/user/manage/new_gpo.webp | Bin 36524 -> 0 bytes .../11.0/portal/user/manage/new_transform.webp | Bin 34086 -> 0 bytes .../11.0/portal/user/manage/orca_console.webp | Bin 10924 -> 0 bytes .../11.0/portal/user/manage/property.webp | Bin 58654 -> 0 bytes .../11.0/portal/user/manage/property_path.webp | Bin 59652 -> 0 bytes .../user/manage/software_installation.webp | Bin 26196 -> 0 bytes .../portal/user/manage/validateprofile.webp | Bin 8336 -> 0 bytes .../portal/user/manage/windows_screen.webp | Bin 61756 -> 0 bytes .../directorymanager/11.0/portal/validate.webp | Bin 1248 -> 0 bytes 218 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 static/images/directorymanager/11.0/admincenter/entitlement/ad/rc_fail.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/entitlement/ad/rc_request.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/entitlement/ad/rc_running.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/entitlement/ad/rc_success.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/entitlement/ad/replicate_permissions.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/general/admin_center_dashboard.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/general/admincenterchangepassword.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/general/image38.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/general/quick_search.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/advsecsettings.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/advsecsettingsfullcontrolcontact.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/advsecsettingsgrantedpermissions.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/advsecsettingsreqpermissions.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/fullcontrolcontact.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/permissionentry.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/permissions_list.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/security_tab.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/select_user.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/mobileservice/mobileservice.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/mobileservice/ms_card.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/mobileservice/ms_instance_deployed.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/notification/send_refresh.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/notification/tag_dictionary.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/accesskeys.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/accesskeyspurpose.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/accesstoken.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/addsite.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/addwebsite.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/apps_page.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/appsettings-full.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/container_details.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/design/add_attributes.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/design/filter_criteria_tab.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/design/group_type.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/design/groupcard.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/design/importmembers.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/design/navigation_bar.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/design/sendas.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/design/sendonbehalf.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/design/similar_groups.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/design/sub-manager_query.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/design/usercard.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/displaytype/dn.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/displaytype/linked_field_message.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/displaytype/multi-value_display_type.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/displaytype/multiline_textbox.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/displaytype/photo_placeholder.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/displaytype/search_row_in_grid.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/images_-_local_tab.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/images_-_remote_repositories.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/in_iis.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/linked_message.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/linkedcombo/binding_expressions_examples.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/linkedcombo/child_fields.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/linkedcombo/image.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/linkedcombo/image1.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/linkedcombo/image2.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/linkedcombo/schema.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/portal/portal_card.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/replication/cluster_info.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/replication/es_health_monitor.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/schedule/entraidscheduleauthenticate.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/schedule/historyretention.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/securityrole/policy/querydesigner.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/securityrole/policy/search_query.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/service/dataservice/ds_card.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/service/in_docker.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/service/in_windows_services_manager.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/service/securityservice/ss_card.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/setupauth/access_code.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/workflow/connections_area.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/workflow/pa_permissions.webp delete mode 100644 static/images/directorymanager/11.0/admincenter/workflow/pa_template_message.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/add_a_permission.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/add_assignment.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/all_roles.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/allsites.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/app_registeration.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/app_registeration_overview.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/application_permission.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/authenticate_node.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/certificates_n_secrets.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/channel.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/create_new_user_page.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/create_user.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/directory.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/exchange.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/group.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/mail.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/modern_auth_command.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/office365_permission.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/register_an_application.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/request_api_permissions.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/role.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/roles_and_administration.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/sharepoint_api_card.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/sharepoint_delegated_permissions.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/thumbprint.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/user-pw-phone.webp delete mode 100644 static/images/directorymanager/11.0/configureentraid/register/user.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/configuresuccess.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/configuring.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/createserviceaccount.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/databasesettings.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/elasticsearchsettings-2.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/elasticsearchsettings.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/findserviceaccount.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/intro.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/launchgid.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/license.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/license_w_existing_db_option.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/securitysettings.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/select_cluster_w_existing_db_option.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/select_to_create_a_new_server-new.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/selectelasticcluster.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/service_account_settings_w_existing_db.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/serviceaccount.webp delete mode 100644 static/images/directorymanager/11.0/install/configure/servicesconfiguration.webp delete mode 100644 static/images/directorymanager/11.0/install/installer/eula.webp delete mode 100644 static/images/directorymanager/11.0/install/installer/installationprogress.webp delete mode 100644 static/images/directorymanager/11.0/install/installer/introduction.webp delete mode 100644 static/images/directorymanager/11.0/install/installer/ready_to_begin.webp delete mode 100644 static/images/directorymanager/11.0/install/installer/ready_to_install.webp delete mode 100644 static/images/directorymanager/11.0/install/installer/runconfigurationtool.webp delete mode 100644 static/images/directorymanager/11.0/install/installer/wearepreparing.webp delete mode 100644 static/images/directorymanager/11.0/install/installer/welcome.webp delete mode 100644 static/images/directorymanager/11.0/install/upgrade/1-welcome.webp delete mode 100644 static/images/directorymanager/11.0/install/upgrade/2-select_source_version.webp delete mode 100644 static/images/directorymanager/11.0/install/upgrade/3-select_modules-custom.webp delete mode 100644 static/images/directorymanager/11.0/install/upgrade/3-select_modules.webp delete mode 100644 static/images/directorymanager/11.0/install/upgrade/5-summary.webp delete mode 100644 static/images/directorymanager/11.0/install/upgrade/6-upgrade_process_complete.webp delete mode 100644 static/images/directorymanager/11.0/install/upgrade/7-upgrade_complete.webp delete mode 100644 static/images/directorymanager/11.0/install/upgrade/entraidmessagingsystem.webp delete mode 100644 static/images/directorymanager/11.0/install/upgrade/entraidstore.webp delete mode 100644 static/images/directorymanager/11.0/install/upgrade/entraidsynmessagingsystem.webp delete mode 100644 static/images/directorymanager/11.0/install/upgrade/reports_upgrade.webp delete mode 100644 static/images/directorymanager/11.0/install/upgrade/store_selection_for_schedules.webp delete mode 100644 static/images/directorymanager/11.0/install/upgrade/synchronize_upgrade.webp delete mode 100644 static/images/directorymanager/11.0/managementshell/directorymanagerdatabase.webp delete mode 100644 static/images/directorymanager/11.0/managementshell/group/managementshell.webp delete mode 100644 static/images/directorymanager/11.0/managementshell/login-2.webp delete mode 100644 static/images/directorymanager/11.0/managementshell/login.webp delete mode 100644 static/images/directorymanager/11.0/managementshell/powershellwindow.webp delete mode 100644 static/images/directorymanager/11.0/managementshell/pssessioncommand.webp delete mode 100644 static/images/directorymanager/11.0/managementshell/shell.webp delete mode 100644 static/images/directorymanager/11.0/portal/addtocontacts.webp delete mode 100644 static/images/directorymanager/11.0/portal/addtogroup.webp delete mode 100644 static/images/directorymanager/11.0/portal/attesticon.webp delete mode 100644 static/images/directorymanager/11.0/portal/dashboard.webp delete mode 100644 static/images/directorymanager/11.0/portal/delete.webp delete mode 100644 static/images/directorymanager/11.0/portal/entitlement/disabledfileserver.webp delete mode 100644 static/images/directorymanager/11.0/portal/entitlement/disabledsites.webp delete mode 100644 static/images/directorymanager/11.0/portal/entitlement/filefolderssearch.webp delete mode 100644 static/images/directorymanager/11.0/portal/entitlement/fileservercard.webp delete mode 100644 static/images/directorymanager/11.0/portal/entitlement/fileserverpath.webp delete mode 100644 static/images/directorymanager/11.0/portal/entitlement/fileserverpermissions.webp delete mode 100644 static/images/directorymanager/11.0/portal/entitlement/filespermissions.webp delete mode 100644 static/images/directorymanager/11.0/portal/entitlement/sitesfolders.webp delete mode 100644 static/images/directorymanager/11.0/portal/entitlement/sitespermissions.webp delete mode 100644 static/images/directorymanager/11.0/portal/entitlement/sitesrightpane.webp delete mode 100644 static/images/directorymanager/11.0/portal/entitlement/sitessearch.webp delete mode 100644 static/images/directorymanager/11.0/portal/expiration.webp delete mode 100644 static/images/directorymanager/11.0/portal/expire.webp delete mode 100644 static/images/directorymanager/11.0/portal/export.webp delete mode 100644 static/images/directorymanager/11.0/portal/exportresult.webp delete mode 100644 static/images/directorymanager/11.0/portal/group/create/activedirectory/plus.webp delete mode 100644 static/images/directorymanager/11.0/portal/group/manage/sendassendon.webp delete mode 100644 static/images/directorymanager/11.0/portal/heirarchy.webp delete mode 100644 static/images/directorymanager/11.0/portal/import.webp delete mode 100644 static/images/directorymanager/11.0/portal/join.webp delete mode 100644 static/images/directorymanager/11.0/portal/leave.webp delete mode 100644 static/images/directorymanager/11.0/portal/managedby.webp delete mode 100644 static/images/directorymanager/11.0/portal/movegroup.webp delete mode 100644 static/images/directorymanager/11.0/portal/properties.webp delete mode 100644 static/images/directorymanager/11.0/portal/renew.webp delete mode 100644 static/images/directorymanager/11.0/portal/report/reportsdashboard.webp delete mode 100644 static/images/directorymanager/11.0/portal/resetpassword.webp delete mode 100644 static/images/directorymanager/11.0/portal/save.webp delete mode 100644 static/images/directorymanager/11.0/portal/securitytype.webp delete mode 100644 static/images/directorymanager/11.0/portal/sendemail.webp delete mode 100644 static/images/directorymanager/11.0/portal/setowner.webp delete mode 100644 static/images/directorymanager/11.0/portal/subscribe.webp delete mode 100644 static/images/directorymanager/11.0/portal/synchronize/job/comment.webp delete mode 100644 static/images/directorymanager/11.0/portal/synchronize/job/darktheme.webp delete mode 100644 static/images/directorymanager/11.0/portal/synchronize/job/indent.webp delete mode 100644 static/images/directorymanager/11.0/portal/synchronize/job/lighttheme.webp delete mode 100644 static/images/directorymanager/11.0/portal/synchronize/job/lowercase.webp delete mode 100644 static/images/directorymanager/11.0/portal/synchronize/job/outdent.webp delete mode 100644 static/images/directorymanager/11.0/portal/synchronize/job/redo.webp delete mode 100644 static/images/directorymanager/11.0/portal/synchronize/job/selectall.webp delete mode 100644 static/images/directorymanager/11.0/portal/synchronize/job/uncomment.webp delete mode 100644 static/images/directorymanager/11.0/portal/synchronize/job/undo.webp delete mode 100644 static/images/directorymanager/11.0/portal/synchronize/job/uppercase.webp delete mode 100644 static/images/directorymanager/11.0/portal/synchronize/manage/option.webp delete mode 100644 static/images/directorymanager/11.0/portal/synchronize/synchronizedashboard.webp delete mode 100644 static/images/directorymanager/11.0/portal/unsubscribe.webp delete mode 100644 static/images/directorymanager/11.0/portal/update.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/entraidsigninusers.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/linkntraidacc.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/accountlockout.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/changepasswordentraiduser.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/cp_loaded.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/deploy_cp.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/edit_gpo.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/generate_transform.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/gp_policy.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/locked.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/modification_tab.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/new_gpo.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/new_transform.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/orca_console.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/property.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/property_path.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/software_installation.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/validateprofile.webp delete mode 100644 static/images/directorymanager/11.0/portal/user/manage/windows_screen.webp delete mode 100644 static/images/directorymanager/11.0/portal/validate.webp diff --git a/static/images/directorymanager/11.0/admincenter/entitlement/ad/rc_fail.webp b/static/images/directorymanager/11.0/admincenter/entitlement/ad/rc_fail.webp deleted file mode 100644 index ecd2bf7623c4adaf4029f053e64a20f1a400ec0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmV-K0lWTENk&FI0RRA3MM6+kP&gnk0RRAy1^}G_Di#0}06tM3i$o)#p%@GX05}B% zvH(t*K-d4WG9nrMee^`?RvU^_Q6RYUYpQgz@Pj3>{w*K?0RH~%eJo=x05_s`@T))W zYjpF8!P$YZU$ZkxiuqRrQ{&o7Ge0QC*tUgRA20Lp=je%UaNlJ;ef@Pz6aVF8MN-d; z(JlT%SO-dgCCtusd@xCbmzQt*g(Z3e!rbN`MfkjGTowl zgH!X)Df64KD;L_YKjHi8EB?g-EUCu}9nP7?9tlH*YJ8g^zQTl&pybb{BQO2#i0qes z;;<0)fazrgwh<8NLOhd^4-5EUI|Zk+L4`cu*Zsa`1LLP%p7j&k*L=MN20RH~$+2a(&Li(gM4q@0fLiRkde1;MN`(1Ue zx_-8_7Cj^Yvc_HRidLnT35bn$Wd-+E*yv*7fy$qE`EMmT+R3Das2>3z4Z%i#D`-9wXWy*c8rRdV0<03v@3k$7P9*2k7SE;eGo0001< CzE%zZ diff --git a/static/images/directorymanager/11.0/admincenter/entitlement/ad/rc_running.webp b/static/images/directorymanager/11.0/admincenter/entitlement/ad/rc_running.webp deleted file mode 100644 index d67b2c2d8473a09c80a36ad36cafb8446ed73f3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 254 zcmV_h|Dj5J706tM7jzuG)Aru8vI0Xc< zfLes41i;fX-cWC>`by^eG2cD^xc315EBx2|&)UZzr|DRBY=`i1bG%Tcm+L+T?zVgj zM4Im>3;+QB{_K#N^Cq$kKVw?#F>j6z>zv?ne3*e`amblIr(A&X&91V!$RSY^ zRc5@frZhbl<-SE85<3H_Lcfhj-d-@gMPt|-Q{TGX{MfOR)-?`J56e5JD)N(%E^qvmnSbE%f0{2d|Mt}9aGJ-6?u)#J>0 zJITTe{Hyru^L36S_pvknu1ERJiO_Pyz~Df-QS;WeGyc)uM0#H|WES%&0ww~cKmY(g CYt1|W diff --git a/static/images/directorymanager/11.0/admincenter/entitlement/ad/replicate_permissions.webp b/static/images/directorymanager/11.0/admincenter/entitlement/ad/replicate_permissions.webp deleted file mode 100644 index ef4cd32804aca0da028916969e966e3178f153ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 688 zcmV;h0#E%?Nk&Gf0ssJ4MM6+kP&go*0ssK;4gj42Dn$Sq06tM9jzy!QArYoHI0Xct z3+KOE+MKr8K6wo?z2grk3SDnm#{>H|W;}DB=52vY1O11SFUbG7|IhaW{y+UM{g37k z!Us|Z=;>0}m$p#sdD8rHFU46crtbc?;oMc}tjAp+ zca}Zz3z8$wohlA3BPa?iy3@;TSge23#j1FgFO9?d5?Xqc2cIqDweKSQV1KPE(-@A> zci>!p^**SsKaW@uSwK7EokR}5t)rR2>8h@Azxd^qj~m;4G8l#0aXkiY6cp&>FVD7y zlC$-D^VvaCe=2&D@RWXk@ahZQW@-G-evfAAt=RSWOX6H9Cmtl3tN4qgQMB?_LFZ(M zAph^m;dIh)Gq&+Pd;yHG@HoG!1NXAzvaowgPjStJbHyZZRi?OK@7*JO&i;p={&w6L*>ze{S1W>3AHJGakD-)^K4`K%uU7gZAZdMbr^$ z@2h5)?@eYp>hFLrEY4!~@M%s@v7w~fu0N`#C*SX%ZPiVta-PEe8cyI4A8(KTb4mLx z2C)LS0sh-h-RPyBHXy2KaKAsJ&;NF!xY7e#lS^ek>$GmJ*!`j2Nx(lm&F>4K45r`^ zE903~&|FAX!kr)NetUcsQ=DaCr+9cr$TQK$Jx1IV;3}T&ca48*7B!rW$Q%dol`P~m WYw^En#jjYki|@_~&Dj9C0002cRba3H diff --git a/static/images/directorymanager/11.0/admincenter/general/admin_center_dashboard.webp b/static/images/directorymanager/11.0/admincenter/general/admin_center_dashboard.webp deleted file mode 100644 index cafc87de06a788f990e48652636fc9c5e2d97903..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45522 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 diff --git a/static/images/directorymanager/11.0/admincenter/general/quick_search.webp b/static/images/directorymanager/11.0/admincenter/general/quick_search.webp deleted file mode 100644 index 0ddb1851e1011cdffd7889be0f8ad708cee11c11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2706 zcmV;D3T^dLNk&GB3IG6CMM6+kP&god3IG6bIRKpjD(3*b06tMDkVYe-p`ju)3K(z- z31@EMbfE8oDnTSnY4bqsL*jwb+xF+w2khspkNHniK7b$5I*PpjJhpw5e{=tEJ+d`r znHTz=i0?Q_sFr`&c}d=H054MS5a(WCUd(*Qz1#dRLq5g-s`OR!`~7c%*V;e8djNku z{>%QW?$hay`hWfYR(_@S1^s60ALzgPj0#dEaxo}6=1ZNHE46ZWcXxMmId5q>`biG3 zG@5>MYa%f_OH*BEa(X?u%YhV$XpdV`^0#^pSknjaNfVtHU)q<@UQ!2tJGqAn((oLx zt>Uzu;%(>`3H2=-%~%#!Fv)u4zSqCWN>{2U^A(GfVE01U-e5ruf`LkC!y~esvmIB? zPU+s!Y9Rxmsh1E(@0kd{W~hXpv4Kv?_i^V< z`R3xhB#w^i;5w{f?chK>)ipW)n5rzOr8xCJLvj2p= zy%N5pj__k?J_Z34(~WXJ$2m0LeyA4-^`HO%{{O17xLhdHh(C09Pto=sX?G4HCWNad zXevzQAGobsGZ)P)%hkXO?F_M1*)6cr?JRg$a8>^Ys zTT11Bk~CsFo0_i&Mbvq=8f+$+$EHizoE!{xZzy*HoCVW=!i=BmZfYdHO|V8_+<4_>Jc*&n%{$dx+nS{XSyk? zMOre8&T%}8eo_(UcT<1-DC9)~VS#Eh-ceIHvI1Y|f1i(jzpN6tAx3*p6TfR6$Og4#;oJY(3(|ojdcxm?b;C86Yd<1;QG%PvzEZvFwMRe+I-c4H3UT7h$#0n0F90YXW`W7X}&IG80J{V`Sfl zR^J14*v>=Kw_Rr9iH*)dmaeYKLnEX^BAx!Ml2i-{KT$J-9@b&ZhN6jhH5e)%9MB=w zUM>ZJ;S|~g!e^|O9AVHx`xrT2aZRsx0J4?~M{;}8s=Yov1!SHJ->9DqMF1MiH8yai zKthcrCFrMyxj^m0ijg!T4xPX{wx@sk&E*)?fYh zc5pxGVcGMuNp&y8+YInm6m68=?)G0}u8ld$m$(#MBZYdN&}I8a!z@G*y3OehM;lB%wjxJIDj}Wt8`>X6s3~|`fCan8orb8fRxlF( z!Ft@{@{`8o+^Vy?8+UjzU*j)&_v*H<$r&@jt_Y%kqpkUNY)n9f`SVZWhsQ`Uq#}|P z`zi)qpN|isohsjxW|0zX4o_S7X?}R*9epH+>zm%{rT-Yp1zKO)Y?Kt*YyFF9vp^P3^ zrO^6S=6&Y3h*!-rGspNvRf=rSNZ0Zg(cL};Omk(L&d-}f6bnYQ*82iP{EU$kFSBn8 zXaBRFltzeJ0Sf?CpZLJcc{CUacuRm5_mIjPZGK>t79&cA2Hvh-&-HKY1 zn3G$GZ8v{*p1-#5X^|AP`oKk%es=lZXxzXrn`>>E}KwkveU)S%CthZTrRh;>QjPgdm)dnW&o-}_c`k8qmJT==SZAQc^cPnn0gC+3H^m@ za7DrwW6x|B@=+Ro!%m{rhC?}DFz8p@tSOvOAd)m$%~ zmJg}eX4+*ejLG}Yj*L7Ky@`o4Z&g!%Y8#RCr+Avb#5d3!7ks)yC3&~ZU?$Hml#08> zkuZS1IOT8hcVTB5F}c%oW07erwk}TM(NWxI)YBS>7?k`=n@1FQTU#@x7o_dX{cxi^ z_y}1kyG1jhorIsvV?U7kIBCMt&`bMxb^g;y!S4?ZuZmXxZ5Dcv@s{;STT8u&zuAI7 z4Spr=VIzvuQ1ehhtoSd{kZ=(VZQ5X$*fBlDCU7v6OCf)Q%{jkM?%rDum MvE)aGAOHXW0P{IhDgXcg diff --git a/static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/advsecsettings.webp b/static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/advsecsettings.webp deleted file mode 100644 index 4bf487010e6babc3af5c0aeeebde3bc3036c703b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56642 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

C^%&B941@K#E{XDE9eqC2mX}c$f9_+Yd~y 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 diff --git a/static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/advsecsettingsgrantedpermissions.webp b/static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/advsecsettingsgrantedpermissions.webp deleted file mode 100644 index 53a4224c482ecd9be25801ea25357696f60c91ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59358 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%0Dh-~dl@&=IC zRT_edxFPU+ci!&r*LEW~fwn6sG;1L7?1&JCoE*37A4mR$sX4E|f}-xAQt}J9T8vhV zhDhBFhWgnmlxc%Ie_-cgT}`^|!~hCvvyx3gEa!5u87EWwc7nK9^P;&RGZ4o=)lTTy zwfCL)-YYqrld3Xi&lprl>|w~MO6SKQkUIHsR07I1zP8HI>b@Xu;YgFwaFa9&px-{6 zer8c3o#XnHOtu-dg~5^-Z6IoR4gTQ8Fb%`vGld{}cDi$Ty!4Ka){;XCD>VVa9BNuN z!hqC0gi@38;73q+^B%O1sYkLuW-E29Oik}V0!96;a}veU_|vvv_bgbGk?Q0~yBT-sEx9PR3AV{CMcwCnMup~+l z`uw!30Swv?FrEMiM!={PxS?T%rZl;WboABc7gMw}N{l{pYU9u19XaaA8uaJ#Z<&=c z9I)tYH-6<0&|YX_49>uhp{#OuhKYRgnOm0FnIQBv(t}e<{E8CjvMz%CoXF`~u`E_! ztLhoH3TeuYE5@#{J(06?#z3Vy6Si3_$d>3;QK3B2fAj9xY*(zFa|@BjNhwG;2s&0o zXDxRPrVgasAXFdxR+<=hAX(Jdd-m$BR>O?y# zr@NfFc7>4xJ!YY@^x@echB71|) z-}G^@nu~ctOA@n%5ow^jg*Gf@9r6onRPJdFUenn>_3|P)3>3+2@I;KNy|yMOVCF{k z6R3IBtDzzN_12fk1U60c7ba-d=$BD`hTmg7 zZ{TX}Nf7vo2A0b;v0aa#R<9-_pn>r-s5NQSf6h~~xw(S6e(f9ys8{#i;kD*4J!eNvmJdfhG(48>qFB{8~a zmAntvZ?6Ff*L@+-PMeH@EjS507HiPtM6HG^BsvhOd_*4ib*^npx9S+9Q^+G2+uHv0 zJ)`eKWyuZ7-H|E=ul!nQ$UuXoWz!f>2*9cv2ewhgZBnaDJ0YN(evVa4&0#ThnGusm zxM2!InHh{HC9cc%gZWo!QvBY?Z~%;+zdQuwKI$pUEd^hW16DHv1EuJ~NY95!s!I0L z77IK`Qh`o7Ga?@D_pel;&n--&L?~ou0sR%l_`($c6L`=Go)m>gh48=01Rh!|+CG1^ zJR_pnI)cNKQw_ipBhpDk$N=1wyNbX`2zU0p%G9h{TiG8v<0#LG);0s(8VVThy97%W z8El;LsKP(dSzPG#7lgA2$>k0udoD)o$kh5>!h+O7E5im76i_DO>Pp-Q0cuytlExp&VP4)HNE_f7b8R&1gMCY0tIRFfQd!Zo|Se@G?*W*{>CGR7B$6Y? zxI|{>K&Wxez5^Id)*IZ&cTF9qrF3uT;my#YC06h{iKB|PWaF+MdDi0ssZfsH<}r*A zk6|5YJ0p=|bjo^cknaGN*98&qZy2_W=ez`yfbgan`L2hmGpmjAZy6cWB_GV2b7ooD_}PD^ z!Q5Kuwdx6cF6Pxg;NEgnhnRh#lm#rJg@qZLPGyyf--X*ThnGIi z$A^bbw-1M5BrYSUhsC_S=Mz^=R@+mkhV#TCR81B;qOw(uj)DE!1IEHiR|(|(fwr}oY(M%Ld-n|+qyzRBGgyR;c2)OQYAT{uw+o5G(e{b3(q1d zW(@1&k^!f)%8}#}FpA4tfD_Xou~yz_IbNx*q>N0@OVVlecLut1X_ggQR(Lz9BPbdZ z9+}PtiNAG~&;k=ln*X0n+PZTq>K5n;JYjEZVD&ZS&}}RZ%z))WBY&%_Ar*G2 z$FN^G?*}`EZZh&X7^*WoVs6IZ#c1^R?7s}vfS#>>+8yw}lY~WN?g}r)F+s7aWG8ufmCJa-~uD{40Ob;_zhGfgVShDVgle1IukUin#mb z8hz&dc_l3%b;$zO=;IGPkq> zx%H@@4Qp16jv75NeJv2!7zIC0qgl?Dk;)?$=*7__{GIei{xB4Z*lk#E0CtNNaZ+Ux zefdv(@P=~m!|8`@yV!Y7a&4}3)WivAZxSFJL8J%El8P~RB9%^Y$z|^ z0+Bg;3>YF1ceP(_TWnAOtTY&OwIdms>`G%BJJ}s~1K*KJzo4U$Z!xDUl8^ zGrfWp3_^Z;MGw7k)>d1*IlF&IabosD)cDPKb@ndBQA+qMO*%x~_w|6DTkK?)4JRkMC=;cvOaFcDj1kXb$j zO!a^Mz2pd&nss^L9%aEzaCOrW8Th+F0-6Ix6^*Ojr?38Qv1eVY^I228f1T8Dx!i6n zLxsZOsYY~I2z0+f8^+vHK9!O7QbYBk5{<=QnLXPtN!?-b#pXRxHzGPx2b~N0 zFQ{i?3<{n-VSO^#%oDEVj#@ryg4fFc?p!4ms<;1saGIY@PX-bDIvrL@a_V39IwP7| zarNnzK38myC}-0kiqW<7+=MnZPFs;>8~-G)t{4HoP~KIs9h`Ia1+f|o+8hx&6*es? z=?^D->8$8#9x|p&p-)+Pct7RIeOyqtds#}I<5i8ujg}D#YyKACU0%^{rT!N~uqE4u zZTDQf+5J%Kbbh<^0(~n{>sw;OQQm>D;7c&US_cqo>q2V>YPL_L5xp#`nh8uQE>Y&P zT=0N6S5IXg0EMKPir=D?m0K-Bihh`hNOt_+-~-%Iw95NWrOYKJ2IP{M%jyfz&~G2N71X8ZaF4Kg<3G2(njQ%Lcmo-5ZaNX8?ZJ# z<%%QD*K7R=&AqJr(sQP3ugWZ5QlC(j$_*Q2`|r}VFldvY+PpEf;QATLL3cPAKgnkj zr3u`AMdgdwMa5#2u9YUD=oP|W==Mn}>GMqNI(rYVXjL_QMRTN>*6mAG!)}vU5(3F4 zGGr6QEmu3=_}Rfp8lO6v#bNuxb-+KhAoA_y?=?_fwgAxbLyy9!?>jLe!kxEU%+2JP z^lAWKVB5?Kyk2n*0%-PVzuUpuQvO&FQ}=peyQ*Nt|3;oAyH`Q9`ql0HS!(YU(*8JnaZqh76%Lp9;Z-i8aW6Fa9mag2 z=fD>AJxJr~X2Ix`AGHVLl#;oHh@WA794YOQbm?z~sk(37dZb*y9tjhf14i1wIOZq0 zEZSMEPBo#|@wDdGi-Xf#oB5Vt_T{Bd^5K-6da#g^TFAc6-Y`wU`==PYp@sudG zI@`9FD+n*=^s^~pDn``sKdto_o?D1kKjE&|4n$^S<5&pa6cfYE$v@mvM^=)fay)}; z5Rg9DDTh8vVQ9yv;zlnv-@szWnGTFfuT8POw~270u+Mr zlAOi3Uacd_zVzfX8XahauZceTS`+%qCy8Aq%8_KZ^SrMFutAGs{U~sBl1TadV~TAM zl1DNPS>dUHTMKF18cy(3{Xt{REXsJ0ESZU6M4uDyaZb{NAhVEtlG_JE(p%`d>FI}7 z0bg2)2f=*7swP&tZ=LdfCw__A zFTC3jU*P{71V=K{73f4;L0XBPIw732b;J;e8dF2ZnBcu}TrU8#g$-~R(xnj3lIExe zeU1$&)Q0nwRD? zrtb}<0>EvEghE^_@8@r*HfGxsH6@7O4F#tQJ&}fU2xHj6s+G|M9w|?{m^e}~(5e5T z!l;c~Gwo@NT=p{jBQ)^HS+lwVxCrQIE0*qJ@d?b#?;6>jt#Re1pr=XFAaY~iYOl+$ zstT5fy{jdFCEIFQy|-+pby7!Ys!+pL&5_9AtRB+v zLo>kEE;ca$RZHHFLAQQHAgi8wR_!77(>Ow{&zJR??${N2)AZq^hGUn;J>L;VMS%#)eqv9f zzmEHcUF%>A&|K0!c?|+IH6g#oQOwl*uDwKB&AMJNp~#|`oBXSd-nTg=;RHqny0tIb zNK>6A)bq>* zHA>D;U#l%zzw`xTT!FrEIa3wqX{Kmwus&6L5#C8wB(h?U@W=e%%q0M)wglQcmjzcD zn7{yDhH}!Xr6-VTU!I|l?XN=r^$+}i2WqV-d@NBu;OMXcubUHQP0R?M#SyM!{^zhc zfANM+fi?^T1l}xAu7vp4@BgKDA|qk}K~)n3*@8+D)BjsM%|>ggW5x`P9A}*qf*C_T zC=|2_jha+=mJ0YcVZw1qJ_N$)l=QETexG#E+9BV+@Osd%#Y;i6@2b27BR*~+xl$s_ zuL2L%%KZnvAW2iKbv+mVU@*P1^RX#!5hC8vwx>>>LDX89s0@oMUF%T;ZE#~7o{J<^ z_%wQ^xPR@lD_5U75RaCKdk%9qxNx_!4ytIy9;{|6gf;Ttzithv!;6L%^eZE~>O!;p zLj25Tw&!NUC5iu{17o##qXOr73hJ#pem3|~a{to*iZ!1Yqj=v_G3fg9r_qcCgdi_=9a9SS#6or33B|47Uj!2=vrgzWDTIny6 zITW|+>nqgUiauviid*SP!6>EnEWvgxNJbDFQMwiQ_pwBJb+rC+O9VYOYB#MM+43i7 zXXM}QT;t%X4;UbqZmAuVWN!4+w861p$eN53k9Qi*?!xI~j3OtbTt0gCCtoAL(*^&P znH79W6outzy161d5ZR@ov=ek(WnBCwgC_8cf%5@n^F9;=Es2)0OH&1jH))*n{dWLv zX2T-6A}Nn9JQ&<9!`6JP4%AxVzX{%d+7A6wdtBk`SJzT@b)5xFMQ#>&U@{l1>D7h^ z15i4^yu!g0b##_gJQTA4cwuLVQ%J#DZW}va1d3lgE5SxC_# z7kSa&?&js&CdRLK`t0*-9tB1~TIuHb{{>z^p}%6Nu|tH9hEPrKBsoKR9co6k3JxIA zi#pC`Azk~@&al&ids8ARK+*yP?UVRWveJ! z`GlHE4iN1j__SJHXpA#W;K)dmeUVjn7{&e`;(@bdk57m-p!i@iOxOG$UXw-f-+c5y zbn`yK=j@;<>1n_cPUhozRz=No65I#!!OjjKcW5320&`zu{xk0kE4g997DK~)agLCM zb4ad=5p6Altk-~`^x{PE7(jn>`Cqt19Z9I+Fq;Ks$fag9dL>e%Ql>`SPGDiO;U$P> z{X}ffv7cCVs@LcAhLUF?hDC}NZ7E`i7bquG>-6fr)Tin^$toD}j!^v3Q=zGcTUhg= z=gvxOfVHy$4fJDHQPpAr*a%_6OVW6q7P=Wi22#(#zJC{u>sV9!|4>-c3FCE9$?^We zhH`;rcL|ya`>y}Rr*#CffIIk0`2bsI|J?d}?^1G3&{`lnK<@xG1?#_(#spV-tzP(-g+kN ziWzWFZ-!6*;n}rV$U`eKN%NMqn;)CdQ#*0%KyVipIv!#6h`a>y%~{`jA*+^S#2P6D zi^=fftk`zwH=>1YK*Kz0Z#Mn?s!;Ck(R;5U;+V%WK@*>w56{H39;h&#(~j#2zT*^LrFX?n$RrE#Sa`CT7Ai8B1z$!)=T#q#<7B8y><70) zJ)lN}PuZQt;eEa0fs)*e|C|b(im&koq_evZLVC3X-(23QLGzE5OuN5{li`xA`#WyF zacp7vu*seabEB``Ikzg;r#Py~;>)^U{0y_aq0Q4v;8Svx|J4^pWvw#|n=i1b&z~OB z`fK6&zBC{~pR(#z8hfK)n#PnH)eH9|?cya9SvH4ATWN)JRlF|(Y>y3AXc$)>LB zpM7Ze^WfJ7Y8}~smu!>#@`Vv;Omg?2P5si7kvROu+9R4QAldo7&p}?e)bBYvG3G*K z^7DWU#i^7;*sR^&gRDz3?WCNX&*2iR&?!fQ=peG_<+u+;wcs+%^(Tm(Bs-^K!bD^Z z;v-vmfDjE?_=1lojC%Lh27L4C>#FnMTe$@pv4?QIw|$g*kR9ij7G2| z&K;OX@3Jtyhf-45SeTHGR*~MoZkh!}?FRw6l7DDon1b>k&dAv4j8JN_ zV{Y^aSJG>m(z^OQpj@J}|0Z&%|BV$5z86vhf`)3ta%38UW)JnEh!+&MKL7Zq&YhdO zfr*QZ(b)B`@QhjEd|Z6YPcPU(OWzh9y04oBXrf;QkTgIV8YN+X#TG=zXB9x&buwr} zKg{3;^FhLMnAHkorD!qo@ICUq2+k$p7a~fzkE6Q9cMrh+Mk-mb3j$-o=~#$i&`BUQ z!m)VOK*jKx!GBllQbPV7esAY>MwCi zQgdT4rW)NIvIJlep_JGr63vsz7J?rhMmZv?fODopAE7ZFB|jL9irK7LHbLgWOs{h9 zGuY}+`7QRBcQgIt9e-2-yF-3~3du|y_^$97WG(o_PAd)rPEQgo&WwE8TRPFk(=PEQ zRX%)ol$}hGPMPxmGaYo>w85Ax`1vb3ip9wsd*|LFu~9^%%lP(ky}WBoTsA;R*c~Qg z7*0FA{E6F!Du2U-AK9Eo?HVept@hbb?0Q(yvnMwzV-aBV3xOrEaq0XOQ;g~|>7E1~zN%W~}q(FiH8!Ls`Pt6VndctgbQ+Z>q1t?*3W zC=A6%HOA?6Me3xW?4(`(ArNbU4o!41DnELJmtxsr>E~1PXY!>=#>*i^QKTEeCY59_ z-x7vWr;^ZjEX4$VG+em%szw?OU+}fyli*=V5K4x8vLOV3x85srhM5(O^vCF!+}LSX zJmQavg&h}wSt$MkK7WBUi=QJsyVUaQx2U;Lw(1_GKaD8b;~zaJ8BM<|w%(0=tLJo+ z>_Kdb+zcP7AR(&rSUqBA;eEcpUt+6RUpx#vYFr= zLEVTWHE#)8t_&tSKJn0H)&nb!#KA_Xg+XRkYeqv;`-)D@;Fq{Ly@yRNe9y_1GX=WsM? zCxYcA^tq_BAED16X!I-Jl2rXDIe$3EQ9UW&0B}%EBXtk7ifKEYfnf#uf8vAXMzd@rTy^mb={d$?l!Vh4c4*@z&q{UY>ON z$Z95(MS<3fG*l*1d3+V@z|V0JhOQ~ML#Y;b)nf`MI#)z*Pv$BRCYyW--oOaMhqsa@1hV?nkiazPE`#^>kF(h@t=v*>T&Oy-uB0AR z0&Y1Hb%9eEo^}D$Jd`)>y)*BLN@mLfj18QsNo&X)?$1!x6km+niHsiRG9ls zePcNHdq~`9#~a!K8}}y7$+pprgc>whyOe=%qddjvx3*RRmJ=^_SA_=eO*skxa7MNY zn9z3KQflcefdQ0QR${0-(0nRIQjvoYT{9s?%o{ zb-u7o_w=K6KJVUbX%V;~V=wXIN-_h1)CB^{jLPhuO4gJ0Udb01m`KOCwhce_VTdy*xm*~5e_|FHG=%8bA~m`?>_PSn0C}%YQ8qC( zxbu&m{>gOBYN6&;tS#dXk_X!4t=g`5JE3n{GdV#1u_GVc>vf$YPsN2)jfqcasvEbj zZ!oBd!4Q+NhE#%M;P2=#70~|cWy;?&1{3VboYF6=Y;qC2r&kB2i4lbfErk;RY)QAt zn@~CBNiufjpyV?eRIIgc)~~CneU(54!+vtbZ*i+G21S;%&;8NgwuYvqqSf4p^+%qo zVydIqaJbIL(&s6*zhMIAhP5~brj7fz3G4oF~6#_~+AU1>=Ny;OI>_YajNGV z)og@HrHz?DGRO8thi}AqPohWUb-$FJfv9je@d@eqHt+C$20IU493`gymY}qvvO7h7 zM(=aOEL*0%tpN7z7ldFVjq`G8LncW$<+xRSPIsGDkI)}WVHjy8kJw(-KCSOM8vNI^ zQ{*a;F&CbHY8EVPAU`$GI%EiVK_PO zhPk+I1u0HaU6`IflujfzZT3#C1zpob@dE=Xl2i$E@cwzRgBTHoEB+z?ToLj$TRIOe z20xkBNdW@c0Qm4@dfKXCUWVR-(+ZD(LXFw{GkCD+f`(|mEg%A>YR2~Jo5PXLw8p*b zl0R>%MZ7K)l|sDL6IYLpjjdUvaQ7^t(K-6z8XMRGYS5=+%+>&9`heu8n(tt0Ts;J> z2T!823=HMBkv9A01DWdfCje_pk(i+bN&O(D#^h~6Js!kh+6RCn#`tjmBq5ZNthPLy zlO9uwm|gnq^LD0A+gY5G%zhqyal$7)N~z)S7_QElK8az6*pe}+1!A<6tZJe`oxv;L zZVD{KXU;_I5?m4)JsVG)#fKFaC8Y#|@f%rNwl&4}V82q{0^ojUIOS<*InTiXaltq!w;>;p*tOo^|{bt_K(uwYSPhaOL-O<|JqmIJa0ez zE#n;3Ae3XE@>aLCgMwE^!(MEJMbmS%o^-TKsvZvLN?TdMm<_slZT;-Ix9)msooXmQ zWOUzVYZaQn^zKY)#m&&?j03iq;cLHKU5<3L{5{^~xgPBfk(*2s99wpltUNQmsglOK zsSsXfe^v{&V#T;jWjvg&mCMaZ?QLyzpbvBr5M9Ynd>2X34@xllgu|N0@z(~Z2#pp` zwSulq6AB61%BOhvXFEt%tW^5Z9cY45};*I@9pA<@9q~rYuwN5N>)a)h1-uUVdV;8UdYfp~Fa~HG6@?V-#1SF-!kF z|1Gxzmazw`7FXvlrDS`Gfi%ysIf<0TkgB=B#gS)!q+uFO7<#^9kTtrvd7 zD5jJ5X~9+|u_A8rZK)uASU>DSYhs5gDmOk#sp0S#t}z~Guau~*EPcTEh)N-<{jy<=sX-coaD|8kPsTY6*QBj;_CfPzyb&wzi}9NB)y&X z#lSTEB7ALMj-U21*6kPVW9^rVGd@=ppdKn5QweBT^IV{FA1=}i6a?uSx|x+AW*YHv z|CMSMuwkMD3Em4k@fby@7dd zuTazE@jdc2RzK+9RKVeo{CBRTb-EUHH^$xMd$33t=Fa;uhjgctgF62^plN*eHN24nAB7d6 zV{P^-W!n1S2Q&eQ=3**9E`^~ZRlALK3$Alcv~vxWe7J@1=M5cixL+ap0Yd}mG#hhM?|ko03QC7~P=? z+^kWfTW4Pq+Wtrq-yYm*PolyD<`pKIZBhnXo%-=KJ2|nKwt7F0big|NThFXxJY-6r zk6vRb^g;mKkcr$<-j)%(xHl0r zAA`m%>J;x5F(Z3!S0F3JaHH~~) z%1d6|a6PWeh? z*iBjPPQFdy1Un@hpG(ej)jRMhnz$z-0?nJc8?s(oh<_0OzUJVqnb(<&96k_f0XJ^0 z51`r-ixx?o4l;bCZRwSfVQV`gOX_<9L=BX0gGtuM>XomDk!e_%|0SX)N4VRD1ftqv z`ezgs@#+VH@WIWXeQ5D57Dwhi>1rG+PGZl6i7}R&&95d$YI-SY+Rr@v=q|+^;fApSWr714_{ngc6 z*^O{Q$ZY^2?jZ04>(z)~^;;8PSEK+g5K@W=FqYEEE$ywnhwjbnWMc}F?Ml{YQGjc@ zevdbuwurPVCT@}~Khaqf`lj8}!md72zwlgRN7yDjYwV_F0Vrdp$rA^B+y0PtEuIe} zHO~D=s}O_@2mg=? zNvw<5fCZ!ePS?RYy&+>z1*2LY*UciPB+;AuS;c9fKpKJ+yg0@Ck|G)obR2Jtt8I(R z6AwCJ&R~`Y{qU{F{BS%B3{Q3CJYm4nlXx}bHVFr2QlVO4$^ry zP`8|BeDV;$&AY0KHmU>D_&HYGXkjG!0!hnAvWV9}Ydbt(VsETy$Zc-3)Z(RAyJbEL zTvOzMa)zW5kbW`+H2qYrU+4gvp|!Ie@-&NGhk2en+ATtI7e^HIgKf1%%;Q@0kSm6N zX%eKDL2!qMSPQ}N=}VrTk)zP&EjO`Mtb~L-TEpOwWFJBsP5#tzT=~oeMN{59` z`%eCDG*DdN7dXA3I~NjHYFDlHsM-6EtcL&e!9ETp;)3yv4+TRaf=`Z)6W@P_A%kC% z@QJi*RIeN zGleIQ%ROhVE;PC)(p4NIuTp}_e+89>`&dZ&bNy^LYij0)@%T1xvUgK27ZKp_WV&$H zZ!>8O<)yyt?EXiNnAwAt_|0K$4k@U1?ghQu%iWEQ!UE6#G%)rz4NrHh7ximaR>@l| zNOAvp{k-sb6=T}-@H_`PomU24#?HFM)v`02PQ4DN6Kj8kR6xe~5OI&qfXZ%$_hOMGDHT!@D7OD%oRwIbF9 z?H@T3X)B+j-Uigs%AF{H-z;a2JM`79g3A85{ap0Cacg3pLYIZ<$fSOa1ktt{7ViG9 zUs%)$+PnYr*n|4!W9yNt%t%TGGEcbFj#nd z#F<&=_U54_zy3y}PS|>9RG?(Ei9yGK7i=0!-*JlK_qfYhvnQe;G=aF!XB^`_Lpp1z zb=@x`Jr4+$O)p9g$cK|V#Rn(SjY;|oSOHeHf%H`F(L;l1^SHa;J}ddU|7-Ab9j8zV z*{KD>E9kzW2=)P>d3jyaJ2T1rSmtc`x$*{_Jt%U*`{IH*7OX> z`{9)hxLY*$Q}j+j3YQvDkN8=?XyTM-^I7&tz5d$v2kw#B>YAGC`Vrb4V*wYDDllpDM$zGz~f}{i2MK1b7(jRokbYuUk0CZayEN)n z@}X)efiiSCBwT;8FJ8%-@?OB${G|L!FC$l9HWZ-EuPd!VmN(|tbB^PN-8O>tFMPx} z=F`$gq-cz3>D8~uh2xD?br4&H&CuLZCQofuK-7UivDLx}y&-1#a&3h@st!x>Tg>ia z{beE1J_pk8mnMv-Qh)O}b5Lw9x)0k3*y!3G{S)JaVeP!pIXk(`CN!@y2fGN)(NokF7#CaClFt zh>}^#yYSw>#~a8OTPU*)6J8Tvkh!2}K#f$meD`&6F0^(pQ6AJ!`xw;IA;06Oa8NxY zohQij{Wc+V!unvA>~m`?AX#p4A|>O>x?%U=7=wjlQLQp%E)zx;t2k!PDYT?ynvLcz zG%c{i+c@v z^o_CGpWT{s*PmZ5O&MK}BeT3H+xJ-5(MoEV0h!B`D0Q2nue4;Xo$nr zTkUTFz_IUJKSJM^K=Gl~4yrU$5Z2a=u=*b!21rl&_K*|BheFBMO(GGiTD)XK5H#dw zDJT;6q+frPGOcuS>dTpeUPz}RXFlOC_P+--td&GZFA39bbh3K~e+#<`K}6e}guB?< zv}@^1CZ*b-O`)GTG} zU!rN_8WS#ll`8h*Mc&FsO?K7jL)71B^#3t8!%0!G=jjbi5}%v$9p{c&yrQvwUBVhQ z302$AHrHK;^xkSVe&iQYqgg=3TSH}{hO-Qd0zfUiP}Jpv(Q7;q4^-szJleQ7f%H`G z>(hf7M&wqJQv}87fBWPABMM>6%26Trbh|+PTZ6sKm&ZKEY#K}7af;&i-xLfjzB!TG z*o6LL&I2h|_N5<2Y=8m^J@?g`t=BaD;xPlpDtxw{zm~(04rvH@qCk4^StiXKN9|6^ zuHm?5%<;sEMZOCm!-m3 zQxIJ_NlTq1WTg&EyeVwymhLJcpztHqNHtWfz*ldOlgRO|_(xRs2Sxw+BRr%r10Fob zUE-FySj+syN_1%&NRdJrv*=#08SlY5^l>qA z+!VN>DqtP8=+`o#M)~qP8@UjBr*l8BJAiJ0Kzs?D;X+`=GKn0H+`QFpVQgyq zIiJCTm{PANv-xTAa&`R^A<$~(F83P4EkE}Dk7R*EUw-3#v#^=0hsyv8VF?-`|2)TD zhXdG4j2<57xc}Gj1L8N#F|n4~L9;y^%~-D5EJ}@!Ei*t(GO2@TnBD2_18_(ehSq<73rbv4_9=WXL%uC8G+A5QKe{jT3 zp$a!w(R+h+0A36#dijunlaJD-5KxXpps2R3GS6aqGG%L{=`gokz#@b-fwcuaoDbRL zc?%5wsO8-hpUUN`Oh!fG-1(|8fIa&2)4f#AmtRyW6knufKYO_{ydwm`a^9%kRv8Gc z+pYitSwqUj67tEVwK%RA7_SU59yfc^8P?>r4L(Qh!#!ex*1!B)r9oq&ISaYC)78U| z-J`xuSDOT+D_|Gtgm|t9;U}&DV$JBPWMB7NpVzSS9pH1=|}?Ff7&vSC#iSvrh+I zcx=bTxf^DQ{pSQ-a}##;F$$W9YRSk&iQ_)$lL(vn-6V0GeZ?3HcZ@;2z}cMY2NOGR z7_e8hG1BFw=YSZ=+AR?MOpFhe)m6K-;N0gI7Dy}7DXKmTb`&{k$7Zv24T|RX1CQsV zK_s~TNIWtdm8T9QGItMzmZGsUH_EK;B&l!fVJY$g)k4WhM@*J~i$wwUrRc2TW3+yZ zssYtGKQ{S?AFjqJ+d?qw6^W+2Kh)dLaqx{wUt`7QUq2Xwj`LUkW;&_yJlw7N+~*q$ zNidPIbhy@WPEhLd>fsuHC0I7%Rck5f?uIJZ6jN#tIU8q9WyF{o05@xG&o)IRx z1|`bxG1R(EywPk+>Rg;NhOu9AspJ98jj@rw0VQ8&5LJ$zqcW+34h09Yiu}O<9J<%; zE9H6BMK~wwzoRYmO`?)OKBg>HOyrTO1}XjAarbEUPF?@QUvt0 z+09*wz?)`|PFv9fAO@5aE=T#*A(kZ8{h1S@9?}5LzXR6b{*)X}64?TJT#LW~1MTp; zAM5nSOS_FMhTOC*7JF0RTFgjA4VqTyUNn2Vby5!dg`SlGc*?YJS?^08?*DGt67)&5 zADyBGBXNp($T_EiPmn*0f0^;%ZlNd+$tHmM)UEK=CBCa~;^FFm)q}C$mNfnh8$?F)VTdj!E;k(=k&-OL%B-0MgBHJ4_u5 zMNtX8^7NoV3wp^&uotWtNOz};ef~Xnj4MOZme-+Hl5aA87R%``6iNtn277Y zqDHZbDJnX0n8#JGsVeKsdYeRLjJ7h0*)TePe~k|J><^pmqiP)RUr%Wa;1m;3(Z+eU zUVCY)hLTi`IS`v7@Q$km{4wLSa>@V(} zy2YVgEq9{{+(I$}zt)FV_DF4vObwfA1W;u1tG3;kCdNXJR|VSCw~OB!u#VM^X4L4) zlGy;hi0Dmz$SmXiO_rsQ7|qn@AB=f4S@TBt|IR!0?1T>{2=>-IE6bn01_S}tN?0f~ zq|9XNB;lN5efR;E9Jxn_aVx0c4nv-!UgM>=!Uc(6Pz0&^YL4zxOX45F z!pX;;cw96WWwT_iCrfH)HC}qP6~xDkZsQjK>k^}MyH3AcEE%aj{qZpWN?*RS>0cJ7 z)i_F3bMVG~0RC5=bX$+O428yJoDIrI+AS=SPWrD{Ohc{0;E0MQoV-n6*ACsQh!!|9 zUXbB5EL4otELU(s&Ur+%qk6(dp-9$5*4NJ%C8fE)-t{i9h&#GoBiJpUJ+Rr5QwKK* z#Tykp35z!{xcs5du&(%7%%GHi3iyZo=Hg&xHsJOhZ^pdO!5&wJpznnsZ^Sk}F5AcO zkN3>q+;2=0v3#RZ_weti^p#UL<4@=jcs~Q&1zu;F!d`Pp+G4V^$hsm*ORDWk5h8IR0ro|bznBUx(q{*15#IXD}Nd!-ZR-Q5guIRpxo zw^|eS&dXD@YLKMt#60a1fp8xTI+OgI9+R*KmnjSv1XDyQhVO^E7Awu6%ZQGnIMwYx zn79%vF34kBIA}>U84+<^$3H26rk5kh4!N3y7-W1`$n4g$Fge$!oZ583m9n0&t-ljL z0KXlNl{NNLt4vUa3TLTahF3&JXcT*@Wd)a z_c*&8Df)?OIdtT&@_$jmV29O~;{Tj0J|8EM@@gh2$H`>HsK7*x zQUw=)2ZVnebse);Uu&brT1^9xjmU{>EoQlW+b6EMd7^uD8`y&T(?pPpgWtLu)_mP$ z$CG>?E^F@6GTNL_n%PCnefIP_`rmQ7eij`8OJX`B@lHDs@}vo7->cUB#qKQERK+1B^G2JmPWl-yUVDQ@yfnn4c{W>&dycg zU`14YECJCZSt$Ig-+D8c9_r2(3GGMpYfo+%fto~dtjizPE5^E63d-U&{xvg~H*aaH zqaG$e%3CQ7OZr&NTE@~{f|?p4E$p+^Pbu(7xsz%o*Ikwr}c|qLu z{{|RXQ~P?bxRntd8tl6L&W$DO>B3IiYj-&X`=$`Yu++vVcSD>KQ)&CqsOA-YupO6T zy0(CReelDSsWuU+FoauR#pOjB-1&$bTEneN(tswv$h`6fQIxmvb<1XC#IPN9*hU$R z69TWHeN+Y=g06^~itlD@QsD=zR8!ew#vda7q~ygtOyB5wmVBVf)X3uXF0Z@z>T_tF6)|I8I&`+MrF@%^cAJ^~7qALNnKmufBFSWO*R}Z;A9xfIZ64JUvB;tNtb_D&I zLDRA?4h~>9RjbpEdTvlV7igbTYn@-V4P)Kn8zQZ%f`I_}a27Zu#NN|tF@*~}Zoxc` z2Fku!3nU3*tFaRGUn3_#o8*%-LTgoPWFXvclb|a{kYY#K-_OHxXfD>~T67r3vW$GU zGC^J4CoeOe>smxn=g4`}@@-zzw+4bMqdD(ANi(7z?L2@Yl$fF-qgf@Ksc51Lx%NmnXPBOznw9DdSm`!tWC-Qt{#=`rFisZeK#ABMH1c#=Qmd{$#%5@384f4>?Otg}Bbr45t%YUM+ zJAov{58r$A8VU+^X{`u*L(|;g57K{Wlbh<}bm6$^i=&yg$$zolJhvLbX?$rYG4#`U zu#3v*;$DV+p%20>=~NwFY}V|Zp9fu$)dKOwbeK?<~yP1KwcH z5=Gjb^^lN!%Wu@DYCnyMDfDMx17=@{H6p$AoKiZXQ5`;-3P{;b0hcu{Nl8;1u!?)C zP3^9#jD@OznMr}Lmpb%bTkk99AW_tZ2m;2xi38;ZZu={E(_fdlx(|{p$r@HoN=qj( z;eFxaOtAD2>lF6UOCo8L~@q}tcz^m%B)>R-{Tz~P9noKq|d=T*^+Q@ z_f76)ZE8dmF*%_5@2jg%H`n~ncY|3ClI>7Rl43lp@nCyy)Iq2a12<9xT@y$Vkgrek zgNs?3c(fswEVm2+IPfX>vmeL+&Q>JsK|wHrrM{N%ZQ8$?`5Kr%!Kea9_Ds14x32I~XnQkPJQASrMDu5p^8cYm zH8`?>D!tDfb|ZwVT_>0a^J|0>VdOq@Ka`y*}dmuO_ybGWbYZ6$g92ZOWHikBydb;@PeOJb2Z4FkVEm5^IS$uGu1*= z{Kx_yejKj%LOqs_GKSUebz(G_Cg=CpSdD%|JC1)be%w?A`KkMS_5i$`pUzkVTz|H*Ii|S6k#%wq8;t!ExnSPdUgsM^Db7M!~ z1)af}v&`U~kf1{6RX~mz=NIX5EppvV1kUoexc(mY3S;?wu9v}79Iv^?2VEf^hK06XpUk}4M<-8A4)ABWx8o;_OH*gL>|ZP4JKA1G6bh6?MN^M3mAMA zC%7)%+qq+U|4#>-ael!Lzy$&GW1eFRn1Ih+j4fL+yjGQO7Zav4iR@3jHr;*bd|Jd% z-g(3a_(ndTZ~3L{x*nV(qp7~9(Evjd0UkbK#QHl*-6?fvHYAtn-;s8{3=C#W_#$I%g$U8f6lI(Di?Uf=YN>%V+@Zp~oP=0EWF4YlaoG zX4|wNXU2hwrG?-{xNrk-u@f%z01anb&?O~MM^Rx+T~&m=bMH)+I=9QCicgM zr(CvLqyfME(rw^KdlbA5adE$m*KF zTb^YE6da^@+7eo_t2Ut3gKyj3RPG>GnLNEBmpT!_QJVige$FKw>Si!H-)^(lS3inH zIWViE|1}j*{mm_}8YvTsMd7AZ+=bf1s`@PQTal|-QN~6ee$u$~pEr(_d8-hE&z(gnL&L`5P zsr%FR?MB~me+Pt<_@O++^z_uR=Av=Y`g%Ofj~O#VU{1!$HPCWy(?!T=c>`l{UfwPGdb1Fz~DH~xFtH<;pJACm{_kEslyx~kdN+>^KuHzSiN2p zW~Hv)QdZlYTnp^X<=r%Hi50c7mmY%IK7-NC`@HweM!<3kQIYk(9i+QkiFL+3Z=bcm zLV-&mR=39;a}C*eO&)8DpocnB(*fIS zZ3hbsK@5WI0>?5$c4R;Gcv4pRT0xtyn>(xEQ3iaH>qBUUA!Gg+$ieIsB{UUKsGrLS<_HLr*kBGo=fvsa@7P#iygUZ-+E#+`r-V$! zhB=gw(SnX|>~&bR_9I?2nT9&{eUslAs(n2@NHpEYIHtXp2!Z9S0+bo_c+DB;{)R!O z8y#|aa{0kxKa1_PcG7!gT<&>ODdp!lh`9Agu0~L%hr@3>+XsL_@`E>hmBU20B578* z^e48Co&~sugNU}ggMw+DO;zG;R~h<(v?$?A5x%vC3VPA0KC8LG!<`bPo&%Myd>0-%2A^^KO%m)GPeD^EM^Z?V{*O*fgl0cMo^$h3 zi4Ho>!ggezEq1|eF|Z84G^yZX%OAdJ^B=?OD4$A}r|(bOwHtlK{2mfX0nnLMYV2%5 zLHc8}1`2`>>3FNOl^qe371&sA?@ywxM+M<|A}J&YRi! zkP7$Z(Qm7o5!(b~c)#Zys=Px8^P)0r&V3Df_JgTx zTbARCTy^U$;@Y>%JOU)Lf)^fb{SLOfyIgTFN=9-vUfm_5OfS^(<%6ycz*2vyh4NbXlBv8fYXio)H7GZKWG8UQ!tbgZ zqsh(D@oOfDZIN||I=g9}TUr2uLcKD7l;P}i)< z&C1xsSVyLT_M}pM`mFp_%1GbXPp{6Mg=xzF$t{zanldGHug78Ym=S7G{R3AtMka+Q zyXYK+v+Ra= z@q3`@YWFJ7TuU(K4hMv@%AoH{rgj>HB@3WTZ~r1(yk&iSw#>$$R;|fDYL8sI1^lk~ zhMAl@S^1q+kT<8Jeka)6A@_q^fp4SZ_0F=yU0r)*_oy_b7--RyMNOp?;TvobrLqGg z?^ZQwlEEK)qUR#)u>Q2`PI0a_eX#56oy_V*Nr@+Kqw)Q%hUztrOZzG@6N6Q&re_7a zmO}>4_U@`yMEqIA01r?Lf=tSU@MRPkTt?Pd zc+T)mF&7mh`iHImxKKtr8h}cS>}I!_12jLpKp?*&9P%}M1lw_$C*oivMIH^gNj6M@82ece_)UiRAAFs6$t#TTgZ2V$O zWAujxs`z_W`@wKfO(pUK+EP%*Tvznb{|ET&g1-m*eb958@_$+|V_RGTsWKhztm9}K z!(X7ArFA4Jow3$7_bGSI(OgR|9Qs2u&`fJBUvgc;v0CLP9?8Jsp|4HPEDZ8iBz?O` z;+OGxdS+aTaX@2KtlMwysYZlfPZ)2O9a^?_syqTMvs$3jM^c3idQv7KFEDji6yU<~TsPg% zya>xTW3?jzy*Db{P96R~PHwaNO^PvhTuF1g*Wh&stXS80WS6mAP$cAH?p)0#nwi-Oi~{!V;v24wzK35d#q!Sj(``*)Pg%^ z+_@MZ#`iqvc9<0nXbg=z)+6e#LWDl78WBlM&Z@{8)6u^Z|EVpybf!ye;~sJi`K7s# z9aCyGv)56{y$zn4A;9-%kW^Q3lo5F()Jt6I6*ikunc55j1^lbj!~;=X*aqAPZb7%G zBXZqDuI>CR2$~9X$g*FFXFp=!1PHI@?LghYYagA=H#~!Iu(|JlUFaRXX8u`eOE!V% zoo}^CFm^=(DE({?4sV3>%@IQfwRc63f7u+TijJwK=%r zUIa=R7*uCf|Fy#Uw68~Tf=eC@=5qZV%rBa3en(@2hI2!dpNP@2&?@+cOdEny z)1VP2Yv~`=p2Mrv^tBhKcCapIDW`3uM1M(pv8pAL0go$XWT3jkbj_fpZioTLEHwo< zpWm^VZ`=04NfCtWx~j}3=*4d*io`@6r|epVtWWrsWcxxTC&h_HT z66l^+Ee+}BdQw(4^~n}Z+k$)wn{B7x1k$z};6}Z+Ovjz^SchshXXnx2EXT!;IOa z07l1ZQ|%0Ui>uDE$Q5>D?4_K=nboVS*x+Nx>cX-~@<{$ZGr1!ZyJ_z@p)fO+SPl;j z%~fiHHH;B9(^W4%mk$J3@G_65e|lp+Ng&2^ys#GmOZckSazn}_{?d;6=s#cE$%m9a zfb+Zk+i4GFP)|S*%YsOSyR1lYs23wV0!CBq4*;=7YKDK!S)Oj7OKyxcxE5&C%&q(z z=3-q#YS1dDsl5Jm;HcZGHWJq5nvj)Z*JWSQ$n*5`yh9#YOf%DAGagt)0pR3xuvO>g zN_@bYWH~IRsPMlJn2oMHWvx(lnXc`d#0jl!qCfFj+3*O@4ZEb2%|Ckf;$5)(wM8oR zDe+>Z!hqSBn3>SB2f1B6(5rqyB((HFn2>D$GI55oN1T)aqd&Le?@T~`E=?61`Jwme z01TY#9g)X(`VmRWB|SNkkVe!AHwJ0_$GM$p{f_JIaZK;z9xmasCC}Z}0EUg3o+i)G z-9Se_4kzSZ;!I-=8m&a7qXJz&;RGc(Y@Gv-C{VLy+qP|Y-?nYrwr$(CZQHhO^R{j4 z-OPL6WF|9z;Up)is;sp)-jIZi3kth*1SNP4h~Ewm?i|FFv`x|i^q3b%$Hs>pEFjyX zIQz}WUN7p9YJop3)-*pe%o#QLXX7&*-eN5eWncO3W3mM@_TeDc_Na=tztKcl1Q(5# z=BF=A1VzpLnBSaJ|A$UmWBlei)+{z>$QoQpOCLKOv1|^GTkU zYzC)3Gj5rA?7$QtR|77$qy#hN6UO9& zot#AN?U>rzl^BbUEAZZj1`XE1w(%n%gvFJ<$q9#LVptij2?FB>S2R8_^~zM)h`C%a zWP7(Ux1N_-n$|zYXSRAt2}v@_sl%!JEVOTWYK-rcex+P=*!eN5i=b+8Fgv+fU#jej zAh-;8-QrJeVHhMm$;wnmRgLZ4Ys^mu^6o?XJzqk%z%t0*48gI@nL(Jnhb;L7w7Ip~ zYr+cK8I2VOvZ}tayBDAt;{A%3=2aNJqh=e@Mkq(9t^pUh>l6zn#O0ux;u4kL_Bq@GRok?g=o{xWlD=z`DMnWtb#J7&?&at?z{HGO&2RxmG9DMRyu zL1PJV9&_TK^RpXA*mSX7e}tUfP@?Mfkg*k3p$r#G5@bR~(?|KFPzr-$Vr5%eeo!}* zHDmjez$UXsQl(bWfu)8EX_gK&W;8f&HFuaswBTZ^r)2pL7Q|*2s2Sx>k6mGO?$^}A zuHXzJ7wvwkL+BDK>+7l?e-GOiPQYlcfs~M?oLu6ZvQbnyIH1ABFL0E!fT`~xO&Y)>)#@(8 zaEImE9K6kZAYFEL<~@Cp6^n;nm)i(t`JVyw zAo|C?S~Rnkgm_jHA&9Iwiz^@IDy@gGT^UdX7yPV})6P@|7?cc&OWAp|#qI1}RM1l` zfUa>ZPlj~J*L{ff{ex^Vgt5`IVzogrAs)Xz>D7oq(*$oYZTAEc40i%S){hU3Q8*h2 zJYFQ#+@Gwic_|BhPYL@Blt0vaywFZZqp!nX0}=Qt(GGpZu!h+@64-%NZqcXKnTGxa zU14J28H|9dj)l7K**ju%lm{^}y+4{#?;ZhYKQ5tiW8TA_;cK>0DaN}{Pm#k5t9xnu zA`jL!wV@b3c}DJZ?LLHKxpz>Y-m!axdo7;z!NOa4l%0D{Jp8d;(KVq!LmY`X(>*xz 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 a55SXd8?3tC(usYa0?FyN2r|*j!2So$)B7g? diff --git a/static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/advsecsettingsreqpermissions.webp b/static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/advsecsettingsreqpermissions.webp deleted file mode 100644 index 5883a88c1a24e665e0299738145344e8f6e9059e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59896 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 diff --git a/static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/fullcontrolcontact.webp b/static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/fullcontrolcontact.webp deleted file mode 100644 index 671b5a10d718ab3279d4f94369c5d61004ef0233..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42082 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 O4pUG$L`f_(3;+PLyyZ6l diff --git a/static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/permissionentry.webp b/static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/permissionentry.webp deleted file mode 100644 index ab0eb37b26304f96bd618c316256b22f167e6b5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36876 zcmZs?V{|TC*DV^`w(Vrawr$(CZQD*(oUAx2wr$(C`P{wV_nda_ckiiR)kd|dnsf9% zM(lq!bh7D*Iw4>F_4~x%HZ{OI)_|N@#{!V^yz>{|{p!4bZ3~>rFXY}iK#{d9;6zKa< z^QHy#0=@wffZnmz7sS`zAHeMwFhBrc1psWU0t#+5`cK~jeh9k&pn#L!I{@GX2yl4; z4Cq|~T{bA&T@|SOq`m7A-^ENsnp!>7=$@9JWvbhiX7H~(v*C8@xa8RHv zK=|$O74QwXEno#G0w~`zzF+4JrUZn3mcK_|Lq1=}7!P|#1Ns3vKaYTzPs%EVb^Aj* z+|Sdugj>Qc0U-U#ubi*h7lp^&cfjDMn^)Zn;HtOPU=08O+|06zZ& z%AY{rRv!f(3pN8r0@eV8|Aa>80jIrBo}GTAU$@_cZ-hVs6@zy8R~V(2~^ZrBg?GOavY$=V!fH2Rn=Tv?~2DZwT$~7d+P8(71r?tp*iH2#FzDWlyKEtuSI2ZqyXLC<^SVs(k(HCUeEcrwM-M6sZd;2 zLp){~5f}{6gLE<`4zAWIc!g)rpPIWg3{FtNf2a8Wy0;7+Q?XpMKC)RX(4Xwp;U)Mp zCQ7Xdj2KuPtTNSkQ2^-Ni|KE*3&NY{m}G^EI>rABAI#c^i0Zt23Mo$w$Mf3|V>kwY6*3z6v8ugMHvaF| zrk`|XHuC_(KiU>r_#&A<`Ckxw??8fEmKO^9e;*aXnjsU~f3*27Wk*H`jZo6E{Feno z>1wtr5l7{-Sxb6}jj1kYqCQZB&CN<+PzT2U1z}9k5DWBV?b zhNvQoySH$z4}DzOL(TdR!V))cv4$Bnq>rq)UK|HknXLP=Zeqx+V%><WVEVx6wdsFXkuz%2jk=aOw3~1Al{xgH$qJf7S8pjss5%LmSd;%AZx4g6Jobawo z9Y+mcRH<;O1yW}J7C4bu_o^IujK7TtfPK54fnJOdd<+!d?6p4Kshy*Q_sWvN2&dnf z2}Oes&e(MSz_}ANLh@dE2o)J8cKAO%;*b6_4Or2W%krARUEx|y0F6lNHr?Y@@(6;( zemADB$$twfXedy(!|!(pVFa!Icx1YFB#dBIZH`#9*f5cCSAgViX7rCZC~!VfqBRkv zg$E=LorM%fe#k-K&wn|hD`lqMzj4ooZmzvc4?~FKw)-BE79|x z;%}B!3Ma)o(7+sj)mT>f$!n33l;3hU4s?y(^xnHWy*^EWq~~zyhQsPplIAfbMOk#a zRccqN-W~7lTEZqA`L~5APxezqc`GHc*FQw(`1Hf`IQ-R8X8mtZNP5n9^Sdbgl{{#y z{F8K-nX^I3rDh8x&nT)&$8k;R*`^*O(0@{G4i(%4*?{>973+y?pPh z4#n~WRev3~O=I<9#Z$U+-2G4bDGX}{jXsZ`^@wygNVHy(rY<-RJOGn7$JPI>a}6IB z1O3q~c8td)``w%UHEF%eK64IW0|39fOI2?_=h?^Lev65eEu=u8Suq>%GZL%XK1Q~} z-hbLzf)m>NZxEkBf22p4uszNPV#-F{gs7d$9eUaSlDxry0Tyw`I3Vco{2W+MlyyIo z5;tKIE9Yj>X>x`z{Ev$8HMZRv!h2 z2sA+OeDx0p4UbCcx=<1&mlJujya+7L8Ti>a(&XisA{9_i8?`xrnOe>BxQE-KGj9wx z!Ttp!pq*bhk|1IXwHR(++J|9&vv-lM1-d`VUfBI8jOpzY-j8aw%>OgErXj}^>b@|5 z7VEBb!yE5SCmH;|(&j{-rh`b^4U9}ikUu3CX+vIZZ^|GmA62{Mp3(ETrMV1vems;2^zad7LKknSTXlwgud5f$#)Gq|cbnm41rc>}d{2U9Ik zOe|3OhbOgUjn&54)TB&85RwdBgN_Hb6GNDa)F;mSfh4I$)xGRmJT(7W0^vIr+9Apo zsg20U2125J#6bPb;X`seN){z3!8B+QjzWkeYMBHJ&4)#%5LR+%ttlXspbm0JDrBbr zNVEN=l(hz#<@NhaX9>|XP z=2Eze^iI#!M5d6F5i6whz^rAM;-66flsb{v_Rip%GU$ye>YQ=Rz7Ivkl~|qcV=aQv zeh{Q(3`KStjX+qIt)fwrzeRpJDfw=!?g;oL)FS$nWo^83UB><$4ox8slA6jpb^Hc2ZcGFx3EQ^H#l904Ef;@@Ja#cfOaid?_l3*D)_5+4OS+NS zC|L-&E9@Z%sGdSSlCI%}*9Wj6{_EhB>@_yx(5{##%6TIQc$6ylqbQXNo|?( z(X4BD!2I;5r>zzD;8wyXw1J_Fmz@9lwXfL(S4XRpHQmG$o_Y1(MU^U~t!hXy_!2U= zA-G;l(q=cayt!t&WQbsduWS64>(-Ke^I`$=$Jr;^*tyIWH8fI|{2L*TQ`ShVYa$v- z_6r7MwJZXDXP^8!dw7=5{wrE&^_Z%SBHWa%e0(R&CdoiBSn7mOhgrd`9Nx>ah8>Je z@J|T}B*m7cE{Z}Y&vinkEn6<0T~myw?SAQmiA#9x*5;FfPwvd57wmM&#yS#hco4); zfV*`cJaGwkv@+#%{}&?@IK8F_eK?;8!Vz-C53rIM9%f1b#bq}{>J7%-ozd`~umR#2 z7=`4<^g3~UNbu&c+L?YWt*MnZWxMCEUexhKArreJ)Oa?;aBt@R`wzKRzBwTL;kc0# zTJ$D7v|MBizym>aQ*`1n94P@rr@g?0J=13z{ELj?{PMk5jsil`j(;0}xq0;}Ssj;4 z*0;lM*M_gviR$=`KpDv&9%!Og%%)ii-ogAjk%`!EVI-jP+v9-aR3HJy9tFCmG(nRs z(QE_}9b}LU#_E96Bhq3OAb-GbMt6I4AQ^=$cDLiujde1RdZ+pGDb(^Ac4Z?4#MiA^ z^KRU!?ysx|6N2ab>*fdWd#d|i*C0MS72#951>zTn>CpKt)jQ7hz!VDvwVQ$Rm?R8i z6?%0ISYY6Lct0=E6&?_T%;c%Ag2b&X5EAr+@ZJud#mjUDEADilWO#OiAJIbm4Vn=? zz(zv%5;)g%?)0$QwP60?5T|x|ZtUU7fvMcnw-OcN3GyPH@pT0gVqafA~0 zXvM^*YtGe44v*V|rCssG9QB|NhfU=hQe^VeyzWcYmC5$&l*{Mh({F;d(gnv$QfO=) zBNR9aq#hfddvH71jnR8Y3>$1Imc2C%rZY{jF@Z~+^x-$&E5TFsm@bmz(>0I>BLDsi znUl>t3iCO4;keXTUs~zXk=VSc2QR#l#K#}g2Kr~)k*FqY5J(q82XeF!2qO|3T&oFAy&1T; zDtD#Z(T{AajGTn@*q_4XRj#FG zsl?U3Qm;CCjUU#Q-`m>f{ERUw-fr8smu%OFyts!po+DQyI|AaPDAUHe1#xC4$Op$fh&m4N{yUD$<{hhrt zcZ9edLNmV(Cj~p71C>hMKiD|8vpZrx72VlI76{))UUcVp)tpc2gX1T0)Up{;{{iMx zd}j5qwJN|un<54Xj8#W zzTm37Pjs?`MA&z+MY~3Q%kd7Jt!(gM7`F0}%XdJvYDy7p=J;vE&iK-e*dKO-ES|cw zPCV4VRjN45ffDuS%2JrU z>_~GKBU<-+c$!U)_O*E)j9=S!UYC>ZaH?E?3%kK>x(|uW_Kn4b4nz_L2Hga)CLDIE z%O5Z|^5wN8-X+H$E-Dy1&pjB_EXgnJ&sRC5GJQ<7fskcXf=lD7eagxDgT6s>`T4M(ttw@{XX4) z_@SfTE$x7{lj{@8r!EGaO_orY^r>lvOWI2ZD?w)>aFbDB-bwLJx>_fJYBIBPULfo_ z{37sJY7!Tq*l{(j6U96}NH^F3!dQ{^?_u2!$)S!S@q0 zY)-X01=G8b&@iqL!&@c4=AdhI)rBSqq!6T_0x`B?sDUsG%U9EbkBF|hO6anfu)?HC|;{u>k>skye>C{uxdMZh`K zsaE> zsj1R{mr*KQFFDSN4h7cnEQ0^^7u(jnE4MOfa!ke#)q{|5$C{OzusBftv601xs1WY1 zRe+vbu8Lif`WWA1SwgI0@@Lw+7AQUP8z-mmOG6C0pqgOIT?luJm?4(ddfAW zaDLV80KLDLX!GwyLdYCyNLTyQ0Q@KPYMt@(?APS5mKGo6ONeLfOdA)M;@_CZjZL>1 zchjo`9G}Q##5{-<&~0O@qgCsXMrBZYXr!IuLw0{!N~f#LP%~rFb7tDl8pWC*iDe9; z)e^L>qGUA3>IBbjUZrXYFpD_mfSrB5jcb7L)FcU6yq3(%EcD)~)d76!$ITMagG2Xr zySac6q?yZND@cw^p86ZPTt%7FZrQLp!qvZ?$SP#o0r_CZFoi(u^;NpE0;2|!KRtqj z%=4~cs?=%H8m^lyid(Zynmce4y{;6jr*BQn1P<_yT%IeZ>95tR3ve^IEg@n!&2@a>3*1!+p@LB{c%0gHQ856XYcUVN><6% ziThJFHdO8wNl9%}mEzEfJ8=nJ4kiOp{RGfC@9eu({7-Wv>8Ue@uy*tqz+qJNgAH$W zr1;utoI4L3m6!YG%XFU|nrOy@da1j$JC3s)c-w+)rFu`+fJZ$cVx3b#zdgT$p5rbL z0-c0cmKqd>UP=q8M21y=iOklrhB6y22KS8m!z+s6++j`Z6J=z zmq%hH&@&!Mv$>su2r$XQ z_0Oq=V%I|)#_H2%uq6`9(UwOlzL%tuQ$g$OGPB6fbM*CwlFS9%765+Ber=&OT7}%1 zBb@rH?~4tL72~yYk~R(Aq#9VcB!gOb5Vw(tjU5-~a)Ek;Iwmxgblfr4Q3~IkU=&fuIxM z=EXdWFFih^gAABU8V&lVk&VEOyM;zr%h8Vnf$*KQTl0~q@m9q93uq_&^H|;CQE4N1 z?r4BBRv6)1mSS>VZLB_Knu6EOkwL${~*^^*1h06R%k@ z;U#2QId9ef&WPH0SR%T}BUH3DzVXH=A9&`B|C1bXM8J{rnFLX;me;;#nVj zGCor|sNBk4c}%X>l60d4wbK$!yW7~{Xivx=hXJz6yvIDq$@oWin6Vb(KK&6K37W3Y zSX3Av9d!)w-D#(WlDW;3Ug zt-nuK#&T9GxC^v-YkRq%5POMsBi>_2yeRGg?GRJP99v&UqtN|R((A?!4xANd&n@h% zA6=VtrjVV9p0)XkDudXE3_k{MHWi|?Ge($N{95}pKFaOmZo*eX8aaT?(FEy%))(BwXT-1N~iu=CVT1hKqN29M`a^FhE9k1N*1c~M- zW@2t(jL5b_6?+sh0&3Q22F*SY`caFz+ijAqq0{!v&q=*avGQBkLEW(*T?LyHq}|n@ z{KBNO6Pq8^{b&7TbzFtObpR?f zmSQtWeUR7DeU4y+V@};6iFWTL<THb>tLWaE>eXu%=W{H*i%e<5r ziehzv;`UIL!0EJeq4j}fY|7bAAGY$c`<+tD+}RB)QS#soO<;vo52ZR8SOfCj`!3ry zwLVC3K4Q_$4fOlH@SfVlhWg0Tiu&-c&G)OV-ifbe+jx5dYz6!lhxX6(BN6pwD|qK~ zTXvceFU+RrVD85~)~;>gjr3f@R%#{ZKfX0J<@zuQO6-TT@#l4ilZ}41ndUPB88N_| z#x5&8*Srr+7XM3bn^hgQE`(nPAg?9Hpz5c0-codc5Ao&sE=D!qY`ne|Grjjiq&jRo z*q$~&V2KXRpC!2>C~*Oz%vA(GU8N<{yHag8j$qwdLzu|Pd+5H+StNodO*+m2kH7L0 zHrWe;mDLB2nfL4)^{x_&%grbc7akWfLIw$r6@GkpukW{ z1lERsuQY)0qrnWXo@^E*yAmc_qS4@ZHiuFWEutIQaROZ&Q)V)X5Oc1GDDJmh-htH- z#$i{wCv^1cVF~%O_XY1Beo)3Z5O6!gcPDRdT;1ALyAM z&-<^HLuID2o&J2>`)z}NgL$^(L00@SB81muVqq+U+O+w6=R6cOT6)FtNIuN*n8b>G zBQFpK%qRLe%^nhVzvJ8PhD(cWp%Gq6cHT^+q2gD}37&Q!`}qrgj{;jp#Y*>fU!8xQ z$mHX<#y2ibVVrwP&jiVVc;(P9C0jTyFDml&MZw{yONq^R3O%s>v0k6Y_j^l}et$$M zEb~g^+mx;4_}G2{!4WcU5+dFPb-kmJ$;BD4&4{3taer(ZPdN73^VI++Y`LHIOxWTV zLNjl+?;l_FTn_MG&im)ZGg-0D4-Z>jLN5gd~- z5OuJL07YjJ+dD(MlXO~3{?#MM$i&YS7!OpD$n*gfFw^}^^Ly;|1}Yus57oazCEL8_ zagBB~htz$Tx0Ojrbg>e}g>5JQ3 z(jc6D>!lV)y9A=&N(y8+{{3o{X(x+g7(ppd)RnLFs~dX*XlqFM3G^@8pgZ}l8F?M9 zZ`}Hy-dQ$p)zI+PP{Dmde?vw652W`tc$dQ8GqX~>(t&nx0-iZMP9p>gmf`b}zSmqM z!cYOXRqxYlQ@!Op&sBxc6eDPZNDlo3`Hznmz-LTxK~eJZsYaCy0>3b3(f(e)0i9SD zw>V+0&h~edFr0jOf?#TRNq6BW({${AeyZ0>7NICF8gU@EB(vmOKI1^+hsA+9HcGy7 zf6r(95v2)pICsw+VT=f}rseY?A(K$)iU@CDPU)S(ux$-5WujN#tme;Ca*=oM9;^>n zJ2nRi+1MFCASb_YPbIx$<@(JXh|HYOZ&7Ith({TXVXX<92(eD7-y+3_sOGOhX4S)r z(x@(N_ECn1dAIg;yS%$peQ^qDtJ{!VQF?sGF-cuR+SVnXRYB`3+UlXwYa$FpY7qI}VZVsTt@V_9t{gAZe)< z#(Xr`_vgfEEMPK(i6a3^yysKV_71}_%K$#TrEFf6@pkU#F)32Mms>7qU`IxMamx>c z<_5;$FC0k*J7G+MAZ2@LBna7e2|* zO|sRra^&t@LB0Jzub=IiA`FFd*+Cu6l#o$?p0|{NOv%11oRf<$ytcs*eMpxb0n=!4ackWanZV4ot{kesA1GE4)hPiN#Spzr$}B z8H^&K`N9OE8^M$bm4aBF<-{$q8wcB2x^{dGGk2MisqZ%uD=~?+XfwWjNNC$5=4JD) z9@Gs-32tbIrs^oJWge=+t)q*@Z_0?Qds_S=^<&O0`(6zh0`10y*f^MO(3!-FW?!*7 zRVx(tLOgH0vguE<I)44@eR~77S#ww=PrF;E1okU-LzB%s#8xLxa;ugxbbwcG&Aomh&q3(2%W%U^!*$ zBAceA^{k7}Nc8C`p(^YQHy`=Xs#i3*UW*gFS&c^&C3U&5Zas)PE}(rAthOk(_x9+eWK2> z^D!ZSzo0y%5+_4m_D6oEG6aYZfn_bg)$&2*n?voBVo%~wSMY?a7}!!MWkZiDn^K~n z$MXr%75)R0zRuxCiXL&(R4IND{ouxXGT{x@G>l)8?{NwBBP}8zo8#6Co~V-t2?$Y6 z-x-p*KaiP2KFVEVuE_(_uq3^8&N?tm^HX!NX4?Q+#DD-h_%7}k8mIzh%op69a9 z`@>m)OP=$&9hQlT4%w|GNZ~*pd)ZGa>~S)-r&yGz@798Wc91ro5_E+ECT@}r2^C`tPk-tIZ+C59z+PRMe=xeg zJ7O@?d&^b9*1=H1_(MvsA(OQbFXSA0Cr925It?C#<6{)qNoXbxB^VD*o>L*-noKl7 z`cm8-_d&Z}2)d_9fTvyi%+nE$&}RzaL41*cv2I+6-4$7thZ%-&KSkG<%332~Z?9x! zi5PL1GKjl!(!dAX`@Hed<5RDGtZkVZ!fqNSRZ>sffjHtjyM)lgiRvyMh}*rpYZRQE zK1c47i_DRYJX1&a3>9>R0>tJ3ou?5y~Gku@h>P4Qbvflv&C( zjC1d0J?OaL>2Pugsu(zGILs2aFX7LmKdU*r9&CVl1tuqS9ATKT2}mG{Bd^o#XHS#w zL2sk6eWbc07)UwD#cw;3t@J1gdL1@YrSlX?QEoX4O@TCnw*<4g!ZE zCq!$9ijXqR5~1#N1u(!C%tHPs#zFB%yQXoyMbn{XttGe8(c&bx9Vnc)k5P!eWA(BCYL>%~D@NZHSJzDROLO9th@=!Wv(If`Y z{p!co=npi;S>?xDl;#wYAjRBL%t zlNF7DTN~7UprK?_!qJfiH(%m^-&=E2RUvQ!!dr-ouHAx5dkuJ%2yPi;Mw!EV>!`H5 z+d4~(&sEV>4#!D-2QbvcLFcqgq?aUNEMOzf?ya8L5GQl8t{pY^B7w`eUtzTYnGDRG zeTP}~y+?X~I-e{G@V{;ZN&No2@Ff%lop&s0$DJyC@J((4SxbX37}!78p8qZP*hCQb z)qL`X?gq1Dk@g5r^|eS*2nDz zCTbq9*NF5eLfwN|Cr^VaR=JcC14^#^d)7!(Fy zrBdw{oK4r}NIk_Fckfqs2O&SD-FmcVQ$zG|;7BCv8EjQ?R93tLHzO{Qc-p5wYRr1+ zyVPQ_Jt7M0d{B{+crS&ZD%cKDXf!{w^(xc3nG4nGX6oeynYRRKdq0ySV4am>?2`Nd z4D6A*q7%3Qd6aAls?k%H$9bN}3hr*kId(^Ic#OIUin55*+ANTeyelYzB_^Ja)r4}7 zxTMxHufl8Hj}j+6a4A(*^dQ;1jlF{}aORfS*T=hnoFeSGYxM-F4sGKktmuusE768< zO$n4SAEi19!ZU$CP1#dJ`tDT5iyDLu?|ico1R#fota(Ex?8+-ZPY3p8^f3ngnV%q# z3Ppd)Q3@kGAs5>Ix*P@=$XYbwc@a&4j89+Mvqn{fuW5%B0o#YY#D zi>nYvcy=L`ubc>?@x%ZUEZ1XWq4ezOORD8}^%-cRUvsh&>GULfTJ_+G_`KSCEi{^3 zeAhU{ZN$-Ao7CHh_}1zUsvbQm>;^!0XP7ezdsAdE9X9TZi3!-(6lUT!veEyYVDib5d^YsG(lvvmik0G4oVx860mGz!KB4Yr`V;)obvUX!?w#Lb4iPQJ+TjAq~S}$QyGYG$+tC_<8UX(lSi~XTA(1dcVRh-1_?P1Nj z?5$dt`Aa}(ziq@`B>d`E2#+A{h4Cyx$nwfNNB|+FE;je~y*v?-_vY|c=x^?JQ+-(Y z#5dZ&zNnv%2v5WcfS+=8FstM9eT|&9Ez(M$Hl~c5RA&nw7lr+0j3Wz=Zp!5w684d3 zB_ra95`BwOqgq6JU{8@&YEv+5rF{Moz6ETk5)+QQi)ytdGD?T$Q|AmNdJ zHzFaO?GN)~X1J-tG&C$c`+UgLcq{B)ZA-((EZtPr4C#7&x?Y%>Kp9A&44N^9ut1IZ zRekiEoZ>QSDnjwASTlwMZ8hi5j3#Ebs=txYVe}|2D0}MfxMF%2ZJM{0<;^`KZOZ&| zMGZ4*%8v>1$B+Qq0G5|mFV|&x1!m{B^AavWYy(3wOX9E;S)*oSO~W?lcKfSc=j8`5 z6HTemAV}H*t`;(H_=@vx+1(P+T6|TrZKIX6ijU*cI3~A4@sA{&%S(|OT?DbCWpo{5 zyUk1|3iPQ_O>gR)YXfO!yY||azp0e&jgY3XRG!C_gvcY+1LYkUu%$2H=UPD%TK(es z38tgEH>i#YW&$^FubO#n#J9M_WujpF+$$kphlnkuP- z{?nS{?YWTQ0n}lJ+WpupLyTcwQRNT(yhy<|8G!|?SkE4#L!);?vy}JrXw+SUd|jZR67Fk_~&8{YFEC9tAgDPN{c!w$yey zIb-+T1>vz6?xL|;6BgJ6U$bHs^h+#F2=_i@MCn@uED?z?DCs>eCV!}ZJJ^)o{cw>U zVu<0cL^fa?@->^&2uD=&)P^?LLZo47t@e1Bq{^F?4g9hb<@Phx)f-Jc5-Nz?e|L&f zo``)ZR1IXp@zEOLNAPGj6do4S;naEZ@J`)u?8cG0r2lI?1lK~9I%1k9*Sk*tnty%R z+Xu>1yBl0CNl)ak;g1;)un?Yewx;kbJ;Fmerv!-Qf*~(wb!_^mJ3eHv$yZEW z67&q}{TuD4hqu3ZQ4ayzG)rq*C0ooz6K_(}dzqIznRrkj$oDO{FP>9_W-(2gDp!MW zqe?eE(w|nR-C0Gb6R$LH9-`nVbKtGSq+w{_c=Hte8=W6C)Rk50xnqPlhF+6KE3z2h zT03^*QYY8o$EWXjidC-a3YxE`;o@)A?ceS!BAu*;?5qvaR%3F;eAzSSuxo$bzcLR1 z5BaryKSU%GaFw}IZS->LjBXw0tL*k8AUco;PFo2)7A#<^Wv=&)6=c85*`-a_nsk1Z z$~H`qHm0yTH-3OgVZfTZG;u^{CX^HP*j-@9fs*;90=Ynd2Oi{K)o_~;lxQbGq(Y*c zCT6ExliO!FnXhJJ|Byj|IW8FZG>45Zr{P;vV~aA* zf$h6{ov6;SzDFB#LJo>3VVCesF(vsAYvg>QT8*^49g%DaL(5G`)X(Ie7;g0I6d7n{ z&N=8&%+qM5?EV1)w!}Nyq`4}+z_{UJ(}1^ggF9v$baTu6LoxOJD59=1$V64oN~~FQ zJYFP)PMshHm{h1&1!Z7k!=h6aM~sy(Y4)*jFBDv3X{P;4+VB+hvnh%Bu zRUTq!Aws{(hmsF`!j2|10=uzcLqVne%dy#9Zc50Q!5@hQffVeBglaKL!5wlpb>lT| zmTuHF_)?(!D}nOSavtU_VjZI#?J%hp;~gx|5lti1B(4&YLZT@D%?`dL%y{jnJpfA< zW{3)HW%ipRk0ED3a<^ksh_dG6!Plk)IBpJ-h~E9Md5;YQLV=hoO10f7Lk5NeQH4yL zxC28Bh`S8lJxSdSG{X3XF;;L^MXl%B%@SNbvG`k{pa8k z8V`IphXr$bfAvcxb#Y2j86>!{%<`>~!ITQK;9-3x11(bwN%R7dJY`GR-B$?BQs2ay zH88UJw8Z)(s?#Q8vs_sai8&eGo;B=A*bvT3!MEe7zIFXPloa6mP~s{a%_O&hG571R zUjpSFd4Ybe8>piCl??xl?U_*IX%YoU>oNEU0m6gREE0!59o0C>LGziL3z*NfacPxO zan==PE0(`GAE)s}NNvOvk^pmipja zKd(XIZfq!XS6l&NVVutAr7s4OB;+r%T#e@JFJN4oIc1|$&Iy{b7^`KT%$6@NhSP6d z4LVV9srl=^&}F=`_Vv7WFSm($+WCl`{wn;1PxO5S#KbjUD^6|Rfoe(6D+NHgJy7C& zW>>rHw`>BDd()(`=MZqp0;xs5q=}(MOU)7kxGO7_W@L`-IfqP zu;v>J2~vtpYDKWP}pKy|1sAvbaX*apV#+c;MtKFL@s8v$BWg9b6U@Q4j!x7!H$rtY8 z0|NE~@i|vdqAM~&G#gLM{$ioU5{s4*IRWNPeqp~>ywe~!-F9pKRK_N6eB9GMUL%-H zPiQD3j_H`w!oMmdRQ}%nh~PLO{+MN@%4F;n zKkK|;lt)oV%a(dKTID}I8_BDQ`I{~ zbS(AGsx@%+?5sFJ9`W$&E9dx3f`m!ic+^xhXv`s0m{aZR&Tw)XFw&1YT=-I+CMt5%Zm&0%UxV>-o*s}wC67w z{vu_6?=L%@D0}ta3Yx;zFW9g$38N=;MYWmy^e80g%>Cvkl%UX{y!N-%2za*So2bmQ zsy|6G)5*JPSL9_VsOVHeVVq7W{pTaq9mPLUY0JvrJ>f@)tM=-Za#2SX?^-JF-ybc5 zOaW~Ptvq)+XmND+;|#ju&FnPY2cHk+#*f)vE0){!PmLBAZxkQi&pzo{*2=r^XZJk+ zEB!;GTm|}p)Jv4bNrY!Oo;_Nir%cmgu1quXMx1-q(DFM}y7}{M^nA`9@QxD} zdSAY5ds34X+jSfRlA(ogrUFO;8RX;4s~KY`{v1`NrDUXP=<}S`U9`0tEwh;>F&SQ5 ztIcuEyX`keGvMn56#d}lpkwO|J|6!Y)#z3{`5F??Iu2@0-6wt|cOF91`R*&9HP@?I z6WIt-c}hF>nwDAHaCcNMHSSAg`|Fnbtg6aK%--;Whqy#(XQNjWO=CbPIyLcoB|Buj zyOmzak~lrUl{K5F%biCC9#_esm4JrIIF7M2qf37k7}wD$fu&-0;qawj-7(rW%p@Gg zLb$>7K(KJS)|oq*vGwOA>}Pa8ZJ-W;>yMoUExj$qng$4MJ^t-|RU-~Q#iWBbzj+GV z5H0@XPh2_0hB}A5HO6k8SP}?=Wm@Rtp{+Gv#vj!6RvkNtf=CX)#L(6zi0fEc*(%*n z@M+nHnLE7D_O3_nH|*fW-KA{d74Oj%gs(GA>4IJi-#>pp1hnVjeFgWH>L+G$UP6(d zsckG=A4Wcx9etD*Kjm+-I3&kANzHVNR#zZoPmQr(SU5d1)WXHbAC21o zN@#Z0bw!Ry@${57BC}4i?vk&5NQ$l^yqY?t@21zZyq>(O!Bk%=^Qehg>~<0z{M6sT zQ^;?>apjq+U6od+R0^)Q7!ryL*Ic0*w4T>+!!S+#Q`+XSvt}(JjLS96O%J!;$`;vA ze+Uh^A$*qzvbDFlyx|U-TXmbiAfGEb0p1^%lXZf%aD3TeyKfqIpJfR9-w{0b{L<1V#wVrU9YP6VV;}=AdPvWfG z&i_NoJvL_=b!(%JZQHhO+qOHl(=qPYwr$%^IyO4C?d0wCthL{&ReOKi|KO_m;hM9? zIgZoHk%*5rMhI0nInO3mHcuI-Kk$of!b4{Or;tNG=$s&LOWKg2~p9oQ%RIS!3-I3V*pN$ z1V|N%cXgPZ6(Cn(L9hYRLD{gKUY~TLSQHtEB?nG0;@vm zD080giO13f*yO|tyHR*8A@9%5?rO~^)Z$W2ZTg>``Y`?v%gpLAx0QUZ=RZ5vL+6ic zQ3MG2bDG%7vWC{N>7iXC(9HLRX@NwL(izs~)6lcWxr0z!RXI*6&h;Q(7L) z&RkR04dOUv!XpsIW-IC_%MtJ|75(&n*Jz|`m&)0^EUuPIw(gyc?nAjS@ z9K_?liAQWAQ2J5|Q_Dj*d}TH?wnCkgMq-JDr+Yo&b@wG1jpCcVQBmUw`DQ%OADHg` zx}blCM~92UqX!GwP{c!E|5y$VEZbKuNxIA;sSiXP;044qX~@y4JJRHRS?yy%k93Qj zV1CfkYF1}0=;SNEKQoHKk&;>KcmA1tzoWm7QND8Dzz71kWKa~Sf0;s?RB;jQa_wzG zQt;>=;_Us#h5$$h;BC^pDm$LvFsCn%tIu*L`u1I4yT1y7t*LPh9thPY{poo4v?=>R zgmluhOl1ZL`Sj?;u;DaOD)k2prFKG}1>*rI#^YeSK>a3F6}6=4=%7k3>=9v!bd2cS zSqVE3#1h6H!D>Y5M-9HjYDI0kL@2!08$CsE?K+%*xuPM=*wxiy ze(E18{wLNrz%0*Cxj26Tupw)H!$?!C!isaq#VpuWo!AopUeLScrzb>#ehq%5B2^+8 zvB_cx-S&C1_mP)jK(mBFSsR4irCNtvpq=dn=Kmp!xF;~~Nl?vE(90C^>+eeucN3Rm zR#?p1!Pt!C;0mA9(<-4xrY)7P!&&t&Toe#i3p^cl4*vztvX{+fE;i7_cqZvc@#@L} zsCWOBlmMwq>XYS8M~BY_IHvAm-WG?>JT#H{{N-C+OalrU!#6INK5c6<8pY1Nrb??7 zFeVz1P5tOD6Ap19f=yvpvxB? zSQd@6LF7U4=v7Ffbf06dy4RkkIgaTzvR_pI%WAk=Q1kL)NtI5_pvBoZz;BlIJCSg; zKxVqb^==~tPRvQnLM_6%k&)vY<|(2x38&_R0(~bMFEgQ` z2af^L)6@OqezX^aRM?s@m2LhY$&rRI8l(JnnsIXB+ucn*)!3Rc@b(BR#@jPT9XMzjhLg{KzcPX=?z^* z_K7vDbSRck+fqQepCwOeM0PXCS6uuk=MOGjGz<7dP^CMmx3qtdJ_{^M$$mX}ys}?} z@UeN%+=ya#?!bx7b*S^RDJ|RIP~VInVXcI!*zD7JD!k0v9|xcM^HFThY-R;54`<1Q zw;f{JeZ0LL+7g7wTzLh@5vg#TT0tMdF#A}9SDF5@YYN{LNdRK;r4UcHTO_Jfx(qZ)LY_<4l93C31C%kjXc2U^xj7&*z*th}9d7;9>&k)O+l5{h(8QYxlzTHYZ)cBN!(Lq&uil8CJ2}5 zPn`;)3U^~_KdH|ee}YM+KdUctx-89*{rNY3nSMWMn$fHKPND~8N%}>@&XKCUIA761 z&vfEJkygDvt1qW^<475-6?#W|)b0_!bC+5muoK_B`9(V{|Go=dD|NpSH)BvP03(F9`CL&bthwTz>;~^<@MshVyJJ>XRD88rS#|o+ z;jcUTVTtQvD<31svjpjb#j$x!knx}`GJHs!$lP=^)8Dz5Q>fCJwBb61{Nsg*r6SM? z`ll^SSWO*W51p;>w$Uo32XB1B>YSqHc>~phg22F}dVoR8x7x!MvoAXIt8$Ukk{vSm z@t6kvhP(t9G2tr18k`1;#c&v4gd(lfF(ThGuGoS*w89 zb#PRF^u@>sxGjm$4e%p zaP*2R^N~Mm2EXx-)bC;P()dk$|I=J+t07RG2--l~lHOMF6f#Hakoa&8>*#J6#{#H> z>o=bqHZ0(sk%9V8|WZf?8BkrvU2r$ zuQ#xtdLYO(Sp=AZ6PiHFU?BwK%LmR(nj6ut;VgT@x+oe{jK_{wkzt~~uCX5Oq%O|J zKJOd53&OtkQSkm6#&tThy&C4qcfegS#X#H@ zI7d`cLR^Ge&~7>bNx0}8GoE`7)1pcngC}s^X=>>U1Ar6?Z#UnP8|wh#GVmGe_}K{R z(_M#1>zqX;wuUD8ZFn?L#-9KkCM8;u?1fA*%BH84Ez;gdQfFAaWhVFgc_K zzXs_d6$+NGVkd~tKHK3#A`C8w_w%WRApr{Q2eS~K}zK?OihYy7?u-z$F-aA~3 zB=vF@J0-b;I(H0mJF)ap9Hq|8BMI|)=|Ln}{F8$^k%|Ya*aR82qxa|d8CbsZfs05z zT_zjVCI^%nz^fd5qdce^3_%U&Iwi6+9?0kCu7+AaVrROSe?MTpdHb(px^}&*x_a=f zABdujaw4n;br2KNpA3Cu@4*xtYwRNHYS+9fT26i=_e4l0B-Mrs*Ypy$J@(|5zQ%l3%=o<6U?LjVAp8CW!a3buFS~JiQ3~vkyUn@Q7g$Bl#GPOBs9i1jZw?RL+JrDO|c;n|_02OOm zN!z;>w8Ig&-^-?)TR(j>Q;|t0D_gZMTLe!aeofzRWeqy-s z^%^T$Xp+>mL%WWkFBn4Fk$40O{t0cw5wl)WP;XQw4mw$%<15lmwEwq;*s>=djc!ZK zjtsw?nSl)4T}82LX8#0^^_w)cKG6-b)9*@?fx$i{RPO6NX}S2L!A8N5Ck}|Ab-^pe zalNz|M)1Q7|B`^|cH zqcrnq5e4Emeg(|V^E?V9`{_GvY0vhy3C(9cJ#3mD-2o%m;w_LC9H82(_M;J#pGhD_(HqVbkYZAE{ul$Yw*u(;BH|6#VZ(Z6*AS`!H~C;SktT@zii^ zg(&5#LXd_VTonUD?cCror#*#pK(z(NU<uEiU;Y%Qo3X{gs))yf!=$~A!u*Rm+sx;IA3b}ySJ1KR3Dh_Z_|`UW z%aW<_bR(KWuw5Gcw1g>7bER|Cn@wRSzsbeEwxqzUj7FCbgE|FSM3mUM)O2U@jTprsE|Kqln(0ac>?S(?5Uef<*LaWuw%pD zBu+mg9p3{>rG{g6*xJifP<(&3K4ho%@+Z?s&wnnJCWhs^Vqdo?yy9`YQIE1*YQDM7 zOz%R_Si_ENYaf+#C@@6tR4Z`-O?32k8-EYjaevJ*5lfedIPk^uYeQQV-iIM#%54l* z+gtr1W7KJUZ!8w71Gz|mQ%EHGme??>rAvPx;)0iIH5m-EP$dLVL%3C6zxhU_-IPyr zw<<4_!aC7>@ufh2Yacs8h+u%km%oM?>`(mUo3C2FeK?uDmXQemR`40LvsS;ONZGT% z8E26nx?gW35#03wg_g$?|7$KqS{TUGAz_4D8(Po!2s9Z7;*Z%Gugc4ab*eumX0yKA zR1P%~46gn|!oN*U;{i@Bjh=fcVWKG*J6^U>Ldx9`UYriJ0FcJkr`92pL$xoN)}vh- z4-Zp}PS0mZW7dU_4^*-gfAHZh-nA`6e&8$I$YHG4t^Fxk|H{t<=dj4CL;k;WHDX3P zPvQcc={A@x_R5Fqf|sTX9u03j_=9L`H5Kj+6u93X0-RIws%03z)08{D`>cxO@jGmf zJ#k*9MJvQz%zi-(0oyat@MS|3D;dG2zV`@OCyE+S3gHE`Y{oVRw&!$*W!XWa`{KI` zDQX=B4wAAJrOftH4l$&nu7OkLdsT>+vwwI;8H-~DRMf}3;L$sSr-r6Pr(GpI$)iK+Zhu^_u8C1}xOn$}9F&!e`VO zX4Rb;(C2fCKab2n5ST~-^PR$n;b6w9*KG`iEv=QTTzXUdOJ5QvZ*HiQq}|@q99paT z90xZ$st~p@oFqJaRv~`6q6sFt-|^@=us;Y5U8CZjPn$oR4A$jk^K-U}p3)^hq3u@6 zAY(>hF{P&!Uuq*VTB@XXW)fd%FiqILb!y5M6B$}(X8g2!ekE||n+BBOixReZo`%!0 z<7Om6VNj2&>~;QztNbX7J|vPhm~vJ*y5@n2(8QzebKvfBkepSJFm_1Py0t{|tBVx} z5!IjS@Z1=506k9q;+&DT4KGa98*@s>H&A z@%OiHVhdy(WZ)E6o5)uUI7;xUVLMpHI}C+yP)-9RLSf`x8kK^remr|`VaMEhgXs<- z=66rXpaNFBa;U%_g;)F%4JQ>4H3S2(h3^}rWA;E0t~-iL=A7qNT3a-gkGVUNr&+P= z(b0GXe8gP8AX|I#Z27$o1?=G{e8G|fl~yd((F1d&T@X25s*JUshEU7*NePlTXjpm* z7^&F~Y0Vs5wC=TS zKNalx5D@`!KMO>`72`Zo!w}@>u(z~zseHzoe|T|ChR)ylgA5iN6VF28QaSAL@ff*H zG)FG}UC#-d#=q(^MvSRy`5S>2Raqi5hw@L;)Eae1=XKQqxsL#8C24{*u!s{GW!#x=30;NN0Flug_mrWrxOrRxMH(Fz{l62*py56mUV ziGe3=3FNf5JYqjsG1oPo$@yp8e(=tx$j84qwrw6f5r2Ho!;A%xhV2O{_(F_1WN(|t zpQUxMNqS}7fq;;*G><^(l_8#V3C|pQm=b(*#a&tofuvZhQ#^WJig!@m zM80ol^I5aX0E26ca*+aT0a@J&N0$C#&RPWV*_$QKl9BsP49z@K@j@GZskT?(?0o<# z@4HFgzV*_(3*4rPyP^|-f1l2}73kodE-RDExot?OSFqaiH>MW)C5UWPjEV4XD0NE<5(x@_=v{5A2q z2h#V~JV4SIPbT()uM_)_dmSNkHdiZgd|o zie84iP|!?>3jcB#DSAkj<)3yQ5uqp&%vz+T|H>QQE{OfwL~INj6gkt1FJWh_U7AGG zjfBx?FnrRh?Kf9PK&jNc&GB`@X~{)`g7&GpiNw~Db;BiB^*xv%L;-h%K$dB%MM6+4 zt?eUAkPr^EkP6|9pd1Om&|~ zID9Rhq<|Q?CK5j#=j3a4m0(c4CD`_jAL$~bQM5d1r^>RG&=L{7vrw?wcT~AEJHU87 zB@8bB|S|7NpNOQItD=C$M|KsNatJVLg7R$PP(ndnX--5I)WuW zI1c%-PvyT+8Ph#CUsfHCen_X;^Q6&7u#F&S`wV@GBD($-3-dyVo8J@5GYIXC9tVXs zZ$$P7zI=K6Yt&LAwvj1!L;W0MoYznd-a+Td#EHr~Ef%a!w$`DAB2oLJ;0hn3h7LZF z{YPN=U$O&`fG0c0d5cfQY@a$1bCF;-Xj0Z>+L}1lwdz!`qtj`fQ;2suz)kn9ELNX< zW~qjXB>bt>Q{sZ>Xbn!+3bHDM$qKq*ENaM$`q6rvBDBm09V;z;EiJQb8UTG|LcB2~ z6_rB|idkbv{7_eJ>r53g6k%^omJSRL`NgV%t9^MUj@pe^J7sUS_~^gJW*Uuw^>`S;o|;&#w@B@vkh~liG0t z!iP4!PEkRg&MxM6$C&E)ex`5rBByW6a| ztci3RK;Uh{4irw-f@G?X;$^A(CmVLMzkQ{T)&TVYgug&_Qrb3F%cZ&)z4~ntWW$G< zeNBVYN+8Y2(B#2ixzWPg&7i&;HhAtl7})q=&{Fyn?xMpSp00uoE5dfzKlPN46dyq;l#L^lr%0&Wgbv-qCuw`mQ7uMikG&`JGJtB|=Ffut6#S5zj&TkNs1W3>}KWgg;4ww`@4s6l} zdVlBJI_Q>1==7&NChly;WOSZ*zm+n!h|W4n>25s78{@`>!zI}AtS4!cXy)pUlld8m z*DZ=Lnu9}L@n4-0Ybn^JWI$S6_-s}auiTzC+#K=1l6(*SiqzN3bZD0#sAk{nz#&I#s|#rI5bQx=IdDRd=-%BH4TMG} z_kVV#ucy>=Zhr>kVEO$DfxT5wM3N>?N z;41Br^3Mc?8d}StFNy)pDvJtvz9M0JhCw4Qkk`pqsN*%drz**JzQr5%aRMojWO$6D z*8seTDB?G&gWOpZ8XhA|;C^5$tYR!AJqjl_WeK zj2N|7FJx*cnEYoni#9ytNcqY&08c0gpZmKJm#wIrW~!5=zY$-t@6Sq)o^nCWP^vtO zSr>xUWhe%KCboyj3ebuQ+dIO;DQdUKs7aKPvtkM+XK~{ZTi00M-(cFMLhsP}PFEWP zX{tM-lxP8Qr4>zGN{RlxV@;|zFL7v+A>kpRlL`?NQS)B15~euT_vfLFnhvQQ4G5vB zh1}fVuCT50mD*6=j9iXpI2?aR=8pv-uy}V7fwNJ)Ejg=~+>h+4CdltQ(DVQ#u0;gC zp*u)w!wY|Z)$Hi|@5s?Pd$bO;VL#LgNppo+Y;a#atz-imI1NGKeHx?(-yLG&pd+aySnt zcdda4z@Rs<9>y;q@$y$=M1nT5#fj;ZagbN)QzuK2F6F`QH_Mq2X3j&~joRzn4D!vb zPWF?@={MvmMs`m-c!rBOqi)2?pp=ZS6k^!S2U~CuU(h1Boa zmFk0Ut+B$VN8IkgJ>LvpY|vs8Y?b~MEW?F7pFad)y(!qyWC@<(E`D5X;NbvINMRwR z?IsWX$l;>cXeW0pO3Gbe&=n72K&hNl(GPSs6Jalq%CWarkw|{$cBkP>DXQakr9uTw z6-L&bb?Mj%4pxvYr2b`^SypolZk%(cO68lA*}<8Rcp~&WlGCbI2t_Q_`!um_iAd|N zif@fXt=db*PRuokA1aG$f73j@*LX8g^alPdxtozHO-$EDPkdT@?KfzVwFv^UGQ5L? zxwDr3xWDxWuQ1Y5?q+paEE5)aZBp&TWiBU`BSaTRUT#&f3WOr4OU{~hl5c!TdURpG zg(6{pD&ZZj%<HQs@DBfrtmYuPYHM;`w#}ky#3$6r+3)}`8+H6tImsSf z|Cz#!c)_+*e}d@YFNy`Hymz||hbF5TIKl?T+G(R3Iq5-yyA8BT+zgK>OvX-$RWI6O ztRpoPC=8-k>BnFreIY9g{;*iN$oHidt*k~kI=2KqqC}kk)&B~* zuLi_O?8UR?7`1boF(t{lfQ5?K!3f8~-)AJb`4Wl9P^ggmbca}x{^k&A;O$MO4abq#H32QHalDt!<~K@c%SU zU2cGK$6~v|(0Ws&arS~VvZC7+Lbsg02BD5gOGQx8k&jys-Qw?ToHn=aT^5*l8rUtf z#e?8ArqtoRX1&91={?D>x?0QXI8r8c5FPF53EuTMo94St$LA;~U3JU03!JZvyF@uT zr246BVf`7yf}gY}W+T6eH33Ft|J267<4}j&hR~#0c~+T?MIc*nYDkSi1`SG;nLMic znppTOZy*uvUPZZ3{ZU9v_ziF=pto`te0cm*{>KF~z$Al>!Yp_Gq}b5oiOm3KpOA(2 z)$9W`ci4P@&&eYUrzE6FIuzTZXuLC8u=4G21^5a`!zux&FrLD%g9o;nXjByL0~9k^ z_!2tkGlZeVg3Oaz95)va_|fiKdGzPG2&)Xfj;!PvaXFh(7iv?n!WwYF3kFy2DEDD< z=74+xzklRInS#B=`+M$;lSLw za6a$HiHY$hQ;`dChb_n$C`DYuU~Y4aAKW(5@2+dC8Y$&3z&k!TXBkb7i+l2Fn$tlL zKF+&)K|)6+xhR(JcFaOoz(IPAq~S3^C>21Eyd99y-ah2GX+kL2Nd97NBgL25p~$20 zaMZFtVNirU7Ks2zjujyv#-RHOXnhm7v0_l5C58i(e7nsi=tPII7NNq?y%yp;Xy&B< zs{wR+SlGEU7!$l^6*FM~FTiVk>{}HO>4IJB%aL{lVlZZRNxGswg1wjjVxwc0Q1odKhBgpp zrS^QrUX*T(nqxzSoT`fOa@6j8ZgNx>>SKm3N!3N)G&)J#gYj?t+q+OgVe1m0Nezq7AT{&7&3~w-fy16F%8$734(<8Vpv) z`at>_8ql}K!PA=tf5N8GRtbtz9_4#ji0ZfnLXx3$=iz;{WhiZXpUeIj=jmpWg_zr& z`%K>}tamY~s4i>2AF$1?nl!D~%ggHgSEPk1QPeQmjsM9_B2y`geKsbgD0riZSyG*4 z96D1Wu{JSRIiXGGwygKk{mIBPS6rSMuTI{kzIbY{8mkKgpateO@`&@rw3)n>eHSxs ztQS5E&n*khM5on8%sZ0ZjV$1MUl%p?UMH;0h|-6xqo*!Z=B77SdD9Pk2J~F3+5N5a zXFw0&LS;g>hn%TAdGdiZ+%rJc3NbJElcm-zCbYblAxn1t&hSjyb!eGsxyBY`KRrIV z3?I-e`_C&_2H&3O8yF@T6-79cHMezXaJNy$xwQDbxRdTEY8b0SM8vrfIj2{XFEi=s z;D6Q>DwE{4{*h8OxW?F7Lu4zrWaUemLHF5F=jt36nKF;gmi>h)+dQnU1;Ia)uPuX! zqE-P2%a^+b2yaPT8-z^9OalVOFOma!wJ`lZ=ukGx*LN4T&0#XNA!@wvdV#-Tu2MJQ zzp)5+n9Y=XKaYUUYW*rTQl(!y)ZjV+Ilq{_WpQ-;K$Q4&;NSK*A&B57FIaftXuB}L zux$`z37U8C)z49O&vDo#*#41`*!*TTjHKFy@ifK zrqblo0x?VB2P|wAmxdB^aqcB`XvrKhQvWJN32Va7I6i{X?4F8USjNND5}bqH@y-_{ z*>l9q=8^1#q%zG}AkbVuJ9B9pz3FZggeoi0FQE;96|~u(ux0-v;BGI}stiH}@sc&x zdnZi`!h2!-Mg!@$j6IX$AF@_{C*x_1}w_(bzV2850QE;(;4qH$l$yJg*DWG>O>Ed(>}y(dZyY(~GTiOP>u_B5EvRX7SrZjziL0 z2^h@XCu+i>g)okRL7jQVq9vzG^#c>GDYW&nr+sEOq{x|<3P0W1IqWAQ240@~Jpx`- zMd%cF1rzR1`u`)~sW%^Jh-IwVY%>Yu$lE4A9Z*ujIsJF&mE~XVQE?U1W2xhmY}v8i1vU zXLT|qD6wJwyx~xLQRB&xW5?$b4JnnrEc0ytn5t;l8_HSic=vytqr$JM=bSJcO z@@BxaM8SZOT%pVpK7^+bB@Sy7E`l>&u+YKuEJLN4DOW|+!SujZvu`6BiU50&h=dAL zbQvM~*}WAE@R2uqt|vm1A+a;n2oHAh!%{$LZ9PqkC661b3Y#nzbbm*+PL?`4*3wQm z&UmUymK`TI=qZ-M-$p$~w^Iv#(F{kt{3_;O~$Vy`F}_0oo?o5sBU_p3C!s$?`q*TlKeb<{D_1a|AIUF*g_Gk>xWw?sNU_(~xxV z9+%uAT7${3h2*wRu@Y_X6QbM)|%QNT742BB{h z_z1|1$eq-`4lZDZA%u;thoe|nOCQ#vb=J7X^g*rdCvX+XN*Mp=b-ScpeZBoZ=3{=(VoBfT`}8$4daN0H&#DDV8m9U=wf z2vIlNMiK`Pb_1+@zF-v6he)8%W#(=;_!mwieZ;G;bW^)BDn@&{R}1jFfIRs$2ry7x zQ#$6i)|f%L6cQ{T8_I`v?3yf?kn+v&O!NsNxEwlGqv!xPzB(RL=u7iF{Cc@ZdB0Mx z9W>HeQ+onW6M4&IX!~{76V1p+b_+$%*H~rY@A!_)k2WN7&4ih!{-O%<6$nFQZV|qG zT0B(g)`A=TG~mwkO|m9ty+EIk3mn^oklL&UpLOh1)ql1s&9*d4CO|A#Nf=x9kvqk2 z3LhuUqLpHjlcn}`Hean1TDul)`Fm-EQnK}zRG$l^Vm{B#Y{_XI3}ay8US_D-Ra3ms zfF@0*u1t+!Ve4Nt1ocJQ;N;1aS{DEEzRAt?pqp z66}RCmy?wttDyp#WxU&6WVI*pux!b(<*tG`&whl?@3ONV&`ByvsmvNWCo zM5aDICt6L*>+0W|WL`CHAXBrF1}3x|I-`B%tuDmIbdJe=w9ja(*?v-RgJ0fOX*wp7 z95w(%{lP(G{{Ig!yRLx5Grblv#Jf6xv>+ZQV)tFkzd}UXg+X8W9)Zf2x1Fj*VxBz^z-gJu=+q^TI#memQ+I(WRyS_6tlOZ(=`@sd5QGNM=y@#X7@LT; zQ{3XL7GU*d{QkfpH@UHEjj(nA&?{4Ebqf0#Gv{mlZWeg9nzkXhorS+l`-dBcM_GT> zEEN+5!nNJ%yCGS5r5lvkUSf#*8xyMsgS(fQ(6{vh-=UWUsIuOFf2dfI7lI)0ID9Cb zWj8Md!+gnJJJAv9>T|j<$cwp~DUu)PyW`MZ{D9<^Yd^|H` z2(h;b*!KL4qHY<)MczMFr@>Ey5Ro5x{&Vr$2D7bkI*sZ5cx#| z_qvEsRmXdtd8H%5V8vTzEi<--))6NaJGRvCIEQsUZI?tgiMkv~doEJ4v;Iz`>@5eA zqYW;6kkss8N{nVyu68_{?$kllDb+c~zAw89F64>*ftWJ_H_<2|=^%df01J?OA z>IF5P2$jE~WjqsG|D5y*vIbYtX5=9wR4DxR?Kxg(d`8i41-C%kew=v%Kgm0Q6m+H7%fl)81Dv|p5H&|y? zOW%eH&B@Y*T9Z^@DSL!1W~#^eAP~0P3118OsAolG9s+;)20hq3q;EG+A#EtEF;<4) zWmz}F&iInSM{4o3TN5c{656rDXyvyKUeH-zV9H0LG>HYtY`g0OpM$c01AmsE8n&glIITvxUzBSu)yg~s1=MELuz>JGT)vEDaYtN7d33_-B5PLT@F37KUS z3Uu&t;d#ZECc$9RM9+if*fqA~H8`aQ8XOLX@rFVQ#>>KMP<;zMXOp^Lc~~vB!>}zK z{iIHRfy`*4tsc~lqhpU7Sz(Wbxe#P+dD}v{FTBut2SXtW@rM3t7}TlWf?QB=`Mx8M zENXaA2r6-I!4EgB;IB}+GZzr%V0U~#_>uJE;wo?V69`^^GJ*>XGAS?+qss@YV7TbtiFr2 zj1!sDfqa$mc@zMg%-uO%LRH4Pc4K?(fO1R$1r){0R2<%oi-sCz1O|$@YBvA-HztGm z!4aKtl5&an(N`QXJUARonADCJH1@Ju+QH~wBJE7FVZ`}L6BfGh_IyG-6neZ*s@)+E zI;)!PxE;0EJRd>m6+NY_iYIls|B>}-QN0bsuj*t(^6gE<5AWIaGG0pD@_5&T2`W=O z!Gte}`@wQ49G@Zf|6AiDW;TPsvOf1-fF255bZ z%rR!IrWdN(yQ{*F-%xg8VXF7*Ct>;F(`F+djV5)#=sjUYL8pi(l^!BVAj-Z@6%3P- zj9es&1rVz`e`9S;@y0bg5^5=r)=qp}nY>4c@Xv(i(+{V3<31ZP)iu=6*WN{Vw{h1% z6Rpkcmch8^13DSku?PJL@BQ`AML%INt7Qi^ofK)V*Z*=U5Ys|AKkLal`LNdZOF$UQ ze`=x3%aOU>Yru^wO>R1%vq5y%D;KiZpeCD|8|b%-NOZ@u)$pc&FUk7V6pwfuc+dCl zfx6muCbnRe{KX+;-H?nI&(3usn05nKW&x&D82fRuOIb zbuW}f(Gq~1B@lpH-N#3-L<0@L_5g_XPiHMj|8~-85Sga}43ltUCv%lgTa`oSC6hwb z-l%i@X-Q@;_^gh$Rzu%ET7zYq)HgtmZ)C^+);sYFQ12^w`%SgE|5I7j!`YBOE>k^|4zA#x_^*PKmQDUC-IrCk)UC*Dmhx{s+OX_&lNPE+q{y{jfxSD?~upWf<*Bq!@ z+F6jdV-7K6PE|D;tcNtPaJbf^=a&B{x^5zEh`BjD2?EgX0+Nk>Fbf&gICA-W_C;_4 z$`iAHE^rVDdhXcaB8bc#1^J=hG^8J1F-Q5PvrYtNt;fUw0d7IP)I3NY7`u45nVSik zU>VoMJLkCniJEfe#g>;3@Y&7^>UkFo@@m_N1th}hH(A;{zKhCPBSHerf>=H!3bVaE zhzcbI@zYo(N0(O-T^`XIhjSKfxGwX5GgwfPfdw(F=KzMxEl#}A;ClqsnDo!TgS4+m z{tNHV;x^(KHaNAqBMw3h?J6eU$s^$3Yz_Yb)vGFde8Haz#lME}#DSIq@>kj3Ys?TH z>6a&HRGlf}$%K@FE!a6g0`9Z;fML+Zw8k2?%D%RSv=BKI#;_G)zBnZ)&*fUfFi5n*&XTAG@nZP?>5&hQL>lzdVJzOA!ET@$+(eu4g z0dMhMuYQQkM~w-)6gKnZyHTjHd?L?zf2;ELgXNsqP?rVNU8^@zh=AY3PK6kj4+SNr z_i6Ya>&pG!-l(@aX!ssTkbVRyY9YIyVmq%sC~%TtRyE0vH;yzvfN5W%yM@LS;n#14 zpG#(>f^9V`Q^x-!PJJ<^QO8_*bFh+ZZFD<4HNPzLFAMs6b70A z-w>w|z^|@E91p_Oc>5o~XwF5Jp!VezuO;Gf&?NhQeiOrsTr|5`>% zu^7%q^eXTsNbtisV-G9hzxR_u*Ye6ePY8U2@*1Yw1l5q}?V9REG41WvG(?srNV|2h z(v^KMVn8_vWw?T$;#{uv0Uf0nzL?i(q5w`$JFBLEfTGcn1w`o82{&k(%#tX)%K)El z(nMy@V*GDnmtsvweX!+SH(^hEExh3ZLaq30#_NLxLL%gsPB+n`tya%MQa)f7i;xEV!m=OwO=$@VIAH}6?da(xWlr(?>4>JMbOi)H!07phqP}9Pn8rJ zO8`4~p1IQ^-S;;{rL8P!1-k=UOz;L(Cm|$87{cq9U6wSirYh+;@nuEI7j9#`q>^?@7 zJ@X`75!0Y7>QJ*>qyCLZY8$P!yVO0@z`u226=Vnt)*@|OFdT#SYQYeVuPhZ4#Cs@h zg}s?nVoW01-31JtNIAP4f=Td`#EfF%fV<}Y8*U%y3%+{tMs|rcMDu`dpC4M~FK6(C z&RK|OVzK}J>xu@U>Lb(Q#TD>;Jo0Cd*<9eYmjMio;pp$#tM@&4P_9@MPXxk*NwVf* z(${g(&cC(@wFV5{I|U8-G9*jkTi<&>{%?ouEsT(#I%%!7ina%p>!{WWRjRs6oaM_| zXx_eoIz5y}ga;h22%1lpTE}83^RsA@+8cQRIxj&}t&Il0r?ZI}?bvF<>XZK1BIu=+ zn47Clmd+7l(d#$#wwsHWwCe6&bD3L+)>|Pzp&yTVc^`u~6h}X>fep+o_11aF zo_K_b=tI^Dh9|E!DmVnIS~R*(4<{u1xKMQ z08FBiv{&N$Bcj6I3B+Yu)O;vET+{a3WcHYUD*ExBoaj#U$cHuuzQw8Nuyf%?B4$JN zr-v-BpA7;)q5gY~L7~_i9KmrdmdlI@WZQ=K+zB|LWZUTyGw?|%)t@yTyxV0f2JSy( z@RhEk+--p7;NNoeZU+kf`dSNc*70{f;3nsQ_^=&|EwF1e;gU8{aL921RXrc+Hxl`=LWqkDn9 z@_AXCF$lP<2QW6)ajgh9^kyo71x34PC@)I?WGyS7eJOvabDt1Ua$8%cd9R{`@_4R* zh7y#3Y%LSbPvD`l%sZ`Elk``4#6?#ZW9-0o@}UvD$xM?2%hyp^aB1uPK!$(7oGobT z`97425@Vt;gm_q!z%Wwh^*R4jD2IENe5)IM+78jU;cXJ&yT>re_|_&5wRUSkM|N(a zU%!<3KO%Kq8Ed~=l;XfbP4~>XVAbS1Uk`|;(4w=j{&lM|h$`N=1D{K-Qt=@~7XTqk zIq;VdPSQFx%eP1fCOm4OO+U3;0+jx9k5s+pZIz(*)xF>RCgQU96P_y{52jtfmd-)E zbLA>gO24OQwQTBwISDbO+(kac)%qhVwaF*Hz1zKy>;%ay!K-N&M5-Qt?&J{!hB1Z1 zx0m@e^b9nn*|0*SJJR7Xi07%hFcl+Wc01sfxmsJ{1UY}4AyWcF2?U3-7?F-vlIEIi zshC;%0H&biSf!m*-$>ztr6w~A74a)i_m}VHl9wJco5=yeEcbeE=#W7BR2Oz?L-+2g zozRom025%p=c*Yl-S^hJP8MAFa*!O7w_5vkEc~I5)dY&Ye?}k-GgC=MCS`>V|6EA} zsadkGkdQZwF%+Wqo>@v+_SHe0j)T!waI|N3k0+Lwj$^z17py;AJWgZP$&+fMKpY)* z!b1)Sem4bxdxUyQ`jSC+c=a~>_qc>Zfytof6hAqeY=6R~YU@)z7cQNUo_Cl?=fC5` z;jjplqQVKjLF--X(iZqve`^Zg{9j82ii1vFAi@fI99j^r)2SYTL!34vju{L9w_48n zoIqr0cU*e~;C)mjpUma~Zyfg{Lp1G=3&6e$E@~ZcOJu5|S>aat?emdxzM<*b(}c1p zbhq5nVV5J+SXPD`%E!ueHv;H7Z`Qp0A?;GOMxrf`Xjts;>VHfXSU`&$h#-|sMLX2B zo)NBjN%$F=QMRM;BeOf%3zY5vtWftcchj+#c6USpdC+nHAPm~ zn|A9byM;3TIcv08#->@;5-= z?76(i*WPZwwjeEIn+bLD%(M36o``nE74o{fX5T=DlL&T*_&dhmM5EtFHO3N?(B3r# z(>Hjb_9y$CZ5*fS{m56|MVX1bKqvT$TIbA~FnKrl$;}&g8@!kCJJTL<)o;V{=3%+; zYenz$g#oFM@Fx!wATVQ)sXudbj!-5HkhwvRq5c*7)A0E~j5~Ui^?{dnN+F|hqxXcT z8GJOU07rkFe`RVIT3kwx%7B&bwE(HR!=eLM1jk{?1~2aZ4!RMCwIBhPX(9TX3W%xb zee54UgaIeaQy(cMh&5uo>dv`gtnv2cgFJ=gjJ=)7HZah7G|#F=CTvIq(BQMTqk~8D zv(uVgcYy?+dadlYWwahm;R-?257ufq&2PBmhjlXlt1!amK85uFvLrVQl)?CzSDiT-w zML5ilz+zT*D?H3F(Au%}wZZP|HEVkTXvcMEUq2bxqg zD|9J8EdnPb030IJ<6EQfFDc3k#N{at^@Eh+1TKi}ljbZ+psT>S=_PPM%7$yPET2Rm z_(>mrE%tD(_7bNxMVtlF0Oj^>bNJ<(c!O^XypriVGGpH1j-WL=f?YGgf=Ngj5Gb&B zk9u*@P2zw0)f;+~o5Se`J3am2$bWCOWRgv^D^VCX{ZUYnGsoI!(?@@<#T}@j=%ti( zqf%P{H6XEF_SPh1Mb?G|CI^fiBlQ7|ynv8e#355 z7<0jJVVau~|UeubW~cUd(&NI;6G#turxQcvdP z_sp5wJ`@RmPK_V%u&n8!Fro=S4owUMOhC`Z_W@K#q6xBWSiZAs_O~Dooyg=Pm z3WZt?0gw~cHt(mclv9kz{01dwVzbP{4GpUwTU;LQvsSmT9!%$(HG;!*EUaX|Y>m&s zx!pN28pS$O~zL=G3pf0)QnT;I!}w* zJ5z76LFnOcr3EQjoN6W6bMc9?Ri^DzVBYJjmUjSvZRM&N@OPC5k&tE;tt=oE!XmQO zoJ%4q=yP`rEyq?tVJn}pru238tYSUS*MRzut8Vm7ch*~Aau$g&1kFCp>QY7w+R>pxX>>1mt9*1Ri^9NQ+{d;-Pf6; zaqnhFf=DAgHxdG@;!SVQo2b8a;a?3KYJC)x7M;8bK5!}xPI^Emf8zqcXY=dburl_% zXV@)bh=KF~01STJneh3&0R`W=XAn#Zy{0l#vGG{mSrD>_%h?WyCNi#KOYHGC)DUrE z`T()Nea-wuo&kr_WTrHHSF2}O;zGX}LBUF8*I98FcK%sru}^r`lG~;9D>l%2K?h*> z-*9Fs*aS5st_eUDe~wMiATk9CS|_W1IS#0%pOaK4nzQ$OGQ_1@8^rWnUGv8m)ra12 zPci2+$`8ry`iZ7W5M!18q?WUPH@xq31CvF5yIh-J4Vv=AFmskK?fXbq^Fu6RO((P+ z$twxt?h*9L!E(vTSPs^Ve@Tb4Mgn)I_W~VD6Lw)#Zu?6DQ*-6my zx#4qq9WAjV7fJ~BZ_@l9@Cv}xOp?p^5fW86VNYBgYM65YxrfGt1?2Y<$n2tE+w8X< z2er++kR}9J(?|KS&l&iYS3QW(L~eYKSdah!B!^im43^ugMc4&^iPr7CBZ8!YO%zw8 zCljW&Oq=s66Y%&ricC`a*B8Tw&nO0K&5HfGk|{^xQ2mzE{YWJcBJE>ncP_a@blEv9 zp}N8C;GnK(^Oe`1JRcf6Om(OwQCnj4Kt9ySgM9cESpxK6{i+E?VNU7d@PDx3B>!TY zOtrcmKZDxJ(&&00!!5`lqse7DRSZ&6k<9Qq3_zD^d*n%;13XjoqSFK2E^$W670xp{ JM5dMS007N2d}06q diff --git a/static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/permissions_list.webp b/static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/permissions_list.webp deleted file mode 100644 index cc6a367702465c9371ed88bc2ce7df7c92e692ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10742 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 diff --git a/static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/security_tab.webp b/static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/security_tab.webp deleted file mode 100644 index 6f64b8eb60ec1df3bd83f77d26555770c4bdbd6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20580 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≪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 D|91@X diff --git a/static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/select_user.webp b/static/images/directorymanager/11.0/admincenter/identitystore/moreinfo/select_user.webp deleted file mode 100644 index b265b0fe6b68ab8ffecec6417722d4c3f0519354..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10634 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 diff --git a/static/images/directorymanager/11.0/admincenter/mobileservice/mobileservice.webp b/static/images/directorymanager/11.0/admincenter/mobileservice/mobileservice.webp deleted file mode 100644 index 28cb115114e92098344aa7a696d187c4860459c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34106 zcmb@t1#Fwawl(T7Ck-bJGjo$P&@eMIGcz+YGc?T1%*@Qp)L_Hx*K;oX=bqjt{nC4% zH1cQ5Baip2z1G@$Yz1)<5$0e3Kvh^kPDSoJA^D$sJ7Ul*5NZzyA}}6#%6O52{JcD( z1ZX!qSQvAgcg^(u>DQ~}n^8cqivWn=B9!Y?;(gEN%jttI!Vdyo?{!zj7uh@AiIN3^ zN8Jlxhi5pD>$BvOq7~}7=8Ctx`>_k`^W>Ay3-nX=gZ=aA3FsVqM^K-=?^_Ox{YU|7 z--5hPysH9{OnPp3A9#6zFCQU55g;!xb`$O;^bzTuHwTE_)8_m7DbCyCJM=LEY`ewz z==ewlUOyAue*$s!}2-uN%PKdwepNqi*)Ea>e~*q{OAWF0f9i%<(_R| zhp+T!+smJ4+Z`7@SHNT6+-Hza{`aT%ktg2=-&@{3Um)=9x#*4Hh4;GW$ame>|Id3> z_gjv4Hhp)2UO-jgz=tXj_zuh?828NpW`E9oY64B4YyQmo+~a-mbom$sUIKM@TORI! zz9+y>y}FA={Z2AJy7A2!J`tUD#%+{dj3XP)8_DE6RQh&Iji zQ|O5e5uAQC(9NpJdvN2+0)#zU5F3?a4^ZaExsaO_KnsoI4-jlmvjI0rfM#-AwqI1& z|CbM#z@p;sQxf_C(E!b(IQ@UKw!*DtaFyOP%2y*N_M&Z9|4Fi7bku^ebA)%yQymuk z>;QS<%P^Cw1_zhPg{59!g~o z(w0};>o&&9=(_9hRb%y=JoGMsvb<|-=Q1Vd?aYPupWMb zYgqM=p=ZX&PHAPrf?#5hufMEB5AN-nObP^<`^}%)72M8bs`r5pnnh95$5kI5$b^st z*%Y1xK~86n+>rX$F062_*#Ad(!I)$|jU{c+-R&wSf_1d0Z}(JFVLMxukNRuq(cNv| zbdC7*{WOysnipE%VdjP07Q#ZHh(3PuXHZYm13T~^`L!hTEz!Osyvg}E=Ir=v{9~3~ z#SpYM)9;(Vwk%pNMH1u$fBO$AF0}q@`?k#UTHQ~c3F0Pt>PiLk-HVmX2}1&Z0Qo-O zdMy8C&vQKfgom?_3Vl1uV;Yo>O&4hVLRtNPV&qC&iOrqx-pEL;(GnEW0dO<~RW!Sp zyy`^mn@KBFvp(Jxt?SUiOV=<5>yp#mLzadqjcrGcN@mCZ7bwkY1I1l?R^0mkiO%{$ z2o@uZzJCs(S?-)F=w_4W&yKTkB|JRiGW*Qtx%^M#)|NJ;Dw)_N`n@`*^?rVQ+;Ycq z?QL&+Lz;g@`{c*ae$s5}|HL`u0uA_r7J}F;sV(WE3kvH-Kco4%KLi%u^e;jzEM<)^ zN98CV-f6JFU8@P-y*NrjiBbhNedJzmg?7gQYIo3tzMe4&ef(Wc+J8v}T?I~!f6q2} zXguK+fS!+>g*K;nyNWYY>gX-_bg7OD_nX6m{hCM}mu;Q@-p_%T;a~L;v*Z=q&TUCr>)Jl}EoX+hb9GngG8Z7y9uS3DdQG>b;^II&)i(d`rW-m)+q| zL{p(W|7Drk^B_YJR8xL#F)-+eAf}Q8kPq;P(L+3eXD<-xFL)s<|vy5yN%XG!s{M-{?fJ{)-Mp&lS`buwrNaw3trj@#7-6|fnpnb z!31sJ$bZF;uqh}5^=h^6|3VwoRMW}OO2q%Iu_7}cGIf$f(i8R?o1e7xsH7u$0OOOP zZuMf}oQAxihi~tBHEWr^b%PoqhQV7-wT8SccplXZsvyg6|L)((wHb;w7f12C9LKDT zxmEeQAxve*j-}^`q2rSHv5$^5gd92d21fl$M;&TZ7=#i6iqM&6awCjM6k_6P{#~*F zJqsj3t}b@=Xic`88Cb#BB$Onhk|KZ1m&7S?7R#9muyaWYPGoqJRXHpjw%+5vW#D?g zAWobCPlvYIFG2*HLZ_-*RHlj(|8@KHj1S?^VCR!~`#Qrv%)j@$D4u(yy*>PSMGZFK z>!u582Hw!ID^x4i;*-Xecu?rI8286pFE$!<0l>F8>O1AlUowPZnqpg>M36)GeX<}R zgCCit@vD|gxU+a>Txv7zqG1FwwQ>a{sliOZ!LRtmT26AV1VLAnwx^({gnyAVxU9dW zj`>H;L~Ruw#{ZDNGCaC}7eGjGB;a4dm}H{&*GfY*{+HAy0RFqcVpEPO-Aeq1B}PRa zTgaXgin=b5W8SEq3SZ=j`p5`CXh9+&K42tEz^5u9GWmI(N)-{nh>#894tHIyQ9&?X z0rRAUW?+$`{S8|oZL#i5euAQy%tMzTS0wcqHv zcWRb{^3frRt;gu`1gO~8%1S0#3h~7bR0yic%vb!EmZz9r|CKPHGAxGR<7>-?YRG4} z_@b?Bsp0Y+3*k2D?kr^59^?V*zE$+#V1q=DjeuC7J*-|wVWO6>Fw$JqmIr<=)j z6y*L>e5?@vCY>YhiQzZ$RW*>FK^4nYdhQ~ z=G`%n_c#c{oc0OO7PJGXvIZSKLe7NJ>x5yiKidrM*#!-A&w0NV>i%cOPl4zDWnMxd z@Ih~x^&|h-n>jSe|1vj@MSqzd6Vax>Y!3(p&VSALKX<vr7K(KV|8^N;Q@1`r+i(7fDWx?(|!FPcJBWrzf5e_rtRi2WkE=sl4?nG8L}Bt)4yn zhs#nW1pI9|4Nn#7KksR61^MQ?vYm96Fct$LY@ zdv>P&A4v-d7Wo&5R&f_S*rZPp7;{BpU;zLPeTlJ1+F0n@5-2hXo~C~?6g>3*#w?S) z|KK^>`zpTw#?-5t!CzKyfz?^F#R`>;|9=^LNB>TM5N#$t_y6Ky{z;fUyN1nJRsUW; zu%*j){Eov-T_CF-an2UY#1m|v$z>rRof991{ar-{vmb}Jw(Lm$q1dBIAxtRHxsMlF zNWq)Pv2AAh8TY<}*cS>!=Vm3-_eQD7z-c(^)xr~Oyty#<0L|zmg|1{7s9}tv zv|g#%*IFJc0h#QS-qd?uMkHvzIU+w*Wn$aS&yRU7l9G%l%a~QjJVE7?a^9Gm)rlm{ zF8OXF!Y>uL%~`X{Dp6w9;=o4dr}+~0cV*+pn1oS$#QUws$gx1ObmN02Ubi@AKvQ>C z&^%0)$$+G*F=#CKuac*7{qIsJG5YTk>9x=I+2p1{E?|}1>aS5ZWVnI;KW*qg$}KYN zw7<$QqUDr-M?4rPlt__cYpMd6i|TBX5LM9RY8iJ@&NDg-SfMR8L@o2vxld$wj}tL4 z>FT^W#AxN^u~MfPCvgXLf4AgBzxCZRAi{o8JFcYsD>|&!OeUjr0e_9=?Em}HwG{yP1ma%*4qWLb#-q52 z$RpGM{Ey4w`HR~Jx_^{`C#}NuIlZVa`NBto!A#n&YQduS8}@j>SoApK&Aq=ObD*1H zl&--Tu9}#PLZu*ADsb)?gv#!B|1R(oL5d-~g4Sg-)<$H>We9>hyE=geVFZ;fN+Ezx zXG{u96-U=+J3vthxX6lX#;Bi9Z~0s(h1}LtG3EyVkSSnN#d0p!$w(mnu;dH>{v9IN zGdJ_g_QCKB8W8c5E0)7?TlV*?6nCBq=SND*LNf;neh_*`;a4^XnOD7g{XoAmVRkqD z_K?xxEU&ml6^Co);A4lx2zZ}E=I2+iE#Na|N5d19Lluv9i=>2JJ`zQgwfm@CP4m2E zo8|DWhs94Ys%mdI>QIT<3(yL5n=kC8l>BnvcuqK$+KTo$Y&rLSEQ|e^u#FF7SL+o& zr#WIJdOsTEjZzkOBBL2p6t?2!Zi|C9XRH-g96S_aHcpys*jiKG9<^y|C7l7B>@Gyq zZp_8X#LCkqdc;S5ZpvI&&2|x{yMBdC;A`TB1aNcrT3zWxS(^nTU_x z4gU>eBDFrch96#|z+}=kE9PdoTpDbMXd45fm+HQb=x1gbj@E(zac{RQ<#=74uNWPV ziN#uR=1ZNfqub)x5uZ$R&}!D`S?Q*;5fk+C&E?%oRJ}& z_iMrQv3LH-7YRGaa+Tat(}#)nS_1!Mx-lkOKxD*R+A&`NiVsR4L$bV(v{`!GB|@Az z2m_@gEE-z&1+&|0_s_awhsvn9X7alJVzLp6aDlTRq{RomXC3S}aTUzXbwuoCxrPQ| z;}>TvzQyVd!ij|n%%jDsR$9h^G8x7uM`Mae-V?++oTtDGO89kG+@PdK46+L^*73BDpmeVahwue2q<{UTMuv7q zXdNL5O&?T7;+t=HYt6xKv{QF_wWNmq6w0alB~_PY*ruIs!;W%Yfy8aiSuXu>mDa`o zUc-7tO#uS#)hFfneo;#ar4#@8%V@~<*aJczC~G+TmgoFS#IMfEnkM4SIqe6?cEnc~|R-M939U4&0UZ0&nk$y0J(&gybhGla_OQ2n)vr6Hu zC2)0BqbqTN*VQn9*$f#^!$~G7fkXCNqo7)#WqMMHC}%cPI8{5va5M`U{{H1ohrB&e zaO08H2fpwlO}RaGTyjRp&E)eU$lm0h2K75{VQ^%(BH8>$yEJ^!jQz%~Ze!B3r0#U; zWNMHKEpkhUZP!efoWM%{)dBJ4O$WuRVZmpC zMtp}Vfx8qZ-gmF$??W4Fvz<6+9PjJ%WGk$2J{u-vg++OTm+e2;Wvd0oT{Z^K>Z`i@ zNrdWfxx_1wu2jf}J{z!!4K%ol@g#1ZGqVs6I}_VH(j3xdJu%%@Ns!E>3!d|(O#n3P zDFF55Ty4B1{qGrxs0s!aQqtn#WlXH(;}C`!(S6q3nx1D4~ZlTsqbw z6irc9+(I8QT$H{S(M8+%ch(&pRqq#Hux1xX2T^JzThf@-nlcw4aulPiJ5U%ku> zW7MzCIEujvGJGLS#4~D&7P_a2Hx+$yLI8*(f4q+d2| zr9Y2<%gDwjs&Rau;*C4>EA`(5k*_AGA>Eb~7t>W19B~vQMR9kV?#b_HFz4ZI?)Tu! zIG=PtP+G)ikHkwN0$-%AEXHJRTUuw-Ni`LC>XuX|kTQZLC&}d;;LQ=B@{Iv_U4FY; zTGTick2lV2T?%}`=%mLmouMd=^C*(4{}Q^Gd%ql~pl`ZT``asnFJ0bUj=3w9Y(fs+ zWgG(wHUOPrD@B--}rmTLLy}o5NC_>hwi}xw`9IvZZ9=ARwvi(Hbr! zmYc7*PkRb*`k~6T+m4wT>&ZkhRRApoD-jUQI0(`axYo;U4$OKnuYpU#0v!netAc{>X4SIXhS%mJ3zq$Y4G7OXTT#!y66$t`a zFvioEoaFUQ9_^g~O4K1V*#LFgc2*qG%)gc;grIRof=U(#b*I?Y`Qx=Nm#O1st+FMF zfA$Nw#P{TNDUnTQk`zK_w~{mK>lrW_Ii3J@Pg{NW?r36~FNH)fpz)MPsNG0X!7_@9 zc(!{!gygy*FhygW;|-fxZ6=K_~Oi z4l+@Ol+;$3guS0nRfeqzD67-DV4SXz+m`5iUNBF;>ZMA@Ks?-kdRtzy|6x1;kPw)hwBVjP#SAMLkq-)AUbX$>6PVR z;Suz2k2*sX^^a6PQtQMox*}waFBCi(3=-Eo;+wvtBl$skn;x8N8rr}xcw+{iTW%*V8OY7ANuYbC&*oKdyGio@Z zgp)A7Q*I2gnZjbnbxQlJldv1-L2_HR3?9N2^piCrWYYo94dlDoMyIeM!e_&CRB~Kx zS09Bsw;x)^8LDZTi(rGAEPE}oTUGav#KN)0!XCUB*YFTot%tC4NY8qbBA%sw2p@hU zb#SSlM-{8eunsD=I{MmZAzV?Ld6srW%(}7f03n6pbZf~RVVk!zPZuMKn9hM|%kVG@ z3c9m%)MmXA<2V^fmTxtzJD~rZAV#3!K@~Moifk@0BW#n<$3NHE3dh?&gd$Cpa*xHM zWe(qx+jpP13!-o8AL0jM%NG%|me8}hddD8}HWkERe3!3a7LADXOAB$X=z5O!NV6;s zsrk+gGgU{kbN6(IKO4L_moDCndgfm84Lc@+tB$m7hw-*>3!MaHq7E{4#~LMUg@XZn60gWy`IHjmFJGyq;{8t65)b=;{>NEC>5g9Z6e@l>1x@k z!wKlxa#eFo_#>_-Y9bP}a!{qMl{|7X8R!f$;hmqQOsiu=0@;<#r2|ltl5*YM474NnA{8kVH@9WQx0* z9T1b#$fG#f4Fqy`XiU8vy*E4dSVfAPCFwr`QG3`*vz|upvy^N*ZRnqMc2RvbUEB6Z zzu_9@)O%N^g_(UH;Wc`dm|XH>>`X9!e}O2$HsL0%+8f(x*)r0@&3~HUc(eo>VotDM zLcU;|KtV>EqdCyq4-0wwA*+mzJYuY1Xw(eDUoCvUYILdi{5fKb@C~Z8lUauF7^^}jH9&lGFwIMm9b5!XRlB^;N~DPb zX|xiy*bxe_LiPMSJ}1}vh5nK+v@!%+N71@#$V)zUBLMl5Q8;HUKQ~Z4Pi~+y)DQBN zm1!Xq)b`+MEun83f9enHba~t9?yl5KI=&W>JFYo{{F4%?zqSSAnB9~I4vosgC!-(` ztbXPG7TZ^gxU-7kz$O8ir7a_Ar3tJF^9d&~-SfPqSB{Ky^;tE!+J(ai!b{`MWW_kj zs5++7$lzeD53)?~T8qSww29$-1)yFuf^;sXGnh5!I+ zUwD5j-iJ}ShRMWsiIaLv;*g4<#q=-ZN2;QK#Y*@ZCmn8m)H~) z3GYyLeYP$mI>dS$Qw-|*H{~i(#9r$aH&sj12RvA!Bqt8N53^ZDx&^^W>+}w&_7*^y zPi_nU5=0+ZUPTt!WPJhmN+QKuIUcXx8VrC4$;RE2rcY$h&XH^Qgyfpzm8m5|%f7tA z)fVJW%Owo>*3pJXAJO~`r^cF;S*;g~ zs+J26unt;V4)<2tnz3C8L*QKq zQ<5;Ma^2^?hQypNVX0q>b;gBX`XR{|OUaG9NkC&~DTn!(pq{UfYi$x(4;rMy{4WQE zqO){^dAXwA@uICZTbHAxT>GfyFJ&*31U!0j+Es0`UCcoYYIg3aWc|NH*@wvkiVq+g z&p7LQeb1)+N8@0L!g8(RaA>$xwFM|$iD}(FOw^M+LcXuwPFh30Ml)Ssgk5h_$5eYR zmC8hO4}Tkbq29Rk4af!CcK5B~x?Xo!`o419kx`Yy|A>_{Y%?-@i!!8}a$oy}#-v{` zaUWMM_Rh62)r16JQ!w5YPfIQLd)p_b7}SMdmx})|hD`o*xP51nnl6|5gT@>DtSn~N z)f|XC>S5M+6Jq^bTcHAAUW;qH1R>K&^n!<6LJE=<)!oKZ#DMR#+&V zY>c|E2Jw@V-~75S)ToHy6(MUHC_A9rI`0i5HPEB@N@7OCr0xp0h= z919sRB2W}cD?8DeD=KNIa4e^yhp}?V5$!X8s&2x9r&>nPU}qkbxt{{I!r&o&hdoMN z(6vIZ&@?d<@{5-m_M`D-^wX3?1nZUcmifEN$q>81shI=3eXoP~wfw>pPK}cLA$*G&)es!;k=(#Teu?-b1Gxk{NwdCiT8| z3nUVZZ{}%d4vB|zBx3E3{&t7uo6YApeEh4x#5NOh4>Ndq9RM`?0wFb4=gUrB;5~F7 z)9h#HBC`jMP=h$VQ2garnI8$--_i(iM#8C-abYI8V!rnD90(NId5cUnZaa-eav}48 z8_ju`vL|#^nT*$I7``Azng&x%@FYu8thHu-d&3|xuPW-NAmY`ml;J3@E0r)bto`Kl zFd!qpVBu##sX_+U;74$KXsx3m{JAB{KjjRm=aUyG;X!)2Q=6udCzi}14U7I5)w_CW zt1!?du%h4y_gri77%HaLoEidpVaoiC@qcAo-CyzLkRj_{!!x|-UREzU56sz?L<53YJsBtz|O(>k* zhr5vZav2+MgBvl75ahue`((m5(5!9oJuaWN(2C8p@Tw$Q7hb7fi1W$v+B@Wm{4rPyf3N~GQWh!)n1;VJ~LDaa+e~3n3))GsP@l4T(MEE>Sqedt0Y= z&p}2odZ_EsHI=*0C-~jDnGj`e_?as$%^uJiLRifMQ2Ax0TR`L32U~xwK||(#^9ZXl z9M*LC@|suPA`wRonzoaz!Y)M>vdo=&CffM!)xq0Rh!gFe=GB8_4o0b;d#m2!S=?3O zJB$8!@u*@}?%3sXCw#~cvd&9?I0>=gFQ^18^~&b$W_*ngg;;ow)MMIQ3@@bWjJRPR z!)*8JULg&x)`o&^+wQ_WTn?TUkRyTLL5Af}q@m%rwT;@z^|m9`G5)|fyKqXB5RD^& zC|ibqKzc0ib)ZAhZi81alCsbqj&ae7h*51Ucuiv2qwBm*7==NT>DGM&bX}`EWeXdk8#^p!IMq1ESzGeWSR`O z*=DD!tRee1tguc@C*FX@JEl&7pNep?YB)M3WJ;?gPgU+C`^9S+t%J|!#xM%))gbig zrYniYpJQsYFRxFlGdyk0R&i3+mcH~oD3kK)_nr(PAeH8iWuwtQd2PUh9s4^f=vvEK z+M@uuO@j1641v+l{p>q<_%eZ{5|n{8Rl%=QWk`Q|St!;$H+ZRW%ZV`RE6R1zQ-i(; zM;?2>F!?)I7xt7d#tC&|+%)hdSL5j$C|<{I!fqc&OnvcXo-53oKZB|t9$I@r294u_ zHKquLYfn}M-{?8uN>eIap%An`gG_S8iQOwcwukwCQ&2pvLaEt(;opTMtH1?-W|M)` z&fK{2>S-X2%Yca*x8Uf$`U`7(paWx6F$0k+7tq$BBfFFLB7q?=r*-x=*BkI#n@LNh zJGw*RN1cL~h$AWKK9D0_nZ_41(%=Q5y3Daa4MHqResJ4k6G(rX92-3@eM14E;1z3G zi@i*Ie+ELC&>ns5XeE$?EoUNfowzaF>k0IYg-+}A`up+Lnd zKjMBP{+K4*IKiB8MuF$5u>knyU$EtZq#yl1c6sX-Ixpb4rEl}>DoB)OMm@Sr ze?Rn7KMggvq~-~*C~8bExX%{K8!kl$grwGB(Z4EMQWW32NFvb0PcCSb>>%J~-56rT zw)H>TvZ}fs={KqDj8rrS5-(|V7bh9h)`+VdL$P}fkbx1X;&?iE?pm3@Q)KQqXOSTg zeTe39j&+ba^gcP2+F7|{pYxW;oS8Djr@6=jq03+3O_|)N>>4sB`Sb%tWx9uiOWcWK#W#wcZkCeg(oJAWQ z9D0C3Jm6@nbhph*Fvl%HX$;{S29eRyvL}9~_H><5(0l9k9cXo(y7G{ecSRo&fiU-&|3%Zr$c9)`WqZS&KP-V@g^=b8-x zpCFT{dU<9BbKYE~TVsxR{GCWHB$u!{xG#;$)lmRCKcBktee}#EW{MI8#`&$yyMlWm zs-ggZ#(=c#jsRDtm_>44d75*9pHRi-VKQuXpe^V6)(!GnBF#E71*A;zXhNRZo{GbA z5VWrnA^6=SeD#sZahRVHd}ki$@^m~#EUr}%fetR2&JnC{c$>4S7XRp>R5U)tojvxY zx@MMmzFj1ijw08*|6T|iny_e+nQGFS;t^(7Lhr|NMzNG>`ck1x13Dy2%#Di%8c((_ zf|+L3JwGd)DFXelrqkx7Ed$p@fmzSHEMX{&u3b4jMC+qXCODR}MQ-Oi?u}sJ`zKl* z^T)?NG|RUDLI5D^of)DQxI$uKH956^%J2CK_Xo)Ey6*C{S3@m(3xWuB^>X4D=7k=c zVe#Nhb+GyfqzO}KT-nVhyIw)6R$W47d`b4W5oYRi5Gnb)gQob*HyRBYC?Z!X%nW?Y zIhkDLMagQnZq8nC7p%8M*E3$eKZkyQ^DvNv?< z-@uR9=-;EIK5PaeyUusgL-YWL>-|92Krz90`57*E7?b@jW{7(fZI6=m^BY0NP0HYF zLgj86mrSL^;F5>Zt#Q0jB+W62gqW2iGS%e*?-(B0@qZwl?_Qf8huf^gh<~E72(?&_ zwgcRMDSHDn66I~womy^AN|&4=qANy&(KSNOsE&WgH(|?tguvjaU2z4eV{>biS-ERX zVOn#hEJ?A06+5IaaEWTK1=CSP)HHO(n!>^7`R`oMX*pDn1O-#HpS7C_M6R~biOhSQ zp#IL}&ZEb=7sVA?tDTM>?!RzhivKty6x71${sNv%86B3!73Zs_akdj_A-5Q#XkS(^ ze|4;qjfSHT?LN@`l4D^yq0vWBkX<(f1DKug;Qt&JeK+hli*3?2;5f$8$dz`&gqsyp zA>YtrDwHyV%0&|;XfBJqA}{7RfDFXV{60bwtI0h@kyi!_bT#v*7ZF3dD`%vbFkF>% z>)a=ypQ^iYsOcbBhO3YDSmTS))`%TIGWuh`RxeMLL?u(U!pKxz#^UmY^bLjhf+so# zB(rBae{dyzlbVJR(}3aUzdXP)QEHeH`L%q&YXP-EvBF*WGG+$BPV-t+Fpf<;296*f z&NSG6${zPrwwa@TKljjFipir?G3TtO5vHi2=SvEjlAy@c`yB?fcV)$fmxA7Hs69g( zBsHV|6Reqh(Y0Hl*Z2F$B%^~$>%z0%3&QSCC74&or)Y5Y#xg~RB}06U_g;{K&+ECL zj-|P&S6$;th0xy__XT#XhFD^;oh_x^V$IZhK~M~V8PJ226=DN;(emfI;9pT&xA~Ah zN?%TbbAEmUZ`#PnP;7miv%sEBT#;Zq2P}cK#m<_+Fj+4X5QFrq{WdWpW7v)NHZPPB zw^XePECiR1t_#_{Ge?;*SX4YhE?I^Ys^>OCCtltVkDHAj&>HuUdWA@_@XoZoyL?6k zgMYe&DhfBJJf$j8>w&Z`8g*j#wQk}IlSev&Ywla3NA^<#mCIcbuflNWO{L`jbLi*e zHQ0{4yQkw;XJo3+lOaRul*oyS@Qo(uLAcxrE{(l#%y9}POQ8`;A^&B6;bAlA#^~O3 zCY0iaxRPl|mWTc0SrjD{KtFAe7&kRA<~>^3QhMe&F?|OQUg7ktQ}2sG;L7D^SdKoE zIPj2vA%kFj->hDeMqGRg)Vh(Nww@0%gAZ6HOh<;3BS1sDq%e%=Uf)_9Rn~xTr1bYMjMv-E3RV z9)97uYU|HYcIunjX3(lC%q|I@Mnm;lidpXv#y1c|nJp3b1XpnlIKSVzw=XIGESf(i z_Q{5iDA($cecGTY5)XWLg4BdLiE>c4BDtz{=hvU!`{?S)Eg4{)gdY}7aJDU7H&4^P zL@o{#UD6@_9JcE$R9l~187oB0n)IDL%zKV*OQ%#(kZLlsJu>*={b}*xNPI`0pcEW4 zanoLx`>W|y@F;WBE60oM(y(ME6J+TZn^Bo6S z;s*)P17TQ0`IVOLw)3!e^stRH?-g}lW@~63Pmi!Qr_kx3Vu6=~Ut#mS60a|Q9ilkU zbk9b%dwtYyM_FEm>D{$nP?M~HCDLg}K~-6Wsf-u&o#TR~d7QU8j^Fb0{rv2Sh(f+l z+B%SpG9XRQy;?$qAcFZNs}W6T{pHT$kwPc-aR9xrS52~=b;kOu5lJe{bAsp^*8_dU zs#E62WnSBCjAO(@Cd*(Xgz^X#%ZI2MSWNcyr`K^!F_JF}o3aq|qAMH)jA$p-Q;c*Q znLbvt4YsdnCE)Dhu3kxc^I(glS-t=YIz{_khh|1MM(HX@W4b?;9+SXcHm_ zS!h0r9b;XDDau`Q>VpL5WyC#izjawW8}s}giIBgkq#k)Mw~{1pdebrWk%zOzz; zx>0>zMj9+qmkvA5IhJ&rnl*q7HGQ1}VMdx)AEM-%62h52MtkSP5GF{`C+w+~IL!Qz?|1XqYkN;zkr6J$srYV=VsnsJ z11G=Vmr<;wCEqhD2cXyLAf-@Qu#TW4kdh8d%RCLJPK;T zED%>p6ZvzuFMz7`X4D++J8}paE6VYh#=C>E%q+HI$tbD!Z5lHnij7y)FGMDNQ~CiR zCGF%x`!k#~S%5l)s+Zwn1^k;}e46tM@o;hJ$=u+@{)eY6b|^@$$v1tCnQ>M-xW0Y3 z!9fi$Pm8cGJb6tt^pB}F&u9>XyR1VbAreph9zREUlkJB;VX_U2GNbX)&u({6J?rQTZABJnQ1!>RE}@B#pf6$D6%{Mcdtm2E7tP!2!%7 zIE@LND}6sZUc#42IPk>$tx9^A-f}MrA?hve&=kx4Hdl8M0XQqRd}|08Pm^IuY(cY< zVuuZbqlW$-+Pr3HFo{>!XETV+p?=TsEkdCu#F8gF4&oR zUCTamVxmA#FF$UxrR^|t*t8y=Xt?1m*o`aqB{G9bsFuq5zT9$tAgX2TzIYEey+2uA z^_*VFss?xzY?S6Ln||zOKE;Q}s$nm1>!XdG$Rd1E8)ScvWym{3IP&G!>}E7G^TLv* z{lZ8Q_}4N>8z%MxF@sQI)dyvev=h6AQO&UsEsOX*Gn4q4)^@}qUnY|*^tTnkV6oh^4P?mxL6HBMaUsx|S)h;PHrD zkWRKx3lt68a$uTZ9qnz5+#telH7S(itz141OgxgF)>{rU@$p)uT8`fG{rP^58FX1Z zy1bcg{SYCYs8RH@({ojfY-S2slH{af=pHrFX?LjDej5ev0#JqKtXXRrnKCc#;|;_O zA%kc*V0ZC6zxtW0`#bU|Q`2GMT~;4f2DRy-$3DNe;@q*E1B26Gcq>&70-E0K%^KZ(Tth)>~~xJjdfjv2+H z@){|d+O-W-VED^46(8x%1%LDq3hqVC0r6^Yv(YxLMp^g1)ralInxi)T$)|q`2e_y! z@%>mwu3=&Nt21i!J^3Jeb|i$KJhh?Yvvb)RMenUmA^Pupe{d%UUlD1Y ztyzru(Jm^`3q}^-Yb_HOhw}vn zh~k;Vd;-obcDQs*`Av~&)eW4;FyV8qzXNvs-xOoYo3TxhfS3n;DN#>6s<}7B!^ml}(4|`%V`2-*cKO8|LCY+b%y#=m z3;JH7`>9BM4fkO64K1Qywn~v?uHm(0J8O2i9oIgM&Y*RkZe?D^S)wobV%uCf+)`n+e5) zyk)47H`>Ywf73{5w&M$~YUkHQ;?*dP#C*5ir;PO>Rau@i=k>7XuvHbkvs2dyjGa#e z&S&Ptv{BxGx~S9P-d#83!{Z^Uc8@Q&w6m>cFtp8Sw;_lvSFz4tEP^>4e!z$esq3sN z#u;xa-ZPO)AgmF==v1Dp?-JxyEmk%zb_Gdm^I(`I3U83OXAEqwpdS)gQ2UIF@?3N) z>THqEQ6;R*K@qqBa8SP(M_u?H$j>n|F}`?}WMXq*XDQo*mGSb+V<9{g29VfA4 z|6_d}Q#o*+z8|E_hoOI>F7zt(fPEe-1K+?6tn~g|R4_o8Qg_qxF>0aAy;nv>YWzDR zF*uoJ@w}p9El~p#C)u`UAT~mX;Nt7bM`)cIls<^Upkyk`0c6^anqufpbKGtabn3U?bNPa%EtdOR2kjuz+g z>`pmNZHvd@53Y9DR|Hb2f3mU)d?jM5Dozs_c83Z1qQW!n092O8oE?u#ggLl(CB>eipE zSMNc)%i)@N2vzKy|LpRB+irZvb#hyYH_W_c`rwfo7ex6vMzdxsS8z47g~A*5P2ubx z9q{l4F2Los)l!r~vjed(5yH? zWy81}Ep2G}^6P&?Lqn@vzFl6i6y9I1ai#pIq98=}V?0$UDb^L|xjX*EpGm|m- z!9-tY2LKSrUL9miDdx!h6q_;2XK53pIu?(<_3Y(NVgsj~OCJnuvMbUj5Li)#%mM4l z{d39>0QUog$vg7a@v~$@?<-+E@CEBw!702a0u=>)c6fcX7$_F)tCm`Oy~e{);$MbP z6Es#I;Pp)LPs%M(A_)7}Jf=3&+_{C&NN(rl-%LU`9me=LmQSrk##6#X<(Dx{DVGWq z7Mu4^MCVP#Qi=$kx_?owvdb?^;1?f&)SLdGuM`^eoBO7im?ORGR5^;#99JR6VEl%% zk7n(fS7-o1)cfGH`3&Kw1BFki|44K_wm~VW8RptHVuQ5*<9-LCMHhi)ljB8ET*g8E zi^s`*!|9y?0o=jvBzeJd=2!2&G+8bf(FvxD%m3I^*K9IQ7(XZEI@>hxwe};>6iKM- z<+2C)MjY9Dc0>ft6`>A;X8qY=`!KbIJ7sC{^WRt_ukuc!I#1^gO-tGjnenIHSFfBa zeB@zl$TK2!Ue`pRUw5}|e3E~Hz@+uSpcA}&Xl}g0Fk(|2d`ra4P{%g(iSH$nM}djD z6UL+Bw_=1n;rz1APL8JmDneJ=-EGV~CjecNDl-c$sj{BH-gf? zQ4Smy_vLN<{-E!_FPI*kilZ}!Vd_T~Dvp&0^ss0N7`+*5h3~|GBNm9P?Pkn`@%x$z z;6Qpm?>jqw zlg+IpAqQFK39jkWhQPc7X*zP@B%F2QmV@OrHn)1lhtB08<`hh&MHYaj+$WG1Jrsd; zBzvzLB5JWd6~hA!@QNi6k-heTUCn`U<}V#yZzww-V}*_Ee-uO!?_z+|rcYM%bG&d9 zgH`i0uc3L@tu_6zHco*e4o<#-z4!X{`D-qC`c4Y#3j35aeb=OV$EjG<43o3w>R3P9 zd-FKMW5rM}a_0BPq#EBevN^gJY|x=_#ZDHH-#~J~GI2p!RYjh)6=SlTnOGGtkn<;X zbh9?W1ZHRIo*L)HVJvs&EBtNymbaiv^85b(C%!*H!0^pdC&RDH-ex>*{8!7u*ta4y zE#)_ti)~!(FfqkPgHU~bOQ(CLU9=J(Q;K?flU9h0-o>jN6O+C|3m>NAin-{OsLCwB z)Bx+S47w7;7jb(dPqsH_dOJtoMlS6DW$OjiPyC zkAjr+uBkA)x2U$+hViP@tCSFY*AuWdbiCqMKL2v-YhYYG%kzK{@D2k;fNKgXT&Kzq zEtVVN3$iqq`DA{}e=&7@td03cH2}Z08kA=5XhI&;lyz@KMvsmPlB7F;*y?DTxRAaasc7Vkj%q@1n$TUppz_K`49=E6YhlQja!u-bmXyE zL1%n~rEbApSzdi#%-18ItbCBk_cuSVS~ae9SKyfJ`$SWzdXydZXKiiDCYU7TpeR$n zt)n7LrbDEC@2CHdN8Gz@YqdUbdCLc@C{6h zNcd~14^gUBnJo{bzsYl@z*ddcbLcPe&`xcqX7-P?dW^b+e8a)Uq*cuy6RofEYg*6V z6);r?%LqwKqN|`oHu%?baCq(r_IrCYvd%CXRmvIr8(hpcMtZuN^>6ojJU7lc7Lgkq zdIEW&d;WabT%?{W`?O^a4``EpuCE&e7U>|&Wrz@_N#7>l%M$3xTp;#%^aJFiqY>e` zey7o|c4c2Vsv7&M0bQF@jw-7ejmC8jmQLxS=-X6@h!hp;8?#oEa z>|1wDR8KUtO-O5mV~#jumpa!YnwXodWSLROBwI zN@PB5{XwhYEpG3%ywiebxfmt!oA|D7bY-Zpo|8F%>`fpQ5~6k&pW(#VCdXN@r0moU z`DFT?%*Az1#0K@Cg#chtS;$;@^PppnC;O?9_RXI^M;x|(@r3H+4m9t{B6J!=Ae~Ri z*beKhFU$RoSHsjiK0&VP_ss*c#*PN89jM^afGEC=!U$rq?h{cZAPKMGlin@YXY?Gw zs14762CAJ@ItJ~)n$(*WTtDj*`82T^!T>WHRF51KhQ;Kve7O>^kNNjY@F`{6%463@ z85Rtk42Q_iXxjDop{7-yML{t%7w9$)zR@yvq~`Fw8%Tj1JU$NKjL4~$RyXw_pdo@_ zqN+z!8q{L{8%CUHfzK9*HFP47Un;|J&_sn!gw4-3RNHQu?;7pJi~=C8;s!%?z1k(x zfp3t)H2geh5A<43{JHFMI0mS=fB*oA&8U&zOI)D>jF=8=LTaG~`P|)+uV@+yVlL+kQ;-Ww z+78Gnd44EkkjvGdH~iQb#NwVJJhD3pt~!kW z&Xqhesq6RJMPu-oj5JU}Bv2oWlNk%exq7KG^=`+R_Swfj2%Z-ux6S*v&X0@4YbjUc zM|FrEsA13>an$^`HRuC-HAmee$a#xQORnvC(*9~|j&EWG?KOQ;Dr;Vu^6l?Qsu`F^6*f8#{h^PcF>^@d?tiOs_t%d68E*bOjA%6mK#eIehfLuC+@ zsaV#^U9xNBfr?yDc}PkHTfW`9}B(cRJkIz)M9`GaXxf?ddtgZ^f6y$+XLWZsXZW3`X(f zA>#fDv>>Epf$lypsNVi(fUcn;_O@zD!m+1>KLK7Ip!&6;m}0n$KE&Z<`S>7G-@4Jq z0U%f>|IF`+xCKr;NpUKKLaUx@QD47aO7;%wrC>Pl@zu0%RjT8Qg_Nc(1&JaV+GnZ- z(S$c9$aHe(I~UcHwkJ>xxt2vbitoll zS)(E=4uM)LRR91C4Nqfa`@n%W7y8SsDwx>$A4pG)S`gMv*f;fN_Hd=XuEqJ?UGbRc zydKykIG)xm!lu4|M0yz(2CaeglLLojnMA|4#UZm$e?v(Bov6dw_ox{4?+eA#{Yb;A z>@G_eatE#*#31-yHOMM}v`Rz$A=F9E)X4jBlZCPvNExGwS5=CxBS`)Z7p14)=e{)O zZf|H~l8A=Vi6x!}4VDj962f{+kjhKDaB;7KMkU#Bta5@N#~>Mef8tnd*&_Df@*`}c zL_Q>Ts>8l0P`N}yvN*Tp)rNug20U_tV4ZJom#bssn>;G!kWAn(1-xlhHBXYV3y~{pWUIq3fnbbq|G5vFqmMQE>Fm| z*@6IM=TSK7OG<1tuP`ewj~)lWv2lYqiq?@57g4f4KT$3|`z$3+gMrnM+vj*R8s+2V zZ)YJ&KH#ftr^l)^aMQmSzD>yDP#ecSO+Td~b4M_{88~9$)}Gc?B~Zrg7_a&5C`niL zQtJj48`g-Ku&-c*GVf*w1*&?rT1Ry4_PaHCO5(<5t#^$Q2pP_MrdZGp))Y>Cd>UT$ zfCI3H?DR`^lcLju_yQ}ewq~rARv-*y@OQV2Cs0=tmf@?mZ+O1n=^qN4mr>?PrbQZ& zr`f$UYfa`p z&gbMD!#8+g!uVC;kjU2~c1c?_zcqN^Hr8cJ0yo=5_^sm3#K1tqJ#lGOJ^JAL?J>iY zhCi7sZ4sBlKGm9M^$_2D$nc~d%&#Hc8ugwHrWgNuOb@Rm#w4i>K7sw0Vba1CQKb*M zHMeP+@liOJ5=uL^xctnIW{!ugjUC=;xu2txZmiDQVk<&>sZhdrSr~WxYuPsiRPP4V zr!#SaF1R~-DD%MqSp7%oPhA#((rr;zCDQ)--fYmAM$5B3*VjHT+I!wJlN$UfbLe}0 zis=+rd6$h@nx{e7It5%o>CGtu(~5feJ*}ZziX&pU8pmuP-(jCHZsT*3*5kCcEdC$6 z_mrOoG3e<*XI4R$!~%kQ_-?&F_u8&QU;0ul-hC`swJDEyX!zFE2oVqX@ZFbA2rJ?;5D#x0W+pwjVXe-Kp6AG9Y z0jQ58nfXK$v=DKzriR?&29{ys|_(9Irhmk`b`M69GF@Sqy%Nj6*hr( z0t}H3vkyZN?tLnFdWHnHn1=fAN|h- z5)$x>aikulGSj}xhQ!V1ls1n;qFo!%N6Qv<#K4adX|!x@_Sr(E(2>${)U5$i@n+Jwk;i|U0Y}dBVOf6 z;#=rq(qj|t(v(OcgqmtM7Js9_t}P(d8&tm5E?F~kX5&bmTxB+di=D@RS9lN0vv^E( zWBfv=;4veoWK-_<%Xc~6chYzbg2RUt$w9n2gnk7wCBcZf4p06~>s%!`b}fNeOtRdk zQMif(Nkl5lXcR@+8$f8*fozA&927gWT)9LKI+i$P)VenHQPJA2n*I*3Nykt>Gb_<( z!e@5@5@3PKdhbsG-Yg;m*fEg?i^#L~-1Wh`oYuiQNerp2O$R04g}2#`Bs2g-)sTti z)laVX9HD1?=y5j!wG}O73gyc9`m8wWs?gW*kZPMfCq@s*QH%~S4QKj+KUZ4j{O?8@@f%y(yZ_vEL&W1p`P)2{e4#F4a7-~b9YvUEk(xU#F zV)&xRkdyPHqz@m6czgT}_#^#!18rxQ2vFvkG|^q0LS8!k1gwKyHLYMn;Bvo8-CsQ! zmxMI)eP#(8%?}L3ZBVJHBB0Mgv^tHZm7mw-e%M`2l*x@Jn=xh3$6Z1HtGWqyH1%$? z{%)c5N`inb=PW$`Z%5nRWtwx#%Ay}}Pp)8n^LjdVwJsut7={RZKwU`^D_)C}{4#8W zEzkcF*4zrz*;b?NUeay1@4{ z4Vi|`)(Y2Z3a4tu125 zhNfUY7T(B-6WIA3bp1rv7)vb2-VpBcq+y)F+~~BBS{}`}?ZMbu2j!AnhmmF)& z<>7Yu$QXqL_K`7h7rVDVS`gc|2x+*V+jf$nxQ}jK;kZ0>)unm+v=e-}Q8XiA*K18U zZ=8&uL0X}u z)?X)S#I7Fl+@EHU<1<9j?J=zZcu%-d`*Z)?cTbov%PyImyZ%w$w77*?1 z;1A+viBF1xZ169`7rQF&6PYR!>9}l-E0FzqP;QdKi5RDzfE|Jja{0Qw9*^ibs|}&A zaDd&W5$Hr_nb^`BGpi%auqHjt^_lQvR$Rmr}GX@>eSYnC2J#e0sdaXBHrux0&MG;jE2 z_d$dCmE(NF`N4F@vyhVNK@;Mr*yLSfKJcwezEj71i3M zXcZu5V0kytez+tOf;ybqLVvjWs+`)=tcqML74(X+N>pw~I=ecs!e~0J8;?r=DJUOv0SykHJD=*$__3M&uwQQ) zA^+z(58qSceYG{_!u5d9IDiky%8eJ_aDFu;{!BAC_mBW~F+LX-xS%`a`X?c^q6;$d z50@ufhOqllzFF>BbX+a;gt)$1GkXPYH;Fcq#?(--g7qhU@aQ!#N>~0(A1VlJYTs1N z6_1w$+O-a@7I)@?l%7O{nesHTZiC#Qss$Wk=3cCZkgmOrP+1WH5$eFz_Gsg|uxWNA z>Q8;BPClpv|7a|7^O7K&ea@#K5EN;6haQtZVJ`~TNnNq)Xq@(z0ckWsQlmy13QjksT`xFDL6@U; zrN5`rdG|e_49X%3ff^Pc-$(A|>OZFV(!1lEkmDR< zeq1i6LY98DS^dYmMB&>BN6lkQJY7U7Ovh7sbn;oZJL=;iTx@!i+5V~-CFzO{5eg3? z+47|16f>4iFutV2`xqJ3OQnzG0ZSlvXS^2%_o~C;%3M5d(_6UGyW^XqFW1skDI%6E zRIEQK8e}(S_&e4U5iL2BQwyjO*nC~{6+L+H9Z`CF%Q1fIUi|vYJYSmr?h<#$y?GBd z?PE<)H^$JP=PL z-S9a{;;672K42x^bG{e+E{0^rH4EPYGpxoK$)l6fMp>=b;SDvml24dy9aE7G%gH!o zsDs`QvbwJ??7qz{iQ&LE4yCRgZpK6}At#zNm`9z;)IqE~<4#mpkmDYhq=|{Gx&D_- z#ft$mFD6M$7!YZm8%MdH8$3iCxlTGbZqDt;tW6f`N!|HSQ38k4aR@NgRj^zu!q}Y9 z*@350&VmApQ04Dq<0_I01FSdgF91ZYV=#M!>-n?ExeuIXHl44p6Qk`O`M64aAWk2O zUsuoC@;V;TT-lH2WpPd}oeY0|4gp!=>u$T!HBUN22sh6h)`ICJU}2V?8e(1(M$Wyp zjllyjqL^8ZVM2@l4aRk*wA%o?Zw3uJ09Bx|8g#c zH)7sS8zv;qC}iCOV`P4ss+B(5RvW82DP)Xud@=w#(sAj)qYH$q>O9(8npNcwp;d($ zG8g&UcrvD^fHH1zI1TqjkI%7vOR-hQxZr_D%ulE2wVZePeu*-Cc7AJ{eHAd<*KfIL z-jXZ9OCq4xmvx+?k#05e;xw4fHaK}0=N!N&d{k=eznnhtbeq}JUPUX%Q2-CPO`~Z zDJ7C0==sqHP-~*K)nx4d;!68AlQchi;Yqn}!f^67+v9=?3y*Yw zlw0I7&=G6bf`>&S@L}yx4s7N2+^y7ckm5r?%+R6im3w*R9kpou<|W{`zarVM|?9A18Py2!|#$s{L)@aLYzbT4>@plnSQppm! z;f7%oI;#6?CLT3LE0wIXwYOQ_@7=RYf4==pUyi645EUHSMPc1d8Uc3y(&gNdVZSZ- zA=f<&{2&Z{S)ED%0000000000C|<4Cra;k2KM4Jz1%M#rT8;n%Oi%y-0OAt$C%A)+ z^^{Q*5c@n3!kZyyeQML$`|Iil zt}sc^0y|kt`$^N>OG>{LrUj=cmUed5WTw|XjRFh|mTKxL$-%f*Yo>;*SNS;72jH3(v{0sPCV3S$!H`tmK;++^TSs-w)b z*p2eLz2C*;19_G zyD<9|j4}{pY(yGqYPcPH54gskbPoF+oI+KQ z(I%Ub?$h}4le2jvjH2+B(*0Du3CULu>SOK%-Cf{p+3`eS8;?`qE~PdnX(p{iO(3Od z-0wuNfhNd|V1mJ-b;A^}jqqj3%iV~AyyL>Z2xmzpAR`F?=N|z0i}*vQZXh-AjGpcu?!u?bW4T5VNl*zwI1o0yES$M`4~%63X%FkgLU`+<4OFegWLnPtc!6F2 z(F8Yxw}|}_xFXu_KMAWfV+Z|#L#;CJw{eTb{$H(`LLvmU`9PrFds39e*bChHL@~+L zVQqisiD{%^=I|?5W?rfo<`$lj$f`iAfhQ+EJS`y$quLxc0icS(b+$??>|4KZtP*Wj zg4tdVmw<;RsDM$SFHNgNbpdkQcpW%8-xzsJUp_?zT8xz|fRy;>(qHVKoA9Dr@(}S- z9{T8w&Fg%fxuwnnMiM?b&!^)-EWFfa+N}q`qZVpe+h_=`dXarG>>h*qmtOi0F^`i6^_`FGX%Bas9@sq3{cd}_&4vu3xr?%RMdIl)AE7Y8Bl$NO3KA%S z(B#MwdeC?2OO?*V;4et9be^jqb9$F3E%EZn91CD2rpK@v)pNNI$SHHA8M1 z^80c`eKLH0(A!o;V>S~L{l)BA$w$R-0e-SOtsi*PnBZg3Iw3*CupkUsKRyW`HtBl( z4aoTCO|Lk??u}nD9`=kFTL424*;?M9^Q&Yj+OQ4eQ>M;*MGQ)(RrVXCg_eTau|Ss! zvQiUrNSnjZ{9E2X%^8a82Oq$ME$^BNmTlt1u=ybq3EzTcDSqR+P^W!#opnu|0k3Vu zUba$qE#__k6H#ssR$ByQ)1ZdZ7v+?Lx`US^7VUbq7um)vxlYZgo-6ZK53RGc!Q(^% zoU9`9sc`&Y#=-bh-#0GDzoX}56Af%JGK|;>K~{vkn7PT_g@J6cO|(ZsTlu`%NiHB) z#fsc=-pcOR0f1;{Sf&>Pri1^ytwaDWccG|tr9J)M@7}Bg0!uEi=ovyEtiJ2=WYu&! zIyJ`Q|7))CTIvgBr9$UT4}1Wm7gnYT`~Ktze>1#&Tsn8Xtbumkqk)i-);q(unR`zS zcs7y^6C`Xbs*Kn%;)DC*PEDK*boIWSwk>EznnZ--DdHy)z3LysC0^FbIp9BoH?=Ib zmF#8KCi}f%>4n_m&1O;!rLywltP~Cme9yqh^2~VJfc{>3E$5C2eyZhmvGpJqF4JTt zgSnC8k3QtOnoccXIj3N|VpJZmrz!K_yQqq4x>M;emKZtYwr^xZ%$+#K`*r7CAp!W^ zIvf*#>m26Cf=$GgygVqBqWT#3e8{Jirt(E73S)lB`$|9c)i#>@XzX`>an4j=)KRuj zf#EO!l4zIcnUUrJ)+$wYm`9l%19m3*%A0S9MK?SdIDMchkKJRF@~wF^rSR~+yjk;3 zP9j>$gfDx_XE%Tf`op+=025!uW{<1(YA$?;hV)04$+1yB{Ctw58*{C9yF}l4!y~30 z90jRw320AU`+!~v^@Zm6W@UVPIN~ndXxc>>3aq8;V|QXVFzk`%7t$XYMB-JHqh<$Q z&DW`oc|NP)6D{OQDdmU%ft3T zncPuUQo$bzU(0<%OJGYBRT{*u_2H^3k?Nd|`H)xtk{=kEP^)?RE=J_}RENV@Mj0%CT1PEmF)!Q zUr#1Sf<=VSP{4)82V@}c+RGx1h}qqP6}LgmczCbRD-1K_=!vCbpXHG>SA5?!8YIit zWY9FQ02i8OnW?*}mGnbdqb}#i>hI%+P?)MF#0r&VZ}3_G6DLKUz?mHe9a?C1GDquA zu#hi7`nZ;?4~1QVxh25tEPZDXAlbS^qT~-uyltT_KM>AT7mf8ZY_OpuLjhr{L!-Xj z=ZQSamV*EsoOzhq2d{D6qjMM+ox6PDXa45ZjZ*GuXQ+JH2XFuY000000022Zd0_+r zFWjvTSHUI#08U(@+U1>~XV*EWmr;N=bZay5+V?rzB6ee(myD4+$2P$RLOr zYL1>tF=tbQ{a_<#VszX1i0=x&jbmkq$?siOpJRl!9q>%_#L5GOHnl()Q!fXpBiHD} z%3acXpCZt7JiQC`DM4i{aZ{T=kyU$@uS7?PW1u#!P1>c+S#*W3Z>jqvK12#jM6sW~ z6`y-xzWI;rf0`tWXHE4j#}y5#e_2Pnkq`W4mNkC*CJh1Ki>Hw>@04h9$V7uhuv2lM z%4MMMvFJR3E~m-U5fmHZe@tKULFWEQ2JB^dEL*7>Dn(9S_}k5sJq_*R$Kzy2ek9Sf zYd_KHWzI2qt4?iIyAI8`NQl%~pz5N@MqhfWCVIkW`$?=w)|Ghaw6N_yXzR*ALNh7y z(Zl5%*FyBC5d)JNt<>uU3Gf`Gpb-?T$L;X9YVd8kb6|qw_v%sg*AcwyZ)=~&U!R+a zMwV0VlYxJ>&`7&L8p{VSW+do4OP zyFl#q0EgdGVky-lW}Y_AW+927XfqIRVB2hT-EJ5M^5uzBAEpS02Ht6`uzVhP>SP!% zJJW1$Hl$?MV#ke6Qpx^BU-s^Ee`XqY!mxNTp1SAd2&ts{@X%f+Co>ay=|E?`2r?DT z2hlI?7IR#=rU&$-iK1P{VncJHPA?;5wGORQ6B<-*DbGWaG@jSW)pMfnk zbR_ya(M|PaNHxK(Z3?&5QcjSmjrNuiZgefN%u^h5$@~ywp4|v(#>EROni0;)@twgT zx4@Wbl$rOZdzxWb%O;^w{?NuGXiRQqTfWoobcT$ zQu!V4s*ItL{cV7dh~9-;Z%d;Z^XN)ziEbqG|A~~S{Yx(FuuNRXnVo08a zrh-=ttt9@tCPemL!IkqNMYXr{WSMUDWt%Y7Su96>a=orZ(u0-rOqg&rRPQqk+^1L? z=^+}OFxT8ERRR7kW`7zu19^a0+Cp_sS z4vmqCrE8(y>H3ur!PPX7;I?C6L*Die%uvCXb!LtD(&I&)MJ&mi?|smvFSvm!BhDpd zk~$c9S4AsO)bl=eq-a_~WDm`e5r99KC3utd5YyLlor{$3vU%WY_V`Uo^sx4JQ*#uC1E z_RS!Q$!%4(s=-+YULl|#w^F^UO01LZVCzAGNT0l|%Y_x2#d&C1t_x3az40L$0qf>j zgBrvZ+;E7b&AaZNRtTq;o3BW3Brk$6E=FeN&6Az(`nP(`gVK8!S++h*jVxn|cfUY9 zo8q1g>=CnDqp4OF#gs(6ko2ey*;iX3sYkFo5}k>GXgPJ> zrT(nbEx_Pr+ts0!!6_J^_}RbMEZVUIARuHHc_B2*Ivrp5bmDHTX+KJx9kQ2_?44zi}^_QX`lc)Y}8wPF z+aIImRDr}V3wd99eu(r#gtYN9Xq-0<^-M zoEyTTKb9d=`Bp189yfXtGPAbI-zZRY8WQ@jI-rxVmAD`HDzG-DBpV=EHuXg$rUkb@ zD7&7#4AtC$n!R&U=2JCmU^7EJDh4Z#uKD{CFwPA`6kYbkIQoj{E#9p-0KBd%o45U8>hPbTD2SWmOKKHq?BX(yi( zuMRAoqW=(e|NH}Tbb&Te+S)sMa!35vq~N2g}7?)woqZC`N-apk475y?_pl zhqurgMt5OsUnN;E@FkHOz;>YXJ)beB5}*}d$)f8U%5$@Gj&R9JsG%|x^_>5>DnG4= z>>%&ng(prGX@1*QdZwAVoAUAxU&Wp-L)O^x!-P1;Zueavje|7l!ekSH+Io>u8A|o$ zjHp6$T+h={AtLl~FOj+ox}#r}E373PM)vqW*UPgq@qj|e#Kh53e1UaHjf zF2gE2V{y#nC;gq{BiSl`yPqIE8**2xKa5a|Ww`5tZy4Y_af+jk3yWJSc%cXS59uDb zDKgQ@NGX2gvWot%=VGUUA(rZ)r(z`;Hu(SY##3#d1Sz`%k`H{8QYJsagqLs@-|MJa z?i+B4+6&ff%H$_(8Mo<;_D%k&jeF_XKUmCswgi=7yFqRo8Fh)A`_-#N@GnJWGPT&K zb8N2G*tCQ}gle;!qEYqU^ZK=YwnE80YDCE)w=u=Pnb9gH4ve_f)*FyIjMhT3K` zzk{14S`^3!JNzX|131;SGy?enlJTxM0&1FM)PBnXO7L1@W-dS#(5n~Rtlx2?+49j} zP0@S{{5(dPRB(%XNo{=^)1Ic|SqskfFMRfn!b^{bmfNA`#Ou~Af zul5b%j~>5l7XpA9pX8xqg70)Jv>>#e?=OLCQiEbB8-~lES?)Nf^V%z!ud8Q-kToAI28}rd`z==Exd~RrWccF z>Sh9w2U%2U4LBBcR{@jHPx5ICF897}>!>L!2c{>OSsplsJvZQm;0Cwk>?t zR01lhst|MjH(IL$6(Qn%SuTMSc(n#0D^1NWE_{9}WakwlEaeR&PkwyjwA~+;tkP=2 z@Z{QGH>E@Q`Rtd5-UFJN362hqbo|@|VPcc{++v)ZfM*17!CC`t0#uRFs zs}-XG)-;u1eWkN^-NqH|{6o?r$ldCu&|dr=Gs+$?-JLJKILmubG1w#w+vZPTr1z;At*%De{`PkomV+tRY%%mH4O+lKIqX20NX$ zH9%**?+6pM`81r!G6SI-`g4l(>htI#8Lj+0Jm;qu6ipor=2KCms)T1+oxb4;r1qz; zLOcj>KP5guHasu#r|!GV+;4(q^YHw(;!e9+Rq6V50=Z0p93pg^Xo{%e=<_CUNg~ux z!g6#pzYM;~0D-NG%fhtdHX6=v|DXX8HZdv3%+lS4LvD3d_6Iih6#$tT$kYRBO@v%UG0Vg>$2J@vz|%} z0vDu8gf$J0T90>bcI+}%R;^Et`YmBnb)`OC)MfC?Eft-p3>;6Iaws&v3c$3h)c@7; z5t+<=WIX>)XBO9G!@zc!4Oig&A zA=cSjgt=T&{o}MY7eRaDDkwPPWUpXb0jigcLB{I)fB#U>R6VIk&jEQYjY_kU5I z7g-_^08vX}JdV@=LGe0S-8c=K*;VCzSZK~NE9$g#oNm%c82qr@U3l4BvL|NCH}ya# zo0m!bi#`j$d5wq26{6%Q6cB?rI23Gh5uayMJ5VqRk7kf|<~!>k1k3X(ZWfA_I$b8x z>%2V?f_khu+{?~a{U`S-Bubi12U$`t)krZhUo>zwx|L(sD!6xrYfzK*#AtSz^19jX zo&?q+7%NbutQ`177&wYB6~}gBw_LwxElSzU69{)V!`bJqcHSdU(f5eoic_F*HGp2UOuZ8)Jg0F zx{Fnvj?O?gHljBGIg=>K5I>KPTmMsgtG$(v_!e6;y+@7__$N?+WR1HC<0c3qIs6Zu zJGAl8rh|Wv^FmL5hKE*jB)5YusFh+k?c7-*Tz6nc>#9@PYC~$hkRAg>p5?NRzR4IV zLe@4hm;U_r2*WpPp=HW5?N5qz2TiGTTXQoTXg4GlC@xZRMyk{SM4M=v!!J3a#*f{0 zQxN?g;w{T;0x2~b*Nzr_Umi^`D0Q({Jx@c3P(rDt&RIXa9*e5CM!WBhA<=0^t$456 zqNFsY)BsD6m0Ov4$-!)_Q{K0o!m#u-e7>W?meycXD81^0v`tTkZRy^{Tmc*VSxGqC z;5qRVJU-dcYK3^(yE3ZYk#@}Oh{3D)AgjB=N(=+=?iM|CZGLKupHXfLX%`6=qMWWOl$5&im`V)=WgaQ0qf=W9|5}N zVdsFYDMM>4%xq1LizDx_PZhBC>y}rbVCqjbQ@=jJKp+h;2#SadzqHQG?oZI4e^Td{ z%5lAQY&Q6q)~T@|NEPW;v&}UlwiQ8Hb{R?kkrqiPnD3Cu>y<^J?L|LSVao4&(Ek{y z`7a*Wn)_zC>;hqgOr0emu)MOK-577Yh~{DcGZ(4p22fRWk}cOox5;wRW8WM^gN{Nd zD74MR-J1>{mkZy|Lz~|^35MjeXik^CJ7*J?YFel)kJlPZ{l-Df9(@XHVI$XQF%{;~ zYFFMEGjWx@S%OLZMH%da&xnq!^2pCgntD?!y&CK~U$?MZPw%KwDi5F0yXttmg~*9s zC#`EXs_^)iF7hEljVtvutmgs+%IUc#!$-(CW z;CU8!GpEUKH(?$55^Fl4HGHx0UE8_G7f#5Xg#slOmwNR)N0copfH2j$)?#wlZvYZU z-cp@D8Q?x*asAD_QmR!ba(t1&q1;*6K%*PXt&{H_=|- zoQ&!#EB1QYQchEePHFs>72f?@FRM0!^JBt4OAgU_204?cJWgVgAOy0i!7MH_);&2T z`+jd=U%2-?FOqvxuSl$bBBn>8{&})Y;1v@USK=)b+oabdT3MreUakB-_zCtbqLCnb z79a(wA|aa7kx=iu9$&&3&`?WJh-54{QpD~y;C#+k9f%JKhP&4rRP^t*YOV|L2SSPR zq6Vy}ruLyHsNDXABOwKGAXs;eZK-STxE2AU_0BWv+FBc`ng9R*0000000000002F- zfB<8uk#s2=AOe9902(cj0O?YvDxLv<0X|VCkwzn;A)zBw*%)vN z31x2la5<>Oe%#Xl)Y2>Phk^b-&Ksip(DfgT{iF4x7B0_!m;L+q5B-PF&-Ff{Kgs`# z|FiA^{m1&(`)?=@bN}4G=X!wtXZ@f4xA_lr&-8!zzu9|={<;1?_Iv(E$OrTf?!W*2 znE%sz2>)09_y1Ge6ZtRpulfI<{~G_dUj_f#|Kfh={0n~4fBNw`_JaD_@7jt>HCkg&-9<${XuUv4KkyU$)B7j7Kt&81x7G&$WzhG0L`3zR6mr{kbLh5Tse5jP zy#z&#*0BLV`cYb*UhvS;Qg|0xyp}m?c18U| z=gwb9GbexqtO5{NK4INtUVsWzD&6Og;NqI%EQFgP#pD~AtZKA^FenW!v>BB|> z*MF1Ob8!Ktn5Tv@0nt}khKvc(fjTchx_0Rz?H^7X=_6FMA%*j}{rw@%xGD@cqmpop=$);C(l>saToz?~QqqXKj&CTmjrBa6urqlW$; zRB?GCPs4+5y*hBwfjTfJMd$H6dmTV^dX!k$o(&*AIs;dHC_$RI{D}uOOmO20(2lu( zH{hPHMt+YwYh2LWifw#weZw=Ay|5SS%vLH>3EIZ%Slw$Itz(|U0(4+bj0w?!Im_VK zqd%)O!~#!jM;nS*QGI7~;9_UzZ`p@BLuCqB|`h037Um%^+zf~5dzj<(1% zuTGpaU`!7hipa}MjPv-tjOJLVYR~elgz?r?WAP182jjgYz}v4*oHSrgj0w?!Ixr_j z1n9t>7!#ucbYM=53DJQ%FegR?=)j#A6QcrgW!$tkBub7O_#_$f(T=21iIW>#3*nU`;?T6D^G9SxGQ= zB*n0k6ySR~xrt+I5(5Jq*h0$iU^d}e@>IDxURTgzPn9iAuLM2&Rm{AKtYSx#yg=Up zn?2ZC%80VD3|Kw^8ydG|)k?iCqwPx|N=p`Qkn);j0VC(Pd547CerG_r_oi<}ncQQ; z2Efi`h{1!?zWfQ&Abn>CrwOzG0RH{Egsa@1Q{E8B4|OJU$Nlm0(sD3T5AW^ozrW=F z|A~HSAEWfI9LUKzT3~}^ypqTLpUN{V%=?I&*u{!kvT4nF=<{@WaH~Sxt@B+$=+x3oWmmL zxy*@)ytPezpf0`$Lv7~Eqp+sN1>=3l_Oc+bd*xY@S~{F5J;B&ME+y-Pk_4+1^r&f5 z>%;d~qv9Ri!&@e8j%H?6WwF)c196yBE!pld6ZPfx@H}tTeJoEoiAFos@h)6si%=Az zG8PNU3%WIbfwNre@F84Yi@KL{nRYS&(n$R#u=h8<3q(+OT@AZ#95~etW-C_3t*Xt9 z>{3i7>K%B#;DH|-);_BeiM$#$xEd65wF@s>O~%AUc`$E(yrWS$QUd7OL)RwB&&j2N z1KQ921@HDBKgvLZ&j5Z!_7N|FELcD{C$oniEX%eX{zPOe6q4>=Hw7vDqlZ4%6s?9$ z#PDfUw+dNFO5CFNE2i>qI=Fy)#TmW?KrOD?AYfc){5rUIaT_Koq@SjgE5^xFhYTxn z*8Sd8DuaEJW7|8kJu*6ivriX#C5l}0^vS0E<@wvr98v_+z|U5+tPXjjNr`G1)z;)Y zm&=R9>g@4>Bl4F-3n>a6m0gwxc5-CJp!bc^(MjB^63J4?=>kFt1^|5c$(P;kVe5Q; zkH~aa)P?H~U{uKNju{yAgg{k@zYDkp^E9bH_QyzB0TS>u#w@Pn-0Q`P(AA?|(Rp|6763Pwt(x-RmQAMr!9^^n1uZQf!G zb6osLp(lJFSr+-phblcoE60EDwzGRz-K(beW~4W`DNp(%ajK3+I(;UM&s2bhpxJ}P zv=}tK$q}J;J`4M*HijJ3>YFcc4Gpho4RJDa#%&hkpp}lHqWBe4ne8M_mnLj~iylcHEy;Sv)8 z-57dsVu?Mt)o|;Sd$X+Eb%xOb%$d`Xt4iLCH#IOgcQEKmjt&9y0q5T8@U8w$j=a5U;oNFcA4$V_8gEKIUGXM?(6~sj};kkpx zzQ=v101h5o?~h9;Vk*vw)!pmyp?t(?t;_Ila!0zv&<}TO)s4ce{&IZ<8 zRef;b2&!Jepqe2@5~(Jf#Xyo-ChJnYxmzeaSJr1PofeI5yu<_?<15JVbdCd=IUu@w zCz97kQ;|pp^)t$IJ%)Hi84IvkArat^N}erAetuo~UDLwDFGn2epOh|V$3y)*Yi5&b zQ1P>ftg9&F6s<9$X+CmBWUhnQ+3DpWvz!<$n}_!ZnX7O_N#e1|(F(V!Ad;rg`q6-UoT1AW+Vx0? z0@NBt&TvJpZwwzfb{t%zeUM{RRUj;z^TS_X23SDh=@o*1U5%xUTm)ahynofy(StHd zcE=PirQh4o5y0N_Uj8Ob#h$UO;7vf~MUr(rHDIPE`VS3K$!{?anTyIbyB;}Y?%ifn z_uBuz6O&2xWU}icX>r0@UtlNV%-$2zHWtpLVwqF8^T>wg5>0-`Ll!2^68q>IYhjf6 zyC_iCH0iW{Ri;0(CCCg?MjnZSpMxzM5?GND17;IJ#@0)z;xNtl-ci6LC7$7(&EpRz zJ>>fScWFv)jA_q=$ikZzI5?8G6mYzPfghSgFXJ;hS9*rLx7kdt+2O|dEPF7l4EMDJ&AxpzIf{Ni6GH%{SC1ATMS4r#3@f@}IH2cdhY8h2osp{MsdSp# zr)SiJzK0enbS6_+o8~2nt%Ip5wiBQ$ZS0T`_;#{>?8RxWFrk0UA>cJUsa&jmuOIX{ zeqx%dBO1VTF+UsBTVRGOm{^ zzrlCpAWi@NPWL%}6#9b$YZ9ukCDj{dQ%_mvjc`#|jo-n2e9iKZKPcKB;^Z?xhH^2- ze;9K&NL3b$jc2}zp~^9U+#qEUQ{ZBCCuEzrXc#!NTcFK+2o-|l8I{{;quA%( zHsK=%*RaL0aKbDaWS;@}xa$*VB!ldtL~`Of88ZKres;$E>|m-2q*byi-A1|K4RsZj z3ZT2#Ekbdd7*1g)i4! z^_3{V>DlRj(({%%Xza4wFD|-&%Vk_^HOEquno*uZu5!Xf<%{2e#@Nl@wWuI64SpN+ zV}7maM4aOkur$_H`bOt&aA2cy68qrnE25gHtI&|IqaQbfyt(PKY)fmmW*0iH<4Sad zr@*tDhY56GB~FI3 zEtIhNk3dL-_7M`aiX7&)ssqN8(H$e9a?wQKT6vq=x795jh+T7}nkE4;$|;|JwOqB5 zJzSJLX($9A9AYO7HJ6v0e}UT-tH|Fp+dRQiY>JXS5uZ=70R0?p44{3a_RWk*8dlR2 zHulH-VyIYnzjrUfmFdbh*gV)l7$;JJ?@~J-oE)mG9*-_2l*R)SOuK9%A0FJZ38~c% zdqyP(c1gy->S@9my~P?|O&8uuNW<=Xr=JlhhdjD&(U_(36<}&~Y?F*`! zTH&fg95$q4NtE!(g6;uFAf&W9jcdyMwGWRMXCb6yUqL~2zL^tq3BdQK4|oo zSFBps4{T=Y1X&Vk@$_5r=%zNj(OM}Qk#4sHm@5LJE=${*Om%5D!@$(Bfvtvue{M_$ z9PV!uJ!MgNY(fqNHITpdF6Q6(Za6@1R7viZOR`uYPac zxIGoResCPNA$jzQfo>dMo_u0Kb6VHKHQXb%>sSyxU)kPKCb=2!6Z4+O%+}RA=MyZX z&RJ%5S|fADaz_r$1EkDe^eQ^0hMN(FGP3pk2kr{u58u2$>}I)eipUd4%A^ga_DPEm zQUW|PiFD)8Qu^_J3Q+u)$o|Ipz=u|3{x>XIFcd_4N#++uLMAq^ce6M9piitQ8+rjF zmvYCD6?Sm#nAg8Z97c2Nz%zo!Ev}M+iFZ%Sr5)9#H+!Tbt{64qo&k<>XW4Ik%ct7+-kzpt&MCzY$CY zkGtoKy@YBLwADm`+4bmb)c{UB^)xfHJ|v@(25)hmbnV@QT&|#@`2Gr+MDx(we#fwC z4$y%?m``*YX-%IT9wB4PZM9WHZbltL?yBlWs{lAM|r)^k}`J~)QvICIXG zlKSp#X0J%Swx|v7Y|%UMYHw_34UdX}l*Bfu-gwVVMnUJuc*uiP^`$^XbzmqEVznxv zmX5Q}PK_coU=|nQL%+tUZfP8c7D0UJO3qBGu6ZOCZFHjxOdYt*>I??v-59 zJU%sU4?;Wat#i}~g#i>+CKwAeOPImA%t`)hK{Xb*^q_1(!#b(EdFVf>CCOY}>?IH~ zZ^{44I6(8&!v$49TZBrqv0j2WWmoXGy1cHKVNiGDHQHcvzyJUM00akA`X#^`M{sf1 zNN#rbna!iUxZ9B<=sn++-(Y&_0H3Wy+FVJ;iVds?-zeG`dy|RBGis?OA`f#qz(0ts z4_|S1quP*$Jcx~>NQ)M+h6x>2RA)S;U5Fw)%m~rb5N~P7TYi@VtcU*sL`U)CMRHE zt9rCz<=G>CevDd@&2;B{tN(OGBAB|R?eIoe1LH_#sV1T8S$ zY1de${_>TE%I}?c zAcbm90(aA`OmaL1S1?qRok%>G5i} zqaBRjtI_!x&y)O~V)E<{X32XAK9{zjbfRO602uzdTJbULDXDebm#x@ML*Pz z<-wcVU0-!Pd-a?vptdg3bPb-uRH1U9LasuzOWXk*}I#hoDN3JZGDOn__4CBNJZCELvh%o%`3c%Er8tVZDKYAqzYHCntbxlczF;?YI5F#5#IMbYk2I3 zJ08}?!Kj`%m3g#)+l+FU{kgKCNZj`#ExAeg(xnd_SrD1%XC!wT7IxN%#ly(vTSbmH z$TnggxMTin2yk`%2d^Td`HE^sDMv!KHPxVqURLl|%xx?vC65`~R$1YK%4xfT0s=b$ z6nmc~E>Xa3vR$=SOgaGfFNjHtg?Sl%WYHZSQs$xX_#6XOMt8|r=vJY(t>7V={-r6d=> z2gGb%;1T32!h(sfnzy)cUX}}FYry2rx^9g)bv{g!z^MJ+A2v#PD~M`y*#QrRMszy< zp$5w|<+xR7!2&a&2=nH>Z*?lh8ia6sI6)t5zV*pKW&Ly5DOZA>iWzqi%TnNTWg!Dc zmy=)sYlnZCl-5CwjEHV10i|Sl7_O`uZmL+3#+K~N~=6**9jF(x&2kIo}T{! zw2;f8BqY!r`lF!#^n~3xV}-pFVG9mQS~VMPSo#OV;Apt01^4N169p|XM@?6WW@xssMW?kiK# zjgP7ED9F$|GH_crqvz`7@G8)WB|{=1R4YTx;&er zp052nMmb`^yxSW7P0Vr*_&2)_Dzrk5Lh31DePH4#gx>6JxKX&$ZwW@sy;I8+@EO|% zA{jJ^z3{^Ntwwu$J|Kv03o4$t`O^#e&2CWi;c$m8hq&eaOJqnlR<>Y^e~@Oo-WLFY z&Wj7WBO9Ab-7zDN^y5~`bIu!z;$!Gv$hx4ILryv?Bj7+_8!eh5t)|DLb>X}=VG#Pt zoU*7S_p%k`PtR$G4#IP836&A9F&1Z}2yY3li?20;8(Vo{hC2)wy0BU9aw4hDO3!0Z zR7wLG9$I};;bE1XY|}PnD>0TA!)w*$9ncfe z9ht%mDuHbHwn0KYQvco0vw`=0wN`)7;!!HL$!G|!YEkAXJM>Z4ULf=d5g`|_tj={Q zo9mhUVFl7og)M2=cL-HqTF)S1R)Gk$@6&7ylEt|o?7&b>_N^llPQ`h;n)<_w9SzmB zbhnfA2+^-yr4G^MisMtW;uA=j74G6JOGPcdT|8(37>f4JPEirx}iSB-$0U@Rqz$(UoQ z-jCYc1v*;Vs&q9_EJf}@@x=G~2!@qHH*fTiEd6Fx&5z0`g{!0MrLB2+b-%0f+Yh?} z_DD@UKJvZ-$!6&l*Cx>30000001oIG-Ua{w02!H4sq)Ahe!Sg9(coO6Qgk+y zG*MqHKF!}aTG01> z580a28S;|`YoDJv4tT3jzfr9Egd{jb631}=$8gf~h!RCo33fSDE-uh~3nP#D^%}w* zCavyOw1AQ*yo7tV(`H==)Oed~^S^!<(X17J?UQR{bKAiZr@3$tfcSkP08~aFa>q%0 zAJIyh?kBRlHmu6-$A(~?!8MpuHb*~h{X?lh1>y@~R9P)HVXWCl<+F${x9&vRIt1J=9yKW+ zD)F)Ez_TMhha9{xO1KibmA#{+R_JXcddvlvnl$i3mp_QbDd(vV4!IBn&+fg&>!<{7 zh{IyXutc>$6rv-GdFK=N;tt<>XLsGbUA7!7jo1o&1cADLj}rdjJW&xH1QZ_|8sx1C zzwo^3*50%%oSH{t?VZt&4Wg-$C?g-zv5LN5Z-I$_TCKPTXhXbo7s!|{J;bJR+Hdv) z^#3O7&I-Z*khWijLb)O}IyW=At*SApGDBxuh^|j;NkucU&70HatK zmWoQw&^i_D((?x7s`?vT+~V)YN&r0njg|t5CH*k;)9GC3}bJ@~)#ded4n=xHuo=(LIXtK70> zpX83ujEn-xi}+V7dk(zpE}EGK+Yq)+%rE-WFG z&k~E0V*eBRmjYxS-v;w^*Zv-2kSO})IpSqZh(Qu~IeXV+cf@(xc$he#dN-87#Zx0L zt9Q2i8`Y%?`@!_zHCs|Q9w|*^!zr_}H=;ZFrv!y<=;BqsU!66uOy0^HgA0TaF3+5NU1u{06$-_$^qFEbNVbOX>W-41qsG-nm(Rya`g@*YTm<=gy%Jj!-G)h=Ff@ojgIoSU7*r) z0Z1gL6q&SY{tcw#M5rCYSt(!wcc8xZHF7|%MnZ1rb)-ffAf^36=4VU?_zo8*@h*`G zS1)7>F#qxA3Yt@hTAO7oKb~@Ze91(w2%z+74!)uvst}yrH(kXE(*2 zJ*R}y;w(erIC|TJ=S#i7H>p?SNeDj8(&7$40X;mgEFV%aCns-Fa>BW6dAgfr0aM20 z$`rC5I7RG26AGZ9qd%8o7`b%N*AvVQb@foB)Cbl5^^(a7)0;{-{^#8bXhPWa<$bCX zF~4|a$7)fFCNPc+lglzn!lk90b2(-01tG$4$%_Fv<^!R+EA z*#M`p^)Z+IbO04@ozs(1wvBI+$IbPL72IwYg0^y0s8hM}d9&)0K6=bm#B-i42|NZx zvxE~aW{21GrGJ@{5#W>V#**^f^_lxg9}nopI$iLlr3&tx&qqpjh}Fy2kBh5%Sy({D zZt1*4FSY2vZTO}pp!NW5GC{YKaHOlZjBlPJzsjMGT@NRiTUPu9;gzFhC6YyiToXLT zzqvve{S_7ZfXC6D1}02zi%pL4*qVh{^3Amk6LJ;YFyEd0xVDibi{KC&Yi z9}wT z31@En7We|5TH1E6ps+WQcLfXW^|GRp!zTK0R2q=57cM%=hO%Aukl~5p6_3+ z-orfrKTQ2sy+i-Af5i3x{f_mn|FQdb@Pqyb{ulh8?LN<1vHn>50PqX?@8s{Dz9&4@ z?DwiROYI~158H3ac`5!^!T);y(tl9)0{mzBZ}*MnFah}|@^ACMaz2qC)A|$jbNwf{ z2l1cgU*l+*Q_LJivKN35oklT?u?*cFA zzS6&;UfgPP+6e>L+fz<8hhT4q2}FLQ0?BN-vlB%>&4L@;W(T%?modTuRUCw}gUYyl znzJ0H($Q7#<7jMwDfYNTo#Ngl`rul(0@kk6VEZ*?txx43@io+WnIf==N?un;dlee1 zH;xbDOT$8Hg292W#jXlY$JRt;gY9 z^Y@HgKckZlx~uWb@om_&gre?cLCI|*eHhJ40092_7&wzj##M-{ETPy%a4IwvbN|+V zv#c!$1Hb&3q5pBQP}q2W_^fRoJ-faXZd)yzXP_a`Q|jGzfhQ=|RD!N4h_|Jo0jWZB z@)2Z&<3TiiIPUzz1qI~NX?UW+YjD1w+bu!7#fEOMvv7W(s2fkMw@yM+9A3Nn`_h4X zM$OWy;R`i9tUAUX{bE0TG5k(k1^(D|s%;ay$7=~pSyYE}(wX}X8I9&8W0BVSVD<0= zfuV^`7Ey5R9RL(>@!?kS0&;rZl2$ggR@8!m`1ktP zQ0JAkk%s(N=N=h!>{x)kRc}mFx}sQW*hEF?55xt86wH*4gRVoe_MdUhsr!SjjEE==%GAQME;$ZZU?qU|h`DbTA{R6q>@wh5dE}){ zek8Ol>;4*$v+W-F#YNY`JZd0Z)EJTB&P&+CYP8MnR5Kif|6SRLYHT%U|K6tW%CI@(ulT|&3zvQZ~s`5deCZV?cV3reJ%9lbhp611N1WRxwz5L z*5dBa0lF#$mow$!(Pp|zp zdPluD9FZq49-oovSBXeImel$7O2u_=Q|(aAr|phn&do!9vnB7sAg>E7U0lmi=C79E z77g{AE?iLnJd03mwJbWV2GPAC_s@ea5-n1mfXpm{IKH`NwYj?_btFX?8JH$XP{YBN zuAaNf43|hUS%uE}7IF^#3*c3ayd|xTM14?eU~t-8dJJPVQ`w(IdfbTC-tSsjBH9-P z{j3`;JkM{luroOXeE9lgBji0$7X+1*{C?}j$~ov_mBNRZJaC5M)Hqy?fFIPwuk9=5s2H4%E*`#7GB18!R zv*j~%H&eOH3V(sT+SnJQ+lW2rzfDHz^nj^C1%?;l z|BF$A9jG4~<5ImNz0wMyyA%dTctB9C%M)am+L|aZcmoN|MNQHGsrC%hOlx6YBJhde zL4Nk3ZJJ8pidKF?lX{VPs^44i-M6Q7ZH8u>jgZ9avbsjd>GZLO5l{F8SdHrj|2miCNhY3qk4sYY;eiJcU5ewe9$&%_jY@jF?i3~5wrCHU@DHAv$1 zLAYYMuCFEgduJfIftX=9c=WwcJ~xI|XGAf25&Ey|>-@8}*v~BiMO-AX5>|Qa^ zp9MB)eKhWSC!@)$8_dj2^~nYP#d#8wpgPTL?mUBp+-i_h{Z7&&j_ZbW6c|NJ^o0WVf^fNL z4N66#cnwDx+b#QFsNIrsZ$BRY!&gus$ZKV2^X~wd>v7(lxVNgi;VFYNO22D0C7=nl z0+K1}2q9B60P5ER^VCp3?Ec(tt83~BexNvpR5L!8Upl`c_$(5^pkZ96nTq8*h62PR zh83-#@Igtd;~2LdjJyXoowf`*H;YSiQrM|8Tr{rnCw&XyTbi-v`MnG*Kc(!p{83l% zMdRVKEdodY00P3RW71>E_x)j5UFl&!Apw(RLktMh&>vj3&t^b+MWtFVvc^SRGU3Uk zNXqltK3GykW-&7eQE0@JI@(`?pvD0TAh9GNqnIn{O>EHQ@8_-O3rsGtD?uu#uiZm)67YAYQH&>Hr2v9h2zyzCUjC`ywFQpCuUw`^(EP3Jsk6yRi34?1DLLWA6!sr|ld=nUDMOd| zCiFI2$DZc=?_}gsjkmiPubzcf@n?C!#*W25bTu8omTIgFl4=i^POgR1Y@peSpTYCY z9+y2;BQ5kFF+JPWm*F`r5Yr_gvsw_c>0I+ah;7lz2b;jtGLOZVnv5=7JNiYLCr2A! zse_~fqi#S4=PcBfL-V0IWmLEQ(E``+Gi*&(Wpl6lXdS{rI%T)j=&X>%75cIB4E5#` z?yxV23}i*a_HHbh*&~vu9R@Uv&})cfRfk$kCZb_36D3XVXvduSVeb4l@4{nWU=YE} zk2p=L%EyiDyX(xgN(NF=pbY|nO37*KhFJO&7tXu@CT1@8|~1w*PM zM{-ui7G2~TcSVrOHo_PsS+=<+0tt?IAa_v(r77AIzLwgMP`9$&zb`Zx_Yt8>mj?$M zGb<%<)T){R`Hl%=;}6ShteI?_rasCf>m>U~m?&p}OYU&#kjvE+V9Ieb@3X;Q zZN_h|Drf*906tMBkwqh-A(PuQz&Hg2 zvVdv8uN?t)0Z(@54O?8({Nd=U)dThbke|SUdUCD$t!72;lK#3<5s%idxo!~)DjX>8 z8cKnoh=xeUzySXL(1_N9XL1>&yJ2sSo!f_;zKeYf->Ya%KTa?%);?ej$h1~eeDAs# zK~X{fWLAM~owx2Ff-j%{!ffKxm^dg zBG1A(LweJ~zR)mE$uwYWhGOztyz%j)-K~WfLJgf^b$%hcn}UlepxS*EHSO+k(R0UP z(6g;Ti9X`8xDbfu;*yELEf#3iD0002f4ZM~B diff --git a/static/images/directorymanager/11.0/admincenter/notification/tag_dictionary.webp b/static/images/directorymanager/11.0/admincenter/notification/tag_dictionary.webp deleted file mode 100644 index cb506b2ba3f9dba5835415c684dd8d1d3991fda0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3742 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 diff --git a/static/images/directorymanager/11.0/admincenter/portal/accesskeyspurpose.webp b/static/images/directorymanager/11.0/admincenter/portal/accesskeyspurpose.webp deleted file mode 100644 index 1439704fec0b7c834adf9818e962f6d253c9162f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3948 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 GU;qFPEwsG= diff --git a/static/images/directorymanager/11.0/admincenter/portal/accesstoken.webp b/static/images/directorymanager/11.0/admincenter/portal/accesstoken.webp deleted file mode 100644 index 56fb01c0f2f534c4f9a05c3cf028c0c1821d8528..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8240 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 diff --git a/static/images/directorymanager/11.0/admincenter/portal/addsite.webp b/static/images/directorymanager/11.0/admincenter/portal/addsite.webp deleted file mode 100644 index 08cdadf7124ad8bb3130ff4551bfac02c59a2366..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57148 zcmdRUb!;cWlAf8FnVA{a>@_npGcz-@*UZe!Uay&%nVFf{{$=02cXzocilRtSl=)*c z>aLops;;T7ud0kx?fshB`XU2*YDI_i+A$6{T z5`=&@w*$QLIlgtMBy-W;!1L!a{0IQ7#363B6n^Kz@R!}XneOF1y0B64JAbFC7djui zxkRvIc_J=--~6G-di#9^VEL;0vonF1?(wqk{;<>B4f0X( zeoKF8e^dUQI{6d;5MKH3{N=cN{`nRB_4{h)GY}S&x<6q$ceg4LP zjqkLZk*mDh&Nd(Q=e%P+$Zy`Koy)&0!~SXC3m@LEB5(HhJ4XN~|1K}%+qBobJHj@? zBY=xvpFj3D`3E6 z%tQeQzbT)CKOq5t6o0wzv2WT>$k&}Gz(Eh-8wh~=ZTxldA^%$U4A>L^07gCzzRErY z2<-d(%K>TM0{1JIuy1)!gb#pS|0TdOfE4go*Mqc2{ab+%|9n8lxB1_Jyp*02{}6!Z zH{%!KUsL~m&HZG6Ryw`s~^@dvgR)h8n-b<$u&En*=j8gD7am^bx)C*+%mQ3O?R-bqV;ZEuf zVnj78#QS{>5v)xZASL3hDDsr^(@qFJF8z5Au$gw=^!8;iUrA`r|BK~^v;QP$87lh2 zTswn;n~2X$Fi+3Z{5Z)du(CCA%&PO$q z8?J{XWO4!>oRB~p<5md+Y5P;@rHm9IktNx<(DH*Rs;KUbb_hO9axx*_wjG0Gh4P)4 zjTXSd%#qbK^*a^_@u@q%7aZgJdf6t6Mfi~GIy;C$eqNZy>F})Yh!Z2~3(>aC=J^oT zNQXQX8cWLqgcAdQl$zJ)#PF-!RmCA6?|)@Zkb7h;&z&oMHov37pe|x04Bq@aRFR;dn$J-Twhn00__I@grb0i8gu6#Te3;(eK*F;dR20!ImE0;z< zhFObUr%n+Hfy7akCKT?)0W<}27-)z({^L$TS zN@>KwKsV?A)5ZU{>;e4af)lI{%GPfTb`h{CZXQbhGc2&=su30P?f6Py5 zOGJt77N$>VIv%rmDB^kIq7M=GI*>nAgxAblTbovxcIxIQ6(<`fwCAxax~?la_wtTY z$YMXx))nPUO*!O>D&-z?n_N}!Zd(`+CDaF%VgIqaPg=hS!Ox76c9}F zZT{ie{EGS6kYO*-BYTS7DSv2`tR)O%SA2ht=4vPOsbh+c2(wj78{gBlPvuAaZC>M zcqLFp{>SL`4;{c)6%>*e`u35JngI(6&%KQYw-i0&WWt)n{8J5g9-R|WZ9l?KQ3(7B zDxZEt(MGPd$0E7^8C3tPX-%1b z;up5uhzyW-buLqMARIUl<<;#0H@5+GeFwrPhZ%d%8H6Ka&EZV+&w>k$Qjb$VuM_gj zdaMXhR{Bm(Q8Vd#m1)4lFIKJ+yFG)4}Xao(-1-5of0O^)1^c2qC5S8tZ$n+C_#UKQQ ziAD6nf^5Ak5*Ve)is!q0ae&RGN^z{H?q(1^G}-;+{NvQSZfLk4gwsgn<#FIs;VyC( z1(Yho7%A_32F*X0h#W5jM0%yUHywzcUTF?i7&g6i%#O^RAOk0iVKUj9r+wPB0^x{&&^nvmWY}v z9XpVWKe$NQwQ%$dDN6lnpe=9uat8d%&F{Y^m zEi-+PT}%F4&zafUj6`LDAE+Ju!nO73R-dQqCM?y@o$4^WjLkt=7O3$;Rz-7y{er_7 z7$9P7=$U+t`*ve}nc;{^D2?!MNkFx@rkHTD4#xJ~z@rhfW>~pM%5c^uDvS679CEI- zJfA`a?8!8HqQ0W+hzK~Fn08PCPq7{EI~L8n%??Eb3Yq|IiINiUaq$=M35NE_xGF#t`%g+ zNV1sfF#s2*W?#4e^Zt|h)$_7cW_9Ht2qFcO*0>Q){4j3M&(ja<^T*T0%W5ENvz1?b zH4ZL_9rm8HxpS*IaxjT$iZ!tx?M~dyp;wzSJH`2#oIeC~cPhr4PTwb3Avc^Ib{u$Z zmKNl$AKQ)g)J7H_`-}-OXtwb*>HGGQIDMRJCT6AKSFdiiu*krhfQT4mQw43khw=gX zZqdi{C2xB4(D=3U$bCqE($VQt?E)@78&O!AK7;U~m#Yb~XbaBI|IAN}OC;Gkv0;5D zhwZ~kucaGs|sN)SkpmdaPzjV(l=X-Q9{#u)N@5LVijNL{=n3$ z)U5|&q7>};DBwA)Y;SJgXFZjp=F=@UQw3hm)oaw7O&-X*=bM2T@qw|q1jrmru8C=>>-@D^+H=a#I_0zvG zh+ONubYk7!q>fv$Vzhb7(vQ1jb6RZHjJbb0vPn50bn z^h_S+Mknt%M9!!aRDMvk=U2GH`{0Y@(9|he*%sIfRh?aG3ZiYES5@)?VWi#45vOGF zpC~Hug7yZfUi&!``R_H5hIxotbA5-j-UvF%!IX%`NdTwmtR*&w=FvT#bznwcc#AHC zf%@};uw_o|Pn9SES2JtjVVC}*Eh>TAdFP?W*AAU!_7h&1NOf2>?y~?t(0)KZ_etr8 zEV<;asKSP^bnQ{6!rDG!3I>t3sQo-aY_%`pd$&&*A3v7@F>fyVwPG{9O|1)Tj-JHb zQ>&?66;PPz@|^CteXWqz0^jT1w2g`5pj=R;*-I@usW#`d#sh|Wbui|RfN$gNgybf~ zJQEWyRxW~Kfj;ABMR+38j4hHuN3cH`%WE^3B2Nkog2-C2r&HN$KAhyLGjmii<26U~NOPs)(r@GMk41B% z)Q@NM23O*xAYMje800A-1Ro2Mh`;-K)9fZnbXSNnv4Tl&ER?J~CM-4{_ene?+PNkJ z+}3r;RFrVo@Fn-|0?KqZK-8!{jEF$#mI2%&>2qMYn}#?tvJD1}K}BGVGX-Rw)(JtQ zz7wP2Q|>}1kxuV8gDM~yyCSY3amBZ^WhhkG`?=cJH^S*kDKE-Nf|rT!MRuG1Hh&?X zVga0(OUd0NjusliAlUkpfWbGg0t7+)TB>Na~YZ5+&USe#YyCZsY!@9RXuLiVaURs`wOc~I62Q~uU zvZ20+@H>BDs-Q~ikR;jd$DfLK*p_If(pLTGnh)=47YctCac2-|) z4k;KspFOA((9#&K=GW1;UG&wn5t1pQc%N$Tk>@5R9>%xtWH(u`z)yBa>-8e<_u{{> zUf0qHe0Mxcew==KO=1;M8$=*|G3iKlZ^#76u9AQPBbkG8)Q9JN^@z*WQ2DRTUb7p; z2d~^U?x;Lxv|;1t%%+_Eja!Uw8gZGXagw_ai`eQaLK~QVXn5wMODUO9M|AL5VG8 z6?gN6R<6qb4Tknu{X6uucxwa?c6ukBV>vMAq8nhl6QX%FRxc*!0wIWr)k5jxLf*QkihMlEh9Yw9nXgS^_0e0`jdV68ZAPQ!@gL$F4uKS&H3M% z1Zhn6RLJUzPQNE3Szv-a?J_ui%s&1J_7se2k51_}@kb9CrGY;Jp*d$zdrP1YQur^_ z|00t7rGh&Srn;z8^FSgKl)tS&Qd@XrpMhe64sjod?utq4Gnz#7?x^G%V7Xd8NK5>? zTZM#Eudyx<-50HvFQFYY>)*Y0+`HFtfqQr>Q!QvUxqU-gNPKd=5_NXV<`&w!*5L{3 zhK$U4H%8HphS=tEO8WLLCinf%0uVtRb_ZTlj++$ule%-=jIv@Vb?v!h)hGRw8zn5 zY$$;^F+ zZg5}a6ZKfZT_p%HIr=BM{jX&(T6A1HA=Y)pQR`N7?bL^v1ZCb84;kd`j(&rW{>A@tizsw@gOEXB@2{2+SC~=00^vVA*Og@&8#N&f*-xN9sH9Spe1O zq-^8Rn(?R!@ej5XlXvx&r;9H;I8t!r0rqrxI@_95#*N9k! z{;!?;WIHftwPqrg0kzD)thcyb$n>n-psL~Py4|d4L8;owuP$YN=xwN(O?CVRQ;&F% zllCd>k5HB*dovqE`nGz`k$t0^Zi^7tWs33+rn+ae(RZcQK7Vm;vMj(yt2lVR)<8Zv zpwCMf;Z2STy|46?lUEoN3&f@JbNhNuKf0_ww zT&4PnuO-){HW_a;55Hm~hAfa_JHc-6)1oL4!HM`}@x;wkqY&Kc?7%V(`~m{{cFWhz zwiGpYq0x|-%n4%XgM9idx6E~H7-kvqHQUdU=`Q8<;@whe=sKgiT+(0?VvtE<+WY|U zb#bzk#Y%`9pN%vpy}`pI92WsEFL`yvBD8KRgC%pdK=Li&cG)L31CJBE#x+Sg4qeMd z2;rglbr)IHR>(T7m@&iMPepVTTLye(WL2nZWMUsUPUW7!5>(P$ea-iy#ljrX0zTzd ze8Tl;1c5CV(v}c^gy=+dsnJka=ZRo+w$(%uq6>?D50N1;OxiQfj8DCjfg|7L4|egJ=MG>| zKJDcz&pQyBy#NdjMChmT*GK z?VG`>E54Hx@ZDr=uT5tQbc|iqRoGe@rD==`Y!*)pOTcK7Jg^EyWcS1L=tOEa$qqi z!<)m3?KSr~j01&8*iIm}!E1nSfy!|C_F9(${h?w4p@NaBJ)hPWNgAMbBjFc1E4f9T zM+&+fh8rhR!p+wQ<|BrpN5cX}!|iccH|PMu5CblnJFb~)ke<)Q{;9Y64AO*^WL2N+ zxQ@xRA<6?kyOH4(yS^LHI9~M$Y352mRN}JqzWy#5gOYi2w0B92g8R3!Su)9BZ&;*q zzN57-I=4$eP~Lw#94B<(qz(YKXuL2v9FQo(3F{HY*|V2kCM*`|iVTHg`%8Q&e<}(S zfee~7K#Jv;ZyEkq8M~>pZLp;fjA9uOG{QBS&z=PBe3a$E=g<|6nq{U=h81ObvjVfj z^wp>~eMj6We|1x{6Hz9MyBwMbEHn@Pg)+&pAMv+tXub$gZj>)wx%O`xCl-+_SnyiRi;Plb6KGJm;8JsV0YkG?se7T)fSPLYM45~M6e3&4l%9I&*5O*HS=h7}Y zA6X@Kp#vbcC0?d27!yLlePz>m!u`kL`7>^CH4vSbqZqt6xDexBM1tm!JoHL|i4w31g;Ji#|)n zeI&izHkpZi9_(2mC!4<;yHK+a2(Y8F9(!wva-NQaNDk;9zj*2xTkU)rTGR0d*^wD79NA}6h2QpGE!^mMM}1&1=iH4 z1XJvy9k2IvuE@%TdwW4eIq_?&?r9rMf7U(xiWV4BafnzAJ?W z>+T^Y*-Co0ec&=c6!+)k**oVa!mQ>uDp-E?Ba=bg$KEBxR@NpI0$R%g-VaUaQv+Wi!y(lwl2#qR`y+z#b;4XKm@`MK<_nxs1s4YzrQ z!XO7Fi0FW9bGv*pBdaf`e&6K!^*q@8QKqQ<*sWj_gplDxkD1#)W4fBtVVgyMB<}@q z1*OMQ0Sw!|TJ7#R&asPRx7wLsy+ly{2GvUpVpVL`-<(T@ z-pt9uM= zWNsrk3nwOE^xNh=&i|yV;i5tpdHO^$iTP>Q^gyKWThdr7%lJRIh~Hj>Kv6dJQ-nM2r*P(;g;i*5Lsm*?el&m_K4-$fBOOvI?L4)VuS_4@9INKt4} z>nBCCT3SvDJS2TNSLeOzEo=vBey*=xUX^dt!??(a9$9pznFNEYn}n;lZWPfy9rzA4 z&%rkBmUz9e5}}s%D(5!tPP#&-pXN_$P`RIX)`869Cwb}_>%POGdb*%0FeAv?tYoWH zl$D_mDvX9=!1mG<-gH3{#%*B9-*ON`zl#meL7{LqMvO9%ehBbsa*v=J(5ayZ_gan6*G2?!qV^3TC zz(CD>T^9v205L;?MIJc@vgJ`y?s4Y4dGTrx&VHP$O@aZWM}?frBqiNB3Iqtm|C~ zYB6jvUJWv|=+ntb8nYBV+C5LtK^vWvP)QQN`Uc_*Z3RiptbV#rM(yX*)H3PdvA5L3 z(U!uGXOrfY@Kn{)^I={?Wa~!P*<^moovz0B*gd5@diXwI4yC*_BR2rGQyz-mR^|?f z&3ekZ=jOA+uynYVZUdM?wd5@AWv;#h?c4{f{+_F{hG(RW5AhqekxCT1- z*kS&NZ1((zzB0dL525SP^K?LHHdA3@p8~>yx-^$W$c)>UEIh9#$n5DK_Gi&!GDKo~ zYQVlDk?_D*IKMJk-l#P)&F_N`QH}#%Nb~us;F_hWL;E~`6$yj9Z}_2v$~lZ1{o7>q z>(}hoL_7X4@DtxH!x87O1TB7!P}U*cReP`J7l`UlV2?W)4J*ey$2A@-=f)GbOB&ND z7qD=ZiRZiL;1D1dr@yqz$^Q}cQZ*N=BW4^z9o1(7q6 z@B_ts`HA24S#&~zk&vcJ0Bu4%--3tbfpEhMGJpwXChezT%YzRGX+meg) z5gFwZnM%Xe%084v8*V|Pz|*)uetFkhw<<)Xl&C=vJ`cxXKa17VrY*9D8V`IQIPzhX z+$argrC~F;0nR+}edQyv&YZ@_CIFs@F44WA4ZBylD00^#+&6nb<*nq$*MpmTrTmkm2`*!KWvPUTJNPEe3#LbDpP?<6gp9~xPk+_w z1-=iqFuorBUIdv!HR~^~sjEQy+o{DrRDs^5Iy5`w?oslwm~DLVTWErW%G8j^HXDhy z{bVd!i4k=p8u`eyV?#Hy7iI*C5&D+d;)CP_>*yWMd_Zz5d^mpsvQgPOgFE3hNfgCF zmhb&miS{|3x!D@rJRMfG9oucl*-6!^8zbu{i}WsP%bESN`+jg<#7C8WHN$}Si8DSM zDRP!e%OR2A8_#(}k)`>46oVSu(VI#ILY4t`a5sM+dHNeR8MX^G?a_1x-Z)NXk<5(_ zEc4Kbix7sGXXrwocF-;f6&XDYjUN*KZJM=W>N7hGn-EKnWzp#NGar^9ee9>Mlg=6# z(@_wuk;T5ug=fnQ2j;)K&dX-2uGB5IZHKs}(mb3!@W;X@l5We=g;4>Pw9!5~FQ`TpU0ynmcx@w`2AOKxj0alKn*3d!7KB<87fQxepZR{qZqdI|a&Km<7Po zQdT5x6LX4($XON>qEjAWE}m2I-P@D-43PJ%m!7aDT!Viv@YL42gDi*03^DiY!F50) z-yf(*xT&HoR^NM**dfch4A?I6M(op~LlI>b{s8|OpuX$>cv*6g^jh2Exmhbbf8&~N zRuR>50!?F=!Fs`{3T#Xw$0&9C8+`pBYOF?3p1Gz67aWjYyvwyU7A$k zvw$*+dIDd43-oUnBEZ`H^W7WlZ!1nagRjChf+^(+csP$t`dbr$Fy{tYkBn{7I>$}# zE&vqEyh?tq-4Zq=g92|M+^Nq(=sLn^xEdCnkI_KC2628ZVJ_BiYlNL%fg=OK_iYpI zcIHRrF%fUD6V(!eydrd+B2dn`#|OXIJZFCq3r(pU2nxy-kLhl4?$j)G_XJ&O>D*75 zO!Ve`BH)q$;p)Gq*x0pTbFoLigKk_Obt|)!Q|sX(s|* zr&}F1!?>k@K;gIU-(gXh$K`@9mFR3>icyUlo#RtExB_Kw=Nt!8DTN$FefaI6b^zNuvzaFYAJ7%2ar1ScP$gY zO+NT36XNwPT+!Z1nGVj4>a{Lv*r-dBB_+Hd>PkaWk7tHKAVA3WX%6Bx> zwFtO5ASfiu<5b@7*X#A1m{bm*!X4K5yE&8aImF$TMuY&giXB!5`GA!2tro{w|M5k; z^|n)iBP&i@9T&p;7Tnfa9>h1T*bQ}j$j=(FtE#x*Z?#g&dkN$2t;)bGw(lQRa9ax# z_H>aMG#$0pz-$ZAcw(^^PHK782LsCu9ZXmO!wBWStCXw|3C8uT;U|xOV-=qMMOy`XRgXJTo0bh@d8gUFreC zXyP)%_g~C<06EsYpGy?`6^otvg0(3Ja(`~;i?>wfyF&y*V3FiMWD7l&ss12Hd??t6 zIn~!=0E_jL&|{!xYBqAE{)$(GtmJ z$>!YAx7ahz`!w%?Qnc~3L}ZZ|-D%D)HQ=m3+*c#L@(d=LZ!^(vIik^{K#k@~RcBb; z>n#T4&3M72e~Og7IzDbeM`6qh(S2{Jo51Fa?YB3U8ZV)4y7TxZpqVi1m4qC*o-9N+pd&<*0sz;kf4%(2T$xQU{m@#hFKujL8&F@?Gxji zqqN0Xh_QxCk+>Uzl;*PpjHe@R(AX*BCr z9Y5%B4thFe?+SRdy9v1&V8psuR5Vuafzz~?ZXk;hR;YPup5p8z-d8?_UG}+<@4e22 z&P}bOt`#HjSilhY}3WL(`k>QVItdYKcNf5FE6@EnD670gWk_ zMe?}X`V6e&ho#FpSP5*Q2~F2`<`XJWdH}kB{X4w2oUhJEP5LAf_Yv;HIGPKo*5YQ9 zIDal(K+%jGATG)hlrLbeV#zZ-5X(6I0tJDxE&`9}Kc<~)Y?;z%v&B^=AGLIFICQBP zF7o|wcB%|JGXd@Htp;t;%1L_eQF0x=;~dIkH1~d9jNCnKwk?@U)*52e%k{&^Oulf< z(m5m|_AwYk!xGLa9aEC}s9n96j9z2aFy?MU*BheAqtza`94aDgiyBWvBSgzQI*JAm zWTedQ6t#o%lTu2W6??hv_IyAeALo=k43`VOIJj60+fopA&G}GHao9V%Fspq2aGT0T06 zN;NQl$AbGD@funFR|FWzEqU5ysEdpClgPe|GExWPD8pm{k5Qt&pF?5smYfn(J~u&` z-=t!0O)x+PXAC(hEeexVN_a@fuG@lGP6tfJdcnDCd9{;#v{hP1GgDY&!#{u4ohKkL zOxLih9?SnsZy;1UjObN|%SeUnd!F~mmvaRtbqfMVeWz$Ivi?PT;KJ-NQ$qE`N?z}( z5--={5+3goRE?KStQss_f;Ej*Jh(ZJ0ZJNSZInf;!2TF>5jP6;I2MKx}Cm_Wgi}%X&b`vo8`bmO5H!!zuiZ7cejZm)3P+n8@fa%5KrFLDZ7-2)lX(Kb|QM64_K6 z7(VK?p6}ema`%F4lnBY4+R5H&*vZu&mAOzB4B35`o@FJdkE>B#STBtS1@@ zrc46!+^Ph+)b2n7%y=7tS{iFufZjDBh{;zQ4#ZCh37&U}^>&8IV`NE*0b_BCqIqO0 zI>mq+eTC0NH{lX5OB^5nF~8@IZ@h-@;B8Qj5E&2;3d<@lFkY-hByU_CWsdd)rS3zVK57UD5DWt*hJUL(^fM@R zvvgWvvt5sHO~m*48Qrm9K-$bZg)ua3-tq;1{s7aRNL=MOTD&Z;T!F%2 zVdWIcP)SjM637brG2&`X$g`*B5S$dX^|+gvETR!nKFjsCXKYk4)cxrVqhyTDmEl2r z!2#_tdOF{Q!j`b_Xzhz+fWb7J5@y&OUA*w7j4#JDlrM`w%-3d{0p&K1p(g0LM)Y~K z2jes%r^vX~Ok2+R+Jaux)X&TJd>-v*4~J~Bkgm7bbnr6`DCU1B1yjKYsWz#A9X32J ziNv`}Rf^I-SqL%e>cn=vUn+bO4b>c%kP8}VOz_8pVZ_BI^>z5WlR9#0xdEwif?Y=} z^lq`+LMIfrT+231=_SmFW4{p_SbQsLtw~HZ*Z%Q^d6w6hezoZ)``WUdRCiv*as0A6co**j#UjFc1}K&a6ylwY zqf0>H{P6QmjWUT_%eMXR{aVj(63ufGV6MPAr+)$^rPNTfZ!o8%qV1|b!$MYgnSb5L z=xg%A{$aOL4dRsteHJfbVb?GcO3JD zleF9REexd0a8Hj#@@xN$kml{`HPd0~j_pY3UR}RCmEK)8*tRJE2kRwv?g1~%!zGyV zNMr%6-o_a?qEW-_ zt$3HnA9Z&Of_n_i%iqGT&9Txu#X)X(rBp6Y-IUWMc>vl*u&aARx;9f6=oVUFGA&S6 zV@b9?pno5877zhT8AEiTW7;wko#Q?ydx@-bT}O@?uVqFKjEqazLs6k~<#nVR_gUN-YzGxJI#PrtEHSB;|k5KpdkAi`QpO;3PYV#@>|)-@=$ zjz$A)OSOFk66TW7}LfRj5h0Z2qts4_#kavKujopVAH7&WhU#~T}LQ&S}c2dMbsgnZ1$SlAkuv5 ziMN($!kkpj+`5oUQ2EpyuU@q2_&sOkZ!0*VjJ0JBkBIt_H%@~@^TAi{B7$XYbRlE? zG!6;v9e;!lneMH-%ykgk=FoET%0(Os#uwor6>c|Bb58MjO-r}AoA!6qxuJq=R18`@ zcqE#*y?5Asc3qGwuX$RK=rZ=37G}C=9QfNno*M*`uK_*RCMUwP&dhwhkDO*;ikl0a zBZ(S>NAlS22{7U5w-M!>;<`%3%PsLqd&Y1>&SoMtyaP^6LyC{VXd_Ver-i6DKbGQA z2&P(~tCA!YMiLpt_I1NP;-5}KV5dbWh{#^ezM_dy{b0KT`@y7z75@4 zgH&?y*^EOf76j;Q!+aI641XCM@WSU>fAE%XDYXS0SC<8lK=;8^1v^A`RA}JoSZYJ{ zD3amirL2KVxlbsCvLJ>^vp|QNGC`FCaXi)yQNw_*!2Mhzh|{X(U9(>6$WQq1`D7rh zbO++PnavYSF!?l&VfoZpH@T12iUkI2@yoxoVGZqw6l6!1eRE~f|G&5`y~h(M2pRARShD?bE@bIR?< z;_b;^riCo&2JBGi2kPlAV4B#p^Xh7&h!$TuRAe{SkOW?6NyGBYf0QBrZq|sMh?x|( zj4(8hU|9Fz6T%a-!o8;F)q950Kz6u>@Y!@3I((2_N->n&{Z<2+F6Q0*Iv~S1)u8gv zYqfLFc&Jxb$X0m?x?WBJ(P#{`-*dyuO6z&W4S({vs;>=^8l+8Eh&c>ZZNU;uPy)V0 zwogRy)Z;JeQD%NNrdLF#ZFRcXt)a_pml>ANUFj8GAdFi?oScx|xss&Ir;k@QPF_Z9 zE9XDJJ*OH{Hw2S_CZ+1Z9c5ew#0SExXa_W+#7+ocZk8y>xt2ZTD~UhiHS*8_S#=$p z4%BtJ)$BqjBFC+3x3BF|x%_RZ76DP5+NiN^^FDmNRj4@K#Y1{RNu6)m4nbDpa*fI| z%;3jb#xN0t|3VQJ*^vLHVWaZGqUe5*UA6$Z#9f&$kSl{E?9Z)$D`{3xFN;Hh!MM8)BQrJLtsh@VF3GUR>wq@H4BcNyf)os;`>FPSI4 z2HuDSj?$38OhNekl*EDWjGJU)aU?5Pb{Ac&Qv6F(Uv@wmL4~HP(9bztK7?XP3WRG! zE6@&>4%TFzUx~RpQ+C0?ddKu}-YyGN?`d!&um}{=j!4R&zDkmhe-o>vzF+Zuos?T# z@i?Du6h?bg9W6_+uFBeU>Cq8BuoP1B)4(!t*&hqXz%_3eA|2oS?*ICr(;5)3&Wrb7 zsXGlPVAvccZ_E&EBMvp&xpNvPyHtE3#Jw-Rhqr5_)ER44T_nNKqoep(puHdXlnDI7 z^w=u!hXq@SD}^-_WW~=9^WC`#5IDp)lz~E zm^mQ(fArLCszOq3?5V7PYoOvo7i@4FK43UME8TcU(FEBry!(vZ3yy#`%!6Wa?*JIIDS!pR z58S*u5MGMp-JKhb`iVFCRq9#5wwlyL$tC=-4U~FpRoZAhw#*(9T;Vjhv?6HV2M36( zLPuFd?p{HqJVUa!CyX~xs~28#B`Z3nY3z1qhE7R9cWKmhN7JYZt(bn2s>M?XWR^t* z=&bU=T{g8`;=Ae|g<0gK17iXFg$soPzaw&crhoEb(Hr6y$$FzMbQWzbS?t72XqS-x z6f}aWV@;BmE0*8nmZlViIu84CrN%m>vJgS zw`-`qkY%+RV8|ch&F)jb*Au*ogEJ_=mDFTK0>6{{^CK1e)^L>J@foFIeJ+FK zm2koJV_^r07u&Ij2nYzOSLI5wY`W*?wSdM9MYv?f{t3i;(wT^-8UNfl+nAzt6-504 z6H36YfX#r0WjeH=17WLSHQOXuJ{RK24E0anB00FlI1jE=6peyqjtfSx3Sm{GKi^UT5_>U68 zr(E*EWuf7XG5hQFdZmkEGT|KVVq=In!6%eNVx{}nG@)A4mbbz_iW?@zOj!SuT2vi2 z%WiTSx_srQt-{{M^|JA`!B;LUTerEDN3C>Ubi};Qf#dPuV9A=_BQ2W(hbDi3}<8 z1olZisXI{k^W8_cn-GLN90*v?i9d6=6q2f_D1HSZHuRe^%_se8eMMv`mSJM(3?(Sx zSmGi+=dRzsYAayIcuXL)*Op#17l{ydT~u$S$KewsfC}MIp`EQixt}24pbDlIdErFpE~43?pIQ1KRO6)sFajzK z%OtUsBHK3g9oHu1hOExR_J`Op5Kzdm!>9j6P~tGRW#?VsyjVCb&*<-F<@$)6_^p@> zL(=RpVgkuFX%M)aEb!G}WIQQN^RpMeJ00s>IfDd1lG@cP^f6rhytjeh; zYUXW{V+H>KZ<|JxZ2V-MQ>hXL+tYJ~?CJS!z~vQc#b zcG@B%JvK59r$rkHg?FWgVF21uc54kvFP}3k#MDN#zAE8mm$pr|IH>^l9~QFS7A;~D zlb?+ZzF>B9J2&go64qOONqA~UAaM!^y@j(NkC24bL1{%SQQi=~LN{0(yhpfuxVqTQ z4B9tFw1IX7l;j!7^_nJZUHJ2ErWpSXLO{L0qrUwbmOnJ@2if3={#pkhow#uay|DLnNqN$_JC+j}OeSGe`i<;EZI!R=o$~m;uh`71 zebAW4g~&RL(otz9wf~h`aBdtX#v>^U@j$z$Dl{uo#GfIAKtwb%$_6^%R4(TJRi_^G zZrs_lfR$2iB!4@-S$k#kj@i>dO^i)s865T0DBU9UOba5Ocf*)||J$$qg4Rc>77Vo? zJ8AVn3V%NpNU{YHaZ8ljx~&yXN?127oJdb!r2Wp3q~fpG0xzf}ZY;zsaP0!U`=Z+;oDoc9kP`Mdf|A$$fNPT|E|4?J|}OnAcbX_vNO=Iluq>h zEpA$r#_vjb70NV?3^{a1hDh5<7~eaL&3F?(%D~po!l9kU$JDlDy~a()N%HV zi$~e;CERb&IDlJzA*cpbamIM&i?+`c3VG$?|B(Q-i%LT!xqzFK#S7E{Aj<7k%Zb9G zUg!(JTkz}1MQp_wi!C37-YVC`<;fkU7px>5QCre^jPkoghX9)c0Rmq>$)eHLgGWpl zz|=pkgN=6*TGXylqu(;!m?r6diXTtK-`AoJAWE3PbfP_xZ(?H1Ayr%z%LywXIWCXM^IUjFG6t-WTY(kr{MY>j79U9R*4|9WPVx zgIeDX0#N636qJB{-EAicH{4M<%v`tufK_UY6DMt!_De9Yu^KwJfAxlC9Td=lHe2P1 zoM+`;|Ak;@snT&g(fcn%?z}J!kjLvO1UEJRY>(|0)_XH(!(-tDK?DBlgs zM^0berMJW-MOj}hhJe&w>%6d*jy)jv2|R(y62CG!Drjh9MPBETz+U=kFT|$xTtQn$ z&och`&)QSWAW`tO^pGjns!sg<*GrEE=TC3XRAgctWb%9n3y*F?EMP%=>K~N87>L3g z_?`}SKi_QMiza*I%e%0Q2E%o(C;Ircwill~T%Ufa#1*RG4HkI0XaeJ9m7}@0n^hRH z8&Q$jUdYA|$x?}+hUhyz=X1B!SGkZ4FUP(&-#L!5fI14(mg#iwT&c$c(opLac-#uG zY2v%QGL4AmjslD;`lptbW>G8#%TUEqE}X>$+t4Fd04Am@%}Z6`GV)(jqQ42McO(Ht z(7bJ$goFS5?8m0(U1qt;{L4d>P*{=tU?87hkEz2hA^-=;G76A&mLU2XY3Sw@ywIoz ziv^)%f-)KqvH+8VoFCPYJ7(xjxZ=tckmgVrzra^W4@~Q2j}JdLl-8suhDSuz-bT7hKjTq6<~EnP zMdTj&cgN>mi9VIbz%RKAn&({IP`PqGU|7H(>)jSnog^zzCr3G{Ul-erDN1R{57khIM_CY=~e0hx~_lFOrOWCt*3 z1i{=>+KshcBqbJT|7%IZ>hZoPyrP_fDV+J*!bXvZ%?Eap1x^^LaJ|slYN!o_Qd3|c z%G^#Zn7T*7_Rrk>a6s1}t+C~M!!xiq$T_ivTLOWgL7r3I3}MP({{KXYj{LKoAWiC9I0X3MoVuul>a-y*&;4QITOjH8z^IQAbKmEjbTfO2<5{q2dlx#>c4b zRJNj}R_*YPAh)F*m^tW{%Fhk1Jsm0fc@PVDQhB&v7Xw_CD4`_*&w%a4Gv9b*#A|E> zTsdWJe){3*4~w~bcW9=tt4Xs}=yH%8^3q-;AzSI501tZ&YenH739NbuE0R!STat@& zVBXbJQn3+b#oub4%N(ceW155xSVxDoX0$yfSkBD2DdHNUr*46nfd%qUIns7~0DP@w_x9>^IpEXjN6Ajj)qml{^m48WGubK^iQn z;Jj5Pe&c!O-hR>{M?9w&b&TPKv)HIv7~eC;8$y$HBWFC(ZI7mtx?{L>yXaeak}ZA1 z>TXCmb3gSHy2zlSod35i{mVG|5Gl^!sNui$sn}|1v^2#qm|kz`uB*P$(hbl7D~Qd? z9u9u;X9|j2Oq;vwjvHipKUpEuO!eI(-2jAe3frPfLTYL)p{`Ej$z2Al!P)rV^7GJn zq8ahsWQ+t<4o}2Lr#P<&#s(ZY`S2m zp1*>opEK7|+05mOBFpDV$;g2aYqob$>{#eDI?EE~0Pl+A>q9^HwQ%96w3e-fTSQBIKW46$A>euftL(0EIn@Csb)k?(i&qz0i z-JcNDFU>Z}`?3e{F>@p2GCup0DX}5)SqqEU!q4FDY9s_B;7t1c%f{sJ?P;!ziGatZ z-CRyhCguob`0000shM8at>X%3CLqwF&;^d8Z2%S;Z+IJ*&Q;jAC51|`TY4^3% zLrkv-U2mI7pe9uqALsU~)Rd1qD`lC1?_aYI$@4~>^h8KoQRnYvIm&j~HYuR~3EmU- zg1VN#d4}YVaD6p2r<01$lY7bCU3T6}*tfeQVNo)Sqj_MEpFCu1qY*`2J1J*eBjSp{ zrcRdpaCRPbo_|_+%+$)A_5_vn3CSYOA7Q`O#x!dk^Z`?^%xY}4t13?4L9+1okMa%rEDS?#tx(VOV z+Oa+iei3w^mSwi%$Se-4#!5o;eUG;=x{>H2Sy79&t~s)RGPcJtltg0-{ekH0i>uEz z)iVor#?lk@Vai|YL9+7DDUbcP39<;Odz?5dgzA*$IYA&v&Nc5pftzNIHAhKK?Fv>8 zIQQ2SQ;Y<*Ande9e3x~-k)!z9Yt+UDhDYmMJ|eph16+mOz2?cf%Hl_koXh|()XVJJ z77s%?)x0q8yWOx*X|gx0MF;2SfiCEJFD1=j>-gQDyG{(zeEQlT^H3Zm$|#p}>AH$x z4`-4Q5Qs0x;|4JJ<)^tId#&2>IAAw4CpT|ded3#$6U zk!!X!g4+^L?lIo=h2GB~PtD2XO~ z@=MW*R0&!NcRsZHIfWKXs|s2h<0YaNlRRTy+*U378U6Scacj;Brt=(cp7HM zKSWp7!g^%iUUF87qnsSMRov=3z<>QRThSTLNqJ~ViXdL8VBZE%?uQB(BSp34FeF1R z<1I!Qp!1f*gWnb}T&@gmuOR!*={K&F0XEA;Ibxe{V9jP z3Npp#ncO3j^bUeM+LWZLX2S~kC7CD z)5ZWL=Wa5~^BRc%rWuY3IYE}xQe_q;HE?2*+EH1U z7DN1fn`=XK)Mg{0pFom3EszoM!=7(3H8yUDW1eGk0j$Va*4a7|a}Z5haUBUch$gK# zj)b5)sA4tsQcZI>^23jmX~Px)B0WrlEj_7S(K<+m>R)VgT}X4VJ{^)yq&7Blv40Sq zu#J}R_38*BMsiJi67+}q6Ty(xrNxm; z2M;T98~NI;>|wKEFI{#vsGOhBTOCV*PbsERt_}bI0000T6_^5}Q_?cP%b=MZgb*G3 zD{bPKp-OusLR1BmmH}K_dpC`y^rjP^`R^%L6irRQKsdrY78E4x+-WWDTE~v~NF|WP zsbGFR&K<(huTbpYS!*umC;4Lmz~DcD``)vxXY<68E}!c#tnQN~Fz~CJSE| zWCer_#?gtWD=Y@eLPgs#2K1({iSu&;;v-im&~A0^BpEr*Fri&$Dfa;kf@L@VUl$E{ z92i!xYc;Bd)?~-5>KeT_6bxO{BPoaWLFn_?5h*=pDrZ!i2x-P@KaQCVzAT##x;Ig*=(a|w3u?n%JF;Ot3llxDfmn76Sp zkBa>u(A+SRuZ;Aa*LOa_jORftRk;lA&AmD1u|B!E>j>ZJ>rq|9G9VkWlXElTD@Lb&(xh(Y=;P+p?&Pc{^>53*+zHb=m>*9XI|IJRM7G^ ze}6NQp=5uc9>$+eOb|;O0BE{4Suwi+Va`lyc02!bzWhJX00lp4J7tQ7*b56na|S(S z4kP;$bR&M!v|m83#n=NdqF%e>GxRn6m51Ob%RBRKLyz}Oe}hvqbXL*n5&$LiA(8aw zv9dtQ_+b2pDz)-p}A zXUejBh_*q|RPs!k@{>$Vc^k=W3c^EB2o1@S1o zl`2xx53`VK|LGMzo&}ET&?!!?bPpe#M~XMe)PF;933pw{`92E*lJi}OFL5BS-^-rj z5aS#V_O#^9_y&Mplg7?Xp2dgRw<~mkj(z6?wz{fA!y*+yaZIbsxWy_TzZ?J9eBw?? zBfnTAoRD8BE>$kSY&$a+?BJ45e3r(f0RU2Dd5usxN-^CbGXgxRiI=&g&2%Q*R%UtX zlKv~uMoCryEgHvXNyuMmf$m-A7XEH$$jELZ5DaCBUk1XwROOw0%I(hmMQK`*M4ujZ zYh;Pbq_BXIA}<$q5HkTRZ5Y@~-h-k3_d|67Azf%kAv{p2XzXX?ZjNe($cX1a^f4;~ zH)Oy@4?y;%8kmHKB1Or|mj2Ha7cXHSZJLn$L{Qh*%#{>qa@`M;?J&pdOJdp=@Q)|* z@5)CTFfdfX$OO;+9OlfS=u6z&i1Zn4nLvTOD?Tp0uhqy?#tZ8QU;6*UoQFWKgZ!~( z9e#&+6gS{&JjsW;8arjjt{dQ!Qicx@zj}3>gP3&Den$L#>IFR*v%HiJv8iRDzBWn% z*t{R?Rh`t2p{MtKGbve#=n-X_vH$=800J}BO9Hz4V>A9Kq)V2E$v|dQFs%#Owlf^s z10LJ$;I`MWh&WUrUVRqIdN$6wT4pA7oUKKHOdonGwIB-vrQ0Wb_O?-&#NW7w1!$d#E$Pq0r_7SPS#sAWy| z0QYCmqrouAQ0)T-)sxPOpntwb_hXqrAiw{;rn=&fDGc_Kw>333P%RL*Q5?5w(@3*{ zfC2RzJFO#1hI6b_cZLw>(SCF?9L6}-9d@*T96xpx6E=2%^TKD1-N_;84z)x8jf#je z+fH-vgQH&Q$-Jlyp(a;MVTNtJ6B}rdnDo zA4kZQ(IXSH)Q#ZXOGfL)R);dsd?CCu&Do+fO^Gk{Cwe7h2}qp~L^qg#i2hQ+V^U64 zOWauNM946#(4j+X0W~>FKdwdV@m=ktZRrrt+QetCMX8hfwD4}xr_YwcLRK&rW-M?+ za)D@+rs`opUC}0-Q1ZW@t3Y()hh2yCZgR6wR6~C@rU7)!*BUx#PxAVeZ>nl$427O( z@kjeu+00e$8|dMHcV@2Pu*WVRd|Z`0@J4UPs(ei$E0k&gIShHy8&jW zeuF?bu>~FdSYQbimt3Jmd@0)sw?K*QYs*5_!y25$skotWk^%g==K*K7ypP0*#?mTm z?!3%9n~M`$Y!g*mR##5xU|n}4!h`>*rP$O*bLF-)uHhu|pc|3cNr_Y6fCk&idEseT zDfl-oniZ!YMpbC&3HOdUC`ljJQJ<11w~(igv*iL^ESQa3Y7#krwhNCAp*(M3YJaB% zwaaox)O}*^<_A5owxe`GE(h5Q+OMWfTmT#+8t2`_2$R) zZ&J|`Ctq=Ro%I_aJ;mdL;rhfD%W_BX@~ z<~Ht6hg(dT-GObbH`u5X=e6+65Z2NB-*UK`k6&NuA#hV!_mv|RAxwNCJW7)WD|9s} z?ObL{Z#(u!d4csv3Ot!+2(smdYo;L5T(e$fT*Gazl#Ix|uDJUK^(%;_zkbiCM;Q~% zf44!0Ksey*CY|n`HO1S&)6=9XtW&^+0^v;&d6%gJ2}8i8kw|@68wJ8P^enRaV=@=R zRp00WLe+)x^W&HgK&BwL)$eXV9hvE(R}OM}jltLdP{1m$IhOOKU>eQj zw0mVX1-U_QVHO?`xe8J6X>!G9x8MKqK5GMAOujcnw*mIF>jL|_aF8k zt+iQL&N|pATlb<}FQ*l+7CpSH_nN>F#q)Gw_;G8FZU%^(Kz6J}5+(H3V$#ZKoa&fxfExNrK`{lfMp z>&|$T!2L|E1J}dNt=>b>CEcO`mgxFHZ)8`E;-fR+j+{()rP> zM!FjQGj#j&Q3vrBQ#w)zqcT@n&WbxKT6exO+$8K2+Bm53L^6#~Y$n)Z5D#zO*LFB= zmcZaz8f?z5j!TZeN9aQk;m2RQ-f<}vV~#rQ{*V9w3-37>Gb*)l zZ}bA`KVfJJ2C@YI%}#mua??{Pc3CwB1JzoGl%biZ!WdC(SvOGAWlZWTA*!bX?`5gmI5XJY_t9;PBozS z45&{1Va=Xga}{*SU^Gq$61pco)MU9pmMeO`Xp-pyVY0yQ6}+b+{?8Xc5Rj3>LiRpy z#ZHw9x*GHrEzD+u23%4?ftemq{c$!YR0Rijqk1Vd;`Au^4c;D>=sg3F_Xxmzuj}x6 zK@<0+dF5WXbtLOZi!()_?Wd?srnB`hvgCM4GHAsWx}}`kKf|)aW%Wm#Lo5eH2p99t z&j%Eop#CVj=0((a+Y}VU>e@{QH3jli?`tm?!X)P5@~d)bNVFsjcaLnkzkHtIEz6A+ zOP05lYnP~qRKax}_)v;`5Mt5(^Tgre2@C*RKKEHW^e2Bsgj{x0>=V?viU1N{PyW;M zxh-==3Ls)ke_i7n6een4_Z>Cm-oYY3s5Zfo_S7{j(9^7drK_(VLMFPT+)>wLAHXY^ z-(LBUJ|-D4$h79pgj+iYfv+mD(=O^$Qq>D4AX~Z|Jgo7iFEtii?oBvpb-cb%HSeF5 zw9(NN4W!D|gt~ZRMJc%P1)8hHDk$!kP#P^3?3-lOnG48@Vg4!eq^=`!4>RXy(!#e{ z)0^@_+2JdYa1AxZRxpupd=1U<^cLUd(?z`u!cz|){RR|zF!wo>t^pD&Ftn>_!NKv` zu=k!CPU=qoibI?*ke-QXJ%l;;MGHyP%k&>kJ1tgUPgs1AxZm< z>XBsCqsI6J5)901FQNZ$XIMPM`1IDvRLNG7OiUSJ7DPk{lQ5LRSpiyJJ5hpSXo#2?W)^H6rgD?PDl#PwTNI8&g@w=EekqHxi$I>$Lb(hhK*W zcO-Am)_i=lQj~d8Xc@b?pXTmT7+X8PJ5Pf}hZeNUUN{(E1T-k8yUnGSM!}^|%T)W& zaok}c-vmheS^D5{-eUapJCI;Zx_tk=i)ZFC{HD+a(UmR#ns=ZGjS1XZ2JcX@wfm8J z7Pp3@i}M^syA&o!(oU?-AwvAJ&Kxy7-T;do@kr=`#`%>b#loBSc)RZf<}4*3Novxn zgRw9w%~A;w)M+KAefTCEx1dUVxusT6krufD;H`#&FhVk7CH?E!US%;K8cq_;LKdxT z1#j%ZZEtd#I;|V`gnmIN&D78uqJS+`Qgz2;mbghaq6_}>gY(G7$h;*GKaPc*kYnu~ z&XwXp94RhwDe7?lVpYM|d`+KY>f`CxhMpt`fA`NxzHn-I zVil(92^M5Gm{RZgyA#u)T8fNN+Fl^C+@&hpk%LeGF1#lhS*-L?p-_$^IkF+xG5+yH zvhc+*YM^W3_nduMIba>+JS4Pd{LWRT?@gpUlZOO7mYXBk1J{FbBC`_q-({(^${tO}1H@ax`= z)z8XLMAJ3iWyD_v66pYM>WzJ106x!JnJqY;#ugBJ82D1#S*ue@OOB zYbMeU4r7}l>9xndKdq%mruK*A@ZXztCgnqn&X*SSFDyJBL~H7VX)P$2SUAy`uqx5M zXH1G~+(0pm%MgY~brXcIALhs~Nnvq#yY?HCuRH=hz>y4zapQ+$HZt}$a1tcZ*-_02PJlwMdy z3ZcqY+o$a_KA6r}Kk;6xmqM6-HAGsTf0`xsT*}0I355e{xh3xe)US~9k{>C3+I4?4 zl)d*FAk>2pqt33QcR^ean|Kj~h9B}ImIz|J!F%h(5Vw>)tcRb>=4O`O7YQS+zuy*d z`c$vlE%PHwk2!=?Aj&{~x0JXw{8_WhUG)yE?gv7z;=9nx*(#X@0;qBJCwR%M_w{yf z@?BtV*>Eo>m_{fz70K3msGHXZ*@3Gt;i|UY7|^(9Q8EiHzww97xiw#6L^YAJ-IQv4 zrIvJU!k{tb=8-QRDkL*W4^`pC_0#IsPg0O!SF{Xp6dOB^GaT?x72K#quEZ#~Xor^a zipTe1af4-c@(hDgYsO8Tg`rjQAA`~Rz__JevFpLyS9jvvDftk0#3~q8xOU`rj#ZD) zo7j91A1BUzUW0@$0Cm2x{ z*K8+xF+a^vs>8uHT2Tu(9;Jh(=_OlJTEK-{YIe~L;$NX@!!gHq%s=Z04Ecy(E)c$h z_^AKB!|=#!y9=py3xuy`Lp~V__<~cXbWn;B@OO#?|$+p&ywYzT`y#D|*3TqJOYK+JQ>8c{KN6iWM2t;w~E8$51Y)FJ4 zQDXozV{dhKUeEOB-ex}7ULZh(pTdLz@1+#j5v@)LFcAn4HWc_NMZbeW&tB=On_S=4 zL&6t*Oc!Ijed<8cr1`iw0<-mfAerkSbmZ$#U}=hMfg4Sht-cyFK6(eXnfg1|q);5p z-cpfp%;EqkK==~dO{=}+HrPQ8REmJC;N_JG@UjU8HY~x!O&1T+?^?lqY~G!Vm4n=k z@BfR&lIMi3yMf^L^(WUz%Pc+}1r?uzO9za-M~pQ*O@0jHu3l<@jT>tioj10cp2or< z{5x#6Yc2M5Hsr0wzVuRpJ{};01ky1J{ahclXyWqBny_15>pYr^xNzMnvIR6C(rKC%cIL$Hd19Q*%jj1{THlpJo*GXg%%xc_vkfJ^`B)+O6nAe%^U!*fk05^uc@nRGDb%K zoa3q6#zjV-;XgL%Y0PS5x||dh`r@I+Rbn<9!3qmWwpQk@V5vp_VHIdC7<|Jy8;P9z5DpQv41ta#E7_lkmBRJcB7ZYo^B68ZQYmgM3kgO2cy`1JW}AWP z?NJqPX%b#NzH%P)+vzhmaQ7HpOd!q7M-7>UAJ

YV>o{WU66nl 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 diff --git a/static/images/directorymanager/11.0/admincenter/portal/apps_page.webp b/static/images/directorymanager/11.0/admincenter/portal/apps_page.webp deleted file mode 100644 index b30605e3e3c0b6bb23b56c41bcf02d8e02fceece..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2362 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 diff --git a/static/images/directorymanager/11.0/admincenter/portal/design/add_attributes.webp b/static/images/directorymanager/11.0/admincenter/portal/design/add_attributes.webp deleted file mode 100644 index f239cfa87b320c7bb2562ac506ab24e4116cfa23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2470 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 Z?7HFB9smF`S(BV>+~5EJ00000004e)pY{L% diff --git a/static/images/directorymanager/11.0/admincenter/portal/design/group_type.webp b/static/images/directorymanager/11.0/admincenter/portal/design/group_type.webp deleted file mode 100644 index cb50ef54e3ec1735ca489e80aba439de9b8bd724..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5866 zcmVb(Lzdiqc7SB}o4-Us#o z{&VKf`kw-yuK$<)mG}Vucm3c05BWdIU!{NUylnk>><{}H>DTOU_iz9IyWq9e@|Xu- zE7n&NfUJ33!017qpES6=kW4!QCDu$T6~z2@RB}>Sn!}0M&LH)+=(3}dlEl^=Pse3P zC13bIB-Iuv#90ASEgz#nTosPlfw_r1BJ8sN3O)l`LNyvcxJpVwD%|j|!?L52ulydE zcHF=WMwAopUD#=^Tl+qbOT5%0ja)ezCIoIw(5M^Y(L~`<|M=Px=^oMKX@?W?i;p3H zQg}P zXJF1594q26ys)A_^CqAX*s;WECcSz~l37v8D~A*9D^Tera$VcXv0h$n-faV7};e_gxU%nG;CWE zubMLAy}397Gs)qk8+b4*W^5BT%9>%r`7^iX>A2w7xmUf{p-=;EK5*^(SPz&&*)UBj zC+|<{!ZnjwGh!2n=QLoyg&W;kUxt^zUhLUZW>QTRuA4QuQKXKgyNhN@Fp1W*Q%`oDAQE}uZu;P9?d$dI3 zpFyJGKIQ@o{?g%)pN}WO39LAuj>}Vfi-#p8Y5)NK|FCk2NNuYeD#6CAHUNu5AhA4w zHfVwAE&MbSZxiLb{x4eM{c*9YmVeHCqjI+Qxynqxk z*Kde&?t=6%hK#fsaEnO16OE7iuOUHghWAzfI)))qgB0?XKaqzpS@x0deuJL5@>*hQZ|H9 zl^xdJvzJVpx_PY_l5AI zMZ~P#;Z<^%6635S*1#~0zXeH*lOhu`+kX#Lj#)#)QYq<6E_3*^QhMp9<&jKMnQn{F zm{Rs-v&o&OIF;b}I>Sa-R#d+;l_DhpY9s5&ubEf%R#cw_-8cLde$T>#fQ+hoV}Ehd zdP(#g=|-h_#&WnnF)(yJ-y7fvs)p)YYhnZffB7CN1^uFoM^sCk1R7NPM9Yb>M?+dyw zpg7-a3VCd1t$u{m)Fq$haFNEFcor8)XvzOqwuw=_a1~H=|K=NB7kP|1Ja~8g)$W%k zqVRnKi1Od*LCM!@Ij4?^28UzsEAvR`jHF zRvi+sLtVTh$E2Mg0|CMcV7Ft+Lo~tEc}P&L9U4nMW%yN)%0{6k^ejPEO1qc>17FFt z$tAO5G*K`VBNQ9eJQ`JU4x)G{$U)cro3u)o=&->KMOFi~hqvT^a1Fi>;V2&I9u-%@ zcYQ|?v^JzH*lXqH6r25V&-{T&@%&^-QtN(qDYspo*tM(gTjTHb zW*e6&9-F-T=*(zN$R`-vD*y4L;Lma2<;?UXnY(5VQ>iW%N}JW-Lo#z8q95k7mS(LW zg2+z~c-c?603^EJANEcO95`#x>A z!EEXMR^#@l?IGzP@JQ1>O1~@glXJo_PN-rf{|Il9(x%MbG5Ly;2k-0IpJZk;)(kNhZ`Xv z3^jv^$6ASWB^{t7p~$ zjW3B+yQtUM=I_BOawVEQdE4rNZt(Vs&Uja0k>U!_&}X$}nA5f+Qs`RBP4! zi0Z0#@Sd|D)L6kJdH!5z`pSrxF9IPO7`zP?ozBaw85vWTnGTFm%?XZ zWnsKlkL9|m-tARK%$`A2=@4VTp>5kI--JDRj_eBRTEn}%zJCEL(mxcITxNj*|9}>f zUeIz-UoHRO{o%RFN=Vv|k4nf=Y7*1(nOUUx8yIp2iIO0G`h^SfivJfHr$3KW(2bdSXX`+!b|;I*kfq2h8oQ& zDfv3k#r&+;gyrVnNskMHRHOp`^E|ZqD~#8W6GvaIXS75bch`dTyd4~=o;aVb0UZgj z39|=E8@uyT?fF?w-U@z^B3M2p_peeL5#e_0^T7^i;qX>KQ%3C&AVmH@gF_&J8a@fh zgfb0~pROerS}l|WVh9Ri#JJnnyx;%kV$$6XmJL0kkdcu^u$T}Z5R|4b$`)#)C*I7} zms^B?K&+M7=p<$qliyHqh}wUS;XYv3xf1; zIKdDSAqW&dyA)Pg4KW*3ar2ut5GtV$$$|wUHP$|7A}>}Y%c>8jkHKJDvJRw1vU4Rv zryu`QVM&q8T3`~BgtI9>?_YVM#V(x{SVz2mhH$qHzE5gF;uC*!elfE3ooxhT!7ENn04Zro+`lE6Irv0L6WG+G=8zWF|iNZ0Q3? zgJ%|>jMD%%HKLMX4F_NPuuLbCXyp}aDv$>s9}{?B1vr`TRGEb&WUV^}gESNk9Kd{A)H{hHOnIo<)XGA2)yJBZSS)b~G|e?ZnpuxiPpV;)^_y6_$GF z?2zZP^A*d$_@$Gwtlj%pH-HIK3atdq%JbcG`#zzJibEstTZMDwb<$P#-SPf=yBuPYMSK@cdj*DM`M9;ukUKt@sdwd_=;06j;QJ zF1I^puaW@nwpiSF|B@$fBh`Sc(EVKx+~l;c*Gz~+i)U^%k7SOp33j#(5ntD~BPbAr z-T%9&!2`@pDOvR^7t96h=kyH-8+Q8Y2?Y!p?VjIo@&DK~j^3T6{zjs7&*^sc{g;$6 zZ$doF0WeF9XmTtR{x6PB9#CHYPBVsI`2!%^tlef43QK2&cr2l{`5$&S3KC^ipMC-y zxdkTwTL1jG!PI6lJoLIiXy3|kZ$y9&r>Vt1zu~Un4IO?AFBSYBr&Z0s#>A;WT%&J* zuo|0UoHm>P`3zjdTto@;!O>5hY9xegw23O>M?DHqK6o z1+$EQ6tlSQI$mYDG3Mp?0C3-vP7Jb|OF@3Ul#q$D>jr5!TIJ=o5FaK^(y+MGA3LF9 zzf6%0`dQT99Zf`NNwq&G%GU2r>J9P**~^OVmx>OX>T&NS0*%SaZfR5NXnn3n8X)A%by0B;!mZ=AQAxs{46VMo8`*Dw5 z1ScHR8GqmP9l_b3tf#OvYV6s*9*@ucHZSl+>rH-5j~4c+^!WTW*P410v1bnxBX!Kw z#7ZvOQ@-~PJnZj8uMo`o(XaEzy% zU0;Qzb@V=pM>4vC*p!9#&1C9KK*j1HvM0xD8)qQL_+ekFz^+wW?*bn9eLyB*soyQN)`{w~|#EBidG8 z30cme{X)Y0E$1Z~>8i|3A6!%g*laL#qSU;1(&fD|9>wogHr5Ke9>j=2z zk|r=>`D!qD5mfr09*4bg)@{cv3-Wr3GySM(jf(A7W}>U zqo5b!pJFxd&2<=_7iY|kZv|ldrRc3b)zwS~If=-O|5&Du>;rDs zwx3$zd`;`vG)S;!5k$wZbQ!WpZa0v$Sox$xd50|W+z_1YN=8{`nBCFt;PHagat0PjE^p_8|DxDac|gp4Jd zF%TfODYYInzdKAe?hrAgdm(g(e&KpV-djY3&K{MOSD^2!UpC2r?>^Vgqh~th8sOu? z`3EWRJwT)EHcX6E26Y7^V+0xV(z|{U&ZNh)xPV6@Y?j_+Hh_q(T9gi&oQ6H`%o-7z zbS*VX3WH}F1og+4j9@N`H!^e#23@+uDTjd*RtQsp<20;f_>xf$u}vi6W^A!)h6*J> z4*l>a?`TE@(*sMaQ%NKC6)qfG6;1Daax(xQktvoOp((eJ(Q@>rKb%Rf3ZSK--0H<_ z{wHvf-+_Gp$)}ExTh?}_$Jyk<<@bV5-unib$qZ0O7Sfxekj*QNjKO02Aro zIDSy`M+>O#Ti;SL0~y0D_QLjs;b&Wtiyx!!n;G(}$vzt6Dh+6^m1mbIeyR|Wa7%g~ ziuf9t<&&RIEu=F0+r!+a=w2IUevwJ~VC zv(Wss*P(jk$5;-f>;vxp%3(*JHk_}j4$gX2^?nJ{^lLh#SDtF)S3MUkZ&Ca%=*@Sz z*5z-glt+@gH@6GgY?iQ_3CBjX@g936^WmGFf5n^jiLVp_6+J{Xciyj-PUsLfjNk@{ zJ9QaglAn$5VRUcZl55NW{5A%+`-Q)mv?3lhA!;T@X1#a1lR5%x!yJSK;Zh5zn@jSM zk9zL%qFAN)gUJOAx0e}8AXV9PnE)^@4x!eKi{ztPgSRJzwn?85_O|2e>13D(CAm}u zP)jX(PM{HH?GGnAmLi1|-!IKC__bcDF!1NPc9TP<*hj6^iMIPg!;XY{lyJ(F*R<7K z?OViviKlA)lx~hg$|3DDv(`RD7It(^S|DgdE+ch5SoYt1(%!gn`FJ=Zp+Kjh3s+8F zTEft*E5aae1~pM!sHc=x#8%%#LMAhP3YLDL;HC8fsntQ9*wv|U3>_`II!u*mGzQx* zNXe0WwBXN|{u&*TQkAx%V$i)xPKq6!uG`mJzKwYZ7}Zgi!W$cL!!06cS=f%U%uJ+h zDmGxl<#z+~NFV;;eoE<_D%+I`?Y|q(x_xT8T^=(J7eW$*^asrrkwPVR+9K(4vBSN0 zux`v7Hu{TJs0QI_F}t}1_|D@YqQ8Ir0u`_xm05q7rrRjSviB0l*X)`xczYk0H1L1> zvp@~uBfIw2`+o6JXBcir_`C)UP{13Emo*&%5=6(|VjQu0*0s6Q4f$K%; zTlRz02lIdD-|)ZJ`^$fq^(p=&0s8Ifo%?6-cm0?C zAMMY;x9rdVzhDpl{109;{~g*-_ixEBJA6a=OWZG8yvOzRsPD*r+kRvFuj9wD|L{C1 z_$~Y|s4wH+&i}jqYWej40oxs}|Azl3>ILdo(f{24Z~f)-K>pYJzo|c2f82Y3emL^yN??u&IZ&r8~9%CD~Zf^WIOBGh*#(*5X=UTmkJ{ z<>BhHJWj5jUYy@lpC01hnM_^F(Os&`w#NN=+?r>I$LYe@L1Y=gX*En+t$+L9tiXiM z71kf7Y%lk=7N(42iyblBY<(DasG3kURQaBubxTF==vt8{<^qVV&s-9y3eKU=1-6h8 zv6qHu+Dhp7BUW>Bd>nH`<+NVLtW=MD+QMJwd_>G}2k;rl{W(oqqAurTk4Qn%5kymc z9v|(rKc^OU(?aZ~v2p6H__v&QmH+6|^O0#$O2oIdz=@WLS^i)lsD4IxG?&-maaS!W zQ+;&sKO$_twbfT8k;m(YFm65sCWi`J-h?+0sI_u037ESHOOPx`J@Sk*yIR~J!S9QV zSMAL|M3Up&($9J`=JWVZ@wpEA#x`ryyt|;X(D==^0hK85SuE8K4Kw+aFU=oo$=)@+ zeIJI1ICkI|gMs&789eQP++3y1)#zFlZ(m#`%Hf#Dvtp2pISNeP2_z`C`I&!>#L@K` za~)-G#-_Kq^TUF`6L;0KR?KMe51ZkkYMx{axTOiox#y>7v5@Fma|{~#PD{`(U?Ubxp{d{u&iApfu1GMb%a`QT&9L`VEV-_J@NpWe)I z;$Scc(Zk=H4hO$B5Q)D3e@Of8q9_$8wF6X7Bdh(d6x%8~Ls!YuKQ4FOhe?Og-n+{q zF2`23vVZvC+;NLQ%Z4z!3(C*F>F0HNeD^+deDSvBM(|nUwpStK5B)0vTFCn=!}N4H zCNvxx1NmQ2`cgdgHV{}TF(E63+$OYZzBkg-lMr&oj-p8NbuZA%A*_KJ&Z9C`Cfxsi zXD|Zk_?Pa0q8xU&$7is|T=;2lybV*vy$S8LIP^V63VotF=Ne|4J$C=<)!9D0-0 zk{9T7G#a~l^yp;Ndz_b@;ynLXS?5CV#E|`BF0fC8^_Q#fbuK#bXRkVH4(9L{eb2G> zGI~o=LXL~r(%FgbqV|8)Hl_3&eyh1^NXTjg&X7990F5D2qeH*FUG6&{+wt>4>s1Fw zp$Uu@VpG5xpXagO7KDyIz=ep=SwLyv*N|nuXgw}poO5eLQ!=wBc6@62w?Zxk^1sr3 zDR+#*ugVu!GPcTkC=)ETD0F=Z=&$)ln~QpOR`U91 zZMH(aYp(=b+-@b!bdVp=dij7h5$xLsa5q*#d`6LO#S607rMmEhTw9n?c770YoNcM* zmsqt++y*?1m*X1Jt~l#=3FEkK3^Hd(^%xLrk(^>FYps=vy{LV*yKhB?d69)kca9u6 zqOXjFY(o@!YDHJ?2a`(&<&4u4@{`wiHRZ!e-Q6Fy|tF!yKAK>=hi~bEq54$1d6&;S{t-PdkHBa}x!rJ52c+07L;f%YiFV^}v|E77o^LAe6!5G{syCrf;8llqyUdK4ys7L`+-SOZ=8!M*ON>ukUc zHnn*tJgCRCY{wP7c}>`Z=vaybrAag~rQZMv!+>GbR$PXWNTU27Y+dOFdniOf znDUMJigVUbpE&U;7lho6hBWgYAa6JFH*3nNn1EC^ybEiXqL=EH#|s)1Yq+CId3$?a zcy0hb00>@R(-|m)$Vttz}Se%^?|3 z+ev@EApw66(wnRm~t`fB?&9pI|M|cFp=r@WO7xz?toA9kbcAVRtUYJdp}k#*1gO1 zf^$(No1>{P%QBkb-UcVo=zzLvvfY1Vf2Zp=w3E2>PzCBIe{wJM3hVuJ>PS_3{X$L% zn);M-N16RSbI0$|vp{Ge0jB62>-J{=e>qaBz3wL*Vv+aN0qT6Bfj!0XfZfs{KfVXZ zWzJ!{bs2|3KYt5#ki^rB;K~cyJRA+@`}mtLg~hd=srhfw|LAWvU(n;o1I12tOpL@~ z15EF|MU=FWcKgj8E%~e1GhV;RMqchN`AMcrugf6Y!?mxPJ^#bC5Cb5duQiCx~_uMYy!}NARjE^_lQE0Rl)nZ}YNpkDQkUIP;;d;J3(%V6WWp=0O zfHs*o=DQq{1<OVo`D}IDn#1!&h~rZph2k?S*zTw@#3TzZU#$3mjbaSKj%w+MYpAvW_HG_fTY?V z=bI0()yZekHT@nxCY2yWn#6ijcTYP$AykA=aykM4Gp~f8Ec~M_I!(+SaLl%!EP{Gk zh-S!TWlhEZjmDw4xgCO|(jcoWaR#AH06pU8v!hodtq{up94&w5vR$ICx#kpKew{j8J*lRR-qEts^ zHFB||{@(soRHr}Tz%NdJz`7XH4Vj^#a^ZM|TD62{g$AVqq`{rxw2xkftx58{{oIfM zOPuEB^m-jzuE}`Ra*HVU-g6w$$~%#}yvl$(jQZbfhExx3-A!A^$4V)x&*Jpt$#!VUA1fi_q~l6_VEI)Y1*hJ=4?+H+1wXp$ovg|%05O*fjoE~tx5=vk4#U$TPM8=&YOpKCkF zk8wmbyX7b+Wimpg7jbOUhpyx6cjEA<$ETXmdUQTg6y{lRyAHRapW zgCDVLtPI?{KlwX;8HgXs_zB?rGOaEJydolaydK8T1HSjED9psV4%Z&~cnus`MGj9L zkyKV!g)Xu515~~MF+XI};>h1DWAku`jgFd4(bCu1=j;fE@=A~8LVZ$sv82{MM~nQP zkKNldgyotzE49_-VDb=HuJ)EQKqLI(e@-jzM|AcKLU&j#03sBO8iqMXQC@1A)HMr5 z`&|SKlZ~>AbT@s$50{&lxg_Lh-~a$XAZQ@tbJQ1Lj@_b$b|^u0v<@Iv`~tmDL*X{A zG;}`xhl$&PuXQ?qV-Sd%bdEiPG}#-^HmU|e; zG$2M73m`{KG>ybiuNRR+W@?Ne8dbRI7teX}Y2=()VrE@2BQcKcF4oYDs2^oM-A|Z! z6a^S{`+JA27lsA(2j9b)g1&G&&_xpv-?P9z_u*L3qkE|%A8TLe171H;emc%wZ{t4juoLtE6AP?1d-?d=&#P_j!($~goRXrx4xN-*0gFkEDFL+r z*PVD?VuAYL{bvD@?|gI|iWX9TkZ&9!w(a9e;m|dzBe^>MYX0~-G(86Xzj9SD;W{j` zX_Gnlne@YXS9C;&8krbmDb)g#7diCmaJ#zS-f+27cRUbxmQZrs3HKMq0$u$dTEH?U zvQgdOa9OV?EUm8T^K|=w#CSPFmDkv1QU}m8YE%A(`f1t1(xOkJ0hEr|?q4Mzh9?b5 zvUGs%4Jp&$jnZ39^R}ZX&vEZu2vdj)d4i>bi?;m4>~u)BD^ebuX`licg%|)!p7q1P zuBgkkk{my~tJ=G;(BP!caq&bLBOkREhLR&Ai+44EB)b=?zK4h`bmD0P-jl z)?8?hv~)8#*r;i-fAP!V(`i%?m@hWdV2I&c+__*z2a3WhA6(O+)4tYzbum|lP3?Hp zL7j^vGz!4~<#krMF+TZ2AfT+KsZZlD#!%$=MvY>ox=pH9lRsP~H;G5fDUvkoLD{Rd; zoc%%2*O_(kIkZYDI%DxK(VU$@0mXFf>v=$hbbK^J7yf;2gsM9FXZy>-_QS#5jh`2d zRlhz0z!|Rg7n_^OSWgl$_R-)wHeOoePyP*LE^Wa#8QLev>AV2Zom*)tsYMO2FF6}+ zdbBJRtw+10C;Q!%ydw86QhbGI!W)zGxU22IVw6SUA7_C@cW3XGiS+m$Py2pb^Mf9T z8ZF0!OxW%IWx!g_xkdjiNSB(h*_@6~W-Yy#%YIW<_e!DZOg=QQD~9@epJA_abD&{V z2`Hh@Cq{m24q7W?@xa6ZxD2ezMleI%8U}r#yCf>qtWw@F^#0HJo-{ZLSXQU0emsIc z$g7c>fqWrZixo*QmrTg$VAdtU1D^bI15WtlL8!veIl#6U8ZC-(+sJmZ;DUaPgjlI= z@j(>HPa?Zb?iuOsLT7kFARG?#dE71kPpX z3B4m0z3b{cD{oxfb!rYbCzLy^o8r5h;!5L$xDL6Nj^0#Kg|nuskILl7sLpUnU8E?T z&5fs9IOxZeMC?}mksoglQuN*NXX|h6n*>(#dOK25Re*pAGvNOpO5zTX1c*cEbjaPA zY^-@pxFDvOhXu>(t~>GJknBax$vA$HOk)N7UdsH?>`-DMyrA?6)zTQ4M*=C}xo|9O zbL2H2v@ZVDq%Rj&NSrXBj||Vp1#jM8A&iB*hN+%PlhK@kjzdoW5#^J))@K5l%6y&cmGD-R> z`7zf@6P#v%&kyDNgp#-y2$unAaz*@7X|INPZg#w)0a;06pdd`ds_tvC_MWoi%f&g#TdBGof`R1GWG$GC++SI}A{{8GHB4R!Bw-*u;Sij?8+Y69!)8)3bf0Q*5(&lJK%h>3&crSfS!9nx8>1T!O8=x9$di+ z2@25Q4(sTUKsOug-O-j}=oL&sQAA8v_vg=++@jWGempakE>cgj`hm=l_Ug8LX2v%4 z+__%EAx%tktESKN`JNlYnHPEOU*4y3y&8Y{;c+vFUXkFoOtv?HB_9 z1$R?BE$FIBCn;v4u72#Fp1&hH%?z2qX}idIZ<%evi*ywFj&kF}fc&f+79vU*dLCiVuA13sW=pecmma$l3v#*&p7&L(CTsSfN}19u*E?TOKGorm-h#%E-R| zg=}^60QUNUH?$Ttu-V!Z0001g1Ji;4 diff --git a/static/images/directorymanager/11.0/admincenter/portal/design/importmembers.webp b/static/images/directorymanager/11.0/admincenter/portal/design/importmembers.webp deleted file mode 100644 index d149d3aa3d2d493b80a013fa53c88e69818b40ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15400 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 d?)dw6{@aEgdw8B2IcqdIL}TznoBxog{|BSU$WQ

HwVqDjEVN0X|VAk47V*p&_BLi|}v? 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 diff --git a/static/images/directorymanager/11.0/admincenter/portal/design/sendonbehalf.webp b/static/images/directorymanager/11.0/admincenter/portal/design/sendonbehalf.webp deleted file mode 100644 index 30fef90a5c6e7a25e00b51b7aae76f5b72624759..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5984 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 QaPoHvoOp8`rYHaa02-XdO8@`> diff --git a/static/images/directorymanager/11.0/admincenter/portal/design/sub-manager_query.webp b/static/images/directorymanager/11.0/admincenter/portal/design/sub-manager_query.webp deleted file mode 100644 index 5dfeadd8049b06b618ac5cfeaf436d6be6f74852..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17582 zcmZ^}V|XQ9w*|VRj-7OD+qP}nwv&!++qR94ZFOwhcJBLrI^Q|>-l{+Isi$hLJ;xkl zthHB_qJ*eui7)`5CL$=WD$kCe@mCyY0hA3yc?Z%4%&S12AX-?EpHF}?`eF|SX=eLD z@;Y$*Wxg{P{af^-ru{nZ>+uv;`y1~?Zw=4&Gy4!^YWvo=*GKdH5UEH(i`~Cd$ zYxV2Tw^$qa-Sw^SM^_f#>DSQ*>bLH9?tAhL*1N*@`WJi~__v%q{F}GKC&$4vYNqbaQ#2D6N;}f^^7Ad%qF{l|˜P9*>%6J{z>vg~aq_JJlM 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

TMH0XvX&><`PXJ8_ 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 H6F>j}gdXRg diff --git a/static/images/directorymanager/11.0/admincenter/portal/design/usercard.webp b/static/images/directorymanager/11.0/admincenter/portal/design/usercard.webp deleted file mode 100644 index 529d8618ad8d53c1c1276abf2a2e198bf84bdc43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3986 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 I^S8(V0N10BMgRZ+ diff --git a/static/images/directorymanager/11.0/admincenter/portal/displaytype/multi-value_display_type.webp b/static/images/directorymanager/11.0/admincenter/portal/displaytype/multi-value_display_type.webp deleted file mode 100644 index c3bf4998697f6d2805ce78bc70698d62ceea8d23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6892 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 diff --git a/static/images/directorymanager/11.0/admincenter/portal/displaytype/search_row_in_grid.webp b/static/images/directorymanager/11.0/admincenter/portal/displaytype/search_row_in_grid.webp deleted file mode 100644 index 2fb2664eb137dad3f2713a00ef725cd233e6640f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2530 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 diff --git a/static/images/directorymanager/11.0/admincenter/portal/images_-_remote_repositories.webp b/static/images/directorymanager/11.0/admincenter/portal/images_-_remote_repositories.webp deleted file mode 100644 index 5b370f03bf0278b4a3cf1972b5b2b3097153287f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7236 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 S-QS8vzx9^Aa_U+D0002mHVI+? diff --git a/static/images/directorymanager/11.0/admincenter/portal/in_iis.webp b/static/images/directorymanager/11.0/admincenter/portal/in_iis.webp deleted file mode 100644 index 163e5162aa6f85e6b9a94a7c2e569d6ff8e43bcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40646 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 Ca82d_ diff --git a/static/images/directorymanager/11.0/admincenter/portal/linked_message.webp b/static/images/directorymanager/11.0/admincenter/portal/linked_message.webp deleted file mode 100644 index 4d75e167b1bc49aa340c7f7f4500a76fe21e2801..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3108 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 diff --git a/static/images/directorymanager/11.0/admincenter/portal/linkedcombo/binding_expressions_examples.webp b/static/images/directorymanager/11.0/admincenter/portal/linkedcombo/binding_expressions_examples.webp deleted file mode 100644 index 77d5cd50a896aa7887c30c2a8bd03645ae085fa4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5700 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 diff --git a/static/images/directorymanager/11.0/admincenter/portal/linkedcombo/image.webp b/static/images/directorymanager/11.0/admincenter/portal/linkedcombo/image.webp deleted file mode 100644 index 9cff5e5d28b409a7ad94ed34f03cef8d819f74fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3238 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 YqRJnBve5CS;ks9qQ#h|PBz{<60Ocfb{{R30 diff --git a/static/images/directorymanager/11.0/admincenter/portal/linkedcombo/image1.webp b/static/images/directorymanager/11.0/admincenter/portal/linkedcombo/image1.webp deleted file mode 100644 index d99819fe905f36ba6da7fe4fd8da4d830188d48e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1950 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 diff --git a/static/images/directorymanager/11.0/admincenter/portal/portal_card.webp b/static/images/directorymanager/11.0/admincenter/portal/portal_card.webp deleted file mode 100644 index 45b77cbb7495808e010697e6c51f0b1c9f282251..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8432 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 S6oaP-+U2D?dNR}i0002NvX0vT diff --git a/static/images/directorymanager/11.0/admincenter/replication/cluster_info.webp b/static/images/directorymanager/11.0/admincenter/replication/cluster_info.webp deleted file mode 100644 index 7d44d1b5f4d6037a9f523908445a680df4c6ba1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12450 zcmYLuWmFu%vgW|x?(XjH?he7--GV!W!QI{6JwR|6+=B%txO;F3vbpc>+pS-9x~t2+ z>N<70)#YVma@YU>9cc+wZB;(9gnvBRF(4m;Ap`OeLPU)&S%$KtxPqdE-?SeA-p=Wb zz3@;hs*33cF)=OpL$Gr8)CXc*{#6wF!+&&tr~B=d_2cOb`6INHHVbuaR+sgew5{M0 z+~y|$3VMkB9J=`WKJ_-+BziVhkNQz)1->bK5axcc3HbIddb15CJuz7U83>)fnH-Q- zfi&MUKb9`A|9-hG#Q%N#sWWG?PpT0(_U`?7{uk5&-tM7%R(t=l);`XP z{xNkb`mXbpCinyQt-Xr14$Sd!^FjH<`vzOUdMmmq+79Y@qP#UZ`TYIK4W9TG1j6}H z{1AQpyyAUo{QP|X==-GH`TNj#Q}|sJAUgJ01^WJp`XYay`q$=-^~U4?^zhm6=>6jT zc>Pqk4_*cxd@6o^eu7U}Z=FxT7oT09$)BemI{%hFd#*n}c0XM}pMPrt=RW^_M$yTo zQffu}GcNJ_I^vkK(uEIO8I6Y!!-6BcmK#B{boQ z(i2fLJqWER1?b^h%t#OZzb88rz5^+Dp;T&EeGi+y<=d?r#LkrX=?Br{GW10$o9zqY zT{jcSl}wh6)xVO3nDQny7&{Ac3-O6KA4gws`*je#vWWP! zE09Ct^fBTyhw;A({7?LcFglPbeP#D6f&4f4Zh<@>MnkXx{J z+W)Y>fph;YnSTceQ|2Dp+oerW3i*D0ce8@EqZ}uWO{Ei*8}4xV5tp^CVjb|m8gi4c zcG_%~-XQN`edCA=PReUu`Wy3D6!9|-rN=w}7utbgJQdGTreFUJ0`z%nhxXsE@TX0ZYEVY9E}eTvBenG`Q9(zlv?o!$)ywWxSuJVD!# zo6R0O(gAVxN{0PE>!fjg%4-9pI7>Dp%Uyk_pX#CWa8Ts+NX2_hm}q?4a4|^+ zVy<8FhGj)ZR%E)iCszfSmk5~AD2~2+!d&=#3Cp*o5z{=Q31YC_51f1(Q{%x*mBoT{ zqx$N}4&|^XM}06h?TLOQ`CdMgC#3F3_j=t-@0qs(u|7^BITPng=V3(m?MB+R-49C82KaE^E%@{WR|sVp%vT@NAJQY5C}nNi-3Nk>liqwrU}^0%Ikg!M`nh7V{RX9j8nFtPnbIT;F<@WuVaQA_j-k zPu$|i%mt2|{Ve%LA%62A)$Mg9cYQnqMPfj)L`dx6u0G};`mP2N= zSg0F_NQyJ1#MV-IsVJwY3`;qfq)sk8~55%&D=!E5BTib@{$otqb#??d|$h;AafM`fs^oJ~#-!Z4-SQpTv zq&bruyJn&yZ#|RK{Y;7|YiBcwD}OO?-Nsy74_iQr?t1oQJbacbtYKlx6sHNp>s54E z3{u-9j}$@rFqQdO#^kVH*I-h?ZA1JJXtI7o*;SW~v5vqIyHS-;N$SwhhhC3Y7wE%9aWI^YRjTEU0>C!OjO7Iaio^U&0aDj%J3 z0S9-s3V9flw>|g4yddV5ZueC41LEL^$-w68WornmhVk(+|D|;mG>qjCw%k&CK$GxO z`?jg1XfqdIeeRR&FBpU}kqp|LE}~aXG@A_uIi0kTM^53Mqkydf{)fAdGFpvu6NO(| z<>Zwe3Z#jPX`vlY_Mg+%8*fHmR^(>kl;y;#%6d^c6P&-pTQUQToI}Ni;)h4zHC`h8>L&QrA6J3D;#50zQZ{Fl%YwgN1`Anr4qZQ!_^YdbmuWw0 zGOC|>odVP$9b24eWH|6>^&-}D?CgTafh{QuJ}4cU{J9N4?n7Hbqj3dFqO!l=yn=cU;%exghROrlh*O>+eFfVr*_V z5kc3yT8C8pDkrv8vdNT^!mbj%PKjWIGZjt$0zI};(U!3&c?T}kc0J_^%XLU~FGz~R zsAq{C!D>m>6$*!1D=t1$K5tH-p_lTJ$N8;~w(Sf9d-zP-HJcFHXla3K2U|A*`~8fS zkBC4*<1+kitq_%=5@}#_yi%U9XPJ3@M7~NFRA({8pqkGM`;Bgbz5lAiy?GKO+w&80`Q%Dd1 z08r3-AAGv@^?&+?vW|n)z`-%2N_R6xlx_dTv-tT^zvQ<%BKHzjl3RP)PQWgV^T0@> z!!ozyrIQam6?ztDt<#)&iM=O7}Stn9Woy53+QNv%u_a~imGn_lBl?t5by zQt++%%0Z|(T1QxiXX{8;_<;db$hG3y!a-ejjzG&#$-Y)y?uYc*KkMDu*_Acmq>CCN z=(Ef35)E<)LuUpXd)-^c6X(LAwMT~Z3hN0>1>4V=_D_y?R2KV#Jo@N1y>*UxNM`(;t~VLk0XmsSFnI9YmL{{89dL}b+f z6{5&S6{lXIdo4@o7VnF|SyS%-+lb?N1&aziS$>0=VDT`1W5IUs^NEM~I+q7Eo$orIR5e(GV#oTQ9iQj}cQDp?)-EP!<%=+>6gA zR2E$ObeCbWsRJjsHmxWo#ED>!i$Hm`qZ_B(Zj(;#7X0+K`(7Do;!0-25Azc72Fdt$ zL7w^{GQ`P^&;|HVfBjWcXwe0p1WyY!-Ld6Foj>TD%_nQamnf{U_TA{k+R| zpd~v|adM(6#>|hx-m$_TkJS`W?@(FN&xGap)A=NZhRygd14kcqNkgo=J)z%M90T8=hrtpl7C;^2#zsu~#*rH1u#2YfSDVW>HmokEW(gg+EfsE|N|!tsB^(klLn9Xdof zHWLHnsf4y9<%IQbE-R0t_rV>SptwxQBOfvF`DGpwIV}wZ#Hfr{JU(@7ZOLneTqOCkA+zgWmzRm43XGP%(k44i!_(M{8+? zTP#3@dL-YW=`ON}R0@EznRA_aqm4>k&B~(AehH4IaqFI4b`%{5eB_-0bi8n=J|RsU z!kEFDU|NsN$pi61KP{`La-71*xpy1C==yHP7{F4zC7<@FO8b3xZC|i`#t&H?UliQd zTiLfSPRICG!HP(V(zIV}y%u1*p2DeUUo5{+PYgxWnB5aiq>${}PUgaT>kGQ}ewwUzQTQhDClp#2G|Qi8?2cAvc7YIRm}Al9VHfW$+%t)uR0UJ%`M zzwORYJyE87jI~9YJRU6nCEHWzYF@Uo0r_tor&dmgA^erYqMIOkU6^b0{%w2NIk`zq zi(uzyuT3p|yc(Y|%dQNt2fzv@+TfVcp+Q_jPZb_(0J^EF^VMu@W42!D3FO=EDlUfQ zh2HQ7#lA*ejkZ$5r;SFcY>3h!BuS@JDFe0j&FA-d=OXw{G3Wh{Xu^S z&$Ja+bQfsVJyj=|CbQ$#%-^$+DL(F-J`67N&;kiQ6jpWOj{%%-Z|%69U1}D+6i{gg zh0Ya%MeL*8>HNNZ^BBGMW{8{?)@2a^qSQE)%0oEtws`y!*ZpELcg7QC+U?MX6F+D* zP!(kEYQf6F-tLsO`R*Hbk&P~7wrUP{^@#}C*o1wQ0bA5lPv)}>Soq2US zyr0hN{nL<08@94jJY5Q+``RaeJ-DN2-2!7ti_2cFq1o(WQaNxMYDC(PACpCuP+LM< zh7;y6;IG4Hl{Hx|q8ynknU7i99K+R3uyRdtLp?b=_Lf`)e^%$JvV_WD|+D&^#Rmj%89kzp*JEC1TA1^T48(R=P9 zmhsWB#bUtII_~qksYtlw($I>(xQaA*qc@{YD`4Dwh$+_0VklMPD*?xzyov~Oh}<*= zU7N1`ox=jlTdM&n6J0cfa+eiYZKS3^L)Mo!#64Vt-W2(=x>@wIqx;K<<8Ocf_PiZP zPkFn#sGhz&af0jDl6yI$JPpJ*rgdyZi=<(fY!U8+Xag8kq$rQ*PuwtZbS%}iKAJ%k zDlV#y%Q2}ZzWCSTpkoj#jLhG*q3Xi&Ifx|3*rvJQS0VWnw~9G+r2!{s4y`F)cd|%h zEZcab8hSOWXHg!F2=L%K8F2$=z*Tj*j*O5e=1=HL`eCL)1RNg>EY4qa%t&S4I~AxU zvl}2o?~^yqF&q|9K-c>A)TA?YmB&M|%~!s?8fK%0Z<`D09&B8;lp?`zMwkLi*>9=1 zadG1u8lG0^VtHhZE^w$ogO#43*$rU}JK4O21~WLl+OzrU7NbGG-t(R=c9fM-%RzaPVaD{c;d_R{*=tD4F*~&qHK-X%yB`0ruEs{|Em$AJU@2i+Qhb_G}?)H zNO>z?NCt4!il@8oeE7*IWzVaxD<-HJ$nP47LGKAf2B=H!v5ut4Lu3}Mk3@C zVJcwzTWcnTc5wPELE6+{fK!p}ugHxfK}Xr3EixO<1dvR~havoWfq^!s*%uO6ryniJLMA>zC| zbh<8E^TBQ`Y-W5txLSbiDwUeVJd>2gwySYn3O+>?VppQ`N`z4Y1x_M_IN9_}lsE0+ zwnQt5{mk{>)JZ%HbMCm~_WNdybxCsqS?RZ5$!U=O6)tV?!*^a>Js@Ei*}0u)%xk(s zPoGVgssZfBVSZib!9cAI9F(>ud35_`fMK?76UEK*f|X8Pux1Kd39)Kq5S)*{mKeZigm!h3oN$zpyCuy7`Cqv$l<7+occkPo(4|^QP)$_$Yot4 zK2^8w3oQlz_l4Y^qN4iy8mjX3fWj0Q%gx%+&8ijB3v;IpLkFjJ*(6Ae;MNWE=nzqAw0TU|~{O zxB6R3nt(cYkZNv679|p(I?;XB0dHlrK#%Fd!URRCv&vK&=o1Q)oklQ#gTq|dhBP_? zp^uQ!9>T2>HRImLtUZ(LRJib1?9P>azcWjlka4FlWfRt*8~DliPAs>Nlg*3&19D!g zSjqMKJ;UmkBi7i$BW7xhFrtEJ9m3jaem&G zxgoeU@aV~FSm96ddw*a|XTrzbSWa;eD{<67Rj7HXQyQ;EVko7et@Zk&4qlzkuxRnC zqeL%6538mL3eOkDYPHSbsh%@$|IF(hv*!GUq21enUp|zv<1Vx+P-y3n(AVlSEMJz< zGL1?T8KlV~zTDbWL=h|H7hQltBR8C;)&v z2{8E~CNA_G9saN%johg^?3t2z0+zol?P!0_#v&kx!ICZQdlA>7wp(U~8WH@`_@K_o zq4GZ@#WWg1fQFy>cZoSeb`kSu!HM;;s{63Z8e%s`mdfW-si|HNnmgiqa#`75ub%ph z0%z^X*w9G1Kbox0Gu zI6Qu=+Yr;!mW6@iv8IN^QkAcT4e>jDYwYW&s|mT0pq#~wKU3a2m9hTl2P&&*MQpAy zB%I%4`P|ZkY%FkG4(WVmMw#|{;;ewazVm2&1gh_3?*K9ABDPwq_>?HuG$Ir2#7+qO zA35a+_6|3MK9|e2U(#)$D!K8WK--Glu;ueTlOSFqtz(#Jj<9iPHqHwhge~;-?BQxN z-57l9qp66lW=5m>ked@-%0np4Ue?%yOZ3KG)IUOg*IX-2hB~;=ei)693)qTM6f2 z*RH?9%}G693uOmGTMC-T(t-RJK~au=rJVD-BU8C~tOOiR9r8m4XnQSv7*L!C9G`cf zx>3xSx>3Ye!aNln69`#$X)y_9MihHH;_#QJlM`a7wjTgkP90HQ||&)aHB zK1ek_j@^_kNxKDF2kR)Ub1z+nou%(Ld%4>&P_jah0VHOV&}bmN^gQvJ_BYoY=wl9( z@M)uDw}A2e^?0b?;DQp|zahoUeCbopUm3-$u0L;scoU{d6g?Kj zO7FM@sv%(Db~9q2d8dPr6%Vn&QCTzOOpT_0JM%Fepz?g`(t0R*OpX|1_mmy^@QI_6L`E5&)R-xWACb@hmi z6#q`fP1{aU7Vhk?If}ekj-OJFfw#t&-)_|@30t{X_)OI+*pOH-YgACL6|cIyK>6}& zre5xw`W|uzcBU|Xbnx$es(QaDViKDBa|zVi7W;`_NHv|v^0u9$zv1VV1}5}vl$k=> z4HcM;%6rK$6ILWD7iAycki6(NLxR9bdvVV&1Zzt)?cQyn$k*io>HGn$Zjqdu@tE?@ z;#hH#yn%~d-tL?qbieh^XzqHi@@F}P^-o04cPfIW`J`|pU!&p_th0SB? zX{!u@wA1J;I54a+X43NDs!kxSdgo7_V=xic<8xq#&&%Oq3Y$)u%+fl}d%m67Hd-R* zMN4S{NsH3~nK(C5=}(j7VyLFO%NWLS0+AZW#$H_t;9rjytR^gAqVmdwicc)I_BqdO z0i{GAhmSFWGyMRf==mLKAh1#J$59-f^wxQRWDVL<9<4pqwbkl_49q2zSPO$1d?s7Q z4X<<;QEb8Zif(P5YuA60WVV4?@Oj5hLGAI%==5CQ$rArVUEv%I#K3`-Wc9?avY>dbp?^W z##IL<_(*TQmV}jGOIX|LW#GwlD7KX=SpdFNgl+ZsHtpOt5=@VcDFu};*^v4wL{91A z9DcVhnd>9~m3>|({yb4nY{>&)Zm&x$ZNCr$S9chG8b60lIDhzErVG!66;~C89_^Gr|G(7?y zz$!kS!Y>M^@u!B_&p$Ol9b>MG-6iZMc!s`g>{-2_7`*EHey)i`#PUmh`l>WC2J!l@79Q6~G)V2>JBpk&wDTHw0 zHyIbYwn;=%YvXG7?f&(lU-KHlQH|h5A!H1yC9*+DDwB3K2+^zDkgY}4h(%G|8VDK2 zn9SC=0fUd8AWjjiv65Ei6+|NR1F>L{EE4CSMnu&C`(=7*`707Y1qi6g}QAD59|wrE$~87b*rN5^_EG>3JK5$oOt3f_55c|=f!2sh%?8*ny+3`p!a zW^xOCO{-iFF3#na0c1|9QsJDU{3I93$G01PH(fmT_`5|$SQyrAA1+k0EfmG;+o=hB zNzyMHz2YBM#X2~0y60DAuC9dViU^@o!o=sjZ8$bb10z_`c)l^JsHNSX*Y{QA9*U~i z+1H=7vzSen<MU`&coISOyr(%{D zOnQ!Qrbj6X(*S!0D+RNE$wQa*T6Q}k&{!BcBs`8eg9?1d)iI!keNlkI#SgleiE zATPs6uJTG)`Bm`LRqr?Iui?&ipfy&?YIIsG1JO>Jb5X%CafgiK2v5QvP)aI>`xEN* z?k$vwtQ6`dO)cAXD0r{VLzS%g1ap>%877@X2(`B+`V%RAZs9B$bI(akmslI+&>TuM zwyzp_ltxDsb}3ZAF-AxbOG24%!>-<(&S;u_J=!az|L5kmXHV|Jv>w9e=f&Udu9Jp# z=c^4VVK?hrq;$)1N&izJ6DBnI5*F-vERL_IKHTyjfSxiTinb|ApzAM?eiM#JJ#yUo zwJfy`@W9LU4H=P)VfEinCk{7}3RypZc3yx!T_==bG>N0}xydeON<5TMIrhpp+Lkh3Bm$80QTXr?5urf@ag)er|sVUCs!M_@) zj&jqvg((%Y?s3)&&Vb+e6!M9O#`a zNYOS{qP`{RUPi>i!6=jGYS|s-5ES{6jZ~!Fj09$qjfyr;1kEy4;yxK{UPwb|r$3?_ zvro@JbElC@WBk!j#S%rb-gz#objfAVGM_|>?)QvBOPhNEPQ0aJ!Z5*piwaq!h?kB^ z*LOH!g#`@vE)QPPsKz z*EbVtqha&sbU@}Ezu9L#Qy=)3)_AILf$ppBgfg@2 zl&!kxK8V__shB{s_3xvh-wO#hEE(lz!p; zx|44O9FWk4N4!$|uIdjx{j7(xjJc^x^${dHgFs|D|FV1bT0vQofH8%4Lz?!(bwX5pJIZeQfzj*G%K=R zuNnsZid;a;ClC|+xfdbFoWsUCO7lnXZRRh@eG`fkr8*R23#BdkUQm zeUn!XMo=H`z>(gs^S@?bIL-D(xMbWTH4mc-U*Y+)=>DZs5yVcAr^n)fdUlXzY?j7B zP?9pxA6FbAgz>=?7~rc?@FH`NO|*LyNfwg;{U)67g$Du$r3w#U)zBk5UY{HbQk88Q z{1dH7N^ae;St#IWVcpWFqDq(+hvPiV6&A}i19n`6I} zPX?E@{PIszi%}Zt>`ydWRM#iU7}p7zzF5Ac7LB~=5fr)r9Z%2F{Y{a*71{|c0YkA_gfE3xhdWltB4M&mYt$X!tLugv4!bd6ayk-2#s z0pIt)9JYcKMa8$WwuuOb61_PXGSf-7unhyMmB)!&UFAqH{dwSA4v{R3&2P45X+hlp zJ--E_f{l{*t58JnV_Q?`a3si8=6rNypx5YzG$rcHadQh5>&`uHH1`dZG8q{l{O72+ zg9{#p-7I#c-ArpeM{d42{xoy^#Ta=II&y86veh0%oIOOo qImk&8vp=siU6GfDx?DS06tMDkVd1Tp`jub89;Cf z32AQpHhFH#qcy+LC*PC*1HBVqCeQsRe4R_?CC)yC{}4UL{&@BP{b}iK<^%R0_JiI} z{BP`!xqs`vpdZdZz52QTmjD0mFa10FxBlO759EK_zxR6ZdmI08|DF5E@E`lF|Nqzn z|A(jtRKH8VtafSrKk^^Wf5bjP`w!%ACEi;8-RLLr@2tOh{@eY#{y+9FWWT|Fo`0D0 zPu_Rx{-9r#{~7+n`L+GK)35sP&<^!*0r>y&@9`g+-`~9T|BL>s`-koy=3mi2zJ0d+ zfPWnReg1p}af(57H4Z2dc4E;fJXfyla#KN@p)GO5a^34WG zU4;M~?;C0WCj)fRmhH8@}6&bdo zl}2r-rBRz{VudxD4NhleGi)tOHfr*B!lb<(7sShayLa1e`)%KCyY07qw(qvx@JxOl zHLn{FU*02NZvTnWbTom5F^t`Ov_etOjS7^=indvo^4 zzCD-&i1_TFA0sx@QmDL2y@Bt=7=9XztAwN2{cy+(Sxg*br~odlrg5WdcO*~nN1g|5 zES|R`EdFZB97b<)p){EwsLiz$sxxgxDvaAvN~1R9xjmpWpcr(CFOenkB)Q2Dah+fb zDa$o4ktOmZzC@SElH3IY_@BM7`!N`H{WoMkuy&q(FZH>{s`wNTZ!-w3ldt?nxPC0) zjdvYsO?t*RN)x5qt3=zlYHWxsOzdN=4oM_&^O2ay1yOh_tIO+R?~q)mh{?Dm5k4V- zULB7n4hW9cbhUzoN>64BQCzDc-~yto_Zb(AV5MtCUYH^k8Md~EwgvTlU8NA;&Phcr zMLIy{h9+&=%6rsV;L7Lm36==&^j#LbM4p_>sfnqJ^=p5Ue7q~u~ETu9WfF*+~+ z{`jQk&NagniofMx;|Gh)zBzG#Xu!;5z1%&RM5xC@CCJlKK!P=J0&Bvq3ZH51)u*5a ziNe!(bRj_4PXa}LSc&MjRcv6C)BZ9*IgK&IYTyLdgsNMAS;QhTV#D0({F^WiQFaS(;KXgQQ_i#eFc9hW@0QWEhSaHh< zx=mSprTg!{;{UFx9|KmWk^f9GM}-q*hnb!^W-cDY#(d7cF}Dlf@vY=aX?9u5mgp8l z`oq+5Pg)`pX7|wOYNchbNL!pbXs6ptqJgc2DiVy*Zif9g@YRy}0pMzF zcK`T?%}mAgClOqZfoZ7H8@5o;nF9XQ_?<^801cZ|Dy6u38qWmGsZGf z8u;0;mi>JM+}9gxc~V__vD@c44x&0&mfzQOQKKTJ3w-;amT34QzTD!Ux{;1ceg%UZ z=tA5%BmlqH={(tu*?fG7%z2Gt_^jZ~>NC;Rvmci*LAn1;L!8Xa9-n$6RO_sK^4_a% zlTA$_(`!uWjOT(e22E31vHsq5-Z~<$3VmPqFC~!doE%@56b*Q{<}b-<;-*Ho09q<0)XxswXGX>fG)Fv`Qa30oXjtpH_`gL*B=kZbQHMfq#mi(o+f zWG9{C_fzbwE&3~KX-Ipxf;%R-4;*5&0Pi4~moWsME^|S7l>CsB_EEG$r_n2oe!tp2 zH|CPP@dk_=2aJfvJ&No-@`=Kb>9nn9_-k@|E*-zLv3hRz#R-MpcB6=bHzI^r9J?qf zuL%`nWQo`QqcWrMZny=muP1&TvhL0Rxm&n6xJqu)+Nw&tw=lXi|+1dSB=Y`JW-aWC9>-1m{;pXSycFTmx zYp0#On5rm>agz?xJsAWCcPTZwap$qFRIpQA)XZ)mSwk)*pWkY#%e-sq%dL-E?cUhc ztW^YGs0;9nYm5mRpqRNS0yK?%6Sp3F8mp1El35rdQm0yybq0jtgR!Wr-DjQZ$K?x) z(n8Q;NFO5IW*qwj@ajP2vqCAWk$W5rY@Yw#;9{=KoQ?eOp8K2_d|dC68$zn>WStM7 zbu4Ra^eg3D#4H~A9VVj;du1ix>>gJsKjc{9U8tDEV^P;kqOaagC7(lAV#k*OVUwHz zKF{0Z)^a4$zELM|Kxov)#|Ev~At6GZAJ{NQh@i|W#;Xm}mjD1i_ecv7AecI!B|1GO zc{73)juyk{4aSvN(M%K0!QGj9XV;ZE|KS`zQnp`uYBhfBQGoTR{nv=2BlprMhsM~C z=NS`tSr$fflO2Je1Yz<@Byld$hpH8VjjONB)bk!v5_=o!{a65%zhzOEF{t{Plb#Y8CVPO}2pxm3mT_g%r1GzHnmaeJ@}B zf}sM5>V2Cr0xPNHUDNi>UqGL(ZOuoxV#e{s-q_@eT}y)wIhuyroR|+(sN%rV?&qb$ zpm&~GU$^k)goi!Rwr?jxoP)bzpkkwUy!1trviblUNHOa=+~+Utmk8Q#7}2nbtfhH#XW~Q%xu026rPutK8uCz6E59iw zkNfZ5hN5pWoEQ=ddffbD!H3wtv2&Xc3 z;y>MX34|=n?CX7?W9BPpix_LjzmTmkwt`5Pnw)1X;-)&M_#Zy7Gv6vKjAX z7tGCKx4$92L4N_tS#}MRZa#=yx$HH({3YsV&4<6&g_xYo8l)eU(gGM_$Y|J#?o?6# zp1hR5;#6$%?$XIcensuH;Ti(u(qu*+`jhS{+L=5@nXiS)Wk z7aait9}nrJubB`nhqa;-FnBfB`%LT6f#nmxqEpObj!nLqX=0xOqSZ%3gbu2-tZpCz^2^}cpeh0yp?t`QU-Pzed4l?NpAYk z*Us#OX&$03c23wnmm>bj(qIGhUfS7w_63Z+fIgs`Pz;4SsEAB>O;j2}TW$HpvFb{k znaM?eVWKyfo^h_|yDT9MeKdOdh=*!iGXjDP?D000007)9I1a);>I2=c-p zM+ABgcb-hJ1-~Jd4lidIagOO3(OYKV}fTWfNYTCniHAA2qAWEb4KcX85Xi;N({SG#N)5ie7opBk$ zaxri=4@I$>nXObs3PeuP!Q2oZ+kk67Zk){{tX>Fd);Yd@Q#qVslEDa!BI_e5m+I_* zFfEo8OXeDs1= zWYJIR5U_0#Xgb4tr%GjFolj1AjaULgGiqTKSgfy_sj~1JNMGWK?otk~u!#T)fkeoE4A!GcASPI`vmpcwoVMDN=m_?7 z(ZJ*BBxJ%oXxF|F2qfZS;`eLJ#SI$6f?Imd%nR?#nFShG*2x~9Yq%cVLZtih)%imZ?`Yu4oSVdhjXM)d&EZ6T zf1#n=-S2?H!ZUnAO+hDWgULM8elMMU+ffg&zH1U{v@eGXnfCKif{faigdvp$oE*)! zCR;~BC;}6--ijhU;i(hc*vB@mS4hC432Ygsmm;8C8ycoJoLEeD4;+3{p&`p}F67((T)|;pK@5(T zr8WGEx?4=HIS3lk0Q;x^6p#JAnxq~DHG8ptUPyg41Yx0!5uya_l`zZ>vCCL<1+zt3 zz8%bR5u#ig%HggCI&Ou>Qy8ShuUT5(=S1|E`}{dt2J^6LuOqWMiI4I*BmD4Bca2*h&(w^i*;c?iQWhetz{9zCqIg zpm_z;HQ2?oq$5>ZNK7D9;n8uBRpqLC+{szwK`WOTVxe2;y)F+v%1D#YEJ+f1uzZAv z!!K56t=<{bTM5O!Ii-8rwuaFEEl&?^?n@!ID-TUsj!UtK-(7RkLFgae1bT14kJ*2rKlQ4tGyVbn?>~Y) z&QxxuaNW_9cxm5pu=r-1!omROQx1rZ0bxysE$TcR?VEwdNGdHzDiNkWFE zwn)Mp!)~b`{NI4ME2&De2C*-WMRI5=V8A?FPE;c+Y7Q;JF#E-ftF4S-HhsJ4spLfm zl8%2s{Hm03`G^Q`{i(`8V563j*^y1#c#ov6VjM-F@ceOc5`+?kwrW5AoEU*An`r*= ze}u-5g*<=Dbs91^^uPQ7&Fs{f*~mT_^7F@NOZ-~KP4sUA9OPG=NPW<#;0_oW_ag>^ znG5hCN&ptx8IXA=B1HJXJsI-KviPrS{77US^T7x-cVB=qBPN}*&1&c-F!PzdEb3}@ z2u>>Gj^P$LbgIHmwrOqNW(QOt-6a#Br>7*FaDOy0LFP*jS6{1#rfBHJZe50`D4t#m zba6-jm2tE!o!vt@b5O#s>G6c3Q`f<>Qk1pWA87JAZ3H<5C$M+J{a2e2yMMHbbO&b; z%Gompi1ZLdlG>is`co^$+#ln^lGIpfLz+s{+Yp2t$G1BJoeY^#d``8d^*LcDa#(-K z_LQIOVw(?Fzv_y+TCIBbHlu#*cl*nl@Q>RD)yWSBc8*rw)#aA{Siq#r)h~ttuk|?0 zr5v7HOQUC-8v*^B1AnWz0YPy8_A@Fx?dmI@8+&AavJCbU7{J6x2t%h+nNHVlK#`;u zL34=m7#n6)cyeaI#^u97@$7J)_xDcI?St8g$0jxJ=qY&+vCo<)C{>3{BpPel22f~`Dx3NP zVP~6Qs7hq^=5c5N#aH@8Lo#ua8<@LwMh833LjU39L{c{q5c6*sN)g6sYbsg_Y_MGX zv5>q^*4*KCd9sKkR3%9#sp}#)F#E0KKm!WmunW01{9B;|dlh%6E#%IL} zI`p5u(86-7a1i8-{5zEIJy1y=mnr|yp5rETYjz}T;{8|)X~eX(XX9b_=sF_#8Oa=q zPpA&k{xGQZ*J~13nO*p9EsPh!O{)s}NJIDKH#D)?tbJ#@tNA`O93#_xzWt0`#@}B} zvqXNRd>h()O=P#DZbTYfe=l8?B$XChxq~)T-+m>-7^C8DtbuUksSgewV=Co|YpDR} zT1K@lM?mbQH|jFA#-egksj}5Bi^7;EFpr}>!p5~}`-tFAg6{&MIOO}#dWOD##<|k9 z!AM}qTuHOK_v%Cke@I&SU$daP09G&Vg}F~@oSbL-uT?~D0g#G>c)%|FQHR^@+~hY% zgvf^-<`&{+7wgnF7^C0T*v8?5*}2FaKD#p_D+7=lRKC}ZXOU#`+p$-rol_&At65b6 z8kf`XmqY|VFSjV#cogKk1e^Pw{|*(T)FYvN!1r1mDjiz+GZh&?reK+;?!SzXKHa=C z=0m#D39zMKs{aB~kN}q@*Cbl@7ElaQTQx?V;l&a=FSmo2u^+n``K(d5#!Tm^jQU&` zxiVY)ncs2ki>HAO1;fM0HoDjcE)r6Zvl~Q)QAqQwW0-WodPG5VDD3hN0IUf$lb-`B zDr;|t^FNK;T)~;p%0qIyKReNSyN&oYy|YHdR|I_IH8_G|UjSqX9u>%@SerH-is`l+ z=5ZrF7@>OByu~*=RQPr3T#O2e-+8jZ)L#qSja*LK|9;T36AZ#8bWP5km)*V|G{NN= zC0Jbq$2}kcNP&4Llg#J{^muy}j1cJxN|Ks(8hq!Vn1JRF9*dyo6~}y=V;7TyQpvs> zpJ}RmK>F?p6#@Idb@{+F5B*~!oBTQ=y&9OeR}2G=A5U-woOw*?VuF!*p)&50Rd{Q~ zG!Cl(co`!YqUOGCTF0wx85pUaxR_`OIk|;}k>2cNW}iiSY3D|jBOk(#Rr^4^DT2R4 zLjjD}IFvLba>VU4L#a&7W{_ww|(EI?s7rpJ90j7Ml=K_CN z0}%^FHn{5wm<>eP+E+60V!0P@0001Hb4sf}1S#DwN60!aG1+qXAoUL-U)dUZI&2|a z{lqBI(b3V-(jo(g6G7mG)1A(|WSsqkLm}M@sERzucS7nSk1`$7vl7{fzFutn3n2Hk gU(Km(crD(?WC06tMBkVT`SA(LqYv^WI> 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 diff --git a/static/images/directorymanager/11.0/admincenter/securityrole/policy/querydesigner.webp b/static/images/directorymanager/11.0/admincenter/securityrole/policy/querydesigner.webp deleted file mode 100644 index 9e46a68afd413174324ccddeccde75abf0e45318..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26424 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 z%0A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 E0NW@o!vFvP diff --git a/static/images/directorymanager/11.0/admincenter/securityrole/policy/search_query.webp b/static/images/directorymanager/11.0/admincenter/securityrole/policy/search_query.webp deleted file mode 100644 index 51fdf5d19f8abdce8fc6647aede4a931783a96e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2718 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 Y0155qwfE@qT_Kqvthvwt000000JVHW4gdfE diff --git a/static/images/directorymanager/11.0/admincenter/service/dataservice/ds_card.webp b/static/images/directorymanager/11.0/admincenter/service/dataservice/ds_card.webp deleted file mode 100644 index 57231272cce74a4cf91f7f89a3f54dbae6825c31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2364 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 diff --git a/static/images/directorymanager/11.0/admincenter/service/securityservice/ss_card.webp b/static/images/directorymanager/11.0/admincenter/service/securityservice/ss_card.webp deleted file mode 100644 index bd776131a18f8a1d7f0e35fe0c6e6fdc3ad7594f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2436 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 CY1uOX diff --git a/static/images/directorymanager/11.0/admincenter/setupauth/access_code.webp b/static/images/directorymanager/11.0/admincenter/setupauth/access_code.webp deleted file mode 100644 index de0f6f548f56d481f622ab35f19fedc406478676..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10196 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 O)c^s#-tqckpa1|rY2%gv diff --git a/static/images/directorymanager/11.0/admincenter/workflow/connections_area.webp b/static/images/directorymanager/11.0/admincenter/workflow/connections_area.webp deleted file mode 100644 index 6a15484c66b812cdde990dfc8bea80a46d1b08a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3220 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 G0002~JxwzJ diff --git a/static/images/directorymanager/11.0/admincenter/workflow/pa_permissions.webp b/static/images/directorymanager/11.0/admincenter/workflow/pa_permissions.webp deleted file mode 100644 index 002c204af15b0d21061bde7cc1bd618e2738c576..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10794 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 diff --git a/static/images/directorymanager/11.0/configureentraid/register/add_a_permission.webp b/static/images/directorymanager/11.0/configureentraid/register/add_a_permission.webp deleted file mode 100644 index 2ccc41da151ebb79573b08598bd77245f6a954b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71284 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

` 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

iQpkyFnn9>_e!(fv5o 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

Z`q8SD?Eur<{E$I8_};9g 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

17y*#Q%i|K)BL-T^cZFnkUh)) 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 aiQZbz1IB)A6%!eMG5`U>i+b6$0000S;%o~5 diff --git a/static/images/directorymanager/11.0/configureentraid/register/app_registeration_overview.webp b/static/images/directorymanager/11.0/configureentraid/register/app_registeration_overview.webp deleted file mode 100644 index 0a9c7b51b229768cb10ba277777dfebfbeeb6e2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46994 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 diff --git a/static/images/directorymanager/11.0/configureentraid/register/application_permission.webp b/static/images/directorymanager/11.0/configureentraid/register/application_permission.webp deleted file mode 100644 index c398c73e988c3f14ee7bd9586af68885d7b54cfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20732 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 D(WRX~ diff --git a/static/images/directorymanager/11.0/configureentraid/register/authenticate_node.webp b/static/images/directorymanager/11.0/configureentraid/register/authenticate_node.webp deleted file mode 100644 index 88791f8726b126c13dcb8bed405209a703b97138..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77326 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 diff --git a/static/images/directorymanager/11.0/configureentraid/register/certificates_n_secrets.webp b/static/images/directorymanager/11.0/configureentraid/register/certificates_n_secrets.webp deleted file mode 100644 index 1f88a9ae2c31ca84063c51189d1220f61cb2705d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56734 zcmZs?V|b=dlQ$gO$xLk9wr$(aB$?Q@ZQHhO+vdb}u6OR;{qNq-?)&>tRY!lQuCDGv z_j#O3l44>h+dx3-qCyI43LFFxe`SVJkZfQoR`75TK1H%PG2#Nkd=fOuGkX|lQ`=7_ z&9VjFIjxjDti(M0K>+(V>a+O^VA`kuHT8gh7~lzT{}$g3ta5X8Tm3Mf-hJ@IxyYr| zlLJJ4!`_dcmwo`A^$)rSe9HmB0Q3jI8SKaG6aU-p0srjx(3cLN`a}Pk`$hV`au4z$ z_ZI)jx5u*qkpETig8xKz8i;l>U#)y_3e3a1V{n`|Ej?MK!3;o1mpq$-+h2Y zfGJ@44e)>ouzQjIt{wM%v3uKX2R!+R`ZoKv0&c!fw?F~x004k*5C7d40JwVrdI~)^ ze~7*CZP4H7hV{|^;{Is8Y<;#92cW&NU+Av_rhL=C_W^_3m9M_H-)uam&w#t!U2lnR z`lr-u-!;GxVEp^(qxFURG4@7(r`O!K`knnI^Lh3zx2<>aTcDTtTlmZF!~B*0HFp`{ z`8DpFdKI|TJNnmB+>hE@*bCPQ{w`l@0675voUkyag96ZlNC;K5ZJ=0_$;JcE3MHUIXa)r>=Miz z;A1)lA2C3wBy<$X)7iK3%-1aU^gf4`j8?JX{9dhdg&~(a4CUVkBo0Z)dQ3?Fh89I} zHl)#tbg?QnLtM;U!`*#3D0;#MbC>R($x#@Nw=n1VS}W8Xr_*5ZAx+7~*ycjqEuOqyAu>j)WjGntz3CXx~M@HEa(LkQ-%S0Z~% zv%Z3elc_{m((lDgI#MV6GM0$Y$T;bcKxa;E6v`Y%#2yx=_e&pa8twi=}DKIxn?5m?e7zXqCfmzqscp87b6k)Br* z=Hwj~5gH|iW)&mf*c(!WNQlIJYvG}BdX_p)RQF9k-ph_4Y7K@ShH|Eofs!KIx2hP} zF!P3)7&^IcIumsJwD|&o$sLvwXM9MTPQ;znu0ezm*M@hev(~1VTXdK%JUaIPqCqy1 z2AxfLAZOST>a$C5o}viYaY#&vEo~z^Gb)dINpU!6wpV71P?J%?ec5EixlN>w%s-4V zwl`EaxH&j0bUqTxdgi=zZp(wfAd?ZvNMQ86xSBxCG-)J#b4>7_Y>FwR6qyn0^ON#3 z@%|WIExY-Z-=h<^O*bO`(IQ(QdL86yCZx_+x!1qkm84l#okGC08=frX?`B;YB*)~1 z?AfI)$)zj;3(*?Md3rq*(!qI5{an4PR9zaiHgUoO&b&mi zIHl6_Z-Bd;G8vxdT?kQ{i2MfxEsGWURcJP=xSZd)F5F(J(c}iKY$fXt3I+$q(cM4n zBjC?~-X#;tt*@5mfFBb{l~y;)^FYtZq>5`>6iFV$MS@gf_DlVld9OS5IbD(-Qn#(RaI4as7s>o=Fv5#{u7G_3J_>=rZzhzEBMik5|({r zWiqLC69l)dPla>v?eg{4V`2Xf+|Xs&>kFe2Tz6hFFEG=SnR0GXOLhh{OP6jTe$W>B z@0*qKlcP|rRs^+Plx$sXkCSN-4;PR9)XL&FVHpxU%1Le>!HYi#c(a7d>O>6uxs`d= z_6ED>-9bD^-3R>n0{e^C|GRl-PUsBB# z#o11*%|B}gxj%-Np$NbK2BSI5jd+aIXz9%m7&*RsEp?I81&RwciFLrvfzB4WO9S$L zeHF9~+NT=Bc@Pw6kANfIqKxVRk&!Hzp1O`6jj`hrF~pke_O2K@h$v>E+R5UZianj7 z*;*~!<_dUG4?~Rg1Ka1p>+{C@GBffe#<|*)GF4&FJm%|MB46Rx?6Ui3zSQA_#2i>k zNI-srPq(p|SRS3|=Y{so=P!Er@6=*U<4a2xHg4<)eKvlX!pDh!C-&W|+O!_iGL4?w z$*QVnI8#%T9O@p_BfwOkr75gbcSv4+51|NX&`f@z&i#lV5rWA;vmC|Vb&k?(*nLHT z>IM(LEvnmx>RXN;Wu7>cY|W$yc_l%iAZ^&p z?j9B8%^b6GVklC(r~~~-0@2}^<$dPOrrq5sXwJ^RUh z-VivOQ$2rA&K^dN?V97J^uMMYZ8%~5XU8&y``@YcpA?&(Znh`e>k0~o!!a*{>_iCm zFB6$cRPgR>Q6iS1qGm&;US;Hb+RKsI$brX-vE>5)#>oEzfihc>mGs;6ezp{&uv+6U zHsVq}10_mtuhtlB47W@oA|k?%Ap<9I+g;ewV9zR==bxUiys>7lz5j&Re=lGn_4nM4 z=9k7e_l|jIFe_@&?H%WgW7bJcll1+yt!PTPfQc!&zRa7tzzkjqJr;qz3HIl(hEULL zsE${*ZK+pS1!1=*Bi`e$Yt9@!CZLepFWtr0XUyVO+M+zs6ejN#B={hWM zveK`*I(V?FA6(%gKs#bSLB|z=H2*X+|HD-}A0fTG9v3W1nl-hR!i+hs@Xx4@3S${5 zsj{i4Pge4I-UE>%Y6qOqQ2)G>`;}q-!i4>5r^L4`k&!kc6yTQEiwDtw1aGKy#f13J zP55`}FSE;;)a{xPiL5$Y7BMIp5m@jwIJ{vZ6jQ1lUx~bTIW;tQ>9kwz*GKyH(+aX61 zn0crSTUHM5-daS8mC*2JWF2Qz7D`etO{o}O4h%=v=mCrXE@&R&^q6*QH9BX@HEzK1 zqw{}5Tp7AGm~2Hv1#uQ6!`+O95a)y-oJ|EjO~WtF+Lq{x&TDqAWzN^XottELe99T) z-8X7xPu;fe#Nmzc0E&KnR1%DYnw$NU(moGIbftlM+ zx>x?wp@&la!u~|QzmiLHI;`xM=c zwn;|T9&IW~)>z2P6iS3~Irr->3`5KfMb%f`kI-m2 z5wf?!4(Ac9X$ukO|C5IPk&@|7+E57NCXFbFny-wQdRXCJ8E>G?6wCY8CyH9h%uWX- zL%^)M-e}cSDK>}b>eEY4{{NCvDP{pi{>dZpG`^f8(?Fe6kgcS;WKDXAT^C5JF{@0l zlPejcE!GO80TS!>mf2OZNddR;qT7f_F;`Uz!Hg&4`z6iiMa=OV0QU-mjOdY|C` zJ)?Qb>=#o?=wGp6tE~YR2>pWu1<6|Zw-N>*40Hoz!nqr~!1+J}1+^OTos(#c9O7(N zQ8ktJ=6s;1F*R9wv+PzqS=fomQW}3Ms`|G$|M9?o^AuY!mE&U#oq8l@G=Za-!`^C; zw(edYX~(If;b`F63OVWPi%^<<6WNd(YmPf?ajUTWMlKeC!5WRJ7{1gU9yCiZB;igvUgM+D3>ABDg=2AE(r5gxqawpWQm~N0vb0SOt{#Bw9^P1Eu?a zRAfcsflltYR5{;&?#Taei_-*kX&5+vC3eg8^T#IZP2Ojvf2I06X4d~IfHo&!ih zgiu2NhY)=IfD4SkvjAq;M-PxzafOa(DEQe09-aeEv~U6Q84*wwND+jaEw#klgWALa zIwJZb0D`%k6xrD{==yK7^)F20CE8+A{p%8-b0;yPS2hVs@wwkn*-Dr7efP)@q!WHEth-HjeF&pWriH6oFf0XY$n{-xwhtGtlng)klS}r z7w3xJ`coXvkXNPoY?xBYX-IvIJZv#{`#-Rg5uJDYG&`|+zNBM8y%FUMf4kAVZ%mms z8JhBs>Hp$a=mo`ff}P90+7HCOORKuU;H5k5#ejSZ$OMG+KRB@=Xqg=xcAJwQTPggD z6kklSGe&Z*xWq#v8M*Y*}EB>tzv|2OF^IkGKC0O^bw+nA$B}ZADD@so(B4DgH_O$tiBc! z8K?c4+5Z~=Yml1xLcUZCMy$Ic<)(|Ab; zBp_=D@-=jkI8I9z& zW@^DWtTMpo_!2D*OdDab_1X^ZbNCWHMvKpdlt&(mh|%EHfyq+kvG0dwBiik{Jna#{ zWK<>O_dmlYY65X(QK?{SNzDCIf4n92D{F?X+9!;2DWPyx3TG2pWFFI;2{w@JD}q_( z$6PWH@j`ob8Mj(D$b}X=Uh);DwdwO`C zI;;t}9ITnCfM=0|m}ny=O3+$?*%xRJ9}ld!4yF_h|(O&u5Cd6DigjcL<)>q@mYp>FM&UF* z=l_V_-pYY6<>6ZVgW1%-Uf%gwKzpq~#}>1Kfwu~`=QlDnlaev%QE!O7*JK3bIA6Be&q@Sh4yQ67?;BJk`B*iZ z_w^!%>Gg>H*OMa@-nd{5aN|bQlnSfwPht%Hut#*a`%!~T7oFJ@n7U4a9?48Ed|%yz zz0CLQ=1K>M2<}t1spCz3=joEV|Y09O)0(lP3?u5FNOY z_CP98hnkO99Et^7Eykd>dDhDM1KVL|UvCy5qd$_pRb4i=Oeue2!m0R}LAvc$$j{Cp zLf=_kb|>=Dy4YvhaBWzC%}5KdQXEx&_{8*@E?2fq4eFrrS}A&l6Lm#|b?$8dqh4xg zbDxkI0lDzRsyO?)U}Fg)6>5Ep&3-I06ZdWnv|mN_3?J+(!-oI`k~cJGIzQBuI3ZDjzDTF}5F9KSVEL4mumFM;C$CWyf>=mqZuH+!YcUV7@U6Y%RQ zDE!G`0mS&XVSwLw8{WLllt*I!aAw&}V}jR#$uZY=>X=C+xMp8Q01+*TPu7N1ojMfk ztyM8)`i@R?Dg-AA#z{~scg8IJLq}dTdad@r@<2{=h19#AkLcK8gSXhYc7pv7fSD}+ zaQJ*ZrHtIfYzwoWF6hYXJ|9T~oV_o@O$LyS3L6;a&-*}KF+p_tv_L;Bke3BsKOvRoE!;5?2+ErN_jrJw`3)3xS#=`ZQW zqm(l~!!24516dR0hVA7wpMf}FdZ%8i+YiDj#)FFN!#Q$!v~xp>(b?%p_s!_f zCK&H^4nn-bG=k1$AD|X(ccf>^H-o3g|_3+f^x)3i3qkHWO z`MHdn1Dn$N)yzq{N5h*($wT9_PPRj7BSNhG9qeu_o;Tvm8pK@fiRYR{;(58NQmj2n zkPfSbO&j%olit*Ajs>|ID2x4ub$Rl+9s;)WNc-$6<|?{rQKx7B3H%#cMC7Ut8O@Az zB)Y%6#hZ3NH=gMLI@RQy?kIuhdKrAAoDP|jvmfCK;&sQ*BHy64x`Zk$iXS9MTSSnt zdI_*h1sOmzDY8T!2J@V8772H*EK0>r`4A7$gYxooiFrNlSC2kSgMs|D&HCrXeBW9=wy`KXtTKmm7SkC@>5hX0v ziP`8#XWHSR;b@usUJmmu1%AQ%Z`p!Ne!@*YtLB0hJd;X?O^E~Sh^Ucc@=Y4TOK&7L z3?!^-Ma=LX52#ER-&x}|Ujy4)jex3((u<>Q&r+v(eO7jq;(0n(;OLH4ers&tR3Io* z^dF{m<_IM9X}VN_oO!usN6wo>{Dbze(Z1yw$#!O5df(J3)L_3vTk3;HnHN4XBj0zU zMpPomee-&-@o_jK&E#C_f}+Kk(-h}bZNe#OrN=Wk5mnwuU(gAlAKqBA zH_03}ftA-O2q(~&bUVgc*B4DMLEoPr2w#GJ7Qf!?`h0M1T%Y>#%}7>k!!>P)OU-*N z-3*NWT=_d_H8W)qr9=!b^*=Bsicn+>lngiouyhTrGGH+%&`$8VT4hTVZr>-mA0@W5 zKekkF%yov9kp$sWt{FFU)Rv;KX7;nJ??^)u&}DZM?Mzmxvkk1xy#ZZMHolsLH`Bdx^6$AG`*i6b6Yw z3kJ-!rG{t*%z0HR8A;R$F&&-r)3OC$!pQ^zTaMuY9fDuVTHEIIgg206_DC=PYa%Gq(0OC+%=E8qWd=VSkqK7$yYzhgKJCM{%vGq0Z8-6jK z3tuA*{PC!}V*d*X4VTythm4*@>;)p_es2AS_fhnBy5Dp)A@pa{69b|$z0IwU$@Z$W z)x57%Z!iu_;Ezh>YwuO*35O?|t)e`L0D~J25a&#g^-_`DanC@0VP#I{ykL0IdQVVB z{=g}}cYU1xDuEs}namKBL=MSO+e+;XpvB;NAOSImT_etLe@EjmnQ@Lhk?`&b=F-CE zgpS%R-gQu37%3MG+%P{b`XzD4&j5Exw2<8X)f$E%$FXSRqr3~UJ%UZ^WKb_JBl`59 zHF>RF7ia-n9>rWfTt#VQ6?=<|!OLz=*J~h!@mJU%lv0?1%EoI$JYUMaxf{P<9!^RV zIm@^kgi-DUZAk;|s4*zbVPFxd`aVJM#NW_&rcse|R`8!A%e4u3M{>x!r#_K8SeA%mF z11gka(|BEH*R<>j3v8E5F0Ys+L($hu0u{jA?bm{qO`jfNc*mMV?4y?+p~%YMxJl*@ zr=7Nd4f7Kmd$Qt5v+z0Q>vEl20mimKvB32!kY}K6?qep2GGj5VcIp}W;UDRZ6it}B z@lGGZ3>+rGf*Ld+DA?Cpask$bUi)qf+yO*nYwR%&-iQ9|0+|_ooyPlP>qZ!xU^FWQ zC0l;t0}fmtmq1iXqwsO2Lu_aU3K~GP^Q8E)q1_7@oX>Sqyxp7ZxP(DHR4{Yj7McEp zoBK}aomL-{v3}KH?9CrI@J+O_Xg89SlyVj&D8laQS^IRm5%bAHnkI<&rR9&hpt$z< zH*dbDw~vFL0A3sb3i*D#D1AIaGn;)E!I=z7hW^(yt}5@k_|zZkbk2MGu(%0s=-xJA z#(cQ1;j75~)`NqM?)H**y_q_eI;;Gj`8_<%vm9K9Ku#ZSfw^g*xkAW zCeh#pF?XdR<{}VSF^nE~wPV4rei^4*?WHYc9$K*XdP&K;B9`R^o9BTbJ!urvr*#<% zIj`h}_Ucgma7+d6rPc}(q^G2qcz3(IjzOj3S7Wt9kb+KfC1aWZRteDhY3zkbzY~Q} z=Hx@;IvTJ@ub-R|ku%Kh9sV1Nf#ZTa3+zM5x=aU9*`N$ntgna{H5iw=R8Lql(U1hH zOLwTjbGCyWb?AiyQjzUQLN6ugO*84L>>_&lsf?S|zecf1flSu-h<5`U)gAlL68S3N zwxbA5c0YyDK;Rv5YH8rkVML3@x`jhq4JB(cs;~(5JK9~5%>qplAIIo$P+K>;e6+P- z5fR&ffCe=gpe z&mr&H87SmX*<(MIR{h|m+boVGin1pAv&030;gfsGIxw90n@EKE_hy~YH#yOUX&w>R zo)73kShlQ{#d*I4!~t8E;&bfEl%28DFi1D0c%1383D)>0xf#q3psJ>Oxr zU*$DK*GPo~LOhY1X|uWQx2zH|*by@Zx1}8d`=v&#F1_bVHlp2*@y;;(-$eY=HW^^dp!VE$9+^ z4c6!(TKz42h!S=RvQ0(4a_kAbLDC^TFz8R-SfJydhN;w5r((6=`9sCAM~O4(o;-Zl}qJIDZ7&@ z1+O_7Au2B&D#}|-nNokcnS%^=Ax$5u$gn)WI_oMzGR}*Ph5P$JnohjEl z)cFGP{m;)|jb;@su8=pr=8|Y`pnJwD_IOP{xaJ|Xf-KZv7I`TMSbz| z!$~RBN|f^bEpDr1Ox)LcXdxqIuw&JG_K81a!2cD+WA_fuOA%Bx`(X>^ltqwWnuW=w zYYHvReh0 z49f|gnTh)T`%`?%JnY8gt4Kpv&`#l9eHt`^jm%v$p#fW5i0A7dvP)Xp!qSQMCL6La zk{-ARtb}jpNvWz04vDQ|kZNcmSW$^w6 z?**o!6(l-z!0%*OL)*F`q9puz<+FBE9}8AQc_Lgu$51wR#3c^po`b3FCFE#%^0&bN zYdR95|8l5P)m8+@8Ar}L`NXkotgssGMxQ6v3fIT12s=r&$Ht)hNLaC znExIFRLfM7`r5}*P|FBM;OG}T8Sx+s{?^es*dX&5pp*7xXs?uFNV!0d4m`ZhpBnbh zRt%oEK;+X=!K#{>)R9Mh!2?0w0&Regf0|Fd6-~;Ae(-_tIZ6Y9NUIt(J^mrWQm8K} zcvPjtdh8IKn!tgk8SutzLdrI)3^S3sR)QUvWNEQ)jOZ}wu*@K46U~)8J~>uS;*^dG zI#pMoTgy;C%3bSqfi`f&-Wo$Uy7j!I{I-t&HG6k<#S{sw%n#+~@w4irV<2Tgjr%eE z-8YQ|?6g!iU;<7QkRY^NV4$Xta2|Y)R`rSlknHU_1t)-af~JkcVwJ&-YLyS#uE?B) z$lyJfy@57fV;#|$zrxffn6Ox?EnE#^PxBYf>uz(8>4FXCs^n;3RXy{%w0n5OKn`&t zvy-oM)Ixot6NBU3@2)XUs$%%==`4B)5_pq9P73njSMv$YE~-WG%Dlc&l}xrl9;zlZ z?8e>rIj->RFSC%*8Q6EsU+hXZQ$I@B`c;T?e_OzI=Xw#6`x^60PMFmN@`sEo{ znmkp;0wm47bQzs!T7WjX9fHA_1OmHWuKNB=W@wY z3WF-Qctx}wfUU>=IEk3Gg#_ppI7#3y1Y^^!{%Yl<&Z}S-QZ%JBpS?K*vi_;YN?{S` zMsYCW_fqI)a8wRmScz+wV4K{PLFTu5ze%}wXZ1@f2$-5nx&g?gw#I;Fxt-93D8pg3 zb^k5U*G^fmZ+({Hg&J}8vLMnR`_*sxgz}Z2z95dq>?<7n?dZ2XYsl@HfAd-yZ!$Dz z@cfo!^kkPRDLTdRpv^oB{Kyz!YwaGlD*(hl_1zZdNz?(bo zUy(59`cW0N66j5-^~@L1B;SVcK`&RFXXUKiin%5#-ONvq)7MkDBxodbLG(%rq1V!3na=N2h6LRN?ThQ;sG1VBLXxhTP_(?Wzp+3uu>UI8su$A%!}0&%cdF ztL{Qjz4U-|sO^%EviHjjRtuRO!~?c>(0By{jKvSLBn9O5F;kFVs3OB+UkdYpRZtn0 zkD_g4b|*p$FX@TnvzRF|N=dU_>5y)3C75b9krBIX7wEBdps`;-%z5a3OOfY9cIUR4 zBg5sdIcH<;SKDDXsUcV%HtRDWD0z&efvyHx=;5z4nuIRRvItN=0Ig|&#-H=?@wHnr zsXMbIFm==}90Z{ARyE3)UU(Ze33U3J*$Xj-^X9g&pMWphXP(dita4<;AHO2MtLo8#d&5mD~orPD<{49JZL;K zt8n~Q>!-biq1IARpzw=ce0DS zgcF|dtLnv5g-zBTgZ%38UUJ-^_V<)ISVcrce~$=pzR7qO;=T>lBl(R+yi0rS6e&Rp zj(0=pGV6XkBH6>4K8j8?@Wh5wakSszB5_W|0n|F2hNtSTPtEkJ^K2eH`LR+}U~$c2 z*P<;FyZ24Ioi4}d5^vc~oSJUm(^Cp2spOUJrJ!#yr~_vd`m%DII;1*yc@eYIq3N0~ zhuaH5tXaw5Cw*`Bu*tR_atcNV5_W4ay( zl}#wS3@Bm;jS=AMBqM(&KwKzBClsvL_jG#^8Si6YmP$t&zVxIEs6SI~-u1B9L}YCZ zUPS6(Yw`PjY94|tW^;n;pu}5zJ|PN8b#OKytMbS*Hk(260sGkzUZq754x;cI$=w?o zz*5N{&yJ_pauSY zYsFRlr=Zg|Ea|$SrxQQAP+a2;YYO5eA@ht-r#LjV^clk5I|@ZVRlZ>tv~K)5zXf}{ z!@Z+zC?S_I zHTT_0VyA}@FXqp!e%{03Dt7u48CkE$c^N&?LxRn?9k*P_H;Ye_oHcDOSipkq_LT~i z><4DgGMgug9iFN@;7kPPgN0KR6B4w;jJ37Kd0+*4E0TGD1c`s5 zD{a-?*|*3sNEEvm+==`!HbiQ`B2XUSyG_m;M$D0q5~|>!>?cR+CtWG&r=FWQzg@!( zI+r|GqLHyhuC750n9$t^oZw?xleL?+kn?`^G@#*j5*8w^NA5I$6a*3IQ?)O*4aO8t zUb7uSCvVwdwX2jhYE8^XGb{+$=-4!(o-zEgyk(hWRP@A!GVc6j=orAlieIGP@V?f0 z<#bsv7AK2KN`RYZy$4@fsT*3R6K_Y?ur=jM*2~^R3F3{(K=A(KHNcEz!4xXl=oWxk zCnmK@EAXxa0iJ^pY56ex!0RQ#S$M*=nM&;peMeI1e9Z~dRM|BlyQyn%R~=z429uxp z`q>aKTG6aGxdl5%=E5P#@APS%)o&fR;Q{NUXUYPM!bqQd;)c;Oq$+DVfa8gw?c+F( z=IC=%kk_kla zTP!(cl2Dea2T~|_`5)%;+Y8jh&NEu=C+MvyCZOR6v-ha)S#hV$kDUnYQ>-IDJ$r93 zE?z1yw+Z5Q$%R2z608;+N_GTFxpoRt(mcDr$;;R@EU6%D91?8!Ue!m^eEt}q2WucE zuFf9;{rw?pkw<#`0-AdVuL>h*!MXP}^?`h)*e4*xT2z}AVFVqEaJqwK;+AiOo&119n%&jrXDvwI&g)e-+Vs8B(oUdcCw>Ha zZGYof1h`ElHQ-YKZvr2Wkxp{NR*hrkGW7Qzbq3UTfnZk>CaUR3ZdI9CfA^)>ea4R| z+M&M}Fvk6<+q@UHG$xsvKivxVXfQD=QHHxY<;0+UD3n9~nM6Kt+RZ3w+5Mq=6!7zQWpH@PRp|2Dp$#e%)4CG%s>$y+Zk06sX>1j9&^Toa0j-nSlv&xtV z3HQY>vn`vs!U<+B#Vic5C>Jd+nD4!8!@?T~U&HDcl3qah)xs|I0}e5 zF28}1+w1Qq`xmX^ToF>Mh8$(F`JJ+1K*}L_B~WlVk3!iO8831zdNHriWFOjK-x=)G zc_C>09yG6k!m{RBD zs1NCB9 z`E@w=?2S<_fhq}><;saMA^ngh5h(*9clY>3{v}ffgpj?emy~t&Nk{uB@7aAzI(TQc zjw|?Hy}pVn2DGi0g8ayz$|VgM=e}n2Xnexr4;>Hg>dmmYC@4oEqQpfGn9V_^fuWfY z@KpRv?`u5$Ww`0yy^P0ggnsWFQeR_vn@AwS##Coy8Rx*zzeRHko}Zpom>E^aA!BjM zl8NT+Uq@K9N1*#^KBdToN`G##1*1YQnwHEyc->#xu*X;`3m{0e2#?)Luf?Rk9LU|S$Hn5L?^;Pwk7SSBJ)VuQabKdE6jkTPzRt6 z^_6eK&Up27i1vE)ZX52IIZ5V5(v_-oL zx7%_1*!yfFPMA^NT_zV1i$m_b&$-Fdvq>f(a8~$4WRG@Gn>8XPV4HKSO)W2%Z}w98 zenQ1w_dot7D?f#wIc~(Sxb9L&SThWTs@qEx4LcmJ)u^Kudbpytm$i+h2v}C{I72fk zN~4T!8`O;OosUuh`$=)>?oeEaEXR<^pt)B+FleAC^5PjAYdO0s<2`U}8omuwCB z{oM(JMAya(6C}602eKd6bVu2x4${u2q7^@FDOEnFbfm;e55(Qk=5LaJuz&p2d>#%L z=V6579L6EOlVCc6U*uR369TWALm?VEL+(lTPAV?wX@e&VC?yzhCgsfWW0YNM6Z}z~h2(7BB(N(EhtTSLE@w}ri zHOL4o~aq`#8aj96hd&1H;Jp=;k z+nokW7u-a#-xVx>=AO_qJGHCnD_#v8GKu&kSKgJ1#-`uZ&$q;6CF#2(1KI5C%d*Zcnkfx`qV;Tj7N(Ld`~pVO z2R(q;4`)K_F$e?W5e6(4Ze$G-pLyc^$;fBB!cnj=@eob+XO_6-2EkdiFxaK)hx>T> zBg@ipcvgNALu zYzli-LwLJh7Y!m5C`>`cWCRA9q0eR7rn(Mv=@Qf!$%crUjHHY?u^jb^EPp$SQ=6IC zzz%E_9S>pJBJ^^vrR-x$W<1y^kdJ}}5>sB-8unoE>ZLeIX)rN%Pqgv!`{-M*<&&OI zu6Wp(qEJuW8dod}My2ZIUgr7nt{Z_yygXC2FRj0vkX2Kj@*0SV1FozNEaH%CTo zzmTk5ydqWra55l41W8^BkvA>=8DvNOX zH)6*8=0h`cki^&ec;yP_5eka5%4DY(zJ+WF6Ojeem2;2arzIWRZjtE7F@1vJAxB|O zuZFP++~qA;OXA<8o#Xxy`KM)0B%$Nisp8(ZH>%9wEsvtsG#5m0O#-;%wUL|$aq>Dm zY0L$J2Dh$njV)!U2!k=RR3iueA6pzQN$%@0Ve2i{v?}t8?cpRTgA$yt4+p(xk4Y#i zr3iOHuzB0pE}G1#-i6^<115Sthc5yV{#|J?V|6t#t>s4Ia4_~d++_?QXF_y#U4fxB zEg!Y&CqPJEj#MocOadrFjKjYr4Mtm_S*}Xi)q2Ud=l%7-6ru_Y3<8HLb4VPG$qxX|)4iTnoPjC9l0e1bF8pzwu7-QP7zHRVZ=L-E zvJ?7TSOrU!YZ*dFSeS{w!z9XmKyj!p_Tu9oH9nx^`NOHuHPn02L3y$=`6Yb!@N|YM z)9%Z5Z8u|BV*}Q_Pu5;+(B~&qPh_vfY~Or8lVgvhGM$ajqd~!r#tPQZCaqPSE4`0=eM}<7^yq?|Ij5lWa@(bqf<%4i{K7AM zbou5q+gWw{zL^ngzh0Ju?Zr}R&uE+YAzc6x9w}bGVjgyKSf%UK`T30B4Qo;Uo?r}mns8jr`6Z7R15^zwzSQ_4>^XG!nDDsiB7%nO z2O(zBb(?7Y1$H3a#I;_nx91uND=7V1){)}8QW%P^z&D8hhJX0AXL?4eg*iE!KmLpP zBcrh0!wG4$&Ke>7zy*fHE+#D~3Qt>fU3T-5DrOFGFUCLW9sBaY;Y2zA*CWCukgne&xA`C;b8U8#^v<}fjAo~bG+(UA>lpO&M^2=q+3RdgUKYOJqpI# z%}A{MNhgfS-#u-UhK9p|tfZTP7)o8AzVCSc?ovoPrM2u4k%tT*-UK=|c6DVVIxLY6O?(o)Bnmg$m z&d-fAu*AU9F8YulmGJXqe~#Z{J$E=ro-B6=5!%O{(9wC$iAhRjR~{h9q~7wkE%IAP zFqvJCdo!5c8wiq?-jUxtNjn@PBN}Cx)FG{cGFKHZAvuJ?FHT!{Q5!<>#y>gE52XW~ zdh}b%b2LT9t>E8S(t4`@@LP$4oSSX^f1JHTvoK5(BzkPywr$(CZQHhO>p8Y<+qP|E z-uvD81+(j}=tXyQ)S@c0G6m+ac3&EBu`4`N<@PxQ%;j6|#oQDar<~Ol!QBC90`4bH z0cN)~SkyzV)dwZXoKIhQ7i3CYF^4_cBusNw)BpsW{-g5gm1T_YXShA&$gaf}aK<@P zU(Zc7CG~z+6E(sqkgjIgJO9aseH3EGv6n`ZzUmUPJfWF|0@Z=W_`T{ z|0qaN>WlZ5z6Aqn@y;ZO_ML6Y{n$d_)$^R&;lf%I1ck%t_%R7~j27$N4 z8omUe!D|Pw6M2a*^*qE@<;B_EjADv>JoFH6}+$ z=-`EpTI`^*N^qvhgy*1#{ULNPvRujq-4B7l7vIhbCz0l%bwp10 z=b4mGQ2vOc2^-!Qtv}a~E2N<;OOCA1i)oQ&<5q4AxH=Hx=T@8i zX)#fH3PzR<1s>z~rW~z{H2_9>&^Lqpf(@BQcqPF5P2I32L%c_cOFaH?(9J`>3?}ZA z7FT^#{vY4v%SAf63#Hov1aEXZQE1UXx#{BaR0YD}Q`gcX*vpilQ419b+{i^=>1ayP zLCVghY_}|ZRo=ypVN)2UL4$;nPCq^fO8I=5!#S5l$KSk=@4Foj{~l?1jsH*&An-a$ z)5uj*nKk?z&k~$`50haF&*l;OpnqjZS)R0te1c&^uzyN_*f;cwd3m23A_T2!&jtLE zrmL+>CmyEgb!?@9Te|0hkeF?E3RTz*YDR+`NB7NI-YTh2QHe_?l`@_f*T!EN3?}KP zPU@N_BKJ@mT>T(eb=v5WaOk6XoQ}3gLVJT_qx&=qf%Vh3SRbfT(*v8XE+b%2zvlMJ z+lo+7#GgSj=>Y<83R+U9MzWm7jAsOG;u&VI1G&<0+`iI4~uCaET|_C<#9_| znu5c*eLd_WOnR>7HZITH;5*#S?_a0gmO-VmYbYuqSvmj0>;sQ6@F8K$Zx(;fUNWJZ zow2ca`((@|$udh2ih_9W=;lZ%ZI%Ox>U>!>5WsT?BpRv=7ox0qUJv`05O_| zgJDVZV%I139cAF>`|QOo2E^OuO8HGsqhlucz7TVl*!=FILlyFJT}p7_#Sj8|n1as6 z2%w^F6mGWQ&WnuWww!l*1R2F)>T&7Ps`OhfGJ!T3(@S_JBUbgBOUi;vL(0S=>w=Fi z^U)Q1_AU@36NvGRacNJP*kB`-wDq(A#1ZE9B*UxdLPA4aCsHyu)~JX1idp4I6@!<$ zEMkPipS?>yS^j|FO7*;&Eth}2vWHg%dI&4#ar%YS@#h!2bkf~dtSS5XzP*-KuESo^ zLG~HlrDf?cY0y_m>5ZgtGdE?O=?Nytvojr3tD^8UvAM2V6xroW?_kjg7RF6q ziTY`EN`ss-_W=9Z28T8+mR>%vo#Kg=^ZxV#~}sp>jN7@_YBVsqwy z@kv3Hu}rnAX%kVPA6U@32|_2|^48VldO$%^2vmy)Zcbm3o)< zoK4mCT#>9D9_YFabcZyzP;*K_R~X&MsDu=cwOw-0p%GISXRF$;MOm&W^7Ql-{d@VQ z>Jn0NCPu;Dh4#_XZ@oInK3w|8mr{f1M+uId=!*&X@4E zyYV2Q+M!f3EbJl7bslFAs%-PeR}~)~UQ6}fq>Wh3u5$rvap9YoXKY_SCOi@&yi{oh zS*YUsKsM`wYIeErhs|^eo}eUvm+tWL4-P8&`VvkFVTh8JAaLard`$~mrvt!A3vMAw z^*4dM(&IKW8)Z_C^izs(sd@Of`T*jCG{kSMg40$JS)KtLfo>U&#W!4z2jYUKG_ArV z4U41Q>@un`lR`pvSQQU~>ZlM`8LA#tp? z#;!-LkF1-e{=>2X+I5+63gCJ2B6!ntQHrAye^%oS2qfqq4$PJFE7EmcGehW$RqR6# za)T!B@M#wLQ{6qf=k8+|zMQbXxwVRKY&Qe+Q4*KjLPMq)o&hd8rIH=#c4doF+(I0! zwbRLpF-JJ_5c^Nz6tHuADOKSE$326q{bl0e>akBW4nMCLqZ%7u&ORqa4rOf;Z7)=e zK#1!@>TXU4e*728Y7N zSwsCm^czsrI|gDr_3M~UAM*`h*+&0~fN>M_m+-I*%arz>D$*-AmV!>ug8HgPPwI(g z)t~w_Uuo*cKW&I4s9{r5Lwy(6LuFumRSp;-e>`W{Myt)_44UPG8pTPi(mLbl(;<@8U8{q51Wbx-R&Ng$8UPSqNmwwlH?xV zL>2P2XC({TIY0z})#krN+WZ1NB4Yy2dNY>Ic~_!=?DtV$JX&ferLC~U@3v@GX~OC0 z<+U!Va60vJZeRVM-=(7`TmlQ%vE=vX&yy`OIeMPQD1|VFPa+xvBZO0b=89&{0-H5^!@%}L2kgqO(FI%?AsSwFr|xP zLj!j>#x^KzyM}J#Cj7NK}i;8o7m4%g_iW3 zb&GPqZ#9VRx8cftE@?WB8VI;KG@6T?x+)h;;h(F}ndmfN`uKRHf2HO#RZ35N)Fxa7 zSM>c21{IsQWV?1k7$s2+&A`3bRrPCjJQ+bK2~*pJ1i_S#<*lA(+T42JD`rkGBRq`a z&dc`~Go;(%R(Li*Lf*=`s*lC{tJ}elhBFliy*(-r6R7R(RvshfRxRCAgOm?qrGU>f z)1K0w)dg@Qd`NBjMhqWW)Y~>{&fJ9THHWJ;onL>jig0KMJ8hNrAIS#6A}UPx{lJ9p2j>Nw z`@6m<_u@pR%Y5kr zXwXr~!?aJ1N2k(^rIEcWN>hQkDTl?mBL*`TL5?>CA65ZV@MA=0TLaH~k0cxy&TpNO zK1eSjE>a;-c{g;>z&H&mv`fLqMKd2{9;%nu7hs6<=%=Au8&=f61UHZVRxOuEW=|hr z?{hXWc<>Ypb&x0?_ZL|qL|f@N(fRfea3dtYmn<}xB1{2w-_RbrhaDS;FIIlkRO_;F z2_94kRNfV+8wsAqB8Sw?CxPp!ioc#SuL@1-UpPoeM9@&MSYVZL5n`~Ca-f0PKVj8C z>ww;GJU_o`pkxuE0_C4P0v2vu#>MF+?Vez!AB!S(FUX4Zp+n};O)bTNk18T4cmV7b z5+9SNjDTfGr)i&k3(B%&#S)0vmo!%hP;m^G?V})gA!z&@mU!HaB_Ejf6<|#~##=hx z16awj#-yZnvq>LAZ&syA*Di1tTkgRRpK3xD-VPFI`jn&ytb#-KH-ut2yvBzTy#xGg zaG<>(zGP7!;IMm}D6F+$e!Y53vV(KdZ=J~;bt>NmfN_52hEQEfqX{8rP>7X8p~wJk0OSy4K=9}c z6RQ-D2!u^bBL_{ceoON9*)h+5$T&8D%um}(mw%f+-$vw%?D_+u(p)#~QIZXT#SVda zUJvx@8ju!RA#G{D2x-+MAY9u+-4HnsEM_gkY_$dt%zqvZG^_Zh$qQX- zhH@;nCP-fFR@0QDvDHEHVmF$h91AT8lIJ^B4F9m$8XVecT9fwX4p_9p{cD!YQvU_* zLA!W>JG5>v&qx-Dj4*5{*MgZ5VChoP!f+(>eO*5~COT+gX}X_CzE&-NPT^c3+cG;Q|F6bT=r?ONP1~*rM6oNWq?Tf|xB(qN)lz-<)4;0h;nVOh zQ)(MVY|;dags;54Ss)#t>C%5~RZC=2bTYULhg8YAa*lsN)iYnYn~scPx#;!^xf6%* zJkGEzOT^x>!V11`cdAP}HVcJ2&GMMr-*SA2+a|rRX8`gPmnP*ngFn)eItKL%IDI>1 zg@bA#>r6RBP10qhYHxXn z|FtZKKC8QZKP0930!o^A`d4|}Ox3~J6F5uiS+}iahoBLFfg^p6srAE53csK4wmTDD ziPfy4=$LcM0AJ;xZinC?PqsmMC41!e4WUU6TMs9L#IU^$?GoOZOteNh@E#%!kIXo1 z4G!YyUQDEl$mwJ^R>C5w#PxAc0%^x;`)73TTsMIIG+8R*-fGZCY%NSLUq-3#LuE5y)5iUi-MLAS=?-dQ=OnBmNxUuRX-x*Xt?%W7G4% zEbxuDXW?oN67Xfp$?_NeCz(tOsJ6htyV;59K&zy?KVY(|d6)C%BiKO`?7e6-upcNM z~>=mP^6)RIEa@o!6J| zZTShS(q;*CKeV*8(M8>~5`xf5{3Uh;r&7On;D4wYy@#`)8;xO+N(%6O1*_%53@uD} zsr#U1Dc~Af%yO8nWg(|lM%f2ihib5XAlu+(JSxw%Ss%#U?n;-+=LK0_%VBuWrWjOy zP8PA_7PvF+w8!9mlEDAqQsCJPX&>sdC~J6ywA(3qeIsTCyjYy_)o`KPNNF> zm_^sezx|!Y?`k4W)O)z~J`$MV4@u6=M=8QLty5e1F#w`$^-MzAdHhoW* zk%+LAhS!eHbX*yzyH+MU^B{^iPEI>-f2cwxc2jyI?XQKfAv!t@p$eCk+hS%A@dsv) zv<$e)bH1Bo`X{4$AgB~v!f$yk5AZ5y3)*;)UP5V)2zgyYWvlR5hL}!DlC3^1$JA{EQcE2z$17UAXhYlNZ^F7ag ze7vdu4$Q*{JxeI%wPJ2 zz`{tb51l1Qj$nxpu}Q1*CTes%ivhymsW__SHO6K2ppNJZ?ILdi_yz#w>BHx^IoD+H zA*_4R$?RjPi~`V>2L2&T*8m4$P{B(E;Z9%eup_#*DhO4zh?%|m5>CM7y5clWa*O2> zDXfXR4>|vBeDRFhVgEk1d>uF*hsZY6P0kQgv5j5A`YKNMbFIplEJ-jz1N66cF@8G0 zG@*j*F=Q3*j|rM@i|Eo#hNB*oRG}NLql11G5Sd=EfemTjb~{!bWuKwq_K1$OK&>2!G8u+cu=} z>0W8}CEL0p#rYriv?K%}f~@!RTa_@V2Fb570qh>p1AA2Lr_Bmhna6~=<3ASINs3v4 z*o}o_RnV)&N#tD>L}oG9xeL9qYuwx##zd-Na_K%uz;Cn2)>tbxBVvfD&rU^v^jBmL zTeC@ah1?pH;^3+14V%nmb)JFP56AS=9ep#cLqwF^wdOql zOoZjN7`1ddozOp!?ej9Oa>n#aGF?X*p`7FjQ;}197Mz5mT8U+)(HwiN!*Opp{iy%6 zdDX~>+4tTb(F^+Bie9`^m2j|#c{X!w;&IhAY4z~HeI&FfTI#Aj744ZPZj;YZzD2%m zxAUCdvnw;_GQBHs&_Me;u9re;+d__kNAe^?LhLj9$yS9J09!*?aM^}PJlN5sycb&u z%_jhz`d$=GUF@}t>-z4u4}ZnP2rT=MJhiL40xZ#NzoQ2Qk<;A!j0cb5LWO_0j4c|I zx4)il{#um$o~}qhYtvLGgd?*z>syjnyfini0@dZHEbFq1AFo8PWWj7(I};kYC6{Sw z?1qRT;jt|2xR{4V#yenIf@Xx_3WJw~Xah6{huG^=N0Sw$Wu-XL?pC#If_QeRd9Ai22 z(NpJoVX8)A{a_p+)-hX=#TBt1)#V7OMTkg_R$R8*RNKJsSP-vVg&x6gedD6`uuTW- z8K~oRr`(z_vFb?!r*_Hl;tdJ$_{n04xP4kMba%~B?K#)Lc`imp=mf@XocoHHCPo^{ z6@YKuo!rPkDluNhOUwcRZr{NYUS#7#`pztSKgB_LaINwfSmtxNp(CDg8YQW=P_68= ze-;s{B?({0mw{m08)^@|k3MEZrk+uA!YaMD|3RKFui#(1w~*j^u*Yw&;o|l_LB#O-Mg6;$t6W;Hfcj%(m0 zq~~k;utT~*sonKyP92_Vs_Ef@3Ddyi%`eUy=fB(_!8$0Ykq{RSIy3Cy7{}J@s%iu7 zWMX$efX>_FrMOQZuDm#&yX|e_m_)0t-k|8|M*Yp=S@l0cLlSUt`C6lr0X&A-U>oE` zvFOVD&Op|Yp)_0*iT`APZgq_9_0Vo9l94x^u|bXv7ZhiBrW7cyk6|#A)?ab)thrW) zAc4#+42JERi)&H|_$S-ULvgISsAi5Sw33=limoLv_@np5{1Bs0R-(F4uc-wp-`hkY zvUwh;J(rw#>LfLy?xOFj%Il?&b@+M@KpDpMRYj6vchF8U3N8<^COijZA&oe>50CNo zCb72Y^%>k%vE~~2=0><2*d|AprAlYD`gI#ZUyD)8Mc z)oE?%VV2mGxF$}T4rgT580m!9wbjzDG?L5srAY6H3gjZ6ug>x$Bbaiilc+Eeo_Lne zp@k5!g!4Ky9t}gWT>K{JKm)Bo*`CqEHr=PxOpR*GXGXdNQCA3;1I_J4lkTOeZKOSK zxC9%vKn)TE?tiinKFVvHno+)XnlnX!FozR?R?H{`^wm?9o+2>U7wwe8e1o2XAz5#24Tog}-`SRAenF9s?ORXUUJcU!(xM}w>z|7O*TpdPs>tqYnP zF;J>4sw-ecltuAyZ8cukWl5z_q{Qls5L*6iLodKKU84v@oGZL5GY!1}mLoB$-CDkV zNX7}aDx#Jm13I!`wHGTyL4@LHd;NN5fUBXw_g-KtX7u5BnqU` zTi+Uk0KI=AUXkuu(?`&i@$#w6y&Hv(Bd+GAt3~1Zi{F`S8Ua!6L#|753muAMny9#L zfYjJf`)yn6mh`;7WTobH%RHfaK1_|_l%G4{Kea? z61@Z7jCCNF8^TcSaL5G+Vj%oPPVEQ(fJgvTODr2-4{(`jyy0Lu;_vGN(#Plr@kfXnMOaOKf82iC`tvGlpW@6Ey5Mj^m)K_4BIx;`QHtLtAT_Gf%-Y`L>3 zR8>;(NjvwHcJ@u^+m{P1oQa`3OY;`x0I0ZOx!c&A#mB5%zVN-4Fez|i&mWOisG zvd6OvAH9qIDp&6rJ?1>!iGC;NkW)%q3-{!kKbT^+Z5ZMZT>U5QrgF_6Vs4!cD-yQH zA9yPiz5lA)`Kyrx9TaubO8Z2B!)1Ak!1BjtZ&g6@( zuTrFm7lIMZl{wRt_E2Amufeq~h4}&wgnEpKE5SqMS40>t`*lwu0; zweWm$`nwsYwCC&ZI%#lMu~&G4_=&7rwZ#Y39Mi{NQvl6qAY8@f0{7;Y%2P2VLQC)_ zuxT)CQiSgaY@>F1Dn=ppYgE5KLdlz0Mc%YEFf0VjMFi?03z|cpUxAJERzt>7-K6HC z4yGmfwAhB#Cm8E{Q%}#Bh4B*Q|M1Ni2?FD0oFeiMog-l3*z=oP+x<~QA0MEy*?ESW z%#Q~h1T(Y3LdFgnPVOyy;4M#^xDaJ0?4TB!pb(QXg-Gn(Cfk|FY`@CBnvV9)OQ|X) zgrEW#>S$Wl#Ltx8l+Ux3BW*WiM1mx{&Y6ZN2PkhTV6$)!oV1RF?W7mW98%)m_(9og zjo5a^H_nt*z8;;(|Fq-9Q#jFH%d_`Q&!Po`OZ0S`=Gq}Y1}m{9Epv*2Fr$Ost1Ju7 zx!yO3%r#y1 zickWkF}ppqO=ga69mg)f|0aB8amzl}Z3gD@MUPtwXTHU)S#!)kWT$} zc0zC9DDHf8!ZQ;Tol;H=Jbj|8tPl&l|$S&f$0!{?dy` z0Y|wW3I0hFX;dP^fgQ@huw*X%(;j<2TuA`4E0+DmrIxY4rv!kLG?Ch?!SDcGYW){2nj6Ll}wc@7`vi zrEVQi|i!YF_<8Hz~>gfT?8C{=j8!9q$^m5ierai-5BekO+^K6p!9H|tf zkWPm#xNc&j4%Y6*B`yZ0N>{I&&lLlP-8c^f;P#t&3~lG0I-(%e;RT3?kH6*m&=BnB z7XXPC%P?|N?sUUU48U{-(>Gj6mO@Gu;_=hf*Z^38$hrNX(@^#Br%0~G{=PC2AliEM z7fmqv`Azp@7uWhDV;+tI^Obvd_kX>)=vX;|h)@J#qvMR{d*sC^-5n|W6ZA|6 zNFqGr?CWuP5)?~Oj++SrbA|Jp_9?b{vQrh4#HEWt`z9xCSr?T(#Ol6KB)-53g+CiiL2y4{FeCiw?WI$!`dJ?Gl8qOE6YaYBT{NCYRj|*arf`cs&|#@|pc~t24=ru41}0sD79K z{Pl)A3wH3|Cw>88BEX$bM*@B+Y#w-MZg}E`4<8c2NZQb7-;v$%OT$HO`duYARzHH5 z*!Pm#N!RhE;oUt7Z84td39vIF?MG;P9=-a_InDc>jZ!7JG_*5j@Pb_E zT3j*cE77{_3nsi45`)5YGQb+JO|LWr)*d%S7JJ5R65wh3e2JDFq=|F@bY4?t-lY;W z$+l4=-xwyoZtws4?KEXSo-I!^TC3HQWU^0cQy(l;lAM1v?as$#H)lRZ!2mk%RPViC zc_gGM71z`24Hq)DMG_xG@ChskJMMm}=Bv$Yow`8NTU3JJxZY&=459h=7jSgq0j4;1 z;^}PnPdZ^S9KTjr%fqLPbCx^Mlea+nE8(-B(*A4nA=`tgeVdKM|E-w_k$+!6JutTk zV?l5+STW9>hkI@woz3D~{~$jvz979iTkCW>u%Zjpo=A$p^Xz&xf8wb&5Vhd1vZ{WJ zv}DS~zTb2eyBdxuA2=10^}k(AYUhPl^Se}Na-XUKI4zM8#1m-5XN^$5c0xxEL+d}C zIJkOX_gt8g*(xWp3za+92kwQHKXH@ z0kwN2mQm!MfhjQue$0Z5je0vm{b+A-wI*fy#7^Lg%j^g`z4TCRW*}5Y3y7BhQKa{3 zy5#4@NTyc8@4E}1(`2s&GcOxzNvicbK`gylD#YE3FuWEz`rF|EEJhl&9tc=*$#ns6 za$fyDc0KsS6z~9u>Y!WcKL6udhXU6i>iKV=;8rPak)dZ5D4CpvN8A=|#YNME-8zAu zr)mUNr<~bzU^+HV@^x7P3z_w0Fd4F?rkS&%mGiDvywNCqb1@@63Qmh7W=17eC{Mqc z$?sWe(`P)GRMU=z0m7MiPs$+S_tkw^cba~TGs6;V_k z6>ls(SkGKh{`d0))tF*&A>Ljdy9EqFPK<10`sbMjgv!>?k=C;Y!#?gFE*~=xV~kLc zUw5)-SlgiD#~C5Usa?h650Z<|09~UXtJ`Xp@D0X+L54snEkcef1;yY7rBYv!n}?k{ zUKC+m_zvKE8$KcQGbuxSz55r8&tD$+Zfd1Jlzyv3P6--Q{=uGp-Io z;w!D#FLbi?W)C!4EzY%TV=3giPDbYRWuGSu#T8Ky1;^^P z?h-UM^O)30R<2ev_x!set9I`-=sSc_5rcpNiK`FNXIs8gXU~}nPx3L zsB$O!DI*T^M3QB8|Buv=hE=i;X!cR)X?jIOO^kK4MwHZId>U~v&}AzgaLU52n~-~4 z4J!2yf=N0dEVZOZEH3SCxq;p7+KddSqghWZu>m&6O|?}+7RnR@o1ymHhfk(~cI!{n zSOz)A;tBE);;)+h1LZ@5qeweHSIHt_gFYE`-s;}xHk?e4$Ffd`S24@J>(N)+(IQO9 zkRZA;Q%uiVAuyl0;}k(a@J)XgBCuD*qvL5s{-LV!gX4-f<_%og067&P~1wb5w?`@<0D_H?Pt;Qez}5 z&%XCL`v#-|OUR@~dd;FZme#J;eSUx=m=vSL!w#6Tl~Cl+9ckDZDTi8pTfdBg-@7Oj z^z3;2(yiPgI^kOKNSjNs{qqFM@p7j{rtEoTt=!}uVFqcg4X>|i&u;ocrJu)uJ@k)X}L9$%IE{jbq+Y%hD(UC!Fw%Rt_s_v zw|c~GA@o=MMwAIAHt2mayUNK^-7V~7mgmLqS{-57jljBV8Q?O<25kHOBWEW$5VO-p z(V=D&8s-)$pd&c_4t>}!78-DuT;E6l!zf$Vn>x_dij*-__ts)S969?NTEL&dQu51OlG z5NE1|mugatxFALC=MikrwmaylE?U>)N7F-bivm6E!Ve?t+nIz)b9*PmxWR`3096 zrV+&I#Lc_D>ou+4-8zPOww!x3iCe|FeHMQ}7<^@&S3HA8Is8naZfwX0jiQpk5=mYG z&OHr1mF{HhLQM4AYlumyU;^{GPv(0kC$*WCR?`-vg)NuS7z!(&lm$G?z23jC?(2KY zE!S0I!3EXttVT$DLvwI+v`#Nj|8^Y~WanGmo+yw=`4GghwUB`6g$x807Y|lAz zPYNwW=nV6P=q(QHL8V!^5`(mMvM!3HF_* z1wD>l6ndH#Rp#v{jIHBhsA2Y(a!(|-*vI%?^N%jjI@4z&T{9r;$QT}pbi$0(`{d*o zHH&Aq$rdUD;#_Z7*G(>HLV~D9X5~RA001yH<5ww5b^;IpteO+~z+D-PS@s(eC`&;04=-kS3u z9Bj{RjT<7rBoQgwri_0sn(q|}*7ud3qB$9$DPU|BUXwI#sdsY3@0srM zjgf!L-e(=8(b)#m7KplN*oQ*2t0maZT0&5_FvGCBc^N#Xkkv0v=&UE{c7s$_7>)4H zTy*=B5zgz#FDq4EYbC?I{d>Foo&xq~j?iL+Mws-{Gd1>CNXyz|?uh3TCyt2VQ02LB zO9PXDFyEtd#-{ws_ctLuV$bfSFJmC?W{R0lr@4wdd4;3vJf}6B_vxr9hBgg@>{*hz z20kbI!n8fC#6233#hv?Xa>~;IG^Lf6#o4s-=;cMU2938qSzu%}^M+yT9*4riUlly* zjE^U zjuP|ky)g;meZ^8Z6xv~5-MXFRXANtRYRZ4Fa1dEbYJkunIbzXD9%S{f=P@YW03^P( ze$iT1nbyQJV8u)nJqF$0WM}#LY4)%nzzu@dJoA3i&-r zOe-xa@lpGp9QsHU5h=8uaK^xtiPy-uH(d@$c3Xb%7gkXfk6WKdc-4P5I>tU@S$ajn zyKm$z_gEnd9z-i;@09neIYbULk1 z1lgbB{Qud;WNg%Er5WEt@BeozV1{x40AtE`IkA(@`ZWPr_AnE1sNh#SM^O|&acW^v z-Q5k9f&Kkq;9JOrFj0M~dg~Qq3>$c*wiQI&EPt{w1WG{t+yrou*}*!hXy;Ev z*J|aKG}QMidu$9qi>oIeR-Zv&5W6M-eHbKd33Vs(p5I)7nz+6 z!0Xz-_D*F$CN23;tF0lj0YfiTkalvRm->@%0A9RpLIxI;c+nrV&{*oh1Sj8EgKo-) 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 diff --git a/static/images/directorymanager/11.0/configureentraid/register/create_new_user_page.webp b/static/images/directorymanager/11.0/configureentraid/register/create_new_user_page.webp deleted file mode 100644 index 39c09465171ef0b25f704b0b40cb35cffe336eb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33306 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 diff --git a/static/images/directorymanager/11.0/configureentraid/register/create_user.webp b/static/images/directorymanager/11.0/configureentraid/register/create_user.webp deleted file mode 100644 index 502cfd1d23e7b28672ee5398a65f0e888d251cf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43328 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∧2>>wectGg52Ry5yh(}hgQ!@!W( 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 diff --git a/static/images/directorymanager/11.0/configureentraid/register/directory.webp b/static/images/directorymanager/11.0/configureentraid/register/directory.webp deleted file mode 100644 index ac9e6473ecfa59d245e3dfbf74dc0b2f1706596e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5590 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 diff --git a/static/images/directorymanager/11.0/configureentraid/register/exchange.webp b/static/images/directorymanager/11.0/configureentraid/register/exchange.webp deleted file mode 100644 index e613ee63713e41139b8b8b1f5b7123ab5be194db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3036 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 diff --git a/static/images/directorymanager/11.0/configureentraid/register/group.webp b/static/images/directorymanager/11.0/configureentraid/register/group.webp deleted file mode 100644 index fc3a6a907d2d08898056f1fc371527bf4439eff3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12436 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 diff --git a/static/images/directorymanager/11.0/configureentraid/register/mail.webp b/static/images/directorymanager/11.0/configureentraid/register/mail.webp deleted file mode 100644 index 9d94a09e5ad46df7fefc3f9ebcd3b6374f8a38f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10932 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 U00000000|s00000000000K;;I&Hw-a diff --git a/static/images/directorymanager/11.0/configureentraid/register/office365_permission.webp b/static/images/directorymanager/11.0/configureentraid/register/office365_permission.webp deleted file mode 100644 index 98b63d88b4eb0c181008bc5c5a9e097af8bfa4b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42212 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%0DCu|AIFDJ)tvYIxV+Zmrb*n& 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 diff --git a/static/images/directorymanager/11.0/configureentraid/register/register_an_application.webp b/static/images/directorymanager/11.0/configureentraid/register/register_an_application.webp deleted file mode 100644 index 05a0b8d123ade2d3636174e7ead31efa344bbd56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59072 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 C1z&^! diff --git a/static/images/directorymanager/11.0/configureentraid/register/request_api_permissions.webp b/static/images/directorymanager/11.0/configureentraid/register/request_api_permissions.webp deleted file mode 100644 index 6e000e9a0664b81799ed606d24cded43d091a1aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69468 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�W^wdFYFK?&-T059lCERz+nj%9bNayc6!kY# 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

X&$j!utZ*LBzb_H9FW2y7i9w`I@H{KF4e8 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 D6fo~M diff --git a/static/images/directorymanager/11.0/configureentraid/register/roles_and_administration.webp b/static/images/directorymanager/11.0/configureentraid/register/roles_and_administration.webp deleted file mode 100644 index 406899f020ca1062eef3c07476ac03236a6aa15c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74470 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