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. From the Actions menu () next to the fingerprint that was added in the task Generate an API signing key pair, select View configuration file.

    コンソールに「構成ファイルのプレビュー」ダイアログが表示されます。このダイアログには、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."を含めます。