OAuthをREST APIコールで使用
OAuthをREST APIコールとともに使用するには、Oracle Identity Cloud Serviceから認可コードとアクセス・トークンを取得し、Oracle Integration REST APIをコールする際にアクセス・トークンを指定する必要があります。
ステップ
2. Base64クライアントIDおよびクライアント・シークレットをエンコード
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=codefor 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/callbackOracle Identity Cloudサービスへのログインを求められます。 Oracle Integrationのユーザー名とパスワードを使用します。
レスポンスについては、次のようなブラウザ・パスが置き換わります。 code=は、アクセス・トークンのリクエストに必要なものです。 取得したコードをファイルにコピーします。 アクセス・コードは非常に短い時間で失効することに注意してください。
たとえば:
https://www.example.com/oauth2/callback?code=iEipsLiGBfl-fpyqvguBMlBxIp7wZMTEUllQCAAQIDBST9=2. Base64クライアントIDおよびクライアント・シークレットをエンコード
アクセス・トークンのリクエストにクライアントIDとクライアント・シークレットを含める場合は、そのクライアントIDとクライアント・シークレットをエンコードする必要があります。
例 - Windows
Windowsでのbase64エンコードには多くのユーティリティがあります。たとえば、Notepad++などにプラグインが含まれます。 ニーズに最適なツールを使用します。
-
メモ帳でファイルを作成し、クライアントIDとクライアント・シークレットを1行でコピーし、コロンで区切り、保存します。 たとえば:
ff8c2aff5ce:b8fe45-97ff-bae8d558f -
コマンド・プロンプトを開き、
certutilコマンドを使用してクライアントIDおよびクライアント・シークレットをエンコードします。 元のファイルおよび新しいエンコード・ファイルを指定します:たとえば:
certutil -encode original_creds.txt encoded_creds.txt -
エンコードされたファイル(たとえば、
encoded_creds.txt)を開き、エンコードされたクライアントとシークレットをコピーしてREST APIコールで使用します。重要:
セキュリティ上の理由から、終了後にoriginal_creds.txtファイルおよびencoded_creds.txtファイルを削除します。
例 - MacおよびLinux
-
テキスト・エディタでファイルを作成し、クライアントIDとクライアント・シークレットを1行でコピーし、コロンで区切って保存します。 たとえば:
ff8c2aff5ce:b88fe45-97ff-bae8d558f -
クライアントおよびシークレットをコピーします。
-
ターミナルを起動して次のコマンドを入力します。
clientid:clientsecretの部分は先ほどクリップボードにコピーした値に置き換えてください。echo -n "clientid:clientsecret" | base64 -w 0ノート:
返された値が複数行に分割されている場合、テキスト・エディタでこの操作を修正し、テキストの折返しなしで、結果が1行に表示されることを確認します。 -
返された値をコピーします。 アクセス・トークンを取得するには、これを指定する必要があります。
3. アクセス・トークンを取得するには認可コードを使用
信頼できるアプリケーションのクライアントIDおよびクライアント・シークレットを使用して、Oracle Identity Cloud Serviceからアクセス・トークンをリクエストします。 Oracle IntegrationにREST APIを呼び出すときに、アクセス・トークンを指定します。 ユーザーごとに1つのアクセス・トークンがあります。
-
コマンド・プロンプトを起動します。
-
次の形式で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'Oracle Integration Generation 2からOracle Integration 3へのアップグレード
https://<OIC_GEN2_RUNTIME_URL>/ic/api/fileserver/v1/<REQUIRED_API_PATH>Oracle Integration 3エンドポイントをコールするには、次のいずれかのURL形式を使用できます:
-
デザインタイムURL:
https://<OIC_DESIGNTIME_URL>/ic/api/fileserver/v1/<REQUIRED_API_PATH>?integrationInstance=<RUNTIME_DISPLAY_NAME> -
ランタイムURL:
https://<OIC_GEN3_RUNTIME_URL>/ic/api/fileserver/v1/<REQUIRED_API_PATH>
ノート:
設計時URL形式とランタイムURL形式の両方で、URLのエンドポイント・セクションの形式のみが変更されます。