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

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

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

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

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

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

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

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

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

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

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

  2. 上記のクライアントを使用して、以下のパスワード ポリシー属性に移動します。
    • Edge ユーザー: cn=default,ou=pwpolicies,dc=apigee,dc=com
    • 元の Edge システム管理者: cn=sysadmin,ou=pwpolicies,dc=apigee,dc=com
      注: 追加のシステム管理者(元のシステム管理者以外)の LDAP パスワード ポリシーを構成するには、以下の追加のシステム管理者の LDAP パスワード ポリシーの構成をご覧ください。
  3. 必要に応じてパスワード ポリシー属性の値を編集します。
  4. 構成を保存します。

追加のシステム管理者向けに LDAP パスワード ポリシーを構成する

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

  1. 次のコマンドを実行して、dn のすべての sysadmin を見つけます。
    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

ユーザー(システム管理者以外)のパスワードが期限切れになるまでの秒数。値を 0 にすると、パスワードは期限切れになりません。デフォルト値 2592000 は、パスワード作成時点から 30 日間です。

ユーザー: 2592000

システム管理者: 0

pwdMaxFailure

連続して何回ログインに失敗すると、ディレクトリに対するユーザーの認証にそのパスワードを使用できなくなるようにするか。

3
pwdMinLength

設定するパスワードの必要最小限の文字数。

8

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

ユーザーのアカウントは、パスワード ポリシーに設定された属性に従ってロックされます。システム管理者の Apigee ロールが割り当てられたユーザーは、次の API 呼び出しを使ってユーザーのアカウントをロック解除できます。userEmailadminEmailpassword は実際の値に置き換えてください。

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

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