REST認可の資格証明の格納
認可トークンには、プライベート部分とオプションのパブリック部分が含まれます。
資格証明のパブリック部分がない場合、プライベート部分(認可トークン全体)は、OPSSパスワード資格証明のパスワード・コンポーネント(ユーザー名コンポーネントは無視されます)またはOPSS汎用資格証明として格納できます。
パブリック部分がある場合、認可トークンは、パブリック部分をユーザー名コンポーネント、プライベート部分をパスワード・コンポーネントとして、OPSSパスワード資格証明として格納できます。トークンは、パブリック部分の後にプライベート部分が続くOPSS汎用資格証明として、改行(0x0A
)またはキャリッジ・リターン/改行(0x0D0A
)で区切って格納することもできます。
様々なタイプの認可に対して作成する必要があるOPSS資格証明を次に示します。
- Basic認証: 通常、ユーザー名とパスワードはプログラムまたはエンド・ユーザーによって提供されます。この場合、OPSS資格証明は作成されません。ただし、場合によっては、固定のユーザー名とパスワードが適切な場合もあります。この場合、OPSS資格証明(またはバリアントがある場合は資格証明)を作成できます。ユーザー名はパブリック部分で、パスワードはプライベート部分です。
- Bearerトークン: OPSS資格証明は、Bearerトークンをプライベート部分として作成する必要があります。パブリック部分はありません。
- APIキー: OPSS資格証明は、APIキーをプライベート部分として作成する必要があります。パブリック部分はありません。
- OAuth2: OPSS資格証明は、クライアントIDをパブリック部分として、クライアント・シークレット(またはクライアント・パスワード)をプライベート部分として作成する必要があります。RESTサービスで想定されるURLエンコーディング・セマンティクスを使用して、クライアントIDとクライアント・シークレット/パスワードの両方をURLエンコードする必要があります。
OAuth2以外のタイプの認可の場合、Oracle Formsは認可トークンのURLエンコーディングを実行します。特定の認可トークンをURLエンコードする方法は複数ありますが、Oracle Formsによって生成されたURLエンコードされた値をURLデコードすると、RESTサービスが同じ結果を生成することを想定しています。
OAuth2の場合、RFC 6749 (OAuth 2.0認可フレームワーク)では、クライアント認証にBasic認証を使用することをお薦めします。また、Basic認可ヘッダーの作成に使用する前に、クライアントIDおよびクライアント・パスワードをURLエンコードする必要があります。可能なURLエンコーディングのうち、許容されるBasic認証ヘッダーを生成するのは1つのみですが、Oracle Formsには、それがどれであるかを判断する方法がありません。したがって、Oracle Formsでは、管理者(またはアプリケーション開発者)がOPSS資格証明の作成時に正しいURLエンコーディングを決定する必要があります。
では、管理者はどのようにして正しいURLエンコーディングを決定すればよいのでしょうか。まず、英数字はURLエンコーディングを必要としないため、クライアントIDとクライアント・パスワードがすべて英数字で構成されている場合は、URLエンコーディングは必要ありません。また、管理者はRESTサービスに問い合せて、RESTサービスが想定しているURLエンコーディングを決定できる場合もあります。これが不可能な場合は、試行錯誤が必要になることがあります。次のガイドラインを使用して、試用版のURLエンコーディングを作成します。
- アンダースコア[
_
]、ドット[.
]、ハイフン[-
]およびチルダ[~
]では、URLエンコーディング必要になることはほとんどありません。 - 感嘆符[
!
]、ドル記号[$
]、アポストロフィ['
]、左カッコと右カッコ[(
と)
]、アスタリスク[*
]、カンマ[,
]、セミコロン[;
]、コロン[:
]およびアットマーク[@
]では、URLエンコーディングが必要な場合と不要な場合があります。 - 他の文字には、ほとんどの場合URLエンコーディングが必要です。
文字をURLエンコーディングするには、そのUTF-8表現を生成し、この表現の各バイトを3バイトのパーセント・エンコーディング(%
の後にバイトの大文字の16進数が続く)で置き換えます。ただし、特定のRESTサービスでは、スペースが'%20
'ではなく'+
'としてエンコードされることが想定される場合があります。
FormsからRESTコールを行う場合に使用できる構成設定については、このガイドの「フォーム参照」を参照してください。具体的には、「環境変数」および「Web構成パラメータ」を参照してください。