Compatibilité des applications avec les RODC (Read-Only DC)

Si vous avez des applications qui ne font que des accès en lecture dans ADDS, ces applications continuent à fonctionner aussi bien sur les DC en écriture (writable DC) que sur les RODC.

Les applications qui interagissent avec l'ADDS utilisent 2 types de technologie : ADSI (Active Directory Service Interface) ou LDAP (Lightweight Directory Access Control). Pour localiser un DC, ces applications utilisent en général la fonction DsGetDcName() du DC Locator, le résultat de la fonction DsGetDcName() pourrait être soit un DC ou un RODC, tout dépend des arguments passés dans la fonction DsGetDcName().

. Pour une application ADSI, la fonction DsGetDcName() du DC Locator est appelée implicitement. Par défault un DC (writable) est retourné.

. Pour une application LDAP, le développeur peut appeler explicitement la fonction DsGetDcName() et pourrait passer comme argument un DC (writable) ou un RODC. Si lors d'une opération en écriture et un DC est passé comme argument, faire tourner cette application sur un RODC ne devrait pas poser de problème. Il faut juste vérifier que le DC (writable) passé en argument est joignable.

Pour avoir plus d'information sur la fonction DsGetDcName(), vous trouverez des détails sur ce lien :

DWORD DsGetDcName(
  __in   LPCTSTR ComputerName,
  __in   LPCTSTR DomainName,
  __in   GUID *DomainGuid,
  __in   LPCTSTR SiteName,
  __in   ULONG Flags,
  __out  PDOMAIN_CONTROLLER_INFO *DomainControllerInfo
);

https://msdn.microsoft.com/en-us/library/ms675983.aspx

 

. Les opérations d'écriture sur un RODC

Si l'application ADSI ou LDAP fait une demande d'écriture sur un RODC, cette requête d'écriture échoue et le RODC retourne un referral vers un DC, cette application doit être capable de répondre à ce referral et d'utiliser les informations reçues pour localiser un DC. Une application ADSI est capable de le faire automatiquement. Mais pour une application LDAP, le développeur doit la configurer l'application LDAP pour localiser un DC en écriture. Cette configuration est appelée un LDAP_Write_Referral.

Pour plus d'information, voir :

https://msdn.microsoft.com/en-us/library/system.directoryservices.aspx

https://msdn.microsoft.com/en-us/library/system.directoryservices.referralchasingoption.aspx

 

. Les opérations d'écriture et de lecture :

Certaines opérations d'écriture puis de relecture des mêmes données pourraient échouer dans un environnement où il y a des RODC. En effet, l'opération d'écriture a été effectuée sur un DC, mais l'opération de relecture est faite sur un autre DC en lecture, en l'occurence un RODC. Ce scénario pourrait échouer dans la mesure où les changements faits sur le DC ne sont pas encore répliqués sur le RODC. Afin d'éviter ce problème, s'assurer que les opérations de lecture et d'écriture sont faites sur le même DC.

https://technet.microsoft.com/en-us/library/cc772597.aspx

 

Dans tous les cas de scénario décrits ci-dessus, il est conseillé de tester toutes les applications qui sont destinées à fonctionner sur un RODC.

 

Huu-Duc Le

Mots clés Technorati : adsi,ldap,referral,RODC