{"id":78,"date":"2020-01-13T12:01:00","date_gmt":"2020-01-13T12:01:00","guid":{"rendered":"https:\/\/www.mainmind.com\/blog\/?p=78"},"modified":"2020-07-28T06:49:23","modified_gmt":"2020-07-28T06:49:23","slug":"directorio-activo-hybrido-en-azure-immutableid-sourceanchor","status":"publish","type":"post","link":"https:\/\/www.mainmind.com\/blog\/directorio-activo-hybrido-en-azure-immutableid-sourceanchor\/","title":{"rendered":"Directorio activo hybrido en Azure"},"content":{"rendered":"<p>Ambos nombres son equivalentes, describen un atributo que no cambia durante la vida de un objecto. Se trata de identificar de forma \u00fanica en un entorno local y en Azure AD.<\/p>\n<p>Por defecto se calcula codificando en Base 64 la propiedad objectGUID del servidor local, por ejemplo:<\/p>\n<pre class=\"brush:ps;auto-links:false;toolbar:false\" contenteditable=\"false\">$Usuario = Get-ADuser nombreDeUsuario -Properties * -server localhost\n$ImmutableID = [system.convert]::ToBase64String(([GUID]($Usuario.ObjectGUID)).tobytearray())<\/pre>\n<p>Realmente no deber\u00eda cambiarse, pero en ocasiones nos encontramos en la necesidad de hacerlo, bien por una migraci\u00f3n de directorio, eliminaci\u00f3n de usuarios, <a href=\"https:\/\/portal.azure.com\/#blade\/Microsoft_Azure_ADHybridHealth\/AadHealthMenuBlade\/SyncErros\" target=\"_blank\" rel=\"noopener noreferrer\">replicaci\u00f3n con errores<\/a>&#8230; Si en lugar de utilizar el objectGUID utilizariamos un atributo personalizado no tendr\u00edamos este problema pero conllevar\u00eda la gesti\u00f3n y administraci\u00f3n del mismo, si dentro de la empresa cada uno tiene un identificador \u00fanico personal podr\u00eda utilizarse para calcular el sourceAnchor.<\/p>\n<p>Esta propiedad se establece durante la <a href=\"https:\/\/www.microsoft.com\/en-us\/download\/details.aspx?id=47594\" target=\"_blank\" rel=\"noopener noreferrer\">instalaci\u00f3n inicial<\/a>, solo si se desinstala correctamente se puede volver a establecer con un valor personalizado, desde la versi\u00f3n 1.1.524.0 se facilita el atributo ms-DS-ConsistencyGuidcomo atributo de los usuarios a utilizar como sourceAnchor.<\/p>\n<p>Podemos visualizar la propiedad actual desde PowerShell:<\/p>\n<pre class=\"brush:ps;auto-links:false;toolbar:false\" contenteditable=\"false\">Import-Module AzureAD\n$O365Cred = Get-Credential\n$O365Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https:\/\/ps.outlook.com\/powershell -Credential $O365Cred -Authentication Basic -AllowRedirection\nImport-PSSession $O365Session\nConnect-AzureAD -Credential $O365Cred\nGet-AzureADUser -ObjectId nombreUsuario@midominio.com | Select objectID, UserPrincipalName, ImmutableID<\/pre>\n<p>Si bien, en la documentaci\u00f3n aparece, la posibilidad de establecer el valor en nulo para desvincular las cuentas creadas localmente de la nube mediante powershell:<\/p>\n<pre class=\"brush:ps;auto-links:false;toolbar:false\" contenteditable=\"false\">Set-AzureADUser -ObjectId nombreUsuario@midominio.com -ImmutableID $null<\/pre>\n<p><a href=\"https:\/\/github.com\/Azure\/azure-docs-powershell-azuread\/issues\/166\" target=\"_blank\" rel=\"noopener noreferrer\">No genera ning\u00fan resultado ni modificaci\u00f3n del objeto<\/a>, por lo menos a fecha de hoy.<\/p>\n<p>Como alternativa, podemos crear un usuario temporal en nuestro directorio, sincronizar e intercambiar sourceAnchor, asignando otro incorrecto al usuario a eliminar posteriormente.<\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"\/blog\/wp-content\/uploads\/\/2020\/immutableid_error_sync_azure.jpg\" alt=\"\"><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ambos nombres son equivalentes, describen un atributo que no cambia durante la vida de un objecto. Se trata de identificar de forma \u00fanica en un entorno local y en Azure AD. Por defecto se calcula codificando en Base 64 la propiedad objectGUID del servidor local, por ejemplo: $Usuario = Get-ADuser nombreDeUsuario -Properties * -server localhost [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[84,87,83,86,85,81,88,82],"class_list":["post-78","post","type-post","status-publish","format-standard","hentry","category-windows-server","tag-active-directory","tag-cloud","tag-directorio-activo","tag-hibrido","tag-hybrid","tag-immutableid","tag-nube","tag-sourceanchor"],"_links":{"self":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/78","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/comments?post=78"}],"version-history":[{"count":0,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/78\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media?parent=78"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/categories?post=78"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/tags?post=78"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}