このトピックでは、自社の Active Directory (AD) をインバウンド ID プロバイダーとして接続する方法について説明します。これにより、AD の組織とアカウントを IDaaS に同期し、AD の ID を使用して IDaaS またはその接続アプリケーションにログインできます。
Active Directory の基本
Active Directory は、Microsoft Windows Server オペレーティングシステムの中核となるディレクトリサービスであり、エンタープライズネットワーク環境に ID 認証、認可、ディレクトリ管理の一元化を提供します。 ネットワークエンドポイント機能を使用することで、パブリックポートを公開することなく、AD データの同期や委任された認証を実行できます。
AD への接続手順
ステップ 1:AD への接続
IDaaS コンソールにログインし、対象の IDaaS インスタンスを選択して、[操作] 列の コンソールへのアクセス をクリックします。
の順にクリックします。次に、リストから AD を見つけて 追加 をクリックします。
AD のバインド パネルで、次のパラメーターを設定します。
[表示名]:ユーザーが IDaaS にログインしたり、IDaaS を使用したりするときに表示される名前です。
[ネットワークエンドポイント]:AD へのアクセスを IDaaS からの要求に限定するには、サーバーに IP アドレスホワイトリストを設定します。共有エンドポイントは、共有の固定パブリックエグレス IP アドレスを使用します。専用エンドポイントは、専用のカスタムプライベートおよびパブリックエグレス IP アドレスを使用します。専用エンドポイントを使用すると、IDaaS はプライベートネットワーク経由で Alibaba Cloud VPC にアクセスできるため、パブリックポートを開かずに AD にアクセスできます。詳細については、「ネットワークエンドポイント」をご参照ください。
[サーバーアドレス]:AD サーバーのアドレスです。 AD は通常ポート 389 (例:127.0.0.1:389) を使用しますが、LDAPS または StartTLS が有効な場合はポート 636 を使用します。
StartTLS を有効にする:このオプションを有効にすると、接続のセキュリティが大幅に向上するため、強く推奨します。 有効にする方法については、「AD のセキュリティ設定」をご参照ください。
[管理者アカウント]:IDaaS がデータ同期または委任された認証のために情報を読み取る際に使用する AD 管理者アカウントです。このアカウントには、少なくとも読み取り権限が必要です。ユーザープリンシパル名 (UPN) 形式 (例:
example@example.com) と識別名 (DN) 形式 (例:cn=admin,ou=TechDepartment,dc=example,dc=com) の両方がサポートされています。[管理者パスワード]:管理者アカウントのログインパスワードです。
ステップ 2:シナリオの選択
次に、AD 接続で有効にする機能を選択します。
機能
同期方向:IDaaS は、選択した AD ソースからこのノードにユーザーと組織のデータをインポートします。 [Source Node] は、AD ノードのベース DN である必要があります。AD ルートノードのベース DN は通常
dc=example,dc=comで、 example.com はドメインです。増分同期:IDaaS は AD のユーザーまたは組織データの変更を監視し、約 10 分ごとに同期タスクを実行して変更をインポートします。1 回の増分同期でデータ量が大きい場合、処理が遅延することがあります。データの整合性を確保するために、定期的に完全同期を実行することを推奨します。
フィールドマッピングでは、マッピング識別子を設定して、IDaaS アカウントのフィールドを AD ユーザーのフィールド (携帯電話番号など) と照合できます。フィールドが一致する場合、アカウントはバインドされ、IDaaS アカウントは上書きされます。それ以外の場合は、新しい IDaaS アカウントが作成されます。
増分同期を初めて実行すると、自動的に完全同期が実行されます。
1 つのアカウントレコードのインポートに失敗しても、他のレコードのインポートには影響しません。
失敗情報は [Synchronization logs] で確認できます。
削除された AD オブジェクトのイベントを受信するには、AD のごみ箱を有効にする必要があります。有効にする方法については、「増分同期」をご参照ください。
委任された認証:ユーザーが AD のユーザー名とパスワードで IDaaS にログインできるようにします。
パスワードの自動更新:ユーザーが AD の委任認証を使用して IDaaS で認証を行う際、IDaaS アカウントにパスワードがない場合、IDaaS は AD ユーザーのパスワードで IDaaS アカウントのパスワードを更新します。AD パスワードは IDaaS のパスワードポリシーを満たす必要があります。満たさない場合、自動的には更新されません。
詳細設定
ユーザーまたは組織の
objectClass:objectClass属性は、オブジェクトがユーザーか組織かを定義します。たとえば、クエリ結果でobjectClass=userのオブジェクトはユーザーとして扱われます。通常、この設定を変更する必要はありません。ユーザーログオン ID:ユーザーが AD の委任認証を使用して IDaaS にログインする際、IDaaS はこれらの属性を使用して AD 内のユーザーをクエリし、パスワードを検証します。パスワードが正しければ、ユーザーのログインが許可されます。複数の属性をカンマで区切ることができ、これにより OR 条件となり、ユーザーはいずれかの指定された属性でログインできます。これらの属性が同じ一意の AD ユーザーにマッピングされていることを確認してください。そうでない場合、ログインは失敗します。
ユーザーフィルター:異なる組織からユーザーのサブセットのみを同期する必要がある場合は、カスタムの
filter式を作成できます。フィルター条件を満たすユーザーのみが IDaaS に同期されます。デフォルトでは、filter式には AND 演算子と組み合わせたobjectClass条件が含まれています。 [View details] をクリックすると、完全な式を表示できます。詳細と一般的な使用例については、「フィルター」をご参照ください。完全なフィルター式は
(&(objectclass=top)(objectclass=person)(objectclass=organizationalPerson)(objectclass=user)(cn=cn*))で、(cn=cn*)は cn 属性でのワイルドカード照合を指定します。
ステップ 3:フィールドマッピング
AD のユーザーと組織を IDaaS の既存のアカウントと組織にリンクする必要がある場合は、フィールドマッピングを設定します。この機能を使用して、AD ユーザーのフィールド値 (AD ユーザーの携帯電話番号を IDaaS アカウント名として使用するなど) で IDaaS アカウントのデータを設定することもできます。マッピング識別子機能を使用するには、携帯電話フィールドなど、目的のフィールドで手動で有効にする必要があります。
フィールドマッピングページは、[アカウント] セクションと [組織] セクションに分かれています。[アカウント] セクションでは、AD ユーザー属性 (sAMAccountName、userPrincipalName、cn など) を IDaaS アカウントフィールドにマッピングできます。マッピングルールは [フィールドの選択]、[式]、[マッピングなし] をサポートしています。マッピング識別子を有効にするには、対応するフィールド行の [マッピング識別子] トグルをクリックしてオンにします。[組織] セクションでは、組織単位を [組織名] にマッピングできます。設定が完了したら、[保存して同期] または [保存のみ] をクリックします。
フィールドマッピングの詳細については、「フィールドマッピング」をご参照ください。
AD のセキュリティ設定
デフォルトでは、LDAP データはプレーンテキストで送信されるため、データ傍受のリスクがあります。LDAPS または StartTLS を使用すると、データ転送のセキュリティを大幅に向上させることができます。AD で証明書を設定した後、IDaaS で LDAPS または StartTLS を使用できます。これらのオプションのいずれかを有効にすることを強く推奨します。
[Server Manager] で、役割をインストールし、サーバーをドメインコントローラーに昇格させ、SHA256 署名アルゴリズムを使用する証明書を追加して、証明書の設定を完了します。
証明書が設定された後、IDaaS でワンクリックで証明書フィンガープリントを取得できます。これにより、IDaaS と AD の証明書との間に信頼関係が確立され、証明書偽造のリスクが軽減されます。
[サーバー設定] セクションで、プロトコルとして ldap:// を選択し、ポートを 389 に設定し、[StartTLS を有効にする] を選択します。[証明書の検証] には、[検証しない] と [証明書フィンガープリントで検証] の 2 つのオプションがあります。[証明書フィンガープリントで検証] を選択した後、[自動取得] をクリックすると、証明書フィンガープリントが自動的に入力されます。
AD インターフェイスに表示される証明書フィンガープリントが IDaaS によって取得されたものと同じであることをすばやく確認するには、次のスクリプトを実行します。
openssl s_client -connect server_host:port | openssl x509 -noout -pubkey | openssl pkey -pubin -outform DER | openssl dgst -sha256AD のカスタム設定
objectClass
AD では、 objectClass は属性の集合であり、すべてのオブジェクトに objectClass が必要です。 objectClass を使用して、オブジェクトをユーザー、組織、またはコンピューターとして定義できます。たとえば、フィルター式 objectclass=person または objectclass=user を使用してユーザーを検索できます。AD オブジェクトの 属性 で objectClass を表示できます。
Active Directory ユーザーとコンピューターで、対象のユーザー (例:田中) を右クリックし、 属性 を選択し、 [Attribute Editor] タブに切り替えて、objectClass 属性を見つけます。その値は top; person; organizationalPerson; user です。
ログオン ID
ユーザーが AD の委任認証を使用して IDaaS にログインする際、IDaaS はこれらの属性を使用して AD 内のユーザーを検索し、パスワードを検証します。パスワードが正しければ、ユーザーのログインが許可されます。
ログインに一般的に使用される属性には、userPrincipalName、 sAMAccountName、携帯電話番号、メールアドレス、および従業員 ID があります。これらの属性は、作成時または [delegated authentication] 設定で定義できます。複数の属性を使用する場合は、それらが一意であり、同じ AD ユーザーにマッピングされていることを確認してください。そうでない場合、委任された認証は失敗します。
フィルター
objectClass と filter の設定を変更すると、AD フィルター条件に影響します。完全同期が実行されると、IDaaS は新しいフィルター条件に一致しないアカウントと組織を削除します。変更を行う前に、同期保護のしきい値を調整し、フィルター結果が期待どおりであることを十分にテストして (たとえば、テスト用に別の IDaaS インスタンスを使用するなど) ください。
概要
異なる組織からユーザーのサブセットのみを IDaaS に同期する必要がある場合は、カスタムの filter 式を定義できます。IDaaS は、条件を満たすユーザーのみを同期します。デフォルトでは、filter 式には AND 演算子と組み合わせた objectClass 条件が含まれています。 [View details] をクリックすると、完全な式を表示できます。
以下のセクションでは、AD の filter の一般的な構文と式について説明します。
一般的な構文
演算子 | 説明 | 例 |
= | 等しい | (cn=花子) |
>= | 以上 | (pwdLastSet >= 1319563845000000000) |
<= | 以下 | (sAMAccountName <= a) |
& | AND、すべての条件を満たす必要があります | (&(cn=CN*)(memberOf=cn=Test,ou=HQ,dc=Domain,dc=com)) |
| | OR、いずれかの条件を満たす必要があります | (|(cn=Test*)(cn=Admin*)) |
! | NOT、条件を満たしてはいけません | (!(memberOf=cn=Test,ou=HQ,dc=Domain,dc=com)) |
一般的な式
シナリオ | 例 |
ユーザー名が "CN" で始まる | (cn=CN*) |
特定のメールアドレスを持つユーザー | (|(proxyAddresses=*:alice@example.com)(mail=alice@example.com)) |
特定のグループ内のユーザー | (memberOf=cn=Test,ou=HQ,dc=Domain,dc=com) |
AD の同期設定
ベース DN の取得
ベース DN は、AD 内の特定のノードのパス識別子です。IDaaS は、そのノード内でのみクエリとデータ同期を実行します。 [Synchronization Direction] 設定でソースノードのベース DN を設定できます。
DN 形式は ou=SomeOrganization,dc=example,dc=com です。 ルートノードの DN は通常 dc=example,dc=com で、 example.com はドメインです。Active Directory 管理センターでノードの DN を直接表示することもできます。
Active Directory 管理センターで、左側の [(local)] ノードを展開し、対象のコンテナー (例:Users) を選択します。ノードのベース DN は、上部のナビゲーションパスバーに CN=Users,DC=xxx,DC=xxx のような形式で表示されます。
ノードのパスが変更されると、そのベース DN も変更されます。パスの調整による同期エラーを防ぐため、IDaaS はソースノードのベース DN を設定する際に、ノードの objectGUID をノードフィンガープリントとして記録します。ベース DN が変更され、フィンガープリントと一致しなくなった場合、データ同期はブロックされます。ソースノードを再設定すると、同期が再開されます。
増分同期
設定したソースノードのスコープ内で AD のユーザーまたは組織データが変更されると、IDaaS は変更を検出し、変更されたデータを IDaaS に同期します。