ホワイトペーパー ID、アクセス トークン、ISILON ONEFS ユーザー マッピング サービス 要約 OneFS ユーザー マッピング サービスは、さまざまなディレクトリ サービス のユーザーID を単一のアクセス トークンに結合し、ユーザーが設定した ルールに従って変換します。このホワイト ペーパーでは、異なるディレクトリ サービスの ID をマッピングして、OneFS ファイル システムへのアクセスを 一元管理する方法について説明します。 2013 年 10 月 Copyright © 2013 EMC Corporation. All rights reserved.(不許複 製・禁無断転載) EMC Corporation は、この資料に記載される情報が、発行日時点で正確 であるとみなしています。この情報は通知なく変更されることがあります。 この資料に記載される情報は、「現状有姿」の条件で提供されています。 EMC Corporation は、この資料に記載される情報に関する、どのような 内容についても表明保証条項を設けず、特に、商品性や特定の目的に対 する適応性に対する黙示の保証は いたしません。 この資料に記載される、いかなる EMC ソフトウェアの使用、複製、頒布も、 当該ソフトウェア ライセンスが必要です。 最新の EMC 製品名については、EMC の Web サイトで EMC Corporation の商標を参照してください。 EMC2 、 EMC 、 EMC の ロ ゴ 、 Isilon 、 お よ び OneFS は 、 EMC Corporation の登録商標または商標です。その他のすべての名称なら びに製品についての商標は、それぞれの所有者の商標または登録商標 です。 パーツ番号:H12417-J ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 2 目次 概要 ................................................................................................................. 5 ID 管理、認証、アクセス制御 ................................................................................5 アクセス ゾーン ................................................................................................ 6 ユーザー マッピング サービスの位置づけ ...................................................................... 7 トークンの管理 ................................................................................................ 9 ディレクトリ サービスでユーザーを検索する ................................................................ 9 ID マッピング ..................................................................................................9 ユーザー マッピング ........................................................................................ 10 オン ディスク ID ............................................................................................. 10 複数のシステムと ID にわたるユーザーのマッピング ...................................................... 12 デフォルトのマッピング...................................................................................... 12 ルールによるトークンの操作 ............................................................................... 14 マッピング ルールの要素 ....................................................................................... 15 演算子とユーザー名を使用したルールの作成 ........................................................... 15 演算子 ....................................................................................................... 16 ユーザー名 .................................................................................................. 17 置換演算子を使用したルールの例 ..................................................................... 17 フィールドとオプション ....................................................................................... 19 オプション ................................................................................................. 20 パラメーター .............................................................................................. 20 追加演算子とユーザー オプションを使用したルールの例 ........................................... 21 OneFS がルールを評価する方法 ............................................................................ 23 ルールによるユーザー名の比較 ........................................................................... 23 ルールの方向 ............................................................................................... 23 評価の順番 .................................................................................................. 24 ワイルドカードの一致 ....................................................................................... 24 OneFS による最終的なアクセス トークンの生成方法 ................................................... 25 ユーザー マッピング ルールの作成 ........................................................................... 25 コマンドライン インターフェイスからのマッピング ルールの作成 ........................................ 26 コマンドライン インターフェイスを使用したルールの追加に関する注意 ................................ 27 ルールの構文とユーザー名の形式 ........................................................................ 27 ルールの例 .................................................................................................. 28 ルールに対するオプションの追加 ...................................................................... 28 デフォルト ユーザーの指定 ............................................................................. 29 デフォルト UNIX ユーザーの指定 ..................................................................... 29 テキスト ファイルでのルールの作成....................................................................... 30 テキスト ファイルにおけるデフォルト UNIX ユーザーのパラメーター形式 .......................... 30 テキスト ファイル内のルールの例 ...................................................................... 31 ベスト プラクティス ............................................................................................... 32 RFC 2307 属性を持つ Active Directory および Windows Services for UNIX ............... 32 ユーザー名の指定 .......................................................................................... 32 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 3 ID 範囲の重複なし ......................................................................................... 32 共通 UID および GID の使用を回避 ..................................................................... 32 マッピング ルール内のユーザー プリンシパル名は使用不可 ........................................... 32 ルールの順序 ............................................................................................... 32 補足グループに対する LDAP または NIS プライマリ グループの追加 ................................ 33 ユース ケース .................................................................................................... 34 Windows と UNIX のトークンのマージ .................................................................. 34 LDAP からプライマリ グループを取得 .................................................................... 35 デフォルト UNIX ユーザー パラメーターを使用したアクセスの拒否.................................... 35 LDAP の AD グループのマップをダンプ .................................................................. 35 結論 ............................................................................................................... 37 付録: プラットフォーム API を使用したマッピングの表示 .................................................. 37 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 4 概要 EMC® Isilon® NAS プラットフォームは、モジュラー ハードウェアと統合型ソフトウェアを組み合わせ て、非構造化データを活用する基盤を提供します。EMC Isilon クラスターは、分散型の OneFS®オ ペレーティング システムにより、グローバル ネームスペースによる拡張性に優れたストレージ プール とマルチプロトコル データ アクセスを提供します。 しかし、マルチプロトコル データ アクセスは通常、Microsoft Active Directory for SMB(Server Message Block)や LDAP(Lightweight Directory Access Protocol)for NFS(Network File System)など、複数のディレクトリ サービスを含むネットワーク環境で発生します。マルチプロトコル 環境でディレクトリ サービスが増加するに従って、OneFS ユーザー マッピング サービスは ID の処 理において中心的な役割を果たすようになっています。 マッピング サービスにより、ドメイン横断の完全なアクセス トークンをの提供が可能になります。複数 のディレクトリ サービスにアカウントを保有するユーザーが Isilon クラスターにログインすると、ユー ザー マッパーが、すべてのディレクトリ サービスのユーザーID と特権をネイティブのアクセス トー クンに結合します。OneFS はこのトークンを使用してユーザーを識別し、ディレクトリやファイルへの アクセスを制御します。 ユーザー マッパーにより、ユーザーID の結合および制御が可能になります。ユーザー マッパーは、 ディレクトリ サービスからユーザーID を収集すると、一連のルール(システム管理者が作成可能)を 適用してトークンを変更します。 たとえば、ユーザー マッピング ルールを設定して、Active Directory の ID と LDAP の ID を単一 のトークンに結合し、SMB で保存されたファイルと NFS で保存されたファイルへのアクセスを実現で きます。トークンには、Active Directory と LDAP のグループを追加できます。 マッピング ルールを作成して、次のようなさまざまな方法でアクセス トークンを処理することで、ID 関 連の問題を解決できます。 • Active Directory で認証したユーザーに UNIX ID を付与する • 複数の ID を単一のトークンに結合する • Active Directory や LDAP の競合する選択肢の中からプライマリ グループを選択する このホワイト ペーパーでは、OneFS で ID をマップする方法について説明します。ユーザー マッピン グ サービスで ID を制御することで、異なるディレクトリ サービスで管理されるマルチプロトコル デー タ アクセスで発生する NAS セキュリティ コンテキスト関連の ID 問題を解決できます。 ID 管理、認証、アクセス制御 OneFS オペレーティング システムにより、一般的なデータ アクセス プロトコル(SMB、FTP、NFS な ど)をサポートする単一の共有ボリューム(単一のネームスペース)として Isilon クラスターのファイル システムを利用できます。Linux マシンは NFS を使用して Isilon クラスターのファイル システムにア クセスし、Microsoft Windows コンピューターは SMB を使用してアクセスします。OneFS のデフォ ルトの共有ディレクトリ(ifs)により、Windows、UNIX、Linux、Mac OS X を実行するクライアント が同じディレクトリとファイルにアクセスできます。 NFS クライアントと SMB クライアントを安全にサポートするため、OneFS は次の 3 つのことを実行し ます。 • Active Directory、NIS、LDAP などのディレクトリ サービス(ID 管理システムおよび認証プロ バイダーでもある)に接続。ディレクトリ サービスは、ユーザー アカウントとグループ アカウントの セキュリティ データベース、パスワード、およびその他のアカウント情報を提供します。 • ユーザーおよびグループの認証。 • ディレクトリとファイルへのアクセスを制御。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 5 ユーザーが Isilon クラスターに接続すると、OneFS はそのユーザーのアカウントについて、接続先 のディレクトリ サービスを確認します。ユーザーのログイン名と一致するアカウントが見つかると、 OneFS はユーザーの ID を検証(ユーザー認証)します。認証の際、OneFS はユーザーのアクセス トークンを作成します。トークンには、ユーザーの完全な ID(グループ メンバーシップなど)が含まれ ます。OneFS は後にそのトークンを使用して、ディレクトリやファイルへのアクセス制御をサポートし ます。 OneFS では異なるディレクトリ サービスのユーザーを認証できるようにするため、1 つのディレクトリ サービスのユーザー アカウントを別のディレクトリ サービスのユーザー アカウントにマップする必要 があります。このプロセスをユーザー マッピングと呼びます。たとえば、Active Directory で管理さ れている Windows ユーザー アカウントは、NIS または LDAP の対応する同じ名前の UNIX アカ ウントにデフォルトでマッピングされます。これによりユーザーは、Windows コンピューターから SMB で保存したファイルにも、UNIX コンピューターから NFS で保存したファイルにも、単一のトークンでア クセスできます。 OneFS のデフォルト設定を使用してマッピングを管理できます。また、ユーザー マッピング サービス でルールを設定して、OneFS でユーザー アカウントを関連づける方法を制御することもできます。 アクセス ゾーン OneFS 7.0 以降では、ユーザー マッピング サービスは OneFS アクセス ゾーンで実行されます。ア クセス ゾーンとは、受信 IP アドレスに基づいてアクセスを制御するために設定できるコンテキストで す。アクセス ゾーンの目的は、ゾーンのコンテキストでのみ適用される認証プロバイダーのリストを定 義することです。ゾーンでユーザー マッピング ルールを設定して、認証プロバイダーからユーザーの アクセス トークンを処理できます。 しかし、アクセス ゾーンを追加するまでは、NFS マウント、SMB 共有、認証プロバイダーはデフォルト のアクセス ゾーン(システム アクセス ゾーン)で動作します。ユーザー マッパーは、ユーザーが作成 したアクセス ゾーンとシステム アクセス ゾーンのいずれでも使用できますが、マッピング ルールは ユーザーが作成したアクセス ゾーンでのみ適用されます。 アクセス ゾーンの作成に要件はありません。デフォルトのシステム アクセス ゾーンを使用してユー ザー マッピング サービスにルールを適用することもできます。 Isilon クラスターのアクセス ゾーンの一覧を表示するには、SSH でノードにログインして、次のコマン ドを実行します。 isi zone zones list 次の出力結果では、アクセス ゾーンが 1 つだけ存在します。「System」という名前のデフォルト ゾーンです。 Name -----System -----Total: 1 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 6 次のコマンドを実行すると、アクセス ゾーン(例:「System」という名前のデフォルト ゾーン)の認証プ ロバイダーが表示されます。 isi zone zones view System Name: Cache Size: Map Untrusted: SMB Shares: Auth Providers: Local Provider: NetBIOS Name: All SMB Shares: All Auth Providers: User Mapping Rules: Home Directory Umask: Skeleton Directory: Zone ID: System 4.77M Yes Yes Yes 0077 /usr/share/skel 1 アクセス ゾーンを作成して SMB 共有を統合することはできますが、アクセス ゾーンは NFS を認識し ません。アクセス ゾーンとその管理方法の詳細については、「OneFS 管理ガイド」と「OneFS コマンド リファレンス」を参照してください。 ユーザー マッピング サービスの位置づけ ユーザー マッパーは、アクセス トークンの作成と処理に関与する複数の OneFS メカニズムの 1 つ です。 Isilon クラスターにログオンすると、ユーザー マッパーがユーザーID を拡張し、Active Directory、 LDAP、NIS など、すべてのディレクトリ サービスの ID を追加します。ユーザー マッパーがすべての ディレクトリ サービスのユーザーID をマップすると、ユーザー アカウントに関連づけられた識別情 報を含むアクセス トークンを OneFS が生成します。トークンには、次のような識別子が含まれます。 • UNIX ユーザー識別子(UID) • UNIX グループ識別子(GID) • Windows ユーザー アカウントのセキュリティ識別子(SID) • Windows グループ アカウントのプライマリ グループ SID トークンには特権も含まれます。特権とは、特定の役割のメンバーであるユーザーまたはグループが システムで操作(コマンドの実行など)を行えるよう、管理者が役割に割り当てる権利です。OneFS の アクセス トークンには、管理用の RBAC(役割に基づいたアクセス制御)に由来する特権が一覧表示 されます。 一方、ファイルには権限が記載されます。OneFS では、権限は ACL(アクセス制御リスト)として表示 されます。ACL は、ディレクトリ、ファイル、その他のセキュリティ保護システム オブジェクトへのアクセ スを制御します。ユーザーがファイルにアクセスしようとすると、OneFS はユーザーのアクセス トー クンの ID とファイルの ACL を比較します。ファイルの ACL に、 ファイルへのアクセスを許可する ACE(アクセス制御エントリー)が含まれており、アクセスを拒否する ACE が含まれていない場合、OneFS はアクセスを許可します。 ユーザーのトークンとファイルの ACL を並べることで、OneFS がユーザーのアクセス トークンとファイ ルの ACL を比較する方法を視覚的に理解できます。次の例は、OneFS 7 を実行する Isilon クラス ターのユーザー トークンを示しています(このホワイト ペーパーに記載されるコマンドと例はすべて OneFS 7 を実行する Isilon クラスターのものです)。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 7 isi auth mapping token --user=MAINE-UNO¥jsmith User Name : MAINE-UNO¥jsmith UID : 1000000 SID : S-1-5-21-3542649673-1571749849-686233814-1117 On Disk : S-1-5-21-3542649673-1571749849-686233814-1117 ZID: 1 Zone: System Privileges: Primary Group Name : MAINE-UNO¥domain users GID : 1000000 SID : SID:S-1-5-21-3542649673-1571749849-686233814-513 Supplemental Identities Name : MAINE-UNO¥marketing GID : 1000001 SID : SID:S-1-5-21-3542649673-1571749849-686233814-1109 Name : Users GID : 1545 SID : S-1-5-32-545 -----------------クラスター上のファイルの ACL は次のとおりです。 -rwxr--r-- + 1 MAINE-UNO¥jsmith MAINE-UNO¥marketing 2056 Feb 2 10:18 adocs.txt OWNER: user:MAINE-UNO¥jsmith GROUP: group:MAINE-UNO¥marketing 0: user:MAINE-UNO¥jsmith allow file_gen_read,file_gen_write,file_gen_execute,std_write_dac 1: group:MAINE-UNO¥marketing allow file_gen_read 2: everyone allow file_gen_read このトークンのユーザーID は「MAINE-UNO¥jsmith」です。これは Active Directory アカウン トです。 また、このトークンは、このユーザーがマーケティング グループのメンバーであることも示してい ます。 ACL の ACE(アクセス制御エントリー)は、MAINE-UNO¥jsmith がファイルへのアクセスを許可 されていることを示しています。また、ACE には、file_gen_write(ファイルへの書き込み権限)な ど、このユーザーの権限も記載されています。 この ACE は、マーケティング グループのメンバーがファイルの読み取り権限を持つことを示してい ます。 このホワイト ペーパーでは、アクセス トークンについて詳しく説明します。後述のセクションでは、さま ざまなディレクトリ サービスの ID を結合するアクセス トークンの構造について分析します。さらに、 ユーザー マッピング サービスでルールを設定することで、アクセス トークンを変更する方法も紹介し ます。 権限の説明や POSIX モード ビットとの対応など、アクセス制御リストの詳細については、EMC Web サイトの「統合セキュリティ モデルによる EMC Isilon マルチプロトコル データ アクセス」を参照してく ださい。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 8 トークンの管理 OneFS は、次の 4 つのシステム プロセスによってトークンを生成します。 1. OneFS が接続しているディレクトリ サービスでユーザーを検索する 2. ディレクトリ サービス全体でユーザーの識別子を関連づける(ID マッピング) 3. 異なるディレクトリ サービスのアクセス トークンを結合する(ユーザー マッピング) 4. オン ディスク ID を決定する ディレクトリ サービスでユーザーを検索する OneFS は、次のディレクトリ サービスと連携して、ユーザーを認証し、ファイルへのアクセスを制御し ます。 • Microsoft Active Directory(AD):ドメイン コントローラーを使用してユーザーを認証し、リソー スへのアクセスを許可する一般的なディレクトリ サービス。Active Directory は、UNIX システ ムや Linux システムと連携するために、RFC 2307 準拠の LDAP 属性もオプションでサポート • LDAP(Lightweight Directory Access Protocol):ディレクトリ サービスを照会および変更す るためのアプリケーション プロトコル • NIS(Network Information Service):ユーザー名などのシステム情報を配信するためのク ライアント/サーバー型ディレクトリ サービス • ローカル ユーザーとローカル グループ: 外部システムである Active Directory、LDAP、NIS とは異なり、ローカル プロバイダーは OneFS の内部コンポーネント • /etc/spwd.db および/etc/group ファイル内のアカウントを処理するためのファイル プロバ イダー。OneFS のコンポーネントでもあるこのファイル プロバイダーにより、他のシステムから UNIX のユーザーおよびグループ アカウント情報をコピーできる ユーザーが Isilon クラスターに接続すると、OneFS がディレクトリ サービスでユーザーを検索して、 ユーザーのアクセス トークンを拡張し、他の ID やグループを追加します。ユーザーの ID を拡張して、 他のディレクトリ サービスのアカウント情報を追加する際には、ID マッピング サービスとユーザー マッ ピング サービスの両方が関係します。 OneFS 7.0 以降を実行するクラスターが接続しているディレクトリ サービスを確認するには、ノードに ログインして、次のコマンドをルートとして実行します。 isi auth status ID Active Server Status ---------------------------------------------------------------------------------------lsa-activedirectory-provider:YORK.HULL.EXAMPLE.COM yorkdns.york.hull.example.com online lsa-local-provider:System active lsa-file-provider:System active lsa-ldap-provider:colorado online ---------------------------------------------------------------------------------------Total: 4 OneFS ユーザー インターフェイスでは通常、ディレクトリ サービスを認証プロバイダーと呼びます。 ID マッピング ID マッピング サービスとユーザー マッピング サービスは名前は似ていますが、それぞれ異なります。 ID マッピング サービスの目的は、Windows SID と UNIX UID をマップして、すべてのプロトコルで 一貫したアクセスを提供することです。 認証の際、ID マッピング サービスは Windows 識別子を UNIX 識別子に関連づけます。ユーザー が SMB で Isilon クラスターに接続すると、ID マッピング サービスがユーザーの SID を UID と GID にマッピングします。これにより、NFS で保存されたファイルにアクセスできるようになります。デフォル トでは、ID マッピング サービスは同じ名前を持つアカウントを結合します。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 9 一方、ユーザーが NFS でクラスターに接続した場合、デフォルトでは、ID マッピング サービスは UID と GID を SID にマップしません。すでに UID 形式と GID 形式の ID がデフォルトでディスクに保存 されているからです。そのため、NFS では UID と GID を SID にマッピングする必要がありません。 次の例は、同じ名前のアカウントを LDAP にも持つ Windows ユーザーが、Active Directory で認 証した場合のデフォルトの ID マッピングを示しています。このユーザーは同じ名前のアカウントが LDAP にもあるため、OneFS はデフォルトでユーザーの Windows SID を LDAP の UID にマッピン グし、UID をトークンに追加します (アクセス トークンのフォーマットは、OneFS 7.0 以降と OneFS 6.5 以前で少し異なります。このホワイト ペーパーは OneFS 7.0 以降を対象としているため、次の トークンは OneFS 7.0 のものです。関連性の低い情報は一部省略しています)。 isi auth mapping token --user=york¥¥stand User Name : YORK¥stand UID : 4236 SID : S-1-5-21-1195855716-1269722693-1240286574-591111 On Disk : 4236 ZID: 1 Zone: System Privileges: Primary Group Name : YORK¥york_sh_udg GID : 1000000 SID : S-1-5-21-1195855716-1269722693-1240286574-66133 Supplemental Identities Name : YORK¥sd-york space group GID : 1000002 SID : S-1-5-21-1195855716-1269722693-1240286574-579109 プライマリ ユーザー名(この場合は Active Directory のユーザー名) LDAP のユーザー名「stand」のアカウント UID Active Directory のユーザーSID プライマリ グループ アカウントが Active Directory のアカウントであり、一致するグループ名が LDAP にはないため、OneFS は 1,000,000~2,000,000 の範囲内で自動的に GID をグルー プに割り当てます。また、OneFS は、補足 ID リスト内のグループにも GID を割り当てます。 ID マッピングは、isi auth mapping コマンドを使用して一部管理できます。「OneFS コマンド リ ファレンス」と「OneFS 管理ガイド」を参照してください。 ユーザー マッピング ID マッパーが UID や SID などのアカウント識別子をディレクトリ サービス全体でリンクするのに対し て、ユーザー マッピング サービスはさまざまなディレクトリ サービスのアクセス トークンを単一のトー クンに結合します。たとえば、ユーザー マッピング サービスは、「DESKTOP¥jane」という名前の Active Directory の Windows アカウントを、「jane」という名前の LDAP の UNIX アカウントにマッ プし、両アカウントのグループ メンバーシップ情報を結合したアクセス トークンを生成します。ユーザー マッピング サービスがトークンを結合する方法については、後述のセクションで例を紹介します。 オン ディスク ID ユーザー マッパーがトークンを結合すると、OneFS はプライマリ ユーザーおよびグループの正式な識 別子(優先オン ディスク ID)を決定します。オン ディスク ID の構成オプションには、「UNIX」、「SID」、 「ネイティブ」があります。旧バージョンの OneFS ではデフォルトの ID タイプが「UNIX」だったため、以 前のバージョンの OneFS からアップグレードすると、オン ディスク ID は「UNIX」に設定されます。SID のオン ディスク ID は、Active Directory のみで管理する Windows システムで構成される同種ネッ トワーク用です。新規インストールでは、オン ディスク ID が「ネイティブ」に設定されます。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 10 オン ディスク ID のタイプは変更できますが、多くの場合、UNIX システムと Windows システムで構 成されるネットワークではネイティブの ID オプションが最適です。ネイティブ モードでは、OneFS は UID を優先的にオン ディスク ID として設定します。これにより、NFS のパフォーマンスが向上するた めです。OneFS は、ディスク上に 1 種類の識別子(UID と GID、または SID)しか保存しません。 オン ディスク ID のネイティブ構成オプションにより、OneFS の認証デーモンは、次の順番でオン ディ スク ID のタイプをチェックし、ディスクに保存する適切な識別子を選択します。 1. ア ル ゴ リ ズ ム マ ッ ピ ン グ : 内 部 ID マ ッ ピ ン グ デー タ ベ ース 内 の S-1-22-1-UID や S-1-22-2-GID と一致する SID が、対応する UNIX ID に変換され、UID と GID がオン ディ スク ID として設定されます。 2. 外部マッピング: RFC 2307 属性を含む Active Directory、LDAP、NIS などのディレクトリ サービスに UID と GID が明示的に定義されているユーザー、またはオン ディスク ID として UNIX ID が設定されている OneFS ファイル プロバイダーもしくはローカル プロバイダー。 3. 永続マッピング: ID マッパーのデータベースに永続的に保存されるマッピング。ID マッパーの データベースに永続マッピングされている ID は、そのマッピングの宛先をオン ディスク ID として 使用します。このような状況は主に手動 ID マッピングで見られます。たとえば、GID:10000 を S-1-5-32-545 に ID マッピングする場合、オン ディスク ストレージ GID:10000 をリクエスト すると S-1-5-32-545 が返されます。 4. マッピングなし: 他のディレクトリ サービスや ID データベースを照会しても UID や GID が見つ からない場合、そのユーザーの SID がオン ディスク ID として設定されます。さらに、ユーザーが NFS でファイルにアクセスできるよう、OneFS は、事前設定された 1,000,000~2,000,000 の 範囲内で UID と GID を割り当て、永続的に保存し、その後の認証リクエストの際に使用します。 ネイティブ モードでは、OneFS が生成した UID または GID がオン ディスク ID として設定され ることはありません。 オン ディスク ID は、OneFS に SSH でログインして次の認証マッピング コマンドを実行することで表 示できます。ここで、オン ディスク ID のオプションが「ネイティブ」に設定されている例を示します。こ のケースでは、ユーザーは外部ディレクトリ サービスでマッピングを明示的に定義しておらず、また、 ID マッパー データベースに永続的に保存されたマッピングもありません。この実行結果では、 OneFS によって Active Directory のユーザーSID がオン ディスク ID として設定され、オン ディス ク ID を主として簡略化された次のような出力結果が表示されます。 isi auth mapping token --user=york¥¥stand User Name : YORK¥stand UID : 1000000 SID : S-1-5-21-1195855716-1269722693-1240286574-591111 On Disk : S-1-5-21-1195855716-1269722693-1240286574-591111 ユーザーの指定がないため、OneFS で自動生成された UID。 ユーザーのオン ディスク ID。このケースでは Active Directory の SID。 オン ディスク ID のタイプが「ネイティブ」に設定されており、UID は OneFS によって自動生成され ていることから、UID ではなく SID がオン ディスク ID として設定されます。 注: 本書に記載されたすべての例、ベスト プラクティス、ユースケースは、オン ディスク ID が「ネイ ティブ」に設定されていることを前提としています。 オン ディスク ID の設定に関する詳細は、「OneFS 管理ガイド」を参照してください。EMC Isilon のド キュメント ポータルには、このほかにも複数のディレクトリ サービスとの連携に関するベスト プラク ティスが含まれます。特に、EMC の Web サイトで「統合セキュリティ モデルによる EMC Isilon マル チプロトコル データ アクセス」というタイトルのホワイト ペーパーを参照してください。 ベスト プラクティスとして、オン ディスク ID を変更する場合は Repair Permissions ジョブを実行す る必要があります。手順については、「OneFS 管理ガイド」を参照してください。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 11 複数のシステムと ID にわたるユーザーのマッピング ユーザー マッピングは、ユーザーのセキュリティ ID、ユーザーID、グループ ID の完全なリストを指定 することによってアクセスを制御する方法を提供します。OneFS ではこれらの ID(それぞれ SID、 UID、GID と呼ばれる)を使って所有権を判定し、アクセスを確認します。 ユーザー マッピング サービスでは、OneFS で使用される ID を変更したり、補足ユーザーID を追加 したり、ユーザー グループ メンバーシップを変更することによって、ユーザーのアクセス トークンを操 作するルールを適用できます。OneFS でユーザー マッピングが実行されるのは、ログイン時または プロトコル アクセス時のみです。 デフォルトのマッピング ルールを設定しない場合、1 つのディレクトリ サービスで認証を受けたユーザーには、アカウント名が 同じである限り、他のディレクトリ サービスの識別情報へのフル アクセスが提供されます。たとえば、 Active Directory ドメインで Desktop¥jane として認証されたユーザーには、jane の対応する UNIX ユーザー アカウントの ID が LDAP または NIS から自動的に提供されます。 最も一般的なシナリオでは、OneFS は Active Directory と LDAP の 2 つのディレクトリ サービス に接続されます。このケースでは、デフォルトのマッピングによって、LDAP の UID と、Active Directory のデフォルト グループの SID がユーザーに提供されます。ユーザーのグループは Active Directory と LDAP から取得され、LDAP グループがリストに追加されます。LDAP からグ ループを取得するために、マッピング サービスで memberUid のクエリが発行されます。ユーザーの ホーム ディレクトリ、gecos、シェルが Active Directory から取得されます。 次の一連の例では、Active Directory で認証されているが LDAP にも同じ名前で対応するアカウン トを持つ Windows ユーザーに対し、OneFS でどのようにアクセス トークンが構築されるかを説明す るものです。ユーザー マッピング ルールは設定されていません。 まず、次のコマンドを実行し、ユーザーの Active Directory ドメイン アカウントをターゲットに指定す ることで、ユーザーのトークンを Active Directory からのみ表示できます。出力結果は、関係のない 情報は省略して簡潔化されています。 isi auth users view --user=york¥¥stand --show-groups Name: YORK¥stand DN: CN=stand,CN=Users,DC=york,DC=hull,DC=example,DC=com DNS Domain: york.hull.example.com Domain: YORK Provider: lsa-activedirectory-provider:YORK.HULL.EXAMPLE.COM Sam Account Name: stand UID: 4326 SID: S-1-5-21-1195855716-1269722693-1240286574-591111 Primary Group ID : GID:1000000 Name : YORK¥york_sh_udg Additional Groups: YORK¥sd-york space group YORK¥york_sh_udg YORK¥sd-york-group YORK¥sd-group YORK¥domain users ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 12 次に、次のコマンドを実行し、ユーザーの LDAP アカウントをターゲットに指定することで、ユーザーの トークンを LDAP からのみ表示できます。出力結果は簡略化されています。 isi auth user view --user=stand --show-groups Name: stand DN: uid=stand,ou=People,dc=colorado4,dc=hull,dc=example,dc=com DNS Domain: Domain: LDAP_USERS Provider: lsa-ldap-provider:Unix LDAP Sam Account Name: stand UID: 4326 SID: S-1-22-1-4326 Primary Group ID : GID:7222 Name : stand Additional Groups: stand sd-group sd-group2 マッピング ルールが設定されておらず、ユーザーが SMB を介してクラスターにログインする場合、 OneFS ではユーザーが Active Directory で認証され、Active Directory のアカウント情報を優 先するアクセス トークンが作成されますが、UNIX LDAP トークンから補足グループが最終トークンの 末尾に追加されます。 isi auth mapping token --user=york¥¥stand User Name : YORK¥stand UID : 4326 SID : S-1-5-21-1195855716-1269722693-1240286574-591111 On Disk : 4326 ZID: 1 Zone: System Privileges: Primary Group Name : YORK¥york_sh_udg GID : 1000000 SID : S-1-5-21-1195855716-1269722693-1240286574-66133 Supplemental Identities Name : YORK¥sd-york space group GID : 1000002 SID : S-1-5-21-1195855716-1269722693-1240286574-579109 Name : YORK¥sd-york-group GID : 1000004 SID : S-1-5-21-1195855716-1269722693-1240286574-475739 Name : YORK¥sd-group GID : 1000003 SID : S-1-5-21-1195855716-1269722693-1240286574-169779 Name : YORK¥domain users GID : 1000001 SID : S-1-5-21-1195855716-1269722693-1240286574-513 Name : Users GID : 1545 SID : S-1-5-32-545 Name : sd-group GID : 100001 SID : S-1-22-2-100001 Name : sd-group2 GID : 100002 SID : S-1-22-2-100002 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 13 プライマリ ユーザー名は Active Directory から取得されます。 ユーザーの UID は LDAP から取得されます。 ユーザーの SID は Active Directory から取得されます。 プライマリ グループは Active Directory から取得されます。 グループ名の前のドメイン名が示すように、これらの補足 ID は Active Directory から取得され ます。 Users という名称のグループとその GID である 1545 は、OneFS ローカル プロバイダーから取 得された組み込みの OneFS ローカル グループで、デフォルトでトークン内に表示されます。表示 される理由は、OneFS オペレーティング システムでは、システムが Active Directory ドメインに 参加したときに、標準的な Microsoft Windows の手法を採用してローカル ユーザー グループ に Domain Users グループが追加されるからです。 これら最後の 2 つのグループは、UNIX LDAP トークンから取得されたトークンに追加されます。 ただし、マッピング サービスではユーザーの LDAP のプライマリ グループが除外されます。LDAP の プライマリ グループを最終トークンに追加するには、ユーザー マッピング ルールを作成します。この 方法については、本書の以降のセクションで説明します。 UNIX ユーザー名を使用して isi auth mapping コマンドを実行すると、デフォルトでは、UNIX ユーザーの Active Directory アカウント情報とのマッピングは行われずに OneFS によって LDAP の UNIX ユーザー情報が検索されます。その理由は、 OneFS での UID の使用を選択可能にして、 NFS パフォーマンスを最大化するためです。OneFS に Active Directory の情報も表示された場合、 コマンドの結果は、AD ユーザーに対する isi auth mapping リクエストの結果(LDAP から取得し た情報を含む)との対称形式で表示されます。ただし、対称形式で表示されると NFS のパフォーマン スが低下します。 ルールによるトークンの操作 ユーザーID を制御するために、ユーザー マッパーには 3 つの主要メカニズムがあります。 1. アクセス トークンのオブジェクト モデル。オブジェクト モデルを理解しなくてもルールは作成でき ますが、モデルを使用すると、OneFS によるトークンの処理方法を視覚化しやすくなります。 2. トークン操作のルール。ルールには、ルールが何を実行するかを定義する演算子と、そのアク ションをどのように実行するかを定義するオプションが含まれます。 3. ルールを処理し、ルールをトークンに適用するエンジン。このエンジンは、ルールに何らかの制 約を課し、その適用に関わる順序でルールを処理します。 これら 3 つのメカニズムが統合されたトークン操作のフレームワークが提供されることで、以下のよう に複数のディレクトリ サービスを利用する環境に共通のユースケースに対処できます。 • 複数の ID を 1 つのトークンに統合。トークンは複数のプロトコルで機能し、Active Directory と LDAP 双方の補足グループを含む • Windows と UNIX で競合する選択肢がある場合のプライマリ グループの選択 • Active Directory と LDAP が認証プロバイダーとしてサービスを提供する場合の ID の統合。 たとえば、Active Directory で認証を受けながら、UNIX ID を使用可能 • NIS と Active Directory が認証プロバイダーとしてサービスを提供する場合の ID の管理 Web 管理インターフェイスやコマンド ライン インターフェイスを使ってマッピング ルールの要素を制御 することによって、これらの各ユース ケースに対処できます。また、OneFS プラットフォーム API を使 用すると、マッピングのさまざまな側面のクエリや操作が自動化されます。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 14 マッピング ルールの要素 ユーザー マッパーによるルールの適用方法に影響を与える要素は次のとおりです。 • ルールによって実行される処理を決める演算子 • ユーザー名のフィールド • オプション • パラメーター • ワイルドカード このセクションでは、ユーザー マッピング サービスによって演算子、フィールド、オプションがどのように 解釈されるかを説明します。以降のセクションで、これらの要素を組み合わせてルールを作成する方 法を説明します。 演算子とユーザー名を使用したルールの作成 演算子とユーザー名を組み合わせて、ルールを作成します。演算子は、ルールが何を実行するかを 決定します。5 種類の演算子があります。 1. 追加 2. 挿入 3. 置換 4. 削除 5. 結合 図 1. OneFS 管理インターフェイスに表示された演算子 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 15 演算子 以下の表に、ルールで使用可能な演算子を示します。OneFS コマンド ライン インターフェイスでルー ルを作成するとき、演算子は記号で指定します。演算子はマッピング サービスがルールを処理する方 向に関わります。ルールの方向については後ほど説明します。各ルールに設定できる演算子は 1 つだ けです。 演算子 追加 記号 ++ 方向 左から右 説明 フィールドをトークンに追加することでアクセス トー クンを変更します。マッピング サービスによって、オ プション リスト(user、group、groups)に指定され たフィールドがルールの最初の ID に追加されま す。フィールドはルールの 2 番目の ID からコピーさ れます。追加されたすべての識別子は追加グルー プ リストのメンバーになります。オプションが指定さ れていない追加ルールが実行できるのはルック アップ操作のみです。トークンを変更するにはオプ ションを指定する必要があります。オプションについ ては後ほど説明します。 挿入 += 左から右 フィールドをトークンに追加することで既存のトー クンを変更します。オプション リスト(user、group、 groups)に指定されたフィールドが新しい ID からコ ピーされ、トークンの ID に挿入されます。ルールに よって挿入されたプライマリ ユーザーまたはプライマ リ グループが、トークンの新しいプライマリ ユーザー またはプライマリ グループになります。それまでのプ ライマリ ユーザーまたはプライマリ グループは、別の ID リストに移動されます。プライマリ ユーザーを変更 してもトークンのユーザー名は変更されません。ID から別のグループが挿入された場合、新しいグルー プが既存のグループに追加されます。 置換 => 左から右 トークンを削除し、2 番目のユーザー名で識別され ている新しいトークンと置き換えます。2 番目のユー ザ ー 名 が 空 白 に な って い る 場 合 は 、 マ ッ ピ ン グ サービスによってトークンの最初のユーザー名が削 除されてユーザー名がない状態になるため、「no such user(このようなユーザーが存在しません)」 というエラーが出てログインに失敗します。 グループ削除 -- 単項 補足グループを削除することでトークンを変更します。 結合 &= 双方向 新しい ID をトークンにマージします。新しい ID が 2 番目のユーザーの場合は既存の ID の後に挿入さ れ、それ以外の場合は既存の ID の前に挿入され ます。新しいシステム オブジェクトの所有権の決定 には最初の ID が使用されるため、既存の ID がす でにリストの先頭にあるときには挿入位置が特に重 要になります。 結合ルールは双方向のため、最初のユーザー名が トークンと一致する場合は、左から右のルールであ るとみなされます。2 番目のユーザー名がトークン と一致する場合は、最初のユーザーのワイルドカー ドが展開され、ルールを適用する前に最初のユー ザーが解決されます。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 16 ユーザー名 ルールでは、UNIX ユーザー名または Active Directory ユーザー名を使ってユーザーを指定できま す。Active Directory ユーザーを指定する場合は、DOMAIN¥user 形式を使用し、DOMAIN には Active Directory ドメイン名を指定します。ドメイン名またはユーザー名では、アスタリスク記号 (*)を使用してワイルドカードを追加できます。 この最も基本形のルールでは、ソース ユーザー名に演算子とターゲット ユーザー名を次の形式で組 み合わせます。 sourceUsername operator targetUsername 置換演算子を使用したルールの例 Active Directory に user_9440 の名前で登録されているユーザーの次のアクセス トークンについ て見てみましょう。 isi auth mapping token YORK¥¥user_9440 User Name : YORK¥user_9440 UID : 1000001 SID : S-1-5-21-1195855716-1269722693-1240286574-11547 On Disk : S-1-5-21-1195855716-1269722693-1240286574-11547 ZID: 1 Zone: System Privileges: Primary Group Name : YORK¥domain users GID : 1000000 SID : S-1-5-21-1195855716-1269722693-1240286574-513 Supplemental Identities Name : Users GID : 1545 SID : S-1-5-32-545 Active Directory のユーザー アカウント OneFS によって自動再生された UID 一方、LDAP には、lduser_010 という名前のユーザーが次のアカウント情報で登録されています。 isi auth mapping token lduser_010 User Name : lduser_010 UID : 10010 SID : S-1-22-1-10010 On Disk : 10010 ZID: 1 Zone: System Privileges: Primary Group Name : example GID : 10000 SID : S-1-22-2-10000 On Disk : 10000 Supplemental Identities Name : ldgroup_20user UID : GID : 10026 SID : S-1-22-2-10026 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 17 LDAP に lduser_010 の名前で登録された UNIX ユーザー アカウント LDAP に登録されたユーザーの UID OneFS によってアカウントに生成された SID。この SID には LDAP の UID が含まれます。 次 の ル ー ル で は 、 置 換 演 算 子 の 記 号 を 使 用 し て 、 Active Directory ユ ー ザ ー を LDAP の lduser_010 という名前のユーザーに置き換えています。 isi zone zones modify System --user-mapping-rules="YORK¥¥user_9440 => lduser_010" 設定したルールは次のコマンドで表示できます。 isi zone zones view System Name: System Cache Size: 4.77M Map Untrusted: SMB Shares: Auth Providers: Local Provider: Yes NetBIOS Name: All SMB Shares: Yes All Auth Providers: Yes User Mapping Rules: YORK¥user_9440 => lduser_010 Home Directory Umask: 0077 Skeleton Directory: /usr/share/skel Audit Success: Audit Failure: Zone ID: 1 このルールは、Active Directory から取得した ID を LDAP から取得した ID で置き換えて、Active Directory ユーザーのアクセス トークンを変更しています。同じユーザーを指していますが、ID の情 報は LDAP から取得したものになりました。 isi auth mapping token YORK¥¥user_9440 User Name : lduser_010 UID : 10010 SID : S-1-22-1-10010 ZID: 1 Zone: System Privileges: Primary Group Name : example GID : 10000 SID : S-1-22-2-10000 Supplemental Identities Name : ldgroup_20user GID : 10026 SID : S-1-22-2-10026 LDAP から取得されたユーザー アカウント LDAP から取得されたユーザーUID LDAP のユーザーUID から生成された SID ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 18 フィールドとオプション ルールには、アクセス トークンのフィールドをターゲットにしたオプションを指定できます。各フィールド は、選択したユーザーから取得されたプライマリ UID やプライマリ ユーザーSID など、アクセス トー クンの一部分を表しています。ルールを作成する際に、OneFS で 2 つの ID のセクションをどのよう に組み合わせて 1 つのトークンにするかを操作するオプションを追加できます。たとえば、補足グルー プだけをトークンに追加するオプションを指定できます。 マッピング ルールを使って、以下のトークン フィールドを操作できます。 • username • unix_name • primary_uid • primary_user_sid • primary_gid • primary_group_sid • additional_ids(補足グループを含む) 図 2: 一部のフィールドは OneFS 管理インターフェイスに表示されます(インターフェイスのユーザー はユーザー名と同じ) OneFS のアクセス トークンのフィールドを見ることもできます。 isi auth mapping token --user york¥¥stand User Name : YORK¥stand UID : 100000 SID : S-1-5-21-1195855716-1269722693-1240286574-591111 On Disk : S-1-5-21-1195855716-1269722693-1240286574-591111 ZID: 1 Zone: System Privileges: Primary Group Name : YORK¥york_sh_udg GID : 1000000 SID : S-1-5-21-1195855716-1269722693-1240286574-66133 Supplemental Identities Name : YORK¥sd-york space group GID : 1000002 SID : S-1-5-21-1195855716-1269722693-1240286574-579109 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 19 プライマリ ユーザー名 プライマリ UID プライマリ ユーザーSID プライマリ GID プライマリ グループ SID 追加の ID。補足グループが「Supplemental Identities」の下に表示されます プライマリ UID とプライマリ ユーザーSID は常に同じユーザーに対応づけられていますが、以降で 例を挙げるように、ユーザー名フィールドにリストされたユーザーとは異なってもかまいません。プライ マリ GID とプライマリ グループ SID は常に同じグループに対応づけられています。 オプション オプションによって、ルールでトークンの識別情報を組み合わせる方法を制御できます。break オプ ションは例外で、 OneFS が他のルールを処理するのを停止します。 1 つのルールに複数のオプションを適用できますが、演算子によって使用できないオプションがありま す。次の表は、各オプションを使用可能な演算子とその結果を示したものです。 オプション user 説明 user オプションは挿入と追加の演算子と一緒に使用できます。プライマリ UID とプライマリ ユーザーSID をトークンにコピーします。 group group オプションは、挿入と追加の演算子と一緒に使用できます。プライマリ GID とプライマリ グループ SID をトークンにコピーします。 groups groups オプションは、挿入と追加の演算子と一緒に使用できます。すべての 追加 ID をトークンにコピーします (この追加の ID にはプライマリ UID、プライ マリ GID、プライマリ グループ SID は含まれません)。 default_user デフォルト ユーザー オプションは、グループ削除を除くすべての演算子と一緒 に使用できます。マッピング サービスでは、ルールに 2 番目のユーザーが見 つからなかった場合にデフォルト ユーザーのユーザー名が検索されます。デ フォルト ユーザー名にはワイルドカードは使用できません。コマンドライン イン ターフェイスでデフォルト ユーザー オプションをルールに設定する場合、アン ダースコアを使用して指定する必要があります(default_user)。 break break オプションはすべての演算子と一緒に使用できます。break オプ ションを使用すると、このオプションが挿入されたポイント以降でのマッピング サービスによるルールの適用が停止します。マッピング サービスによって、 break ポイントで最終トークンが生成されます。 パラメーター 1 つのグローバル パラメーターとして デフォルト UNIX ユーザーがあります。デフォルト ユーザー オ プションと混同しないでください。デフォルト UNIX ユーザーは、OneFS では自動生成されないプライ マリ UID と GID が必ず最終トークンに含まれるようにするものです。このパラメーターはアクセス ゾーンに設定されたすべてのルールに適用されます。 デフォルト UNIX ユーザー パラメーターが設定されている場合、プライマリ UID と GID がない ID は 破棄され、ID はデフォルト UNIX ユーザーと置き換えられます。デフォルト UNIX ユーザーがない場 合、またはデフォルト UNIX ユーザーに UID と GID が設定されていない場合、OneFS はアクセスを 拒否して、「no such user(このようなユーザーが存在しません。)」というエラーを出力します。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 20 このパラメーターを設定する場合は、管理コマンドの実行権限がない周知のアカウント(nobody アカ ウントなど)にデフォルト UNIX ユーザーを割り当てる必要があります。 図 3. デフォルト UNIX ユーザーのパラメーターは、ルールを作成する前または後に、OneFS Web 管理インターフェイスの以下のフォームで設定します。 これに対し、デフォルト ユーザー オプションは、このオプションが指定されたルールにのみ適用されま す。デフォルト ユーザー オプションは、OneFS Web 管理インターフェイスでルールを作成する際に 設定します(図 4 参照)。 図 4:デフォルト ユーザー オプションの設定 要約すると、デフォルト UNIX ユーザー オプションのパラメーターは、OneFS が、ゾーン内のすべて のルールを適用した後に、権限のある UID とプライマリ GID がないトークンを置き換えます。デフォ ルト ユーザーのオプションは、ルール内のユーザー名の検索が失敗したときにトークン内に含める ユーザーを選択します。 追加演算子とユーザー オプションを使用したルールの例 追加演算子とユーザー オプションを使用したルールがトークンに与える影響の例を以下に示します。 ユーザー オプションが、プライマリ UID とプライマリ ユーザーSID をトークンに追加します。 user_9449 という名前のユーザーの次のアクセス トークンが Active Directory から取得されたと します。 isi auth mapping token YORK¥¥user_9449 User Name : YORK¥user_9449 UID : 1000000 SID : S-1-5-21-1195855716-1269722693-1240286574-11556 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 21 ZID: 1 Zone: System Privileges: Primary Group Name : YORK¥domain users GID : 1000000 SID : S-1-5-21-1195855716-1269722693-1240286574-513 Supplemental Identities Name : Users GID : 1545 SID : S-1-5-32-545 以下のルールには、追加演算子と、LDAP ユーザーのプライマリ UID およびプライマリ SID を Active Directory ユーザーのトークンに追加するためのユーザー オプションが含まれています。 isi zone zones modify System --user-mapping-rules="YORK¥¥user_9449 ++ lduser_010 [user]" ルールを設定したら、次のコマンドでそのルールを表示できます。出力はルールに焦点を当てるため に要約されています。 isi zone zones view System Name: System ... User Mapping Rules: YORK¥user_9449 ++ lduser_010 [user] このルールは、次のアクセス トークンを生成します。このユーザー オプションは、太字で強調表示さ れた LDAP ユーザーのプライマリ UID とプライマリ GID を、トークンの Supplemental Identities セクションに追加します。 isi auth mapping token YORK¥¥user_9449 User Name : YORK¥user_9449 UID : 1000000 SID : S-1-5-21-1195855716-1269722693-1240286574-11556 ZID: 1 Zone: System Privileges: Primary Group Name : YORK¥domain users GID : 1000000 SID : S-1-5-21-1195855716-1269722693-1240286574-513 Supplemental Identities Name : Users GID : 1545 SID : S-1-5-32-545 Name : lduser_010 UID : 10010 SID : S-1-22-1-10010 その他の例は、後のセクションで紹介します。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 22 OneFS がルールを評価する方法 このセクションでは、OneFS が最終的なアクセス トークンを生成する際にどのようにユーザー マッ ピング ルールを処理するのかについて説明します。 ルールによるユーザー名の比較 ルールには、最低 1 つのユーザー名が含まれており、すべての ID には 1 つのユーザー名が含まれ ています。マッピング ルールを適用する場合、OneFS は、ルール内のユーザー名と ID を一致させる 必要があります。 ユーザー名は、Active Directory アカウント名と、ドメイン名またはドメイン名を持たない UNIX 名の 組み合わせです。UNIX 名は、Active Directory アカウント名と同じである場合があります。ユー ザー名がドメイン名と組み合わされていない場合、OneFS は、そのユーザー名が UNIX 名であると 認識します。 ルール内のユーザー名を Active Directory ユーザーと一致させるには、ドメインの名前またはワイ ルドカードとユーザー名を以下のように組み合わせる必要があります。 DOMAIN¥¥username または *¥¥username LDAP、NIS、またはローカル プロバイダーの UNIX 名を一致させるには、ルール内の名前を、ドメ イン名なしか、ドメインのワイルドカードなしでルール内の名前を設定する必要があります。 OneFS がユーザー名と ID を比較する際、OneFS は、デフォルトで大文字と小文字を区別しません。 ユーザー名を正規化するオプションをオフにしない限り、OneFS はユーザー名の大文字と小文字を 区別しません (OneFS のコマンド リファレンスで lookup-normalize-users オプションを指定し た isi auth ads modify コマンドの使用例を参照してください)。 ルールの方向 ルールは、3 つ方向 (左から右、双方向、単項)のうち、いずれかの方向で適用されます。ルールの方 向によって、ユーザー マッピング サービスが、ルール内のユーザー名を一致させ、トークンを修正す る方法が決まります。 方向 左から右 説明 「左から右」ルールでは、2 つのユーザー名が使用されます。マッパーは、1 番目 のユーザー名とトークンを比較します。1 番目のユーザー名がトークンと一致した 場合、マッピング サービスは、2 番目のユーザー名のワイルドカードを展開して から、認証プロバイダーで検索することによって、2 番目のユーザー名を解決しま す。検索によって 2 番目のユーザー名が判明したら、マッピング サービスがその ルールを適用します。 双方向 「双方向」ルールでは、2 つのユーザー名が使用されます。1 番目のユーザー名 がトークンと一致したら、マッピング サービスが、そのルールを「左から右」ルール として評価します。2 番目のユーザー名がトークンと一致する場合は、最初のユー ザーのワイルドカードが展開され、ルールを適用する前に最初のユーザーが解 決されます。 単項 「単項」ルールでは、1 つのユーザー名のみを使用します。ユーザー名が ID と一 致したら、マッピング サービスはルールを適用します。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 23 評価の順番 OneFS は、各ルールをトークンに対してシーケンシャルに適用します。OneFS が、ルール一覧内の すべてのルールを適用したら、OneFS は、最終的なアクセス トークンを生成します。ただし、ルール 内にブレーク オプションを挿入することによって、OneFS によるルールの適用を途中で停止すること ができます。OneFS は、ブレーク オプション後のルールは適用しません。 ルールの方向と、OneFS がルールを評価する順番は、特に、OneFS がワイルドカードを処理する方 法に影響を与えます。 ワイルドカードの一致 ルールによって、ユーザー名とワイルドカードを一致させることができます。たとえば、Active Directory ドメインまたは Active Directory アカウント名をアスタリスクとして設定すると、OneFS は、そのアスタリスクをワイルドカードとして処理します。ワイルドカードは、フィールド内のすべての名 前と一致します。 その他: ソース ユーザー名とターゲット ユーザー名内でワイルドカードを使用すると、OneFS は、 ターゲット ユーザー名内のワイルドカードを展開して、ソース ユーザー名の値と一致させます。 ワイルドカードを使用したルールの例を以下に示します。 ソース ユーザー名 演算子 ターゲット ユーザー名 * join TESTER¥* *¥* replace guest このルールは、すべての ID と UNIX ユーザー名を一致させ、それを展開して、TESTER ドメイン 内に同じ名前の Active Directory アカウントを持つユーザーを含めます。結合ルールは双方向 なので、ルールは、TESTER ドメイン内のすべての ID を一致させ、その ID を展開して、同じユー ザー名を持つ UNIX ユーザーを一致させます。 このルールは、すべての Active Directory ドメイン内のすべてのソース ユーザー名を一致させ、 そのユーザー名を、「ゲスト」という名前の UNIX ユーザーで置き換えます。 ユーザー マッピング サービスは、ワイルドカードの無意味な組み合わせを持つルールを拒否します。 無意味な組み合わせには、過去に一致させたワイルドカードからワイルドカードを展開することができ ないルールが含まれているからです。また、マッピング サービスは、ルールの運用の方向と矛盾した 一致が存在するワイルドカードも拒否します。 次の例には、無効なワイルドカード一致ルールが含まれています。 ソース ユーザー名 演算子 ターゲット ユーザー名 *¥jdoe join TEST DOMAIN¥* guest replace * 1 番目のルールは、双方向で一致しないワイルドカードを残します。2 番目のルールでは、置換演算 子は左から右に一致を確認しますが、右側のワイルドカードは一致せず、ルールが無効になります。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 24 OneFS による最終的なアクセス トークンの生成方法 OneFS が、ユーザー マッピング ルールを適用すると、ID の一覧が最終的なアクセス トークンへと 変換されます。OneFS は、次の順番で最終的なアクセス トークンを生成します。 1. OneFS は、ユーザー マッピング ルールを処理することによって各 ID を結合します。OneFS は、 一覧内の最初の ID をプライマリ ID として選択します。OneFS は、追加 ID から、追加 ID の最 初の ID の一覧へ、ID を追加します。ルールがない場合、OneFS は、デフォルト ルールを適用 して各 ID を結合します。 2. OneFS は、ルールを処理して各 ID を結合したら、デフォルトの UNIX ユーザー パラメーターが 設定されているかどうかを確認します。パラメーターが設定されており、トークンにプライマリ UID と GID がまだ含まれていない場合、OneFS は、トークンに対してデフォルトの UNIX ユーザーの プライマリ UID および GID を割り当てます。 3. OneFS が UID と GID を生成します。プライマリ ユーザーが UID またはプライマリ グループを 持っていない場合、OneFS はそれらを生成します。 4. OneFS は、オン ディスク ID として保存する ID を選択します。 最終的なアクセス トークンは次の条件を満たします。 • トークンには重複した ID は含まれません。たとえば、トークンは、追加 ID の一覧内のプライマリ ID の 1 つを複製することはできません。 • 追加 ID の一覧は空にすることもできますが、すべてのプライマリ ID は存在している必要があり ます。 OneFS は、ディレクトリやファイルなどのファイル システム オブジェクトを作成する際にプライマリ ID を使用します。ファイルおよびディレクトリの権限には、UID、GID、および SID を含めることがで きます。オン ディスク ID によって、ディレクトリおよびファイルの権限にどの ID が含まれるかが決ま ります。OneFS は、ファイルへのアクセスを制御するため、トークン内のすべての ID と、ファイルの ACL および POSIX モード ビットを比較します。 ユーザー マッピング ルールの作成 Web 管理インターフェイスまたはコマンド ライン インターフェイスのいずれかを使用してユーザー マッピング ルールを設定できます。たとえば、SSH によってノードに接続し、isi zone zones modify コマンド を使用してユーザー マッピングを管理するコマンドを実行できます。 OneFS は分散オペレーティング システムなので、1 つのノードでマッピングを変更すると、OneFS は、 その変更内容を他のノードにも反映します。OneFS は、gconfig と呼ばれるシステム構成ツリーに ユーザー マッピングを保存します。変更後、OneFS の認証サービスが、その構成を再ロードします。 OneFS 7.0 以降では、アクセス ゾーンでマッピング ルールを作成します。作成されたルールは、その ゾーンのコンテキスト内でのみ適用されます。OneFS 6.x にはアクセス ゾーンが含まれていないため、 ルールはゾーンに制限されません。Web 管理インターフェイスでユーザー マッピング ルールを設定 する手順については、OneFS 7.0 以降の「OneFS 管理ガイド」の「アクセス ゾーンの作成」を参照して ください。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 25 コマンドライン インターフェイスからのマッピング ルールの作成 OneFS 7.0 以降のコマンドライン インターフェイスを使用してゾーンにマッピング ルールを追加する 方法の例を以下に示します。まず、Active Directory のユーザーの以下のトークンについて考えて みましょう。 isi auth mapping token YORK¥¥user_9440 User Name : YORK¥user_9440 UID : 1000201 SID : S-1-5-21-1195855716-1269722693-1240286574-11547 ZID: 1 Zone: System Privileges: Primary Group Name : YORK¥domain users GID : 1000000 SID : S-1-5-21-1195855716-1269722693-1240286574-513 Supplemental Identities Name : Users GID : 1545 SID : S-1-5-32-545 以下のコマンドは、デフォルトのアクセス ゾーン内に、AD の YORK¥user_9440 と、lduser_010 と いう名前の LDAP のユーザーを結合するルールを作成します。 isi zone zones modify System --add-user-mapping-rules "YORK¥user_9440 &= lduser_010" 次のコマンドを実行すれば、ルールを表示できます。 isi zone zones view System Name: Cache Size: Map Untrusted: SMB Shares: Auth Providers: Local Provider: NetBIOS Name: All SMB Shares: All Auth Providers: User Mapping Rules: Home Directory Umask: Skeleton Directory: Zone ID: System 4.77M Yes Yes Yes YORK¥user_9440 &= lduser_010 0077 /usr/share/skel 1 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 26 次に、トークンを再度確認して、変更内容を確認することができます。 isi auth mapping token YORK¥¥user_9440 User Name : YORK¥user_9440 UID : 1000201 SID : S-1-5-21-1195855716-1269722693-1240286574-11547 ZID: 1 Zone: System Privileges: Primary Group Name : YORK¥domain users GID : 1000000 SID : S-1-5-21-1195855716-1269722693-1240286574-513 Supplemental Identities Name : Users GID : 1545 SID : S-1-5-32-545 Name : lduser_010 UID : 10010 SID : S-1-22-1-10010 Name : example GID : 10000 SID : S-1-22-2-10000 Name : ldgroup_20user GID : 10026 SID : S-1-22-2-10026 コマンドライン インターフェイスを使用したルールの追加に関する注意 以下のコマンドを使用して、オプション付きの最初のマッピング ルールを作成することができます。 isi zone zones modify System --user-mapping-rules しかし、前述のコマンドを使用して 2 番目のルールを追加しようとすると、ルールの一覧に新しいルー ルが追加されず、既存のルールが置き換えられます。ルールの一覧にルールを追加するには、次の オプションを使用する必要があります。 isi zone zones modify System --add-user-mapping-rules ルールの構文とユーザー名の形式 コマンドライン インターフェイスを使用してルールを作成するには、次の構文を使用します。 username1 operator username2 [options] ルール内のいずれかのフィールドを空のままにすると、OneFS は、ルールの処理時にそのフィール ドを無視します。ただし、演算子は例外です。ルールには必ず演算子が必要です。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 27 ユーザー名は以下の 4 種類の方法で指定することができます。 ユーザー名の形式 ドメイン¥ユーザー 説明 この形式は、Active Directory ドメイン内の ユーザー アカウントを一致させます。 ユーザー名 この形式は、ID の UNIX アカウント名を一致させ ま す 。 UNIX ア カ ウ ン ト 名 は 、 NIS 、 LDAP 、 OneFS ローカル プロバイダー、または OneFS ファイル プロバイダー内に入れることができます。 空のストリング 空のストリングは、ルールが一致させる ID を削 除するための置換演算子とともに指定できます。 空のストリングは、二重引用符で囲み、スペース やその他の文字を指定することはできません。 ワイルドカード ドメイン名、Active Directory アカウント名、お よび UNIX アカウント名を、ワイルドカード(アス タリスクで設定)で置き換えることができます。 ユーザー名に、スペースなど特殊文字が含まれている場合、以下に示すように、二重引用符で囲む 必要があります。 TEST_DOMAIN¥"John Doe" => jdoe 二重引用符で囲むのはユーザー名だけで、ドメインは囲みません。 ルールの例 次の例では、ユーザー名の形式と演算子を組み合わせてルールを作っています。いくつかのルール には、OneFS によるルールの処理方法を指定するオプションが含まれています。Active Director にある Jane のアカウントの ID を、LDAP にある Jane のカアカウントの ID で置き換える例を以下に 示します。ブレーク オプションを挿入すると、OneFS は、ブレーク ポイントでルールの適用とトークン の生成を強制的に中止します。 CORP¥jane => jane [break] 次のルールでは、ワイルドカードを使用して、DESKTOP ドメインのユーザーと、LDAP、NIS、または ローカル プロバイダー内の同じ名前を持つ UNIX ユーザーを結合しています。 DESKTOP¥* &= * [break] 次のルールでは、前のルールによって許可されたユーザー以外全員の ID を削除することによって厳 しくアクセスを制限しています。 *¥* => "" 次のルールでは、任意の Active Directory ドメインの管理者アカウントを、OneFS の nobody アカ ウントにマップしています。このルールは、大きい権限を持つアカウントを権限の小さいアカウントにす る方法の例を示しています。 *¥Administrator => nobody ルールに対するオプションの追加 次の例で分かるとおり、オプションは角括弧で囲んで指定します。角括弧には、コンマで区切ったオプ ションのリストを入れることができます。角括弧の中にオプションのリストを入れない場合、マッピング サービスは、ルールを処理しますが、オプションは適用しません。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 28 次のコマンドでは、グループ オプションが含まれた挿入ルールを設定しています。ただし、すでにルー ルを設定してある場合、このコマンドはそのルールを置き換えます。 isi zone zones modify System --user-mapping-rules="YORK¥¥user_9449 ++ lduser_010 [group]" 次のコマンドでは、ユーザー オプションが含まれた挿入ルールを設定しています。この形式のコマン ドを使用すると、既存のルールは置き換えられるのではなく、保存されます。 isi zone zones modify System –-add-user-mapping-rules="YORK¥¥user_9449 ++ lduser_010 [user]" 次のコマンドでは、グループ オプションが含まれた挿入ルールを追加しています。 isi zone zones modify System –-add-user-mapping-rules="YORK¥¥user_9449 ++ lduser_010 [groups]" 次のコマンドでは、挿入演算子と連動するすべてのオプションが含まれた挿入ルールを追加してい ます。 isi zone zones modify System –-add-user-mapping-rules="YORK¥¥user_9449 ++ lduser_010 [user,group,groups,default_user=nobody,break]" デフォルト ユーザーの指定 デフォルト ユーザーは次の例のように指定します。 isi zone zones modify System --add-user-mapping-rules="*¥jane += janey [default_user=nobody]" デフォルト UNIX ユーザーの指定 デフォルト UNIX ユーザーを指定する場合の構文は、デフォルト ユーザーを指定する場合の構文と は異なります。デフォルト UNIX ユーザーは、山括弧で囲んで設定する必要があります。次に間違っ たコマンドの例を示します。 isi zone zones modify System --add-user-mapping-rules="default_unix_user=lduser_011" ルールの解析は、'='の時点で失敗しました。syntax error, unexpected '=', expecting BINARY_OP or UNARY_OP デフォルト UNIX ユーザーを括弧で囲むと、今度はコマンドの実行に成功しました。 isi zone zones modify System --add-user-mapping-rules="<default_unix_user=lduser_011>" ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 29 これで、ゾーンのルールを表示して、jane を janey にマッピングするルールのデフォルト ユーザーを 確認し、一連のルールの中のそのポイントまですべてのルールを適用するデフォルト UNIX ユー ザーを確認することができます。 isi zone zones view System Name: System Cache Size: 4.77M Map Untrusted: SMB Shares: Auth Providers: Local Provider: Yes NetBIOS Name: All SMB Shares: Yes All Auth Providers: Yes User Mapping Rules: *¥Administrator => nobody [], *¥johnd => *¥jdoe [], IT¥* &= EX_CLUSTER¥* [], YORK¥user_9440 => lduser_010 [default_user=nobody], *¥jane += janey [default_user=nobody], <default_unix_user=lduser_011> Home Directory Umask: 0077 Skeleton Directory: /usr/share/skel Zone ID: 1 テキスト ファイルでのルールの作成 コマンドライン インターフェイスを使用すれば、テキスト ファイルからマッピング ルールを追加すること ができます。テキスト ファイルでマッピング ルールを作成すれば、管理が簡単になり、大量のルー ルをアクセス ゾーンに対して簡単に追加することができるようになります。テキスト ファイルには、コ メント、ユーザー名、ワイルドカード、演算子、オプションを含めることができます。 ユーザー マッピング ルールが含まれるテキスト ファイルは UTF-8 でエンコードする必要があります。 ファイルには、シャープ記号で区切ることによってコメントを追加することができます。コメントを入力で きるのは、その行の最後までです。ファイルを空のままにすると、OneFS は、マッピングをしないで ユーザー名を解決します。 テキスト ファイルでルールを作成するには、デフォルト UNIX ユーザーのパラメーターを除き、コマン ドライン インターフェイスで設定するルールと同じ構文を使用します。 username1 operator username2 [options] テキスト ファイルにおけるデフォルト UNIX ユーザーのパラメーター形式 テキスト ファイルでは、パラメーターは山括弧で囲み、別の行に入力して設定します。ルール内のデ フォルト UNIX ユーザーの形式は、ユーザー名の形式と同じです。以下に例を示します。 <default_unix_user=guest> ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 30 テキスト ファイル内のルールの例 以下に、テキスト ファイルで一連のユーザー マッピング ルールを作成し、OneFS にそのファイルを ロードする例を示します。この例のテキスト ファイルには、ルールを説明するコメントが書き込まれて います。この例の場合、クラスターは IT という名前の Active Directory ドメインに参加していると仮 定しています。 #すべての Active Directory ドメインの管理者アカウントを nobody アカウントに変換する: *¥Administrator => nobody #ユーザーjohnd を、すべてのドメインで jdoe に名前を変えるが、元のドメインは保持する: *¥johnd => *¥jdoe # AD ユーザーと、同じ名前を持つローカル ユーザーとを結合する: IT¥* &= * # 補足グループを IT¥userx からすべての UNIX アカウントに追加する: * ++ IT¥userx [groups] OneFS 7.0 以降では、次のコマンドを実行することによって、コメントを削除し、ルールをロードするこ とができます。このコマンドでは、ルールが入力されたテキスト ファイルを tmp ディレクトリに追加した 後、System という名前のアクセス ゾーンにルールを追加することを想定しています。また、このコ マンドは、引用符(二重引用符、一重引用符、そして特にアクサン グラーブ(`))を指定して実行する 必要があります。次のコマンドでその例を示します。 isi zone zones modify System --user-mapping-rules="`grep -v '#' /tmp/rules.txt`" これでルールを表示し、OneFS がルールをロードしたことを確認することができます。 isi zone zones view System Name: System Cache Size: 4.77M Map Untrusted: SMB Shares: Auth Providers: Local Provider: Yes NetBIOS Name: All SMB Shares: Yes All Auth Providers: Yes User Mapping Rules: *¥Administrator => nobody *¥johnd => *¥jdoe IT¥* &= * * ++ IT¥userx [groups] Home Directory Umask: 0077 Skeleton Directory: /usr/share/skel Zone ID: 1 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 31 ベスト プラクティス EMC Isilon では、ユーザー マッピングを簡素化する次のベスト プラクティスが推奨されます。 RFC 2307 属性を持つ Active Directory および Windows Services for UNIX ベスト プラクティスは、Microsoft Active Directory を Windows Services for UNIX および RFC 2307 属性とともに使用して、Linux、UNIX、および Windows システムを管理する方法です。UNIX システムおよび Linux システムと Active Directory を統合すると、ID 管理の一元化と相互運用性 の向上が実現し、その結果、ユーザー マッピング ルールの必要性を減らすことができます。ご使用 のドメイン コントローラーで Windows Server 2003 以降が稼働していることが必要です。 ユーザー名の指定 最も単純なシステム構成では、ユーザーに一貫した名前が付けられ、UNIX ユーザーは類似した名前 の Windows ユーザーと 1 対 1 で対応づけられます。このような規則では、ワイルドカードを使用した ルールによって、名前を一致させ、各アカウント ペアを明示的に指定することなくそれらの名前をマッ ピングすることができます。 ID 範囲の重複なし LDAP および RFC 2307 属性を持つ Active Directory のような、複数のアイデンティティ ソースが 存在するネットワークでは、UID の範囲と GID の範囲が重複しないようにする必要があります。 OneFS が自動的に割り当てる UID と GID の範囲が、他の ID の範囲と重複しないことも重要です。 OneFS が自動的に割り当てる UID と GID の範囲は、1,000,000~2,000,000 です。 UID と GID の範囲が、2 つ以上のディレクトリ サービスにまたがって重複している場合、一部のユー ザーが、他のユーザーのデクレイクトリおよびファイルにアクセスできてしまう可能性があります。 共通 UID および GID の使用を回避 また、ID 範囲内で一般的な UID と GID を使用しないでください。それらの ID はシステム アカウント 用に予約されています。1000 未満の UID と GID は、システム アカウント用に予約されているので、 ユーザーまたはグループに割り当てないでください。 マッピング ルール内のユーザー プリンシパル名は使用不可 マッピング ルール内のユーザー プリンシパル名を使用することはできません。UPN(ユーザー プリン シパル名)は、Active Directory ドメインおよびユーザー名を組み合わせ、メール アドレスのように @マークが付いたインターネット風の名前にしたものです(例: [email protected])。 ルールに UPN を含めると、マッピング サービスはその URN を無視するため、エラーが返される場合 があります。 ルールの順序 デフォルトでは、OneFS はすべてのマッピング ルールを処理します。しかし、すべてのルールを処理す ると、不明なユーザー アクセスをすべて拒否するルールを適用する場合に問題が発生する可能性があ ります。また、置換ルールでは、ワイルドカード文字を含むルールとやり取りする場合があります。 複雑さを最小限に抑えるため、ルールをタイプごとにグループ化し、次の順序で整理することをお勧 めします。 1. ID を置き換えるルールを先頭に配置し、OneFS がその ID のすべてのインスタンスを置き換え ることができるようにします。 2. 次に、結合、追加、および挿入ルールを設定します。 3. 最後に、アクセスを許可または拒否するルールを設定します。 4. ルールの各グループ内で、ワイルドカードを伴うルールの前に明示的なルールを配置します。そ のようにしないと、明示的なルールがスキップされる場合があります。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 32 補足グループに対する LDAP または NIS プライマリ グループの追加 Isilon クラスターが Active Directory と LDAP に接続されている場合、LDAP プライマリ グループを 補足グループの一覧に追加するのがベスト プラクティスです。これにより、OneFS は、NFS を経由し て作成されたファイルや、他の UNIX ストレージ システムから移行されたファイルに対する権限を有 効化できます。次の例では LDAP を取り上げますが、Isilon クラスターが Active Directory と NIS の両方に接続されている場合でも、同じプラクティスを使用できます。 デフォルトでは、OneFS は、LDAP プライマリ グループを残します。次の例では、stand という名前が 付けられ、補足グループの一覧からは外されています。 isi auth mapping token --user york¥¥stand User Name : YORK¥stand UID : 100000 SID : S-1-5-21-1195855716-1269722693-1240286574-591111 ZID: 1 Zone: System Privileges: Primary Group Name : YORK¥york_sh_udg GID : 1000008 SID : S-1-5-21-1195855716-1269722693-1240286574-66133 Supplemental Identities Name : YORK¥sd-york space group GID : 1000010 SID : S-1-5-21-1195855716-1269722693-1240286574-579109 Name : YORK¥sd-york-group GID : 1000011 SID : S-1-5-21-1195855716-1269722693-1240286574-475739 Name : YORK¥sd-group GID : 100001 SID : S-1-5-21-1195855716-1269722693-1240286574-169779 Name : YORK¥domain users GID : 1000009 SID : S-1-5-21-1195855716-1269722693-1240286574-513 Name : Users GID : 1545 SID : S-1-5-32-545 Name : sd-group2 GID : 100002 SID : S-1-22-2-100002 デフォルトでは、OneFS は LDAP プライマリ グループを補足グループに追加しないので、追加する ルールを作成する必要があります。次の結合ルールは、ユーザーの ID と、Active Directory およ び LDAP 内のアカウントを完全に結合します。 *¥* &= * このルールを実装すると、OneFS 補足的な ID の一覧に LDAP プライマリ グループを追加します。 最後のエントリーに示すとおり、stand グループが一覧に表示されています。 isi auth mapping token --user york¥¥stand User Name : stand UID : 100000 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 33 SID : S-1-5-21-1195855716-1269722693-1240286574-591111 ZID: 1 Zone: System Privileges: Primary Group Name : YORK¥york_sh_udg GID : 1000008 SID : S-1-5-21-1195855716-1269722693-1240286574-66133 Supplemental Identities Name : YORK¥sd-york space group GID : 1000010 SID : S-1-5-21-1195855716-1269722693-1240286574-579109 Name : YORK¥sd-york-group GID : 1000011 SID : S-1-5-21-1195855716-1269722693-1240286574-475739 Name : YORK¥sd-group GID : 100001 SID : S-1-5-21-1195855716-1269722693-1240286574-169779 Name : YORK¥domain users GID : 1000009 SID : S-1-5-21-1195855716-1269722693-1240286574-513 Name : Users GID : 1545 SID : S-1-5-32-545 Name : sd-group2 GID : 100002 SID : S-1-22-2-100002 Name : stand GID : 100000 SID : S-1-22-2-100000 ユース ケース ユーザー マッピング サービスは、トークンを操作するための拡張可能なフレームワークなので、複数 のディレクトリ サービスが存在する各環境に共通したユース ケースを扱うことができます。 Windows と UNIX のトークンのマージ Windows のユーザー名と UNIX のユーザー名が、各ディレクトリ サービスで互いに一致しない場合、 2 つのユーザー名をマージして 1 つのトークンにする結合演算子または追加演算子のいずれかを使 用するルールを作成することができます。たとえば、ユーザーの Windows ユーザー名が win_bob であり、ユーザーの UNIX ユーザー名が UNIX_bob である場合、次のルールによってこれらを結合 することができます。 MYDOMAIN¥win_bob &= UNIX_bob [] また、UNIX アカウントを Windows アカウントに追加するルールを作成することもできます。追加演 算子は、ある ID から別の ID へ情報を追加します。OneFS は、オプションで指定されたフィールドを、 ソース ID からターゲット ID に追加します。OneFS は、ID を追加のグループ一覧に追加します。以 下に、グループ オプションを指定した追加ルールの例を示します。 MYDOMAIN¥win_bob ++ UNIX_bob [groups] ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 34 LDAP からプライマリ グループを取得 デフォルトでは、ユーザー マッピング サービスは、AD と LDAP からの情報を結合しますが、AD から の情報を優先します。しかし、マッピング ルールによって、OneFS が情報を結合する方法を制御する ことができます。たとえば、AD ではなく LDAP からのプライマリ グループ情報を取得することができま す。次のマッピング ルールは、プライマリ グループ情報を、LDAP からユーザーのアクセス トークンに 挿入します。 *¥* += * [group] 次のルールはその他の情報を LDAP からユーザーのアクセス トークンに追加します。 *¥* ++ * [user,groups] デフォルト UNIX ユーザー パラメーターを使用したアクセスの拒否 このシナリオでは、ユーザーが Active Directory と NIS のどちらかしかアカウントを持っていない場 合、クラスターへのアクセスを拒否する方法を示します。このシナリオには 2 つのルールが登場します。 1 番目のルールは、Active Directory ユーザーのプライマリ グループ GID を、NIS 内の対応する UNIX ユーザーの GID で置き換えます。2 番目のルールは、NIS 内にアカウントを持っていないユー ザーを、存在しないユーザーにマッピングします。それによりクラスターへのアクセスは拒否されます。 1 番目のルールを追加する方法を以下に示します。 isi zone zones modify System --add-user-mapping-rules='*¥* += * [group]' このルールを設定すると、ユーザーが Active Directory アカウントを使用してクラスターに接続する ときに、OneFS が NIS 内のユーザーを検索します。ユーザーが見つかったら、OneFS は、Active Directory のそのユーザーのプライマリ グループ GID を、NIS の UNIX ユーザーの GID で置き換 えます。デフォルトでは、OneFS は、AD ユーザー アカウントを、一致する NIS ユーザー アカウント にすでにマッピングしています。 1 番目のルールを追加する方法を以下に示します (コマンドライン インターフェイスからルールを設定 する場合、ルールは 1 行で入力してください)。 isi zone zones modify System --user-mapping-rules='<default_unix_user=this-user-does-not-exist>' このルールでは、デフォルトの UNIX ユーザー パラメーターを使用して、一致する UNIX ユーザー ア カウントもプライマリ グループも持っていないユーザーを、次の名前を持つ存在しないユーザーにマッ ピングしています。 this-user-does-not-exist こ の よ う な ル ー ル が 設 定 し て あ る と 、 ユ ー ザ ー が NIS に 存 在 し な い 場 合 、 OneFS は 、 default_unix_user を検索して、その GID を取得します。default_unix_user は、存在しない ユーザーにマッピングするので、そのユーザーの検索は失敗します。その結果、認証も失敗します。 このルールが適用されると、プライマリ UID とプライマリ GID の割り当ては、必ず、Active Directory と NIS の両方で正しく行われるか、完全に失敗するのかのどちらかになります。 LDAP の AD グループのマップをダンプ UNIX POSIX モード ビットおよび Windows ACL で動作する権限モデルを持つマルチプロトコル ス トレージでは、権限管理は重要なタスクとなります。Active Directory と LDAP を、OneFS を使用し て統合するには分析とプランニングが欠かせません。 ファイル共有を設定する前に、ディレクトリ ツリーのアクセス要件について分析し、文書化する必要が あります。可能であれば、エンジニアリングとマーケティングなど、異なるユーザー グループ同士のツ リーを相互接続することを避けます。また、ディレクトリ ツリーをプロトコルごとに分離したり、SMB ユー ザーのツリーと NFS ユーザーのツリーを別々に作成したりすることを検討する必要があります。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 35 要件にアプリケーションを追加すると管理が複雑になります。複雑になることを避ける方法の 1 つは、 NFS アプリケーションのディレクトリ ツリーと、SMB アプリケーションまたはユーザーのツリーを混在さ せないことです。NFS アプリケーションのディレクトリ ツリーを、SMB アプリケーションのディレクトリ ツ リーおよびユーザーの NFS ツリーから分離するのがベスト プラクティスの 1 つです。 SMB ユーザーのディレクトリ ツリーと NFS ユーザーのディレクトリ ツリーを混在させる場合(たいてい の管理者はそうします)、自分のディレクトリを設定する前に、Active Directory と LDAP システムを 統合してください。特に、LDAP グループと Active Directory グループは正しく同期するようにしてく ださい。グループの関連する識別名が同じである場合、OneFS は、自動的に Active Directory グ ループと LDAP グループを一致させます。 もちろん、ユーザー マッピング サービスを使用して、AD と LDAP のグループを 1 つの ID に結合す るのも 1 つの方法です。しかし、マッピング サービスへの依存を避ける高度な方法として、Active Directory から Active Directory グループのマップをエクスポートして、LDIF(LDAP データ交換形 式)に変換してから、LDIF コンテンツを LDAP サーバーに取り込むという方法があります。この方法 は、Active Directory が RFC 2307 属性を使用していない場合に特に便利です。たとえば、 Windows Server 2003 と Windows Server 2008 には、LDIFDE というコマンドライン ツール が用意されており、Active Directory から LDIF 内の情報をエクスポートすることができます。 その結果、独立しているグループ レコードが AD から LDAP に追加され、Linux および UNIX ユー ザーがすべて、Windows ユーザーと同じ GID および SID を受信するようになります。また、Isilon クラスターに悪影響を与える前に GID の重複を解決するチャンスが生まれます。 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 36 結論 OneFS のユーザー マッピング サービスは、各種ディレクトリ サービスの ID を結合します。マッピン グ サービスは、LDAP、NIS、および Active Directory のユーザーID を 1 つのアクセス トークンに 結合し、EMC Isilon クラスターに保存されているファイルへのマルチプロトコル データ アクセスを提 供します。SMB を介してクラスターにアクセスできるユーザーは、NFS に保存されている UNIX ファイ ルに LDAP アカウントを使用してアクセスすることができるようになります。同じように、NFS を介して クラスターにアクセスできるユーザーは、Windows ファイルに Active Directory アカウントを使用し てアクセスすることができるようになります。このように、ユーザー マッピング サービスによって、異な るディレクトリ サービスによって制御されるマルチプロトコル データ アクセスの NASA セキュリティ コンテキストで、ID の問題を柔軟に解決することができます。 付録: プラットフォーム API を使用したマッピングの表示 OneFS プラットフォーム API を使用すれば、ユーザー マッピング ルールをプログラムで表示および 変更できます。また、ユーザーをユーザー名、UID、GID、SID で識別することによって、ユーザーの マッピングを表示することもできます。 OneFS プラットフォーム API に接続するには、RESTClient のような REST クライアントを使用しま す。REST クライアントは、Mozilla Firefox の無料のアドオンであり、HTTP リクエスト用に次の設 定を行うことができます。 1. Content-Type: application/json 2. Basic Authentication 次の GET リクエストを使用して、JSON 内のユーザー マッピング ルールを表示することができます。 https://192.0.2.2:8080/platform/1/auth/mapping/users/rules リクエスト内でユーザーを指定することによって、そのユーザーのマッピングを表示することもできます。 次のリクエストは、システム ゾーン内の root アカウントのマッピングを表示します。 https://192.0.2.2:8080/platform/1/auth/mapping/users/lookup?user=root &zone=system 検索リクエストを使用すれば、次のパラメーターを追加して、クエリをフィルタリングすることができます。 user、zone、uid、gid、sid、primary_gid. 例については、次の URL にアクセスしてください。 https://192.0.2.2:8080/platform/1/auth/mapping/users/lookup?uid=10000 ISILON ONEFS ユーザー マッピング サービス~ID とアクセストークンのマッピング~ 37
© Copyright 2024 ExpyDoc