接続の確立
JDBC データソースの作成
Java アプリケーションから接続するJDBC データソースを作成できます。CData JDBC Driver for Workday に基づくJDBC データソースの作成は、3つの基本ステップで構成されます。
- ドライバーのJAR ファイルをクラスパスに追加します。JAR ファイルはインストールディレクトリの[lib]サブフォルダ内にあります。.lic ファイルはJAR ファイルと同じフォルダ内に配置される必要があることに注意してください。
- ドライバークラスを入力します。次に例を示します。
cdata.jdbc.workday.WorkdayDriver
- JDBC URL を入力します。次に例を示します。
jdbc:workday:ConnectionType=SOAP;User=myuser;Password=mypassword;Tenant=mycompany;BaseURL=https://wd3-impl-services1.workday.com or jdbc:cdata:workday:ConnectionType=SOAP;User=myuser;Password=mypassword;Tenant=mycompany;BaseURL=https://wd3-impl-services1.workday.com
上記の2つ目の形式は、同じURL 形式を使用しているドライバー間でアプリケーションに競合がある場合は、CData ドライバーを使用していることを確認するために常に使用できます。URL は "jdbc:workday:" または"jdbc:cdata:workday:" のいずれかから始まり、任意の接続プロパティの名前と値のペアをセミコロン区切りで入力します。
Workday への接続
このセクションでは、4つのWorkday API の接続パラメータを設定する方法、およびTenant とBaseURL を取得する方法について説明します。 各サービス(WQL、Reports、REST、SOAP)には独自のConnectionType があり、接続ごとに使用できる接続タイプは1つだけです。必要なAPI のパラメータを設定し、カスタムOAuth および / またはAzure AD API クライアントを作成したら、接続の準備は完了です。
接続の前提条件
API | 前提条件 | 接続パラメータ |
WQL | WQL サービスを有効化 (下記参照) | ConnectionType: WQL |
Reports as a Service | カタログレポートの設定 (データアクセスのファインチューニング を参照) | ConnectionType: Reports |
REST | 自動で有効化 | ConnectionType: REST |
SOAP | 自動で有効化 | 以下のWorkday SOAP API を参照 |
BaseURL およびTenant の取得
BaseURL およびTenant プロパティを取得するため、Workday にログインしてView API Clients を検索します。 この画面では、Workday はBaseURL とTenant の両方を含むURL であるWorkday REST API Endpoint を表示します。
REST API Endpoint のフォーマットは、
https://domain.com/subdirectories/mycompany です。ここで、
- https://domain.com/subdirectories/ はBaseURL です。
- mycompany(URL の最後のスラッシュの後の部分)はTenant です。
例えば、REST API エンドポイントがhttps://wd3-impl-services1.workday.com/ccx/api/v1/mycompany の場合、 BaseURL はhttps://wd3-impl-services1.workday.com であり、Tenant はmycompany です。
WQL サービスを有効化
Workday WQL API を介して接続するには、はじめにWQL Service を有効にする必要があります。- Workday を開きます。
- 検索バーで、View Domain を検索します。
- プロンプトにWorkday Query Language と入力します。
- Allowed Security Group Types のいずれかに、接続するユーザーが含まれていることを確認します。
Workday への認証
ほとんどのWorkday 接続で、認証のためにOAuth ベースのカスタムAPI クライアントアプリケーションを作成する必要があります。これには、ユーザーがAzure AD 資格情報を介して接続するエンタープライズインストールも含まれます。SOAP 経由で接続したい場合は、カスタムOAuth アプリケーションを必要としないBasic 認証を使用できます。このセクションでは、両方の認証方法について説明します。
OAuth
このセクションでは、SSO のない環境でOAuth 標準を使用して認証する方法について説明します。この環境で認証を行う前に、カスタムAPI クライアントアプリケーションの作成 で説明するように、はじめにカスタムOAuth アプリケーションを作成する必要があります。Note: これらはWorkday API への認証を容易にするため、このドキュメントではカスタムOAuth アプリケーションをカスタムAPI Clients として頻繁に参照します。
デスクトップアプリケーション
カスタムOAuth アプリケーションの資格情報を使用して認証するには、OAuth アクセストークンを取得し、更新する必要があります。これらを設定すると、接続の準備が整います。OAuth アクセストークンの取得およびリフレッシュ:
- InitiateOAuth:GETANDREFRESH。OAuthAccessToken を自動的に取得およびリフレッシュするために使用します。
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。
- CallbackURL:アプリケーションの登録時に定義されたリダイレクトURI。
接続すると、本製品 はデフォルトブラウザでWorkday のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。
アプリケーションにアクセス許可を与えると、本製品 はOAuth プロセスを完了します。
- 本製品 はWorkday からアクセストークンを取得し、それを使ってデータをリクエストします。
- OAuth 値はOAuthSettingsLocation で指定されたパスに保存されます。これらの値は接続間で永続化されます。
アクセストークンの期限が切れたときは、本製品 は自動でアクセストークンをリフレッシュします。
Web アプリケーション
Web 経由で認証する場合は、カスタムAPI クライアントアプリケーションの作成 で説明するようにWorkday にカスタムOAuth アプリケーションを作成および登録する必要があります。それから本製品 を使用してOAuth トークンの値を取得および管理します。このセクションでは、OAuth アクセストークンの取得方法、ドライバーにOAuth アクセストークンを自動的に更新させる方法、OAuth アクセストークンを手動で更新する方法について説明します。
OAuth アクセストークンの取得:
- 次の接続プロパティを設定し、OAuthAccessToken を取得します。
- OAuthClientId:アプリケーション設定のクライアントId。
- OAuthClientSecret:アプリケーション設定のクライアントシークレット。
- ストアドプロシージャを呼び出し、OAuth 交換を完了します。
- GetOAuthAuthorizationURL ストアドプロシージャを呼び出します。AuthMode インプットをWEB に、CallbackURL をアプリケーション設定で指定したリダイレクトURI に設定します。 ストアドプロシージャは、OAuth エンドポイントへのURL を返します。
- ステップ1でストアドプロシージャが返したURL に移動します。ログインしてWeb アプリケーションを認可します。コールバックURL にリダイレクトされます。
- GetOAuthAccessToken ストアドプロシージャを呼び出します。AuthMode インプットをWEB に設定します。Verifier インプットを、リダイレクトURI のクエリ文字列のcode パラメータに設定します。
アクセストークンとリフレッシュトークンを取得したのち、データに接続してOAuth アクセストークンを自動的にリフレッシュできます。
OAuth アクセストークンの自動リフレッシュ:
本製品 がOAuth アクセストークンを自動的にリフレッシュするようにするには、次のように設定します。
- はじめてデータに接続する前に、次の接続プロパティを設定します。
- InitiateOAuth:REFRESH。
- OAuthClientId:アプリケーション設定のクライアントId。
- OAuthClientSecret:アプリケーション設定のクライアントシークレット。
- OAuthAccessToken:GetOAuthAccessToken によって返されたアクセストークン。
- OAuthSettingsLocation:本製品 がOAuth 値を保存する場所のパス。これは接続間で維持されます。
- その後のデータ接続では、以下を設定します。
- InitiateOAuth
- OAuthSettingsLocation
OAuth アクセストークンの手動リフレッシュ:
OAuth アクセストークンを手動でリフレッシュするために必要な唯一の値は、OAuth リフレッシュトークンです。
- ExpiresIn 期間(GetOAuthAccessToken が返す)が経過した後にOAuthAccessToken を手動でリフレッシュするには、RefreshOAuthAccessToken ストアドプロシージャを呼び出します。
- 次の接続プロパティを設定します。
- OAuthClientId:アプリケーション設定のクライアントId。
- OAuthClientSecret:アプリケーション設定のクライアントシークレット。
- RefreshOAuthAccessToken を呼び出し、OAuthRefreshToken にGetOAuthAccessToken によって返されたOAuth リフレッシュトークンを設定します。
- 新しいトークンが取得できたら、OAuthAccessToken プロパティにRefreshOAuthAccessToken によって返された値を設定します。これで新規接続が開かれます。
OAuth リフレッシュトークンを保存し、OAuth アクセストークンの有効期限が切れた後に手動でリフレッシュできるようにします。
ヘッドレスマシン
ヘッドレスマシンに置かれているリソースにログインする必要がある場合は、インターネットブラウザに対応した別の端末で認証する必要があります。 以下のいずれかの方法で行います。
- オプション1:OAuthVerifier 値を取得します。
- オプション2:インターネットブラウザに対応したマシンに本製品 をインストールし、通常のブラウザベースのフローで認証した後でOAuth 認証値を転送します。
オプション1またはオプション2を実行後、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするようにドライバーを設定します。
オプション1:Verifier code を取得および交換
Verifier code を取得するには、OAuth Authorization URL で認証する必要があります。以下の手順に従います。
-
インターネットブラウザに対応したマシンから認証してOAuthVerifier 接続プロパティを取得します。
次のプロパティを設定します。
- InitiateOAuth:OFF。
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。
-
GetOAuthAuthorizationURL ストアドプロシージャを呼び出します。ストアドプロシージャは、カスタムOAuth アプリケーションが登録されたときに構築されたCallbackURL を返します。 (カスタムAPI クライアントアプリケーションの作成 を参照してください。)
このURL をコピーして、新しいブラウザのタブに貼り付けます。
-
ログインして、本製品 にアクセス許可を与えます。OAuth アプリケーションは、code というパラメータを付加したリダイレクトURI にリダイレクトします。このパラメータの値を控えておきます。OAuthVerifier 接続プロパティを設定するために、後で必要になります。
-
OAuth verifier code をOAuth リフレッシュトークンおよびアクセストークンと交換します。ヘッドレスマシンでは、次の接続プロパティを設定してOAuth 認証値を取得します。
- InitiateOAuth:REFRESH。
- OAuthVerifier:控えておいたverifier code(リダイレクトURI のcode パラメータの値)。
- OAuthSettingsLocation:暗号化されたOAuth 認証値を指定されたファイルに永続化。
- OAuthClientId:カスタムOAuth アプリケーション設定のクライアントId。
- OAuthClientSecret:カスタムOAuth アプリケーション設定のクライアントシークレット。
-
接続をテストしてOAuth 設定ファイルを生成します。
-
次のプロパティを再設定して、接続してください。
- InitiateOAuth:REFRESH。
- OAuthSettingsLocation:暗号化されたOAuth 認証値を含むファイル。アクセストークンの自動リフレッシュを有効にするには、このファイルが本製品 に読み書きのアクセス許可を与えることを確認してください。
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。
オプション2:OAuth 設定を転送
ヘッドレスマシンでの接続に先立ち、インターネットブラウザに対応したデバイスでドライバーとの接続をインストールし、作成する必要があります。上述の「デスクトップアプリケーション」の説明に従って、接続プロパティを設定します。
「デスクトップアプリケーション」の手順が完了すると、生成された認証値は、OAuthSettingsLocation で指定されたパスに暗号化されて書き込まれます。デフォルトのファイル名はOAuthSettings.txt です。
接続をテストしてOAuth 設定ファイルを生成し、OAuth 設定ファイルをヘッドレスマシンにコピーします。
ヘッドレスマシンでデータに接続するには、次の接続プロパティを設定します。
- InitiateOAuth:REFRESH
- OAuthSettingsLocation:ブラウザでマシンからコピーしたOAuth 設定ファイルへのパス。アクセストークンの自動リフレッシュを有効にするために、このファイルが本製品 に読み書きのアクセス許可を与えることを確認してください。
- OAuthClientId:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。
標準ユーザーとして認証
Workday で標準ユーザーとして認証するには、カスタムAPI クライアントアプリケーションの作成 で説明するように、はじめにAPI クライアントを作成する必要があります。API クライアントを設定したら、Workday 認証情報を使用して接続するために以下のプロパティを設定します。
標準OAuth ユーザー
- ConnectionType および関連プロパティ
- AuthScheme:OAuth。
- OAuthClientId:View API Client ページで取得したClient ID。
- OAuthClientSecret:View API Client ページで取得したClient Secret。パブリッククライアントを使う場合には、この値をブランクにします。
- Tenant:アカウントのテナント。
- BaseURL:View API Clients ページにあるREST API Endpoint のベースURL。
AzureAD ユーザー
- ConnectionType および関連プロパティ
- AuthScheme:AzureAD。
- OAuthClientId:View API Client ページで取得したClient ID。
- Tenant:アカウントのテナント。
- BaseURL:View API Clients ページにあるREST API Endpoint のベースURL。
- SSOProperties:AzureTenant、AzureClientId、AzureClientSecret、Resource など、SSO に使用される Azure 固有のプロパティ。
ISU として認証
ISU として認証するには、カスタムAPI クライアントアプリケーションの作成 で説明するように、 はじめにAPI Client またはAPI Client for Integrations のいずれかを作成する必要があります。JWT bearer grant type を使用して、これらのクライアントのいずれかを作成できます。
適切なプロパティを設定したら、接続の準備は完了です。
API Client for Integrations
- ConnectionType および関連プロパティ
- AuthScheme:OAuthISU。
- OAuthClientId:View API Client ページで取得したClient ID。
- OAuthClientSecret:View API Client ページで取得したClient Secret。
- OAuthRefreshToken:Manage Refresh Tokens for Integrations ページで取得したリフレッシュトークン。
- Tenant:アカウントのテナント。
- BaseURL:View API Clients ページにあるREST API Endpoint のベースURL。
API Client(JWT)
- ConnectionType および関連プロパティ
- AuthScheme:OAuthJWT。
- OAuthJWTCertType:証明書の種類。keytool または openssl pkcs12 で証明書を作成した場合、PFXFILE になります。
- OAuthJWTCert:作成した証明書ファイルのパス。
- OAuthJWTCertPassword:作成した証明書ファイルのパスワード。
- OAuthJWTIssuer:View API Client ページで取得したClient ID。
- OAuthJWTSubject:使用しているISU のユーザー名。
- Tenant:アカウントのテナント。
- BaseURL:View API Clients ページにあるREST API Endpoint のベースURL。
SOAP API
SOAP API を使用する接続では、WQL およびレポートサービスと同じ認証スキームがすべてサポートされます。また、カスタムAPI クライアントを設定する必要のないBasic 認証もサポートしています。Basic 認証を使用するには、次の接続パラメータを設定します。
- ConnectionType:SOAP。
- AuthScheme:Basic。
- User:Workday ユーザーアカウント名。
- Password:Workday ユーザーのパスワード。
- Tenant:アカウントのテナント。
- BaseURL:View API Clients ページにあるREST API Endpoint のベースURL。
その他の認証方法は、WQL およびレポーティングサービスの場合と同じ方法で構成されます。