Active Directoryユーザーの認証および認可の構成

Oracle Cloud Infrastructure Identity and Access Managementの設定、Active Directory (AD)認証および認可の構成、NFSエクスポートの構成およびUnix権限の設定を行います。

Oracle Cloud Infrastructure Identity and Access Managementポリシーの設定

Oracle Cloud Infrastructure (OCI) Identity and Access Managementで動的グループを作成し、マウント・ターゲットがLDAPおよびKerberosシークレットにアクセスできるようにするポリシーを追加します。これは、Kerberos構成とLDAP構成の両方に必要です。

  1. OCIにログインします。
  2. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。
  3. 「動的グループ」をクリックします。
  4. 「動的グループの作成」をクリックし、「名前」および「説明」を入力します。
    名前は、テナントのすべてのグループ(動的グループおよびユーザー・グループ)で一意である必要があります。名前は後で変更できません。機密情報を入力しないでください。
    この例では、ad-kerberosコンパートメント内のすべてのマウント・ターゲットにグループad-kerberos-mt-groupを使用します。
  5. グループのメンバーを定義するには、「一致ルール」を入力します。
    ALL { resource.type='mounttarget', resource.compartment.id = '<mount_target_compartment_ocid>' }
  6. 「作成」をクリックします。
  7. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「アイデンティティ」で、「ポリシー」をクリックします。
  8. 「ポリシーの作成」をクリックします。
  9. 新しいポリシーの名前、説明およびコンパートメントを入力します。
    名前は、テナンシ内のすべてのポリシーで一意である必要があります。これは後で変更できません。機密情報を入力しないでください。
  10. ポリシー・ビルダーを使用して、コンパートメント内のシークレットへのマウント・ターゲット・アクセスを許可するポリシーを作成します。
    この例では、ad-kerberosコンパートメント内のすべてのマウント・ターゲットにグループad-kerberos-mt-groupを使用します。
    allow dynamic-group ad-kerberos-mt-group to read secret-family in compartment ad-kerberos
  11. 「作成」をクリックします。

Kerberosを使用した Active Directory認証の構成

Oracle Cloud Infrastructure Identity and Access Managementを構成したら、Active Directoryを構成します。Kerberosの構成には、マウント・ターゲットをMicrosoftのActive Directoryに結合し、Kerberos構成でマウント・ターゲット設定を更新する2つのステップがあります。

マウントターゲットを Active Directoryに結合する

Active Directoryユーザーに認証が必要な場合は、このタスクを完了します。これは、Oracle Cloud Infrastructure File Storageサービスの外部で実行される手動プロセスです。マウント・ターゲットをMicrosoftのActive Directoryに参加するには、Active Directoryへのコンピュータ・アカウントの追加、正しい暗号の設定、keytabの抽出、およびDNSへのマウント・ターゲットの追加を行います。

  1. Active Directoryにマウント・ターゲット(MT)のコンピュータ・アカウントを作成します。
    コマンドラインからアカウントを作成するか、Active Directory Users and Computersスナップインを使用して新しいコンピュータ・アカウントを作成できます。
    Command-Line
    C:\Users\administrator>djoin /provision /domain fss-ad.com /machine fss-mt-ad-1 /savefile offlinedomainjoin.txt
    Provisioning the computer...
    Successfully provisioned [fss-mt-ad-1] in the domain [fss-ad.com].
    …
    The operation completed successfully.
    Active Directory Users and Computers
    1. Active Directory Users and Computersディレクトリに移動し、fs-ad.comを展開して「コンピュータ」を選択します。
    2. 「新規」をクリックし、「コンピュータ」をクリックします。
    3. fss-mt-ad-1を追加します。

      これが完了すると、Active Directory Users and ComputersスナップインのComputersツリーの下にFSS-MT-AD-1が表示されます。

  2. ktpass.exeを使用してキータブを作成します。

    ノート:

    ktpass.exeを実行するには、管理者としてコマンド・プロンプトを開く必要があります。そうしないと、失敗します。AES256-SHA1aes256-cts-hmac-sha1-96です。
    C:\>ktpass -princ nfs/fss-mt-ad-1.fss-ad.com@FSS-AD.COM -mapuser FSS-AD\fss-mt-ad-1 -crypto AES256-SHA1 +rndpass -ptype KRB5_NT_SRV_HST  -out fss-mt-ad-1.keytab
    Targeting domain controller: ad-server.fss-ad.com
    Successfully mapped nfs/fss-mt-ad-1.fss-ad.com to FSS-MT-AD-1$.
    WARNING: Account FSS-MT-AD-1$ is not a user account (uacflags=0x1001).
    WARNING: Resetting FSS-MT-AD-1$'s password may cause authentication problems if FSS-MT-AD-1$ is being used as a server.
    
    Reset AD-FSS-MT-2$'s password [y/n]?  y
    Password successfully set!
    Key created.
    Output keytab to fss-mt-ad-1.keytab:
    Keytab version: 0x502
    keysize 88 nfs/fss-mt-ad-1.fss-ad.com@FSS-AD.COM ptype 3 (KRB5_NT_SRV_HST) vno 2 etype 0x12 (AES256-SHA1) keylength 32
    
  3. マウント・ターゲットでKerberosを構成するときにkeytabで使用するkeytabをbase64に変換します。
    C:\>certutil.exe -encode fss-mt-ad-1.keytab keytab.txt
    Input Length = 94
    Output Length = 188
    CertUtil: -encode command completed successfully.
    
    C:\>notepad keytab.txt
    1. ノートパッドでkeytab.txtファイルを開きます。
    2. BEGINおよび END CERTIFICATE行を削除します。
    3. base64テキストを1行にスペースを入れずに1つの連続した長い行にコピーします。
      後でKerberosのマウント・ターゲットのシークレットを構成する場合は、base64テキストが必要です。
  4. Active Directoryのマウント・ターゲット(MT)属性を変更して、よりセキュアな暗号を使用します。MTアカウントを探し、aes256-cts-hmac-sha1-96msDS-SupportedEncryptionTypes属性値を24に変更します。
    Active Directoryは、デフォルトでRC4暗号を持つチケットを提供します。msDS-SupportedEncryptionTypes属性が存在しない場合は、属性を作成して値を設定します。
  5. DNSマネージャーを開き、DNSサーバーツリーを展開します。
  6. マウント・ターゲットのフォワード参照ゾーンを追加します。IPアドレスを入力し、「関連付けられたポインタ(PTR)レコードの作成」を選択して、「ホストの追加」をクリックします。

Kerberosのマウント・ターゲットの構成

keytabのシークレットを作成します。シークレット・コンテンツは、Active Directoryでマウント・ターゲットに参加したときにコピーしたbase64エンコードされたキータブです。

Kerberosのマウント・ターゲットを構成するために必要な基本ステップは次のとおりです。

  • マウント・ターゲットをActive Directoryに結合します(前のステップ)。
  • keytabボールトシークレットを構成します。
  • マウント・ターゲットでKerberosを構成します。
  1. Oracle Cloud Infrastructure (OCI)コンソールに移動し、ナビゲーション・メニューを開きます。
  2. 「アイデンティティとセキュリティ」「Vault」の順にクリックします。
  3. 「リスト・スコープ」で、シークレットを作成するコンパートメントを選択します。
    この例では、コンパートメントad-kerberosを使用します。
  4. 「リソース」で、「シークレット」「シークレットの作成」の順に選択します。
  5. 「シークレットの作成」パネルに次の情報を入力します:
    機密情報は入力しないでください。
    1. 名前: シークレットを識別する名前を入力します。たとえば、fss-mt-ad-1-keytab-secretです。
    2. 説明: シークレットの識別に役立つ簡単な説明を入力します。たとえば、fss-mt-ad-1のKeytabです。
    3. 暗号化キー: ボルトへのインポート中にシークレット・コンテンツの暗号化に使用するマスター暗号化キーを選択します。たとえば、mount-target-secretsです。
      キーは同じボールトに属する必要があります。鍵も対称鍵である必要があります。非対称キーではボールト・シークレットを暗号化できません。
    4. シークレット・タイプ・テンプレート: Base64
    5. シークレット・コンテンツ: シークレットのコンテンツを入力します。
      これは、マウント・ターゲットをActive Directoryに結合する際にキータブをbase64に変換したときに保存したbase64エンコードされたキータブです。
  6. 「シークレットの作成」をクリックします。
  7. マウント・ターゲットの「NFS」タブに移動します。
    1. ナビゲーション・メニューで「ストレージ」をクリックします。
    2. 「File Storage」で、「Mount Targets」をクリックします。
    3. 「リスト・スコープ」セクションの「コンパートメント」で、コンパートメントを選択します。
      たとえば、ad-kerberos
    4. マウント・ターゲットを検索し、「NFS」タブをクリックします。
  8. NFS」タブの「Kerberos」の横にある「管理」をクリックします。
  9. キータブ・シークレットおよびバージョンを選択し、「キータブの検証」をクリックして結果を表示し、保存します。「Kerberosの有効化」を選択します。
    この例では、ad-kerberosコンパートメントのKeytabシークレットfss-mt-ad-1-keytab-secretで、現在のkeytabシークレット・バージョンは1です。

Kerberosを使用したNFSエクスポートのマウント

Kerberos NFSは、次の3つのセキュリティーメカニズムをサポートしています。

  • krb5: 認証専用のKerberos。
  • krb5i: 認証され、各トランザクションで暗号化ハッシュを使用して整合性が確保されます。トラフィックは引き続きインターセプトおよび検査できますが、トラフィックを変更することはできません。
  • krb5p: クライアントとサーバー間のすべてのトラフィックを認証および暗号化します。トラフィックは検査できず、変更できません。
C:\Users\fss-user-1>mount -o sec=krb5 fss-mt-ad-1.fss-ad.com:/krb-fs-1 T:
T: is now successfully connected to fss-mt-ad-1.fss-ad.com:/krb-fs-1

The command completed successfully.
マウント時にセキュリティ・フレーバ(syskrb5krb5iおよびkrb5p)が指定されていない場合、Windowsはエクスポートに設定された優れたセキュリティ・フレーバを選択します。mountコマンドを使用して、ドライブのマウント時にWindowsが選択されたフレーバを確認します。
C:\Users\fss-user-1>mount

Local    Remote                                 Properties
-------------------------------------------------------------------------------
T:       \\fss-mt-ad-1.fss-ad.com\krb-fs-1      UID=0, GID=0
                                                rsize=1048576, wsize=1048576
                                                mount=soft, timeout=0.8
                                                retry=1, locking=yes
                                                fileaccess=755, lang=ANSI
                                                casesensitive=no
                                                sec=krb5


C:\Users\fss-user-1>whoami
fss-ad\fss-user-1

これで、Windowsエクスプローラからドライブにアクセスできます。ドライブ・マッピングはユーザーごとに実行され、OCI File Storage共有にアクセスするすべてのユーザーは、共有をそれぞれのドライブ文字にマップする必要があります。

LDAP用のActive Directory認可の構成

Active DirectoryユーザーにLDAP承認が必要な場合は、このタスクを完了します。Active Directoryから必要な情報を収集し、File Storageにアクセスするすべてのユーザーおよびグループに対してRFC2307属性を設定し、マウント・ターゲットでLDAPを構成します。

LDAP用の Active Directory承認を構成するために必要な基本手順を次に示します。

  • Active DirectoryからLDAP構成の詳細を取得します。
  • LDAPバインド・ユーザー・シークレットを構成します。
  • アウトバウンド・コネクタを作成します。
  • マウント・ターゲットでLDAPを構成します。

ノート:

マウント・ターゲットは、自己署名付きLDAP証明書を使用できません。
  1. LDAPをホストしているシステムを DNSから取得し、あとで保存します。
    この例では、システムはfss-ad.comです。
    C:\Users\administrator>nslookup -type=srv _ldap._tcp.fss-ad.com
    Server:  localhost
    Address:  ::1
    _ldap._tcp.fss-ad.com   SRV service location:
              priority       = 0
              weight         = 100
              port           = 389
              svr hostname   = ad-server.fss-ad.com
        ad-server.fss-ad.com    internet address = 10.9.1.194
  2. Active Directoryで、ユーザーおよびグループのdistinguishedName (DN)属性検索ベースを見つけます。
    1. Active Directory Users and Computersディレクトリに移動し、fs-ad.comを展開します。
    2. 「ユーザー」をクリックします。
  3. LDAPバインド・ユーザーDNを取得します。

    ノート:

    このユーザーは、ディレクトリ検索機能を持つ最小特権ユーザーになることができます。このユーザーのパスワードは、後でアウトバウンド・コネクタを構成するためにも必要です。
    1. ldap-userを選択します。
    2. 「属性エディタ」タブをクリックします。
    3. distinguishedName属性を選択します。
    4. 値をコピーし、後のステップのために保存します。
  4. OCI File StorageにアクセスするすべてのユーザーおよびグループのRFC2307属性を確認します。
    手順およびRFC2307属性表については、「Active DirectoryでのRFC2307属性の構成」を参照してください。
  5. 前述のステップ3で検出されたLDAPバインド・ユーザーのシークレットを作成します。
    シークレットには、LDAPユーザーがバインドするパスワードが保持されます。書式はプレーン・テキストである必要があります。
  6. アウトバウンド・コネクタを構成します。アウトバウンド・コネクタは、「ファイル・ストレージ」ページの「追加リソース」の下で使用できます。マウント・ターゲットと同じADにアウトバウンドを作成します。
    1. DNS名を入力します。
      たとえば、ad-server.fss.ad.com
    2. LDAPサービスのDSAPSポートを入力します。
      636
    3. バインド識別名を入力します。
      LDAPサーバーにログインするLDAPユーザーです。たとえば、CN=ldap-user、CN=Users、 DC=fss-ad、 DC=com
    4. シークレットが格納されているコンパートメント内のボールトを選択します。
      たとえば、ad-kerberosコンパートメント内のkrb-vaultです。
    5. コンパートメント内のシークレットを選択します。
      たとえば、ad-kerberosコンパートメント内のfss-mt-ad-1-ldap-passwordです。
    6. 「シークレット・バージョン」を選択します。
      1
    7. 「作成」をクリックします。
  7. マウント・ターゲットのLDAPを構成します。
    前のステップのアウトバウンド・コネクタを使用します。
    1. ナビゲーション・メニューで「ストレージ」をクリックします。「File Storage」で、「Mount Targets」をクリックします。
    2. コンパートメントを選択します。
      たとえば、ad-kerberos
    3. マウント・ターゲットを検索し、「NFS」タブをクリックして、「LDAPの管理」をクリックします。
    4. 「ユーザーの検索ベース」および「グループの検索ベース」フィールドに検索ベースを入力します。

      ノート:

      ユーザーおよびグループの検索ベースは、Active Directoryユーザーおよびグループ・コンテナから取得されたDNです。

      たとえば、ユーザーの検索ベース: CN=Users、DC=fss-ad、DC=comおよびグループの検索ベース: CN=Users、DC=fss-ad、DC=com
    5. キャッシュ間隔を入力し、「アウトバウンド・コネクタ1」フィールドで作成したアウトバウンド・コネクタを選択します。
      この例では、「キャッシュのリフレッシュ間隔」「キャッシュの存続時間」および「マイナス・キャッシュの存続時間」はそれぞれ300秒です。アウトバウンド・コネクタ1のLDAPアカウントはfss-ad-ob-1です。
    6. 設定を保存します。

NFSエクスポートの構成

認可要件に従ってエクスポート設定を構成します。

  • LDAP認可が不要で、すべての認証済ユーザーを単一のuid/gidにマップする場合は、次の設定を構成してすべてのユーザーをsquashします。NFSクライアントのエクスポート・オプションを使用して、クライアントがどのようにファイル・システムにアクセスできるかを制御します。次の設定を編集して、すべてのユーザーをスカッシュします。
    1. Anonymousアクセス: 「Not allowed」を選択します。
    2. Squash: 「Yes」を選択します。
    3. Squash UID: 99と入力します
    4. Squash GID: 99と入力します
    これらの設定では、すべての認証済ユーザーにユーザーID 99およびグループID 99が付与されます。LDAP参照は実行されません。
  • LDAPを使用してユーザーを認可する場合は、NFSエクスポート・オプションを使用してKerberosプリンシパルをUnixユーザーにマップします。
    1. 匿名アクセス: 「許可」を選択します
    2. Squash: 「None」を選択します。
    3. Squash UID: 199と入力します
    4. Squash GID: 199と入力します
    これらの設定では、すべての KerberosユーザーがLDAPから UnixユーザーID、グループID、およびグループメンバーシップにマップされます。ユーザーがLDAPに存在しない場合は、匿名マッピングが使用され、ユーザーは UnixユーザーID 199およびグループID 199にマップされます。匿名アクセスが無効になっており、KerberosユーザーがLDAPに存在しない場合は、共有にアクセスしているユーザーにアクセス拒否エラーが表示されます。

WindowsでのUnix権限

Oracle Cloud Infrastructure File Storageには、NFSv3プロトコルを使用してアクセスします。認可は、Unix権限を使用して実行されます。

ldp.exeツールを使用して、ユーザーおよびグループのRFC2307属性を問い合せて、uid、gidおよびグループのメンバーシップを表示できます。Unixアクセス権は、LDAPに格納されているuid、gid、およびグループメンバーシップに基づいてチェックされます。
Tool: ldp.exe
Search Base: CN=Users,DC=fss-ad,DC=com 
Filter: (&(objectClass=posixAccount)(uid=fss-user-1))
Attributes: uidNumber;gidNumber

Windowsエクスプローラを使用して、ファイルまたはフォルダを所有する所有者とグループ、およびファイルまたはフォルダに設定されている権限を確認します。ファイルまたはフォルダのプロパティからNFS属性(Unix属性)にアクセスできます。

fss-user-1ユーザーのプライマリ・グループは500ですが、OCI File Storageでは、ユーザーが権限チェックのメンバーであるすべてのグループが考慮されます。次の問合せを使用して、fss-user-1ユーザーのグループ・メンバーシップを検索します。
Tool: ldp.exe
Search Base: CN=Users,DC=fss-ad,DC=com 
Filter: (&(objectClass=posixGroup)(memberUid=fss-user-1))' gidNumber
Attributes: gidNumber

初期フォルダ権限の作成

実装時には、フォルダ権限を検討します。

OCI File Storageルート・ディレクトリは、uid 0および755 (rootの場合はrwx、rootの場合はr-x、その他の場合はr-x)権限によって所有されます。ユーザーの追加フォルダを作成したり、権限を変更するには、ルート・アクセスが必要です。要件を満たす初期権限を作成および設定するのは管理者タスクです。

次のいずれかの方法を使用して、ファイル・システムへの管理アクセスを取得できます。

  • uidNumber 0にマップされ、rootが破棄されないかぎり、すべてのユーザーは通常のユーザーです。管理ユーザーをユーザーのLDAP属性の uidNumber 0にマップします。
  • SYS認証を使用してファイル・システムをセキュアなLinuxワークステーションにエクスポートします。rootユーザーを使用して、権限を作成および管理します。