37 REST APIを使用したOracle Unified Directoryの管理
Oracle Unified Directoryでは、ユーザーがREST APIを使用して管理および構成を実行できます。管理REST APIは、HTTP管理コネクタを介して公開されます。HTTPメソッドGET、POST、PATCHまたはDELETEを使用して基本操作を実行できます。
37.1 管理REST APIの構成
OUDインスタンスの設定時にOUD管理インタフェースに対するREST APIサポートを構成できます。OUDインスタンスを管理するためのREST APIを公開するために、OUDインスタンスの設定時にHTTP管理コネクタ・ポートを構成する必要があります。
HTTP管理コネクタの詳細は、「HTTP管理コネクタ」を参照してください。
OUDインスタンス設定時のHTTP管理コネクタ・ポートの構成
Oracle Unified Directoryサーバー・インスタンスの作成中に、コマンド行からoud-setup
ユーティリティをhttpAdminConnectorPort
パラメータとともに実行し、管理インタフェースを構成します。
oud-setup --cli
--adminConnectorPort 1444
--httpAdminConnectorPort 1888
--rootUserDN cn=Directory\ Manager
--rootUserPasswordFile password.file
--ldapPort 1389
--ldapsPort 1636
--generateSelfSignedCertificate
--baseDN dc=example,dc=com
--addBaseEntry
--serverTuning jvm-default
--offlineToolsTuning jvm-default
--no-prompt
--noPropertiesFile
既存のOUDインスタンスのHTTP管理コネクタ・ポートの構成
dsconfig
コマンド行ユーティリティをset-administration-connector-prop
サブコマンドとともに実行することにより、管理REST APIをサポートするHTTP管理コネクタを公開するための既存のOUDインスタンスを更新します。
dsconfig set-administration-connector-prop \ --connector-name HTTP \ --set listen-port:1888 \ --set enabled:true \ --hostname localhost\ --port 1444 \ --portProtocol LDAP \ --trustAll \ --bindDN cn=Directory\ Manager \ --bindPasswordFile password.file \ --no-prompt
37.2 OUD管理REST APIの起動
cURLコマンドを使用してOUD管理REST APIを起動し、特定のペイロードを使用してリクエストをhttps://<OUD HOST>:<HTTP Admin Connector Port>/rest/v1/admin
に送信することにより、管理タスクを実行できます。
OUD管理REST APIを起動するためのcURLコマンドの例を次に示します。
curl -X POST -k -u '<root User DN>':<Password for root User DN> https://<OUD Host>:<HTTP Admin Connector Port>/rest/v1/admin -H 'cache-control: no-cache' -H 'content-type: application/json' -d '<Payload>'
37.3 管理REST APIの使用
この項には、管理REST APIインタフェースを使用して管理タスクを実行する方法を示すサンプル・プログラムが複数含まれます。
37.3.1 ネットワーク・グループの検索
POST
メソッドを使用してHTTPリクエストを送信することにより、特定のネットワーク・グループを検索できます。
特定のネットワーク・グループに関する詳細を取得するには、次のペイロードを使用してリクエストをhttps://<OUD HOST>:<HTTP Admin Connector Port>/rest/v1/admin
に送信します。
{ "msgType" : "urn:ietf:params:rest:schemas:oracle:oud:1.0:SearchRequest", "dn" : "cn=network-group,cn=Network Groups,cn=config", "scope" : "sub", "filter" : "(objectclass=*)", "requiredAttributes" : [ "ds-cfg-priority", "ds-cfg-enabled" ], "base" : "cn=Network Groups,cn=config" }
上記のペイロードを使用してネットワーク・グループを検索すると、次のレスポンス本文が生成されます。
{ "msgType": "urn:ietf:params:rest:schemas:oracle:oud:1.0:SearchResponse", "totalResults": 2, "searchResultEntries": [ { "dn": "cn=Network Groups,cn=config", "attributes": {} }, { "dn": "cn=network-group,cn=Network Groups,cn=config", "attributes": { "ds-cfg-priority": "1", "ds-cfg-enabled": "true" } } ] }
37.3.2 ネットワーク・グループの追加
POST
メソッドを使用してHTTPリクエストを送信することにより、特定のネットワーク・グループを追加できます。
特定のネットワーク・グループRestNetworkGroup
を追加するには、次のペイロードを使用してリクエストをhttps://<OUD HOST>:<HTTP Admin Connector Port>/rest/v1/admin
に送信します。
{ "msgType" : "urn:ietf:params:rest:schemas:oracle:oud:1.0:AddRequest", "dn" : "cn=RestNetworkGroup,cn=Network Groups,cn=config", "attributes" : { "objectclass" : ["top", "ds-cfg-network-group"], "ds-cfg-priority" : ["0"], "ds-cfg-enabled" : ["true"], "cn" : ["RestNetworkGroup"] } }
上記のペイロードを使用してRestNetworkGroup
を追加すると、次のレスポンス本文が生成されます。
{ "msgType": "urn:ietf:params:rest:schemas:oracle:oud:1.0:AddResponse", "totalResults": 1, "searchResultEntries": [ { "dn": "cn=RestNetworkGroup,cn=Network Groups,cn=config", "attributes": { "ds-cfg-enabled": "true", "cn": "RestNetworkGroup", "ds-cfg-priority": "0", "objectClass": [ "top", "ds-cfg-network-group" ] } } ] }
37.3.3 ネットワーク・グループの削除
POST
メソッドを使用してHTTPリクエストを送信することにより、特定のネットワーク・グループを削除できます。
ネットワーク・グループを削除するには、次のペイロードを使用してリクエストをhttps://<OUD HOST>:<HTTP Admin Connector Port>/rest/v1/admin
に送信します。
{ "msgType" : "urn:ietf:params:rest:schemas:oracle:oud:1.0:DeleteRequest", "dn" : "cn=RestNetworkGroup,cn=Network Groups,cn=config" }
これは削除操作であるため、レスポンス本文は生成されません。
37.3.4 ネットワーク・グループの比較
POST
メソッドを使用してHTTPリクエストを送信することにより、特定のネットワーク・グループを比較できます。
ネットワーク・グループを比較するには、次のペイロードを使用してリクエストをhttps://<OUD HOST>:<HTTP Admin Connector Port>/rest/v1/admin
に送信します。
{ "msgType" : "urn:ietf:params:rest:schemas:oracle:oud:1.0:CompareRequest", "dn" : "cn=RestNetworkGroup,cn=Network Groups,cn=config", "assertion" : "ds-cfg-enabled:true" }
上記のペイロードを使用して比較操作を実行すると、次のレスポンス本文が生成されます。
{ "msgType": "urn:ietf:params:rest:schemas:oracle:oud:1.0:CompareResponse", "compareResult": true }
37.3.5 ネットワーク・グループの変更
POST
メソッドを使用してHTTPリクエストを送信することにより、ネットワーク・グループを変更できます。
ネットワーク・グループを変更するには、次のペイロードを使用してリクエストをhttps://<OUD HOST>:<HTTP Admin Connector Port>/rest/v1/admin
に送信します。
{ "msgType" : "urn:ietf:params:rest:schemas:oracle:oud:1.0:ModifyRequest", "operations" : [ { "opType" : "replace", "attribute" : "ds-cfg-enabled", "values" : ["false"] } ] }
上記のペイロードを使用して変更操作を実行すると、次のレスポンス本文が生成されます。
{ "msgType": "urn:ietf:params:rest:schemas:oracle:oud:1.0:ModifyResponse", "totalResults": 1, "searchResultEntries": [ { "dn": "cn=RestNetworkGroup,cn=Network Groups,cn=config", "attributes": { "ds-cfg-enabled": "false", "cn": "RestNetworkGroup", "ds-cfg-priority": "0", "objectClass": [ "top", "ds-cfg-network-group" ] } } ] }
37.3.6 GETメソッドを使用したネットワーク・グループの検索
GET
メソッドを使用してHTTPリクエストをhttps://rest/v1/admin/cn=RestNetworkGroup,cn=Network Groups,cn=config
に送信することにより、特定のネットワーク・グループを検索できます。
GETのリクエスト本文はありません。
検索操作を実行すると、次のレスポンス本文が生成されます。
{ "msgType": "urn:ietf:params:rest:schemas:oracle:oud:1.0:SearchResponse", "totalResults": 1, "searchResultEntries": [ { "dn": "cn=RestNetworkGroup,cn=Network Groups,cn=config", "attributes": { "ds-cfg-enabled": "true", "cn": "RestNetworkGroup", "ds-cfg-priority": "0", "objectClass": [ "top", "ds-cfg-network-group" ] } } ] }