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

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

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

oracle4engineer

February 21, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Copyright © 2023, 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 © 2022, 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 © 2023, 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でのOAuth機密アプリケーションの作成 Copyright © 2023,

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

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

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

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

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

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

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

    Oracle and/or its affiliates 13 8)画面をスクロールダウンし、トークン発行ポリシー部分にて「特定」をチェックONにします。 「アプリケーション・ロールの追加」をチェックONにし、「ロールの追加」を選択します。
  12. 1. REST APIを利用するための事前準備 OCI IAM Identity DomainでのOAuth機密アプリケーションの作成 Copyright © 2023,

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

    Oracle and/or its affiliates 15 10)アプリケーション・ロールに「Identity Domain Administrator」が追加されたことを確認し、「次」を選択します。 ※本機密アプリケーションより発行されたアクセス・トークンはIdentity Domain管理者権限を持つことになるため扱いにはご注意お願いします。
  14. 1. REST APIを利用するための事前準備 OCI IAM Identity DomainでのOAuth機密アプリケーションの作成 Copyright © 2023,

    Oracle and/or its affiliates 16 11)Web層ポリシー部分にて「スキップして後で実行」をチェックONにし、「終了」を選択します。
  15. 1. REST APIを利用するための事前準備 OCI IAM Identity DomainでのOAuth機密アプリケーションの作成 Copyright © 2023,

    Oracle and/or its affiliates 17 12)登録したアプリケーション詳細画面にて「アクティブ化」を選択します。 アクティブ化確認画面にて「アプリケーションのアクティブ化」を選択します。
  16. 1. REST APIを利用するための事前準備 OCI IAM Identity DomainでのOAuth機密アプリケーションの作成 Copyright © 2023,

    Oracle and/or its affiliates 18 13)登録したアプリケーションがアクティブ化されたことを確認します。 画面をスクロールダウンし、Oauth構成の一般情報にある「クライアントID」と「クライアント・シークレット」を控えておきます。
  17. 2. 各種REST API紹介 – アクセス・トークン取得 Copyright © 2023, Oracle and/or

    its affiliates 20 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":"~"」の~部分がアクセス・トークンになるので控えておきます。 ここから ここまで ・・・・・・・・・・・・・ ※参考マニュアル:https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/rest-api/op-oauth2-v1-token-post.html
  18. 2. 各種REST API紹介 – ユーザー全検索 Copyright © 2023, Oracle and/or

    its affiliates 21 1) 次のコマンドを実行して、登録済みの全ユーザーリストを取得します。 curl -k -X GET -H "Content-Type: application/json" -H "Authorization: Bearer {上記にて取得したアクセストークン}" "https://{アイデンティティドメインURL(上記1.で取得)}/admin/v1/Users" 2) レスポンスとしてユーザー情報が表示されていることを確認します。 ・・・・・・・・・・・・・ ※参考マニュアル:https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/rest-api/op-admin-v1-users-get.html
  19. 2. 各種REST API紹介 – ユーザー作成(初期パスワードなし+Welcomeメールあり) Copyright © 2023, Oracle and/or

    its affiliates 22 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の内容でユーザー作成を行います。 ※参考マニュアル:https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/rest-api/op-admin-v1-users-post.html
  20. 2. 各種REST API紹介 – ユーザー作成(初期パスワード指定+Welcomeメールなし) Copyright © 2023, Oracle and/or

    its affiliates 23 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の内容でユーザー作成を行います。 ※初期パスワードを指定しユーザー作成を行った場合、 対象ユーザーが初回ログインするとパスワード変更画面に 強制遷移しパスワード変更が求められます。 ※参考マニュアル:https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/rest-api/op-admin-v1-users-post.html
  21. 2. 各種REST API紹介 – パスワード更新(パスワード指定) Copyright © 2023, Oracle and/or

    its affiliates 24 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になります。 ※参考マニュアル:https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/rest-api/op-admin-v1-userpasswordchanger-id-put.html
  22. 2. 各種REST API紹介 – グループ全検索 Copyright © 2023, Oracle and/or

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

    its affiliates 26 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の内容でグループ作成を行います。 ※参考マニュアル:https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/rest-api/op-admin-v1-groups-post.html
  24. 2. 各種REST API紹介 – グループへのユーザーアサイン(1/2) Copyright © 2023, Oracle and/or

    its affiliates 27 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を指定
  25. 2. 各種REST API紹介 – グループへのユーザーアサイン(2/2) Copyright © 2023, Oracle and/or

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

    its affiliates 29 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)}"" ※参考マニュアル:https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/rest-api/op-admin-v1-auditevents-get.html
  27. 手動で不定期にREST APIを実行する場合にアクセス・トークンを取得する方法 Copyright © 2022, Oracle and/or its affiliates 31

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

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

    3) 画面左下のリソース部分より「自分のアクセス・トークン」を選択します。
  30. 手動で不定期にREST APIを実行する場合にアクセス・トークンを取得する方法 Copyright © 2022, Oracle and/or its affiliates 34

    4) 「アイデンティティ。ドメインAPIを呼び出します」をチェックONにし、 アプリケーション・ロールの選択部分に「Identity Domain Administrator」を選択します。 必要に応じて、トークン失効までの分数にトークン有効分数を変更し、「トークンのダウンロード」を選択します。 取得したアクセス・トークンを用いてREST APIを操作します。 ※この場合、上記2.の「アクセス・トークン取得」は実施不要です。