Configurez le PAM sur Linux à l'aide du service SSSD.
-
Vérifiez que le fichier
/etc/sssd/sssd.conf
existe, dispose du droit d'accès 600 et appartient à l'utilisateur root. Si le fichier n'existe pas, créez-le comme suit et exécutez 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
Vous pouvez éventuellement configurer les adresses électroniques en tant que noms utilisateur SSO. Pour ce faire, ajoutez la ligne en gras au fichier
/etc/sssd/sssd.conf
pour spécifier l'expression régulière.
...
[pam]
[domain/proxy_proxy]
re_expression = (?P<domain>[^\\]*?)\\?(?P<name>[^\\]+$)
auth_provider = proxy
id_provider = proxy
...
-
Vérifiez que le fichier
/etc/pam.d/sssd_proxy_oracle_cloud
existe et qu'il appartient à l'utilisateur root. Si le fichier n'existe pas, créez-le en tant qu'utilisateur root et ajoutez ce qui suit :
/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
-
Modifiez
/etc/pam.d/sshd
et ajoutez le module pam_oracle_cloud
:
/etc/pam.d/sshd
auth sufficient pam_oracle_cloud.so
Remarque
Ajoutez-la avant la ligne auth include password-auth
ou auth substack password-auth*
.
-
Modifiez
/etc/ssh/sshd_config
pour configurer sshd
afin de permettre l'utilisation de l'authentification à plusieurs facteurs :
/etc/ssh/sshd_config
Recherchez la propriété ChallengeResponseAuthentication
et définissez-la sur yes
. Si la propriété n'est pas présente dans le fichier de configuration, ajoutez-la.
-
Modifiez
/etc/opc.conf
pour permettre au module d'extension d'interagir avec 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
-
Redémarrez sssd et sshd :
-
Pour OEL6 et OEL7 :
authconfig --enablemkhomedir --enablepamaccess --update
.
-
Pour OEL8 :
authselect select sssd with-mkhomedir with-pamaccess
.
-
Exécutez :
service sshd restart
.
-
Exécutez :
service sssd restart
.