PowerBuilder で Okta OData フィードを利用
CData API Server は、PowerBuilder DataWindow で利用できるセキュアなOkta のデータフィードを生成します。API Server は、OData、Atom、JSON、HTML、CSV、TSV、RSS などの主要な Web サービスをサポートしています。また、主要な認証スキームと SSL もサポートしています。
この記事では、CData API Server を使用してデータを取得する DataWindow を作成する方法を説明します。
API Server のセットアップ
以下の手順に従って、セキュアな Okta OData サービスの作成を開始します。
デプロイ
API Server は独自のサーバー上で実行されます。Windows では、スタンドアロンサーバーまたは IIS を使用してデプロイできます。Java サーブレットコンテナでは、API Server WAR ファイルをドロップします。詳細と手順については、ヘルプドキュメントを参照してください。
API Server は、Microsoft Azure、Amazon EC2、Heroku へのデプロイも簡単です。
Okta への接続
API Server をデプロイしたら、API Server 管理コンソールで Settings -> Connections をクリックして新しい接続を追加し、Okta に接続するために必要な認証値やその他の接続プロパティを指定します。
Okta に接続するには、Domain 接続文字列プロパティをお使いのOkta ドメインに設定します。 Okta はOAuth およびOAuthJWT 認証をサポートしています。
OAuth認証
OAuth で認証するには、AuthScheme をOAuth に設定する必要があります。また、カスタムOAuth アプリケーションを作成する必要があります。
カスタムOAuth アプリケーションの作成
Okta アカウントから:
- 管理者アカウントでOkta のデベロッパーエディションにサインインします。
- Admin Consoleで、Applications > Applications に移動します。
- Create App Integration をクリックします。
- Sign-in method は、OIDC - OpenID Connect を選択します。
- Application type は、Web Application を選択します。
- カスタムアプリケーションの名前を入力します。
- Grant TypeをAuthorization Code に設定します。トークンを自動的に更新したい場合は、Refresh Token もチェックしてください。
- コールバックURL を設定します。
- デスクトップアプリケーションやヘッドレスマシンでは、http://localhost:33333 または任意の別のポート番号を使用します。ここで設定したURI が、CallbackURL プロパティになります。
- Web アプリケーションの場合、コールバックURL を信頼できるリダイレクトURL に設定します。このURL は、アプリケーションへのアクセスが許可されたことを示すトークンを伴ってユーザーが戻ってくるWeb 上の場所です。
- Assignments セクションで、Limit access to selected groups を選択してグループを追加するか、グループの割り当ては一旦スキップします。
- OAuth アプリケーションを保存します。
- アプリケーションのGeneral タブに、アプリケーションのClient Id とClient Secret が表示されます。後で使用できるように、これらを記録してください。Client Id はOAuthClientId の設定に使用し、Client Secret はOAuthClientSecret の設定に使用します。
- Assignments タブを確認し、アプリケーションにアクセスする必要のあるすべてのユーザーがアプリケーションに割り当てられていることを確かめます。
- Okta API Scopes タブで、OAuth アプリケーションに付与するスコープを選択します。これらのスコープは、アプリが読み取り可能なデータを決定します。そのため、特定のビューに対するスコープを付与しないと、そのビューに対するクエリを実行する権限がドライバーに付与されません。各ビューに必要なスコープを確認するには、ヘルプドキュメントのデータモデル > ビュー のビュー固有のページを参照してください。
OAuth 認証の詳細や、OAuthJWT 認証については、ヘルプドキュメントを参照してください。
次に、Settings -> Resources をクリックして、API Server からアクセスを許可する Okta エンティティを選択できます。
また、Settings -> Server をクリックし、PowerBuilder との互換性のために以下の設定を変更します:
- Default Format:メニューから XML (Atom) を選択。
- Default Version:メニューから 2.0 を選択。
API Server ユーザーの認可
生成する OData サービスを決定したら、Settings -> Users をクリックしてユーザーを認可します。API Server は Authtoken ベースの認証を使用し、主要な認証スキームをサポートしています。アクセスは IP アドレスに基づいて制限することもできます。デフォルトでは、ローカルマシンへの接続のみが許可されています。SSL で認証と接続の暗号化も可能です。
Okta 用のプロファイルを作成
以下の手順に従って、Database Painter ツールを使用して API Server の OData API 用のデータベースプロファイルを作成します。Database Painter では、データをグラフィカルに操作したり、SQL クエリを実行したりできます。
- Tools -> Database Painter をクリックします。
- OData ノードを右クリックし、New Profile をクリックします。
- Database Profile Setup ダイアログで、以下を入力します:
- Profile Name:プロファイルのわかりやすい名前を入力します。
- URI:API Server の OData エンドポイントへの URL を入力します。この URL は以下のような形式になります:
http://MyServer:8080/api.rsc
- Supply User Id and Password:HTTP Basic 認証を使用する場合は、このオプションをクリックします。なお、API Server は Windows 認証もサポートしています。
- User Id:API Server のユーザー名を入力します。
- Password:API Server のユーザーの Authtoken を入力します。
- テーブルを表示・変更するには、テーブルを右クリックして Edit Data -> Grid をクリックします。
PowerBuilder コントロールで Okta のデータ を使用
標準的な PowerBuilder オブジェクトを使用して OData フィードに接続し、クエリを実行できます。以下の例は、Okta のデータ を DataWindow に取得する方法を示しています。
open メソッドに以下のコードを追加できます:
SQLCA.DBMS = "ODT" SQLCA.DBParm = "ConnectString='URI=http://MyServer:8080/api.rsc;UID=MyAPIUser;PWD=MyAuthtoken'"; CONNECT USING SQLCA; dw_users.SetTransObject(SQLCA); dw_users.Retrieve();