Configurare il PAM su Linux utilizzando il servizio SSSD.
-
Verificare che il file
/etc/sssd/sssd.conf esista, si disponga dell'autorizzazione 600 e che sia di proprietà dell'utente root. Se il file non esiste, crearlo come segue ed eseguire chmod 600 /etc/sssd/sssd.conf.
/etc/sssd/sssd.conf
[sssd]
config_file_version = 2
services = nss, pam
### domains specify the look up order,
### which should always be LOCAL and then IDCS.
domains = LOCAL,IDCS
[nss]
#Backfill cache at 75%, do not cache bad lookups,
# no in-mem cache
entry_cache_nowait_percentage = 75
### 1 Hour caching for non existent user
entry_negative_timeout = 3600
[pam]
pam_id_timeout = 600
[domain/LOCAL]
# Prior to 1.15, must use older files provider
id_provider = proxy
proxy_lib_name = files
# Disable authentication, files provider
# always provides local access, enumerate files
auth_provider = none
access_provider = permit
enumerate = true
[domain/IDCS]
re_expression = (?P<domain>[^\\]*?)\\?(?P<name>[^\\]+$)
auth_provider = proxy
id_provider = proxy
proxy_lib_name = oracle_cloud
proxy_pam_target = sssd_proxy_oracle_cloud
enumerate = false
cache_credentials = true
# Default cache timeout 90 mins for user/group info entries,
#before it reaches to IDCS for new updates
entry_cache_timeout = 5400
Facoltativamente, è possibile configurare gli indirizzi di posta elettronica come nomi utente SSO. A tale scopo, aggiungere la riga in grassetto al file
/etc/sssd/sssd.conf per specificare l'espressione regolare.
...
[pam]
[domain/proxy_proxy]
re_expression = (?P<domain>[^\\]*?)\\?(?P<name>[^\\]+$)
auth_provider = proxy
id_provider = proxy
...
-
Verificare che il file
/etc/pam.d/sssd_proxy_oracle_cloud esista e che sia di proprietà dell'utente root. Se il file non esiste, crearlo come utente root e aggiungere quanto segue:
/etc/pam.d/sssd_proxy_oracle_cloud file
auth required pam_oracle_cloud.so
account required pam_oracle_cloud.so
password required pam_oracle_cloud.so
session required pam_oracle_cloud.so
-
Modificare
/etc/pam.d/sshd e aggiungere il modulo pam_oracle_cloud:
/etc/pam.d/sshd
auth sufficient pam_oracle_cloud.so
Nota
Aggiungere questo valore prima della riga auth include password-auth o auth substack password-auth*.
-
Modificare
/etc/ssh/sshd_config per configurare sshd per consentire l'uso dell'autenticazione a più fattori (MFA):
/etc/ssh/sshd_config
Cercare la proprietà ChallengeResponseAuthentication e impostarla su yes. Se la proprietà non si trova nel file di configurazione, aggiungerla.
-
Modificare
/etc/opc.conf per consentire al plugin di interagire con IAM:
/etc/opc.conf
#This is sample format of opc.conf file, please use the correct information to configure this file.
#Enter the Oracle Identity Cloud Service tenancy base url.
base_url = https://identity-cloud-service-instance-url
#There is no need to change value of scope.
scope = urn:opc:idm:__myscopes__
#Enter the location of the wallet.
wallet_location = /etc/opc-wallet
#Enter the log level, this is optional and the default is 0, which means no log. 0 - None, 1 - Error, 2 - Info, 3 - Debug.
log_level = 0
#Enter the log file path, this is optional and defaults to /var/log/opc/pam_nss.log
log_file_path = /var/log/opc/pam_nss.log
#Enter the value for proxy usage to connect to Oracle Identity Cloud Service.
#Set the value to 1 to use a proxy and 0 to not use a proxy.
use_proxy=0
#Enter the information below if you set: use_proxy=1
#Enter the proxy url
#proxy_url=http://proxy.example.com
#Enter the proxy port
#proxy_port=80#Enter the username to connect to the proxy url.
#proxy_username=username_example
#Enter the password of username to connect proxy url.
#proxy_pwd=pwd_example
-
Riavviare sssd e sshd:
-
Per OEL6 e OEL7:
authconfig --enablemkhomedir --enablepamaccess --update.
-
Per OEL8:
authselect select sssd with-mkhomedir with-pamaccess.
-
Esecuzione:
service sshd restart.
-
Esecuzione:
service sssd restart.