Cmdlets for Okta

Build 25.0.9434

接続の確立

CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でOkta Cmdlets を使用する例を示します。

Okta への接続

Okta に接続するには以下のパラメータを設定します。

Okta への認証

Okta はOAuth およびOAuthJWT 認証をサポートしています。

Okta で利用可能な接続文字列プロパティの全リストは、Connection を参照してください。

OAuth

OAuth で認証するには、AuthSchemeOAuth に設定する必要があります。また、カスタムOAuth アプリケーションの作成 で説明するように、カスタムOAuth アプリケーションを作成する必要があります。

デスクトップアプリケーション

デスクトップアプリケーション経由で接続するには、OAuth アクセストークンを設定し、リフレッシュする必要があります。

OAuth アクセストークンの取得およびリフレッシュ

以下を設定して、接続してください。

  • OAuthClientId:カスタムOAuth アプリケーションを作成した際に表示されたキー。
  • OAuthClientSecret:カスタムOAuth アプリケーションを作成した際に表示されたシークレット。
  • CallbackURL:アプリケーションの登録時に定義されたCallback URL。デフォルトではhttp://localhost:33333 に設定されています。

接続すると、本製品 はデフォルトブラウザでOkta のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。

アクセストークンの期限が切れたときは、本製品 は自動でアクセストークンをリフレッシュします。

OAuth アクセストークンの自動リフレッシュ

本製品 がOAuth アクセストークンを自動的にリフレッシュするようにするには:

  1. はじめてデータに接続する前に、次の接続パラメータを設定します。

  2. その後のデータ接続では、以下を設定します。

OAuth アクセストークンの手動リフレッシュ:

OAuth アクセストークンを手動でリフレッシュするために必要な唯一の値は、OAuth リフレッシュトークンです。

  1. ExpiresIn 期間(GetOAuthAccessToken が返す)が経過した後にOAuthAccessToken を手動でリフレッシュするには、RefreshOAuthAccessToken ストアドプロシージャを呼び出します。
  2. 次の接続プロパティを設定します。

    • OAuthClientId:カスタムOAuth アプリケーション設定のクライアントId。
    • OAuthClientSecret:カスタムOAuth アプリケーション設定のクライアントシークレット。

  3. RefreshOAuthAccessToken を呼び出し、OAuthRefreshToken にGetOAuthAccessToken によって返されたOAuth リフレッシュトークンを設定します。
  4. 新しいトークンが取得できたら、OAuthAccessToken プロパティにRefreshOAuthAccessToken によって返された値を設定します。これで新規接続が開かれます。

OAuth リフレッシュトークンを保存し、OAuth アクセストークンの有効期限が切れた後に手動でリフレッシュできるようにします。

ヘッドレスマシン

ヘッドレスマシンのユーザーアカウントでOAuth を使用するようにドライバーを設定するには、インターネットブラウザに対応した別の端末で認証する必要があります。

Note: AuthSchemecodeclient のどちらに設定されているかによって、認証は認可コードまたはクライアントクレデンシャルグラントタイプのいずれかで実行されます。

以下のいずれかの方法で行います。

  • オプション1:OAuthVerifier 値を取得します。
  • オプション2:インターネットブラウザに対応したマシンに本製品 をインストールし、通常のブラウザベースのフローで認証した後でOAuth 認証値を転送します。

オプション1またはオプション2を実行後、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするように本製品 を設定します。

オプション1:Verifier code を取得および交換

Verifier コードを取得するには、次のようにOAuth Authorization URL で認証する必要があります。

  1. インターネットブラウザに対応したマシンから認証してOAuthVerifier 接続プロパティを取得します。

    次のプロパティを設定します。

    • InitiateOAuthOFF
    • OAuthClientId:カスタムOAuth アプリケーションを作成した際に表示されたキー。
    • OAuthClientSecret:カスタムOAuth アプリケーションを作成した際に表示されたシークレット。

  2. GetOAuthAuthorizationURL ストアドプロシージャを呼び出します。 ストアドプロシージャは、カスタムOAuth アプリケーションが登録されたときに構築されたCallbackURL を返します。(カスタムOAuth アプリケーションの作成 を参照してください。)

    このURL をコピーして、新しいブラウザのタブに貼り付けます。

  3. ログインして、本製品 にアクセス許可を与えます。OAuth アプリケーションは、code というパラメータを付加したリダイレクトURI にリダイレクトします。このパラメータの値を控えておきます。OAuthVerifier 接続プロパティを設定するために、後で必要になります。

  4. OAuth verifier code をOAuth リフレッシュトークンおよびアクセストークンと交換します。

    ヘッドレスマシンでは、OAuth 認証値を取得するには次のプロパティを設定します。

    • InitiateOAuthREFRESH
    • OAuthVerifier:verifier code(コールバックURL のcode パラメータの値)。
    • OAuthClientId:カスタムOAuth アプリケーションを作成した際に表示されたキー。
    • OAuthClientSecret:カスタムOAuth アプリケーションを作成した際に表示されたシークレット。
    • OAuthSettingsLocation:暗号化されたOAuth 認証値を指定された場所に永続化。

  5. 接続をテストしてOAuth 設定ファイルを生成します。

  6. これらのプロパティを再設定すると、接続の準備が整います。

    • InitiateOAuthREFRESH
    • OAuthClientId:カスタムOAuth アプリケーションを作成した際に表示されたキー。
    • OAuthClientSecret:カスタムOAuth アプリケーションを作成した際に表示されたシークレット。
    • OAuthSettingsLocation:暗号化されたOAuth 認証値が保存される場所。アクセストークンの自動リフレッシュを有効にするには、このファイルが本製品 に読み書きのアクセス許可を与えることを確認してください。

オプション2:OAuth 設定を転送

ヘッドレスマシンでの接続に先立ち、インターネットブラウザに対応したデバイスでドライバーとの接続をインストールし、作成する必要があります。上述の「デスクトップアプリケーション」の説明に従って、接続プロパティを設定します。

「デスクトップアプリケーション」の手順が完了すると、生成された認証値は、OAuthSettingsLocation で指定されたパスに暗号化されて書き込まれます。デフォルトのファイル名はOAuthSettings.txt です。

接続をテストしてOAuth 設定ファイルを生成し、OAuth 設定ファイルをヘッドレスマシンにコピーします。

ヘッドレスマシンでデータに接続するには、次の接続プロパティを設定します。

  • InitiateOAuthREFRESH
  • OAuthClientId:カスタムOAuth アプリケーションを作成した際に表示されたシークレット。
  • OAuthSettingsLocation:ブラウザでマシンからコピーしたOAuth 設定ファイルの場所。アクセストークンの自動リフレッシュを有効にするために、このファイルが本製品 に読み書きのアクセス許可を与えることを確認してください。

OAuth JWT

OAuth JWT で認証するには、AuthSchemeOAuthJWT に設定する必要があります。また、カスタムOAuth アプリケーションの作成 で説明するように、カスタムOAuth アプリケーションを作成する必要があります。

次の接続プロパティを設定して、接続してください。

接続オブジェクトの作成

Connect-Okta cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。

$conn = Connect-Okta -Domain 'dev-44876464.okta.com' -OAuthClientId 'myId' -OAuthClientSecret 'mySecret' -InitiateOAuth 'GETANDREFRESH'

データの取得

Select-Okta cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。

$results = Select-Okta -Connection $conn -Table "Users" -Columns @("Id, ProfileFirstName") -Where "Id='00uip08mzta1JvWRu5d7'"
Invoke-Okta cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。

cmdlet 出力のパイプ処理

cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。

Select-Okta -Connection $conn -Table Users -Where "Id = '00uip08mzta1JvWRu5d7'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myUsersData.csv -NoTypeInformation

Select-Okta からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。

ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。

 
PS C:\> $conn  = Connect-Okta -Domain 'dev-44876464.okta.com' -OAuthClientId 'myId' -OAuthClientSecret 'mySecret' -InitiateOAuth 'GETANDREFRESH'
PS C:\> $row = Select-Okta -Connection $conn -Table "Users" -Columns (Id, ProfileFirstName) -Where "Id = '00uip08mzta1JvWRu5d7'" | select -first 1
PS C:\> $row | ConvertTo-Json
{
  "Connection":  {

  },
  "Table":  "Users",
  "Columns":  [

  ],
  "Id":  "MyId",
  "ProfileFirstName":  "MyProfileFirstName"
} 

データの削除

以下は、抽出条件に合うあらゆるレコードを削除します。

Select-Okta -Connection $conn -Table Users -Where "Id = '00uip08mzta1JvWRu5d7'" | Remove-Okta

データの変更

cmdlet はデータクレンジング同様、データの変換を容易にします。次の例は、レコードがすでに存在するかどうか、挿入する前に更新が必要かどうかをチェックしてから、CSV ファイルのデータをOkta にロードします。

Import-Csv -Path C:\MyUsersUpdates.csv | %{
  $record = Select-Okta -Connection $conn -Table Users -Where ("Id = `'"+$_.Id+"`'")
  if($record){
    Update-Okta -Connection $conn -Table Users -Columns @("Id","ProfileFirstName") -Values @($_.Id, $_.ProfileFirstName) -Where "Id  = `'$_.Id`'"
  }else{
    Add-Okta -Connection $conn -Table Users -Columns @("Id","ProfileFirstName") -Values @($_.Id, $_.ProfileFirstName)
  }
}

Copyright (c) 2025 CData Software, Inc. - All rights reserved.
Build 25.0.9434