Show Table of Contents
このページには機械翻訳が使用されている場合があります (詳細はこちら)。
11.6. ユーザーおよびグループへの外部プロビジョニングシステムの使用
Identity Management (IdM) は、ID 管理用の外部ソリューションを使用して IdM でユーザーおよびグループ ID がプロビジョニングされるように、お使いの環境を設定するサポートをします。以下のセクションは、このような設定の例について説明します。例には以下が含まれます。
11.6.1. 外部プロビジョニングシステムで使用されるようにユーザーアカウントを設定する手順
以下の手順では、外部プロビジョニングシステムが IdM ユーザーアカウントを使用するように設定する方法を説明します。適切なパスワードポリシーが指定されたグループにアカウントを追加すると、外部プロビジョニングシステムが IdM でユーザーのプロビジョニングを管理できるようになります。
- stage ユーザーの追加権限のあるユーザー
provisionator
を作成します。外部プロビジョニングシステムがこのユーザーアカウントを使用して新しい stage ユーザーを追加します。provisionator
ユーザーアカウントを追加します。$ ipa user-add provisionator --first=provisioning --last=account --password
provisionator
ユーザーに必要な権限を割り当てます。stage ユーザーの追加を管理するSystem Provisioning
というカスタムロールを作成します。$ ipa role-add --desc "Responsible for provisioning stage users" "System Provisioning"
Stage User Provisioning
の権限をロールに割り当てます。この権限により、stage ユーザーが追加できるようになります。$ ipa role-add-privilege "System Provisioning" --privileges="Stage User Provisioning"
provisionator
ユーザーをロールに追加します。$ ipa role-add-member --users=provisionator "System Provisioning"
- ユーザーアカウントの管理権限を持つ
activator
ユーザーを作成します。このユーザーアカウントを使用すると、外部プロビジョニングシステムにより追加された stage ユーザーが自動的にアクティベートされます。activator
ユーザーアカウントを追加します。$ ipa user-add activator --first=activation --last=account --password
activator
ユーザーに必要な権限を割り当てます。デフォルトのUser Administrator
ロールにこのユーザーを追加します。$ ipa role-add-member --users=activator "User Administrator"
- サービスおよびアプリケーションアカウントのユーザーグループを作成します。
$ ipa group-add service-accounts
- グループのパスワードポリシーを更新します。以下のポリシーは、アカウントのパスワードの期限切れやロックアウトがされないようにしますが、複雑なパスワードを求めることでリスクの可能性を低減します。
$ ipa pwpolicy-add service-accounts --maxlife=10000 --minlife=0 --history=0 --minclasses=4 --minlength=20 --priority=1 --maxfail=0 --failinterval=1 --lockouttime=0
- サービスおよびアプリケーションアカウントのグループにプロビジョニングアカウントとアクティベーションアカウントを追加します。
$ ipa group-add-member service-accounts --users={provisionator,activator}
- ユーザーアカウントのパスワードを変更します。
$ kpasswd provisionator $ kpasswd activator
新規の IdM ユーザーのパスワードはすぐに失効するため、パスワードを変更する必要があります。
追加リソース:
- 新規ユーザーの追加に関する情報は、「stage または Active ユーザーの追加」を参照してください。
- 他のユーザーアカウントの管理に必要な権限をユーザーに割り当てる方法については 「管理者以外のユーザーによるユーザーエントリーの管理許可」を参照してください。
- IdM パスワードポリシーの管理に関する詳しい情報は28章パスワードポリシーの定義を参照してください。
11.6.2. IdM が自動的に stage ユーザーアカウントをアクティベートするように設定する手順
以下の手順では、stage ユーザーをアクティベートするスクリプトを作成する方法を説明します。システムは指定した間隔で自動的にスクリプトを実行します。これにより、新規ユーザーアカウントを自動的にアクティベートし、作成後すぐに利用できるようにします。
重要
以下の手順では、スクリプトを IdM に追加する前に、新規ユーザーアカウントの検証が必要ないとの想定です。たとえば、外部プロビジョニングシステムの所有者によりユーザーがすでに検証済みの場合には、検証は必要ありません。
IdM サーバーの 1 つで、アクティベーションプロセスを有効化するだけで十分です。
- アカウントのアクティベート用に keytab ファイルを生成します。
# ipa-getkeytab -s example.com -p "activator" -k /etc/krb5.ipa-activation.keytab
複数の IdM サーバーでアクティベーションプロセスを有効にするには、1 つのサーバーでのみ keytab ファイルを作成し、他のサーバーにその keytab ファイルをコピーします。 - 以下の内容を含む
/usr/local/sbin/ipa-activate-all
スクリプトを作成して全ユーザーをアクティベートします。#!/bin/bash kinit -k -i activator ipa stageuser-find --all --raw | grep " uid:" | cut -d ":" -f 2 | while read uid; do ipa stageuser-activate ${uid}; done
ipa-activate-all
スクリプトのパーミッションと所有者を編集して、実行可能なファイルに変更します。# chmod 755 /usr/local/sbin/ipa-activate-all # chown root:root /usr/local/sbin/ipa-activate-all
systemd
のユニットファイルである/etc/systemd/system/ipa-activate-all.service
を作成して以下の内容を追加します。[Unit] Description=Scan IdM every minute for any stage users that must be activated [Service] Environment=KRB5_CLIENT_KTNAME=/etc/krb5.ipa-activation.keytab Environment=KRB5CCNAME=FILE:/tmp/krb5cc_ipa-activate-all ExecStart=/usr/local/sbin/ipa-activate-all
systemd
タイマーである/etc/systemd/system/ipa-activate-all.timer
を作成して以下の内容を追加します。[Unit] Description=Scan IdM every minute for any stage users that must be activated [Timer] OnBootSec=15min OnUnitActiveSec=1min [Install] WantedBy=multi-user.target
ipa-activate-all.timer
を有効化します。# systemctl enable ipa-activate-all.timer
Additional resources:
- For more information on
systemd
unit files, see the Managing Services with systemd Unit Files chapter of the 『System Administrator's Guide』.
11.6.3. Configuring the LDAP Provider of the External Provisioning System to Manage the IdM Identities
以下の章では、さまざまなユーザーおよびグループの管理オプションのテンプレートを紹介します。これらのテンプレートを使用すると、プロビジョニングシステムの LDAP プロバイダーが IdM ユーザーアカウントを管理できるように設定できます。たとえば、従業員が退職した後にユーザーアカウントを無効にするようにシステムを設定することができます。
LDAP を使用したユーザーアカウントの管理
下層の Directory Server データベースを編集して、新規ユーザーエントリーの追加、既存のエントリーの変更、異なるライフサイクルの状態間でのユーザーの移動、ユーザーの削除ができます。データベースを編集するには
ldapmodify
ユーティリティーを使用します。
以下の LDIF 形式のテンプレートには、
ldapmodify
を使用して変更する属性に関する情報が含まれます。例に関する詳しい手順は 例11.2「ldapmodify
での stage ユーザーへの追加」 および 例11.3「ldapmodify
でのユーザーの保存」を参照してください。
- 新規 stage ユーザーの追加
- UID および GID が自動的に割り当てられたユーザーの追加
dn: uid=user_login,cn=staged users,cn=accounts,cn=provisioning,dc=example,dc=com changetype: add objectClass: top objectClass: inetorgperson uid: user_login sn: surname givenName: first_name cn: full_name
UID および GID が静的に割り当てられたユーザーの追加dn: uid=user_login,cn=staged users,cn=accounts,cn=provisioning,dc=example,dc=com changetype: add objectClass: top objectClass: person objectClass: inetorgperson objectClass: organizationalperson objectClass: posixaccount uid: user_login uidNumber: UID_number gidNumber: GID_number sn: surname givenName: first_name cn: full_name homeDirectory: /home/user_login
stage ユーザーの追加時に IdM オブジェクトクラスを指定する必要はありません。IdM は、ユーザーのアクティベート後に、これらのクラスを自動的に追加します。作成したエントリーの識別名 (DN) はuid=user_login
で開始する必要がある点に注意してください。 - 既存ユーザーの変更
- ユーザーを変更する前に、ユーザーの識別名 (DN) をユーザーのログインで検索して取得します。以下の例では、user_allowed_to_read ユーザーは、ユーザーおよびグループの情報を読み込む権限があり、password はユーザーのパスワードとなっています。
# ldapsearch -LLL -x -D "uid=user_allowed_to_read,cn=users,cn=accounts,dc=example, dc=com" -w "password" -H ldap://server.example.com -b "cn=users, cn=accounts, dc=example, dc=com" uid=user_login
ユーザーの属性を変更する方法:dn: distinguished_name changetype: modify replace: attribute_to_modify attribute_to_modify: new_value
ユーザーを無効化する方法:dn: distinguished_name changetype: modify replace: nsAccountLock nsAccountLock: TRUE
ユーザーを有効化する方法:dn: distinguished_name changetype: modify replace: nsAccountLock nsAccountLock: FALSE
ユーザーを保存する方法:dn: distinguished_name changetype: modrdn newrdn: uid=user_login deleteoldrdn: 0 newsuperior: cn=deleted users,cn=accounts,cn=provisioning,dc=example
nssAccountLock
属性を更新しても、stage および preserved ユーザーには影響はありません。更新操作が正常に完了しても、属性の値はnssAccountLock: TRUE
のままです。 - 新規グループの作成
- 新規グループの作成方法:
dn: cn=group_distinguished_name,cn=groups,cn=accounts,dc=example,dc=com changetype: add objectClass: top objectClass: ipaobject objectClass: ipausergroup objectClass: groupofnames objectClass: nestedgroup objectClass: posixgroup cn: group_name gidNumber: GID_number
- グループの変更
- グループを変更する前に、グループ名で検索してグループの識別名 (DN) を取得します。
# ldapsearch -YGSSAPI -H ldap://server.example.com -b "cn=groups,cn=accounts,dc=example,dc=com" "cn=group_name"
既存のグループの削除方法:dn: group_distinguished_name changetype: delete
グループにメンバーを追加する方法:dn: group_distinguished_name changetype: modify add: member member: uid=user_login,cn=users,cn=accounts,dc=example,dc=com
グループからメンバーを削除する方法:dn: distinguished_name changetype: modify delete: member member: uid=user_login,cn=users,cn=accounts,dc=example,dc=com
stage または preserved ユーザーをグループには追加しないでください。更新が正常に完了した場合でも、ユーザーはグループのメンバーとして更新されません。active ユーザーだけがグループに所属します。
例11.2 ldapmodify
での stage ユーザーへの追加
標準の
interorgperson
オブジェクトクラスを使用して stageuser
ユーザーを追加する方法:
ldapmodify
を使用してユーザーを追加します。# ldapmodify -Y GSSAPI SASL/GSSAPI authentication started SASL username: admin@EXAMPLE SASL SSF: 56 SASL data security layer installed. dn: uid=stageuser,cn=staged users,cn=accounts,cn=provisioning,dc=example changetype: add objectClass: top objectClass: inetorgperson cn: Stage sn: User adding new entry "uid=stageuser,cn=staged users,cn=accounts,cn=provisioning,dc=example"
- ステージエントリーの内容を検証し、必要とされる POSIX 属性がプロビジョニングシステムに追加され、ステージエントリーのアクティベートの準備ができていることを確認します。新規 stage ユーザーの LDAP 属性を表示するには、
ipa stageuser-show --all --raw
コマンドを使用します。ユーザーはnsaccountlock
属性で明示的に無効化されていることに注意してください。$ ipa stageuser-show stageuser --all --raw dn: uid=stageuser,cn=staged users,cn=accounts,cn=provisioning,dc=example uid: stageuser sn: User cn: Stage has_password: FALSE has_keytab: FALSE nsaccountlock: TRUE objectClass: top objectClass: inetorgperson objectClass: organizationalPerson objectClass: person
例11.3 ldapmodify
でのユーザーの保存
LDAP
modrdn
操作を使用して user
を保存する方法:
ldapmodify
ユーティリティーを使用してユーザーエントリーを変更します。$ ldapmodify -Y GSSAPI SASL/GSSAPI authentication started SASL username: admin@EXAMPLE SASL SSF: 56 SASL data security layer installed. dn: uid=user1,cn=users,cn=accounts,dc=example changetype: modrdn newrdn: uid=user1 deleteoldrdn: 0 newsuperior: cn=deleted users,cn=accounts,cn=provisioning,dc=example modifying rdn of entry "uid=user1,cn=users,cn=accounts,dc=example"
- オプションで、すべての preserved ユーザーを表示して、このユーザーが保存されたことを確認します。
$ ipa user-find --preserved=true --------------- 1 user matched --------------- User login: user1 First name: first_name Last name: last_name ... ---------------------------- Number of entries returned 1 ----------------------------
このページには機械翻訳が使用されている場合があります (詳細はこちら)。