Lanthier schrieb:
Dear lists members,

I have a solaris 10 box acting as a Sun Ray server, v4.0.
I used likewise-open software to enable authentication against an
Active Directory 2003 server on this solaris box.

I was then able to login on my solaris box by ssh or directly on the
graphical console, both with local accounts and the AD2003 accounts.

But, on the Sun Ray Client, I was able to login only with local
accounts (ie. the ones in /etc/passwd).

I took a look on the error messages I got when I joined the AD2003
domain. Then, I added some lines in my /etc/pam.conf, some
"dtlogin-SunRay auth" and "xsreensaver auth" lines

I'm writing all this because :

1) It could inspire people that have problems to connect to Sun Rays with non 
local users

2) I would like a "pam expert" to verify and confirm the order of my
new lines. The new lines are the ones directly below the "Ajout par
Stephanie" lines.


It is hard to tell where the new entries need to go without seeing the spec/man-page etc. That said, the 'other' stack is what is used for graphical login (as you have no separate 'dtlogin' stack and the 'login' one is used for text login. So these are good examples to go by. Speculating about the meaning of the various parameters of the pam_lwidentity module, I would guess that in your configuration a few things (kiosk, NSCM) may not work as intended.

The logic used by Sun Ray setup is to place all Sun Ray specific entries (sunray_get_user.so, pam_sunray_amgh.so, pam_kiosk.so, pam_sunray.so) at the top of the PAM stack *before* the usual dtlogin/other stack. From my wild guess at the functions of the pam_lwidentity module, this appears to be the best approach here as well.

That would mean that you should have the following pam.conf entries for the relevant stacks:

This one is the 'template' the proposed stacks are built from:
#
# Default definitions for Authentication management
# Used when service name is not explicitly mentioned for authentication
#
other   auth requisite          pam_lwidentity.so               
set_default_repository
other   auth requisite          pam_authtok_get.so.1
other   auth sufficient         pam_lwidentity.so               try_first_pass
other   auth required           pam_dhkeys.so.1
other   auth required           pam_unix_cred.so.1
other   auth required           pam_unix_auth.so.1
#
# Default definition for Account management
# Used when service name is not explicitly mentioned for account management
#
other   account requisite       pam_roles.so.1
other   account required        pam_lwidentity.so       unknown_ok
other   account sufficient      pam_lwidentity.so
other   account required        pam_unix_account.so.1
#
# Default definition for Session management
# Used when service name is not explicitly mentioned for session management
#
other   session required        pam_unix_session.so.1
other   session sufficient      pam_lwidentity.so
#
# Default definition for  Password management
# Used when service name is not explicitly mentioned for password management
#
other   password required       pam_dhkeys.so.1
other   password requisite      pam_authtok_get.so.1
other   password sufficient     pam_lwidentity.so       try_first_pass  
use_authtok
other   password requisite      pam_authtok_check.so.1
other   password required       pam_authtok_store.so.1

In the dtlogin-SunRay stack I suggest to omit the password one, because here the 'other' one should do.

Otherwise the Sun Ray entries should come first as explained above:

# BEGIN: added to dtlogin-SunRay by SunRay Server Software -- dtlogin-SunRay
dtlogin-SunRay auth requisite /opt/SUNWut/lib/sunray_get_user.so.1 
property=username
dtlogin-SunRay auth required /opt/SUNWut/lib/pam_sunray_amgh.so.1
dtlogin-SunRay auth sufficient /opt/SUNWkio/lib/pam_kiosk.so log=user ignoreuser
dtlogin-SunRay auth requisite /opt/SUNWkio/lib/pam_kiosk.so log=user
dtlogin-SunRay auth sufficient /opt/SUNWut/lib/pam_sunray.so
dtlogin-SunRay auth requisite /opt/SUNWut/lib/sunray_get_user.so.1 prompt
dtlogin-SunRay auth required /opt/SUNWut/lib/pam_sunray_amgh.so.1 clearuser
dtlogin-SunRay auth requisite pam_lwidentity.so set_default_repository
dtlogin-SunRay auth requisite pam_authtok_get.so.1 dtlogin-SunRay auth sufficient pam_lwidentity.so try_first_pass dtlogin-SunRay auth required pam_dhkeys.so.1 dtlogin-SunRay auth required pam_unix_cred.so.1 dtlogin-SunRay auth required pam_unix_auth.so.1

The same applies to the account and session stacks:

dtlogin-SunRay account sufficient /opt/SUNWkio/lib/pam_kiosk.so log=user
dtlogin-SunRay account sufficient /opt/SUNWut/lib/pam_sunray.so
dtlogin-SunRay account requisite pam_roles.so.1 dtlogin-SunRay account required pam_lwidentity.so unknown_ok dtlogin-SunRay account sufficient pam_lwidentity.so dtlogin-SunRay account required pam_unix_account.so.1

dtlogin-SunRay session required /opt/SUNWkio/lib/pam_kiosk.so log=user
dtlogin-SunRay session required pam_unix_session.so.1 dtlogin-SunRay session sufficient pam_lwidentity.so

I'm not sure about the correct xscreensaver stack, but would again suggest:

# BEGIN: added to xscreensaver by SunRay Server Software -- xscreensaver
xscreensaver auth sufficient /opt/SUNWut/lib/pam_sunray.so syncondisplay
xscreensaver auth sufficient pam_lwidentity.so set_default_repository
xscreensaver auth requisite pam_authtok_get.so.1 xscreensaver auth sufficient pam_lwidentity.so try_first_pass xscreensaver auth required pam_dhkeys.so.1 xscreensaver auth required pam_unix_cred.so.1 xscreensaver auth required pam_unix_auth.so.1

And similarly for the dtsession-SunRay stack (which is also for a screen lock):

# BEGIN: added to dtsession-SunRay by SunRay Server Software -- dtsession-SunRay
dtsession-SunRay auth sufficient /opt/SUNWut/lib/pam_sunray.so syncondisplay
dtsession-SunRay auth requisite pam_authtok_get.so.1 dtsession-SunRay auth required pam_dhkeys.so.1 dtsession-SunRay auth required pam_unix_cred.so.1 dtsession-SunRay auth required pam_unix_auth.so.1

You seem to have the utnsclogin stack right, but again it may be best to omit the stacks that don't deviate from the 'other' stack.

# BEGIN: added to utnsclogin by SunRay Server Software -- utnsclogin
utnsclogin auth requisite /opt/SUNWut/lib/sunray_get_user.so.1 property=username
utnsclogin auth required /opt/SUNWut/lib/pam_sunray_amgh.so.1
utnsclogin auth requisite pam_lwidentity.so set_default_repository utnsclogin auth requisite pam_authtok_get.so.1 utnsclogin auth sufficient pam_lwidentity.so try_first_pass utnsclogin auth required pam_dhkeys.so.1 utnsclogin auth required pam_unix_cred.so.1 utnsclogin auth required pam_unix_auth.so.1

To be clear: this is little more than an educated guess. The most non-obvious part is the placement of the

  dtlogin-SunRay auth requisite pam_lwidentity.so set_default_repository

line in the 'auth' stack. If that line is required to be run for the subsequent modules (account, session) to work properly, then it may need to be moved to the top of the stack, as you did in the pam.conf you included. But if it needs a username, then it must not be placed before pam_sunray.so and pam_kiosk.so - in the worst case here could be a real incompatibility with NSCM.

Let us know how it works for you. We are interested in knowing how well SRSS works with such third-party authentication mechanisms.

Regards

- Jörg

_______________________________________________
SunRay-Users mailing list
[email protected]
http://www.filibeto.org/mailman/listinfo/sunray-users

Reply via email to