カスタムOAuth アプリの作成
カスタムAzureAD アプリケーションには、AzureAD とAzure サービスプリンシパルを使用するAzureAD の2種類があります。いずれもOAuth ベースです。
カスタムアプリケーションを作成するタイミング
CData はOAuth アプリケーション認証情報を製品に組み込んでおり、デスクトップアプリケーションまたはヘッドレスマシンから接続する際に使用できます。以下の場合はユーザー自身のAzureAD アプリケーションクレデンシャルを選択できます。
- 認証ダイアログのブランディングをコントロールしたいとき
- ユーザー認証後にアプリケーションがユーザーをリダイレクトするためのリダイレクトURI をコントロールしたいとき
- ユーザーからのリクエストに対する許可をカスタマイズしたいとき
カスタムAzureAD アプリケーション
カスタムAzureAD アプリケーションを使用して、サービスアカウントまたはユーザーアカウントで認証できます。カスタムAzureAD アプリケーションはいつでも作成できますが、デスクトップおよびヘッドレス接続は埋め込みOAuth をサポートしており、認証プロセスを簡略化できることに留意してください。埋め込みOAuth アプリケーションを使用するには「接続の確立」を参照してください。カスタムAzureAD アプリの作成
下記の手順に従って、アプリケーションのAzureAD 値OAuthClientId およびOAuthClientSecret を取得します。
- https://portal.azure.com にログインします。
- 左側のナビゲーションペインですべてのサービスを選択します。アプリの登録を検索して選択します。
- 新規登録をクリックします。
- アプリケーション名を入力し、目的のテナント設定を選択します。 Azure Active Directory でカスタムAzureAD アプリケーションを作成する場合、アプリケーションをシングルテナントまたはマルチテナントに定義できます。デフォルトのオプション[この組織ディレクトリ内のアカウントのみ]を選択する場合は、CData ODBC Driver for SAS Xpt への接続を確立するときにAzureTenant 接続プロパティをAzure AD テナントのId に設定する必要があります。それ以外の場合は、認証に失敗しエラーが発生します。アプリケーションが個人使用のみの場合は、[この組織ディレクトリ内のアカウントのみ]で十分です。アプリケーションを配布する場合は、マルチテナントオプションのいずれか1つを選択してください。
- リダイレクトURL を本製品 のデフォルトhttp://localhost:33333 に設定します。あるいは、任意の別のポートを指定して、CallbackURL を定義した正確なリプライURL に設定します。
- 登録をクリックして新しいアプリケーションを登録します。アプリケーション管理画面が自動的に開きます。OAuthClientId としてApplication (client) ID の値、AzureTenant としてDirectory (tenant) ID の値をメモします。
- [証明書とシークレット]セクションに移動して、アプリケーションの認証タイプを定義します。認証には、クライアントシークレットを使用する方法と、証明書を使用する方法の2種類があります。推奨されている認証方法は証明書を使用する方法です。
- オプション1:証明書をアップロードする:[証明書とシークレット]で証明書のアップロードを選択し、ローカルマシンからアップロードする証明書を選択します。
- オプション2:新しいアプリケーションシークレットを作成する:[証明書とシークレット]で新しいクライアントシークレットを選択し、有効期限を指定します。クライアントシークレットを保存すると、キーの値が表示されます。 表示は一度のみなのでこの値をコピーします。 これは、OAuthClientSecret として必要になります。
- API のアクセス許可 -> アクセス許可の追加をクリックします。ユーザーコンテキストなしでアプリを接続する予定の場合は、アプリケーションの許可(OAuthGrantType = CLIENT)を選択します。それ以外の場合は、委任されたアクセス許可を使用します。
- 変更を保存します。
- 管理者の同意が必要なアクセス許可([アプリケーションの許可]など)を使用することを選択した場合は、API のアクセス許可ページで現在のテナントから付与することができます。それ以外の場合は、 管理者の同意の手順に従ってください。
Azure サービスプリンシパルカスタムアプリケーション
Azure サービスプリンシパルを使用して認証する場合は、カスタムAzureAD アプリケーションと必要なリソースにアクセスできるサービスプリンシパル両方の作成が必要です。次の手順に従って、カスタムAzureAD アプリケーションを作成し、Azure サービスプリンシパル認証用の接続プロパティを取得します。
Azure サービスプリンシパルでカスタムAzureAD アプリを作成
下記の手順に従って、アプリケーションのAzureAD 値を取得します。
- https://portal.azure.com にログインします。
- 左側のナビゲーションペインですべてのサービスを選択します。アプリの登録を検索して選択します。
- 新規登録をクリックします。
- アプリ名を入力し、[任意のAzure AD ディレクトリ - マルチテナント]を選択します。そして、リダイレクトURL を本製品 のデフォルトhttp://localhost:33333 に設定します。
- アプリ作成後に、[概要]セクションに表示されているアプリケーション(クライアント)Id の値をコピーします。この値はOAuthClientId として使用されます。
- [証明書とシークレット]セクションに移動して、アプリの認証タイプを定義します。認証には、クライアントシークレットを使用する方法と、証明書を使用する方法の2種類があります。推奨されている認証方法は証明書による方法です。
- オプション1 - 証明書をアップロードする:[証明書とシークレット]で証明書のアップロードを選択し、ローカルマシンからアップロードする証明書を選択します。
- オプション2 - 新しいアプリケーションシークレットを作成する:[証明書とシークレット]で新しいクライアントシークレットを選択し、有効期限を指定します。クライアントシークレットを保存すると、キーの値が表示されます。 表示は一度のみなのでこの値をコピーします。これは、OAuthClientSecret として使用します。
- 認証タブで、必ずアクセストークン(暗黙的なフローに使用)を選択してください。