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"
]
}
}
]
}