接続の確立
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 への接続
データに接続する前に、認証ユーザーが、最低でもメタデータの一覧表示に必要な次の権限を割り当てられていることを確認する必要があります。これを行う前に、アカウントの管理者は、[ユーザー]メニュー->[ロールを昇格]->[security_admin]チェックボックスをON にし、[OK]に移動して、ロールを昇格する必要があります。以下にリストされているテーブルの場合、ユーザーはsys_db_object やsys_glide_object のような行レベルの権限と、sys_db_object.* やsys_glide_object.* のようなフィールドレベルの権限の両方を持っている必要があります。ユーザーがアクセスを希望する追加のテーブルについては、少なくとも行レベルの権限が必要です。
Url 接続プロパティは、すべての接続に必須のプロパティです。
READ sys_db_object
データに接続するには、sys_db_object へのアクセスが必須です。次のようにしてアクセスを有効にできます。
- [システムセキュリティ]->[アクセス制御(ACL)]に移動します。[新規]を選択して、アクセス制御オブジェクトを作成します。
- [タイプ]には、[レコード]を選択します。
- [操作]には、[読み取り]を選択します。
- [名前]には、最初のドロップダウンで[テーブル[sys_db_object]]を、2番目のドロップダウンで[--None--]を選択します。
- [必要なロール]セクションで、Insert a new row... と表示されているテキストボックスをダブルクリックします。希望するロールを検索して、選択します。
- [送信]をクリックして、ACL オブジェクトを作成します。
- 認証ユーザーに、作成したACL を持つロールを割り当てます。これを行うには、[ユーザー管理]->[ユーザー]->[Select authenticating user]->[ロール]->[編集...]に移動し、コレクションからロールを追加します。
READ sys_glide_object
特定のServiceNow テーブルメタデータには、sys_glide_object へのアクセスが必要です。前述の手順を繰り返すことで、これに対するアクセスを有効にできます。ただし手順4で、ACL の名前 には[フィールドクラス[sys_glide_object]]を選択してください。
READ sys_dictionary
sys_dictionary へのアクセスは、ServiceNow からスキーマ情報を取得するために必須です。[ユーザー管理]->[ユーザー]->[Select authenticating user]->[ロール]->[編集...] に移動し、コレクションから"personalize_dictionary" ロールを追加することでこれに対するアクセスを有効にできます。
ServiceNow への認証
Basic
Basic 認証を使用して認証するには、ServiceNow User およびPassword を指定する必要があります。
次の接続プロパティを設定して、接続してください。
- AuthScheme:BASIC に設定。
- User:ユーザー名に設定。
- Password:パスワードに設定。
- Url:ServiceNow インスタンスのサイトのベースURL に設定。例:https://MyInstance12345.service-now.com/。
- InitiateOAuth:OAuth 認証プロセスの入力を回避するためOFF に設定。
OAuth の使用
ServiceNow はOAuth 2.0 認証標準を利用しています。OAuth を使って認証するには、ServiceNow にOAuth アプリを登録してOAuthClientId およびOAuthClientSecret を取得しなければなりません。OAuth 値の他に、Url、User、およびPassword の指定が必要です。
OAuth 認証を介した接続について詳しくは、OAuth 認証の使用 を参照してください。
ADFS
AuthScheme をADFS に設定します。次の接続プロパティを設定する必要があります。
- User:ADFS ユーザーに設定。
- Password:ユーザーのADFS パスワードに設定。
- SSOLoginURL:SSO プロバイダーが使用するログインURL に設定。
ADFS への認証には、次のSSOProperties が必要です。
- RelyingParty:この属性は、ServiceNow の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
AuthScheme をOkta に設定します。Okta を介した認証には、次の接続プロパティを使用します。
- User:Okta ユーザーに設定。
- Password:Okta パスワードに設定。
- SSOLoginURL:SSO プロバイダーが使用するログインURL に設定。
- Okta クライアントリクエストコンテキストをオーバーライドする信頼されたアプリケーションまたはプロキシ経由でユーザーを認証する
- MFA を構成する
Okta を使用して認証するためには、SSOProperties 入力パラメータの組み合わせを使用する必要があります。それ以外の場合、これらの値を設定する必要はありません。
SSOProperties に、必要に応じて以下の入力パラメータを設定します。
- APIToken:Okta クライアントリクエストコンテキストをオーバーライドする、信頼されたアプリケーションまたはプロキシ経由でユーザーを認証する場合、これを顧客がOkta 組織で作成したAPI Token に設定します。
- MFAType:MFA フローを設定した場合に設定。現時点では、次のタイプをサポートしています:OktaVerify、Email、およびSMS。
- MFAPassCode:MFA フローを設定した場合にのみ設定。これを空欄または無効な値に設定した場合、本製品 はユーザーのデバイスまたはE メールにワンタイムパスワードチャレンジを発行します。パスコードを受信後、取得したワンタイムパスワードをMFAPassCode 接続プロパティに設定する接続を再度開きます。
- MFARememberDevice:Okta は、MFA が必要な場合にデバイスを記憶させることをサポートします。設定された認証ポリシーに従ってデバイスの記憶が許可されている場合、本製品 はMFA 認証の有効期間を延長するデバイストークンを送信します。このプロパティはデフォルトでTrue に設定されてます。MFA を記憶させない場合のみFalse に設定してください。
接続文字列の例:
AuthScheme=Okta;SSOLoginURL='https://example.okta.com/home/appType/0bg4ivz6cJRZgCz5d6/46';User=oktaUserName;Password=oktaPassword;Url=https://MyInstance12345.service-now.com/;
OneLogin
AuthScheme をOneLogin に設定します。OneLogin への接続には、次の接続プロパティを使用します。
- User:OneLogin ユーザーに設定。
- Password:ユーザーのOneLogin パスワードに設定。
- 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 に設定。
- Region(オプション):OneLogin アカウントで使用しているリージョンに設定。OneLogin API は複数のリージョンで動作し、このプロパティは正しいドメインを見つけるために使用されます。次の値の1つを取ります。
- US(デフォルト)
- EU
次は接続文字列の例です。
次の接続文字列はOneLogin への接続にAPI キーを使います。
AuthScheme=OneLogin;User=OneLoginUserName;Password=OneLoginPassword;SSOProperties='OAuthClientID=3fc8394584f153ce3b7924d9cd4f686443a52b;OAuthClientSecret=ca9257fd5cc3277abb5818cea28c06fe9b3b285d73d06;Subdomain=OneLoginSubDomain;AppId=1433920';Url=https://MyInstance12345.service-now.com/;
PingFederate
AuthScheme をPingFederate に設定します。次の接続プロパティを設定する必要があります。
- User:PingFederate ユーザーに設定。
- Password:ユーザーのPingFederate パスワードに設定。
- SSOLoginURL:SSO プロバイダーが使用するログインURL に設定。
- AWSRoleARN (オプション):複数のロールARN がある場合、認可に使用したいものをオプションで指定できます。
- AWSPrincipalARN (オプション):複数のプリンシパルARN がある場合、認可に使用したいものをオプションで指定できます。
- SSOProperties (オプション):Amazon S3 へのリクエストにユーザー名とパスワードを認可ヘッダーとして含めたい場合は、オプションで"AuthScheme=Basic" に設定できます。
追加で次のSSOProperties を使って、SSOLoginURL 用の相互SSL 認証(WS-Trust STS エンドポイント)の設定が可能です。
- SSLClientCert
- SSLClientCertType
- SSLClientCertSubject
- SSLClientCertPassword
AuthScheme=PingFederate;URL='https://dev103586.service-now.com';SSOLoginUrl='https://mycustomserver.com:9033/idp/sts.wst';User=admin;Password=PassValue123;