Identity Management와 함께 외부 Red Hat 유틸리티 사용
IdM에 서비스 및 Red Hat 제품 통합
초록
Red Hat 문서에 관한 피드백 제공 링크 복사링크가 클립보드에 복사되었습니다!
문서에 대한 피드백에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.
Jira를 통해 피드백 제출 (등록 필요)
- Jira 웹 사이트에 로그인합니다.
- 상단 탐색 모음에서 생성 을 클릭합니다.
- Summary (요약) 필드에 설명 제목을 입력합니다.
- Description (설명) 필드에 개선을 위한 제안을 입력합니다. 문서의 관련 부분에 대한 링크를 포함합니다.
- 대화 상자 하단에서 생성 을 클릭합니다.
1장. Red Hat 제품과 IdM 통합 링크 복사링크가 클립보드에 복사되었습니다!
IdM과 통합된 다른 Red Hat 제품의 설명서를 찾습니다. IdM 사용자가 서비스에 액세스할 수 있도록 이러한 제품을 구성할 수 있습니다.
2장. 외부 ID 공급자를 사용하여 IdM 인증 링크 복사링크가 클립보드에 복사되었습니다!
OAuth 2.0 장치 권한 부여 흐름을 지원하는 외부 ID 공급자(IdP)와 사용자를 연결할 수 있습니다. 이러한 사용자가 RHEL 9.1 이상에서 사용할 수 있는 SSSD(System Security Services Daemon) 버전으로 인증하는 경우 외부 IdP에서 인증 및 권한 부여를 수행한 후 Kerberos 티켓을 사용하여 RHEL IdM(Identity Management) Single Sign-On 기능을 제공합니다.
주요 기능은 다음과 같습니다.
-
ipa idp-*명령을 사용하여 외부 IdP에 대한 참조 추가, 수정 및 삭제. -
ipa user-mod --user-auth-type=idp명령을 사용하여 사용자에 대해 IdP 인증을 활성화합니다.
2.1. IdM을 외부 IdP에 연결할 때의 이점 링크 복사링크가 클립보드에 복사되었습니다!
관리자는 클라우드 서비스 공급자와 같은 외부 ID 소스에 저장된 사용자가 IdM(Identity Management) 환경에 연결된 RHEL 시스템에 액세스할 수 있도록 허용할 수 있습니다. 이를 위해 이러한 사용자를 위해 Kerberos 티켓을 발행하는 인증 및 권한 부여 프로세스를 외부 엔티티에 위임할 수 있습니다.
이 기능을 사용하여 IdM의 기능을 확장하고 외부 ID 공급자(IdP)에 저장된 사용자가 IdM에서 관리하는 Linux 시스템에 액세스할 수 있도록 허용할 수 있습니다.
2.2. IdM이 외부 IdP를 통해 로그인을 통합하는 방법 링크 복사링크가 클립보드에 복사되었습니다!
SSSD 2.7.0에는 idp Kerberos 사전 인증 방법을 구현하는 sssd-idp 패키지가 포함되어 있습니다. 이 인증 방법은 OAuth 2.0 장치 권한 부여 흐름을 따라 권한 부여 결정을 외부 IdP에 위임합니다.
-
IdM 클라이언트 사용자는 예를 들어 명령줄에서
kinit유틸리티를 사용하여 TGT(Kerberos ticket)를 검색하여 OAuth 2.0 장치 권한 부여 부여 흐름을 시작합니다. - 특수 코드 및 웹 사이트 링크는 권한 부여 서버에서 IdM KMS(Key Distribution Center) 백엔드로 전송됩니다.
- IdM 클라이언트는 링크와 코드를 사용자에게 표시합니다. 이 예에서 IdM 클라이언트는 명령줄에 링크 및 코드를 출력합니다.
사용자는 다른 호스트, 휴대폰 등에 있을 수 있는 브라우저에서 웹 사이트 링크를 엽니다.
- 사용자가 특수 코드를 입력합니다.
- 필요한 경우 사용자는 OAuth 2.0 기반 IdP에 로그인합니다.
- 사용자에게 정보에 액세스할 수 있도록 클라이언트에 권한을 부여하라는 메시지가 표시됩니다.
- 사용자는 원래 장치 프롬프트에서 액세스를 확인합니다. 이 예제에서 사용자는 명령줄에서 Enter 키를 누릅니다.
- IdM KDC 백엔드는 OAuth 2.0 인증 서버를 폴링하여 사용자 정보에 액세스합니다.
지원되는 기능:
-
PAM(Pluggable Authentication Module) 라이브러리를 호출할 수 있는
키보드-대화형인증 방법이 활성화된 SSH(Secure Shell)를 통해 원격으로 로그인하십시오. -
로그인 서비스를 통해 콘솔로 로컬
로그인. -
kinit유틸리티를 사용하여 Kerberos TGT 검색.
현재 지원되지 않는 기능:
- IdM WebUI에 직접 로그인 IdM WebUI에 로그인하려면 먼저 Kerberos 티켓을 받아야 합니다.
- Cockpit WebUI에 직접 로그인. Cockpit WebUI에 로그인하려면 먼저 Kerberos 티켓을 받아야 합니다.
2.3. 외부 ID 공급자에 대한 참조 생성 링크 복사링크가 클립보드에 복사되었습니다!
외부 ID 공급자(IdP)를 IdM(Identity Management) 환경에 연결하려면 IdM에서 IdP 참조를 생성합니다. Keycloak 템플릿을 기반으로 IdP에 my-keycloak-idp 라는 참조를 생성하려면 이 절차를 완료합니다. 자세한 참조 템플릿은 IdM의 다른 외부 IdP에 대한 참조 예제 를 참조하십시오.
사전 요구 사항
- 외부 IdP에 OAuth 애플리케이션으로 IdM을 등록하고 클라이언트 ID를 가져왔습니다.
- IdM 관리자 계정으로 인증할 수 있습니다.
- IdM 서버는 RHEL 9.1 이상을 사용하고 있습니다.
- IdM 서버는 SSSD 2.7.0 이상을 사용하고 있습니다.
절차
IdM 서버에서 IdM 관리자로 인증합니다.
[root@server ~]# kinit adminKeycloak 템플릿을 기반으로 IdP에
my-keycloak-idp라는 참조를 생성합니다. 여기서--base-url옵션은server-name.$DOMAIN:$PORT/prefix형식으로 Keycloak 서버에 대한 URL을 지정합니다.[root@server ~]# ipa idp-add my-keycloak-idp \ --provider keycloak --organization main \ --base-url keycloak.idm.example.com:8443/auth \ --client-id id13778 ------------------------------------------------ Added Identity Provider reference "my-keycloak-idp" ------------------------------------------------ Identity Provider reference name: my-keycloak-idp Authorization URI: https://keycloak.idm.example.com:8443/auth/realms/main/protocol/openid-connect/auth Device authorization URI: https://keycloak.idm.example.com:8443/auth/realms/main/protocol/openid-connect/auth/device Token URI: https://keycloak.idm.example.com:8443/auth/realms/main/protocol/openid-connect/token User info URI: https://keycloak.idm.example.com:8443/auth/realms/main/protocol/openid-connect/userinfo Client identifier: ipa_oidc_client Scope: openid email External IdP user identifier attribute: email
검증
ipa idp-show명령의 출력에 생성한 IdP 참조가 표시되는지 확인합니다.[root@server ~]# ipa idp-show my-keycloak-idp
2.4. IdM의 다른 외부 IdP에 대한 참조 예 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에는 IdM에서 다른 IdP에 대한 참조를 생성하기 위한 ipa idp-add 명령의 예제가 나열되어 있습니다.
| ID 공급자 | 중요한 옵션 | 명령 예 |
|---|---|---|
|
Microsoft Identity Platform, |
|
|
| |
|
|
| GitHub |
|
|
|
Keycloak, |
|
참고
Keycloak 17 이상의 Quarkus 버전은 URI의 |
| Okta |
|
|
2.5. IdM의 외부 ID 공급자를 관리하기 위한 ipa idp-* 명령의 옵션 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 다른 IdP 템플릿을 기반으로 외부 IdP에 대한 참조를 구성하는 방법을 보여줍니다. 다음 옵션을 사용하여 설정을 지정합니다.
--provider- 알려진 ID 공급자 중 하나에 대해 사전 정의된 템플릿입니다.
--client-id- 애플리케이션 등록 중에 IdP에서 발행한 OAuth 2.0 클라이언트 식별자입니다. 애플리케이션 등록 절차는 각 IdP마다 고유하므로 자세한 내용은 설명서를 참조하십시오. 외부 IdP가 Red Hat Single Sign-On(SSO) 인 경우 OpenID Connect 클라이언트 생성을 참조하십시오.
--base-url- Keycloak 및 Okta에 필요한 IdP 템플릿의 기본 URL입니다.
--organization- Microsoft Azure에 필요한 IdP의 도메인 또는 조직 ID입니다.
--secret선택 사항: 기밀 OAuth 2.0 클라이언트의 시크릿이 필요하도록 외부 IdP를 구성한 경우 이 옵션을 사용합니다. IdP 참조를 생성할 때 이 옵션을 사용하는 경우 대화식으로 시크릿을 입력하라는 메시지가 표시됩니다. 클라이언트 시크릿을 암호로 보호합니다.
참고RHEL 9.1의 SSSD는 클라이언트 시크릿을 사용하지 않는 기밀인 OAuth 2.0 클라이언트만 지원합니다. 기밀 클라이언트의 클라이언트 시크릿이 필요한 외부 IdP를 사용하려면 RHEL 9.2 이상에서 SSSD를 사용해야 합니다.
2.6. 외부 IdP에 대한 참조 관리 링크 복사링크가 클립보드에 복사되었습니다!
외부 ID 공급자(IdP)에 대한 참조를 생성한 후 해당 참조를 찾고, 표시, 수정, 삭제할 수 있습니다. 이 예제에서는 keycloak-server1 이라는 외부 IdP에 대한 참조를 관리하는 방법을 보여줍니다.
사전 요구 사항
- IdM 관리자 계정으로 인증할 수 있습니다.
- IdM 서버는 RHEL 9.1 이상을 사용하고 있습니다.
- IdM 서버는 SSSD 2.7.0 이상을 사용하고 있습니다.
- IdM에 외부 IdP에 대한 참조가 생성되어 있습니다. 외부 ID 공급자에 대한 참조 생성을 참조하십시오.
절차
IdM 서버에서 IdM 관리자로 인증합니다.
[root@server ~]# kinit adminIdP 참조를 관리합니다.
항목에 string
keycloak이 포함된 IdP 참조를 찾으려면 다음을 수행합니다.[root@server ~]# ipa idp-find keycloakmy-keycloak-idp라는 IdP 참조를 표시하려면 다음을 수행합니다.[root@server ~]# ipa idp-show my-keycloak-idpIdP 참조를 수정하려면
ipa idp-mod명령을 사용합니다. 예를 들어my-keycloak-idp라는 IdP 참조의 시크릿을 변경하려면 시크릿을 입력하라는 메시지를 표시하도록--secret옵션을 지정합니다.[root@server ~]# ipa idp-mod my-keycloak-idp --secretmy-keycloak-idp라는 IdP 참조를 삭제하려면 다음을 수행합니다.[root@server ~]# ipa idp-del my-keycloak-idp
2.7. IdM 사용자가 외부 IdP를 통해 인증할 수 있도록 활성화 링크 복사링크가 클립보드에 복사되었습니다!
IdM 사용자가 외부 ID 공급자(IdP)를 통해 인증할 수 있도록 하려면 이전에 생성한 외부 IdP 참조를 사용자 계정과 연결합니다. 이 예제에서는 외부 IdP 참조 keycloak-server1 을 사용자 idm-user-with-external-idp 와 연결합니다.
사전 요구 사항
- IdM 클라이언트 및 IdM 서버는 RHEL 9.1 이상을 사용하고 있습니다.
- IdM 클라이언트 및 IdM 서버는 SSSD 2.7.0 이상을 사용하고 있습니다.
- IdM에 외부 IdP에 대한 참조가 생성되어 있습니다. 외부 ID 공급자에 대한 참조 생성을 참조하십시오.
절차
IdM 사용자 항목을 수정하여 IdP 참조를 사용자 계정과 연결합니다.
[root@server ~]# ipa user-mod idm-user-with-external-idp \ --idp my-keycloak-idp \ --idp-user-id idm-user-with-external-idp@idm.example.com \ --user-auth-type=idp --------------------------------- Modified user "idm-user-with-external-idp" --------------------------------- User login: idm-user-with-external-idp First name: Test Last name: User1 Home directory: /home/idm-user-with-external-idp Login shell: /bin/sh Principal name: idm-user-with-external-idp@idm.example.com Principal alias: idm-user-with-external-idp@idm.example.com Email address: idm-user-with-external-idp@idm.example.com UID: 35000003 GID: 35000003 User authentication types: idp External IdP configuration: keycloak External IdP user identifier: idm-user-with-external-idp@idm.example.com Account disabled: False Password: False Member of groups: ipausers Kerberos keys available: False
검증
해당 사용자의
ipa user-show명령의 출력이 IdP에 대한 참조를 표시하는지 확인합니다.[root@server ~]# ipa user-show idm-user-with-external-idp User login: idm-user-with-external-idp First name: Test Last name: User1 Home directory: /home/idm-user-with-external-idp Login shell: /bin/sh Principal name: idm-user-with-external-idp@idm.example.com Principal alias: idm-user-with-external-idp@idm.example.com Email address: idm-user-with-external-idp@idm.example.com ID: 35000003 GID: 35000003 User authentication types: idp External IdP configuration: keycloak External IdP user identifier: idm-user-with-external-idp@idm.example.com Account disabled: False Password: False Member of groups: ipausers Kerberos keys available: False
2.8. IdM 티켓 수신 티켓을 외부 IdP 사용자로 검색 링크 복사링크가 클립보드에 복사되었습니다!
IdM(Identity Management) 사용자에 대한 인증을 외부 ID 공급자(IdP)에 위임한 경우 IdM 사용자는 외부 IdP에 인증하여 Kerberos 티켓(TGT)을 요청할 수 있습니다.
다음 작업을 수행하려면 이 절차를 완료합니다.
- 익명 Kerberos 티켓을 로컬로 검색하고 저장합니다.
-
kinit를-T옵션과 함께 사용하여 idm-user-with-external-idp 사용자에게 FAST(Secure tunneling) 채널을 통해 유연한 인증을 활성화하여 Kerberos 클라이언트와 KDC(Kerberos Distribution Center) 간에 보안 연결을 제공하도록 TGT를 요청합니다.
사전 요구 사항
- IdM 클라이언트 및 IdM 서버는 RHEL 9.1 이상을 사용합니다.
- IdM 클라이언트 및 IdM 서버는 SSSD 2.7.0 이상을 사용합니다.
- IdM에 외부 IdP에 대한 참조가 생성되어 있습니다. 외부 ID 공급자에 대한 참조 생성을 참조하십시오.
- 사용자 계정과 외부 IdP 참조가 연결되어 있습니다. 외부 IdP를 통해 인증하기 위해 IdM 사용자 활성화를 참조하십시오.
- 처음에 로그인한 사용자는 로컬 파일 시스템의 디렉터리에 대한 쓰기 권한이 있습니다.
절차
익명 PKINIT를 사용하여 Kerberos 티켓을 얻고
./fast.ccache라는 파일에 저장합니다.$ kinit -n -c ./fast.ccache선택 사항: 검색된 티켓을 확인합니다.
$ klist -c fast.ccache Ticket cache: FILE:fast.ccache Default principal: WELLKNOWN/ANONYMOUS@WELLKNOWN:ANONYMOUS Valid starting Expires Service principal 03/03/2024 13:36:37 03/04/2024 13:14:28 krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM-T옵션을 사용하여 IdM 사용자로 인증을 시작하여 gRPCST 통신 채널을 활성화합니다.[root@client ~]# kinit -T ./fast.ccache idm-user-with-external-idp Authenticate at https://oauth2.idp.com:8443/auth/realms/master/device?user_code=YHMQ-XKTL and press ENTER.:- 브라우저에서 명령 출력에 제공된 웹 사이트에서 사용자로 인증합니다.
- 명령줄에서 Enter 키를 눌러 인증 프로세스를 완료합니다.
검증
Kerberos 티켓 정보를 표시하고
config: pa_type에 외부 IdP를 사용한 사전 인증을 위한152줄이 표시되는지 확인합니다.[root@client ~]# klist -C Ticket cache: KCM:0:58420 Default principal: idm-user-with-external-idp@IDM.EXAMPLE.COM Valid starting Expires Service principal 05/09/22 07:48:23 05/10/22 07:03:07 krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM config: fast_avail(krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM) = yes 08/17/2022 20:22:45 08/18/2022 20:22:43 krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM config: pa_type(krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM) = 152pa_type = 152는 외부 IdP 인증을 나타냅니다.
2.9. SSH를 통해 외부 IdP 사용자로 IdM 클라이언트에 로그인 링크 복사링크가 클립보드에 복사되었습니다!
SSH를 통해 외부 ID 공급자(IdP) 사용자로 IdM 클라이언트에 로그인하려면 명령행에서 로그인 프로세스를 시작합니다. 메시지가 표시되면 IdP와 연결된 웹 사이트에서 인증 프로세스를 수행하고 IdM(Identity Management) 클라이언트에서 프로세스를 완료합니다.
사전 요구 사항
- IdM 클라이언트 및 IdM 서버는 RHEL 9.1 이상을 사용하고 있습니다.
- IdM 클라이언트 및 IdM 서버는 SSSD 2.7.0 이상을 사용하고 있습니다.
- IdM에 외부 IdP에 대한 참조가 생성되어 있습니다. 외부 ID 공급자에 대한 참조 생성을 참조하십시오.
- 사용자 계정과 외부 IdP 참조가 연결되어 있습니다. 외부 IdP를 통해 인증하기 위해 IdM 사용자 활성화를 참조하십시오.
절차
SSH를 통해 IdM 클라이언트에 로그인합니다.
[user@client ~]$ ssh idm-user-with-external-idp@client.idm.example.com (idm-user-with-external-idp@client.idm.example.com) Authenticate at https://oauth2.idp.com:8443/auth/realms/main/device?user_code=XYFL-ROYR and press ENTER.- 브라우저에서 명령 출력에 제공된 웹 사이트에서 사용자로 인증합니다.
- 명령줄에서 Enter 키를 눌러 인증 프로세스를 완료합니다.
검증
Kerberos 티켓 정보를 표시하고
config: pa_type에 외부 IdP를 사용한 사전 인증을 위한152줄이 표시되는지 확인합니다.[idm-user-with-external-idp@client ~]$ klist -C Ticket cache: KCM:0:58420 Default principal: idm-user-with-external-idp@IDM.EXAMPLE.COM Valid starting Expires Service principal 05/09/22 07:48:23 05/10/22 07:03:07 krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM config: fast_avail(krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM) = yes 08/17/2022 20:22:45 08/18/2022 20:22:43 krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM config: pa_type(krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM) = 152
2.10. ipa idp-* 명령의 --provider 옵션 링크 복사링크가 클립보드에 복사되었습니다!
다음 ID 공급자(IdP)는 OAuth 2.0 장치 권한 부여 흐름을 지원합니다.
- Azure AD를 포함한 Microsoft Identity Platform
- GitHub
- Keycloak (Red Hat Single Sign-On (SSO))
- Okta
ipa idp-add 명령을 사용하여 이러한 외부 IdP 중 하나에 대한 참조를 생성하는 경우 아래에 설명된 대로 추가 옵션으로 확장되는 --provider 옵션을 사용하여 IdP 유형을 지정할 수 있습니다.
--provider=microsoftMicrosoft Azure IdP는 Azure 테넌트 ID를 기반으로 parametrization을 사용할 수 있으며
ipa idp-add명령에--organization옵션으로 지정할 수 있습니다. live.com IdP에 대한 지원이 필요한 경우--organization common을 지정합니다.--provider=microsoft를 선택하면 다음 옵션을 사용하도록 확장됩니다.--organization옵션의 값은 표의${ipaidporg}문자열을 대체합니다.Expand 옵션 현재의 --auth-uri=URIhttps://login.microsoftonline.com/${ipaidporg}/oauth2/v2.0/authorize--dev-auth-uri=URIhttps://login.microsoftonline.com/${ipaidporg}/oauth2/v2.0/devicecode--token-uri=URIhttps://login.microsoftonline.com/${ipaidporg}/oauth2/v2.0/token--userinfo-uri=URIhttps://graph.microsoft.com/oidc/userinfo--keys-uri=URIhttps://login.microsoftonline.com/common/discovery/v2.0/keys--scope=STROpenID 이메일--idp-user-id=STRemail--provider=google--provider=google를 선택하면 다음과 같은 옵션을 사용합니다.Expand 옵션 현재의 --auth-uri=URIhttps://accounts.google.com/o/oauth2/auth--dev-auth-uri=URIhttps://oauth2.googleapis.com/device/code--token-uri=URIhttps://oauth2.googleapis.com/token--userinfo-uri=URIhttps://openidconnect.googleapis.com/v1/userinfo--keys-uri=URIhttps://www.googleapis.com/oauth2/v3/certs--scope=STROpenID 이메일--idp-user-id=STRemail--provider=github--provider=github를 선택하면 다음과 같은 옵션을 사용합니다.Expand 옵션 현재의 --auth-uri=URIhttps://github.com/login/oauth/authorize--dev-auth-uri=URIhttps://github.com/login/device/code--token-uri=URIhttps://github.com/login/oauth/access_token--userinfo-uri=URIhttps://openidconnect.googleapis.com/v1/userinfo--keys-uri=URIhttps://api.github.com/user--scope=STRuser--idp-user-id=STRlogin--provider=keycloakKeycloak을 사용하면 여러 영역 또는 조직을 정의할 수 있습니다. 일반적으로 사용자 정의 배포의 일부이므로 기본 URL과 영역 ID가 모두 필요하며
ipa idp-add명령에--base-url및--organization옵션을 사용하여 지정할 수 있습니다.[root@client ~]# ipa idp-add MySSO --provider keycloak \ --org main --base-url keycloak.domain.com:8443/auth \ --client-id <your-client-id>--provider=keycloak을 선택하면 다음 옵션을 사용합니다.--base-url옵션에 지정하는 값은 표의${ipaidpbaseurl}문자열을 교체하고--organization 'option에 지정된 값은 '${ipaidporg} 문자열을 대체합니다.Expand 옵션 현재의 --auth-uri=URIhttps://${ipaidpbaseurl}/realms/${ipaidporg}/protocol/openid-connect/auth--dev-auth-uri=URIhttps://${ipaidpbaseurl}/realms/${ipaidporg}/protocol/openid-connect/auth/device--token-uri=URIhttps://${ipaidpbaseurl}/realms/${ipaidporg}/protocol/openid-connect/token--userinfo-uri=URIhttps://${ipaidpbaseurl}/realms/${ipaidporg}/protocol/openid-connect/userinfo--scope=STROpenID 이메일--idp-user-id=STRemail--provider=oktaOkta에서 새 조직을 등록하면 새 기본 URL이 연결됩니다.
ipa idp-add명령에--base-url옵션을 사용하여 이 기본 URL을 지정할 수 있습니다.[root@client ~]# ipa idp-add MyOkta --provider okta --base-url dev-12345.okta.com --client-id <your-client-id>--provider=okta를 선택하면 다음 옵션을 사용하도록 확장됩니다.--base-url옵션에 지정하는 값은 표의${ipaidpbaseurl}문자열을 대체합니다.Expand 옵션 현재의 --auth-uri=URIhttps://${ipaidpbaseurl}/oauth2/v1/authorize--dev-auth-uri=URIhttps://${ipaidpbaseurl}/oauth2/v1/device/authorize--token-uri=URIhttps://${ipaidpbaseurl}/oauth2/v1/token--userinfo-uri=URIhttps://${ipaidpbaseurl}/oauth2/v1/userinfo--scope=STROpenID 이메일--idp-user-id=STRemail
3장. IdM 도메인 멤버에서 Samba 설정 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat IdM(Identity Management) 도메인에 연결된 호스트에서 Samba를 설정할 수 있습니다. IdM의 사용자 및 또한 신뢰할 수 있는 AD(Active Directory) 도메인에서 사용 가능한 경우 Samba에서 제공하는 공유 및 프린터 서비스에 액세스할 수 있습니다.
IdM 도메인 멤버에서 Samba를 사용하는 것은 지원되지 않는 기술 프리뷰 기능이며 특정 제한 사항이 포함되어 있습니다. 예를 들어, IdM 신뢰 컨트롤러는 Active Directory 글로벌 카탈로그 서비스를 지원하지 않으며 DMCE/원격 프로시저 호출(DCE/RPC) 프로토콜을 사용하여 IdM 그룹 해결을 지원하지 않습니다. 결과적으로 AD 사용자는 다른 IdM 클라이언트에 로그인할 때 IdM 클라이언트에서 호스팅되는 Samba 공유 및 프린터에만 액세스할 수 있습니다. Windows 시스템에 로그인한 AD 사용자는 IdM 도메인 멤버에서 호스팅되는 Samba 공유에 액세스할 수 없습니다.
IdM 도메인 구성원에 Samba를 배포하는 고객은 Red Hat에 피드백을 제공하는 것이 좋습니다.
AD 도메인의 사용자가 Samba에서 제공하는 공유 및 프린터 서비스에 액세스해야 하는 경우 AES 암호화 유형이 AD인지 확인합니다. 자세한 내용은 GPO를 사용하여 Active Directory에서 AES 암호화 유형 활성화를 참조하십시오.
사전 요구 사항
- 호스트는 IdM 도메인에 클라이언트로 결합됩니다.
- IdM 서버와 클라이언트 모두 RHEL 9.0 이상에서 실행해야 합니다.
3.1. 도메인 멤버에 Samba를 설치하기 위해 IdM 도메인 준비 링크 복사링크가 클립보드에 복사되었습니다!
IdM 클라이언트에 Samba를 설정하려면 IdM 서버에서 ipa-adtrust-install 유틸리티를 사용하여 IdM 도메인을 준비해야 합니다.
ipa-adtrust-install 명령을 실행하는 시스템은 자동으로 AD 신뢰 컨트롤러가 됩니다. 그러나 IdM 서버에서 ipa-adtrust-install 을 한 번만 실행해야 합니다.
사전 요구 사항
- IdM 서버가 설치되어 있어야 합니다.
- 패키지를 설치하고 IdM 서비스를 다시 시작할 수 있는 root 권한이 있습니다.
절차
필수 패키지를 설치합니다.
[root@ipaserver ~]# dnf install ipa-server-trust-ad samba-clientIdM 관리자로 인증합니다.
[root@ipaserver ~]# kinit adminipa-adtrust-install유틸리티를 실행합니다.[root@ipaserver ~]# ipa-adtrust-installIdM이 통합된 DNS 서버와 함께 설치된 경우 DNS 서비스 레코드가 자동으로 생성됩니다.
통합된 DNS 서버 없이 IdM을 설치한 경우,
ipa-adtrust-install은 DNS에 수동으로 추가해야 하는 서비스 레코드 목록을 인쇄합니다.스크립트에서
/etc/samba/smb.conf가 이미 존재하고 다시 작성됨을 묻는 메시지를 표시합니다.WARNING: The smb.conf already exists. Running ipa-adtrust-install will break your existing Samba configuration. Do you wish to continue? [no]: yes스크립트에서 이전 Linux 클라이언트가 신뢰할 수 있는 사용자로 작업할 수 있는 호환성 플러그인인
slapi-nis플러그인을 구성하도록 프롬프트를 표시합니다.Do you want to enable support for trusted domains in Schema Compatibility plugin? This will allow clients older than SSSD 1.9 and non-Linux clients to work with trusted users. Enable trusted domains support in slapi-nis? [no]: yesSID 생성 작업을 실행하여 기존 사용자의 SID를 생성하라는 메시지가 표시됩니다.
Do you want to run the ipa-sidgen task? [no]: yes이는 리소스 집약적인 작업이므로 사용자가 많은 경우 한 번에 이 작업을 실행할 수 있습니다.
선택 사항: 기본적으로 Dynamic RPC 포트 범위는 Windows Server 2008 이상에서는
49152-65535로 정의됩니다. 환경에 대해 다른 Dynamic RPC 포트 범위를 정의해야 하는 경우 다른 포트를 사용하도록 Samba를 구성하고 방화벽 설정에서 해당 포트를 엽니다. 다음 예제에서는 포트 범위를55000-65000으로 설정합니다.[root@ipaserver ~]# net conf setparm global 'rpc server dynamic port range' 55000-65000 [root@ipaserver ~]# firewall-cmd --add-port=55000-65000/tcp [root@ipaserver ~]# firewall-cmd --runtime-to-permanentipa서비스를 다시 시작하십시오.[root@ipaserver ~]# ipactl restartsmbclient유틸리티를 사용하여 Samba가 IdM 측에서 Kerberos 인증에 응답하는지 확인합니다.[root@ipaserver ~]# smbclient -L ipaserver.idm.example.com -U user_name --use-kerberos=required lp_load_ex: changing to config backend registry Sharename Type Comment --------- ---- ------- IPC$ IPC IPC Service (Samba 4.15.2) ...
3.2. IdM 클라이언트에 Samba 서버 설치 및 구성 링크 복사링크가 클립보드에 복사되었습니다!
IdM 도메인에 등록된 클라이언트에 Samba를 설치하고 구성할 수 있습니다.
사전 요구 사항
- IdM 서버와 클라이언트 모두 RHEL 9.0 이상에서 실행해야 합니다.
- IdM 도메인은 도메인 멤버에 Samba를 설치하기 위해 IdM 도메인 준비에 설명된 대로 준비됩니다.
- IdM에 AD로 신뢰가 구성된 경우 Kerberos에 대해 AES 암호화 유형을 활성화합니다. 예를 들어 GPO(그룹 정책 오브젝트)를 사용하여 AES 암호화 유형을 활성화합니다. 자세한 내용은 GPO를 사용하여 Active Directory에서 AES 암호화 활성화를 참조하십시오.
절차
ipa-client-samba패키지를 설치합니다.[root@idm_client]# dnf install ipa-client-sambaipa-client-samba유틸리티를 사용하여 클라이언트를 준비하고 초기 Samba 구성을 생성합니다.[root@idm_client]# ipa-client-samba Searching for IPA server... IPA server: DNS discovery Chosen IPA master: idm_server.idm.example.com SMB principal to be created: cifs/idm_client.idm.example.com@IDM.EXAMPLE.COM NetBIOS name to be used: IDM_CLIENT Discovered domains to use: Domain name: idm.example.com NetBIOS name: IDM SID: S-1-5-21-525930803-952335037-206501584 ID range: 212000000 - 212199999 Domain name: ad.example.com NetBIOS name: AD SID: None ID range: 1918400000 - 1918599999 Continue to configure the system with these values? [no]: yes Samba domain member is configured. Please check configuration at /etc/samba/smb.conf and start smb and winbind services기본적으로
ipa-client-915는 사용자가 연결할 때 사용자의 홈 디렉터리를 동적으로 공유하는/etc/ controlPlane/dpdk.conf파일에[homes]섹션을 자동으로 추가합니다. 이 서버에 홈 디렉터리가 없거나 공유하려는 경우/etc/samba/smb.conf에서 다음 행을 제거하십시오.[homes] read only = no디렉토리와 프린터를 공유합니다. 자세한 내용은 다음 섹션을 참조하십시오.
로컬 방화벽에서 Samba 클라이언트에 필요한 포트를 엽니다.
[root@idm_client]# firewall-cmd --permanent --add-service=samba-client [root@idm_client]# firewall-cmd --reloadsmb및winbind서비스를 활성화하고 시작합니다.[root@idm_client]# systemctl enable --now smb winbind
검증
samba-client 패키지가 설치된 다른 IdM 도메인 멤버에서 다음 확인 단계를 실행합니다.
Kerberos 인증을 사용하여 Samba 서버의 공유를 나열합니다.
$ smbclient -L idm_client.idm.example.com -U user_name --use-kerberos=required lp_load_ex: changing to config backend registry Sharename Type Comment --------- ---- ------- example Disk IPC$ IPC IPC Service (Samba 4.15.2) ...
3.3. IdM이 새 도메인을 신뢰하는 경우 ID 매핑 구성 수동 추가 링크 복사링크가 클립보드에 복사되었습니다!
Samba에는 사용자가 리소스에 액세스하는 각 도메인에 대한 ID 매핑 구성이 필요합니다. IdM 클라이언트에서 실행 중인 기존 Samba 서버에서 관리자가 Active Directory(AD) 도메인에 새 신뢰를 추가한 후 ID 매핑 구성을 수동으로 추가해야 합니다.
사전 요구 사항
- IdM 클라이언트에 Samba가 구성되어 있습니다. 그 후 IdM에 새로운 신뢰가 추가되었습니다.
- Kerberos에 대한 DES 및 RC4 암호화 유형은 신뢰할 수 있는 AD 도메인에서 비활성화해야 합니다. 보안상의 이유로 RHEL 9는 이러한 약한 암호화 유형을 지원하지 않습니다.
절차
호스트의 keytab을 사용하여 인증합니다.
[root@idm_client]# kinit -kipa idrange-find명령을 사용하여 새 도메인의 기본 ID와 ID 범위 크기를 모두 표시합니다. 예를 들어 다음 명령은ad.example.com도메인의 값을 표시합니다.[root@idm_client]# ipa idrange-find --name="AD.EXAMPLE.COM_id_range" --raw --------------- 1 range matched --------------- cn: AD.EXAMPLE.COM_id_range ipabaseid: 1918400000 ipaidrangesize: 200000 ipabaserid: 0 ipanttrusteddomainsid: S-1-5-21-968346183-862388825-1738313271 iparangetype: ipa-ad-trust ---------------------------- Number of entries returned 1 ----------------------------다음 단계에서
ipabaseid및ipaidrangesize속성의 값이 필요합니다.사용 가능한 최고 ID를 계산하려면 다음 공식을 사용합니다.
maximum_range = ipabaseid + ipaidrangesize - 1이전 단계의 값을 사용하면
ad.example.com도메인에서 사용 가능한 가장 높은 ID는1918599999(1918400000 + 200000 - 1)입니다./etc/samba/smb.conf파일을 편집하고 도메인의 ID 매핑 구성을[global]섹션에 추가합니다.idmap config AD : range = 1918400000 - 1918599999 idmap config AD : backend = sssipabaseid속성의 값을 가장 낮은 값으로 지정하고 이전 단계에서 계산된 값을 범위의 가장 높은 값으로 지정합니다.smb및winbind서비스를 다시 시작합니다.[root@idm_client]# systemctl restart smb winbind
검증
Kerberos 인증을 사용하여 Samba 서버의 공유를 나열합니다.
$ smbclient -L idm_client.idm.example.com -U user_name --use-kerberos=required lp_load_ex: changing to config backend registry Sharename Type Comment --------- ---- ------- example Disk IPC$ IPC IPC Service (Samba 4.15.2) ...
4장. NIS에서 Identity Management로 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
NIS(Network Information Service) 서버에는 사용자, 그룹, 호스트, 넷 그룹 및 자동 마운트 맵에 대한 정보가 포함될 수 있습니다. 시스템 관리자는 이러한 항목 유형, 인증 및 권한 부여를 NIS 서버에서 IdM(Identity Management) 서버로 마이그레이션하여 모든 사용자 관리 작업을 IdM 서버에서 수행할 수 있습니다. NIS에서 IdM로 마이그레이션하면 Kerberos와 같은 더 안전한 프로토콜에 액세스할 수 있습니다.
4.1. IdM에서 NIS 활성화 링크 복사링크가 클립보드에 복사되었습니다!
NIS(Identity Management) 서버 간 통신을 허용하려면 IdM 서버에서 NIS 호환성 옵션을 활성화해야 합니다.
사전 요구 사항
- IdM 서버에서 루트 액세스 권한이 있습니다.
절차
IdM 서버에서 NIS 리스너 및 호환성 플러그인을 활성화합니다.
[root@ipaserver ~]# ipa-nis-manage enable [root@ipaserver ~]# ipa-compat-manage enable선택 사항: 보다 엄격한 방화벽 구성을 위해 고정 포트를 설정합니다.
예를 들어 포트를 사용하지 않는 포트
514로 설정하려면 다음을 수행합니다.[root@ipaserver ~]# ldapmodify -x -D 'cn=directory manager' -W dn: cn=NIS Server,cn=plugins,cn=config changetype: modify add: nsslapd-pluginarg0 nsslapd-pluginarg0: 514주의다른 서비스와 충돌하지 않도록 하려면 1024 이상의 포트 번호를 사용하지 않습니다.
포트 매퍼 서비스를 활성화하고 시작합니다.
[root@ipaserver ~]# systemctl enable rpcbind.service [root@ipaserver ~]# systemctl start rpcbind.service디렉터리 서버 재시작:
[root@ipaserver ~]# systemctl restart dirsrv.target
4.2. NIS에서 IdM로 사용자 항목 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
NIS passwd 맵에는 이름, UID, 기본 그룹, GECOS, 쉘 및 홈 디렉터리와 같은 사용자 정보가 포함되어 있습니다. 이 데이터를 사용하여 NIS 사용자 계정을 IdM(Identity Management)으로 마이그레이션합니다.
사전 요구 사항
- NIS 서버에 root 액세스 권한이 있습니다.
- NIS는 IdM에서 사용할 수 있습니다.
- NIS 서버가 IdM에 등록되어 있습니다.
- 사용자 가져오기의 UID를 저장할 수 있는 ID 범위가 있습니다.
절차
yp-tools패키지를 설치합니다.[root@nis-server ~]# dnf install yp-tools -yNIS 서버에서 다음 콘텐츠를 사용하여
/root/nis-users.sh스크립트를 만듭니다.#!/bin/sh # $1 is the NIS domain, $2 is the primary NIS server ypcat -d $1 -h $2 passwd > /dev/shm/nis-map.passwd 2>&1 IFS=$'\n' for line in $(cat /dev/shm/nis-map.passwd) ; do IFS=' ' username=$(echo $line | cut -f1 -d:) # Not collecting encrypted password because we need cleartext password # to create kerberos key uid=$(echo $line | cut -f3 -d:) gid=$(echo $line | cut -f4 -d:) gecos=$(echo $line | cut -f5 -d:) homedir=$(echo $line | cut -f6 -d:) shell=$(echo $line | cut -f7 -d:) # Now create this entry echo passw0rd1 | ipa user-add $username --first=NIS --last=USER \ --password --gidnumber=$gid --uid=$uid --gecos="$gecos" --homedir=$homedir \ --shell=$shell ipa user-show $username doneIdM
관리자로인증합니다.[root@nis-server ~]# kinit admin스크립트를 실행합니다. 예를 들어 다음과 같습니다.
[root@nis-server ~]# sh /root/nis-users.sh nisdomain nis-server.example.com중요이 스크립트는 첫 번째 이름, 성에 하드 코딩된 값을 사용하고 암호를
passw0rd1로 설정합니다. 사용자는 다음 로그인 시 임시 암호를 변경해야 합니다.
4.3. NIS에서 IdM로 사용자 그룹 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
NIS 그룹 맵에 는 그룹 이름, GID 또는 그룹 멤버와 같은 그룹에 대한 정보가 포함되어 있습니다. 이 데이터를 사용하여 NIS 그룹을 IdM(Identity Management)으로 마이그레이션합니다.
사전 요구 사항
- NIS 서버에 root 액세스 권한이 있습니다.
- NIS는 IdM에서 사용할 수 있습니다.
- NIS 서버가 IdM에 등록되어 있습니다.
절차
yp-tools패키지를 설치합니다.[root@nis-server ~]# dnf install yp-tools -yNIS 서버에서 다음 콘텐츠를 사용하여
/root/nis-groups.sh스크립트를 생성합니다.#!/bin/sh # $1 is the NIS domain, $2 is the primary NIS server ypcat -d $1 -h $2 group > /dev/shm/nis-map.group 2>&1 IFS=$'\n' for line in $(cat /dev/shm/nis-map.group); do IFS=' ' groupname=$(echo $line | cut -f1 -d:) # Not collecting encrypted password because we need cleartext password # to create kerberos key gid=$(echo $line | cut -f3 -d:) members=$(echo $line | cut -f4 -d:) # Now create this entry ipa group-add $groupname --desc=NIS_GROUP_$groupname --gid=$gid if [ -n "$members" ]; then useropts=$(eval echo --users={$members}) ipa group-add-member $groupname $useropts fi ipa group-show $groupname done참고사용자 그룹을 성공적으로 마이그레이션하기 위해 사용자 이름에 특수 문자가 포함되어 있지 않은지 확인합니다.
IdM
관리자로인증합니다.[root@nis-server ~]# kinit admin스크립트를 실행합니다. 예를 들어 다음과 같습니다.
[root@nis-server ~]# sh /root/nis-groups.sh nisdomain nis-server.example.com
4.4. NIS에서 IdM로 호스트 항목 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
NIS 호스트 맵에 는 호스트 이름 및 IP 주소와 같은 호스트에 대한 정보가 포함되어 있습니다. 이 데이터를 사용하여 NIS 호스트 항목을 IdM(Identity Management)으로 마이그레이션합니다.
IdM에서 호스트 그룹을 생성하면 해당 shadow NIS 그룹이 자동으로 생성됩니다. 이러한 shadow NIS 그룹에서 ipa netgroup-* 명령을 사용하지 마십시오. ipa netgroup-* 명령만 사용하여 netgroup-add 명령을 통해 생성된 기본 netgroups를 관리합니다.
사전 요구 사항
- NIS 서버에 root 액세스 권한이 있습니다.
- NIS는 IdM에서 사용할 수 있습니다.
- NIS 서버가 IdM에 등록되어 있습니다.
절차
yp-tools패키지를 설치합니다.[root@nis-server ~]# dnf install yp-tools -yNIS 서버에서 다음 콘텐츠를 사용하여
/root/nis-hosts.sh스크립트를 만듭니다.#!/bin/sh # $1 is the NIS domain, $2 is the primary NIS server ypcat -d $1 -h $2 hosts | egrep -v "localhost|127.0.0.1" > /dev/shm/nis-map.hosts 2>&1 IFS=$'\n' for line in $(cat /dev/shm/nis-map.hosts); do IFS=' ' ipaddress=$(echo $line | awk '{print $1}') hostname=$(echo $line | awk '{print $2}') primary=$(ipa env xmlrpc_uri | tr -d '[:space:]' | cut -f3 -d: | cut -f3 -d/) domain=$(ipa env domain | tr -d '[:space:]' | cut -f2 -d:) if [ $(echo $hostname | grep "\." |wc -l) -eq 0 ] ; then hostname=$(echo $hostname.$domain) fi zone=$(echo $hostname | cut -f2- -d.) if [ $(ipa dnszone-show $zone 2>/dev/null | wc -l) -eq 0 ] ; then ipa dnszone-add --name-server=$primary --admin-email=root.$primary fi ptrzone=$(echo $ipaddress | awk -F. '{print $3 "." $2 "." $1 ".in-addr.arpa."}') if [ $(ipa dnszone-show $ptrzone 2>/dev/null | wc -l) -eq 0 ] ; then ipa dnszone-add $ptrzone --name-server=$primary --admin-email=root.$primary fi # Now create this entry ipa host-add $hostname --ip-address=$ipaddress ipa host-show $hostname doneIdM
관리자로인증합니다.[root@nis-server ~]# kinit admin스크립트를 실행합니다. 예를 들어 다음과 같습니다.
[root@nis-server ~]# sh /root/nis-hosts.sh nisdomain nis-server.example.com참고이 스크립트는 별칭과 같은 특수 호스트 구성을 마이그레이션하지 않습니다.
4.5. NIS에서 IdM로 netgroup 항목 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
NIS netgroup map에는 netgroups에 대한 정보가 포함되어 있습니다. 이 데이터를 사용하여 NIS netgroups를 IdM(Identity Management)으로 마이그레이션합니다.
사전 요구 사항
- NIS 서버에 root 액세스 권한이 있습니다.
- NIS는 IdM에서 사용할 수 있습니다.
- NIS 서버가 IdM에 등록되어 있습니다.
절차
yp-tools패키지를 설치합니다.[root@nis-server ~]# dnf install yp-tools -yNIS 서버에서 다음 콘텐츠를 사용하여
/root/nis-netgroups.sh스크립트를 만듭니다.#!/bin/sh # $1 is the NIS domain, $2 is the primary NIS server ypcat -k -d $1 -h $2 netgroup > /dev/shm/nis-map.netgroup 2>&1 IFS=$'\n' for line in $(cat /dev/shm/nis-map.netgroup); do IFS=' ' netgroupname=$(echo $line | awk '{print $1}') triples=$(echo $line | sed "s/^$netgroupname //") echo "ipa netgroup-add $netgroupname --desc=NIS_NG_$netgroupname" if [ $(echo $line | grep "(," | wc -l) -gt 0 ]; then echo "ipa netgroup-mod $netgroupname --hostcat=all" fi if [ $(echo $line | grep ",," | wc -l) -gt 0 ]; then echo "ipa netgroup-mod $netgroupname --usercat=all" fi for triple in $triples; do triple=$(echo $triple | sed -e 's/-//g' -e 's/(//' -e 's/)//') if [ $(echo $triple | grep ",.*," | wc -l) -gt 0 ]; then hostname=$(echo $triple | cut -f1 -d,) username=$(echo $triple | cut -f2 -d,) domain=$(echo $triple | cut -f3 -d,) hosts=""; users=""; doms=""; [ -n "$hostname" ] && hosts="--hosts=$hostname" [ -n "$username" ] && users="--users=$username" [ -n "$domain" ] && doms="--nisdomain=$domain" echo "ipa netgroup-add-member $netgroup $hosts $users $doms" else netgroup=$triple echo "ipa netgroup-add $netgroup --desc=<NIS_NG>_$netgroup" fi done doneIdM
관리자로인증합니다.[root@nis-server ~]# kinit admin스크립트를 실행합니다. 예를 들어 다음과 같습니다.
[root@nis-server ~]# sh /root/nis-netgroups.sh nisdomain nis-server.example.com
4.6. NIS에서 IdM로 자동 마운트 맵 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
자동 마운트 맵은 위치(상위 항목), 관련 키 및 맵을 정의하는 일련의 중첩 및 상호 관련 항목입니다. NIS 자동 마운트를 마이그레이션하려면 IdM(Identity Management)에 매핑합니다.
사전 요구 사항
- NIS 서버에 root 액세스 권한이 있습니다.
- NIS는 IdM에서 사용할 수 있습니다.
- NIS 서버가 IdM에 등록되어 있습니다.
절차
yp-tools패키지를 설치합니다.[root@nis-server ~]# dnf install yp-tools -yNIS 서버에서 다음 콘텐츠를 사용하여
/root/nis-automounts.sh스크립트를 만듭니다.#!/bin/sh # $1 is for the automount entry in ipa ipa automountlocation-add $1 # $2 is the NIS domain, $3 is the primary NIS server, $4 is the map name ypcat -k -d $2 -h $3 $4 > /dev/shm/nis-map.$4 2>&1 ipa automountmap-add $1 $4 basedn=$(ipa env basedn | tr -d '[:space:]' | cut -f2 -d:) cat > /tmp/amap.ldif <<EOF dn: nis-domain=$2+nis-map=$4,cn=NIS Server,cn=plugins,cn=config objectClass: extensibleObject nis-domain: $2 nis-map: $4 nis-base: automountmapname=$4,cn=$1,cn=automount,$basedn nis-filter: (objectclass=\*) nis-key-format: %{automountKey} nis-value-format: %{automountInformation} EOF # $5 is the LDAP server ldapadd -x -h $5 -D "cn=Directory Manager" -W -f /tmp/amap.ldif IFS=$'\n' for line in $(cat /dev/shm/nis-map.$4); do IFS=" " key=$(echo "$line" | awk '{print $1}') info=$(echo "$line" | sed -e "s^$key[ \t]*") ipa automountkey-add nis $4 --key="$key" --info="$info" done참고이 스크립트는 NIS 자동 마운트 정보를 내보내고 자동 마운트 위치 및 관련 맵을 위해 LDAP 데이터 상호 변경 형식(LDIF)을 생성하고, LDIF 파일을 IdM 디렉터리 서버로 가져옵니다.
IdM
관리자로인증합니다.[root@nis-server ~]# kinit admin스크립트를 실행합니다. 예를 들어 다음과 같습니다.
[root@nis-server ~]# sh /root/nis-automounts.sh location nisdomain nis-server.example.com map_name
5장. IdM의 자동 마운트 사용 링크 복사링크가 클립보드에 복사되었습니다!
자동 마운트는 여러 시스템에서 디렉토리를 관리, 구성 및 액세스하는 방법입니다. 자동 마운트는 요청이 있을 때마다 디렉토리를 자동으로 마운트합니다. IdM(Identity Management) 도메인 내에서는 도메인 내 클라이언트의 디렉터리를 쉽게 공유할 수 있으므로 이 도메인은 잘 작동합니다.
예에서는 다음 시나리오를 사용합니다.
- NFS-server.idm.example.com 은 NFS(네트워크 파일 시스템) 서버의 정규화된 도메인 이름(FQDN)입니다.
간단히 하기 위해 nfs-server.idm.example.com 은 raleigh 자동 마운트 위치에 대한 맵을 제공하는 IdM 클라이언트입니다.
참고자동 마운트 위치는 고유한 NFS 맵 세트입니다. 이상적으로 이러한 맵은 모두 동일한 지역에 있으므로 예를 들어 클라이언트가 빠른 연결로 이점을 얻을 수 있지만 필수는 아닙니다.
- NFS 서버는 /exports/project 디렉터리를 읽기-쓰기로 내보냅니다.
- developers 그룹에 속하는 IdM 사용자는 raleigh mount 위치를 사용하는 IdM 클라이언트의 /devel/project/ 로 내보낸 디렉터리의 콘텐츠에 액세스할 수 있습니다.
- IdM -client.idm.example.com 은 raleigh 자동 마운트 위치를 사용하는 IdM 클라이언트입니다.
NFS 서버 대신 Samba 서버를 사용하여 IdM 클라이언트의 공유를 제공하려면 Red Hat Knowledgebase 솔루션에서 IPA 환경에서 Autofs로 kerberized CIFS 마운트 구성 방법을 참조하십시오.
5.1. IdM의 NetNamespace 및 자동 마운트 링크 복사링크가 클립보드에 복사되었습니다!
Net Namespace 서비스는 자동 마운트 데몬을 통해 액세스 시 디렉토리를 마운트하도록 하여 필요에 따라 디렉터리 마운트를 자동화합니다. 또한, disabled에서는 period of inactivity을 통해 자동 마운트 된 디렉토리를 마운트 해제하도록 mount에 지시합니다. 정적 마운트와 달리 온디맨드 마운트는 시스템 리소스를 절약합니다.
- 자동 마운트 맵
NetNamespace 를 사용하는
시스템에서는자동 마운트설정이 여러 다른 파일에 저장됩니다. 기본자동 마운트설정 파일은 자동 마운트 마운트 지점의 마스터 매핑과 시스템의 관련 리소스가 포함된/etc/auto.master입니다.이 매핑을 자동 마운트 맵 이라고 합니다./etc/auto.master구성 파일에는 마스터 맵이 포함되어 있습니다. 다른 맵에 대한 참조를 포함할 수 있습니다. 이러한 맵은 직접 또는 간접일 수 있습니다. 직접 맵은 마운트 지점에 절대 경로 이름을 사용하지만 간접 맵은 상대 경로 이름을 사용합니다.- IdM의 자동 마운트 설정
자동 마운트는 일반적으로 로컬/etc/auto.master및 관련 파일에서 맵 데이터를 검색하지만 다른 소스에서 맵 데이터를 검색할 수도 있습니다. 일반적인 소스 중 하나는 LDAP 서버입니다. IdM(Identity Management)의 컨텍스트에서는 389 Directory Server입니다.NetNamespace를 사용하는
시스템이IdM 도메인의 클라이언트이면자동 마운트구성이 로컬 구성 파일에 저장되지 않습니다. 대신 맵, 위치 및 키와 같은 NetNamespace 구성이 IdM 디렉터리에 LDAP 항목으로 저장됩니다.예를 들어idm.example.comIdM 도메인의 경우 기본 마스터 맵 은 다음과 같이 저장됩니다.dn: automountmapname=auto.master,cn=default,cn=automount,dc=idm,dc=example,dc=com objectClass: automountMap objectClass: top automountMapName: auto.master
5.2. Red Hat Enterprise Linux Identity Management 도메인에서 Kerberos를 사용하여 NFS 서버 설정 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Enterprise Linux IdM(Identity Management)을 사용하는 경우 NFS 서버를 IdM 도메인에 연결할 수 있습니다. 이를 통해 사용자와 그룹을 중앙에서 관리하고 인증, 무결성 보호 및 트래픽 암호화에 Kerberos를 사용할 수 있습니다.
사전 요구 사항
- NFS 서버는 Red Hat Enterprise Linux IdM(Identity Management) 도메인에 등록되어 있습니다.
- NFS 서버가 실행 중이고 구성되어 있습니다.
절차
IdM 관리자로 kerberos 티켓을 받습니다.
# kinit adminnfs/<FQDN> 서비스주체를 생성합니다.# ipa service-add nfs/nfs_server.idm.example.comIdM에서
nfs서비스 주체를 검색하여/etc/krb5.keytab파일에 저장합니다.# ipa-getkeytab -s idm_server.idm.example.com -p nfs/nfs_server.idm.example.com -k /etc/krb5.keytab선택 사항:
/etc/krb5.keytab파일에서 주체를 표시합니다.# klist -k /etc/krb5.keytab Keytab name: FILE:/etc/krb5.keytab KVNO Principal ---- -------------------------------------------------------------------------- 1 nfs/nfs_server.idm.example.com@IDM.EXAMPLE.COM 1 nfs/nfs_server.idm.example.com@IDM.EXAMPLE.COM 1 nfs/nfs_server.idm.example.com@IDM.EXAMPLE.COM 1 nfs/nfs_server.idm.example.com@IDM.EXAMPLE.COM 7 host/nfs_server.idm.example.com@IDM.EXAMPLE.COM 7 host/nfs_server.idm.example.com@IDM.EXAMPLE.COM 7 host/nfs_server.idm.example.com@IDM.EXAMPLE.COM 7 host/nfs_server.idm.example.com@IDM.EXAMPLE.COM기본적으로 IdM 클라이언트는 호스트를 IdM 도메인에 결합할 때
/etc/krb5.keytab파일에 호스트 주체를 추가합니다. 호스트 주체가 없는 경우ipa-getkeytab -s idm_server.idm.example.com -p host/nfs_server.idm.example.com -k /etc/krb5.keytab명령을 사용하여 추가합니다.ipa-client-automount유틸리티를 사용하여 IdM ID의 매핑을 구성합니다.# ipa-client-automount Searching for IPA server... IPA server: DNS discovery Location: default Continue to configure the system with these values? [no]: yes Configured /etc/idmapd.conf Restarting sssd, waiting for it to become available. Started autofs/etc/exports파일을 업데이트하고 Kerberos 보안 방법을 클라이언트 옵션에 추가합니다. 예를 들어 다음과 같습니다./nfs/projects/ 192.0.2.0/24(rw,sec=krb5i)클라이언트가 여러 보안 방법 중에서 선택할 수 있도록 하려면 해당 방법을 콜론으로 구분하여 지정합니다.
/nfs/projects/ 192.0.2.0/24(rw,sec=krb5:krb5i:krb5p)내보낸 파일 시스템을 다시 로드합니다.
# exportfs -r
5.3. IdM CLI를 사용하여 IdM에서 자동 마운트 위치 및 맵 구성 링크 복사링크가 클립보드에 복사되었습니다!
위치는 맵 세트이며, 모두 auto.master 에 저장됩니다. 하나의 위치는 여러 맵을 저장할 수 있습니다. 위치 항목은 맵 항목용 컨테이너로만 작동합니다. 이 항목은 및 의 자동 마운트 설정이 아닙니다.
IdM(Identity Management)의 시스템 관리자는 IdM에서 자동 마운트 위치와 맵을 구성하여 지정된 위치의 IdM 사용자가 호스트의 특정 마운트 지점으로 이동하여 NFS 서버에서 내보낸 공유에 액세스할 수 있습니다. 내보낸 NFS 서버 디렉터리와 마운트 지점은 모두 맵에 지정됩니다. 이 예제에서는 raleigh 위치와 IdM 클라이언트의 /devel/ 마운트 지점에 nfs-server.idm.example.com:/exports/project 공유를 읽기-쓰기 디렉터리로 마운트하는 맵을 구성하는 방법을 설명합니다.
사전 요구 사항
- IdM 지원 호스트에 IdM 관리자로 로그인되어 있습니다.
절차
raleigh Autoscaler 위치를 만듭니다.
$ ipa automountlocation-add raleigh ---------------------------------- Added automount location "raleigh" ---------------------------------- Location: raleighraleigh 위치에 auto.devel 자동 자동 마운트 맵을 만듭니다.
$ ipa automountmap-add raleigh auto.devel -------------------------------- Added automount map "auto.devel" -------------------------------- Map: auto.develexports/ share에 대한 키 및 마운트 정보를 추가합니다.
auto.devel 맵의 키 및 마운트 정보를 추가합니다.
$ ipa automountkey-add raleigh auto.devel --key='*' --info='-sec=krb5p,vers=4 nfs-server.idm.example.com:/exports/&' ----------------------- Added automount key "*" ----------------------- Key: * Mount information: -sec=krb5p,vers=4 nfs-server.idm.example.com:/exports/&auto.master 맵에 대한 키 및 마운트 정보를 추가합니다.
$ ipa automountkey-add raleigh auto.master --key=/devel --info=auto.devel ---------------------------- Added automount key "/devel" ---------------------------- Key: /devel Mount information: auto.devel
5.4. IdM 클라이언트에서 자동 마운트 구성 링크 복사링크가 클립보드에 복사되었습니다!
IdM(Identity Management) 시스템 관리자는 사용자가 클라이언트에 로그인할 때 클라이언트가 추가된 위치에 NFS 공유에 액세스할 수 있도록 IdM 클라이언트의 자동 자동 마운트 서비스를 구성할 수 있습니다. 이 예제에서는 raleigh 위치에서 사용할 수 있는 자동 마운트 서비스를 사용하도록 IdM 클라이언트를 구성하는 방법을 설명합니다.
사전 요구 사항
-
IdM 클라이언트에 대한
루트액세스 권한이 있습니다. - IdM 관리자로 로그인되어 있습니다.
- 자동 마운트 위치가 있습니다. 예를 들어 location은 raleigh 입니다.
절차
IdM 클라이언트에서
ipa-client-automount명령을 입력하고 위치를 지정합니다.-U옵션을 사용하여 축소 스크립트를 실행합니다.# ipa-client-automount --location raleigh -UNetNamespace 서비스를 중지하고 SSSD 캐시를 지우고 NetNamespace 서비스를 시작하여 새 구성 설정을 로드합니다.
# systemctl stop autofs ; sss_cache -E ; systemctl start autofs