JDBC Driver for ServiceNow

Build 24.0.9062

接続の確立

JDBC データソースの作成

Java アプリケーションから接続するJDBC データソースを作成できます。CData JDBC Driver for ServiceNow に基づくJDBC データソースの作成は、3つの基本ステップで構成されます。

  • ドライバーのJAR ファイルをクラスパスに追加します。JAR ファイルはインストールディレクトリの[lib]サブフォルダ内にあります。.lic ファイルはJAR ファイルと同じフォルダ内に配置される必要があることに注意してください。
  • ドライバークラスを入力します。次に例を示します。
    cdata.jdbc.servicenow.ServiceNowDriver
  • JDBC URL を入力します。次に例を示します。
    jdbc:servicenow:InitiateOAuth=GETANDREFRESH;OAuthClientId=MyClientId;OAuthClientSecret=MyClientSecret;User=MyUser;Password=MyPassword;Url=https://MyInstance12345.service-now.com/;
    
    or
    
    jdbc:cdata:servicenow:InitiateOAuth=GETANDREFRESH;OAuthClientId=MyClientId;OAuthClientSecret=MyClientSecret;User=MyUser;Password=MyPassword;Url=https://MyInstance12345.service-now.com/;

    上記の2つ目の形式は、同じURL 形式を使用しているドライバー間でアプリケーションに競合がある場合は、CData ドライバーを使用していることを確認するために常に使用できます。URL は "jdbc:servicenow:" または"jdbc:cdata:servicenow:" のいずれかから始まり、任意の接続プロパティの名前と値のペアをセミコロン区切りで入力します。

ServiceNow への接続

認証ユーザーがServiceNow に接続する場合、以下のようなリストのメタデータにアクセスするには、少なくともRead パーミッションが必要です。

  • sys_db_object(すべてのデータに必要)
  • sys_glide_object(特定のServiceNow テーブルメタデータに必要)
  • sys_dictionary(ServiceNow スキーマ情報を取得するために必要)

これを有効にするには、以下のようにユーザーのロールを昇格させる必要があります。

  1. Admin コンソールでuser menu -> Elevate Roles に移動します。
  2. check the security _admin box で、OK をクリックします。

ユーザーはまた、テーブルにアクセスするために少なくとも行レベルの権限が必要です。また、すべての接続でUrl プロパティが必要です。

READ sys_db_object

行レベルとフィールドレベルの権限が必要です。sys_db_object へのアクセスを有効化します。

  1. システムセキュリティ -> アクセス制御(ACL)に移動します。
  2. 新しいアクセス制御(ACL)オブジェクトを作成するには、New を選択します。
    • タイプには、レコードを選択します。
    • 操作には、読み取りを選択します。
    • 名前には、最初のドロップダウンでテーブル[sys_db_object] を、2番目のドロップダウンで--None-- を選択します。
    • 必要なロールセクションで、Insert a new row... テキストボックスをダブルクリックします。希望するロールを検索して、選択します。
  3. 送信をクリックして、ACL オブジェクトを作成します。
  4. ユーザー管理 -> ユーザー -> Select authenticating user -> ロール -> 編集... に移動します。
  5. 開いたページで、新しいACL に必要なロールを追加します。
  6. 新しいACL に必要であるとして指定したロールを、認証ユーザーに割り当てます。

READ sys_glide_object

行レベルとフィールドレベルの権限が必要です。sys_glide_object へのアクセスを有効化します。

  1. システムセキュリティ -> アクセス制御(ACL)に移動します。
  2. 新しいアクセス制御(ACL)オブジェクトを作成するには、New を選択します。
    • タイプには、レコードを選択します。
    • 操作には、読み取りを選択します。
    • 名前には、最初のドロップダウンでフィールドクラス[sys_glide_object] を、2番目のドロップダウンで--None-- を選択します。
    • 必要なロールセクションで、Insert a new row... テキストボックスをダブルクリックします。希望するロールを検索して、選択します。
  3. 送信をクリックして、ACL オブジェクトを作成します。
  4. ユーザー管理 -> ユーザー -> Select authenticating user -> ロール -> 編集... に移動します。
  5. 開いたページで、新しいACL に必要なロールを追加します。
  6. 新しいACL に必要であるとして指定したロールを、認証ユーザーに割り当てます。

READ sys_dictionary

sys_dictionary へのアクセスを有効化します。

  1. ユーザー管理 -> ユーザー -> Select authenticating user -> ロール -> 編集... に移動します。
  2. コレクションから"personalize_dictionary" ロールを追加します。

ServiceNow への認証

ServiceNow は、Basic 認証、OAuth 標準による認証、PASSWORD グラント種別による認証、SSO プロバイダーによる認証をサポートします。

Basic

Basic 認証を使用するには、ServiceNow User およびPassword を提供する必要があります。

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

  1. AuthSchemeBASIC
  2. User:BASIC ユーザー。
  3. Password:BASIC ユーザーのパスワード。
  4. Url:ServiceNow インスタンスのサイトのベースURL。例: https://MyInstance12345.service-now.com/
  5. InitiateOAuth:OAuth 認証プロセスの入力を回避するためにはOFF

OAuth

ServiceNow は、ユーザーがSSO 経由でログインしていない場合でBasic 認証も使用していない場合、すべての状況でOAuth 認証をサポートします。この認証を有効にするには、すべてのOAuth フローでAuthSchemeOAuth に設定し、カスタムOAuth アプリケーションを作成する必要があります。これらのOAuth 値の他に、UrlUser およびPassword の指定も必要です。

以下のサブセクションでは、3つの一般的な認証フローでのServiceNow への認証について詳しく説明します。カスタムOAuth アプリケーションの作成については、カスタムOAuth アプリケーションの作成 を参照してください。

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

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

カスタムOAuth アプリケーションの資格情報を使用して認証するには、OAuth アクセストークンを取得し、更新する必要があります。これらを設定すると、接続の準備が整います。

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

  • InitiateOAuthGETANDREFRESHOAuthAccessToken を自動的に取得およびリフレッシュするために使用します。
  • OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
  • OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。
  • CallbackURL:アプリケーションの登録時に定義されたリダイレクトURI。

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

アプリケーションにアクセス許可を与えると、本製品 はOAuth プロセスを完了します。

  1. 本製品 はServiceNow からアクセストークンを取得し、それを使ってデータをリクエストします。
  2. OAuth 値はOAuthSettingsLocation で指定されたパスに保存されます。これらの値は接続間で永続化されます。

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

Web アプリケーション

Web 経由で認証する場合は、カスタムOAuth アプリケーションの作成 で説明するようにServiceNow にカスタムOAuth アプリケーションを作成および登録する必要があります。それから本製品 を使用してOAuth トークンの値を取得および管理します。

このセクションでは、OAuth アクセストークンの取得方法、ドライバーにOAuth アクセストークンを自動的に更新させる方法、OAuth アクセストークンを手動で更新する方法について説明します。

OAuth アクセストークンの取得:

  1. 次の接続プロパティを設定し、OAuthAccessToken を取得します。
    • OAuthClientId:アプリケーション設定のクライアントId。
    • OAuthClientSecret:アプリケーション設定のクライアントシークレット。

  2. ストアドプロシージャを呼び出し、OAuth 交換を完了します。
    • GetOAuthAuthorizationURL ストアドプロシージャを呼び出します。AuthMode インプットをWEB に、CallbackURL をアプリケーション設定で指定したリダイレクトURI に設定します。 ストアドプロシージャは、OAuth エンドポイントへのURL を返します。
    • ステップ1でストアドプロシージャが返したURL に移動します。ログインしてWeb アプリケーションを認可します。コールバックURL にリダイレクトされます。
    • GetOAuthAccessToken ストアドプロシージャを呼び出します。AuthMode インプットをWEB に設定します。Verifier インプットを、リダイレクトURI のクエリ文字列のcode パラメータに設定します。

アクセストークンとリフレッシュトークンを取得したのち、データに接続してOAuth アクセストークンを自動的にリフレッシュできます。

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

本製品 がOAuth アクセストークンを自動的にリフレッシュするようにするには、次のように設定します。

  1. はじめてデータに接続する前に、次の接続プロパティを設定します。
    • InitiateOAuthREFRESH
    • OAuthClientId:アプリケーション設定のクライアントId。
    • OAuthClientSecret:アプリケーション設定のクライアントシークレット。
    • OAuthAccessTokenGetOAuthAccessToken によって返されたアクセストークン。
    • OAuthSettingsLocation:本製品 がOAuth 値を保存する場所のパス。これは接続間で維持されます。
  2. その後のデータ接続では、以下を設定します。
    • InitiateOAuth
    • OAuthSettingsLocation

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

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

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

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

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

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

ヘッドレスマシン

ヘッドレスマシンに置かれているリソースにログインする必要がある場合は、インターネットブラウザに対応した別の端末で認証する必要があります。 以下のいずれかの方法で行います。

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

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

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

Verifier code を取得するには、OAuth Authorization URL で認証する必要があります。以下の手順に従います。

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

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

    • InitiateOAuthOFF
    • OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
    • OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。

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

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

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

  4. OAuth verifier code をOAuth リフレッシュトークンおよびアクセストークンと交換します。ヘッドレスマシンでは、次の接続プロパティを設定してOAuth 認証値を取得します。

    • InitiateOAuthREFRESH
    • OAuthVerifier:控えておいたverifier code(リダイレクトURI のcode パラメータの値)。
    • OAuthSettingsLocation:暗号化されたOAuth 認証値を指定されたファイルに永続化。
    • OAuthClientId:カスタムOAuth アプリケーション設定のクライアントId。
    • OAuthClientSecret:カスタムOAuth アプリケーション設定のクライアントシークレット。

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

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

    • InitiateOAuthREFRESH
    • OAuthSettingsLocation:暗号化されたOAuth 認証値を含むファイル。アクセストークンの自動リフレッシュを有効にするには、このファイルが本製品 に読み書きのアクセス許可を与えることを確認してください。
    • OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
    • OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。

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

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

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

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

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

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

パスワードグラント種別

ユーザーとアプリケーションの間に信頼関係がある場合、ユーザーはPASSWORD グラントタイプを使用して、デスクトップまたはWeb から認証できます。

PASSWORD グラントタイプを介して認証するには、次のプロパティを設定します。

  • AuthSchemeOAuthPassword
  • InitiateOAuthGETANDREFRESH。この設定により、OAuth 交換や、手動でのOAuthAccessToken 接続プロパティの設定の繰り返しを避けられます。
  • OAuthClientId:clientId。
  • OAuthClientSecret:clientSecret。
  • Username:ユーザーのユーザーネーム。
  • Password:ユーザーのパスワード。
  • Url:ServiceNow インスタンスのサイトのベースURL。
接続すると、本製品 はOAuth 処理を完了します。

  1. CallbackURL からアクセストークンを取得します。
  2. 古いトークンの期限が切れたときは、新しいアクセストークンを取得します。
  3. OAuthSettingsLocation に地理位置情報とともにOAuth 値を保存し、接続間で永続化されるようにします。

シングルサインオンID プロバイダー

ServiceNow は、ADFS、Okta、OneLogin、PingFederate によるシングルサインオン(SSO)認証をサポートします。

ADFS

ADFS に接続するには、AuthSchemeADFS に設定し、次のプロパティを設定します。

  • User:ADFS ユーザー。
  • Password:ADFS ユーザーのパスワード。
  • SSOLoginURL:SSO プロバイダーのログインURL。

ADFS への認証を行うには、次のSSOProperties を設定します。

  • RelyingParty:ADFS サーバーのRelying Party Identifier の値。

接続文字列の例:

AuthScheme=ADFS;User=username;Password=password;SSOLoginURL='https://sts.company.com';SSOProperties='RelyingParty=https://saml.service-now.com';Url=https://MyInstance12345.service-now.com/;

Okta

Okta に接続するには、AuthSchemeOkta に設定し、次のプロパティを設定します。

  • User:Okta ユーザー。
  • Password:Okta ユーザーのパスワード。
  • SSOLoginURL:SSO プロバイダーのログインURL。

Okta クライアントリクエストコンテキストをオーバーライドする信頼されたアプリケーションまたはプロキシを使用する場合、またはMFA を設定している場合は、Okta を使用して認証するためにSSOProperties を組み合わせて使用する必要があります。必要に応じて、以下のいずれかを設定します。

  • APIToken:Okta クライアントリクエストコンテキストをオーバーライドする、信頼されたアプリケーションまたはプロキシ経由でユーザーを認証する場合、これを顧客がOkta 組織で作成したAPI Token に設定します。
  • MFAType:MFA フローを設定した場合、次の対応するタイプのいずれかに設定します:OktaVerifyEmail、またはSMS
  • MFAPassCode:MFA フローを設定した場合は、有効なパスコードに設定します。
    これを空欄または無効な値に設定した場合、本製品 はユーザーのデバイスまたはE メールにワンタイムパスワードチャレンジを発行します。パスコードを受信後、取得したワンタイムパスワードをMFAPassCode 接続プロパティに設定する接続を再度開きます。
  • MFARememberDevice:デフォルトはTrue です。Okta は、MFA が必要な場合にデバイスを記憶させることをサポートします。設定された認証ポリシーに従ってデバイスの記憶が許可されている場合、本製品 はMFA 認証の有効期間を延長するデバイストークンを送信します。MFA を記憶させない場合は、この 変数をFalse に設定してください。

接続文字列の例:

AuthScheme=Okta;SSOLoginURL='https://example.okta.com/home/appType/0bg4ivz6cJRZgCz5d6/46';User=oktaUserName;Password=oktaPassword;Url=https://MyInstance12345.service-now.com/;

OneLogin

OneLogin に接続するには、AuthSchemeOneLogin に設定し、次のプロパティを設定します。

  • User:OneLogin ユーザー。
  • Password:OneLogin ユーザーのパスワード。

OneLogin への認証を行うには、次のSSOProperties を設定します。

  • OAuthClientId:Developers -> API Credentials -> Credential -> ClientId を選択して取得できるOAuthClientId。
  • OAuthClientSecret:Developers -> API Credentials -> Credential -> ClientSecret を選択して取得できるOAuthClientSecret。
  • Subdomain:SSO アプリケーションにアクセスするOneLogin ユーザーのサブドメイン。例えば、 OneLogin URL がsplinkly.onelogin.com の場合、splinkly がサブドメインの値です。
  • AppId:SSO アプリケーションのId。
  • リージョン(オプション):OneLogin アカウントで使用しているリージョン。有効な値はUS(デフォルト)またはEU です。

次の例の接続文字列はOneLogin への接続にAPI Key を使います:

AuthScheme=OneLogin;User=OneLoginUserName;Password=OneLoginPassword;SSOProperties='OAuthClientID=3fc8394584f153ce3b7924d9cd4f686443a52b;OAuthClientSecret=ca9257fd5cc3277abb5818cea28c06fe9b3b285d73d06;Subdomain=OneLoginSubDomain;AppId=1433920';Url=https://MyInstance12345.service-now.com/;

PingFederate

PingFederate に接続するには、AuthSchemePingFederate に設定し、次のプロパティを設定します。

  • User:PingFederate ユーザー。
  • Password:PingFederate ユーザーのパスワード。
  • SSOLoginURL:SSO プロバイダーのログインURL。
  • AWSRoleARN(オプション):複数のロールARN がある場合は、認可に使用するARN を指定します。
  • AWSPrincipalARN(オプション):複数のプリンシパルARN がある場合は、認可に使用するARN を指定します。
  • SSOProperties(オプション):Amazon S3へのリクエストにユーザー名とパスワードを認可ヘッダーとして含める場合は、Authscheme=Basic

SSOLoginURL 用の相互SSL 認証(WS-Trust STS エンドポイント)を有効化するには、次の SSOProperties を設定します。

  • SSLClientCert
  • SSLClientCertType
  • SSLClientCertSubject
  • SSLClientCertPassword

接続文字列の例:

AuthScheme=PingFederate;URL='https://dev103586.service-now.com';SSOLoginUrl='https://mycustomserver.com:9033/idp/sts.wst';User=admin;Password=PassValue123;

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.9062