Postmanを使用したOCIアイデンティティ・ドメイン
このチュートリアルでは、REST APIテストに通常使用されるソフトウェアであるPostmanを使用して、アイデンティティ・ドメインへのRESTアプリケーション・プログラミング・インタフェース(API)コールを行います。
アイデンティティ・ドメインREST APIは、アイデンティティ・ドメインをRESTクライアントと統合して、ユーザー、グループ、アプリケーションおよび設定を管理し、クラウドでフェデレーテッド・シングル・サインオン(SSO)および認可を実行する方法を提供します。APIは、OAuth 2.0、OpenID ConnectおよびSystem for Cross-Domain Identity Management (SCIM)をサポートしています。
このチュートリアルでは:
- OAuthクライアント・アプリケーションの登録
- Postmanでの環境パラメータの設定
- アイデンティティ・ドメインのインポートPostmanコレクション
- OAuthアクセス・トークンをリクエストします。
- ユーザーを作成します
- ユーザーの取得
- ユーザーを削除
このチュートリアルを完了するのに要する時間は約20分です。
このチュートリアルは、アイデンティティ・ドメインのあるOCI Identity and Access Managementに固有です。
開始前
このチュートリアルを実行するには、次のものが必要です:
- アイデンティティ・ドメイン管理者ロールを持つアイデンティティ・ドメインへのアクセス。次の値があることを確認します。
- アイデンティティ・ドメインを使用してOracle Cloud Infrastructure Consoleのテナンシにサインインするためのテナンシ名、アイデンティティ・ドメイン名、および資格証明(ユーザー名とパスワード)。
- サインイン後にアイデンティティ・ドメインの詳細ページに表示されるドメインURL。たとえば、
https://<idcs-letterandnumberstring>.identity.oraclecloud.com
です。ドメインURLの検索に関するヘルプが必要な場合は、ドキュメントのアイデンティティ・ドメインURLの検索を参照してください。アイデンティティ・ドメインURLは、RESTリクエストの作成に使用されます。
- RESTアーキテクチャ・スタイルの理解
- インストールされたPostmanデスクトップ・アプリケーション。
- ポストマンに親しむ必要はない。
- Postmanアカウントを作成します。環境変数を使用するにはアカウントが必要です。
- (オプション) Postmanでワークスペースを作成します。
1. クライアント・アプリケーションを登録します
アイデンティティ・ドメインへのREST APIコールを認証するには、アイデンティティ・ドメインにOAuthクライアント・アプリケーションを登録します。
このタスクは、認証に使用される資格証明(クライアントIDおよびクライアント・シークレット)を取得するために必要です。資格証明は、クライアントがアイデンティティ・ドメインとの通信に使用するサービス資格証明(IDおよびパスワード)と同じです。このタスクは、REST APIを介してどのリクエストが認可されているかを判断する際にも役立ちます。
- ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」を選択します。「アイデンティティ」で、「ドメイン」を選択します。
- 作業するアイデンティティ・ドメインの名前を選択します。必要なドメインを見つけるには、コンパートメントの変更が必要になる場合があります。
- ドメインの詳細ページで、「統合アプリケーション」を選択します。
- 「アプリケーションの追加」を選択します。
- 「アプリケーションの追加」ダイアログで、「機密アプリケーション」、「ワークフローの起動」の順に選択します。
- ワークフローの「アプリケーション詳細の追加」ステップで、アプリケーションの名前および説明を入力し、「次へ」を選択します。
- 「OAuthの構成」ステップで、次のアクションを実行します:
- 「Client configuration」ボックスで、「Configure this application as a client now」を選択します。
ボックスが展開され、その他のオプションが表示されます。
- 「認可」で、許可される権限付与タイプとして「クライアント資格証明」のみを選択します。
- 箱の端まで下にスクロールします。「アプリケーション・ロールの追加」を選択し、「ロールの追加」を選択します。
- 「アプリケーション・ロールの追加」パネルで、「Identity Domain Administrator」を選択し、「追加」を選択します。
- 「Client configuration」ボックスで、「Configure this application as a client now」を選択します。
- 「OAuthの構成」ステップで、「次へ」、「終了」の順に選択します。
このチュートリアルのポリシー構成ステップをスキップできます。
アプリケーションが作成されると、その初期状態は「非アクティブ」になります。
- アプリケーション詳細ページで、「アクティブ化」を選択します。次に、「アプリケーションのアクティブ化」を選択して、このアプリケーションのアクティブ化を確認します。
- アプリケーションの詳細ページで、「一般情報」までスクロール・ダウンし、次のステップに従ってクライアントIDおよびクライアント・シークレット値をコピーします。
- 「クライアントID」の横に表示されている値を強調表示し、値をテキスト・ファイルにコピーします。
- 「クライアント・シークレット」で、「シークレットの表示」を選択します。表示されるダイアログで、「コピー」、「閉じる」の順に選択します。値がクリップボードにコピーされます。値をテキスト・ファイルに貼り付けます。
- コピーしたクライアントIDおよびクライアント・シークレット値を安全な場所に格納します。
2.Postmanでの環境パラメータの設定
このチュートリアルをPostmanで正常に実行するには、idcs-rest-clients
REST変数のサンプルをインポートして、環境パラメータを設定します。
- Postmanデスクトップ・アプリを開き、アカウントを使用してサインインします。ワークスペースがある場合は、「ワークスペース」を選択し、ワークスペースを選択します。それ以外の場合は、デフォルトのワークスペースを使用できます。
- ワークスペースで「インポート」を選択します。
- 「インポート」ダイアログで、次のGitHub環境変数URLをフィールドに貼り付けます。
https://github.com/oracle/idm-samples/raw/master/idcs-rest-clients/example_environment.json
Postmanは、URLを貼り付けるとすぐにインポートを開始します。インポートが完了したら、「終了」を選択してメッセージ・ボックスを閉じます。
- 左側のサイドバーで、「環境」を選択します。次に、「Oracle Identity Cloud Serviceサンプル環境変数」を右クリックし、「複製」を選択します。
- 環境のリストで、元の環境の下に表示される「変数コピーを使用したOracle Identity Cloud Service環境の例」を右クリックし、「名前変更」を選択します。フィールドに
Environment A for REST API Testing
と入力し、[Enter]を押します。 - 名前が変更された環境の変数を更新するには、「初期値」および「現在の値」フィールドに次の値を入力します。
- HOST: Oracle Cloud Infrastructure Consoleへのサインイン後にアイデンティティ・ドメインの詳細ページから取得したドメインURL。たとえば、
https://<idcs-letterandnumber123string>.identity.oraclecloud.com
です。ドメインURLの検索に関するヘルプが必要な場合は、ドキュメントのアイデンティティ・ドメインURLの検索を参照してください。 - CLIENT_IDおよびCLIENT_SECRET:チュートリアル・タスクの「クライアント・アプリケーションの登録」の説明に従って、アイデンティティ・ドメインの信頼できるアプリケーションからテキスト・ファイルにコピーしたクライアントIDおよびクライアント・シークレット。
- USER_LOGINおよびUSER_PW:自分のログイン・ユーザー名とパスワード
- HOST: Oracle Cloud Infrastructure Consoleへのサインイン後にアイデンティティ・ドメインの詳細ページから取得したドメインURL。たとえば、
- 「保存」を選択します。
- 環境のリストで、
Environment A for REST API Testing
という名前のチェック・マークを選択してアクティブ環境にします。アクティブな環境は、ワークベンチの右上隅にある環境セレクタに表示されます。
3. アイデンティティ・ドメインPostmanコレクションのインポート
このチュートリアルをPostmanで正常に実行するには、REST_API_for_Oracle_Identity_Cloud_Service
コレクションをインポートします。このコレクションには、コールの実行に使用できるサンプルAPIリクエストが含まれています。
- Postmanワークスペースで、「インポート」を選択します。
- 「インポート」ダイアログで、次のURLをフィールドに貼り付けて、アイデンティティ・ドメインのREST API Postmanコレクションをインポートします。
https://github.com/oracle/idm-samples/raw/master/idcs-rest-clients/REST_API_for_Oracle_Identity_Cloud_Service.postman_collection.json
Postmanは、URLを貼り付けるとすぐにコレクションのインポートを開始します。インポートが完了したら、「終了」を選択してメッセージ・ボックスを閉じることができます。
- 左側のサイドバーで、「コレクション」を選択します。
- REST_API_for_Oracle_Identity_Cloud_Serviceという名前を選択します。
コレクション内のリクエストはフォルダに編成されます。
4. アクセス・トークンのリクエスト
アイデンティティ・ドメインへのAPIコールを行うには、アイデンティティ・ドメインに対してクライアントを認証してから、OAuthアクセス・トークンを取得する必要があります。
アクセス・トークンは、クライアント(このチュートリアルでは、Postman)とアイデンティティ・ドメイン間のセッションを提供します。
デフォルトでは、アクセス・トークンのタイムアウト間隔は60分です。間隔を超えてREST APIコールを実行するには、新しいアクセス・トークンをリクエストする必要があります。
- 左側のサイドバーで、「コレクション」を選択します。REST_API_for_Oracle_Identity_Cloud_Serviceが展開されていない場合は展開します。
- OAuthを展開し、「トークン」を展開します。
- 「トークン」で、「POST Obtain access_token (クライアント資格証明)」を選択します。
APIの
POST
タブがワークベンチに表示されます。APIのリクエスト・ペインは、レスポンス・ペインと1行で区切られます。区切り線をドラッグすると、各ペインの表示が多くまたは少なくなります。リクエスト・ペインの「URL」フィールドには、
POST {{HOST}}/oauth2/v1/token
と表示されます。チュートリアル・タスクのPostmanでの環境パラメータの設定を完了すると、
{{HOST}}
、サインインおよび認証資格証明の変数がすでに設定されています。 - 「送信」を選択します。
レスポンス・ビューアで、ステータス
200 OK
が表示され、レスポンス本文にアクセス・トークンが返されていることを確認します。アクセス・トークンは、非常に長い文字列の文字と数字です。 - アクセス・トークン値を環境変数に割り当てるには、次のステップを使用します。
- レスポンスで、引用符と右クリックの間のアクセス・トークン・コンテンツを強調表示します。ショートカット・メニューで、「設定: REST APIテストの環境A」を選択し、セカンダリ・メニューでaccess_tokenを選択して、強調表示されたコンテンツをアクセス・トークン環境値として割り当てます。
- ワークベンチの右上にあるアイコンを選択して、変数ペインを開きます。
割り当てられた
access_token
値は、「すべての変数」の下に表示されます。
- レスポンスで、引用符と右クリックの間のアクセス・トークン・コンテンツを強調表示します。ショートカット・メニューで、「設定: REST APIテストの環境A」を選択し、セカンダリ・メニューでaccess_tokenを選択して、強調表示されたコンテンツをアクセス・トークン環境値として割り当てます。
- 変数ペインを閉じるには、ペインの右上にある「X」を選択するか、変数アイコンを選択します。
トークンが期限切れになる前にアイデンティティ・ドメインに次のREST APIコールを送信すると、APIコールには、アクセス・トークンとリクエストに関連するその他の情報が含まれます。REST情報は、リクエストUniversal Resource Identifier、ヘッダー、パラメータまたはJSONコードを介して送信され、リクエストするREST APIコールおよびメソッドによって異なります。
5. ユーザーの作成
このタスクは、過去1時間以内にアクセス・トークンをリクエストしたことを前提としています。
必要に応じて、ユーザーを作成する前に新しいトークンをリクエストします。
- 左側のサイドバーで、「コレクション」を選択します。「ユーザー」を開き、「作成」を開きます。
- 「作成」で「ユーザーの作成」を選択します。
APIの
POST
タブがワークベンチに表示されます。 - 「Body」タブを選択します。
サンプルでは、本文データにRAWモードおよびJSON形式を使用します。
- 「送信」を選択します。
-
レスポンス・ビューアで、ステータス
201 Created
が表示され、レスポンス本文にアイデンティティ・ドメインで正常に作成されたユーザーの詳細が含まれていることを確認します。 -
ステータス
401 Unauthorized
がProper authorization is required for this area
というエラー・メッセージとともに表示された場合は、新しいアクセス・トークンをリクエストし、ユーザーの作成を再試行します。
-
- 正常に作成されたレスポンス本文で、作成されたユーザーのOCID値がある行40までスクロール・ダウンします。
例:
ocid1.user.oc1..aabaaacaaaq7xxxxxx
- 二重引用符の間のOCID値を強調表示します。ショートカット・メニューで、「設定: REST APIテスト用の環境A」を選択し、セカンダリ・メニューで「userid」を選択します。
- ワークベンチの右上にあるアイコンを選択して、変数ペインを開きます。
割り当てられた
userid
値は、「すべての変数」の下に表示されます。
6. ユーザーの取得
このタスクでは、userid
変数を使用して特定のユーザーの詳細を取得します。
次の手順は、前述のタスク「ユーザーの作成」を完了していることを前提としています。
- 左側のサイドバーで、「コレクション」を選択します。「ユーザー」、「検索」の順に展開します。
- 「検索」で、「特定のユーザーの取得」を選択します。
APIの
GET
タブがワークベンチに表示されます。 - 「送信」を選択します。
-
成功した場合は、レスポンス・ビューアにステータス
200 OK
が表示されていることを確認します。「本文」タブには、その特定のユーザーに関する詳細も表示されます。 -
ステータス
401 Unauthorized
にエラー・メッセージProper authorization is required for this area
が表示された場合は、新しいアクセス・トークンをリクエストして、特定のユーザーの取得を再試行してください。
-
7. ユーザーの削除
このタスクは、userid
変数で指定されたユーザーを削除します。
次の手順は、「ユーザーの作成」および「ユーザーの取得」のチュートリアル・タスクを完了していることを前提としています。
必要に応じて、このタスクを実行する前に新しいアクセス・トークンをリクエストします。
- 左側のサイドバーで、「コレクション」を選択します。「ユーザー」を開き、「削除」を開きます。
- 「ユーザーの削除」を選択します。
APIの
DELETE
タブがワークベンチに表示されます。 - ワークベンチの右上にあるアイコンを選択して、変数ペインを開きます。
「すべての変数」で、
userid
変数に、ユーザーの詳細の取得に使用されたものと同じOCID値が引き続き表示されることを確認します。 - 「送信」を選択します。
-
成功した場合は、レスポンス・ビューアにステータス
204 No content
が表示されていることを確認します。DELETE
操作に対してレスポンス本文が返されないため、「本文」タブは空白です。 -
ステータス
401 Unauthorized
にエラー・メッセージProper authorization is required for this area
が表示された場合は、新しいアクセス・トークンをリクエストして、特定のユーザーの削除を再試行してください。
-
- 削除に成功したら、ワークベンチで「特定のユーザーのGET」タブを選択します。次に、「送信」を選択します。
レスポンス・ビューアで、ユーザーが削除されたことを示すステータス
404 Not found
が表示されることを確認します。
次の処理
OCIアイデンティティ・ドメインREST APIを使用してリクエストおよび一般的なユース・ケースを構築するためのガイドラインを調べるには、次を参照してください: