Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OCI IAM Identity Domains REST API利用ガイド(基本編)/Ide...

OCI IAM Identity Domains REST API利用ガイド(基本編)/Identity Domain REST API(Basic)

Avatar for oracle4engineer

oracle4engineer PRO

February 21, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Copyright © 2025, Oracle and/or its affiliates 2 Safe harbor

    statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation.
  2. アジェンダ Copyright © 2025, Oracle and/or its affiliates 3 1.

    REST APIを利用するための事前準備 OCI IAM Identity Domainでの機密アプリケーションの作成 ※アプリケーションからREST APIを実行するケース 2. 各種REST API紹介 ・アクセストークンの取得 ・ユーザー全検索 ・ユーザー作成 ・ユーザー作成(初期パスワード指定+WelcomeメールOFF) ・ユーザーパスワード設定(更新) ・グループ全検索 ・グループ作成(メンバーなし) ・グループへのユーザーアサイン ・監査イベントの取得(開始・終了日付指定) 補足)手動で不定期にREST APIを実行する場合にアクセス・トークンを取得する方法 ※上記1.の代わりに実施
  3. 参考資料 Copyright © 2025, Oracle and/or its affiliates 4 •

    OCI IAM Identity Domains REST APIドキュメント https://docs.oracle.com/en/cloud/paas/iam-domains-rest-api/index.html • IDCS REST APIドキュメント 日本語:https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/rest-api/index.html 英語: https://docs.oracle.com/en/cloud/paas/identity-cloud/rest-api/index.html ※基本的にはIDCSとOCI IAM Identity DomainsでREST APIに違いはないため、 利用例等が記載されているIDCSドキュメントも参考資料として利用してください。
  4. 1. REST APIを利用するための事前準備 OCI IAM Identity Domainでの機密アプリケーションの作成 Copyright © 2025,

    Oracle and/or its affiliates 6 1)OCI管理者またはドメイン管理者でOCIコンソール(https://www.oracle.com/jp/cloud/sign-in.html)にアクセスします。 テナント名(クラウド・アカウント名)を入力し「Next」を選択します。 アイデンティティ・ドメインの選択にて対象ドメイン(今回は「Default」)を選択し、管理者ID/パスワードを入力しログインします。 ※ドメイン選択画面が表示されない環境はDefaultドメインのみ存在する環境になり、自動的に“Defaultドメイン”にログインすることになります。 ※環境によってはこの画面は表示されません。
  5. 1. REST APIを利用するための事前準備 OCI IAM Identity Domainでの機密アプリケーションの作成 Copyright © 2025,

    Oracle and/or its affiliates 7 2) メニューより「アイデンティティとセキュリティ」を選択し、「アイデンティティ」選択します。
  6. 1. REST APIを利用するための事前準備 OCI IAM Identity Domainでの機密アプリケーションの作成 Copyright © 2025,

    Oracle and/or its affiliates 8 3) 適用済みフィルタ部分でルートコンパートメントを選択し、ドメイン「Default」を選択します。
  7. 1. REST APIを利用するための事前準備 OCI IAM Identity Domainでの機密アプリケーションの作成 Copyright © 2025,

    Oracle and/or its affiliates 9 4)アイデンティティ・ドメイン画面にて、メニューより「詳細」を選択します。 詳細部分のドメインURLの「コピー」を選択し控えておきます。 ※このURLは後続の手順で利用します。
  8. 1. REST APIを利用するための事前準備 OCI IAM Identity Domainでの機密アプリケーションの作成 Copyright © 2025,

    Oracle and/or its affiliates 10 5) メニュー「統合アプリケーション」を選択します。 統合アプリケーション部分にて「アプリケーションの追加」を選択します。 表示されたアプリケーションの追加画面にて「機密アプリケーション」を選択し、「ワークフローの起動」を選択します。
  9. 1. REST APIを利用するための事前準備 OCI IAM Identity Domainでの機密アプリケーションの作成 Copyright © 2025,

    Oracle and/or its affiliates 11 6)名前、説明に適当な値を指定し、 「送信」を選択します。
  10. 1. REST APIを利用するための事前準備 OCI IAM Identity Domainでの機密アプリケーションの作成 Copyright © 2025,

    Oracle and/or its affiliates 12 7)作成した機密アプリケーション画面にて「OAuth構成」を選択し、「OAuth構成の編集」を選択します。
  11. 1. REST APIを利用するための事前準備 OCI IAM Identity Domainでの機密アプリケーションの作成 Copyright © 2025,

    Oracle and/or its affiliates 13 8)OAuth構成の編集画面にて、クライアント構成部分の「このアプリケーションをクライアントとして今すぐ構成します」をチェックONにします。
  12. 1. REST APIを利用するための事前準備 OCI IAM Identity Domainでの機密アプリケーションの作成 Copyright © 2025,

    Oracle and/or its affiliates 14 9)認可部分の権限付与タイプにて「クライアント資格証明」をチェックONにします。
  13. 1. REST APIを利用するための事前準備 OCI IAM Identity Domainでの機密アプリケーションの作成 Copyright © 2025,

    Oracle and/or its affiliates 15 10)同画面後段の「アプリケーション・ロールの追加」をチェックONにします。 アプリケーション・ロール部分にて「アプリケーション・ロールの追加」を選択します。
  14. 1. REST APIを利用するための事前準備 OCI IAM Identity Domainでの機密アプリケーションの作成 Copyright © 2025,

    Oracle and/or its affiliates 16 11)表示されたアプリケーション・ロールの追加画面にて「Identity Domain Administrator」にチェックし「追加」を選択します。
  15. 1. REST APIを利用するための事前準備 OCI IAM Identity Domainでの機密アプリケーションの作成 Copyright © 2025,

    Oracle and/or its affiliates 17 12)アプリケーション・ロールに追加されたことを確認し「送信」を選択します。
  16. 1. REST APIを利用するための事前準備 OCI IAM Identity Domainでの機密アプリケーションの作成 Copyright © 2025,

    Oracle and/or its affiliates 18 13)作成した機密アプリケーション画面に戻ったことを確認し、右上のアクションより「アクティブ化」を選択します。 確認画面でも「アクティブ化」を選択します。
  17. 1. REST APIを利用するための事前準備 OCI IAM Identity Domainでの機密アプリケーションの作成 Copyright © 2025,

    Oracle and/or its affiliates 19 14)登録した機密アプリケーションがアクティブ化されたことを確認します。 一般情報部分にある「クライアントID」の値をコピーして控えておきます。 また、クライアント・シークレット部分にあるシークレットの表示より「コピー」選択し、クライアント・シークレットも控えておきます。 ※この「クライアントID」と「クライアント・シークレット」は後続のREST APIを利用時に使用します。
  18. 2. 各種REST API紹介 – アクセス・トークン取得 Copyright © 2025, Oracle and/or

    its affiliates 21 1) 次のコマンドを実行して、対象アイデンティティドメインのREST APIでアクセス・トークン(1時間有効)を取得します。 curl -k -X POST -u "{機密アプリのクライアントID(上記1.で取得)}:{機密アプリのクライアントシークレット(上記1.で取得)}" -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" -d "grant_type=client_credentials&scope=urn:opc:idm:__myscopes__" "https://{アイデンティティドメインURL(上記1.で取得)}/oauth2/v1/token" 2) レスポンスより「"access_token":"~"」の~部分がアクセス・トークンになるので控えておきます。 ここから ここまで ・・・・・・・・・・・・・
  19. 2. 各種REST API紹介 – ユーザー全検索 Copyright © 2025, Oracle and/or

    its affiliates 22 1) 次のコマンドを実行して、登録済みの全ユーザーリストを取得します。 curl -k -X GET -H "Content-Type: application/json" -H "Authorization: Bearer {上記にて取得したアクセストークン}" "https://{アイデンティティドメインURL(上記1.で取得)}/admin/v1/Users" 2) レスポンスとしてユーザー情報が表示されていることを確認します。 ・・・・・・・・・・・・・
  20. 2. 各種REST API紹介 – ユーザー作成 Copyright © 2025, Oracle and/or

    its affiliates 23 1) ファイルcreate_user.jsonを下記内容で作成します。 本例では、属性として[姓、名、ユーザー名、メールアドレス(会社)、優先言語]を指定しています。 curl -k -X POST -H "Content-Type: application/json" -H "Authorization: Bearer {上記にて取得したアクセストークン}" "https://{アイデンティティドメインURL(上記1.で取得)}/admin/v1/Users" –d @create_user.json 3) レスポンスとして作成したユーザー情報が表示されていることを確認します。 { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "name": { "givenName": "Test001", "familyName": "Oracle" }, "userName": "oracle001", "emails": [ { "value": "[email protected]", "type": "work", "primary": true } ], "PreferredLanguage": "ja" } 2) 次のコマンドを実行し、上記create_user.jsonの内容でユーザー作成を行います。
  21. 2. 各種REST API紹介 – ユーザー作成(初期パスワード指定+WelcomeメールOFF) Copyright © 2025, Oracle and/or

    its affiliates 24 1) ファイルcreate_user.jsonを下記内容で作成します。 本例では、属性として[姓、名、ユーザー名、メールアドレス(会社)、優先言語、パスワード、Welcome通知OFF]を指定しています。 curl -k -X POST -H "Content-Type: application/json" -H "Authorization: Bearer {上記にて取得したアクセストークン}" "https://{アイデンティティドメインURL(上記1.で取得)}/admin/v1/Users" –d @create_user.json 3) レスポンスとして作成したユーザー情報が表示されていることを確認します。 { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "name": { "givenName": "Test002", "familyName": "Oracle" }, "userName": "oracle002", "emails": [ { "value": "[email protected]", "type": "work", "primary": true } ], "PreferredLanguage": "ja", "password": "Welcome123456!", "urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User":{ "bypassNotification": true } } 2) 次のコマンドを実行し、上記create_user.jsonの内容でユーザー作成を行います。 ※初期パスワードを指定しユーザー作成を行った場合、 対象ユーザーが初回ログインするとパスワード変更画面に 強制遷移しパスワード変更が求められます。
  22. 2. 各種REST API紹介 – パスワード更新(パスワード指定) Copyright © 2025, Oracle and/or

    its affiliates 25 2) ファイルpassword_user.jsonを下記内容で作成します。 curl -k -X PUT -H "Content-Type:application/json;charset=UTF-8" -H "Authorization: Bearer {上記にて取得したアクセストークン}" "https://{アイデンティティドメインURL(上記1.で取得)}/admin/v1/UserPasswordChanger/{対象ユーザーのID}" –d @password_user.json 4) レスポンスとして更新ユーザー情報が表示されていることを確認します。 { "password": "IdentityDomain123!", "schemas": [ "urn:ietf:params:scim:schemas:oracle:idcs:UserPasswordChanger" ] } 3) 次のコマンドを実行し、上記password_user.jsonの内容でユーザーパスワード変更を行います。 1) 上記の「ユーザー全検索」により、パスワード更新の対象ユーザーのIDを控えておきます。 検索結果の「・・・・"id":"~"・・・・・」の~の部分がIDになります。
  23. 2. 各種REST API紹介 – グループ全検索 Copyright © 2025, Oracle and/or

    its affiliates 26 1) 次のコマンドを実行して、登録済みの全グループリストを取得します。 curl -k -X GET -H "Content-Type: application/json" -H "Authorization: Bearer {上記にて取得したアクセストークン}" "https://{アイデンティティドメインURL(上記1.で取得)}/admin/v1/Groups" 2) レスポンスとしてユーザー情報が表示されていることを確認します。 ・・・・・・・・・・・・・
  24. 2. 各種REST API紹介 – グループ作成(メンバーなし) Copyright © 2025, Oracle and/or

    its affiliates 27 1) ファイルcreate_group.jsonを下記内容で作成します。 本例では、属性として[表示名、externalID、説明]を指定しています。 curl -k -X POST -H "Content-Type: application/json" -H "Authorization: Bearer {上記にて取得したアクセストークン}" "https://{アイデンティティドメインURL(上記1.で取得)}/admin/v1/Groups" –d @create_group.json 3) レスポンスとして作成したグループ情報が表示されていることを確認します。 { "displayName": "Example Group1", "externalId": "123456", "urn:ietf:params:scim:schemas:oracle:idcs:extension:group:Group": { "creationMechanism": "api", "description": "Example Group1 Description" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group", "urn:ietf:params:scim:schemas:oracle:idcs:extension:group:Group", "urn:ietf:params:scim:schemas:extension:custom:2.0:Group" ] } 2) 次のコマンドを実行し、上記create_group.jsonの内容でグループ作成を行います。
  25. 2. 各種REST API紹介 – グループへのユーザーアサイン(1/2) Copyright © 2025, Oracle and/or

    its affiliates 28 2) ファイルgroup_member.jsonを下記内容で作成します。 本例では、2ユーザーをメンバーとして追加します。 { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ], "Operations": [ { "op": "add", "path": "members", "value": [ { "value": "f9bf7127c90a45468a2389fdab26a6ce", "type": "User" }, { "value": "bb7a80a2ee204a6ea72a12efdbe5898c", "type": "User" } ] } ] } 1) 上記の「グループ全検索」等により、対象グループのIDを控えておきます。 また、「ユーザー全検索」等により、グループメンバーに追加するユーザーのIDも同様に控えておきます。 検索結果の「・・・・"id":"~"・・・・・」の~の部分がIDになります。 グループメンバーに追加するユーザーのIDを指定
  26. 2. 各種REST API紹介 – グループへのユーザーアサイン(2/2) Copyright © 2025, Oracle and/or

    its affiliates 29 curl -k -X PATCH -H "Content-Type:application/json;charset=UTF-8" -H "Authorization: Bearer {上記にて取得したアクセストークン}" "https://{アイデンティティドメインURL(上記1.で取得)}/admin/v1/Groups/{対象グループのID}" –d @group_member.json 3) 次のコマンドを実行し、上記group_member.jsonの内容でグループへのメンバー追加を行います。 4) レスポンスとして作成したメンバー追加したグループ情報が表示されていることを確認します。
  27. 2. 各種REST API紹介 – 監査イベントの取得(開始・終了日付指定) Copyright © 2025, Oracle and/or

    its affiliates 30 1) 次のコマンドを実行して、指定期間内の保存済み監査イベント情報を取得します。 curl -k -X GET -H "Content-Type: application/json" -H "Authorization: Bearer {上記にて取得したアクセストークン}" "https://{アイデンティティドメインURL(上記1.で取得)}/admin/v1 /AuditEvents?sortBy=timestamp&sortOrder=descending&filter=timestamp%20ge%20%22{開始日(例:2022-04- 04T00:00:00Z)}%22%20and%20timestamp%20le%20%22{終了日(例:2022-04-11T00:00:00Z)}%22" 2) レスポンスとして監査イベント情報が表示されていることを確認します。 ・・・・・・・・・・・・・ 補足)上記コマンドは、下記コマンドのURL部分のスペースを%20へ、”を%22へ変換したコマンド curl -k -X GET -H "Content-Type: application/json" -H "Authorization: Bearer {上記にて取得したアクセストークン}" "https://{アイデンティティドメインURL(上記1.で取得)}/admin/v1 /AuditEvents?sortBy=timestamp&sortOrder=descending&filter=timestamp ge "{開始日(例:2022-04-04T00:00:00Z)}" and timestamp le "{終了日(例:2022-04-11T00:00:00Z)}""
  28. 手動で不定期にREST APIを実行する場合にアクセス・トークンを取得する方法 Copyright © 2025, Oracle and/or its affiliates 32

    1)OCI管理者またはドメイン管理者でOCIコンソール(https://www.oracle.com/jp/cloud/sign-in.html)にアクセスします。 テナント名(クラウド・アカウント名)を入力し「Next」を選択します。 アイデンティティ・ドメインの選択にて対象ドメイン(今回は「Default」)を選択し、ID/パスワードを入力しOCIコンソールにログインします。 ※ドメイン選択画面が表示されない環境はDefaultドメインのみ存在する環境になり、自動的に“Defaultドメイン”にログインすることになります。 管理者が手動にて不定期にREST APIを実行する場合には、上記1.の手順(アクセス・トークン発行用機密アプリケーション作成)の代わりに OCIコンソールから都度アクセス・トークンを取得する方法を利用可能です。 ※環境によってはこの画面は表示されません。
  29. 手動で不定期にREST APIを実行する場合にアクセス・トークンを取得する方法 Copyright © 2025, Oracle and/or its affiliates 33

    2) OCIコンソールにログインした後、画面右上のアバターマークより 「<ログインID>」のリンクを選択します。
  30. 手動で不定期にREST APIを実行する場合にアクセス・トークンを取得する方法 Copyright © 2025, Oracle and/or its affiliates 34

    3) 自分のプロファイル画面にて、メニュー「トークンおよびキー」を選択します。 表示された画面後段の自分のアクセス・トークン部分のアイデンティティ・ドメインAPIを呼び出しますの「トークンのダウンロード」を選択します。
  31. 手動で不定期にREST APIを実行する場合にアクセス・トークンを取得する方法 Copyright © 2025, Oracle and/or its affiliates 35

    4) 表示された個人アクセス・トークンの生成画面にて、アプリケーション・ロールの選択部分に「Identity Domain Administrator」を選択し、 トークン失効までの分数に任意の値(例:10)を指定し、「トークンのダウンロード」を選択し、アクセス・トークンを保存します。 取得したアクセス・トークンを用いてREST APIを操作します。 ※この場合、上記2章.の「アクセス・トークン取得」は実施不要です。