9.2. 自動登録

自動登録では、ユーザーが認証プラグインモジュールで設定された方法で正常に認証されるとすぐに、エンドエンティティー登録要求が処理されます。エージェントの承認は必要ありません。以下の認証プラグインモジュールが提供されます。
  • ディレクトリーベースの登録エンドエンティティーは、ユーザー ID とパスワード、またはその DN とパスワードを使用して LDAP ディレクトリーに対して認証されます。「ディレクトリーベースの認証の設定」を参照してください。
  • PIN ベースの登録。エンドエンティティーは、ディレクトリーエントリーのユーザー ID、パスワード、および PIN セットを使用して LDAP ディレクトリーに対して認証されます。「PIN ベースの登録の設定」を参照してください。
  • 証明書ベースの認証の使用。ある種のエンティティー (エンドユーザーとサーバーやトークンなどの他のエンティティーの両方) は、CA によって発行された ID を証明する証明書を使用して CA に対して認証されます。これは、更新プロセスの認証に元の証明書が提示される、更新に最も一般的に使用されます。「証明書ベースの認証の使用」を参照してください。
  • AgentCertAuth.このメソッドは、リクエストを送信したエンティティーがサブシステムエージェントとして認証される場合に証明書要求を自動的に承認します。ユーザーは、エージェント証明書を提示してエージェントとして認証します。提示された証明書がサブシステムでエージェント証明書として認識される場合、CA は証明書要求を自動的に処理します。
    この形式の自動認証は、サーバー証明書を登録する証明書プロファイルに関連付けることができます。
    このプラグインはデフォルトで有効になっており、パラメーターはありません。
  • フラットファイルベースの登録。ルーター (SCEP) の登録専用に使用されるテキストファイルには、IP アドレス、ホスト名、またはその他の識別子のリストと、通常はランダムな PIN であるパスワードが含まれています。ルーターはその ID と PIN を使用して CA に対して認証し、CA は提示する認証情報をテキストファイルの ID の一覧と比較します。「フラットファイル認証の設定」を参照してください。

9.2.1. ディレクトリーベースの認証の設定

UidPwdDirAuth および UdnPwdDirAuth プラグインモジュールは、ディレクトリーベースの認証を実装します。LDAP ディレクトリーに対して認証するユーザー ID または DN およびパスワードを指定して、証明書にエンドユーザーを登録します。
  1. UidPwdDirAuth または UdnPwdDirAuth 認証モジュールのいずれかのインスタンスを作成して、インスタンスを設定します。
    1. CA コンソールを開きます。
      pkiconsole https://server.example.com:8443/ca
    2. Configuration タブで、ナビゲーションツリーの Authentication を選択します。
      右側のペインには、現在設定されている認証インスタンスを一覧表示する Authentication Instance タブが表示されます。
      注記
      UidPwdDirAuth プラグインはデフォルトで有効です。
    3. 追加 をクリックします。
      Select Authentication plug-in Implementation ウインドウが表示されます。
    4. ユーザー ID およびパスワード認証に UidPwdDirAuth を選択するか、DN およびパスワード認証には UdnPwdDirAuth を選択します。
    5. Authentication Instance Editor ウィンドウで、以下のフィールドに入力します。
      • Authentication Instance ID。デフォルトのインスタンス名を許可するか、新しい名前を入力します。
      • dnpattern。ディレクトリー属性およびエントリー DN から形成するサブジェクト名パターンを表す文字列を指定します。
      • ldapStringAttributes.エンドエンティティーの 認証 として考慮されるべき LDAP 文字列属性の一覧を指定します。これらの属性に対応する値は、認証ディレクトリーから認証トークンにコピーし、証明書プロファイルによりサブジェクト名を生成するために使用されます。このパラメーターの値の入力は任意です。
      • ldapByteAttributes.エンドエンティティーの 認証 として考慮されるべき LDAP バイト (バイナリー) 属性の一覧を指定します。指定した場合、これらの属性に対応する値は、ユーザーの証明書への追加情報の追加など、他のモジュールで使用するために認証ディレクトリーから認証トークンにコピーされます。
        このパラメーターの値の入力は任意です。
      • ldap.ldapconn.host.認証ディレクトリーの完全修飾 DNS ホスト名を指定します。
      • ldap.ldapconn.port.認証ディレクトリーが要求をリッスンする TCP/IP ポートを指定します。ldap.ldapconn.secureConn. チェックボックスを選択した場合、これは SSL ポート番号になります。
      • ldap.ldapconn.secureConn.認証ディレクトリーが Certificate System からの要求をリッスンするポートのタイプ (SSL または非 SSL) を指定します。これが SSL ポートである場合に選択します。
      • ldap.ldapconn.version.LDAP プロトコルのバージョンの 2 または 3 を指定します。バージョン 3.x 以降のすべての Directory Server は LDAPv3 であるため、デフォルトは 3 です。
      • ldap.basedn.認証ディレクトリーを検索するためにベース DN を指定します。サーバーは、HTTP 入力 (ユーザーが登録フォームに入るもの) とベース DN の uid フィールド値を使用して LDAP 検索フィルターを構築します。
      • ldap.minConns.認証ディレクトリーで許可される最小接続数を指定します。許容値は、1 から 3 です。
      • ldap.maxConns.認証ディレクトリーで許可される接続の最大数を指定します。許容値は、3 から 10 です。
    6. OK をクリックします。認証インスタンスが設定され、有効になっている。
  2. 特定の証明書のポリシーを設定して、ユーザーの登録に使用する証明書プロファイルを設定します。証明書プロファイルの入力を設定して登録フォームをカスタマイズします。また、ユーザーを認証するためにプラグインが必要とする情報の入力を含めます。デフォルトの入力に、収集する必要のあるすべての情報が含まれていない場合には、サードパーティーツールで作成した要求を送信します。
    プロファイルの設定に関する詳細は、「サブジェクト代替名への LDAP ディレクトリー属性値およびその他の情報の挿入」 を参照してください。

バインドされた LDAP 接続の設定

一部の環境では、認証に使用される LDAP サーバーの匿名バインドを禁止する必要があります。CA と LDAP サーバーとの間にバインドされた接続を作成するには、以下の設定を変更する必要があります。
  • CS.cfg の以下の例に従って、ディレクトリーベースの認証を設定します。
    auths.instance.UserDirEnrollment.ldap.ldapBoundConn=true
    auths.instance.UserDirEnrollment.ldap.ldapauth.authtype=BasicAuth
    auths.instance.UserDirEnrollment.ldap.ldapauth.bindDN=cn=Directory Manager
    auths.instance.UserDirEnrollment.ldap.ldapauth.bindPWPrompt=externalLDAP
    externalLDAP.authPrefix=auths.instance.UserDirEnrollment
    cms.passwordlist=internaldb,replicationdb,externalLDAP
    bindPWPrompt は、password .conf ファイルで使用されるタグまたはプロンプトです。また、options passwordlist オプションおよび authPrefix オプション で使用される名前でもあります。
  • CS.cfg からタグまたはプロンプトを password.conf でパスワードとともに追加します。
    externalLDAP=your_password

外部承認の設定

また、ディレクトリーベースの認証プラグインを設定して、ユーザーのグループメンバーシップを評価することもできます。このプラグインを設定するには、CS.cfg に以下のオプションを設定する必要があります。
  • groupsEnable は、グループの取得を可能にするブール値オプションです。デフォルト値は false です。
  • groupsBasedn はグループのベース DN です。これは、デフォルト basedn と異なる場合に指定する必要があります。
  • group は、グループの DN コンポーネントです。デフォルト値は ou=groups です。
  • groupObjectClass は、グループオブジェクトクラス groupofuniquenamesgroupofnames のいずれかです。デフォルト値は groupofuniquenames です。
  • groupUseridName は、グループオブジェクトメンバー属性のユーザー ID 属性の名前です。デフォルト値は cn です。
  • useridName は、ユーザー ID DN コンポーネントの名前です。デフォルト値は uid です。
  • searchGroupUserByUserdn は、userdn または ${groupUserIdName}=${uid} 属性のグループオブジェクトメンバー属性を検索するかどうかを決定するブール値オプションです。デフォルト値は true です。
以下に例を示します。
auths.instance.UserDirEnrollment.pluginName=UidPwdDirAuth
auths.instance.UserDirEnrollment.ldap.basedn=cn=users,cn=accounts,dc=local
auths.instance.UserDirEnrollment.ldap.groupObjectClass=groupofnames
auths.instance.UserDirEnrollment.ldap.groups=cn=groups
auths.instance.UserDirEnrollment.ldap.groupsBasedn=cn=accounts,dc=local
auths.instance.UserDirEnrollment.ldap.groupsEnable=true
auths.instance.UserDirEnrollment.ldap.ldapconn.host=local
auths.instance.UserDirEnrollment.ldap.ldapconn.port=636
auths.instance.UserDirEnrollment.ldap.ldapconn.secureConn=true
最後に、/instance_path/ca/profiles/ca/profile_id.cfg ファイルを変更し、CS.cfg に定義された UserDirEnrollment 認証インスタンスを使用するようにプロファイルを設定し、および必要に応じて、グループに基づく許可用の ACL を提供します。以下に例を示します。
auth.instance_id=UserDirEnrollment
auths.acl=group="cn=devlab-access,ou=engineering,dc=example,dc=com"