Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
devel:documentation:adm:systems:winrm_ad_connector [2021/11/22 07:29] – updated python version kucerar | devel:documentation:adm:systems:winrm_ad_connector [2025/09/01 09:05] (current) – [Cross domain configuration] otmara | ||
---|---|---|---|
Line 15: | Line 15: | ||
Schema: {{ ..: | Schema: {{ ..: | ||
- | When you use this connector then in IdM you will has only one system and every user who is managed via this system will have only one account. For example if you want to manage home directories together with AD then user will have only one account and so when you create user, directory will be created to. | + | When you use this connector then in IdM you will have only one system and every user who is managed via this system will have only one account. For example if you want to manage home directories together with AD then user will have only one account and so when you create user, directory will be created to. |
Theoretically you can use WinRM connector for home directories and AD connector for user management separately. You will have two system in IdM and user will have two accounts. But then you will have no control over the order of execution. And when you need to set some ACL permissions to the home directory the user must be created before. | Theoretically you can use WinRM connector for home directories and AD connector for user management separately. You will have two system in IdM and user will have two accounts. But then you will have no control over the order of execution. And when you need to set some ACL permissions to the home directory the user must be created before. | ||
- | When you want to execute some operation via both connectors and the first connector execution | + | When you want to execute some operation via both connectors and the first connector execution |
====== WinRM Connector ====== | ====== WinRM Connector ====== | ||
Line 51: | Line 51: | ||
It's better to run it in connector server instead of directly adding dependency to your application(IdM). The reason for this is simple - better security. You can choose user with some limited permissions which will be used as the owner of connector server and then give him access to run only the scripts which you want. | It's better to run it in connector server instead of directly adding dependency to your application(IdM). The reason for this is simple - better security. You can choose user with some limited permissions which will be used as the owner of connector server and then give him access to run only the scripts which you want. | ||
- | It supports basic, ntlm, kerberos and credssp authentication schema for WinRM | + | It supports basic, ntlm, kerberos and credssp authentication schema for WinRM. To use Kerberos, you need to have properly-configured ''/ |
It supports HTTP and HTTPS communication. HTTPS communication can be a little bit tricky to configure. You need the right certificate which is used in WinRM listener on Win server. Store the crt to the on the machine where this connector is running and for: **WinRM < 1.0.5** | It supports HTTP and HTTPS communication. HTTPS communication can be a little bit tricky to configure. You need the right certificate which is used in WinRM listener on Win server. Store the crt to the on the machine where this connector is running and for: **WinRM < 1.0.5** | ||
Line 65: | Line 65: | ||
**WinRM >= 1.0.5** | **WinRM >= 1.0.5** | ||
+ | |||
===== Schema generation ===== | ===== Schema generation ===== | ||
Line 100: | Line 101: | ||
* 1.0.6 - IdM > 10.3.0 < 11.2.0 | * 1.0.6 - IdM > 10.3.0 < 11.2.0 | ||
* 1.0.7 - IdM 11.2.0 and above = CzechIdM supports cross domain. No need for extras module | * 1.0.7 - IdM 11.2.0 and above = CzechIdM supports cross domain. No need for extras module | ||
+ | * 1.0.15 - IdM ??? and above = Cross domain provisioning works from AD connector itself, works for large numbers of groups | ||
If you want to use IdM 10.0.0, 10.1.0 or 10.2.0 and be able to use cross domain functions you need to update IdM to 10.3.0, if you don't need cross domain feature and don't want to update IdM you can try to use connector 1.0.2 | If you want to use IdM 10.0.0, 10.1.0 or 10.2.0 and be able to use cross domain functions you need to update IdM to 10.3.0, if you don't need cross domain feature and don't want to update IdM you can try to use connector 1.0.2 | ||
+ | |||
===== Provisioning ===== | ===== Provisioning ===== | ||
Line 151: | Line 154: | ||
We are using encoding otherwise you will have problem with diacritics in powershell when you want to encode the powershell script before sending it via WinRM. | We are using encoding otherwise you will have problem with diacritics in powershell when you want to encode the powershell script before sending it via WinRM. | ||
- | <note important> | + | <note important> |
< | < | ||
Line 164: | Line 167: | ||
For using WinRM part of this connector you need to install a few things which is needed, otherwise you can skip these steps. | For using WinRM part of this connector you need to install a few things which is needed, otherwise you can skip these steps. | ||
- | * Install python, tested versions are < | + | * Install python, tested versions are 3.6 and 3.9 |
* Install pip for managing Python packages - for linux use package managers based on you distribution and install package python-pip. If you are using windows pip will be installed together with python if you use official installator. | * Install pip for managing Python packages - for linux use package managers based on you distribution and install package python-pip. If you are using windows pip will be installed together with python if you use official installator. | ||
* Install pywinrm and dependencies. You can follow official guide [[https:// | * Install pywinrm and dependencies. You can follow official guide [[https:// | ||
Line 175: | Line 178: | ||
#those only if you need them | #those only if you need them | ||
- | pip install --user pywinrm[kerberos] | + | pip install --user pywinrm[kerberos] |
pip install --user pywinrm[credssp] | pip install --user pywinrm[credssp] | ||
Line 258: | Line 261: | ||
If you want to connect to WinRM without CA validation - Don't use in production, only for testing! | If you want to connect to WinRM without CA validation - Don't use in production, only for testing! | ||
+ | |||
+ | === Support AD CrossDomain Provisioning === | ||
+ | |||
+ | AD connector will be used to handle cross domain groups. If this is selected, the Use only WinRM for Groups checkbox must be unselected, otherwise the AD connector won't get the necessary data to do anything. | ||
+ | |||
+ | === Prohibit WinRMCrossDomainProvisioning === | ||
+ | |||
+ | WinRM won't be used for cross domains - this should be used alongside Support ADCrossDomainProvisioning. | ||
Then there are some other options which can be configured. You can configure which connector will be used for which operation. For example you can use AD + WinRM for create and only WinRM for delete, etc. {{ ..: | Then there are some other options which can be configured. You can configure which connector will be used for which operation. For example you can use AD + WinRM for create and only WinRM for delete, etc. {{ ..: | ||
- | === Cross domain configuration === | + | ==== Cross domain configuration ==== |
+ | |||
+ | \\ | ||
+ | **<WRAP center round important 60%>\\ | ||
+ | Principal must be in the form of [domain]\[name] (ZOO\Administrator) - using Distinguished Name from AD works for AD but not for winrm\\ | ||
+ | </ | ||
+ | |||
+ | **<WRAP center round important 60%>\\ | ||
+ | Adding or removing too many groups at once is not supported if using WinRM to manage groups. Lenght limitation of environment variable on Windows is 8 191 characters so if combination of all added and removed group' | ||
+ | \\ | ||
+ | TODO: Using AD to manage groups should fix this issue - once it is properly tested, write here that when using supportASCrossDomainProvisioning, | ||
+ | </ | ||
IdM 11.2.0 has support for cross domain. You need connector version 1.0.7 | IdM 11.2.0 has support for cross domain. You need connector version 1.0.7 | ||
Line 271: | Line 293: | ||
* < | * < | ||
- | Scripts can be found on [[https://github.com/bcvsolutions/winrm-ad-connector/tree/develop/scripts_python3/ad|GitHub]] | + | TODO: fix version number when it is released |
+ | |||
+ | Idm 14.?.? has support for cross domain via AD. You need connector 1.0.15 | ||
+ | |||
+ | Use the following configuration: | ||
+ | |||
+ | * < | ||
+ | * < | ||
+ | * **< | ||
+ | * **prohibitWinRMCrossDomainProvisioning - true** | ||
+ | * **supportADCrossDomainProvisioning - true** | ||
+ | === Scripts can be found on GitHub === | ||
+ | |||
+ | === Send attributes only to WinRM === | ||
+ | |||
+ | In some cases, when you are using AD and WinRM for same operation, you want to use some attributes only in WinRM (powershell). | ||
+ | |||
+ | The reason is that is some attribute for script and AD has no clue about this attribute and the AD part will fail. | ||
+ | |||
+ | To achieve this, you can specify, which attributes should be send only to WinRM. | ||
+ | |||
+ | * Go to system detail - Configuration | ||
+ | * Go to tab Additional connector configuration | ||
+ | * Click on Manage attributes | ||
+ | * Add new attribute with code attributesForWinRM | ||
+ | * Attribute is Short text and multivalued | ||
+ | * Save it and go back to Additional connector configuration | ||
+ | * Fill attribute names which should be send only to WinRM | ||
+ | * Each name on it's own lane | ||
+ | * Names should be the ones which are in schema. | ||
+ | |||
+ | |||
+ | ====== Interesting articles about WinRM ====== | ||
+ | |||
+ | * [[https://www.bloggingforlogging.com/2018/01/ | ||