サービス資格情報を使用したクライアント・アプリケーションの認証

クライアント・アプリケーションは基本認証を使用してクラウド環境にアクセスできます。 このタイプの認証では、クライアント・アプリケーションはサービス資格情報を使用してアクセスを認証します。

始めに:
  • クライアント・アプリケーションは、 Business Automation Workflow API などの機能によって提供されるクラウド操作 API および API で認証を行うために、サービス資格情報 (機能 ID とパスワード) を必要とします。 アカウント管理者が、クライアント・アプリケーションに必要なサービス資格情報の提供を担当します。
  • 会社のパスワード更新ポリシーによって、アカウント管理者がサービス・アカウントのパスワードを変更する頻度が決まります。 新しいサービス資格情報が導入された後もアプリケーションがクラウド環境に引き続きアクセスできるようにするために、古い資格情報と新しい資格情報の両方が一定期間有効になるように、資格情報ロールオーバー・スキームを適用することを検討してください。 このようなスキームでは、クライアントの実行時間が、このオーバーラップ期間の長さに影響します。 例えば、クライアントがクラウド環境からサービス資格情報を定期的に読み取る場合、各読み取り間の時間をオーバーラップ期間よりも短くする必要があります。 反対に、クライアントがサーバー始動時にのみ資格情報を読み取る場合、オーバーラップ期間をクライアント実行時間よりも長くする必要があります。 アカウント管理者と協力して、クライアント・アプリケーションに適したオーバーラップ期間の値を決定してください。
サービス資格証明の詳細については 、「サービスアカウントの作成と管理 」を参照してください。
クライアント・アプリケーションを認証するための以下の優れた事例を検討してください。
サービス資格情報の読み取り
サービス資格情報をアプリケーションにハードコーディングしないでください。 代わりに、例えば、構成ファイルや資格情報ボールトからそれらの資格情報を読み取り、それらの資格情報を使用して、API 呼び出しの基本認証の許可ヘッダーを作成します。
重要: クライアントアプリケーション IBM® Cloud Pak for Business Automation as a Service とやり取りを行う場合、一連のクッキーを受け取る可能性があります。 応答時間の低下を回避するには、基本認証の許可ヘッダーに加えて、後続の呼び出しに有効な Cookie を組み込んでください。
欠落したログイン資格情報または無効なログイン資格情報が原因で拒否されたクラウド・サブスクリプションへのアクセスを検出
機能 ID、パスワード、またはこの両方が無効の場合、クラウド・サブスクリプションへのクライアント・アプリケーションのアクセスは拒否されます。 また、誤ったパスワードを使用してアプリケーションがサブスクリプションに繰り返しログインしようとすると、 システムによりそのアカウントがロックされる場合があります。
拒否されたアクセスを検出するには、 IBM Cloud Pak for Business Automation as a Service がログインページにリダイレクトするために発行するステータスコード 302( HTTP )をアプリケーションでチェックするように追加し、エラーメッセージを送信します。 アカウントがロックされていると考えられる場合、ロックアウト時間が経過するまで待ち、クラウド・サブスクリプションに対するクライアント・アプリケーションのアクセスを再試行してください。 機能 ID、パスワード、またはその両方が誤っているためにアクセスが拒否されると考えられる場合、使用しているサービス資格情報が有効かどうかアカウント管理者に確認します。
重要: アプリケーションHTTPを使用している場合は、ライブラリがページのリダイレクトを自動的に追跡するよう設定されていないことを確認してください。
呼び出しの権限が欠落していることが原因で拒否された API 要求の検出
クライアントアプリケーションには、クラウド操作のAPIコールと IBM Cloud Pak for Business Automation as a Serviceの両方を組み込むことができます。 各 API タイプには、以下のように専用の権限が必要です。
クラウド操作 API 呼び出し
クライアントが使用するサービス・アカウントには、アプリケーションが実行されるクラウド環境に対する権限が付与されている必要があります。 サービス・アカウントには、アカウント管理者ロールまたはオペレーター・ロールも必要な場合があります。 サービス・アカウントにどのような権限があるかアカウント管理者に確認してください。
IBM Cloud Pak for Business Automation as a Service APIコール
サービス・アカウントには、機能固有のグループ権限が必要な場合があります。 APIリクエスト IBM Cloud Pak for Business Automation as a Serviceが必要な場合は、アカウント管理者に、サービスアカウントに必要なロールが割り当てられていることを確認してください。 E.g. タスク割り当ての権限など、より詳細な ワークフロー権限については、どの権限が必要かワークフロー管理者に確認し、アプリケーションで対応する API 呼び出しを使用してください。 これらのコールに関する詳細は 、「実行時REST APIコールの認証制御 」を参照してください。
両方のタイプの要求で、HTTP 状況コード 401 無許可に関するチェックをクライアント・コードに追加します。
複数のサブスクリプション間でのサービス資格情報の共有
IBM Cloud Pak for Business Automation as a Serviceのサブスクリプションを複数お持ちの場合、クライアント・アプリケーションはサブスクリプション間でサービス認証情報を共有できます。 サービス資格情報を共有するには、 Credentials API によって提供されるサービス資格情報およびインポート・トークンの操作を使用します。 すべての API 呼び出しでは、呼び出し元にアカウント管理者ロールが必要です。 詳細については、 IBM Cloud Pak for Business Automation as a Service インスタンスサービスAPIについては 、クラウド運用APIリファレンスを参照してください。
  1. サブスクリプションの1つで、クラウド・ポータルの アクセス管理 ページまたは Credentials API のいずれかを使用して、サービス資格情報のセットを作成します。
  2. 同じサブスクリプションで、API を使用してサービス資格情報インポート・トークンを作成して、他のサブスクリプションへのサービス資格情報のインポートを許可します。
  3. 他のサブスクリプションで、API を使用して各サブスクリプションに資格情報をインポートすることによって、これらのサブスクリプションでクライアント・アプリケーションからサービス資格情報が使用できるようにします。
  4. 他のサブスクリプションで、「アクセス管理」ページを使用して、サービス資格情報で必要なロールと権限をクライアント・アプリケーションのシナリオに割り当てます。
サービス資格情報のセットがサブスクリプションにアクセスする必要がなくなった場合は、 アクセス管理 ページまたは Credentials API のいずれかを使用して、サブスクリプションからそれらを削除できます。