『【IDM】パスワード同期機能の有効活用 その3 ~ unixUserPassword 属性から暗号化されたパスワードを取得する』PowerShell 編
?????????????Active Directory ? Unix/Linux ????????????????Windows Server 2008 ????????????????
- ?IDM??????????????? ??1
~ ??????????? - ?IDM??????????????? ??2
~ Windows Server 2008 ?????????????????? - ?IDM??????????????? ??3
~ unixUserPassword ????????????????????
???????????????????????????????????????????????????????????????ID ??????????????????????? Linux/Unix ???????? AD ????????????????????????????????????????????????
???????3?? Linux/Unix ???????????????????????LDAP ?????????????????????????? PowerShell ????????????????????????????????????
????Active Directory ? LDAP ????????????????
$domain = [adsi]"" $searcher = New-Object System.DirectoryServices.DirectorySearcher $domain $searcher.Filter = '(&(objectClass=User)(sAMAccountName=testuser001))'
????? ADSI ?????????? ($domain)??????? DirectorySearcher ?????? ?????? ($searcher)?$searcher ????????????LDAP ???????????????????????????????????????
$domain = [adsi]"LDAP://localhost/dc=example1,dc=jp"
$domain ?????????????????????????????(??????????????????? PS C:\> ????????)
PS C:\> $domain | format-list * objectClass : {top, domain, domainDNS} distinguishedName : {DC=example1,DC=jp} instanceType : {5} ...(?)...
?? LDAP ?????????????????????????
$user = $searcher.FindOne()
$user ? Properties ????????????????? unixUserPassword ?????????????(DirectorySearcher ? PropertiesToLoad ?????????????????????? Properties ???????) unixUserPassword ???????????????????? [0] ???????
PS C:\> $user.Properties.unixuserpassword[0] 71 121 49 110 65 77 90 105 65 88 84 102 89 PS C:\> $user.Properties.unixuserpassword[0] | Get-Member TypeName: System.Byte[] ...(?)...
????????????????????????????????.NET Framework ? System.Text ??????????
$enc = new-object System.Text.UTF8Encoding $password = $enc.GetString($user.Properties.unixuserpassword[0])
????????????????????????????
PS C:\> $password Gy1nAMZiAXTfY
Comments
- Anonymous
January 01, 2003
当初の予定を変更し、パスワードの暗号化について、ちょっとだけ触れておきたいと思います 以下では、Active Directory に格納された DES / MD5 形式のパスワードをそのままとりだしました。取り出したまま