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ディレクトリがすでに作成されていることを前提としています。署名資格証明やOCID値などのOCI構成情報を格納するには、~/.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."を含めます。