LDAPコンポーネントでASTERIA WarpとMicrosoft Active Directoryを連携し、ユーザー認証&ユーザー検索フローを作成しました。
LDAPSearchコンポーネントにより、ADユーザー検索フロー
※LDAPAuthコンポーネントで認証を行うため、JNDIコネクションが必要で先にコネクションを作成する
コネクション作成
・コネクション作成をフローサービス管理コンソールで行う
・「設定」→「コネクション」→「JNDI」→「新規」をクリック
・「接続名」に任意の名前を入力する
・「ProviderURL」にldap://serverのホスト名/dc=ドメイン名を設定する
・「Initial Factory」にcom.sun.jndi.ldap.LdapCtxFactoryを設定する
・「パラメーター」設定の「パラメーター名」と「パラメーター値」に以下の3つのパラメーターを設定
java.naming.security.authentication = simple (ユーザー名とパスワードで認証を行う場合の設定)
java.naming.security.principal = testuser (ADのユーザー名)
java.naming.security.credentials = password
・「作成」をクリック
フローの説明
LDAPAuthコンポーネント
・LDAPAuthコンポーネントをクリックし、「基本」設定の「コネクション名」に対象のコネクションを選択
例:LDAPtestを選択
・「プリンシパル」と「パスワード」はコネクション作成に設定したprincipalとcredentialsに該当するのでデフォルトのままでOK
LDAPSearchコンポーネント
「基本」設定
・「検索文字列」にRFC-4515形式のクエリを入力
例:cn=testuser 又は (cn=testuser)
例:(&(objectCategory=person)(cn=testuser))又は(&(objectCategory=user)(cn=testuser)) ユーザーの中からtestuserを検索
・「検索の起点」にベースDNを指定する 例:cn=Users
※実際の検索の起点はAggregateBaseDNになる
※AggregateBaseDN=LDAPAuthコンポーネントのベースDN+このコンポーネントのベースDN
例:LDAPAuthコンポーネントのベースDN=DC=example,DC=local
この(LDAPSearch)コンポーネントのベースDN=cn=Users
※この場合検索の起点はcn=Users,DC=example,DC=local になる
・「検索スコープ」に「1階層下まで」を選択
・その他のプロパティをデフォルトのままに設定
・フィールド名を定義する
※LDAPレコードの属性名と同じ名前のフィールドを定義する必要がある
※LDAPレコードのメールの属性名はmailであり、フィールド名をmailとして定義する必要がある
電話番号の場合フィールド名をtelephoneNumberとして定義する必要がある
※コンポーネントで「メール」、「電話番号」を定義すると値が出てこない
上記の設定でフローを実行すると、以下のようにtestuserの情報が検索できる