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のバージョン

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

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

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

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

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

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

    初めてサインインする場合は、アクティブ化電子メールを開き、表示された「アカウントのアクティブ化」リンクを使用します。パスワードの入力と確認を求められます。詳細は、「初めてサインイン」を参照してください。

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

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

  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. 「アクション」メニュー(3つのドット)で、「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

    特定のプロファイルが指定されないかぎり、OCIでは、CLIコマンドの実行時に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. コマンド・プロンプトで、CLIコマンドを入力し、ユーザーのOCIDを指定してユーザーの詳細を取得します。

    例:

    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."を含めます。