CLIを使用したOCIアイデンティティ・ドメイン

このチュートリアルでは、Oracle Cloud Infrastructureコマンドライン・インタフェース(OCI CLI)を使用して、アイデンティティ・ドメインでユーザーを作成および管理します。

OCI CLIは、Oracle Cloud Infrastructure SDK for Python上に構築され、Mac、WindowsおよびLinux上で実行されます。Pythonコードは、機能を提供するためにOCI APIにリクエストします。

CLIでは、いくつかの認証方法がサポートされています。このチュートリアルでは、APIキーベースの認証方法を使用します。

このチュートリアルでは、次のタスクについて説明します。

  • API署名キー・ペアの生成
  • CLI構成ファイルの設定
  • CLIのインストール
  • アイデンティティ・ドメインURLの取得
  • ユーザーを作成します
  • ユーザーの詳細の取得
  • ユーザーを削除

このチュートリアルを完了するのに要する時間は約30分です。

ノート

このチュートリアルは、アイデンティティ・ドメインを使用したOCI Identity and Access Managementに固有です。

開始前

このチュートリアルを実行するには、次のものが必要です:

  • Oracle Cloudアカウント

  • アイデンティティ・ドメインにアクセスし、ユーザー管理者ロールを割り当てたユーザー・アカウント。アイデンティティ・ドメインでユーザーを作成および管理する権限があるかどうかわからない場合は、アイデンティティ・ドメイン管理者またはクラウド・アカウント管理者に問い合せてください。

  • ローカル・マシン上のユーザー・ホーム・ディレクトリ内の.ociディレクトリ: ~/.oci

    たとえば、Windowsでは、PowerShellを使用して、mkdir %HOMEDRIVE%%HOMEPATH%\.ociコマンドを使用してディレクトリを作成できます。

  • サポートされているオペレーティング・システムでサポートされているPythonのバージョン

    PythonをWindowsまたはLinuxにインストールしていない場合は、このチュートリアルの後半でCLIインストール・スクリプトを実行してCLIをインストールするときに、スクリプトにPythonをインストールさせることができます。

1.API署名キー・ペアの生成

APIリクエストの署名には、PEM形式のRSAキー・ペア(最小2048ビット)が必要です。

このタスクでは、コンソールを使用してキー・ペアを作成する方法について説明します。

次の手順では、ローカル・マシンのユーザー・ホーム・ディレクトリに.ociディレクトリがすでに作成されていることを前提としています。~/.ociディレクトリは、署名資格証明やOCID値などのOCI構成情報を格納するために必要です。

  1. 適切なテナンシ(クラウド・アカウント名)とアイデンティティ・ドメイン、およびユーザー名とパスワードを使用して、Oracle Cloudアカウントにサインインします。

    初めてサインインする場合は、アクティブ化Eメールを開き、提供された「アカウントのアクティブ化」リンクを使用します。パスワードを入力および確認するプロンプトが表示されます。詳細は、「初回サインイン」を参照してください。

    テナンシ、アイデンティティ・ドメインおよびユーザー名は、クラウド・アカウントでユーザー・プロファイルをアクティブ化したときに、プロファイルのパスワード・リセット電子メールで指定されます。

    サインインに必要な情報がない場合は、クラウド・アカウント管理者またはアイデンティティ・ドメイン管理者に連絡してください。サポートへの問合せを参照してください。

  2. コンソールのホームページで、ユーザー・プロファイル・アイコンを選択し、ユーザー名を選択します。
  3. ユーザー・プロファイル・ページで、「リソース」の下の「APIキー」を選択します。
  4. 「APIキーの追加」を選択します。
  5. 「APIキーの追加」パネルで、「APIキー・ペアの生成」を選択し、「秘密キーのダウンロード」を選択します。

    秘密キーを~/.ociディレクトリに保存します。オプションで、キーを.ociディレクトリ内のサブディレクトリに移動できます。

    秘密キーのファイル名とパスを書き留めます。次の例はWindowsの場合です。

    C:\Users\EXAMPLEUSER\.oci\examplecliuser_2025-01-02T21_18_14.873Z.pem

  6. (オプション)「公開キーのダウンロード」を選択します。

    公開鍵はダウンロードできますが、必要ありません。公開キーと秘密キーはどちらもPEMファイルです。公開キーは、キーのファイル名に文字列_publicを持ちます。

  7. 「APIキーの追加」パネルで、「追加」を選択します。

    コンソールに「構成ファイルのプレビュー」ダイアログが表示され、OCIを使用するためのユーザーの構成情報が表示されます。

  8. ここでは、「閉じる」を選択します。
  9. ユーザー・プロファイル・ページで、生成されたキー・ペアのフィンガープリントが「フィンガープリント」の下に追加されていることを確認します。次に例を示します:

    11:22:00:aa:33:4b:5c:66:7d:88:99:ee:00:90:80:70

2.CLI構成ファイルの設定

CLI構成には、Oracle Cloud Infrastructureの操作に必要な資格証明が含まれています。

このタスクでは、APIリクエストに署名するためのAPIキー・ペアが生成されていることを前提としています。

  1. まだサインインしていない場合は、適切なテナンシ(クラウド・アカウント名)とアイデンティティ・ドメイン、およびユーザー名とパスワードを使用してOracle Cloudアカウントにサインインします。
  2. コンソールのホームページで、ユーザー・プロファイル・アイコンを選択し、ユーザー名を選択します。
  3. ユーザー・プロファイル・ページで、「リソース」の下の「APIキー」を選択します。
  4. 「アクション」メニュー()で、「API署名キー・ペアの生成」タスクに追加されたフィンガープリントの横にある「構成ファイルの表示」を選択します。

    コンソールに「構成ファイルのプレビュー」ダイアログが表示されます。このダイアログには、DEFAULTプロファイルでユーザー構成が指定されています。

    [DEFAULT]
    user=ocid1.user.oc1..areallylongstringoflettersandnumbers123498765
    fingerprint=11:22:00:aa:33:4b:5c:66:7d:88:99:ee:00:90:80:70
    tenancy=ocid1.tenancy.oc1..areallylongstringoflettersandnumbers123498765
    region=us-ashburn-1
    key_file=<path to your private keyfile>#TODO
  5. 「構成ファイルのプレビュー」ダイアログで、「コピー」を選択して、構成ファイルのプレビュー・コンテンツをクリップボードにコピーします。次に、ダイアログを閉じます。
  6. テキスト・エディタを開き、プレビュー・コンテンツをクリップボードから新しいファイルに貼り付けます。
  7. ファイル名としてconfigを使用して、ファイルを~/.ociディレクトリに保存します。

    configファイルが~/.ociディレクトリにすでに存在する場合は、次のいずれかのタスクを実行します。

    • 既存の構成ファイルの名前を変更します。

    • 既存の構成ファイルを開きます。DEFAULTプロファイルがすでに既存のファイルで構成されている場合は、既存のDEFAULTプロファイルの名前を変更します。次に、プレビューDEFAULTコンテンツをクリップボードからファイルに貼り付けます。

  8. プレビューDEFAULTプロファイルのコンテンツを貼り付けた~/.oci/configファイルで、key_fileパラメータを、秘密キーを保存したマシンのファイル・システム上のファイル名およびパスに更新します。

    次の例はWindowsの場合です。

    key_file=C:\Users\EXAMPLEUSER\.oci\examplecliuser_2025-01-02T21_18_14.873Z.pem

  9. ~/.oci/configDEFAULTプロファイルが次のようになっていることを確認します。

    [DEFAULT]
    user=ocid1.user.oc1..areallylongstringoflettersandnumbers123498765
    fingerprint=11:22:00:aa:33:4b:5c:66:7d:88:99:ee:00:90:80:70
    tenancy=ocid1.tenancy.oc1..areallylongstringoflettersandnumbers123498765
    region=us-ashburn-1
    key_file=C:\Users\EXAMPLEUSER\.oci\examplecliuser_2025-01-02T21_18_14.873Z.pem

    特定のプロファイルが指定されていないかぎり、CLIコマンドの実行時に、OCIはDEFAULTプロファイルの署名資格証明を使用します。

3.CLIのインストール

OCI CLIは、Windows、LinuxまたはMacOSにインストールできます。

CLIをインストールする前に、サポートされているPythonバージョンがマシンにすでにインストールされていることを確認します。サポートされているPythonバージョン・セクションには、各OSでサポートされているバージョンがリストされます。

次を検討してください:

  • すでにマシンにPythonがある場合は、コマンド・プロンプトでpython --versionコマンドを使用してインストールされているバージョンを確認します。

  • Pythonがインストールされていない場合、または互換性のあるPythonバージョンがない場合、オプションは次のとおりです。

    • CLIをインストールする前に、互換性のあるPythonバージョンをマシンにインストールします。

    • WindowsまたはLinuxの場合: CLIインストール・スクリプトを実行すると、スクリプトにPythonを同時にインストールさせることができます。

    • MacOS: CLIインストール・スクリプトはPythonをインストールしません。CLIのインストールを続行する前にアップグレードする必要があります。

OCI CLIをマシンにインストールするには:

  1. 適切なOS手順に従って、CLIをインストールします。
  2. コマンド・プロンプトで次のコマンドを実行して、CLIインストールを確認します。
    oci --version

4. アイデンティティ・ドメインURLの取得

このタスクは、アイデンティティ・ドメインへのアクセス権を持つOracle Cloudユーザー・アカウントを持っていることを前提としています。

  1. まだサインインしていない場合は、適切なテナンシ(クラウド・アカウント名)とアイデンティティ・ドメイン、およびユーザー名とパスワードを使用してOracle Cloudアカウントにサインインします。

    テナンシ、アイデンティティ・ドメインおよびユーザー名は、クラウド・アカウントでユーザー・プロファイルをアクティブ化したときに、プロファイルのパスワード・リセット電子メールで指定されます。

    サインインに必要な情報がない場合は、クラウド・アカウント管理者またはアイデンティティ・ドメイン管理者に連絡してください。サポートへの問合せを参照してください。

  2. コンソールのホームページで、ユーザー・プロファイル・アイコンを選択し、アイデンティティ・ドメイン名を選択します。
  3. 「ドメイン情報」タブで、「ドメインURL」の最後にある「コピー」を選択します。
  4. テキスト・エディタを開き、コピーしたURLを貼り付けます。

    ドメインURLは次のようになります。

    https://idcs-01a234bc56d77e0f89898989bg7h06ij.identity.oraclecloud.com

    コピーしたURLを脇に置きます。CLIコマンドでendpointパラメータを構築するには、後でこれが必要です。

5. ユーザーの作成

このタスクでは、API署名キー・ペアを生成し、OCI構成ファイルを設定し、CLIをインストール済であることを前提としています。

CLIコマンドを作成するには、アイデンティティ・ドメインURLも必要です。

配列や複数の値を持つオブジェクトなどの複雑な入力は、JSON形式でCLIに渡されます。入力は、JSONファイルとして、またはコマンドラインでインライン・パラメータ文字列として指定できます。

  1. ユーザーを作成するための入力を準備するには、次のいずれかのタスクを実行します。
    • JSONファイル: テキスト・エディタを開きます。次のJSONをコピーし、拡張子が.jsonのファイルを任意のディレクトリに保存します。

      次に、ファイル名とパスを書き留めます(Windowsの場合など): C:\examples\clicreateuser.json

      {
        "schemas": [
          "urn:ietf:params:scim:schemas:core:2.0:User"
        ],
        "name": {
      	"givenName": "John",
      	"familyName": "Doe"
        },
        "userName": "jdoe@cliexample.com",
        "emails": [
      	{
      	  "value": "john.doe@examplecli.com",
      	  "type": "work",
      	  "primary": true
      	}
        ]
      }
    • インライン・パラメータ文字列: テキスト・エディタを開きます。次の文字列をコピーして、後で使用するために脇に置きます。

      Windowsでは、各パラメータ値ブロックを二重引用符("..")で囲みます。ブロック内では、キーおよび値文字列の各二重引用符(")は、バックスラッシュ(\)文字でエスケープする必要があります。

      --user-name jdoe@cliexample.com
      --name "{\"givenName\":\"John\",\"familyName\":\"Doe\"}"
      --emails "[{\"value\":\"john.doe@examplecli.com\",\"type\":\"work\",\"primary\":true}]"
      --schemas "[\"urn:ietf:params:scim:schemas:core:2.0:User\"]" 
      

      MacOS、LinuxまたはUnixでは、各パラメータ値ブロックを一重引用符('..')で囲みます。

      --user-name jdoe@cliexample.com
      --name '{"givenName":"John","familyName":"Doe"}'
      --emails '[{"value":"john.doe@examplecli.com","type":"work","primary":true}]'
      --schemas '["urn:ietf:params:scim:schemas:core:2.0:User"]' 
      
  2. コマンド・プロンプトを開き、CLIコマンドを入力してユーザーを作成します。

    コマンドラインでは、JSONファイルを指定することも、インライン・パラメータを入力として使用することもできます。

    • 入力として作成したJSONファイルを使用します。

      Windowsの例:

      oci identity-domains user create
       --from-json file://C:\examples\clicreateuser.json
       --endpoint https://idcs-01a234bc56d77e0f89898989bg7h06ij.identity.oraclecloud.com
      
    • 入力として準備したインライン・パラメータ文字列を使用します。

      Windowsの例:

      oci identity-domains user create 
      --user-name jdoe@cliexample.com 
      --name "{\"givenName\":\"John\",\"familyName\":\"Doe\"}" 
      --emails "[{\"value\":\"john.doe@examplecli.com\",\"type\":\"work\",\"primary\":true}]" 
      --schemas "[\"urn:ietf:params:scim:schemas:core:2.0:User\"]" 
      --endpoint https://idcs-01a234bc56d77e0f89898989bg7h06ij.identity.oraclecloud.com
      

      MacOS、LinuxまたはUnixの例:

      oci identity-domains user create 
      --user-name jdoe@cliexample.com
      --name '{"givenName":"John","familyName":"Doe"}'
      --emails '[{"value":"john.doe@examplecli.com","type":"work","primary":true}]'
      --schemas '["urn:ietf:params:scim:schemas:core:2.0:User"]' 
      --endpoint https://idcs-01a234bc56d77e0f89898989bg7h06ij.identity.oraclecloud.com
      

    endpointパラメータは、「アイデンティティ・ドメインURLの取得」タスクでコピーしたドメインURLです。

  3. コマンド・レスポンスで、ユーザーが作成されていることを確認します。

    例:

    {
      "data": {
        ...
        "name": {
          "family-name": "Doe",
          "given-name": "John",
          ...
        },
        ...
        "ocid": "ocid1.user.oc1..areallylongstringoflettersandnumbers987654321abcxyz",
        ...
        "user-name": "jdoe@cliexample.com",
        ...
      }
    }
  4. 新しく作成したユーザーのOCIDをコピーします。

    例:

    ocid1.user.oc1..areallylongstringoflettersandnumbers987654321abcxyz

6. ユーザーの取得

このタスクは、ユーザーを作成してユーザーのOCIDを取得したことを前提としています。

  1. コマンド・プロンプトで、ユーザーのOCIDを指定してユーザーの詳細を取得するCLIコマンドを入力します。

    例:

    oci identity-domains user get
     --user-id ocid1.user.oc1..areallylongstringoflettersandnumbers987654321abcxyz
     --endpoint https://idcs-01a234bc56d77e0f89898989bg7h06ij.identity.oraclecloud.com
    
  2. コマンド・レスポンスで、正しいユーザーの詳細が表示されていることを確認します。

7. ユーザーの削除

ユーザーのOCIDを指定してユーザーを削除します。

  1. コマンド・プロンプトで、CLIコマンドを入力してユーザーを削除します。

    例:

    oci identity-domains user delete
     --user-id ocid1.user.oc1..areallylongstringoflettersandnumbers987654321abcxyz
     --endpoint https://idcs-01a234bc56d77e0f89898989bg7h06ij.identity.oraclecloud.com
    

    次のレスポンスが返されます。

    Are you sure you want to delete this resource? [y/N]

  2. yを入力します

    次に、次のレスポンスが返されます。

    {
      "opc-next-page": "MQ==",
      "opc-total-items": "1"
    }
    
  3. (オプション)CLIコマンドを実行してユーザーを取得することで、ユーザーが削除されたことを確認できます(ユーザーの取得を参照)。

    ユーザーが削除されると、OCIはレスポンスにメッセージ"The resource does not exist."を含めます。