IdM API 사용
Python 스크립트에서 IdM API 사용
초록
보다 포괄적 수용을 위한 오픈 소스 용어 교체
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
Red Hat 문서에 관한 피드백 제공
문서 개선을 위한 의견에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.
Jira를 통해 피드백 제출 (등록 필요)
- Jira 웹 사이트에 로그인합니다.
- 상단 탐색 모음에서 생성 을 클릭합니다.
- 요약 필드에 설명 제목을 입력합니다.
- 설명 필드에 개선을 위한 제안을 입력합니다. 문서의 관련 부분에 대한 링크를 포함합니다.
- 대화 상자 하단에서 생성 을 클릭합니다.
1장. IdM API 소개
명령줄 및 웹 기반 인터페이스를 사용하여 Red Hat Identity Management의 서비스에 액세스할 수 있습니다. Identity Management API를 사용하면 Python으로 작성된 타사 애플리케이션 및 스크립트를 통해 Identity Management 서비스와 상호 작용할 수 있습니다.
Identity Management API에는 JSON-RPC(JavaScript Object Notation Remote Procedure Call) 인터페이스가 있습니다. 다양한 중요한 부분에 자동화를 사용하려면 Python을 통해 Identity Management API에 액세스합니다. 예를 들어 사용 가능한 모든 명령을 사용하여 서버에서 메타데이터를 검색할 수 있습니다.
2장. IdM API의 기본 사항
IdM API를 사용하여 사용자 지정 스크립트로 IdM 환경에 대한 액세스를 자동화할 수 있습니다.
2.1. IdM API 초기화
IdM API를 사용하려면 먼저 환경에서 초기화합니다.
사전 요구 사항
- IdM 서버 또는 IdM 클라이언트 패키지가 설치되어 있습니다.
- 유효한 Kerberos 티켓이 발행됩니다.
프로세스
IdM API를 초기화하려면 스크립트 시작 부분에 다음 코드를 포함합니다.
from ipalib import api api.bootstrap(context="server") api.finalize()
LDAP 서버와의 연결을 설정하려면 API 초기화 후 스크립트에 다음 논리를 추가합니다.
if api.env.in_server: api.Backend.ldap2.connect() else: api.Backend.rpcclient.connect()
- IdM 서버에서 스크립트를 실행하는 경우 이 논리를 사용하면 스크립트가 LDAP 서버에 직접 연결할 수 있습니다.
- IdM 클라이언트에서 스크립트를 실행하는 경우 스크립트는 RPC(원격 프로시저 호출) 클라이언트를 사용합니다.
추가 리소스
2.2. IdM API 명령 실행
스크립트 내에서 IdM API 명령을 실행할 수 있습니다. IdM API 명령을 실행하려면 스크립트에서 api.Command
구조를 사용합니다.
사전 요구 사항
- IdM API가 초기화됩니다. 자세한 내용은 IdM API 초기화 를 참조하십시오.
프로세스
예를 들어 사용자 정보를 나열하려면 스크립트에 다음 코드를 포함합니다.
api.Command.user_show("user_name", no_members=True, all=True)
이 예제에서는
user_show
명령에 인수와 옵션도 전달합니다.
추가 리소스
-
api.Command
명령의 전체 목록은 IPA API 명령 웹 소스를 참조하십시오.
2.3. IdM API 명령 출력 구조
각 IdM API 명령에는 출력에 대한 네 개의 섹션이 있습니다. 이러한 섹션에는 명령 실행에 대한 다양한 정보가 포함되어 있습니다.
IdM API 출력 구조
결과
- 이 섹션에서는 명령 결과를 제공합니다. 명령에 전달된 옵션 및 인수와 같은 명령 작업에 대한 다양한 세부 정보가 포함되어 있습니다.
값
- 이 섹션에서는 명령의 인수를 나타냅니다.
messages
-
이 섹션에서는 명령을 실행한 후
ipa
툴이 제공하는 다양한 정보를 보여줍니다. summary
- 이 섹션에서는 작업에 대한 요약을 보여줍니다.
이 예제에서 스크립트는 add_user
명령을 실행합니다.
api.Command.user_add("test", givenname="a", sn="b")
해당 명령의 출력 구조는 다음과 같습니다.
{ "result": { "displayname": ["a b"], "objectclass": [ "top", "person", "organizationalperson", "inetorgperson", "inetuser", "posixaccount", "krbprincipalaux", "krbticketpolicyaux", "ipaobject", "ipasshuser", "ipaSshGroupOfPubKeys", "mepOriginEntry", "ipantuserattrs", ], "cn": ["a b"], "gidnumber": ["1445000004"], "mail": ["test@ipa.test"], "krbprincipalname": [ipapython.kerberos.Principal("test@IPA.TEST")], "loginshell": ["/bin/sh"], "initials": ["ab"], "uid": ["test"], "uidnumber": ["1445000004"], "sn": ["b"], "krbcanonicalname": [ipapython.kerberos.Principal("test@IPA.TEST")], "homedirectory": ["/home/test"], "givenname": ["a"], "gecos": ["a b"], "ipauniqueid": ["9f9c1df8-5073-11ed-9a56-fa163ea98bb3"], "mepmanagedentry": [ ipapython.dn.DN("cn=test,cn=groups,cn=accounts,dc=ipa,dc=test") ], "has_password": False, "has_keytab": False, "memberof_group": ["ipausers"], "dn": ipapython.dn.DN("uid=test,cn=users,cn=accounts,dc=ipa,dc=test"), }, "value": "test", "messages": [ { "type": "warning", "name": "VersionMissing", "message": "API Version number was not sent, forward compatibility not guaranteed. Assuming server's API version, 2.248", "code": 13001, "data": {"server_version": "2.248"}, } ], "summary": 'Added user "test"', }
2.4. IdM API 명령 및 매개변수 나열
command_show
및 param_show
명령을 사용하여 IdM API 명령 및 해당 매개변수에 대한 정보를 나열할 수 있습니다.
사전 요구 사항
- IdM API가 초기화됩니다. 자세한 내용은 IdM API 초기화 를 참조하십시오.
프로세스
user_add
명령에 대한 정보를 표시하려면 다음 코드를 실행합니다.api.Command.command_show("user_add")
이 명령의 결과는 다음과 같습니다.
{ "result": { "name": "user_add", "version": "1", "full_name": "user_add/1", "doc": "Add a new user.", "topic_topic": "user/1", "obj_class": "user/1", "attr_name": "add", }, "value": "user_add", "messages": [ { "type": "warning", "name": "VersionMissing", "message": "API Version number was not sent, forward compatibility not guaranteed. Assuming server's API version, 2.251", "code": 13001, "data": {"server_version": "2.251"}, } ], "summary": None, }
user_add
명령의givenname
매개변수에 대한 정보를 표시하려면 다음 코드를 실행합니다.api.Command.param_show("user_add", name="givenname")
이 명령의 결과는 다음과 같습니다.
{ "result": { "name": "givenname", "type": "str", "positional": False, "cli_name": "first", "label": "First name", }, "value": "givenname", "messages": [ { "type": "warning", "name": "VersionMissing", "message": "API Version number was not sent, forward compatibility not guaranteed. Assuming server's API version, 2.251", "code": 13001, "data": {"server_version": "2.251"}, } ], "summary": None, }
2.5. 배치를 사용하여 IdM API 명령 실행
batch
명령을 사용하여 단일 호출을 사용하여 여러 IdM API 명령을 실행할 수 있습니다. 다음 예제에서는 여러 IdM 사용자를 생성하는 방법을 보여줍니다.
사전 요구 사항
- IdM API가 초기화됩니다. 자세한 내용은 IdM API 초기화 를 참조하십시오.
프로세스
하나의 배치에 100명의 IdM 사용자를 생성하려면 다음 코드를 스크립트에 포함합니다.
batch_args = [] for i in range(100): user_id = "user%i" % i args = [user_id] kw = { 'givenname' : user_id, 'sn' : user_id } batch_args.append({ 'method' : 'user_add', 'params' : [args, kw] }) ret = api.Command.batch(*batch_args)
2.6. IdM API 컨텍스트
IdM API 컨텍스트는 API에서 사용하는 플러그인을 결정합니다. API 초기화 중에 컨텍스트를 지정합니다. IdM API 컨텍스트를 사용하는 방법에 대한 예제는 IdM API 초기화 를 참조하십시오.
IdM API 컨텍스트
server
- 실행을 위해 IdM API 명령에 전달되는 인수 및 옵션의 유효성을 검사하는 플러그인 세트입니다.
클라이언트
- 실행을 위해 IdM 서버로 전달되는 인수 및 옵션의 유효성을 검사하는 플러그인 세트입니다.
installer
- 설치 프로세스와 관련된 플러그인 세트입니다.
업데이트
- 업데이트 프로세스와 관련된 플러그인 세트입니다.
3장. IdM API 및 IdM CLI 명령 비교
Python 대화형 콘솔에서 IdM API 명령을 사용할 수 있습니다. IdM API 명령은 ipa
툴 명령과 다릅니다.
IdM CLI 및 IdM API 명령 차이점
- 명령 이름 지정 구조
-
ipa
CLI 명령은user-add
에서와 같이 하이픈을 사용하지만 IdM API 명령은user_add
에서와 같이 밑줄을 대신 사용합니다. - 매개변수 이름 지정
-
IdM CLI 명령 및 IdM API 명령에는 매개변수가 다릅니다. 예를 들어 IdM CLI
user-add
명령에는먼저
매개변수가 있지만 IdM APIuser_add
명령에는 매개 변수지정 이름이
있습니다. - 날짜 형식
IdM CLI에는 다음 날짜 형식을 사용할 수 있습니다.
-
%Y%m%d%H%M%SZ
-
%Y-%m-%dT%H:%M:%SZ
-
%Y-%m-%dT%H:%MZ
-
%Y-%m-%dZ
-
%Y-%m-%d %H:%M:%SZ
%Y-%m-%d %H:%MZ
또한 IdM API는 Python 기본 제공 클래스 date를 사용할 수
있습니다
.
-
유용한 CLI 툴
-
콘솔
은 IdM API 명령을 실행하는 데 사용할 수 있는 대화형 Python 콘솔을 시작합니다. -
help
명령은 주제 및 명령에 대한 설명을 표시하고 다양한 예제를 포함합니다. -
show-mapping
명령은 CLI 매개변수 이름과 LDAP 속성 간의 매핑을 표시합니다.
4장. IdM API 예제 시나리오
다음 예제에서는 IdM API 명령을 사용하는 일반적인 시나리오를 제공합니다.
4.1. IdM API 명령으로 사용자 관리
아래 예제에서는 IdM API 명령을 사용하여 IdM 사용자를 관리하는 방법에 대한 일반적인 시나리오를 보여줍니다.
IdM API 명령을 사용하여 IdM 사용자를 관리하는 예
- IdM 사용자 생성
이 예제에서는 사용자 이름
exampleuser
및 지원되는 사용자일회성 암호(OTP)
인증을 사용하여 IdM 사용자를 생성합니다.api.Command.user_add("exampleuser", givenname="Example", sn="User", ipauserauthtype="otp")
- IdM 사용자 정보 표시
이 예제에서는 IdM 사용자
exampleuser
에 대한 사용 가능한 모든 정보를 표시합니다.api.Command.user_show("exampleuser", all=True)
- IdM 사용자 수정
이 예에서는 IdM 사용자
exampleuser
의 이메일 주소를 변경합니다.api.Command.user_mod("exampleuser", mail="exampleuser@example.org")
- IdM 사용자 검색
이 예에서는 IdM 그룹
admins
에서exampleuser
와 일치하는 모든 IdM 사용자를 검색합니다.api.Command.user_find(criteria="exampleuser", in_group="admins")
- IdM 사용자 삭제
이 예에서는 IdM 사용자
exampleuser
를 삭제합니다.api.Command.user_del("exampleuser")
나중에 사용자를 복원하려면
preserve
옵션을 사용합니다. 이 옵션을 사용하는 경우user_undel
명령을 사용하여 사용자를 복원할 수 있습니다.- IdM 사용자의 인증서 추가 및 제거
user_add_cert
및user_remove_cert
명령을 사용하여 사용자에 대해Base64 인코딩
인증서를 추가하거나 제거할 수 있습니다. 이 예에서는exampleuser
사용자에 대한 인증서를 추가합니다.args = ["exampleuser"] kw = { "usercertificate": """ MIICYzCCAcygAwIBAgIBADANBgkqhkiG9w0BAQUFADAuMQswCQYDVQQGEwJVUzEMMAoGA1UEC hMDSUJNMREwDwYDVQQLEwhMb2NhbCBDQTAeFw05OTEyMjIwNTAwMDBaFw0wMDEyMjMwNDU5NT laMC4xCzAJBgNVBAYTAlVTMQwwCgYDVQQKEwNJQk0xETAPBgNVBAsTCExvY2FsIENBMIGfMA0 GCSqGSIb3DQEBATOPA4GNADCBiQKBgQD2bZEo7xGaX2/0GHkrNFZvlxBou9v1Jmt/PDiTMPve 8r9FeJAQ0QdvFST/0JPQYD20rH0bimdDLgNdNynmyRoS2S/IInfpmf69iyc2G0TPyRvmHIiOZ bdCd+YBHQi1adkj17NDcWj6S14tVurFX73zx0sNoMS79q3tuXKrDsxeuwIDAQABo4GQMIGNME sGCVUdDwGG+EIBDQQ+EzxHZW5lcmF0ZWQgYnkgdGhlIFNlY3VyZVdheSBTZWN1cml0eSBTZXJ 2ZXIgZm9yIE9TLzM5MCAoUkFDRikwDgYDVR0PAQH/BAQDAgAGMA8GA1UdEwEB/wQFMAMBAf8w HQYDVR0OBBYEFJ3+ocRyCTJw067dLSwr/nalx6YMMA0GCSqGSIb3DQEBBQUAA4GBAMaQzt+za j1GU77yzlr8iiMBXgdQrwsZZWJo5exnAucJAEYQZmOfyLiMD6oYq+ZnfvM0n8G/Y79q8nhwvu xpYOnRSAXFp6xSkrIOeZtJMY1h00LKp/JX3Ng1svZ2agE126JHsQ0bhzN5TKsYfbwfTwfjdWA Gy6Vf1nYi/rO+ryMO """ } api.Command.user_add_cert(*args, **kw)
- IdM 사용자 활성화 및 비활성화
user_enable
및user_disable
명령을 사용하여 IdM 사용자를 활성화하거나 비활성화할 수 있습니다. 이 예에서는 IdM 사용자exampleuser
를 비활성화합니다.api.Command.user_disable("exampleuser")
4.2. IdM API 명령으로 그룹 관리
아래 예제에서는 IdM API 명령을 사용하여 IdM 그룹을 관리하는 방법에 대한 일반적인 시나리오를 보여줍니다.
IdM API 명령을 사용하여 IdM 사용자를 관리하는 예
- IdM 그룹 생성
이 예에서는 지정된 그룹 ID 번호를 사용하여 IdM 그룹
개발자
를 생성합니다.api.Command.group_add("developers", gidnumber=500, description="Developers")
- IdM 그룹에 사용자로 멤버로 추가
이 예제에서는
admin
사용자를developers
그룹에 추가합니다.api.Command.group_add_member("developers", user="admin")
- IdM 그룹에 멤버로 서비스 추가
이 예제에서는
HTTP/server.ipa.test
서비스를developers
그룹에 추가합니다.api.Command.group_add_member("developers", service="HTTP/server.ipa.test")
- IdM 그룹에 하위 그룹으로 그룹 추가
이 예제에서는
developers
그룹에 다른 그룹admins
를 추가합니다.api.Command.group_add_member("developers", group="admins")
- IdM 그룹 관리자 추가
이 예제에서는
bob
사용자를developers
그룹의 그룹 관리자로 추가합니다.api.Command.group_add_member_manager("developers", user="bob")
- IdM 그룹 검색
다양한 매개변수를 사용하여 IdM 그룹을 검색할 수 있습니다. 이 예제에서는 사용자
bob
이 관리하는 모든 그룹을 찾습니다.api.Command.group_find(membermanager_user="bob")
- IdM 그룹 정보 표시
이 예제에서는 members 목록 없이
developers
그룹에 대한 그룹 정보를 표시합니다.api.Command.group_show("developers", no_members=True)
- IdM 그룹 수정
이 예에서는 비POSIX 그룹
testgroup
을 POSIX 그룹으로 변환합니다.api.Command.group_mod("testgroup", posix=True)
- IdM 그룹에서 멤버 제거
이 예에서는
developers
그룹에서admin
사용자를 제거합니다.api.Command.group_remove_member("developers", user="admin")
- IdM 그룹 관리자 제거
이 예제에서는
developers
그룹에서 관리자로서 사용자bob
을 제거합니다.api.Command.group_remove_member_manager("developers", user="bob")
- IdM 그룹 제거
이 예제에서는
developers
그룹을 제거합니다.api.Command.group_del("developers")
4.3. IdM API 명령으로 액세스 제어 관리
아래 예제에서는 IdM API 명령을 사용하여 액세스 제어를 관리하는 방법에 대한 일반적인 시나리오를 보여줍니다.
IdM API 명령을 사용하여 액세스 제어를 관리하는 예
- 사용자 생성에 대한 권한 추가
이 예제에서는 사용자를 생성할 수 있는 권한을 추가합니다.
api.Command.permission_add("Create users", ipapermright='add', type='user')
- 그룹 멤버십 관리에 대한 권한 추가
이 예제에서는 그룹에 사용자를 추가할 수 있는 권한을 추가합니다.
api.Command.permission_add("Manage group membership", ipapermright='write', type='group', attrs="member")
- 사용자 생성 프로세스에 대한 권한 추가
이 예제에서는 사용자를 생성하고, 그룹에 추가하고, 사용자 인증서를 관리하는 데 필요한 권한을 추가합니다.
api.Command.permission_add("Create users", ipapermright='add', type='user') api.Command.permission_add("Manage group membership", ipapermright='write', type='group', attrs="member") api.Command.permission_add("Manage User certificates", ipapermright='write', type='user', attrs='usercertificate') api.Command.privilege_add("User creation") api.Command.privilege_add_permission("User creation", permission="Create users") api.Command.privilege_add_permission("User creation", permission="Manage group membership") api.Command.privilege_add_permission("User creation", permission="Manage User certificates")
- 권한을 사용하여 역할 추가
이 예제에서는 이전 예제에서 생성한 권한을 사용하여 역할을 추가합니다.
api.Command.role_add("usermanager", description="Users manager") api.Command.role_add_privilege("usermanager", privilege="User creation")
- 사용자에게 역할 할당
이 예제에서는 사용자
bob
에usermanager
역할을 할당합니다.api.Command.role_add_member("usermanager", user="bob")
- 그룹에 역할 할당
이 예에서는
usermanager
역할을managers
그룹에 할당합니다.api.Command.role_add_member("usermanager", group="managers")
4.4. IdM API 명령을 사용하여 sudo 규칙 관리
아래 예제에서는 IdM API 명령을 사용하여 sudo 규칙을 관리하는 방법에 대한 일반적인 시나리오를 보여줍니다.
IdM API 명령을 사용하여 sudo 규칙을 관리하는 예
- sudo 규칙 생성
이 예제에서는 시간 변경 명령을 포함하는 sudo 규칙을 만듭니다.
api.Command.sudorule_add("timechange")
- sudo 명령 생성
이 예제에서는
date
sudo 명령을 만듭니다.api.Command.sudocmd_add("/usr/bin/date")
- sudo 규칙에 sudo 명령 연결
이 예제에서는
date
sudo 명령을timechange
sudo 규칙에 연결합니다.api.Command.sudorule_add_allow_command("timechange", sudocmd="/usr/bin/date")
- sudo 명령 그룹 생성 및 연결
이 예제에서는 여러 sudo 명령을 만들고 새로 생성된
timecmds
sudo 명령 그룹에 추가한 후 그룹을timechange
sudo 규칙에 연결합니다.api.Command.sudocmd_add("/usr/bin/date") api.Command.sudocmd_add("/usr/bin/timedatectl") api.Command.sudocmd_add("/usr/sbin/hwclock") api.Command.sudocmdgroup_add("timecmds") api.Command.sudocmdgroup_add_member("timecmds", sudocmd="/usr/bin/date") api.Command.sudocmdgroup_add_member("timecmds", sudocmd="/usr/bin/timedatectl") api.Command.sudocmdgroup_add_member("timecmds", sudocmd="/usr/sbin/hwclock") api.Command.sudorule_add_allow_command("timechange", sudocmdgroup="timecmds")
- sudo 명령 거부
이 예제에서는
rm
명령이 sudo로 실행되도록 거부합니다.api.Command.sudocmd_add("/usr/bin/rm") api.Command.sudorule_add_deny_command("timechange", sudocmd="/usr/bin/rm")
- sudo 규칙에 사용자 추가
이 예제에서는 사용자
bob
을timechange
sudo 규칙에 추가합니다.api.Command.sudorule_add_user("timechange", user="bob")
- 지정된 호스트에서만 sudo 규칙을 사용할 수 있도록 설정
이 예에서는
client.ipa.test
호스트에서만 사용할 수 있도록시간 변경
규칙을 제한합니다.api.Command.sudorule_add_host("timechange", host="client.ipa.test")
- sudo 규칙을 다른 사용자로 실행하도록 설정
기본적으로 sudo 규칙은
root
로 실행됩니다. 이 예제에서는 대신alice
사용자로 실행할timechange
sudo 규칙을 설정합니다.api.Command.sudorule_add_runasuser("timechange", user="alice")
- sudo 규칙을 그룹으로 실행하도록 설정
이 예제에서는
sysadmins
그룹으로 실행되도록timechange
sudo 규칙을 설정합니다.api.Command.sudorule_add_runasgroup("timechange", group="sysadmins")
- sudo 규칙에 대한 sudo 옵션 설정
이 예제에서는
timechange
sudo 규칙에 대해 sudo 옵션을 설정합니다.api.Command.sudorule_add_option("timechange", ipasudoopt="logfile='/var/log/timechange_log'")
- sudo 규칙 활성화
이 예제에서는
timechange
sudo 규칙을 활성화합니다.api.Command.sudorule_enable("timechange")
- sudo 규칙 비활성화
이 예제에서는
timechange
sudo 규칙을 비활성화합니다.api.Command.sudorule_disable("timechange")
4.5. IdM API 명령을 사용하여 호스트 기반 액세스 제어 관리
아래 예제에서는 IdM API 명령을 사용하여 HBAC(Host-based Access Control)를 관리하는 방법에 대한 일반적인 시나리오를 보여줍니다.
IdM API 명령을 사용하여 HBAC를 관리하는 예
- HBAC 규칙 생성
이 예제에서는 SSH 서비스 액세스를 처리할 기본 규칙을 생성합니다.
api.Command.hbacrule_add("sshd_rule")
- HBAC 규칙에 사용자 추가
이 예제에서는 사용자
john
을sshd_rule
HBAC 규칙에 추가합니다.api.Command.hbacrule_add_user("sshd_rule", user="john")
- HBAC 규칙에 그룹 추가
이 예제에서는 그룹
developers
를sshd_rule
HBAC 규칙에 추가합니다.api.Command.hbacrule_add_user("sshd_rule", group="developers")
- HBAC 규칙에서 사용자 제거
이 예에서는
sshd_rule
HBAC 규칙에서john
사용자를 제거합니다.api.Command.hbacrule_remove_user("sshd_rule", user="john")
- 새 대상 HBAC 서비스 등록
HBAC 규칙에 연결하려면 먼저 대상 서비스를 등록해야 합니다. 이 예에서는
chronyd
서비스를 등록합니다.api.Command.hbacsvc_add("chronyd")
- HBAC 규칙에 등록된 서비스 연결
이 예에서는
sshd
서비스를sshd_rule
HBAC 규칙에 연결합니다. 이 서비스는 기본적으로 IPA에 등록되므로 사전에hbacsvc_add
를 사용하여 등록할 필요가 없습니다.api.Command.hbacrule_add_service("sshd_rule", hbacsvc="sshd")
- HBAC 규칙에 호스트 추가
이 예에서는
workstations
호스트 그룹을sshd_rule
HBAC 규칙에 추가합니다.api.Command.hbacrule_add_host("sshd_rule", hostgroup="workstations")
- HBAC 규칙 테스트
이 예에서는
workstation.ipa.test
호스트에 대해sshd_rule
HBAC 규칙을 사용합니다. 사용자john
에서 제공되는 서비스sshd
를 대상으로 합니다.api.Command.hbactest(user="john", targethost="workstation.ipa.test", service="sshd", rules="sshd_rule")
- HBAC 규칙 활성화
이 예제에서는
sshd_rule
HBAC 규칙을 활성화합니다.api.Command.hbacrule_enable("sshd_rule")
- HBAC 규칙 비활성화
이 예제에서는
sshd_rule
HBAC 규칙을 비활성화합니다.api.Command.hbacrule_disable("sshd_rule")