接続の確立
CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でDocuSign Cmdlets を使用する例を示します。
インストールおよび接続
PSGet がある場合は、PowerShell Gallery から次のコマンドを使ってcmdlet をインストールできます。CData サイトからセットアップを取得することもできます。
Install-Module DocuSignCmdlets
プロファイルに以下を追加すると、次のセッションでcmdlet がロードされます。
Import-Module DocuSignCmdlets;
Connect-DocuSign cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。
$conn = Connect-DocuSign -OAuthClientId "MyClientId" -OAuthClientSecret "MyClientSecret" -CallbackURL "http://localhost:33333"
DocuSign への接続
UseSandboxUseSandbox は現在のユーザーアカウントがサンドボックスかそうでないかを示します。デフォルトはfalse です。サンドボックスアカウントを使用する場合はtrue に設定します。以下のOAuth フローはすべて、UseSandbox が事前に設定済みであることを前提として書かれています。
AccountId
AccountId はオプションの接続プロパティです。認証が成功すると自動的に設定されます。
または、複数のAccount Id にアクセスできる場合は、接続文字列で手動で設定できます。アカウントId を取得するには、UserInfo ビューをクエリします。
DocuSign への認証
DocuSign はOAuth 認証標準を利用しています。OAuth を使って認証するには、カスタムアプリを作成してOAuthClientId、OAuthClientSecret、およびCallbackURL 接続プロパティを取得する必要があります。本製品 は、OAuth JWT 認証もサポートしています。カスタムアプリケーションの作成について詳しくは、カスタムOAuth アプリの作成 を参照してください。
OAuth
AuthScheme は、すべてのユーザーアカウントフローでOAuth に設定する必要があります。
デスクトップアプリケーション
下記の手順に従って、カスタムOAuth アプリの資格情報を使用して認証します。カスタムOAuth アプリの作成 を参照してください。OAuth アクセストークンの取得およびリフレッシュ
次を設定して、接続してください。
- OAuthClientId:アプリの登録時に割り当てられたIntegrator Key に設定。
- OAuthClientSecret:アプリの登録時に割り当てられたSecret Key に設定。
- CallbackURL:アプリの登録時に定義されたリダイレクトURI に設定。
ヘッドレスマシン
ヘッドレスマシンのユーザーアカウントでOAuth を使用するようにドライバーを設定するには、インターネットブラウザに対応した別の端末で認証する必要があります。
- 以下の2つのオプションから選択します。
- オプション1:後述の「Verifier code を取得および交換」に従い、OAuthVerifier 値を取得します。
- オプション2:別のマシンに本製品 をインストールし、後述の「OAuth 設定を転送」の説明に従い、通常のブラウザベースのフローで認証後にOAuth 認証値を転送します。
- その後、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするように本製品 を設定します。
オプション1:Verifier code を取得および交換
Verifier code を取得するには、OAuth Authorization URL で認証する必要があります。
インターネットブラウザに対応したマシンから認証してOAuthVerifier 接続プロパティを取得する方法は次のとおりです。
- 以下のオプションから選択します。
- 埋め込みOAuth アプリケーションを使用する場合は、DocuSign OAuth endpoint をクリックし、ブラウザでエンドポイントを開きます。
- カスタムOAuth アプリケーションを使用するには、以下のプロパティを設定し、認証URL を作成します。
- InitiateOAuth:OFF に設定。
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId に設定。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
- ログインして、本製品 にアクセス許可を与えます。すると、verifier code を含むコールバックURL にリダイレクトされます。
- verifier code の値を保存します。後ほどこれをOAuthVerifier 接続プロパティに設定します。
ヘッドレスマシンでは、次の接続プロパティを設定してOAuth 認証値を取得します。
- InitiateOAuth:REFRESH に設定。
- OAuthVerifier:verifier code に設定。
- OAuthClientId:カスタムOAuth アプリケーション設定のクライアントId に設定。
- OAuthClientSecret:カスタムOAuth アプリケーション設定のクライアントシークレットに設定。
- OAuthSettingsLocation:ドライバーがOAuth トークン値を保存するファイルの場所に設定。これは接続間で維持されます。
OAuth 設定ファイルが生成されたら、以下のように接続プロパティをリセットする必要があります。
- InitiateOAuth:REFRESH に設定。
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId に設定。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
- OAuthSettingsLocation:暗号化されたOAuth 認証値を含む場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所が本製品 に読み書きのアクセス許可を付与することを確認してください。
オプション2:OAuth 設定を転送
ヘッドレスマシンでの接続に先立ち、インターネットブラウザに対応したデバイスでドライバとの接続を作成し、インストールする必要があります。上述の「デスクトップアプリケーション」の説明に従って、接続プロパティを設定します。
「デスクトップアプリケーション」の手順が完了すると、生成された認証値は、OAuthSettingsLocation で指定された場所に暗号化されて書き込まれます。デフォルトのファイル名はOAuthSettings.txt です。
接続が正常にテストされたら、OAuth 設定ファイルをヘッドレスマシンにコピーします。
ヘッドレスマシンで、次の接続プロパティを設定し、データに接続します。
- InitiateOAuth:REFRESH に設定。
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId に設定。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
- OAuthSettingsLocation:OAuth 設定ファイルの場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所が本製品 に読み書きのアクセス許可を与えることを確認してください。
OAuth JWT
AuthScheme をOAuthJWT に設定します。
Obtaining a User ID
Retrieve your User ID by navigating, in the DocuSign UI, to Settings > Apps and Keys > My Account Information > User ID.
Obtaining an Integration Key
Follow the procedure below to obtain an integration key:
- Log in to a DocuSign developer account.
- Navigate to My Apps and Keys.
- You will see a dialog box to enter your application's name. Give your application a short, but descriptive name.
- Click ADD to add your application. Your application is automatically assigned an integration key (GUID) value that cannot be changed. Save this value.
Application Consent
In order to connect, you must give consent to the application. DocuSign offers three different software patterns for granting consent to an integration key. Grant consent to your application using one of the following methods.
Method 1: Administrative Consent
This is the best option for customer-oriented developers, because it requires nothing from your users.
Note: This pattern can't be used by ISVs.
This method of obtaining consent has the following prerequisites:
- Your account must include the Access Management with SSO feature, though it is not required that you install SSO.
- If your developer demo account (demo.docusign.net) does not include this feature, send an email to [email protected] and request that the feature be added to your account. Remember to include your developer demo account ID.
- You must claim your email DNS domain via the DocuSign administration tool. A domain can be claimed both by the DocuSign developer demo system (for testing and development), and by your production DocuSign account.
- Your users’ email domains must match the claimed email domain.
- Your integration key’s management account must be one of the accounts in the DocuSign organization.
If you meet these requirements, grant consent as follows:
- In DocuSign Admin, open your organization home page.
- In the navigation pane on the left side of the page, select Connected Apps.
- Click Authorize Application and choose an application from the drop-down menu.
- In the Add New Application dialog, specify the permissions you want to grant to your application.
- Click ADD.
Method 2: Individual Consent
This option has no prerequisites and can be used by customer-oriented developers and the customers of ISVs. Each user must perform the following steps.
To obtain individual consent:
- Run the GetConsentURL stored procedure. The procedure returns a URL.
- Open the returned URL in your browser. A permissions page will display.
- Click Accept to grant consent.
Method 3: Administrative Consent for Third-party (ISV) Applications
You can grant administrative consent to third party (ISV) applications.
This method of obtaining consent has the following prerequisites:
- All prerequisites for standard Administrative Consent apply (see section above).
- ISVs should also support individual consent as a backup, since SSO not all customers will be able to use administative consent.
- If you are an ISV using the JWT grant flow, then the management account tied to your application’s integration key should be a DocuSign account that your company controls.
If you meet these requirements, obtain consent as follows. Each user must perform the following steps.
- Run the GetConsentURL stored procedure. The procedure returns a URL.
- Open the returned URL in your browser. A permissions page will display.
- Click Accept to grant consent.
Configuring OAuth JWT Credentials
Using the information you gathered in the above sections, set the following connection properties in the 本製品:- OAuthJWTCert: The location of your private key. This should end with ".key".
- OAuthJWTCertType: PEMKEY_FILE
- OAuthJWTSubject: Your user ID.
- OAuthJWTIssuer: Your integration key.
データの取得
Select-DocuSign cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。
$results = Select-DocuSign -Connection $conn -Table "Account" -Columns @("Id, Name") -Where "Industry='Floppy Disks'"Invoke-DocuSign cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。
cmdlet 出力のパイプ処理
cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。
Select-DocuSign -Connection $conn -Table Account -Where "Industry = 'Floppy Disks'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myAccountData.csv -NoTypeInformation
Select-DocuSign からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。
ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。
PS C:\> $conn = Connect-DocuSign -OAuthClientId "MyClientId" -OAuthClientSecret "MyClientSecret" -CallbackURL "http://localhost:33333" PS C:\> $row = Select-DocuSign -Connection $conn -Table "Account" -Columns (Id, Name) -Where "Industry = 'Floppy Disks'" | select -first 1 PS C:\> $row | ConvertTo-Json { "Connection": { }, "Table": "Account", "Columns": [ ], "Id": "MyId", "Name": "MyName" }
データの削除
以下は、抽出条件に合うあらゆるレコードを削除します。
Select-DocuSign -Connection $conn -Table Account -Where "Industry = 'Floppy Disks'" | Remove-DocuSign
データの変更
cmdlet はデータクレンジング同様、データの変換を容易にします。次の例は、レコードがすでに存在するかどうか、挿入する前に更新が必要かどうかをチェックしてから、CSV ファイルのデータをDocuSign にロードします。
Import-Csv -Path C:\MyAccountUpdates.csv | %{ $record = Select-DocuSign -Connection $conn -Table Account -Where ("Id = `'"+$_.Id+"`'") if($record){ Update-DocuSign -Connection $conn -Table Account -Columns @("Id","Name") -Values @($_.Id, $_.Name) -Where "Id = `'$_.Id`'" }else{ Add-DocuSign -Connection $conn -Table Account -Columns @("Id","Name") -Values @($_.Id, $_.Name) } }