接続の確立
コネクタ内で利用可能なオブジェクトは、"cdata.wordpress" モジュールからアクセスできます。モジュールのオブジェクトを直接使用するには:
- モジュールを以下のようにインポートします。
import cdata.wordpress as mod
- 接続を確立するには、以下のような適切な接続文字列を使用してコネクタオブジェクトからconnect() メソッドを呼び出します。
mod.connect("URL=http://www.yourwordpresshost.com;User=yourUsername;Password=yourPassword;")
WordPress への接続
CData Python Connector for WordPress はセルフホスト型WordPress インスタンスおよびWordPress Online インスタンスへの接続をサポートしています。
- セルフホスト型WordPress に接続する場合は、WordPress サイトのURL を指定してから認証を行う必要があります。
- WordPress Online に接続する場合は、OAuth 2.0 とOAuth Password 認証のいずれかを選択できます。
セルフホスト型WordPress への接続
セルフホスト型WordPress インスタンスの場合、データに接続するには、WordPress サイトの完全なURL を指定してから、以下の説明に従って認証を行います。例えば、サイトが http://localhost/wp/wordpress でホストされている場合、http://localhost だけでなく、http://localhost/wp/wordpress と入力する必要があります。 完全なURL を指定しないと、「サイトが見つかりません」というエラーが発生します。
セルフホスト型WordPress インスタンスは2種類の認証をサポートします。
- Basic 認証:この方法は、テスト環境での使用に推奨されます。WordPress インスタンスにアクセスする方法を提供します。
- OAuth 2.0 認証:この方法は、デスクトップアプリケーション、Web アプリケーション、ヘッドレスマシンを含む、さまざまなプラットフォームからのセキュアなブラウザベースのアクセスをサポートします。
Basic 認証
WordPress をBasic 認証を使用するように設定する前に、次のガイドラインに従ってください。
- WordPress ログインに管理者権限があることを確認してください。
- ローカルホストで実行されているWordPress のバージョンを把握してください。 Note:バージョン4.7 以降はWordPress REST API をネイティブにサポートしていますが、それより前のバージョンでは、REST API を保護するためにBasic 認証プラグインが必要です。
Basic 認証を構成するには:
- WordPress ホストにログインします。
- 4.7より前のバージョンのWordPress を実行している場合は、REST API プラグインをインストールしてください。
- Basic Authentication プラグインをインストールします。
- カスタムタクソノミーを作成するには、Simple Taxonomy Refreshed プラグインをインストールします。
プラグインを手動でインストールしたい場合は、圧縮されたフォルダをwp-content\plugins フォルダに展開してからWordPress 管理者インターフェース経由でプラグインを有効にします。 - 次に、以下の接続プロパティを設定します。
- AuthScheme:Basic に設定。
- URL:WordPress URL。
- User:ユーザーネーム。
- Password:パスワード。
これで接続する準備が整いました。
OAuth 2.0 認証
テスト環境を除くすべての場合、WordPress はOAuth 認証のみサポートします。この認証を有効にするには、すべてのOAuth フローでAuthScheme をOAuth に設定し、カスタムOAuth アプリケーションを作成する必要があります。以下のサブセクションでは、3つの一般的な認証フローでのWordPress への認証について詳しく説明します。 カスタムOAuth アプリケーションの作成については、カスタムOAuth アプリケーションの作成 を参照してください。 WordPress で利用可能な接続文字列プロパティの全リストは、Connection を参照してください。
デスクトップアプリケーション
カスタムOAuth アプリケーションの資格情報を使用して認証するには、OAuth アクセストークンを取得し、更新する必要があります。これらを設定すると、接続の準備が整います。OAuth アクセストークンの取得およびリフレッシュ:
- InitiateOAuth:GETANDREFRESH に設定。OAuthAccessToken を自動的に取得およびリフレッシュするために使用します。
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。
- CallbackURL:アプリケーションの登録時に定義されたリダイレクトURI。
接続すると、本製品 はデフォルトブラウザでWordPress のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。
アプリケーションにアクセス許可を与えると、本製品 はOAuth プロセスを完了します。
- 本製品 はWordPress からアクセストークンを取得し、それを使ってデータをリクエストします。
- OAuth 値はOAuthSettingsLocation で指定されたパスに保存されます。これらの値は接続間で永続化されます。
アクセストークンの期限が切れたときは、本製品 は自動でアクセストークンをリフレッシュします。
Web アプリケーション
Web 経由で認証する場合は、カスタムOAuth アプリケーションの作成 で説明するようにWordPress にカスタム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 値を保存する場所のパス。これは接続間で維持されます。
- その後のデータ接続では、以下を設定します。
OAuthClient 認証
クライアント資格情報グラントタイプにより、デスクトップアプリケーションまたはWeb からの認証が可能になります。この認証スキームを有効にするには、AuthScheme をOAuthClient に設定します。 この方法には、カスタムOAuth アプリケーションの作成 で説明するように、カスタムOAuth アプリケーションが必要です。接続するには、次のプロパティを設定します。
- InitiateOAuth:GETANDREFRESH に設定。InitiateOAuth を使うと、OAuth 交換や、手動での接続文字列のアクセストークン設定の繰り返しを避けられます。
- AuthScheme:クライアント資格情報グラントタイプで認証を行う場合は、AuthScheme をOAuthClient に設定します。
- OAuthClientId:カスタムOAuth アプリケーションで指定されたクライアントId。
- OAuthClientSecret:カスタムOAuth アプリケーションで指定されたクライアントシークレット。
ヘッドレスマシン
ヘッドレスマシンに置かれているリソースにログインする必要がある場合は、 インターネットブラウザに対応した別の端末で認証する必要があります。以下のいずれかの方法で行います。
- オプション1:OAuthVerifier 値を取得します。
- オプション2:インターネットブラウザに対応したマシンに本製品 をインストールし、通常のブラウザベースのフローで認証した後でOAuth 認証値を転送します。
オプション1またはオプション2を実行後、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするようにドライバーを設定します。
オプション1:Verifier code を取得および交換
Verifier code を取得するには、OAuth Authorization URL で認証する必要があります。以下の手順に従います。
-
インターネットブラウザに対応したマシンから認証してOAuthVerifier 接続プロパティを取得します。
次のプロパティを設定します。
- InitiateOAuth:OFF に設定。
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。
-
GetOAuthAuthorizationURL ストアドプロシージャを呼び出します。ストアドプロシージャは、 カスタムOAuth アプリケーションが登録されたときに構築されたCallbackURL を返します。(カスタムOAuth アプリケーションの作成 を参照してください。)
この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 アプリケーションの登録時に割り当てられたクライアントシークレット。
Okta
Okta に接続するには以下のプロパティを設定します。
- AuthScheme:Okta。
- User:認証するOkta ユーザー。
- Password:認証するOkta ユーザーのパスワード。
- SSOLoginURL:SSO プロバイダーのログインURL。
- SSOExchangeURL:The url used for the exchange of the SAML token for WordPress credentials. This is optional and if it is NULL WordPress will construct it.
Okta クライアントリクエストコンテキストをオーバーライドする信頼されたアプリケーションまたはプロキシのいずれかを使用する場合、またはMFA を設定している場合は、Okta を使用して認証するためにSSOProperties を組み合わせて使用する必要があります。必要に応じて、以下のいずれかを設定します。
- APIToken:Okta クライアントリクエストコンテキストをオーバーライドする、信頼されたアプリケーションまたはプロキシ経由でユーザーを認証する場合、これを顧客がOkta 組織で作成したAPI Token に設定します。
- MFAType:MFA フローを設定した場合、次の対応するタイプのいずれかに設定します:OktaVerify、Email、または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=YourWordpressSiteURL;
Azure AD
この設定では、2つの別個のAzure AD アプリケーションが必要になります。
- シングルサインオンに使用される"WordPress" アプリケーション。
- Azure Active Directory に対するuser_impersonation 権限を持つカスタムOAuth アプリケーション。
Azure AD に接続するには、AuthScheme をAzureAD に設定し、次のプロパティを設定します。
- SSOExchangeURL:The url used for the exchange of the SAML token for WordPress credentials. This is optional and if it is NULL WordPress will construct it.
- OAuthClientId:アプリ登録の概要セクションにリストされている、コネクタアプリケーションのアプリケーションId。
- OAuthClientSecret:コネクタアプリケーションのクライアントシークレット値。新しいクライアントシークレットを作成すると、Azure AD にこれが表示されます。
- CallbackURL:コネクタアプリケーションのリダイレクトURI。例: https://localhost:33333。
- InitiateOAuth:GETANDREFRESH に設定。
Azure AD を認証するには、SSOProperties で必要なプロパティを設定します。
- Resource:アプリ登録の概要セクションにリストされている、WordPress アプリケーションのアプリケーションId URI。ほとんどの場合、これはカスタムWordPress ドメインのURL です。
- AzureTenant:アプリケーションが登録されているAzure AD テナントのId。
接続文字列の例:
AuthScheme=AzureAD;URL=YourWordpressSiteURL;InitiateOAuth=GETANDREFRESH;OAuthClientId=3ea1c786-d527-4399-8c3b-2e3696ae4b48;OauthClientSecret=xxx;CallbackUrl=https://localhost:33333;SSOProperties='Resource=https://YourWordpressSite/wp-content/plugins/miniorange-saml-20-single-sign-on;AzureTenant=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';これで接続する準備が整いました。
PingFederate
PingFederate に接続するには、AuthScheme をPingFederate に設定します。
接続する前に、WordPress サイトがPingFederate SSO プラグインで構成され、認証ユーザーがPingFederate データストアにプロビジョニングされていることを確認してください。
次の接続プロパティを設定します。
- User:PingFederate ユーザー。また、PingFederate データストアにもこのユーザーを追加する必要があります。ブラウザで接続すると、PingFederate のログインページにリダイレクトされ、認証が完了します。
- Password:PingFederate ユーザーのパスワード。
- SSOLoginURL:PingFederate SSO ログインURL。
- SSOExchangeURL(オプション):WordPress 認証情報のSAML トークンの交換に使用されるURL。指定されない場合、本製品 は自動的にそれを構築しようとします。
接続文字列の例:
AuthScheme=PingFederate;URL=https://yourwordpresssite.com;User=myuser@mydomain;Password=mypassword;SSOLoginURL=https://idp.example.com/idp/startSSO.ping;
WordPress Online への接続
Online は2種類の認証方法をサポートします。- OAuth 2.0 認証
- OAuth パスワード認証
OAuth 2.0 認証
OAuth 2.0 は、WordPress、Your Way、およびJetpack を実行しているセルフホスト型WordPress サイト上のブログとアプリケーションが対話することを可能にするプロトコルです。2つの認証エンドポイントは、認可エンドポイントとトークンリクエストエンドポイントです。
- https://public-api.wordpress.com/oauth2/authorize
- https://public-api.wordpress.com/oauth2/token
開始する前に、カスタムOAuth アプリケーションの作成 で説明するようにカスタムOAuth アプリケーションを作成および登録する必要があります。このアプリケーションは、アプリケーションを認証してAPI 呼び出しを検証するために必要なクライアントId、クライアントシークレット、およびリダイレクトURI を提供します。 WordPress アプリケーションマネージャーでアプリケーションを作成または管理できます。
認可エンドポイントでこれらの値を使用します。以下のパラメータが必要です。
接続の準備ができたら、以下の接続プロパティを設定します。
- Schema:WordPressOnline。
- AuthScheme:OAuth。
- URL:WordPress.com サイトURL。
- InitiateOAuth:GETANDREFRESH に設定。
- OAuthClientId:WordPress.com アプリケーションのクライアントId。
- OAuthClientSecret:WordPress.com アプリケーションのクライアントシークレット。
使用できるオプションのパラメータがあります。
- Scope:認証トークンがアプリケーションに付与するアクセスレベルを定義します。設定された(または省略された)値に応じて、異なるアクセスが許可されます。サポートされている値には、次のものが含まれます。
- Auth:WordPress.com Connect の/me エンドポイントへのアクセスを付与します。
- Global:Jetpack 接続サイトを含む、ユーザーアカウントに関連付けられたすべてのブログへのフルアクセスを付与します。省略された場合、アクセスは単一のブログに制限されます。
OAuth パスワード認証
次の接続プロパティを設定します。- Schema:WordPressOnline。
- AuthScheme:OAuthPassword。
- URL:WordPress Online のURL。
- OAuthClientId:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。
- User:ユーザーネーム。
- Password:パスワード。
接続文字列の例:
AuthScheme=OAuthPassword;Schema=WordPressOnline;URL=https://example.wordpress.com;OAuthClientId=yourClientId;OAuthClientSecret=yourClientSecret;User=yourUser;Password=yourPassword; AuthScheme=OAuth;Schema=WordPressOnline;URL=https://example.wordpress.com;InitiateOAuth=GETANDREFRESH;OAuthClientId=yourClientId;OAuthClientSecret=yourClientSecret;