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構成パラメータ」を参照してください。