HTTP Streams への接続
HTTP(S) への認証
connector は、HTTP(S) ストリームに格納されたJSON データへの接続を汎用的にサポートします。
ユーザー / パスワード、Digest アクセス、OAuth、OAuthJWT、OAuth PASSWORD フローなど、複数の認証方式に対応しています。
また、認証設定のないストリームに接続することも可能です。
認証なし
認証なしでHTTP(S)ストリームに接続するには、AuthScheme 接続プロパティをNone に設定します。
Basic
接続するには以下を設定します。
- AuthScheme:Basic に設定。
- User:HTTP(S) ストリームに紐づいているユーザー名に設定。
- Password:HTTP(S) ストリームに紐づいているパスワードに設定。
Digest
接続するには以下を設定します。
- AuthScheme:Digest に設定。
- User:HTTP(S) ストリームに紐づいているユーザー名に設定。
- Password:HTTP(S) ストリームに紐づいているパスワードに設定。
OAuth
AuthScheme をOAuth に設定します。OAuth では認証するユーザーにブラウザでJSON との通信を要求します。次のセクションで説明するとおり、connector はさまざまな方法でこれをサポートします。
次の手順を実行する前に、操作したいJSON データを持つサービスにOAuth アプリを登録する必要があります。
ほとんどのサービスではカスタムアプリケーションを作成する場合、開発者登録をしてサービスのUI でアプリを作成する必要があります。
ただし、すべてのサービスに当てはまるわけではありません。アプリの作成をサービスプロバイダーに依頼しなければならない場合もあります。どんな場合でも、OAuthClientId、OAuthClientSecret、およびCallbackURL の値を取得する必要があります。
デスクトップアプリケーション
次の接続プロパティを設定して、接続してください。
- OAuthVersion:OAuth バージョン1.0 か2.0 のいずれかに設定します。
- OAuthRequestTokenURL:OAuth 1.0 に必要です。OAuth 1.0 では、これがアプリケーションがリクエストトークンをリクエストするURL です。
- OAuthAuthorizationURL:OAuth 1.0 および2.0 に必要です。これは、ユーザーがサービスにログインして、アプリケーションにアクセス許可を与えるURL です。OAuth 1.0 では、アクセス許可が付与されるとリクエストトークンが認可されます。
- OAuthAccessTokenURL:OAuth 1.0 および2.0 に必要です。これは、アクセストークンがリクエストされるURL です。OAuth 1.0 では、認可されたリクエストトークンはアクセストークンと交換されます。
- OAuthRefreshTokenURL:OAuth 2.0 に必要です。OAuth 2.0 では、古いトークンの期限が切れたときは、このURL でリフレッシュトークンと新しいアクセストークンと交換します。データソースによっては、アクセストークンと同じURL である場合がありますので、注意してください。
- OAuthClientId:アプリ設定のクライアントId に設定。これはコンシューマーキーと呼ばれることもあります。
- OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。これはコンシューマーシークレットと呼ばれることもあります。
- CallbackURL:http://localhost:33333 に設定。アプリケーション設定でリダイレクトURL を指定した場合には、一致している必要があります。
- InitiateOAuth:GETANDREFRESH に設定。InitiateOAuth を使って、OAuth 交換や、手動での接続文字列のアクセストークン設定の繰り返しを避けられます。
- コールバックURL からアクセストークンを取得し、リクエストを認証します。
- アクセストークンの期限が切れたときにはリフレッシュしてください。
- OAuthSettingsLocation でOAuth 値を保存し、接続間で永続化されるようにします。
OAuth JWT
AuthScheme をOAuthJWT に設定します。
connector は、ユーザーが双方向のサインオンを実行できない状況で、認可グラントとしてのJWT の使用をサポートします。 次の接続プロパティを設定して、接続してください。
- OAuthVersion:2.0 に設定。
- OAuthAccessTokenURL:JWT がアクセストークンと交換されるURL に設定します。
- OAuthJWTCert:使用する証明書に設定します。多くの場合、これはPEM またはPFX ファイルへのパスです。
- OAuthJWTCertType:正しい証明書タイプに設定します。多くの場合、PEMKEY_FILE またはPFXFILE のいずれかです。
- OAuthJWTCertPassword:証明書が暗号化されている場合、これを暗号化パスワードに設定します。
- OAuthJWTIssuer:発行元に設定します。これはJWT のiss フィールドに相当します。
- InitiateOAuth:GETANDREFRESH に設定。
JWT 署名のアルゴリズムを直接設定できないことに注意してください。connector は、RS256 アルゴリズムにのみ対応しています。
connector は以下のフィールドを含むJWT を構築してOAuthAccessTokenURL にアクセストークンを送信します。
- scope 提供されている場合、Scope から取得されます。
- aud 提供されている場合、OAuthJWTAudience から取得されます。
- iss OAuthJWTIssuer から取得されます。
- iat これはJWT が生成された時間です。
- exp これは、iat の値にOAuthJWTValidityTime の値を加えたものです。
- sub 提供されている場合、OAuthJWTSubject から取得されます。
OAuthPassword
AuthScheme:OAuthPassword に設定。
OAuth では認証するユーザーにブラウザでJSON との通信を要求します。次のセクションで説明するとおり、connector はさまざまな方法でこれをサポートします。
次の手順を実行する前に、操作したいJSON データを持つサービスにOAuth アプリを登録する必要があります。
ほとんどのサービスではカスタムアプリケーションを作成する場合、開発者登録をしてサービスのUI でアプリを作成する必要があります。
ただし、すべてのサービスに当てはまるわけではありません。アプリの作成をサービスプロバイダーに依頼しなければならない場合もあります。どんな場合でも、OAuthClientId、OAuthClientSecret、およびCallbackURL の値を取得する必要があります。
次の接続プロパティを設定して、接続してください。
- OAuthVersion:OAuth バージョン1.0 か2.0 のいずれかに設定します。
- OAuthRequestTokenURL:OAuth 1.0 に必要です。OAuth 1.0 では、これがアプリケーションがリクエストトークンをリクエストするURL です。
- OAuthAuthorizationURL:OAuth 1.0 および2.0 に必要です。これは、ユーザーがサービスにログインして、アプリケーションにアクセス許可を与えるURL です。OAuth 1.0 では、アクセス許可が付与されるとリクエストトークンが認可されます。
- OAuthAccessTokenURL:OAuth 1.0 および2.0 に必要です。これは、アクセストークンがリクエストされるURL です。OAuth 1.0 では、認可されたリクエストトークンはアクセストークンと交換されます。
- OAuthRefreshTokenURL:OAuth 2.0 に必要です。OAuth 2.0 では、古いトークンの期限が切れたときは、このURL でリフレッシュトークンと新しいアクセストークンと交換します。データソースによっては、アクセストークンと同じURL である場合がありますので、注意してください。
- OAuthClientId:アプリ設定のクライアントId に設定。これはコンシューマーキーと呼ばれることもあります。
- OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。これはコンシューマーシークレットと呼ばれることもあります。
- CallbackURL:http://localhost:33333 に設定。アプリケーション設定でリダイレクトURL を指定した場合には、一致している必要があります。
- InitiateOAuth:GETANDREFRESH に設定。InitiateOAuth を使って、OAuth 交換や、手動での接続文字列のアクセストークン設定の繰り返しを避けられます。
- コールバックURL からアクセストークンを取得し、リクエストを認証します。
- アクセストークンの期限が切れたときにはリフレッシュしてください。
- OAuthSettingsLocation でOAuth 値を保存し、接続間で永続化されるようにします。