| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 20. Ŭ¶óÀÌ¾ðÆ® ÀÎÁõ | Fast Forward | Next |
ÀÌÇÏÀÇ ¼ÒÀý¿¡¼´Â, ÀÎÁõ ¹æ½Ä¿¡ ´ëÇØ »ó¼¼ÇÏ°Ô ¼³¸íÇÕ´Ï´Ù.
trust ÀÎÁõÀÌ ÁöÁ¤µÉ ¶§, PostgreSQL´Â ¼¹ö¿¡ Á¢¼ÓÇÒ ¼ö ÀÖ´Â ¸ðµç »ç¶÷Àº ±×µéÀÌ ÁöÁ¤ÇÑ µ¥ÀÌÅͺ£À̽º »ç¿ëÀÚ¸íÀ» ÀÌ¿ëÇØ ¼¹ö·ÎÀÇ Á¢¼ÓÀ» ÀÎÁõÇÏ´Â °ÍÀ» °¡Á¤ÇÕ´Ï´Ù(½´ÆÛÀ¯Àúµµ Æ÷ÇÔ). ¹°·Ð database¿Íuser¿ÀÇ Á¦ÇÑÀº ¿©ÀüÈ÷ Àû¿ëµË´Ï´Ù. ÀÌ ¹æ½ÄÀº ¼¹ö·ÎÀÇ Á¢¼Ó¿¡ ´ëÇØ¼ ÃæºÐÇÑ operating system ·¹º§ÀÇ ¿¹¹æÀÌ ÀÖÀ» °æ¿ì¿¡¸¸ »ç¿ëµÇ¾î¾ß ÇÕ´Ï´Ù.
trustÀÎÁõÀº ÇѸíÀÇ À¯Àú ¿öũũ½ºÅ×À̼ǻ󿡼 ·ÎÄà Á¢¼ÓÀ» ½Ç½ÃÇÏ´Â °æ¿ì¿¡ ÀûÀýÇÏ¸ç µ¿½Ã¿¡ ¸Å¿ì Æí¸®ÇÕ´Ï´Ù. º¹¼öÀÇ À¯Àú°¡ Á¸ÀçÇÏ´Â ¸Ó½Å»ó¿¡¼´Â ÀϹÝÀûÀ¸·Î ÀûÀýÇÏÁö ¾Ê½À´Ï´Ù . ±×·¯³ª, ÆÄÀÏ ½Ã½ºÅÛÀÇ Çã°¡ ¼Ó¼ºÀ» »ç¿ëÇØ ¼¹öÀÇ Unix µµ¸ÞÀÎ ¼ÒÄÏ ÆÄÀÏÀÇ Á¢±ÙÀ» Á¦ÇÑÇϸé trustÀÎÁõÀ» º¹¼ö À¯Àú ¸Ó½Å»ó¿¡¼ »ç¿ëÇÏ´Â Àϵµ °¡´ÉÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¹æ¹ýÀº Section 17.3¿¡ ±âÀçµÇ¾î ÀÖµíÀÌ, unix_socket_permissions( ±×¸®°í unix_socket_group°¡´ÉÇÕ´Ï´Ù) ÆÄ¶ó¹ÌÅ͸¦ ¼³Á¤ÇÕ´Ï´Ù. ¶Ç´Â unix_socket_directory¼³Á¤ ÆÄ¶ó¹ÌÅ͸¦ Àû´çÈ÷ Á¦ÇÑµÈ µð·ºÅ丮 ¾È¿¡ ¼ÒÄÏ ÆÄÀÏ¿¡ À§Ä¡½Ãµµ·Ï ¼³Á¤ÇÕ´Ï´Ù.
Unix ¼ÒÄÏ Á¢¼ÓÀ» ½Ç½ÃÇÏ´Â ´Ü ÇѰ¡Áö ¹æ¹ýÀº ÆÄÀÏ ½Ã½ºÅÛ Çã°¡¸¦ ¼³Á¤ÇÏ´Â °ÍÀÔ´Ï´Ù. ·ÎÄà TCP/IP Á¢¼ÓÀº ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀÇÇØ Á¦ÇѵÇÁö´Â ¾Ê½À´Ï´Ù. ±×·¯¹Ç·Î ·ÎÄ÷ΠÆÄÀÏ ½Ã½ºÅÛÀÇ Çã°¡¸¦ »ç¿ëÇÏ·Á¸épg_hba.conf·ÎºÎÅÍ host ... 127.0. 0.1 ...ÀÇ ÇàÀ» »èÁ¦Çϰųª, trustÀÎÁõ°ú ´Ù¸¥ ¹æ¹ýÀ¸·Î º¯°æÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
trust¸¦ ÁöÁ¤ÇÏ´Â pg_hba.conf Çà¿¡ ÀÇÇØ ¼¹ö·ÎÀÇ Á¢¼ÓÀ» Çã°¡ÇÏ´Â ¸ðµç ¸Ó½Å»óÀÇ À¯Àú¸¦ ½Å·ÚÇÒ °æ¿ì, TCP/IP Á¢¼Ó¿¡ ÀûÇÕÇÑ °ÍÀº ¿ÀÁ÷ trust ÀÎÁõÀÔ´Ï´Ù. TCP/IP Á¢¼Ó¿¡¼ localhost (127.0.0.1)°¡ ¾Æ´Ñ trust¸¦ »ç¿ëÇÏ´Â ÇÕ¸®ÀûÀÎ ÀÌÀ¯´Â °ÅÀÇ ¾ø½À´Ï´Ù.
ÆÐ½º¿öµå¸¦ º£À̽º·Î ÇÑ ÀÎÁõ ¹æ½Ä¿¡´Â md5,crypt ¹× password°¡ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¹æ½ÄÀº ÆÐ½º¿öµå°¡ Á¢¼Ó¿¡¼ Àü¼ÛµÇ´Â ¹æ½Ä(°¢°¢ MD5-hashed, crypt-encrypted, clear-text)À» Á¦¿ÜÇÏ°í ºñ½ÁÇÏ°Ô ¼öÇàµÇ¾î Áý´Ï´Ù. crypt¿¡ ÀÇÇÑ ¹æ¹ýÀº pg_authid·Î ¾ÏÈ£ÈµÈ ÆÐ½º¿öµå¿Í ÇÔ²² »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù
¸¸¾à ÆÐ½º¿öµå "µµÃ»(sniffing)"°ø°Ý¿¡ ´ëÇØ ¿ì·Á°¡ Å©´Ù¸é, md5¸¦ »ç¿ëÇÏ´Â Çϵµ·Ï ±ÇÇÕ´Ï´Ù. pre-7.2 Ŭ¶óÀÌ¾ðÆ®¸¦ Áö¿øÇؾßÇÒ °æ¿ì¿¡¸¸ crypt¸¦ »ç¿ëÇÕ´Ï´Ù. ´Ü¼øÇÑ password´Â(SSL³ª Á¢¼Ó ÀüÈĸ¦ Æ÷ÇÔÇÑ ´Ù¸¥ Åë½Å º¸¾È wrapper¸¦ »ç¿ëÇÏÁö ¾Ê´Â ÇÑ) ƯÈ÷ °³¹æÀûÀÎ ÀÎÅÍ³Ý È¯°æÀÇ Á¢¼ÓÀ» ÇÇÇØ¾ß ÇÕ´Ï´Ù.
PostgreSQLµ¥ÀÌÅͺ£À̽º ÆÐ½º¿öµå´Â operating systemÀÇ À¯Àú ÆÐ½º¿öµå¿Í ´Ù¸¥ °ÍÀÔ´Ï´Ù. °¢ µ¥ÀÌÅͺ£À̽º À¯ÀúÀÇ ÆÐ½º¿öµå´Âpg_authid½Ã½ºÅÛ Ä«Å»·Î±× Å×ÀÌºí ¾È¿¡ ÀúÀåµË´Ï´Ù. CREATE USER foo WITH PASSWORD 'secret';¿Í °°ÀÌ, ÆÐ½º¿öµå´Â SQL Ä¿¸àµå CREATE USER ¿Í ALTER USER ¸¦ »ç¿ëÇØ °ü¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. µðÆúÆ®¿¡¼´Â ÆÐ½º¿öµå°¡ ¼³Á¤µÇÁö ¾Ê´Â °æ¿ì, ÀúÀåµÇ´Â ÆÐ½º¿öµå´Â NULL°¡ µÇ¾î, ±× À¯ÀúÀÇ ÆÐ½º¿öµå ÀÎÁõÀº Ç×»ó ½ÇÆÐÇÕ´Ï´Ù.
Kerberos´Â ¾÷°èÇ¥ÁØÀÇ ¾ÈÀüÇÑ ÀÎÁõ ½Ã½ºÅÛÀ¸·Î, °ø°³ ³×Æ®¿öÅ©ÀÇ ºÐ»ê ÄÄÇ»ÆÃ¿¡ ÀûÇÕÇÕ´Ï´Ù Kerberos½Ã½ºÅÛÀÇ ¼³¸íÀº ÀÌ ¹®¼ÀÇ ¹üÀ§¿Í °Å¸®°¡ ¸Ù´Ï´Ù. ´ëü·Î ¸Å¿ì(°·ÂÇÕ´Ï´Ù¸¸) º¹ÀâÇÏ´Ù°í ¸»ÇÒ ¼ö ÀÖ½À´Ï´Ù. KerberosFAQ ³ª MIT Kerberos ÆäÀÌÁö´Â °Ë»öÀ» ½ÃÀÛÇÏ´Â µ¥ ÁÁÀº »çÀÌÆ®ÀÔ´Ï´Ù. KerberosÀÇ ¼Ò½º ÄÚµå ¹èÆ÷¹°Àº ÀϺΠÁ¸ÀçÇÕ´Ï´Ù. Kerberos´Â ¾ÈÀüÇÑ ÀÎÁõÀ» Á¦°øÇÏÁö¸¸, ³×Æ®¿öÅ© ³Ñ¾î·Î °Ç³×¹Þ´Â Äõ¸®³ª µ¥ÀÌÅÍÀÇ ¾Ïȣȸ¦ ½Ç½ÃÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ¶§¹®¿¡´ÂSSL¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä.
PostgreSQL´Â KerberosÀÇ ¹öÁ¯ 5¸¦ Áö¿øÇϰí ÀÖ½À´Ï´Ù. Kerberos ÀÎÁõÀÇ ¼Æ÷Æ®´Â PostgreSQL°¡ ±¸Ãà µÈ ½ÃÁ¡¿¡¼ °¡´ÉÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀºChapter 14À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
PostgreSQL´Â ÀϹÝÀûÀÎ Kerberos ¼ºñ½º¿Í °°ÀÌ ÀÛµ¿ÇÕ´Ï´Ù. ¼ºñ½ºÀÇ ¹ýÄ¢¸íÀº servicename/hostname@realm ÀÔ´Ï´Ù.
servicename ´Â krb_srvname¼³Á¤ ÆÄ¶ó¹ÌÅ͸¦ »ç¿ëÇÑ ¼¹ö Ãø¿¡ ¼³Á¤µÉ ¼ö ÀÖ½À´Ï´Ù. °Ô´Ù°¡ Ŭ¶óÀÌ¾ðÆ® Ãø¿¡¼´Â krbsrvnameÁ¢¼Ó ÆÄ¶ó¹ÌÅ͸¦ »ç¿ëÇÕ´Ï´Ù. (Section 29.1µµ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. ) ÀνºÅç ½ÃÀÇ µðÆúÆ®postgres(±¸Ãà ½Ã¿¡´Â ./configure --with-krb-srvnam=whatever¸¦ »ç¿ëÇÔ)´Â º¯°æ °¡´ÉÇÕ´Ï´Ù. ¸¹Àº ȯ°æ¿¡¼ ÀÌ ÆÄ¶ó¹ÌÅÍ´Â º¯°æÇÒ ÇÊ¿ä´Â ¾øÀ» °ÍÀÔ´Ï´Ù. ±×·¸Áö¸¸, µ¿ÀÏ È£½ºÆ®³»¿¡¼ º¹¼öÀÇ PostgreSQL¸¦ ¼Æ÷Æ®ÇÏ´Â °æ¿ì¿¡´Â ÇÊ¿äÇÕ´Ï´Ù. ¸î °³ÀÇ KerberosÀÇ ½ÇÇà¿¡¼´Â ´Ù¸¥ ¼ºñ½º¸íÀÌ ÇÊ¿äÇÏ°Ô µË´Ï´Ù. Microsoft ¾×Ƽºê µð·ºÅ丮¿¡¼´Â ¼ºñ½º¸íÀº ´ë¹®ÀÚ·Î ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.(POSTGRES)
hostname ´Â ¼¹ö¸Ó½ÅÀÇ ¿ÏÀüÇÑ Á¶°ÇºÎ È£½ºÆ®¸íÀÔ´Ï´Ù. ¼ºñ½º ¹ýÄ¢ÀÇ realm´Â ¼¹ö ¸Ó½ÅÀÇ realm¸¦ ¼±È£ÇÕ´Ï´Ù.
Ŭ¶óÀÌ¾ðÆ® ¹ýÄ¢Àº ±×µéÀÇ PostgreSQL µ¥ÀÌÅͺ£À̽º À¯Àú¸íÀ¸·Î ù¹øÂ° ÄÄÆ÷³ÍÆ®¸¦ °¡Á®¾ß¸¸ ÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, pgusername/otherstuff@realm ÀÔ´Ï´Ù. µðÆúÆ®¿¡¼´Â Ŭ¶óÀ̾ðÆ®ÀÇ realmÀ» PostgreSQL·Î üũµÇÁö ¾Ê½À´Ï´Ù. cross-realm ÀÎÁõÀÌ »ç¿ë °¡´ÉÇÏ´Ù¸é, ¾î´À realmÀÇ ¹ýÄ¢ÀÌ¶óµµ ´ç½ÅÀÇ Çã°¡ ¾øÀÌ Åë½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù.
¼¹ö keytab ÆÄÀÏÀÌPostgreSQL¼¹ö ¾îÄ«¿îÆ®¿¡ ÀÇÇØ ÀоîÁú ¼ö ÀÖ´ÂÁö¸¦(±×¸®°í µÉ ¼ö ÀÖÀ¸¸é read Àü¿ë) È®ÀÎÇØ ÁÖ¼¼¿ä (Section 16.1¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä). Ű ÆÄÀÏÀÇ Àå¼Ò´Â krb_server_keyfile¼³Á¤ ÆÄ¶ó¹ÌÅÍ·Î ÁöÁ¤µË´Ï´Ù µðÆúÆ®´Â /usr/local/pgsql/etc/krb5.keytab(¶Ç´Â ±¸Ãà½Ã¿¡ sysconfdir·Î ÁöÁ¤µÈ µð·ºÅ丮)ÀÔ´Ï´Ù.
keytab ÆÄÀÏÀº KerberosÀÇ ¼ÒÇÁÆ®¿þ¾î¿¡ ÀÇÇØ ÀÛ¼ºµË´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº KerberosÀÇ ¹®¼¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. MIT ȣȯÀÇ Kerberos5 ½ÇÇàÀÇ ¿¹´Â ´ÙÀ½°ú °°½À´Ï´Ù.
kadmin% ank -randkey postgres/server.my.domain.org kadmin% ktadd -k krb5.keytab postgres/server.my.domain.org
µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÏ·Á°í ÇÒ ¶§, ¿äûµÈ µ¥ÀÌÅͺ£À̽º À¯Àú¸í°ú ÀÏÄ¡ÇÏ´Â ¹ýÄ¢ÀÇ Æ¼ÄÏÀ» ¼ÒÀ¯Çϰí ÀÖ´ÂÁö¸¦ È®ÀÎÇØ ÁÖ¼¼¿ä. ¿¹¸¦ µé¸é, µ¥ÀÌÅͺ£À̽º À¯Àú¸ífred¿¡ ´ëÇØ, fred@EXAMPLE.COM¿Í fred/users.example.com@EXAMPLE.COM ¹ýÄ¢ ¸ðµÎ´Â µ¥ÀÌÅͺ£À̽º ¼¹öÀÇ ÀÎÁõ¿¡ »ç¿ëµË´Ï´Ù.
Apache Web ¼¹ö»ó¿¡¼ mod_auth_krb ¿Ímod_perl¸¦ »ç¿ëÇÑ´Ù¸émod_perl½ºÅ©¸³Æ®·ÎAuthType KerberosV5SaveCredentials°¡ »ç¿ë °¡´ÉÇÕ´Ï´Ù. ÀÌ ¹æ¹ýÀ¸·Î ÀÎÇØ ¿©ºÐÀÇ ÆÐ½º¿öµå°¡ ¿ä±¸µÇÁö ¾ÊÀ¸¸ç, Web¸¦ ÅëÇÑ ¾ÈÀüÇÑ µ¥ÀÌÅͺ£À̽º ¾×¼¼½º°¡ »ý±é´Ï´Ù.
ident ÀÎÁõ ¹æ½ÄÀº Ŭ¶óÀÌ¾ðÆ® operating systemÀÇ À¯Àú¸íÀ» ȹµæÇÔÀ¸·Î¼ ½ÇÇàµË´Ï´Ù. ±×·± ÈÄ »óÀÀÇÏ´Â À̸§À¸·Î Çã°¡µÈ ¸®½ºÆ®¸¦ °¡Áø ¸Ê ÆÄÀÏÀ» »ç¿ëÇØ¼ µ¥ÀÌÅͺ£À̽º À¯Àú¸íÀ» °áÁ¤ÇÕ´Ï´Ù. Ŭ¶óÀ̾ðÆ®ÀÇ À¯Àú¸í °áÁ¤Àº º¸¾ÈÀÇ Áß¿äÇÑ ºÎºÐÀ̸ç, ÀÌ´Â Á¢¼Ó Çü½Ä¿¡ µû¶ó ´Ù¸£°Ô ÀÛµ¿ÇÕ´Ï´Ù.
"½Å¿ø È®ÀÎ(Identification) ÇÁ·ÎÅäÄÝ"´Â RFC 1413¿¡¼ ¼³¸íµÇ°í ÀÖ½À´Ï´Ù. »ç½Ç»ó ¸ðµç Unix°èÀÇ operating system ¹èÆ÷´Â µðÆúÆ®·Î TCP Æ÷Åä 113À» °¨½ÃÇÏ´Â ident ¼¹ö°¡ ¼ÓÇØ ÀÖ½À´Ï´Ù. ident ¼¹öÀÇ ±âº»ÀûÀÎ ±â´ÉÀº "¾î´À À¯Àú°¡ Æ÷Æ® X ·ÎºÎÅÍÀÇ Á¢¼ÓÀ» ½ÃÀÛÇØ, ÀÚ½ÅÀÇ Æ÷Æ® Y ¿¡ Á¢¼ÓÀ» ÃʱâÈÇߴ°¡"¿¡ ´ëÇÑ ´äÀÔ´Ï´Ù. PostgreSQL´Â X ¿Í Y ¸¦ ÀνÄÇϰí ÀÖ½À´Ï´Ù. ÀÌ¿¡ µû¶ó ¹°¸®Àû Á¢¼ÓÀÌ È®¸³µÇ¾úÀ» ¶§, Á¢¼ÓÇÑ Å¬¶óÀ̾ðÆ®ÀÇ È£½ºÆ® »óÀÇ ident ¼¹ö¿¡°Ô ½ÅÈ£¸¦ º¸³¾ ¼ö ÀÖ°Ô µË´Ï´Ù. ±×¸®°í ÀÌ·ÐÀûÀ¸·Î ÀÌ·¯ÇÑ º¡¹ýÀ¸·Î ÁöÁ¤µÈ ¸ðµç Á¢¼Ó¿¡¼´Â operating system À¯Àú¸¦ °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ÀýÂ÷ÀÇ °áÁ¡Àº Ŭ¶óÀ̾ðÆ®ÀÇ ¹«°á¼º¿¡ ÀÇÁ¸ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ¸¸¾à Ŭ¶óÀÌ¾ðÆ® ¸Ó½ÅÀÌ ½Å¿ëµÇ¾îÁöÁö ¾Ê°Å³ª À§ÇèÇÏ°Ô ³ëÃâµÇ°í ÀÖ´Â °æ¿ì, °ø°ÝÀÚ´Â Æ÷Æ® 113 »óÀÇ ¾î¶² ÇÁ·Î±×·¥ÀÌ¶óµµ ½ÇÇàÇÒ ¼ö ÀÖÀ¸¸ç °ø°ÝÀÚ°¡ ¼±ÅÃÇÑ À¯Àú¸íÀ» ¹ÝȯÇÒ ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼ ÀÌ ÀÎÁõ ¹æ½ÄÀº °¢ Ŭ¶óÀÌ¾ðÆ® ¸Ó½ÅÀÌ ¾ö°ÝÇÑ °ü¸® ÇÏ¿¡ ÀÖÀ¸¸ç µ¥ÀÌÅͺ£À̽º¿Í ½Ã½ºÅÛ °ü¸®ÀÚ°¡ ¹ÐÁ¢ÇÑ ¿¬¶ôÀ¸·Î µ¿ÀÛÇÏ´Â, ´ÝÇôÀÖ´Â ³×Æ®¿öÅ©¿¡¼¸¸ ÀûÇÕÇÏ´Ù°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù½Ã ¸»Çϸé, ident ¼¹ö¿¡¼ ½ÇÇàÇÏ´Â ¸Ó½ÅÀº ¹«Á¶°Ç ½Å¿ëÇØ¾ßÇÕ´Ï´Ù. ´ÙÀ½ÀÇ °æ°í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä.
|
½Å¿ø È®ÀÎ ÇÁ·ÎÅäÄÝÀº ÀÎÁõÀ̳ª ¾×¼¼½º °ü¸® ÇÁ·ÎÅäÄݷμ ÀǵµµÇÁö ¾Ê½À´Ï´Ù. |
||
| --RFC 1413 | ||
ÀϺΠident ¼¹ö´Â À¯Àú¸íÀ» ¸Ó½ÅÀÇ °ü¸®ÀÚ¸¸ÀÌ ¾Ë°í Àִ Ű¸¦ »ç¿ëÇØ, ¾ÏÈ£ÈÇÏ¿© ¸®ÅÏÇÏ´Â ºñÇ¥ÁØ ¿É¼ÇÀ» °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌ ¿É¼ÇÀº ½Å¿ø È®ÀÎ ¼¹ö¿Í PostgreSQL¸¦ ÇÔ²² »ç¿ëÇÏ´Â °æ¿ì¿¡´Â »ç¿ëÇØ¼´Â ¾ÈµË´Ï´Ù . ¿Ö³ÄÇϸé PostgreSQL´Â ½ÇÁ¦ À¯Àú¸íÀ» °áÁ¤Çϱâ À§ÇÑ ¹ÝȯµÈ ¹®ÀÚ¿À» ÇØµ¶ÇÏ´Â ¹æ¹ýÀ» °¡Áö°í ÀÖÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù.
Unix µµ¸ÞÀÎ ¼ÒÄÏ¿¡ ´ëÇØ SO_PEERCRED ¿äûÀ» ¼Æ÷Æ®Çϰí ÀÖ´Â ½Ã½ºÅÛ(Çö½ÃÁ¡¿¡¼´ÂLinux,FreeBSD,NetBSD,OpenBSD°ú BSD/OS) »ó¿¡¼´Â, ·ÎÄà Á¢¼Ó¿¡ ´ëÇØ¼µµ ident ÀÎÁõÀ» Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì, ident ÀÎÁõ »ç¿ë¿¡ ´ëÇÑ À§ÇèÀº ¾ø½À´Ï´Ù. ½ÇÁ¦, ÀÌ·¯ÇÑ ½Ã½ºÅÛ »óÀÇ ·ÎÄà Á¢¼Ó¿¡¼ ÃßõµÇ´Â ¹æ¹ýÀÔ´Ï´Ù.
SO_PEERCRED¿äûÀÌ ¾ø´Â ½Ã½ºÅÛ¿¡¼´Â TCP/IPÁ¢¼Ó¿¡ ´ëÇØ¼¸¸ ident ÀÎÁõÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. »ç¿ëÇØ º¸·Á¸é localhostÁÖ¼Ò127.0. 0.1À» ÁöÁ¤Çϰí ÁÖ¼Ò¿¡ Á¢¼ÓÇØ ÁÖ¼¼¿ä. ÀÌ ¹æ¹ýÀº ·ÎÄà ident ¼¹ö¸¦ ½Å·ÚÇÒ ¼ö ÀÖ´Â ¹üÀ§±îÁö ½Å·ÚÇÒ ¼ö ÀÖ½À´Ï´Ù.
ident ±â¹Ý ÀÎÁõÀ» »ç¿ëÇÏ´Â °æ¿ì, Á¢¼ÓÀ» ½ÃÀÛÇÑ operating system À¯Àú¸íÀ» °áÁ¤µÇ¸é PostgreSQL´Â µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛ À¯Àú·Î¼ Á¢¼Ó ¿ä±¸¸¦ ÇÏ´Â À¯ÀúÀÇ Á¢¼ÓÀÌ Çã°¡´ÂÁö¸¦ Á¶»çÇÕ´Ï´Ù. À̰ÍÀº pg_hba.confÆÄÀÏ ¾ÈÀÇidentŰ¿öµå µÚ¿¡ ÀÖ´Â ident ¸Ê ÀÎÀÚ¿¡ ÀÇÇØ Á¦¾îµË´Ï´Ù. ÀÌ¹Ì Á¤Àǰ¡ ³¡³ ident ¸ÊsameuserÀÌ ÀÖ½À´Ï´Ù. ÀÌ ¸ÊÀº °°Àº À̸§ÀÇ µ¥ÀÌÅͺ£À̽º À¯Àú(¸¸¾à Á¸ÀçÇÑ´Ù¸é)·Î Á¢¼ÓÇÏ´Â ¸ðµç operating system À¯Àú¸¦ Çã¶ôÇÕ´Ï´Ù. ±× ¿ÜÀÇ ¸ÊÀº ¼öÀÛ¾÷À¸·Î ÀÛ¼ºµÇ¾î Áý´Ï´Ù.
sameuser°¡ ¾Æ´Ñ ident ¸ÊÀº µðÆúÆ®·Î pg_ident.conf ¶ó´Â À̸§À¸·Î ident ¸Ê ÆÄÀÏ¿¡ Á¤Àǵ˴ϴÙ. ±×¸®°í Ŭ·¯½ºÅÍÀÇ µ¥ÀÌÅÍ µð·ºÅ丮¿¡ ÀúÀåµË´Ï´Ù. (±×·¯³ª, ´Ù¸¥ Àå¼Ò¿¡ ¸Ê ÆÄÀÏÀ» ¼³Ä¡ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ident_file¼³Á¤ ÆÄ¶ó¹ÌÅ͸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä). º¸Åë ident ¸Ê ÆÄÀÏÀº ÀÌÇÏÀÇ ¼½ÄÀ» °¡Áý´Ï´Ù.
map-name ident-username database-username
ÄÚ¸àÆ®¿Í °ø¹éÀº pg_hba.conf¿Í °°Àº ¹æ¹ýÀ¸·Î ´Ù·ç¾îÁý´Ï´Ù. map-name ´Â pg_hba.conf¿¡¼ ¸ÅÇÎÀ» ÂüÁ¶Çϱâ À§Çؼ »ç¿ëµÇ´Â ÀÓÀÇÀÇ À̸§ÀÔ´Ï´Ù. ´Ù¸¥ 2°³ÀÇ Çʵå´Â ¾î´À operating system À¯Àú°¡ ¾î´À µ¥ÀÌÅͺ£À̽º À¯Àú·Î Á¢¼ÓÇÏ´Â °ÍÀÌ Çã°¡µÇ´ÂÁö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. °°Àº map-name Àº ÇϳªÀÇ ¸Ê ¾È¿¡¼ ´Ù¸¥ À¯Àú ¸ÅÇÎÀ» ÁöÁ¤Çϱâ À§Çؼ ¹Ýº¹ÇØ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾ó¸¶³ª ¸¹Àº µ¥ÀÌÅͺ£À̽º À¯Àú°¡ ÁöÁ¤µÈ operating system À¯Àú¿Í ´ëÀÀµÇ´ÂÁö¿Í °ü·ÃµÈ Á¦ÇÑÀº ¾ø½À´Ï´Ù. ¹Ý´ëÀÇ °æ¿ìµµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù.
pg_ident.confÆÄÀÏÀº ¼³Ä¡ÇÒ ¶§¿Í ÁÖ¼¹ö ÇÁ·Î¼¼½º°¡SIGHUP ½ÅÈ£¸¦ ¹Þ¾ÒÀ» ¶§¿¡ ÀÐÈü´Ï´Ù. ½ÇÇà ÁßÀÎ ½Ã½ºÅÛÀ¸·Î ÆÄÀÏÀ» ÆíÁýÇßÀ» °æ¿ì, (pg_ctl reload³ª kill -HUP¸¦ »ç¿ëÇØ) ¼¹ö¿¡ ÆÄÀÏÀ» ´Ù½Ã Àо°í ½ÅÈ£¸¦ º¸³»Áö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
Example 20-1¿¡ ÀÖ´Â pg_hba.conf¿Í °°ÀÌ »ç¿ë°¡´ÉÇÑ pg_ident.confÆÄÀÏÀº Example 20-2À¸·Î ³ªÅ¸³ª°í ÀÖ½À´Ï´Ù. ÀÌ ¼³Á¤ÀÇ ¿¹Á¦´Â bryanh,ann ¶Ç´Ârobert¶ó°í ÇÏ´Â Unix À¯Àú¸íÀÌ¿ÜÀÇ °ÍÀ¸·Î 192.168 ³×Æ®¿öÅ© ¸Ó½Å¿¡ ·Î±×ÀÎÇÏ°ÔµÇ¸é ¾×¼¼½º°¡ Çã°¡µÇÁö ¾Ê½À´Ï´Ù. Unix À¯Àúrobert´Â PostgreSQLÀ¯Àúbob·Î¼ Á¢¼ÓÇÒ ¶§¸¸ Çã°¡µË´Ï´Ù. robert³ª ±× ÀÌ¿ÜÀÇ À̸§À¸·Î¼°¡ ¾Æ´Õ´Ï´Ù. ann´Âann·Î¼·Î ¹Û¿¡ Á¢¼Ó Çã°¡µÇÁö ¾Ê½À´Ï´Ù. À¯Àúbryanh´Â ÀÚ½ÅÀÎ bryanh³ª guest1·Îµµ Á¢¼ÓÀÌ Çã°¡µË´Ï´Ù.
ÀÌ ÀÎÁõ ¹æ½ÄÀº password¿Í ºñ½ÁÇÏÁö¸¸, ÀÎÁõ ¹æ½ÄÀ¸·Î LDAP¸¦ »ç¿ëÇÏ´Â Á¡ÀÌ ´Ù¸¨´Ï´Ù. LDAP´Â À¯ÀúÀÇ À̸§°ú ÆÐ½º¿öµåÀÇ °ËÁõ¿¡¸¸ »ç¿ëµË´Ï´Ù. ±×·¯¹Ç·Î LDAP¸¦ »ç¿ëÇØ ÀÎÁõÇϱâ Àü¿¡, À¯Àú´Â µ¥ÀÌÅͺ£À̽º¿¡ Á¸ÀçÇØ¾ß¸¸ ÇÕ´Ï´Ù. »ç¿ëµÇ´Â ¼¹ö¿Í ÆÄ¶ó¹ÌÅÍ´Â pg_hba.confÆÄÀÏ ³»ÀÇldapŰ¿öµåÀÇ µÚ¿¡ ÁöÁ¤µÇ¾î Áý´Ï´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍÀÇ ¼½ÄÀº ÀÌÇÏ¿¡ ³ªÅ¸³À´Ï´Ù.
ldap[
s
]://
servername
[:
port
]/
base dn
[;
prefix
[;
suffix
]]
ÄÞ¸¶´Â ldap ÄÄÆ÷³ÍÆ®¿¡ ´ëÇÑ º¹¼öÀÇ ¾ÆÀÌÅÛÀ» ÁöÁ¤ÇÒ ¶§¿¡ »ç¿ëµË´Ï´Ù. ±×·¯³ª ÀοëºÎÈ£°¡ ºÙÁö ¾ÊÀº ÄÞ¸¶´Â pg_hba.conf¿¡¼ ¾ÆÀÌÅÛÀÇ separator·Î¼ Ãë±ÞµÇ±â ¶§¹®¿¡, ÄÞ¸¶°¡ Á¸ÀçÇÏ´Â °ÍÀ» º¸Á¸Çϱâ À§Çؼ 2°ãÀοëºÎÈ£·Î ldapÀÇ URL¸¦ µÑ·¯½Î´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ÀÌÇÏ´Â ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
"ldap://ldap.example.net/dc=example,dc=net;EXAMPLE\"
ldap¸¦ ´ë½ÅÇØldaps¸¦ ÁöÁ¤Çϸé, Á¢¼Ó¿¡ ´ëÇØ TLS ¾ÏȣȰ¡ À¯È¿ÇÏ°Ô µË´Ï´Ù. ÀÌ ¾ÏȣȰ¡ PostgreSQL ¼¹ö¿Í LDAP ¼¹ö °£ÀÇ Á¢¼Ó¿¡¼¸¸ ÀÌ·ïÁø´Ù´Â °ÍÀ» ÁÖÀÇÇØ ÁÖ¼¼¿ä. ÀÌ·¯ÇÑ ¼³Á¤À¸·Î Ŭ¶óÀÌ¾ðÆ®¿Í PostgreSQL ¼¹ö °£ Åë½Å¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê½À´Ï´Ù. TLS ¾Ïȣȸ¦ »ç¿ëÇϱâ À§Çؼ´Â PostgreSQL¸¦ ±¸ÃàÇϱâ Àü¿¡ LDAP ¶óÀ̺귯¸®¸¦ ±¸ÃàÇÒ Çʿ䰡 ÀÖÀ» Áö ¸ð¸¨´Ï´Ù. Ç÷§ÆûÀÇ LDAP ¶óÀ̺귯¸®°¡ Áö¿øÇÏ´Â °æ¿ì¿¡¸¸, ¾ÏÈ£ÈµÈ LDAP¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â Á¡¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä.
Æ÷Æ®ÀÇ ÁöÁ¤ÀÌ ¾ø´Â °æ¿ì, LDAP ¶óÀ̺귯¸®¿¡ µðÆúÆ®·Î Æ÷Æ®°¡ ¼³Á¤µË´Ï´Ù.
¼¹ö´Â Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ¹ÞÀº À¯Àú¸íÀ» ÀÌ¿ëÇÏ¿© base dn ·Î¼ ÁöÁ¤µÈ À̸§À» bind(¼Ó¹Ú)ÇÕ´Ï´Ù. prefix ¿Í suffix °¡ ÁöÁ¤µÇ¾úÀ» °æ¿ì, ¹ÙÀεå Àü¿¡ À¯Àú¸íÀÇ ¾ÕµÚ·Î ºÎ¿©µË´Ï´Ù. ÀϹÝÀûÀ¸·Î prefix ÆÄ¶ó¹ÌÅÍ´Â cn= ³ª Active Directory ȯ°æÀÇ DOMAIN\ ÀÇ ÁöÁ¤¿¡ »ç¿ëµË´Ï´Ù.
ÀÌ ÀÎÁõ ¹æ½ÄÀº ÀÎÁõ ¸ÅÄ¿´ÏÁòÀ¸·Î¼ PAM(Pluggable Authentication Modules)¸¦ »ç¿ëÇÏ´Â °ÍÀ» Á¦¿ÜÇØ°í password¿Í À¯»çÇÏ°Ô ÀÛµ¿µË´Ï´Ù. µðÆúÆ®ÀÇ PAM ¼ºñ½º¸íÀº postgresqlÀÔ´Ï´Ù. pg_hba.confÆÄÀÏÀÇ pamŰ¿öµå À̸§À» ºÙ¿©¼ ¿É¼ÇÀ¸·Î µ¶ÀÚÀûÀÎ ¼ºñ½º¸íÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. PAM´Â È®ÀÎµÈ À¯Àú¸í°ú ÆÐ½º¿öµå¿¡¼¸¸ »ç¿ëµË´Ï´Ù. ±×·¯¹Ç·Î »ç¿ëÀÚ´Â PAMÀÌ ÀÎÁõÀ» À§ÇØ »ç¿ëµÇ¾îÁö±â Àü¿¡ µ¥ÀÌÅͺ£À̽º¿¡ Á¸ÀçÇØ¾ß¸¸ ÇÕ´Ï´Ù. PAM¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ »çÇ×Àº Linux-PAMÆäÀÌÁö¿Í Solaris PAM ÆäÀÌÁö¸¦ Àоî ÁÖ¼¼¿ä.