pdf viewer in asp net c# : Add photo to pdf online SDK control project winforms web page azure UWP postgresql-9.4-A459-part2982

Chapter 19. Client Authentication
superuser is only considered to be a member of a role if they are explicitly a member of the role,
directlyor indirectly, and not just by virtue of being a superuser. Multiple user names can be sup-
plied by separating them with commas. A separate file containing user names can be specified
by preceding the file name with
@
.
address
Specifies the client machine address(es) that this record matches. This field can contain either a
host name, an IP address range, or one of the special key words mentioned below.
AnIP address range is specifiedusing standard numeric notation for the range’s starting address,
then a slash (
/
)and a CIDR mask length. The mask length indicates the number of high-order
bits of the client IP address that must match. Bits to the right of this should be zero in the given
IP address. There mustnotbe any white spacebetween the IP address, the
/
,andtheCIDR mask
length.
Typical examples of an IPv4 address range specified this way are
172.20.143.89/32
for a
single host, or
172.20.143.0/24
for a small network, or
10.6.0.0/16
for a larger one. An
IPv6 address range might look like
::1/128
for a single host (in this case the IPv6 loopback
address) or
fe80::7a31:c1ff:0000:0000/96
for a small network.
0.0.0.0/0
represents
allIPv4addresses, and
::0/0
represents all IPv6 addresses. To specifya single host, use a mask
lengthof 32for IPv4 or 128 for IPv6. In a network address, do not omit trailing zeroes.
An entry given in IPv4 format will match only IPv4 connections, and an entry given in IPv6
format will match only IPv6 connections, even if the represented address is in the IPv4-in-IPv6
range. Note that entries in IPv6 format will be rejected if the system’s C library does not have
support for IPv6 addresses.
You can also write
all
to match any IP address,
samehost
to match any of the server’s own IP
addresses, or
samenet
to match any address in any subnet that the server is directly connected
to.
If a host name is specified (anything that is not an IP address range or a special key word is
treated as a host name), that name is compared with the result of a reverse name resolution of
the client’s IP address (e.g., reverse DNS lookup, if DNS is used). Host name comparisons are
case insensitive. If there is a match, then a forward name resolution (e.g., forward DNS lookup)
is performed on the host name to check whether any of the addresses it resolves to are equal
to the client’s IP address. If both directions match, then the entry is considered to match. (The
host name that is used in
pg_hba.conf
should be the one that address-to-name resolution of
the client’s IP address returns, otherwise the line won’t be matched. Some host name databases
allow associating an IP address with multiple host names, but the operating system will only
return one host name when asked to resolve an IP address.)
Ahost name specification that starts with a dot (
.
)matches a suffix of the actual host name. So
.example.com
would match
foo.example.com
(but not just
example.com
).
When host names are specified in
pg_hba.conf
,you should make sure that name resolution
is reasonably fast. It can be of advantage to set up a local name resolution cache such as
nscd
.
Also, you may wish to enable the configuration parameter
log_hostname
to see the client’s
host name insteadof the IP address in the log.
This field only applies to
host
,
hostssl
,and
hostnossl
records.
518
Add photo to pdf online - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
adding images to pdf files; add image to pdf acrobat reader
Add photo to pdf online - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
how to add image to pdf; how to add photo to pdf in preview
Chapter 19. Client Authentication
Users sometimes wonder why host names are handled in this seemingly com-
plicated way, with two name resolutions including a reverse lookup of the
client’s IP address. This complicates use of the feature in case the client’s re-
verse DNS entry is not set up or yields some undesirable host name. It is done
primarily for efficiency: this way, a connection attempt requires at most two
resolver lookups, one reverse and one forward. If there is a resolver problem
with some address, it becomes only that client’s problem. A hypothetical al-
ternative implementation that only did forward lookups would have to resolve
everyhostnamementionedin
pg_hba.conf
during everyconnectionattempt.
That could be quite slow if many names are listed. And if there is a resolver
problem with one of the host names, it becomes everyone’s problem.
Also, a reverse lookup is necessary to implement the suffix matching feature,
because the actual client host name needs to be known in order to match it
against the pattern.
Note that this behavior is consistent with other popular implementations of
host name-based access control, such as the Apache HTTP Server and TCP
Wrappers.
IP-address
IP-mask
These two fields can be used as an alternative to the
IP-address/mask-length
notation. In-
steadof specifying the mask length, the actual mask is specified ina separate column. For exam-
ple,
255.0.0.0
represents anIPv4 CIDR mask lengthof 8, and
255.255.255.255
represents
aCIDR mask length of 32.
These fields only apply to
host
,
hostssl
,and
hostnossl
records.
auth-method
Specifies the authentication method to use when a connection matches this record. The possible
choices are summarized here; details are in Section 19.3.
trust
Allow the connection unconditionally. This method allows anyone that can connect to the
PostgreSQL database server to login as any PostgreSQL user they wish, without the need
for a password or any other authentication. See Section 19.3.1 for details.
reject
Reject the connection unconditionally. This is useful for “filtering out” certain hosts from a
group, for example a
reject
line could block a specific host from connecting, while alater
line allows the remaining hosts ina specific network to connect.
md5
Requiretheclient to supply adouble-MD5-hashedpassword for authentication. SeeSection
19.3.2 for details.
password
Requiretheclienttosupplyanunencryptedpasswordfor authentication. Sincethepassword
is sent in clear text over the network, this should not be used on untrusted networks. See
Section 19.3.2 for details.
519
VB.NET Image: Mark Photo, Image & Document with Polygon Annotation
VB.NET Imaging - Polygon Annotation Control. This online tutorial page aims to What's more, if coupled with .NET PDF document imaging add-on, the VB
add image pdf acrobat; adding image to pdf form
VB.NET Image: Image Cropping SDK to Cut Out Image, Picture and
This online tutorial page will illustrate the image VB.NET image cropping method to crop picture / photo; size of created cropped image file, add antique effect
add jpg signature to pdf; add picture to pdf reader
Chapter 19. Client Authentication
gss
Use GSSAPI to authenticate the user. This is only available for TCP/IP connections. See
Section 19.3.3 for details.
sspi
Use SSPI to authenticate the user. This is only available on Windows. See Section 19.3.4
for details.
ident
Obtain the operating system user name of the client by contacting the ident server on the
client and check if it matches the requested database user name. Ident authentication can
only be used on TCP/IP connections. When specified for local connections, peer authenti-
cation will be used instead. See Section 19.3.5 for details.
peer
Obtain the client’s operating system user name from the operating system and check if it
matches the requested database user name. This is only available for local connections. See
Section 19.3.6 for details.
ldap
Authenticate using an LDAP server. See Section 19.3.7 for details.
radius
Authenticate using a RADIUS server. See Section 19.3.8 for details.
cert
Authenticate using SSL client certificates. See Section 19.3.9 for details.
pam
Authenticate using the Pluggable Authentication Modules (PAM) service provided by the
operating system. See Section 19.3.10 for details.
auth-options
After the
auth-method
field, there canbe field(s) of theform
name=value
that specify options
for theauthenticationmethod. Details aboutwhichoptions are availablefor which authentication
methods appear below.
Files includedby
@
constructs are read as lists of names, which can be separated by either whitespace
or commas. Comments are introduced by
#
,just as in
pg_hba.conf
,and nested
@
constructs are
allowed. Unless the file name following
@
is an absolute path, it is takento be relative to the directory
containing the referencing file.
Since the
pg_hba.conf
records are examined sequentially for each connection attempt, the order of
the records is significant. Typically, earlier records will have tight connection match parameters and
weaker authentication methods, while later records will have looser match parameters and stronger
authentication methods. For example, one might wish to use
trust
authentication for local TCP/IP
connections but require a password for remote TCP/IP connections. In this case a record specify-
ing
trust
authentication for connections from 127.0.0.1 would appear before a record specifying
password authentication for a wider range of allowed client IP addresses.
520
VB.NET Image: Image Scaling SDK to Scale Picture / Photo
To help you know more about this VB.NET image scaling control add-on, we scaling control SDK API, developer can only scale one image / picture / photo at a
add photo to pdf preview; adding an image to a pdf file
VB.NET Image: Image Resizer Control SDK to Resize Picture & Photo
VB.NET Image & Photo Resizing Overview. The practical this VB.NET image resizer control add-on, can powerful & profession imaging controls, PDF document, image
add multiple jpg to pdf; add photo to pdf in preview
Chapter 19. Client Authentication
The
pg_hba.conf
file is read on start-up and when the main server process receives a SIGHUP
signal. If you edit the file on an active system, you will need to signal the postmaster (using
pg_ctl
reload
or
kill -HUP
)to make it re-read the file.
Tip: To connect to a particular database, a user must not only pass the
pg_hba.conf
checks, but
must have the
CONNECT
privilege for the database. If you wish to restrict which users can connect
to which databases, it’s usually easier to control this by granting/revoking
CONNECT
privilege than
to put the rules in
pg_hba.conf
entries.
Some examples of
pg_hba.conf
entries are shown in Example 19-1. See the next section for details
on the different authentication methods.
Example 19-1. Example
pg_hba.conf
Entries
# Allow any user on the local system to connect to any database with
# any database user name using Unix-domain sockets (the default for local
# connections).
#
# TYPE
DATABASE
USER
ADDRESS
METHOD
local
all
all
trust
# The same using local loopback TCP/IP connections.
#
# TYPE
DATABASE
USER
ADDRESS
METHOD
host
all
all
127.0.0.1/32
trust
# The same as the previous line, but using a separate netmask column
#
# TYPE
DATABASE
USER
IP-ADDRESS
IP-MASK
METHOD
host
all
all
127.0.0.1
255.255.255.255
trust
# The same over IPv6.
#
# TYPE
DATABASE
USER
ADDRESS
METHOD
host
all
all
::1/128
trust
# The same using a host name (would typically cover both IPv4 and IPv6).
#
# TYPE
DATABASE
USER
ADDRESS
METHOD
host
all
all
localhost
trust
# Allow any user from any host with IP address 192.168.93.x to connect
# to database "postgres" as the same user name that ident reports for
# the connection (typically the operating system user name).
#
# TYPE
DATABASE
USER
ADDRESS
METHOD
host
postgres
all
192.168.93.0/24
ident
# Allow any user from host 192.168.12.10 to connect to database
# "postgres" if the user’s password is correctly supplied.
#
# TYPE
DATABASE
USER
ADDRESS
METHOD
host
postgres
all
192.168.12.10/32
md5
# Allow any user from hosts in the example.com domain to connect to
521
C# Image: How to Add Antique & Vintage Effect to Image, Photo
this C#.NET antique effect creating control add-on is widely used in modern photo editors, which powerful & profession imaging controls, PDF document, tiff
how to add a photo to a pdf document; how to add an image to a pdf in acrobat
VB.NET Image: How to Save Image & Print Image Using VB.NET
NET programmers save & print image / photo / picture from NET method and demo code to add image printing printing multi-page document files, like PDF and Word
add image to pdf file acrobat; acrobat add image to pdf
Chapter 19. Client Authentication
# any database if the user’s password is correctly supplied.
#
# TYPE
DATABASE
USER
ADDRESS
METHOD
host
all
all
.example.com
md5
# In the absence of preceding "host" lines, these two lines will
# reject all connections from 192.168.54.1 (since that entry will be
# matched first), but allow GSSAPI connections from anywhere else
# on the Internet.
The zero mask causes no bits of the host IP
# address to be considered, so it matches any host.
#
# TYPE
DATABASE
USER
ADDRESS
METHOD
host
all
all
192.168.54.1/32
reject
host
all
all
0.0.0.0/0
gss
# Allow users from 192.168.x.x hosts to connect to any database, if
# they pass the ident check.
If, for example, ident says the user is
# "bryanh" and he requests to connect as PostgreSQL user "guest1", the
# connection is allowed if there is an entry in pg_ident.conf for map
# "omicron" that says "bryanh" is allowed to connect as "guest1".
#
# TYPE
DATABASE
USER
ADDRESS
METHOD
host
all
all
192.168.0.0/16
ident map=omicron
# If these are the only three lines for local connections, they will
# allow local users to connect only to their own databases (databases
# with the same name as their database user name) except for administrators
# and members of role "support", who can connect to all databases.
The file
# $PGDATA/admins contains a list of names of administrators.
Passwords
# are required in all cases.
#
# TYPE
DATABASE
USER
ADDRESS
METHOD
local
sameuser
all
md5
local
all
@admins
md5
local
all
+support
md5
# The last two lines above can be combined into a single line:
local
all
@admins,+support
md5
# The database column can also use lists and file names:
local
db1,db2,@demodbs
all
md5
19.2. User Name Maps
When usingan externalauthenticationsystem likeIdentor GSSAPI, the nameof theoperatingsystem
user that initiated the connection might not be the same as the database user he needs to connect as.
In this case, a user name map can be applied to map the operating system user name to a database
user. To use user name mapping, specify
map
=
map-name
in the options field in
pg_hba.conf
.This
option is supported for all authentication methods that receive external user names. Since different
mappings might be neededfor different connections, thename of the map to be usedis specified in the
map-name
parameter in
pg_hba.conf
to indicate which map to use for each individual connection.
522
VB.NET Image: Tutorial for Flipping Image Using Our .NET Image SDK
version of .NET imaging SDK and add the following becomes a mirror reflection of the photo on the powerful & profession imaging controls, PDF document, tiff
how to add image to pdf file; add picture to pdf form
C# PDF remove image library: remove, delete images from PDF in C#.
Support removing vector image, graphic picture, digital photo, scanned signature, logo, etc. Remove Image from PDF Page Using C#. Add necessary references:
adding image to pdf; how to add jpg to pdf file
Chapter 19. Client Authentication
User name maps are defined in the ident map file, whichby default is named
pg_ident.conf
and is
stored in the cluster’s data directory. (It is possible to place the map file elsewhere, however; see the
ident_file configuration parameter.) The ident map file contains lines of the general form:
map-name system-username database-username
Comments and whitespace are handled in the same way as in
pg_hba.conf
.The
map-name
is an
arbitrary namethat willbeusedtorefer tothis mappingin
pg_hba.conf
.The other twofields specify
an operatingsystem user name and a matchingdatabase user name. The same
map-name
can be used
repeatedly to specify multiple user-mappings within a single map.
There is no restriction regarding how many database users a given operating system user can cor-
respond to, nor vice versa. Thus, entries in a map should be thought of as meaning “this operating
system user is allowed toconnect as this database user”, rather thanimplyingthat they are equivalent.
The connection will be allowed if there is any map entry that pairs the user name obtained from the
external authentication system with the database user name that the user has requested to connect as.
If the
system-username
field starts with a slash (
/
), the remainder of the fieldis treated as a regular
expression. (See Section 9.7.3.1 for details of PostgreSQL’s regular expression syntax.) The regular
expression caninclude a singlecapture, or parenthesizedsubexpression, which canthen be referenced
in the
database-username
field as
\1
(backslash-one). This allows the mapping of multiple user
names in a single line, whichis particularly useful for simple syntax substitutions. For example, these
entries
mymap
/^(.
*
)@mydomain\.com$
\1
mymap
/^(.
*
)@otherdomain\.com$
guest
will remove the domain part for users with system user names that end with
@mydomain.com
,and
allow any user whose system name ends with
@otherdomain.com
to log in as
guest
.
Tip: Keep in mind that by default, a regular expression can match just part of a string. It’s usually
wise to use
^
and
$
,as shown in the above example, to force the matchtobe to theentiresystem
user name.
The
pg_ident.conf
file is read on start-up and when the main server process receives a SIGHUP
signal. If you edit the file on an active system, you will need to signal the postmaster (using
pg_ctl
reload
or
kill -HUP
)to make it re-read the file.
A
pg_ident.conf
file thatcould be used in conjunction with the
pg_hba.conf
file in Example 19-
1is shown in Example 19-2. In this example, anyone logged in to a machine on the 192.168 network
that does not have the operating system user name
bryanh
,
ann
,or
robert
would not be granted
access. Unixuser
robert
wouldonly be allowedaccess when hetries to connect as PostgreSQL user
bob
,not as
robert
or anyone else.
ann
would only be allowed to connect as
ann
.User
bryanh
would be allowed to connect as either
bryanh
or as
guest1
.
Example 19-2. An Example
pg_ident.conf
File
# MAPNAME
SYSTEM-USERNAME
PG-USERNAME
omicron
bryanh
bryanh
omicron
ann
ann
# bob has user name robert on these machines
omicron
robert
bob
# bryanh can also connect as guest1
omicron
bryanh
guest1
523
Chapter 19. Client Authentication
19.3. Authentication Methods
The following subsections describe the authentication methods in more detail.
19.3.1. Trust Authentication
When
trust
authentication is specified, PostgreSQL assumes that anyone who can connect to the
server is authorized to access the database with whatever database user name they specify (even
superuser names). Of course, restrictions made in the
database
and
user
columns still apply. This
methodshould onlybe usedwhenthere is adequate operating-system-levelprotectionon connections
to the server.
trust
authentication is appropriate and very convenient for local connections on a single-user work-
station. It is usually not appropriate by itself on a multiuser machine. However, you might be able
to use
trust
even on a multiuser machine, if you restrict access to the server’s Unix-domain socket
file using file-system permissions. To do this, set the
unix_socket_permissions
(and possibly
unix_socket_group
)configuration parameters as described in Section 18.3. Or you could set the
unix_socket_directories
configurationparameter to place the socket file in a suitably restricted
directory.
Setting file-system permissions only helps for Unix-socket connections. Local TCP/IP connections
are not restricted by file-system permissions. Therefore, if you want to use file-system permissions
for local security, remove the
host ... 127.0.0.1 ...
line from
pg_hba.conf
,or change it to
anon-
trust
authentication method.
trust
authenticationis onlysuitablefor TCP/IP connections if youtrust everyuser oneverymachine
that is allowed to connect to the server by the
pg_hba.conf
lines that specify
trust
.It is seldom
reasonable to use
trust
for any TCP/IP connections other than those from localhost (127.0.0.1).
19.3.2. Password Authentication
The password-basedauthenticationmethods are
md5
and
password
.Thesemethods operate similarly
except for the way that the password is sent across the connection, namelyMD5-hashedandclear-text
respectively.
If you are at all concerned about password “sniffing” attacks then
md5
is preferred. Plain
password
should always be avoided if possible. However,
md5
cannot be used with the db_user_namespace
feature. If the connection is protected by SSL encryption then
password
can be used safely (though
SSL certificate authentication might be a better choice if one is depending on using SSL).
PostgreSQL database passwords are separate from operating system user passwords. The password
for each database user is stored in the
pg_authid
system catalog. Passwords can be managed with
theSQL commands CREATE USER and ALTER ROLE, e.g.,
CREATE USER foo WITH PASSWORD
’secret’
.If no password has been set up for a user, the stored password is null and password
authentication will always fail for that user.
19.3.3. GSSAPI Authentication
GSSAPI is an industry-standard protocolfor secure authenticationdefined in RFC 2743. PostgreSQL
supports GSSAPI with Kerberos authentication according to RFC 1964. GSSAPI provides automatic
authentication (single sign-on) for systems that support it. The authentication itself is secure, but the
data sent over the database connection will be sent unencrypted unless SSL is used.
524
Chapter 19. Client Authentication
GSSAPI support has to be enabled when PostgreSQL is built; see Chapter 15 for more information.
When
GSSAPI uses Kerberos, it uses a
standard
principal in
the
format
servicename
/
hostname
@
realm
.The PostgreSQL server will accept any principal that is included in
the keytab used by the server, but care needs to be taken to specify the correct principal details when
making the connection from the client using the
krbsrvname
connection parameter. (See also
Section 31.1.2.) The installation default can be changed from the default
postgres
at build time
using
./configure --with-krb-srvnam=whatever
. In most environments, this parameter
never needs to be changed. Some Kerberos implementations might require a different service name,
such as Microsoft Active Directory which requires the service name to be in upper case (
POSTGRES
).
hostname
is the fully qualified host name of the server machine. The service principal’s realm is the
preferred realm of the server machine.
Client principals must have their PostgreSQL database user name as their first component, for ex-
ample
pgusername@realm
.Alternatively, you can use a user name mapping to map from the first
component of the principal name to the database user name. By default, the realm of the client is not
checked by PostgreSQL. If youhave cross-realm authenticationenabled and needto verifythe realm,
use the
krb_realm
parameter, or enable
include_realm
and use user name mapping to check the
realm.
Make sure that your server keytab file is readable (and preferably only readable)
by the PostgreSQL server account. (See also Section 17.1.) The location of the key
file is specified by the krb_server_keyfile configuration parameter. The default is
/usr/local/pgsql/etc/krb5.keytab
(or whatever directory was specified as
sysconfdir
at
build time). For security reasons, it is recommended to use a separate keytab just for the PostgreSQL
server rather thanopening up permissions on the system keytab file.
The keytab file is generated by the Kerberos software; see the Kerberos documentation for details.
The following example is for MIT-compatible Kerberos 5 implementations:
kadmin% ank -randkey postgres/server.my.domain.org
kadmin% ktadd -k krb5.keytab postgres/server.my.domain.org
When connecting to the database make sure you have a ticket for a principal matching the requested
database user name. For example, for database user name
fred
, principal
fred@EXAMPLE.COM
would be able to connect. To also allow principal
fred/users.example.com@EXAMPLE.COM
,use
auser name map, as described in Section 19.2.
The following configuration options are supported for GSSAPI:
include_realm
If set to 1, the realm name from the authenticated user principal is included in the system user
name that’s passed through user name mapping (Section 19.2). This is the recommended con-
figuration as, otherwise, it is impossible to differentiate users with the same username who are
from different realms. The default for this parameter is 0 (meaning to not include the realm in
the system user name) but may change to 1 in a future version of PostgreSQL. Users can set it
explicitly to avoid any issues when upgrading.
map
Allows for mapping between system and database user names. See Section 19.2 for
details. For a GSSAPI/Kerberos principal, such as
username@EXAMPLE.COM
(or, less
commonly,
username/hostbased@EXAMPLE.COM
), the default user name used for
mapping is
username
(or
username/hostbased
, respectively), unless
include_realm
has been set to 1 (as recommended, see above), in which case
username@EXAMPLE.COM
525
Chapter 19. Client Authentication
(or
username/hostbased@EXAMPLE.COM
) is what is seen as the system username when
mapping.
krb_realm
Sets the realm to match user principal names against. If this parameter is set, only users of that
realm will be accepted. If it is not set, users of any realm can connect, subject to whatever user
name mapping is done.
19.3.4. SSPI Authentication
SSPI is a Windows technology for secure authentication with single sign-on. PostgreSQL will use
SSPI in
negotiate
mode, which will use Kerberos when possible and automatically fall back to
NTLM in other cases. SSPI authentication only works when both server and client are running Win-
dows, or, on non-Windows platforms, when GSSAPI is available.
When using Kerberos authentication, SSPI works the same way GSSAPI does; see Section 19.3.3 for
details.
The following configuration options are supported for SSPI:
include_realm
If set to 1, the realm name from the authenticated user principal is included in the system user
name that’s passed through user name mapping (Section 19.2). This is the recommended con-
figuration as, otherwise, it is impossible to differentiate users with the same username who are
from different realms. The default for this parameter is 0 (meaning to not include the realm in
the system user name) but may change to 1 in a future version of PostgreSQL. Users can set it
explicitly to avoid any issues when upgrading.
map
Allows for mapping between system and database user names. See Section 19.2 for details.
For a SSPI/Kerberos principal, such as
username@EXAMPLE.COM
(or, less commonly,
username/hostbased@EXAMPLE.COM
), the default user name used for mapping is
username
(or
username/hostbased
, respectively), unless
include_realm
has been
set to 1 (as recommended, see above), in which case
username@EXAMPLE.COM
(or
username/hostbased@EXAMPLE.COM
) is what is seen as the system username when
mapping.
krb_realm
Sets the realm to match user principal names against. If this parameter is set, only users of that
realm will be accepted. If it is not set, users of any realm can connect, subject to whatever user
name mapping is done.
19.3.5. Ident Authentication
The ident authentication method works by obtaining the client’s operating system user name from an
ident server and using it as the allowed database user name (with an optional user name mapping).
This is only supported on TCP/IP connections.
526
Chapter 19. Client Authentication
Note: When ident is specified for a local (non-TCP/IP) connection, peer authentication (see Sec-
tion 19.3.6) will be used instead.
The following configuration options are supported for ident:
map
Allows for mapping between system and database user names. See Section 19.2 for details.
The “Identification Protocol” is described in RFC 1413. Virtually every Unix-like operating system
ships with an ident server that listens on TCP port 113 by default. The basic functionality of an ident
server is to answer questions like “What user initiated the connection that goes out of your port
X
and connects to my port
Y
?”. Since PostgreSQL knows both
X
and
Y
when a physical connection is
established, it can interrogate the identserver onthehostof theconnectingclient andcan theoretically
determine the operating system user for any given connection.
The drawback of this procedure is that itdepends onthe integrity of the client: if the client machine is
untrusted or compromised, an attacker could run just about any program on port 113 and return any
user name he chooses. This authentication method is therefore only appropriate for closed networks
where each client machine is under tight control and where the database and system administrators
operate in close contact. In other words, you must trust the machine running the ident server. Heed
the warning:
The Identification Protocol isnot intended as an authorization or access control protocol.
—RFC 1413
Some ident servers have a nonstandard option that causes the returned user name to be encrypted,
using a key that only the originating machine’s administrator knows. This option must not be used
when using the ident server with PostgreSQL, since PostgreSQL does not have any way to decrypt
the returned string to determine the actual user name.
19.3.6. Peer Authentication
The peer authentication method works by obtaining the client’s operating system user name from
the kernel and using it as the allowed database user name (with optional user name mapping). This
method is only supported on local connections.
The following configuration options are supported for peer:
map
Allows for mapping between system and database user names. See Section 19.2 for details.
Peer authentication is onlyavailable onoperatingsystems providingthe
getpeereid()
function, the
SO_PEERCRED
socket parameter, or similar mechanisms. Currently that includes Linux, most flavors
of BSD including OS X, andSolaris.
527
Documents you may be interested
Documents you may be interested