Scripting ¾ð¾î ¹× Visual Basic À» ÀÌ¿ëÇÑ IIS °ü¸® ÀÚµ¿È ±¸Çö 3.-1 ADSI(Active Directory Service Interface)ÀÇ ¼Ò°³
by SongGun
¢Â ADSI ¸¦ »ç¿ëÇϱâ À§ÇÑ Áغñ ADSI ¶ó´Â °·ÂÇÑ ÇÁ·Î±×·¡¹Ö µµ±¸¿¡ °üÇØ ¼³¸íµå¸®±â Àü¿¡, ¸ÕÀú ADSI ¸¦ ½ÇÇà½Ãų¼ö Àִ ȯ°æÀ» ±¸ÃàÇϵµ·Ï ÇϰڽÀ´Ï´Ù. Windows 2000 À» »ç¿ëÇϽô ºÐµé²²¼´Â Windows 2000 ¿¡ ADSI 2.5 °¡ ±âº»ÀûÀ¸·Î Æ÷ÇԵǾî ÀÖÀ¸¹Ç·Î µû·Î ADSI 2.5 ¸¦ ¼³Ä¡ÇÏ½Ç Çʿ䰡 ¾ø½À´Ï´Ù. ±×·¯³ª, Option Pack 4.0 ¿¡ Æ÷ÇԵǾîÀÖ´Â ADSI ´Â ¹öÀüÀÌ ³·¾Æ ADSI ÀÇ ¸ðµç ±â´ÉÀ» »ç¿ëÇÒ ¼ö ¾ø±â ¶§¹®¿¡, NT Server 4.0 »ç¿ëÀںе鲲¼´Â ¸ÕÀú ADSI ¸¦ ADSI 2.5 ·Î ¾÷±×·¹À̵å ÇϼžßÇÕ´Ï´Ù. ¹°·Ð, Option Pack 4.0 ¿¡ Æ÷ÇÔµÈ ADSI ¸¸À¸·Îµµ ÃæºÐÈ÷ ¸ÞŸº£À̽º¸¦ Á¶ÀÛÇÒ ¼ö´Â ÀÖÁö¸¸, ÀÌ °Á°¡ ÁøÇàµÇ´Â ½ÃÁ¡ÀÎ 2000 ³â ¿©¸§ ÇöÀç, NT Server 4.0 °ú Windows 2000 ¿¡ °üÇÑ ¿ä±¸°¡ °øÁ¸ÇÏ´Â Çö½ÇÀ» °í·ÁÇØ ADSI ÆÄÆ® °Á¿¡¼´Â ´ë»óÀ» ¸ÞŸº£À̽º¿¡ ±¹ÇÑÇÏÁö ¾Ê°í Á¶±Ý ¿µ¿ªÀ» È®ÀåÇØº¸µµ·Ï ÇϰڽÀ´Ï´Ù. ÇöÀç ADSI ÀÇ ÃֽйöÀüÀº ADSI 2.5 ·Î Windows NT Server 4.0 ´Ù¿î·Îµå ÆäÀÌÁö¿Í Å¿ä´ÔÀÇ ÀÚ·á½Ç¿¡¼ Windows NT Server 4.0, Windows NT Workstation 4.0, Windows 98, ±×¸®°í Windows 95 ¿ë ADSI 2.5 ¿Í ADSI 2.5 SDK ¸¦ ´Ù¿î·Îµå ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¸, ¾ÆÁ÷ ÇÑ±Û ¹öÀüÀÌ ¾øÀ¸¹Ç·Î ¿µ¹® ¹öÀüÀ» ´Ù¿î¹ÞÀ¸¼Å¾ß ÇÕ´Ï´Ù. Àúµµ NT ¿¡ ¿µ¹®¹öÀüÀ» ¼³Ä¡Çؼ »ç¿ëÁßÀ̳ª ÇöÀç±îÁö ¾Æ¹«·± ¹®Á¦µµ ¹ß»ýÇÏÁö ¾Ê°í ÀÖÀ¸´Ï Âü°íÇϽñ⠹ٶø´Ï´Ù. ¢Â ADSI ¿¹Á¦ ÇÁ·Î±×·¥ - 01. ´ÙÀ½Àº ADSI ¿¹Á¦ ÇÁ·Î±×·¥(¼Ò½º ´Ù¿î·Îµå)ÀÔ´Ï´Ù. ±×µ¿¾È Á¦°¡ ³Ê¹« Áö·çÇÑ ³»¿ëÀ¸·Î ¿©·¯ºÐµéÀ» ±«·ÓÇôµå¸° °Í °°¾Æ¼(^_^;...) Áö±ÝºÎÅÍ´Â °¡±ÞÀû Äڵ带 ¸ÕÀú º¸¿©µå¸®°í ±× µÚ¿¡ ¼³¸íÀ» ÇØµå¸®´Â, ¿¹Á¦ ÄÚµå À§ÁÖÀÇ ÁøÇàÀ» ÇÏ·Á°í ÇÕ´Ï´Ù. ¾Æ·¡ÀÇ Äڵ忡¼ GetObject() ÇÔ¼ö¸¦ Á¦¿ÜÇÏ¸é º°·Î Ưº°ÇÑ Äڵ嵵 ¾øÀ¸¹Ç·Î ÇÑ ¹ø Âß Àо½Ã¸é ´ëÃæ ³»¿ëÀ» ¾Æ½Ç ¼ö ÀÖÀ¸½Ç °ÍÀÔ´Ï´Ù. ¸ÕÀú, ¼Ò½º¸¦ ´Ù¿î¹Þ¾Æ ½ÇÇà½ÃÄѺ¸½Ã°í ADSI ÀÇ °·ÂÇÔÀ» ´À²¸º¸½Ê½Ã¿À. ¾Æ¸¶ óÀ½ ½ÇÇà½Ãų ¶§´Â °á°ú°¡ Ãâ·ÂµÇ±â±îÁö ¾à°£ÀÇ ½Ã°£ÀÌ °É¸±°ÍÀÔ´Ï´Ù. (ADSI 2.5 ¸¦ ¼³Ä¡ÇϼžßÁö¸¸ Á¦´ë·Î µ¿ÀÛÇÕ´Ï´Ù.)
Äڵ带 Âß ÀÐ¾î º¸½Ã°í ½ÇÇà½ÃÄÑ º¸½Ã¸é ¾Æ½Ã°ÚÁö¸¸, ÀÌ ASP ÇÁ·Î±×·¥ÀÌ ÇÏ´Â ÀÏÀº ÁöÁ¤ÇÑ ÄÄÇ»ÅÍ¿¡ Á¸ÀçÇÏ´Â »ç¿ëÀÚ ¸ñ·Ï°ú ±×·ì ¸ñ·Ï, ±×¸®°í ¼ºñ½º ¸ñ·ÏÀ» ¸®½ºÆ® ÇØÁÖ´Â ¸Å¿ì °£´ÜÇÑ ÀÏÀÔ´Ï´Ù. ¾Æ·¡ÀÇ ±×¸²Àº Á¦ ÄÄÇ»ÅÍ¿¡¼ ÀÌ ASP ÇÁ·Î±×·¥À» ½ÇÇà½ÃŲ °á°úÀÔ´Ï´Ù. ÇöÀç Á¦ ÄÄÇ»ÅÍ¿¡ Á¸ÀçÇÏ´Â ¸ðµç »ç¿ëÀÚµéÀÇ Á¤º¸¿Í, ±×·ìµéÀÇ Á¤º¸, ±×¸®°í ¸ðµç ¼ºñ½ºµéÀÇ ¸ñ·ÏÀÌ Ãâ·ÂµË´Ï´Ù. ±×·¯³ª, ÇÏ´Â ÀÏÀº ÀÌ·¸°Ô °£´ÜÇÏÁö¸¸ ±× Àǹ̴ °áÄÚ °£´ÜÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ASP ÇÁ·Î±×·¥ÀÌ º¸¿©ÁÖ°í ÀÖ´Â ±â´ÉÀº ADSI ¸¦ ÀÌ¿ëÇÏÁö ¾Ê°í¼´Â Àý´ë·Î ÀÌ·¸°Ô ¼Õ½±°Ô ±¸ÇöÇÒ ¼ö ¾ø´Â ±â´ÉÀÔ´Ï´Ù. ¿¹¸¦ µé¾î NT »óÀÇ ¼ºñ½º¿¡ ÀüÅëÀûÀÎ ¹æ½ÄÀ» »ç¿ëÇØ Á¢±ÙÇÏ·Á¸é C/C++ °°Àº Àú¼öÁØ ¾ð¾î¿¡ ´ëÇÑ Áö½Ä°ú HAL ÀÌ´Ï ÇÁ·Î¼¼½º´Ï ¾²·¹µå´Ï ¹¹´ÏÇÏ´Â NT ÀÇ ³»ºÎ ±¸Á¶¿¡ ´ëÇÑ »ó´çÇÑ Áö½Ä ¾øÀÌ´Â ¸Å¿ì Èûµì´Ï´Ù. ÇÏÁö¸¸, ADSI ¸¦ ÀÌ¿ëÇÏ¸é ±×·± ¸®¼Ò½ºµé¿¡ ´ëÇÑ ÀÛ¾÷ÀÌ ÀÌó·³ °£´ÜÇÏ°Ô ±¸ÇöµË´Ï´Ù. ±×¸®°í, ÀÌ¹Ì ¿¹»óÇÏ°í °è½Ã°ÚÁö¸¸ ADSI ¸¦ ÀÌ¿ëÇϸé ÀÌ ASP ÇÁ·Î±×·¥Ã³·³ ¸®¼Ò½º¸¦ Á¶È¸ÇÏ´Â °Í¿¡ ±×Ä¡Áö ¾Ê°í, ±× ¸®¼Ò½ºµéÀÇ Á¤º¸¸¦ ¼öÁ¤Çϰųª, Ãß°¡, »èÁ¦ÇÏ´Â µîÀÇ ÀÛ¾÷µéÀ» ¾ÆÁÖ ¼Õ½±°Ô ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´õ±º´Ù³ª, À§ÀÇ ¼Ò½º Äڵ忡¼ ¸ð¸£´Â Äڵ尡 ¸î°³³ª ÀÖ¾ú´ÂÁö »ý°¢ÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù. GetObject() ÇÔ¼ö¿Í Filter ¼Ó¼º, µÎ °¡Áö¸¦ Á¦¿ÜÇÏ¸é ¸ðµÎ ASP ÇÁ·Î±×·¡¸Ó¶ó¸é ³¯¸¶´Ù ¼öÁ·Ã³·³ »ç¿ëÇϰí ÀÖ´Â ÄÚµåµéÀÔ´Ï´Ù. ¢Â ¿¹Á¦ ÄÚµå ¼³¸í »ç½Ç, GetObject() ÇÔ¼ö¿¡ °üÇØ¼¸¸ ¼³¸íµå¸®·Á°í ÇØµµ º¸Åë ºÐ·®ÀÇ °Á 2~3 °³ ºÐ·®ÀÇ ³»¿ëÀº ÇÊ¿äÇÒ °ÍÀÔ´Ï´Ù. (±×·¯³ª, Visual Basic ÇÁ·Î±×·¡¸Ó³ª ASP ÇÁ·Î±×·¡¸Ó¿¡°Ô´Â GetObject() ÇÔ¼ö°¡ ADSI ¸¦ »ç¿ëÇϴµ¥ ÇÊ¿äÇÑ Áö½ÄÀÇ ¾à 70% °¡·®À» Â÷ÁöÇÕ´Ï´Ù. ³ª¸ÓÁö´Â ¸ðµÎ °³³äÀ̳ª ÀÌ·ÐÀÔ´Ï´Ù.) ±×·¯¹Ç·Î, ÀÏ´Ü À̹ø °Á¿¡¼´Â ADSI ÀÇ °·ÂÇÔÀ» ¸Àº¸´Â °Í¸¸À¸·Î ¸¸Á·Çϰí, ´õ »ó¼¼ÇÑ ¼³¸íÀº ´ÙÀ½ °Á·Π¹Ì·çµµ·Ï ÇϰڽÀ´Ï´Ù. GetObject() ÇÔ¼ö´Â ƯÁ¤ÇÑ Çü½ÄÀÇ ¹®ÀÚ¿À» ÀÎÀÚ·Î ¹Þ¾Æ, ±× ¹®ÀÚ¿ÀÌ ÁöÁ¤ÇÏ´Â ¸®¼Ò½º¸¦ COM °³Ã¼·Î ¸¸µé¾î ¸®ÅÏÇØÁÝ´Ï´Ù. ÇÁ·Î±×·¡¸Ó ÀÔÀå¿¡¼´Â ¸®ÅϹÞÀº COM °³Ã¼¸¦ Æò¼Ò¿¡ COM °³Ã¼(¿¹¸¦ µé¾î ASP ÀÇ Server.CreateObject() ÇÔ¼ö°¡ ¸®ÅÏÇØÁÖ´Â °³Ã¼)¸¦ »ç¿ëÇÏ´Â °Íó·³ »ç¿ëÇÏ¸é µÇ´Â °ÍÀÔ´Ï´Ù.
Áï, À§ÀÇ Äڵ忡¼ GetObject() ÇÔ¼ö´Â ƯÁ¤ÇÑ Çü½ÄÀÇ ¹®ÀÚ¿ "WinNT://" & MachineName (°á°úÀûÀ¸·Î "WinNT://DEV-2") ¸¦ ÀÎÀÚ·Î ¹Þ¾Æ, ƯÁ¤ÇÑ Çü½ÄÀÇ ¹®ÀÚ¿ "WinNT://DEV-2" ÀÌ ÁöÁ¤ÇÏ´Â WinNT:// À̸§ °ø°£(NameSpace)ÀÇ DEV-2 ÄÄÇ»ÅÍÀÇ »ç¿ë °¡´ÉÇÑ ¸ðµç ¸®¼Ò½º¸¦ °Ë»öÇØ¼ COM °´Ã¼·Î ¸®ÅÏÇØ¼ 'Domain' À̶ó´Â º¯¼ö¿¡ ´ã¾ÆÁÝ´Ï´Ù. ÀÌ °æ¿ì, 'WinNT:' ¿Í °°Àº °ÍÀ» 'Á¦°øÀÚ'(Provider) ¶ó°í Çϰí, "WinNT://DEV-2" ¿Í °°Àº ƯÁ¤ÇÑ Çü½ÄÀÇ ¹®ÀÚ¿À» 'Binding String' ¶Ç´Â 'ADsPath' ¶ó°í ÇÕ´Ï´Ù. ÇöÀç »ç¿ë°¡´ÉÇÑ Á¦°øÀڷδ Áö±Ý ¿¹Á¦·Î º¸¿©µå¸° WinNT: ¸»°íµµ LDAP:(Windows 2000 Active Directory ¿Í Exchange 5.x ÀÌ»ó), NDS:(Novell Directory Service), NWCOMPAT:(Novell NetWare), ±×¸®°í ´ç¿¬ÇÑ ¸»ÀÌÁö¸¸ IIS:(Internet Information Server) µîÀÌ ÀÖ½À´Ï´Ù. ±×¸®°í, MS ¿¡¼ Á¦½ÃÇÏ´Â ½ºÆå¸¸ ¸¸Á·½ÃŰ¸é ¾î¶² ÇÁ·Î±×·¥ÀÌ¶óµµ ADSI ÀÇ Á¦°øÀÚ°¡ µÉ¼öÀÖÀ¸¹Ç·Î ¾ÕÀ¸·Î »ç¿ë°¡´ÉÇÑ Á¦°øÀÚÀÇ ¼ö´Â ´õ¿í ´Ã¾î³¯ °ÍÀÔ´Ï´Ù. ÀÏ´Ü, ¸®¼Ò½º°¡ ADSI Á¦°øÀÚÀ̱⸸ Çϸé, Á¦°øÀÚ°¡ MS Exchange 5.5 À̰ųª ADS À̰ųª ȤÀº, Novell NetWare À̰ųª¿¡ ÀüÇô »ó°ü¾øÀÌ ADSI ¸¦ »ç¿ëÇÏ´Â µ¿ÀÏÇÑ ÇÁ·Î±×·¡¹Ö ¹æ¹ýÀ¸·Î, ¾ÆÁÖ ¼Õ½±°Ô Á¦°øÀÚµéÀÇ µ¥ÀÌÅÍ(»ç¿ëÀÚ °èÁ¤, ¸ÞÀÏ ¹Ú½º, ÄõÅÍ µîµî...)µéÀ» Á¶È¸, ¼öÁ¤, »èÁ¦, Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·± °³³äÀº ¸¶Ä¡ µ¥ÀÌŸº£À̽ºÀÇ ODBC ÀÇ °³³ä°úµµ ºñ½ÁÇÕ´Ï´Ù. ±×¸®°í »ç½Ç MS ÀÇ ADSI °ü·Ã ¹é¼¿¡µµ ÀÌ·± ºñÀ¯·Î ADSI ¸¦ ¼³¸íÇϰí ÀÖ°í, ±â´ÉÀÌ ¾àÇØ¼ ±ÇÇØµå¸®°í ½ÍÁö´Â ¾ÊÁö¸¸, ½ÇÁ¦·Î ADO ¸¦ ÀÌ¿ëÇØ¼ SQL ·Î ADSI ¸¦ »ç¿ëÇÏ´Â ¹æ¹ýµµ Á¸ÀçÇÕ´Ï´Ù. ADsPath(Binding String) ´Â °¢°¢ÀÇ Á¦°øÀڵ鸶´Ù Á¶±Ý¾¿ Çü½ÄÀÌ Æ²¸³´Ï´Ù. ´ÙÀ½Àº ADS ¸¦ Á¶È¸Çϱâ À§ÇÑ LDAP: Á¦°øÀÚÀÇ ADsPath »ç¿ë ¿¹ÀÔ´Ï´Ù.
´ÙÀ½Àº WinNT: Á¦°øÀÚÀÇ ADsPath »ç¿ë ¿¹ÀÔ´Ï´Ù.
¸»¾¸µå¸°´ë·Î µÎ °æ¿ìÀÇ ADsPath °¡ ¼·Î ¾à°£¾¿ Ʋ¸®´Ù´Â °ÍÀ» ¾Æ½Ç ¼ö ÀÖÀ¸½Ç °ÍÀÔ´Ï´Ù. µû¶ó¼, GetObject() ÇÔ¼ö¸¦ Àß »ç¿ëÇϱâ À§Çؼ´Â ADsPath ¸¦ ÀÚÀ¯ÀÚÀç·Î ±¸¼ºÇÒ ¼ö ÀÖ¾î¾ßÇÕ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ Á¦°¡ ¹«·Á 3 ȸÀÇ °Á¸¦ ÅëÇØ ¿©·¯ºÐµéÀ» Áö·çÇÏ°Ô Çϸ鼱îÁö(^_^) ¸ÞŸº£À̽ºÀÇ °æ·Î¿Í ±× ÁÖº¯ Á¤º¸¸¦ ½Ã½ÃÄÝÄÝÇÑ °Í±îÁö ¼³¸íµå¸° °ÍÀÔ´Ï´Ù. (ù¹øÂ° °ÁÂÀÇ 'ŰÀÇ °æ·Î'¸¦ ±â¾ïÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.) ¢Â ¸¶Ä¡¸ç... À̹ø °Á¿¡¼´Â ADSI ¿¡ °üÇØ °³¿ä Á¤µµ·Î¸¸ °£´ÜÇÏ°Ô ¾Ë¾Æº¸¾Ò½À´Ï´Ù. ¹°·Ð, ÀÌÁ¤µµ ¼³¸í¸¸À¸·Î´Â ADSI ¿¡ ´ëÇØ ÃæºÐÈ÷ ÀÌÇØ°¡ °¡½ÃÁö ¾Ê°ÚÁö¸¸, ADSI ÀÇ °·ÂÇÔ¿¡ ´ëÇØ¼´Â ÃæºÐÈ÷ ´À³¢¼ÌÀ¸¸®¶ó ¹Ï½À´Ï´Ù. ÀÌÁ¦ ´ÙÀ½ °Á¿¡¼´Â ADS ¿Í ADSI ¿ÍÀÇ Â÷ÀÌÁ¡, Á¦°øÀÚ¿¡ °üÇÑ »ó¼¼ Á¤º¸, ADsPath »ç¿ë¹ý µî º»°ÝÀûÀ¸·Î ADSI ¿¡ ´ëÇØ¼ ¾Ë¾Æº¸±â·Î ÇϰڽÀ´Ï´Ù. °¨»çÇÕ´Ï´Ù. |