機械翻訳について

OAuthをREST APIコールで使用

OAuthをREST APIコールとともに使用するには、Oracle Identity Cloud Serviceから認可コードとアクセス・トークンを取得し、Oracle Integration REST APIをコールする際にアクセス・トークンを指定する必要があります。

ステップ

1。認可コードの取得

2. Base64クライアントIDおよびクライアント・シークレットをエンコード

3. アクセス・トークンを取得するには認可コードを使用

4. REST APIコールでアクセス・トークンを使用してOracle Integration

1. 認可コードの取得

必要なもの:
  • Identity Cloud Service URL: Oracle Identity Cloud ServiceインスタンスのURL。 たとえば: idcs-c2881.identity.myhost.example.com

  • クライアントID: Identity Cloud Serviceで信頼できるアプリケーションを登録したときに取得したクライアントID。 クライアントIDは、アプリケーションのOracle Identity Cloud Serviceで見つけることができます。 「構成」タブの「一般情報」セクションで、Oracle Identity Cloud Serviceで構成した信頼できるアプリケーションを選択します。

  • レスポンス・タイプ: response_type=code for Authorization code grant typeを指定します。

  • スコープ: 信頼できるアプリケーションに登録されているOracle Integrationインスタンスに関連付けられたスコープ値。 この情報は、「構成」タブのOracle Identity Cloud Serviceで登録した信頼できるアプリケーション(「他のアプリケーションからのAPIへのアクセス」セクションの、追加したスコープの「許可されているスコープ」の下)にあります。 範囲はこれに類似しています : https://F7E102440.myhost.example.com:443/ic/api/

  • リダイレクトURL: レスポンスが送信されるURL。 リダイレクトURLが、Oracle Identity Cloud Serviceで構成した信頼できるアプリケーションで指定されたURLと同じであることを確認してください。 リダイレクトURLは、Oracle Identity Cloud Serviceで入手できます。これは、Oracle Identity Cloud Serviceで構成した信頼できるアプリケーションの「クライアント構成」セクションにあります。

ブラウザを使用して、Oracle Identity Cloud Serviceから認可コードをリクエストします。

offline_accessはスペースで区切られたスコープに必ず追加してください。

形式:

https://<idcs_URL>/oauth2/v1/authorize?client_id=<client_ID>&response_type=code&scope=<scope> offline_access&redirect_uri=<URL_to_receive_response>

例:

https://idcs-c2881.identity.myhost.example.com/oauth2/v1/authorize?client_id=f82f71efefcaff5ce&response_type=code&scope=https://F7E102440.myhost.example.com:443/ic/api/ offline_access&redirect_uri=https://www.example.com/oauth2/callback

Oracle Identity Cloudサービスへのログインを求められます。 Oracle Integrationのユーザー名とパスワードを使用します。

レスポンスについては、次のようなブラウザ・パスが置き換わります。 code=は、アクセス・トークンのリクエストに必要なものです。 取得したコードをファイルにコピーします。 アクセス・コードは非常に短い時間で失効することに注意してください。

例:

https://www.example.com/oauth2/callback?code=iEipsLiGBfl-fpyqvguBMlBxIp7wZMTEUllQCAAQIDBST9=

2. Base64クライアントIDおよびクライアント・シークレットをエンコード

アクセス・トークンのリクエストにクライアントIDとクライアント・シークレットを含める場合は、そのクライアントIDとクライアント・シークレットをエンコードする必要があります。

例 - Windows

Windowsでのbase64エンコードには多くのユーティリティがあります。たとえば、Notepad++などにプラグインが含まれます。 ニーズに最適なツールを使用します。

  1. メモ帳でファイルを作成し、クライアントIDとクライアント・シークレットを1行でコピーし、コロンで区切り、保存します。 例:
    ff8c2aff5ce:b8fe45-97ff-bae8d558f
  2. コマンド・プロンプトを開き、certutilコマンドを使用してクライアントIDおよびクライアント・シークレットをエンコードします。 元のファイルおよび新しいエンコード・ファイルを指定します:

    例:

    certutil -encode original_creds.txt encoded_creds.txt
  3. エンコードされたファイル(たとえば、encoded_creds.txt)を開き、エンコードされたクライアントとシークレットをコピーしてREST APIコールで使用します。

    重要:

    セキュリティ上の理由から、終了後にoriginal_creds.txtファイルおよびencoded_creds.txtファイルを削除します。

例 - MacおよびLinux

  1. テキスト・エディタでファイルを作成し、クライアントIDとクライアント・シークレットを1行でコピーし、コロンで区切って保存します。 例:
    ff8c2aff5ce:b88fe45-97ff-bae8d558f
  2. クライアントおよびシークレットをコピーします。

  3. ターミナルを起動して次のコマンドを入力します。clientid:clientsecretの部分は先ほどクリップボードにコピーした値に置き換えてください。

    echo -n "clientid:clientsecret" | base64 -w 0

    ノート:

    返された値が複数行に分割されている場合、テキスト・エディタでこの操作を修正し、テキストの折返しなしで、結果が1行に表示されることを確認します。
  4. 返された値をコピーします。 アクセス・トークンを取得するには、これを指定する必要があります。

3. アクセス・トークンを取得するには認可コードを使用

信頼できるアプリケーションのクライアントIDおよびクライアント・シークレットを使用して、Oracle Identity Cloud Serviceからアクセス・トークンをリクエストします。 Oracle IntegrationにREST APIを呼び出すときに、アクセス・トークンを指定します。 ユーザーごとに1つのアクセス・トークンがあります。

  1. コマンド・プロンプトを起動します。

  2. 次の形式でcURLコマンドを入力し、テキストをカッコ( < > )で適切な値に置き換えます:

    形式:

    curl -i  -H 'Authorization: Basic <base64_encoded_client_id:client_secret>' --request POST 'https://<idcs_url>/oauth2/v1/token' -H 'Content-Type:application/x-www-form-urlencoded' -d 'grant_type=authorization_code&code=<authorization_code_value>'
    curl -i  -H 'Authorization: Basic NzGVjMmZkNDYjYyYMS0GEtOlNjkxZWQ0' --request POST 'https://idcs-a0287b.identity.myhost.example.com/oauth2/v1/token' -H 'Content-Type:application/x-www-form-urlencoded' -d 'grant_type=authorization_code&code=G0bbfB0bA-9Sa2h-DyuKpB7djF9'

    REST APIコールで使用できるアクセス・トークンを受け取ります。 リフレッシュ・トークンを含む、ファイルに対する受信内容をコピーします。 アクセス・トークンは、デフォルトでは1 hour(3600 seconds)に対して有効です。 含まれているリフレッシュ・トークンを使用して、有効期限が切れたときにトークンをリフレッシュする必要があります。 REST API呼出しで使用するために、レスポンスからOracle Integrationにaccess_token値をコピーします。

4. REST APIコールでアクセス・トークンを使用してOracle Integration

APIコールを行い、認可ヘッダーにアクセス・トークンを指定します。

ヘッダーの形式は次のとおりです:

Authorization: Bearer access_token

たとえば、ファイル・システムのルート・ディレクトリを取得するには:

curl -X GET https://myhost.example.com/ic/api/fileserver/v1/filesystem/root -H 'Authorization: Bearer eyJiO.eyJzdZ.tQ8_-9Jor5'