2.4. IDP のアイデンティティーストアの設定

IDP はセキュリティードメインを使用するため、IDP の機能は、これをサポートする実際の ID ストアから独立しています。これにより、管理者は IDP のセキュリティードメインを設定する際に多くのオプションを利用できます。セキュリティードメインおよびログインモジュールの詳細は、JBoss EAP セキュリティーアーキテクチャーSecurity Subsystem を参照してください。セキュリティードメインのログインモジュールを設定するのと同様に、異なる ID ストアがさまざまな機能とパフォーマンスのトレードオフを提供することに注意してください。

アイデンティティーストアを使用するセキュリティードメインを設定するには、以下の手順が必要です。

注記

本書の目的上、データベースログインモジュールおよび LDAP ログインモジュールは例として示されていますが、他のアイデンティティーストアやログインモジュールは IDP と使用するように設定することもできます。

注記

ここで使用する管理 CLI コマンドは、JBoss EAP スタンドアロンサーバーを実行していることを仮定しています。JBoss EAP 管理対象ドメインの管理 CLI を使用する場合の詳細は JBoss EAP Management CLI Guide を参照してください。

  1. アイデンティティーストアを設定します。

    セキュリティードメインおよびログインモジュールを設定して、アイデンティティープロバイダー、アイデンティティープロバイダー、およびそのアイデンティティープロバイダーへの接続を使用するには、設定が必要です。

    1. Database Login Module のアイデンティティーストアを設定します。

      データベースベースのアイデンティティーストアに必要な最初の項目は、ログインモジュールが使用するデータベースです。

      以下のデータポイントが必要です。

      • ユーザー名
      • パスワード
      • ロール
      • ロールグループ

      Database Login モジュールでは、ユーザー名をパスワードにマップするクエリーと、ユーザー名をロールおよびロールグループにマップするクエリーを作成する必要があります。この情報はさまざまな方法でデータベースに保存できますが、テーブルを含むデータベースの作成については本ガイドの範囲外となります。この例では、以下の表が作成されていることを前提としています。

      表2.2 sso-users

      usernamepasswd

      Sarah

      Testing123!

      表2.3 SSO-roles

      usernamerole

      role-group

      Sarah

      sample

      SSO-Users

      データソースの作成については、本書では扱いません。データソースの設定に関する詳細は、JBoss EAP 設定ガイド データソース管理 を参照してください。

      この例では、idpDS という名前のデータソースが作成され、適切に設定され 、JBoss EAP インスタンスにデプロイされていることを前提とします。このデータソースは、sso-users および sso-roles テーブルを格納するデータベースに接続します。

    2. LDAP ログインモジュールのアイデンティティーストアを設定します。

      LDAP ログインモジュールの設定前に、適切に設定された LDAP サーバーが必要です。Database ログインモジュールとは異なり、LDAP ログインモジュールの設定にデータソースは必要ありません。LDAP の基本および JBoss EAP セキュリティーとは、JBoss EAP セキュリティーアーキテクチャー ガイドで説明されています。

      1. LDAP サーバーを設定します。

        LDAP サーバーの設定は本ガイドの範囲外です。この例では、http://ldaphost.example.com:1389/ で LDAP サーバーにアクセスできます。

      2. ディレクトリー情報の例

        LDAP サーバーのディレクトリー構造と編成は、ユースケースや組織のニーズによって大幅に異なる場合があります。この例では、以下のエントリーが LDIF 形式で作成されています。

        dn: dc=example,dc=com
        objectclass: top
        objectclass: dcObject
        objectclass: organization
        dc: example
        o:  Example
        #=============================
        dn: ou=People,dc=example,dc=com
        objectclass: top
        objectclass: organizationalUnit
        ou: People
        #=============================
        dn: uid=jsmith,ou=People,dc=example,dc=com
        objectclass: top
        objectclass: uidObject
        objectclass: person
        uid: jsmith
        cn: John
        sn: Smith
        userPassword: theduke
        #=============================
        dn: ou=Roles,dc=example,dc=com
        objectclass: top
        objectclass: organizationalUnit
        ou: Roles
        #=============================
        dn: cn=Sample,ou=Roles,dc=example,dc=com
        objectclass: top
        objectclass: groupOfNames
        cn: Sample
        member: uid=jsmith,ou=People,dc=example,dc=com
        description: the Sample group
  2. セキュリティードメインを追加します。

    アイデンティティーストア自体が設定され、JBoss EAP インスタンスとアイデンティティーストア間の接続が設定されたら、セキュリティードメインを作成および設定できます。以下のコマンドは、空のセキュリティードメインを作成する方法を示しています。MY-DOMAIN を、使用するセキュリティードメインの名前に置き換えます。

    セキュリティードメイン追加の管理 CLI コマンド

    /subsystem=security/security-domain=MY-DOMAIN:add(cache-type=default)

  3. 認証セクションとログインモジュールをセキュリティードメインに追加します。空のセキュリティードメインを作成したら、ログインモジュールを追加して authentication セクションを作成する必要があります。以下のコマンドは、既存のセキュリティードメインに空の認証セクションを追加する方法を示します。

    認証セクションをセキュリティードメインに追加する管理 CLI コマンド

    /subsystem=security/security-domain=MY-DOMAIN/authentication=classic:add

    空の認証セクションが作成されると、ログインモジュールを追加して、必要なアイデンティティーストアを使用するように設定できます。ログインモジュールをセキュリティードメインに追加したら、通常、設定の再読み込みが必要になります。

    以下は、ログインモジュールを追加し、設定を再読み込みするための一般的なコマンド構造です。MY-DOMAINMY-LOGIN-MODULE、および MY-CONFIGURATION を適切な値に置き換えます。

    /subsystem=security/security-domain=MY-DOMAIN/authentication=classic/login-module=MY-LOGIN-MODULE:add(MY-CONFIGURATION)
    
    reload
    • Database ログインモジュール

      注記

      この例では、idpDS という名前のデータソースが 手順 1 で作成されており、idp-db-domain という名前のセキュリティードメインが 手順 2 で作成されていることを前提としています。

      データベースログインモジュールを使用するための認証セクションを設定するための管理 CLI コマンド

      /subsystem=security/security-domain=idp-db-domain/authentication=classic/login-module=Database:add(code=Database,flag=required,module-options=[("dsJndiName"=>"java:/idpDS"),("principalsQuery"=>"select passwd from 'sso-users' where username=?"),("rolesQuery"=>"select role, role-group from 'sso-roles' where username=?")])
      
      reload

    • LDAP ログインモジュールを追加します。

      LdapExtended ログインモジュールの設定に必要な手順は、How to Configure Identity Management を参照してください。