API 管理用のデフォルトの LDAP パスワード ポリシーの管理

Apigee システムは、OpenLDAP を使用して API 管理環境のユーザーを認証します。OpenLDAP では、この LDAP パスワード ポリシー機能を使用できます。

このセクションでは、提供されるデフォルトの LDAP パスワード ポリシーを構成する方法について説明します。このパスワード ポリシーを使用して、さまざまなパスワード認証オプションを構成します。たとえば、連続してログインに失敗した回数を指定して、その回数を超えるとパスワードを使用してユーザーをディレクトリに認証できなくなるように構成できます。

このセクションでは、デフォルトのパスワード ポリシーで構成された属性に従ってロックされたユーザー アカウントのロックを解除するために、いくつかの API を使用する方法についても説明します。

詳しくは以下をご覧ください。

デフォルトの LDAP パスワード ポリシーの構成

このセクションでは、次のデフォルトの LDAP パスワード ポリシーを構成する方法について説明します。

Edge ユーザーと元の sysadmin のデフォルトの LDAP パスワード ポリシーの構成

Edge ユーザーと元の sysadmin のデフォルトの LDAP パスワード ポリシーを構成するには:

  1. LDAP クライアント(Apache Studio や ldapmodify など)を使用して LDAP サーバーに接続します。デフォルトでは、OpenLDAP サーバーは OpenLDAP ノードのポート 10389 でリッスンします。

    接続するには、cn=manager,dc=apigee,dc=com のバインド DN またはユーザーと、Edge のインストール時に設定した OpenLDAP パスワードを指定します。

  2. クライアントを使用して、次のパスワード ポリシー属性に移動します。
  3. 必要に応じて、パスワード ポリシーの属性値を編集します。
  4. 構成を保存します。

追加の sysadmin の LDAP パスワード ポリシーを構成する

sysadmin ユーザーを Edge に追加すると、元の sysadmin の sysadmin パスワード ポリシーではなく、デフォルトのパスワード ポリシーが継承されます。デフォルトのパスワード ポリシーは、特に設定しない限り、一定期間が経過すると期限切れになります。追加の sysadmin ユーザーのパスワード ポリシーを有効期限が切れないように設定する手順は次のとおりです。

  1. 次のコマンドを実行して、すべての sysadmin の dn を確認します。
    ldapsearch -x -W -D "cn=manager,dc=apigee,dc=com" -H "ldap://:10389" -b "cn=sysadmin,ou=userroles,ou=global,dc=apigee,dc=com" -s base
     -LLL

    出力には、sysadmin ユーザーが roleOccupant として表示されます。

    dn: cn=sysadmin,ou=userroles,ou=global,dc=apigee,dc=com
    objectClass: organizationalRole
    objectClass: top
    cn: sysadmin
    roleOccupant: uid=admin,ou=users,ou=global,dc=apigee,dc=com
    roleOccupant: uid=2a0056b4-5c62-49de-8fb3-925ch67a3e45,ou=users,ou=global,dc=apigee,dc=com
  2. ppchange.ldif という名前の新しいファイルを作成し、次のコードを追加します(独自の sysadmin ユーザーの dn を置き換えます)。
    dn: uid=new-sysadmin-uid,ou=users,ou=global,dc=apigee,dc=com
    changetype: modify
    add: pwdPolicySubentry
    pwdPolicySubentry: cn=sysadmin,ou=pwpolicies,dc=apigee,dc=com
  3. 次のコマンドを入力してユーザーを変更します。
    ldapmodify -x -w "$ldappassword" -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f ppchange.ldif
  4. ldap 検索コマンドを使用して変更を確認します。
    ldapsearch -x -W -D "cn=manager,dc=apigee,dc=com" -H "ldap://:10389" -b "uid=new-sysadmin-uid,ou=users,ou=global,dc=apigee,dc=com" -s base -LLL pwdPolicySubentry

    出力には、pwdPolicySubentry の追加が表示されます。

    dn: uid=new-admin-uid,ou=users,ou=global,dc=apigee,dc=com
    pwdPolicySubentry: cn=sysadmin,ou=pwpolicies,dc=apigee,dc=com
  5. sysadmin ごとに手順 2 ~ 4 を繰り返します。

デフォルトの LDAP パスワード ポリシーの属性

属性 説明 デフォルト
pwdExpireWarning
パスワードの有効期限が切れる前に、ディレクトリに対して認証を行うユーザーに有効期限の警告メッセージが返されるまでの最大秒数。

604800

(7 日間に相当)

pwdFailureCountInterval

古い連続したバインド試行の失敗が失敗カウンタから消去されるまでの秒数。

つまり、この秒数が経過すると、連続したログイン試行の失敗回数がリセットされます。

pwdFailureCountInterval が 0 に設定されている場合、認証が成功した場合にのみカウンタをリセットできます。

pwdFailureCountInterval が 0 より大きい値に設定されている場合、この属性は、連続したログイン試行の失敗回数が自動的にリセットされるまでの期間を定義します。この期間が経過すると、認証が成功していなくても、失敗回数がリセットされます。

この属性は、pwdLockoutDuration 属性と同じ値に設定することをおすすめします。

300
pwdInHistory

pwdHistory 属性に保存される、ユーザーが使用したパスワードまたは過去のパスワードの最大数。

ユーザーがパスワードを変更する際、過去のパスワードに変更することはできません。

3
pwdLockout

TRUE の場合、パスワードの有効期限が切れたときにユーザーをロックアウトし、ユーザーがログインできないように指定します。

False
pwdLockoutDuration

ログイン試行の失敗が連続して多すぎるために、パスワードを使用してユーザーを認証できない秒数。

つまり、pwdMaxFailure 属性で設定されたログイン失敗回数の上限を超えたために、ユーザー アカウントがロックされたままになる期間です。

pwdLockoutDuration が 0 に設定されている場合、ユーザー アカウントはシステム管理者がロックを解除するまでロックされたままになります。

ユーザー アカウントのロック解除をご覧ください。

pwdLockoutDuration が 0 より大きい値に設定されている場合、この属性はユーザー アカウントがロックされたままになる期間を定義します。この期間が経過すると、ユーザー アカウントは自動的にロック解除されます。

この属性は、pwdFailureCountInterval 属性と同じ値に設定することをおすすめします。

300
pwdMaxAge

ユーザー(sysadmin 以外)のパスワードが期限切れになるまでの秒数。値が 0 の場合、パスワードの有効期限はありません。デフォルト値の 2592000 は、パスワードが作成されてから 30 日間に相当します。

user: 2592000

sysadmin: 0

pwdMaxFailure

ログイン試行の連続失敗回数。この回数を超えると、パスワードを使用してユーザーをディレクトリに認証できなくなります。

3
pwdMinLength

パスワードを設定する際に必要な最小文字数を指定します。

8

ユーザー アカウントのロック解除

パスワード ポリシーで設定された属性により、ユーザーのアカウントがロックされることがあります。sysadmin Apigee ロールが割り当てられているユーザーは、次の API 呼び出しを使用してユーザーのアカウントのロックを解除できます。userEmail、adminEmail、password は実際の値に置き換えます。

ユーザーのロックを解除するには:

/v1/users/userEmail/status?action=unlock -X POST -u adminEmail:password