| Oracle® Fusion Middleware Oracle Access Management開発者ガイド 11g リリース2 (11.1.2.1) B69537-05 | 
 | 
|  前 |  次 | 
Access Managerでは、ポリシー・オブジェクトの作成、読取り、更新および削除(CRUD)の操作ができるポリシー管理APIを提供しています。この章では、このAPIについて説明するとともに、Access Managerポリシー管理のRESTful Webサービスの使用例を紹介します。この章の内容は次のとおりです。
Oracle Policy Administration APIは、Representational State Transfer (REST)インタフェースをサポートしており、Access Managerポリシー・オブジェクトをRESTfulリソースとして管理できます。このAPIは、Java Specification Request (JSR) 311: JAX-RS 1.1仕様: Java API for RESTful Web Services 1.1に準拠しています。詳細は、http://download.oracle.com/otndocs/jcp/jaxrs-1.1-mrel-eval-oth-JSpec/を参照してください。
この項の内容は次のとおりです。
ポリシー管理APIは、Access Managerポリシー・モデル・オブジェクト(アーティファクトともいいます)をRESTfulクライアントに公開し、これらのオブジェクトに対する操作をモデル化して特定のURLおよび操作を含むHTTPリクエストにします。操作は、ポリシー検証と整合性を強制するAccess Managerポリシー管理ルールの対象となります。
図5-1に、ポリシー・モデルおよび管理可能なポリシー・オブジェクトの関係を示します。
表5-1に、RESTfulインタフェースを使用して管理できるポリシー・オブジェクトの詳細を示します。各ポリシー・オブジェクトは、HTTP Uniform Resource Locator (URL)によってアクセス可能なHTTPリソースとして表現されます。
表5-1 ポリシー・オブジェクト
| オブジェクト名 | 説明 | 
|---|---|
| アプリケーション・ドメイン | 11gポリシー・モデルの最上位の構造。各アプリケーション・ドメインは、リソースおよびアクセス可能なユーザーを指示する関連付けられた認証および認可ポリシーの論理コンテナを提供します。 | 
| ホスト識別子 | ホストに複数の名前を指定できます。Access ManagerがリソースのURLを認識するためには、そのリソースのホスト・コンピュータを参照するために使用される様々な方法を認識している必要があります。 | 
| リソース | リソースは、サーバーに格納されて多くのユーザーがアクセスできるドキュメント、エンティティまたは内容の一部を表します。クライアントは、(HTTPメソッドを使用して)サーバーと通信し、既存のリソース・タイプで定義されているリソースをリクエストします。 | 
| リソース・タイプ | リソース・タイプは、保護されるリソースの種類を示します。 | 
| 認証ポリシー | 認証ポリシーは、ユーザーの認証に使用される認証方式を指定します。ポリシーは、リソース・アクセスを保護する方法を定義します。 | 
| 認可ポリシー | 認可ポリシーは、サブジェクトまたはアイデンティティがリソースにアクセスできる条件を指定します。 | 
| トークン発行ポリシー | トークン発行ポリシーは、クライアントがリクエスタ・パートナであるかエンド・ユーザーであるかにかかわらず、そのクライアントのアイデンティティに基づいて、リソース(リライイング・パーティ・パートナ)に対してトークンを発行する際に従うルールを定義します。 | 
| 認証スキーム | ユーザーの認証に必要なチャレンジ・メカニズム、信頼レベルおよび基礎となる認証モジュールを定義する名前の付いたコンポーネント。 | 
図5-2に、Access Managerポリシーのコンテンツを示します。
OAMサーバーのRESTfulインタフェースには、次のようなクライアント・アプリケーションでアクセスできます。
Webブラウザ
cURL
GNU Wget
ポリシー管理REST APIは、管理ロールによって保護されます。RESTサービスは、必要なロールを強制するコンテナ・セキュリティによって保護されます。APIの強制ポリシー構成は、管理コンソールで実行するポリシー管理アクションのポリシー強制と似ています。たとえば、クライアント起動では、資格証明をHTTPリクエストの認可ヘッダーで供給することになっています。これにより、クライアント起動は、次のリクエスト例のようにステートレスのままになります。

次に示すのは、サンプルHTTPリクエストから返されたレスポンス内容の例で、これにはアプリケーション・ドメインのリストが格納されています。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><ApplicationDomains>
<ApplicationDomain>
    <name>Demo Application Domain</name>
    <description>Policy objects enabling OAM Agent to protect deployed Demo applications</description>
</ApplicationDomain>
 
<ApplicationDomain>
    <name>Clear Vision Domain</name>
    <description>Policy objects enabling OAM Agents to protect Clear Vision applications</description>
</ApplicationDomain>
</ApplicationDomains>
ユーザー認証用の認証プロバイダは、Access Managerアプリケーション構成に基づいています。RESTサービスがWebgateで保護されている場合、WebgateはURLに関連付けられた認証スキームに基づいてアクセス・リクエストを判断します。これらのURLでは認証方式としてCookieless Basicを使用しています。Cookieless Basicスキームは変更しないで、複数のスキームで保護してください。その場合、Webgateはこれらのリソースへのアクセス・リクエストをパススルーとして扱い、リクエストの認可ヘッダーを保持します。Access Managerは、提供された認可ヘッダーに基づいてリクエストを処理します。
リソースURLは、Access Manager製品バージョン、RESTサービスで公開されるコンポーネント、および呼び出すリソースを含めて構成されます。リソースURLの基本構造は次のとおりです。
http(s)://host:port/oam/services/rest/path
説明:
OAMサーバーが稼働しているホスト。
HTTPまたはHTTPSポート
特定のリソースを識別する相対パス。pathの構造は/version/component/service/です。
説明:
version: Access Managerの製品バージョン(11.1.2.0.0など)。
component: RESTfulサービスで公開されるコンポーネント(ssa、ssoなど)。
service: 特定のAPIのルート・リソース(ホスト識別子など)。
pathの値の例: /oam/services/rest/11.1.2.0.0/ssa/policyadmin/hostidentifier/host_identifier_name
ポリシー管理REST Web Application Description Language (WADL)ファイルには、サポートされているポリシー・リソースおよびメソッドが列挙されています。ポリシー管理REST WADLドキュメントは、http://adminserver.example.com:adminport/oam/services/rest/11.1.2.0.0/ssa/policyadmin/application.wadlにあります。
リクエスト問合せパラメータを処理するには、追加パラメータが必要です。リソースURLは、いずれもOPTIONSメソッドをサポートしています。
ポリシー・オブジェクトは名前またはIDで識別できます。両方とも指定した場合は、IDが使用されます。
図5-1に示したポリシー・オブジェクトを管理可能にするために公開されるリソースURLを、表5-2にまとめます。この表は、次のように使用します。
IDENTIFERは、リクエストが参照するオブジェクトの名前またはIDです。
APPDOM_IDENTIFERは、既存のアプリケーション・ドメイン型オブジェクトをappidまたはappnameによって一意に識別します。
表5-2 リソースURL
| ポリシー・オブジェクト | URL | アーティファクトの必須パラメータ | 
|---|---|---|
| アプリケーション・ドメイン | 
 | IDENTIFIER | 
| ホスト識別子 | 
 | IDENTIFIER | 
| リソース・タイプ | 
 | IDENTIFIER | 
| リソース | 
 | IDENTIFIER、APPDOM_IDENTIFIER | 
| 認証ポリシー | 
 | IDENTIFIER、APPDOM_IDENTIFIER | 
| 認可ポリシー | 
 | IDENTIFIER、APPDOM_IDENTIFIER | 
| トークン発行ポリシー | 
 | IDENTIFIER、APPDOM_IDENTIFIER | 
Access Managerポリシー・オブジェクトは、URLリソースにマップされています。各ポリシーはグローバル識別子(URI)で参照されます。
URLリソースへのアクセスはユーザー・ロールに基づいています。RESTfulサービスでは、ユーザー資格証明がBASICモードのHTTPリクエストの認証ヘッダー内にあると想定しています。認証されたユーザーがポリシー管理ロールを持っていれば、リクエストされたポリシー管理アクションが実行されます。
サービス・リクエストの結果として、無効なサービス呼出しからサーバー側の失敗まで様々なエラー状態が発生する可能性があります。失敗およびエラー・コードの状態は、説明メッセージ付きのHTTPリターン・コードとしてクライアントに報告されます。
表5-3に、HTTPリターン・コードとメッセージの対応関係を示します。
表5-3 エラー状態とHTTPリターン・コード
| エラー状態 | HTTPリターン・コード | 内容 | 
|---|---|---|
| 入力を解析でないか、入力が必須エンティティと一致しない。 | 400 | Bad request | 
| サービスが見つからない。 | 404 | Not found | 
| リクエストされたオブジェクトが見つからない。 | 404 | Not found <見つからないオブジェクトを示す追加情報> | 
| ユーザーにアクティビティの実行権限がない。 | 401 | Unauthorized | 
| リクエストされたメソッドがサポートされていない。 | 405 | Method not allowed | 
| 作成されたコンテンツ・タイプをクライアントが受け付けない。 | 406 | Not acceptable | 
| リクエスト・パラメータのセマンティックが正しくない。 | 422 | Unprocessable entity <エラーの性質に関する追加情報> | 
| クライアント・メディア・タイプがサポートされていない。 | 415 | Unsupported media type. 注意: サポートされているメディア・タイプはtext/xml (またはapplication/xml)およびapplication/jsonです。 | 
| 依存性のエラーが発生した。 | 424 | Failed dependency <エラーとなった依存性に関する追加情報> | 
| 汎用的なサーバー・エラー。 | 500 | Internal server error | 
リリース・バージョン番号が、OAMサーバーで公開されるRESTサービスURLの一部として埋め込まれます。上位互換性はサポートされていません。新しいバージョンのクライアントが古いバージョンのOAMサーバーにリクエストを送信することはできず、新しいバージョンのオブジェクトが送り返されます。古いクライアントに対する下位互換性はサポートされています。
この項の内容は次のとおりです。
表5-4に、サポートされているHTTPメソッドを示します。HTTPメソッドは、成功すると、xmlファイルであるポリシー・オブジェクト(リソース)の表現に影響を及ぼします。JavaScript Object Notation (JSON)オブジェクトが返されます。
サポートされているメディア・タイプは次のとおりです。
application/xml
application/json
text/xml
表5-5に、各ポリシー・リソース、サポートされているHTTPメソッドおよび各操作の結果の詳細を示します。
表5-5 Access Managerポリシー・リソースの一覧
| リソース | メソッド | 説明 | 
|---|---|---|
| 
 | GET | 一致するすべてのアプリケーション・ドメイン・リソースが返されます。問合せパラメータを指定しない場合、すべてのアプリケーション・ドメイン・リソースが返されます。IDまたはNAME問合せパラメータを指定した場合、一致するすべてのアプリケーション・ドメイン・リソースが返されます。 | 
| POST | このメソッドでは、アプリケーション・ドメイン・オブジェクトが作成されます。リクエスト本文にアプリケーション・ドメインを含める必要があります。リクエストに一致するアプリケーション・ドメイン・オブジェクトが作成されます。 ポリシー子オブジェクトもすべて作成されます。 | |
| PUT | このメソッドでは、アプリケーション・ドメイン・オブジェクトが変更されます。リクエスト本文に、そのオブジェクトを表すアプリケーション・ドメイン・リソースを含める必要があります。 指定のIDまたはNAME問合せパラメータと一致するアプリケーション・ドメイン・リソースが変更されます。 問合せパラメータが一致しない場合、IDまたはNAME問合せパラメータと一致するアプリケーション・ドメイン・オブジェクトが変更されます。IDとNAMEを両方とも指定した場合は、ID値が使用されます。 | |
| DELETE | このメソッドでは、アプリケーション・ドメイン・オブジェクトが削除されます。IDまたはNAME問合せパラメータと一致するアプリケーション・ドメインが削除されます。 | |
| 
 | GET | このメソッドでは、トークン発行ポリシー・オブジェクトが取得されます。トークン発行ポリシー・オブジェクトを表すリソースが返されます。この表現には、一致するトークン発行ポリシー・リソースの属性とその値が格納されています。 有効な問合せパラメータはIDまたはNAMEと、APPDOMAINIDまたはAPPDOMAINです。APPDOMAINIDまたはAPPDOMAINパラメータを指定しないと、ステータス・コード424が対応するメッセージとともに返されます。IDまたはNAME問合せパラメータを指定しないと、アプリケーション・ドメイン内のすべてのトークン発行ポリシー・リソースが返されます。 IDまたはNAMEパラメータが一致する場合は、そのアプリケーション・ドメイン内のすべてのトークン発行ポリシー・リソースが返されます。いずれの場合も、IDとNAMEを両方とも指定すると、ID値が使用されます。 | 
| POST | このメソッドでは、トークン発行ポリシー・オブジェクトが作成されます。オブジェクトの親にあたるリソースに対してリクエストが実行されます。リクエスト本文に、オブジェクトを表すトークン発行ポリシー・リソースを含める必要があります。リクエストに一致するトークン発行ポリシー・オブジェクトが、対応するアプリケーション・ドメイン内に作成されます。 | |
| PUT | このメソッドでは、トークン発行ポリシー・オブジェクトが変更されます。リクエスト本文に、そのオブジェクトを表すトークン発行ポリシー・リソースを含める必要があります。 IDまたはNAME問合せパラメータと一致するトークン発行ポリシー・リソースが変更されます。 トークン発行ポリシー・オブジェクトは、APPDOMAINIDまたはAPPDOMAIN問合せパラメータと一致するアプリケーション・ドメインに属している必要があります。 問合せパラメータを指定しないと、IDまたはNAMEパラメータと一致するトークン発行ポリシーが変更されます。 トークン発行ポリシーは、アプリケーション・ドメイン名属性で指定したアプリケーション・ドメインに属している必要があります。IDとNAMEを両方とも指定した場合は、ID値が使用されます。 | |
| DELETE | このメソッドでは、トークン発行ポリシー・オブジェクトが削除されます。APPDOMAINIDまたはAPPDOMAIN問合せパラメータで指定したアプリケーション・ドメイン内の、IDまたはNAME問合せパラメータと一致するトークン発行ポリシーが削除されます。 | |
| 
 | GET | このメソッドでは、リソース・オブジェクトが取得されます。リソース・オブジェクトを表すリソースが返されます。この表現には、一致するリソース・リソースの属性とその値が格納されています。 有効な問合せパラメータはIDまたはNAMEと、APPDOMAINIDまたはAPPDOMAINです。APPDOMAINIDまたはAPPDOMAINパラメータを指定しないと、ステータス・コード424が対応するメッセージとともに返されます。 IDまたはNAME問合せパラメータを指定しない場合、そのアプリケーション・ドメイン内のすべてのリソース・リソースが返されます。IDまたはNAMEパラメータが一致する場合は、アプリケーション・ドメイン内の一致するリソース・リソースが返されます。いずれの場合も、IDとNAMEを両方とも指定すると、ID値が使用されます。 | 
| POST | このメソッドでは、リソース・オブジェクトが作成されます。オブジェクトの親にあたるリソースに対してリクエストが実行されます。リクエストに一致するリソース・オブジェクトが、対応するアプリケーション・ドメイン内に作成されます。 | |
| PUT | このメソッドでは、リソース・オブジェクトが変更されます。リクエスト本文に、そのオブジェクトを表すリソース・リソースを含める必要があります。 IDまたはNAME問合せパラメータと一致するリソースが変更されます。リソースは、APPDOMAINIDまたはAPPDOMAIN問合せパラメータと一致するアプリケーション・ドメインに属している必要があります。 問合せパラメータを指定しない場合、指定したIDまたはNAMEと一致するリソース・オブジェクトが変更されます。 リソースは、アプリケーション・ドメイン名属性で指定したアプリケーション・ドメインに属している必要があります。 IDとNAMEを両方とも指定した場合は、ID値が使用されます。 | |
| DELETE | このメソッドでは、リソース・オブジェクトが削除されます。APPDOMAINIDまたはAPPDOMAIN問合せパラメータで指定したアプリケーション・ドメイン内の、IDまたはNAME問合せパラメータと一致するリソース・オブジェクトが削除されます。 | |
| 
 | GET | このメソッドでは、認可ポリシー・オブジェクトが取得されます。認可ポリシー・オブジェクトを表すリソースが返されます。この表現には、一致する認可ポリシー・リソースの属性とその値が格納されています。 有効な問合せパラメータはIDまたはNAMEと、APPDOMAINIDまたはappdomainです。appdomainidまたはAPPDOMAINパラメータを指定しないと、ステータス・コード424が対応するメッセージとともに返されます。 IDまたはNAMEパラメータを指定しない場合、そのアプリケーション・ドメイン内のすべての認可ポリシー・リソースが返されます。 IDまたはNAMEパラメータが一致する場合は、アプリケーション・ドメイン内の一致する認可ポリシー・リソースが返されます。いずれの場合も、IDとNAMEを両方とも指定すると、ID値が使用されます。 | 
| POST | このメソッドでは、認可ポリシー・オブジェクトが作成されます。オブジェクトの親にあたるリソースに対してリクエストが実行されます。リクエストに一致する認可ポリシー・オブジェクトが、対応するアプリケーション・ドメイン内に作成されます。 | |
| PUT | このメソッドでは、認可ポリシー・オブジェクトが変更されます。リクエスト本文に、オブジェクトを表す認可ポリシー・リソースを含める必要があります。 IDまたはNAME問合せパラメータと一致する認可ポリシー・リソースが変更されます。 認可ポリシーは、APPDOMAINIDまたはAPPDOMAIN問合せパラメータと一致するアプリケーション・ドメインに属している必要があります。 問合せパラメータを指定しない場合、IDまたはNAMEパラメータと一致する認可ポリシーが変更されます。認可ポリシーは、アプリケーション・ドメイン名属性で指定したアプリケーション・ドメインに属している必要があります。 IDとNAMEを両方とも指定した場合は、ID値が使用されます。 | |
| DELETE | このメソッドでは、認可ポリシー・オブジェクトが削除されます。APPDOMAINIDまたはAPPDOMAIN問合せパラメータで指定したアプリケーション・ドメイン内の、IDまたはNAME問合せパラメータと一致する認可ポリシーが削除されます。 | |
| 
 | GET | このメソッドでは、ホスト識別子オブジェクトが取得されます。ホスト識別子オブジェクトを表すリソースが返されます。この表現には、一致するホスト識別子リソースの属性とその値が格納されています。 有効な問合せパラメータはIDまたはNAMEです。問合せパラメータを指定しない場合、すべてのホスト識別子リソースが返されます。IDまたはNAMEパラメータが一致する場合は、一致するホスト識別子リソースが返されます。 | 
| POST | このメソッドでは、ホスト識別子オブジェクトが作成されます。オブジェクトの親にあたるリソースに対してリクエストが実行されます。リクエストに一致するホスト識別子オブジェクトが作成されます。 | |
| PUT | このメソッドでは、ホスト識別子オブジェクトが変更されます。リクエスト本文に、そのオブジェクトを表すホスト識別子リソースを含める必要があります。 IDまたはNAME問合せパラメータと一致するホスト識別子リソースが変更されます。問合せパラメータを指定しない場合、IDまたはNAMEパラメータと一致するホスト識別子が変更されます。IDとNAMEを両方とも指定した場合は、ID値が使用されます。 | |
| DELETE | このメソッドでは、ホスト識別子オブジェクトが削除されます。IDまたはNAME問合せパラメータと一致するホスト識別子が削除されます。 | |
| 
 | GET | このメソッドでは、リソース・タイプ・オブジェクトが取得されます。リソース・タイプ・オブジェクトを表すリソースが返されます。この表現には、一致するリソース・タイプ・リソースの属性とその値が格納されています。 有効な問合せパラメータはIDまたはNAMEです。問合せパラメータを指定しない場合、すべてのリソース・タイプ・リソースが返されます。IDまたはNAME問合せパラメータが一致する場合は、一致するリソース・タイプが返されます。 | 
| POST | このメソッドでは、リソース・タイプ・オブジェクトが作成されます。オブジェクトの親に対してリクエスト本文が実行されます。このリクエストに一致するリソース・タイプ・オブジェクトが作成されます。 | |
| PUT | このRESTメソッドでは、リソース・タイプ・オブジェクトが変更されます。リクエスト本文に、そのオブジェクトを表すリソース・タイプ・リソースを含める必要があります。 IDまたはNAME問合せパラメータと一致するリソース・タイプ・リソースが変更されます。問合せパラメータを指定しない場合、IDまたはNAMEパラメータと一致するリソース・タイプが変更されます。IDとNAMEを両方とも指定した場合は、ID値が使用されます。 | |
| DELETE | このメソッドでは、リソース・タイプ・オブジェクトが削除されます。NAMEまたはID問合せパラメータと一致するリソース・タイプが削除されます。 | |
| 
 | GET | このメソッドでは、認証スキーム・オブジェクトが取得されます。認証スキーム・オブジェクトを表すリソースが返されます。この表現には、一致する認証スキーム・リソースの属性とその値が格納されています。 有効な問合せパラメータはIDまたはNAMEです。問合せパラメータを指定しない場合、すべての認証スキーム・リソースが返されます。問合せパラメータIDまたはNAMEが一致する場合は、一致する認証スキームが返されます。 | 
| POST | このメソッドでは、認証スキーム・オブジェクトが作成されます。オブジェクトの親にあたるリソースに対してリクエストが実行されます。リクエストに一致する認証スキーム・オブジェクトが作成されます。 | |
| PUT | このメソッドでは、認証スキーム・オブジェクトが変更されます。リクエスト本文に、そのオブジェクトを表す認証スキーム・リソースを含める必要があります。 IDまたはNAME問合せパラメータと一致する認証スキーム・リソースが変更されます。問合せパラメータを指定しない場合、IDまたはNAMEパラメータと一致する認証スキームが変更されます。IDとNAMEを両方とも指定した場合は、ID値が使用されます。 | |
| DELETE | このメソッドでは、認証スキーム・オブジェクトが削除されます。NAMEまたはID問合せパラメータと一致する認証スキームが削除されます。 | |
| 
 | GET | Webアプリケーション定義ドキュメントが生成されます。このドキュメントは、提供されるRESTサービスを記述するものです。このドキュメントには、HTMLコンテンツをレンダリングするスタイルシート参照が格納されています。 | 
ここでは、次の例を示します。
cURLコマンド
$ curl -u USER:PASSWORD http://<SERVER>:<PORT>/oam/services/rest/11.1.2.0.0/ssa/policyadmin/appdomain
サンプル出力
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><ApplicationDomains>
<ApplicationDomain>
    <id>759463e3-2b63-4e38-893c-00d5da479719</id>
    <name>IAM Suite</name>
    <description>Policy objects enabling OAM Agent to protect deployed IAM Suite applications</description>
</ApplicationDomain>
 
<ApplicationDomain>
    <id>69f6be9b-f000-48db-9b6d-df4724cc0bd9</id>
    <name>Fusion Apps Integration</name>
    <description>Policy objects enabling integration with Oracle Fusion Applications</description>
</ApplicationDomain>
cURLコマンド
curl -u weblogic:welcome1 -H "Content-Type: application/xml" --request POST --data "@/tmp/cr.appdomain.xml" http://<SERVER>:<PORT>/oam/services/rest/11.1.2.0.0/ssa/policyadmin/appdomain
サンプル入力ファイル
<ApplicationDomain>
    <name>Appdomain1</name>
    <description>test application domain</description>
</ApplicationDomain>
サンプル出力
http://<SERVER>:<PORT>/oam/services/rest/11.1.2.0.0/ssa/policyadmin/appdomain?id=fa60e312-fe65-4aa8-aace-1735a39c4058
cURLコマンド
curl -u USER:PASSWORD http://<SERVER>:<PORT>/oam/services/rest/11.1.2.0.0/ssa/policyadmin/authnscheme
サンプル出力
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AuthenticationSchemes>
  <AuthenticationScheme>
      <id>aa84b589-7f16-4b3a-942c-ba51b3ab6de5</id>
      <name>KerberosScheme</name>
      <description>Kerberos Scheme</description>
      <authnModuleName>Kerberos</authnModuleName>
      <authnSchemeLevel>2</authnSchemeLevel>
      <challengeMechanism>WNA</challengeMechanism>
      <ChallengeParameters>
          <challengeParameter>
              <key>spnegotoken</key>
              <value>string</value>
          </challengeParameter>
          <challengeParameter>
              <key>challenge_url</key>
              <value>/oam/CredCollectServlet/WNA</value>
          </challengeParameter>
      </ChallengeParameters>
      <challengeRedirectURL>/oam/server/</challengeRedirectURL>
  </AuthenticationScheme>
</AuthenticationSchemes>
cURLコマンド
curl -u weblogic:welcome1 -H "Content-Type: application/xml" --request POST --data "@/tmp/cr.authnscheme.xml" http://<SERVER>:<PORT>/oam/services/rest/11.1.2.0.0/ssa/policyadmin/authnscheme
サンプル入力ファイル
<AuthenticationScheme>
    <name>TestAuthnScheme</name>
    <description>test authn scheme</description>
    <authnModuleName>TestModule1</authnModuleName>
    <authnSchemeLevel>2</authnSchemeLevel>
    <challengeMechanism>WNA</challengeMechanism>
    <ChallengeParameters>
        <challengeParameter>
            <key>spnegotoken</key>
            <value>string</value>
        </challengeParameter>
        <challengeParameter>
            <key>challenge_url</key>
            <value>/oam/CredCollectServlet/WNA</value>
        </challengeParameter>
    </ChallengeParameters>
    <challengeRedirectURL>/oam/server/</challengeRedirectURL>
</AuthenticationScheme>
~                         
サンプル出力
http://<SERVER>:<PORT>/oam/services/rest/11.1.2.0.0/ssa/policyadmin/authnscheme?id=acb1fa95-f780-4091-be88-2e96cf5bbd49
cURLコマンド
curl -u USER:PASSWORD http://<SERVER>:<PORT>/oam/services/rest/11.1.2.0.0/ssa/policyadmin/authnscheme?name=KerberosScheme
サンプル出力
<AuthenticationScheme>
      <id>aa84b589-7f16-4b3a-942c-ba51b3ab6de5</id>
      <name>KerberosScheme</name>
      <description>Kerberos Scheme</description>
      <authnModuleName>Kerberos</authnModuleName>
      <authnSchemeLevel>2</authnSchemeLevel>
      <challengeMechanism>WNA</challengeMechanism>
      <ChallengeParameters>
          <challengeParameter>
              <key>spnegotoken</key>
              <value>string</value>
          </challengeParameter>
          <challengeParameter>
              <key>challenge_url</key>
              <value>/oam/CredCollectServlet/WNA</value>
          </challengeParameter>
      </ChallengeParameters>
      <challengeRedirectURL>/oam/server/</challengeRedirectURL>
  </AuthenticationScheme>
cURLコマンド
curl -u USER:PASSWORD http://<SERVER>:<PORT>/oam/services/rest/11.1.2.0.0/ssa/policyadmin/resource?appdomain="IAM Suite"
cURLコマンド
curl -u weblogic:welcome1 -H "Content-Type: application/xml" --request POST --data "@/tmp/cr.resource.xml" http://<SERVER>:<PORT>/oam/services/rest/11.1.2.0.0/ssa/policyadmin/resource?appdomain="AppDomain1"
RESTfulサービス・リソースを表すクライアント側POJOの生成には、次の2つのXMLスキーマを使用できます。
ポリシー管理サービスの場合、スキーマはoam-policyadmin-11.1.2.0.0.xsdです。
トークン・サービスの場合、スキーマはoam-token-11.1.2.0.0.xsdです。
クライアント側オブジェクトを生成するには、JAXBコマンドxjc (JDKの一部)を次のように実行します。
xjc  [-p package-name] oam-policyadmin-11.1.2.0.0.xsd
このコマンドは、クライアント側Javaコードで使用できるRESTfulリソースのJava POJOオブジェクトを生成します。JAXBを使用してこれらのオブジェクトをXMLに戻し、HTTPでRESTサーバーに送信することができます。
JAXBの詳細は、http://jaxb.java.net/を参照してください。JerseyベースRESTサーバーのクライアントの構築の詳細は、http://jersey.java.net/を参照してください。