ゼファーネットのロゴ

IBM Cloud のトークンとログイン・セッション – IBM ブログ

日付:


並木通り

IBM Cloud の認証と認可は、業界標準プロトコル OAuth 2.0 に依存します。 OAuth 2.0 について詳しくは、こちらをご覧ください。 RFC 6749—OAuth 2.0 認証フレームワーク。 OAuth 2.0 を採用しているほとんどの企業と同様に、IBM も、IBM Cloud とその顧客の要件を満たすために OAuth 2.0 の機能の一部を拡張しました。

アクセストークンとリフレッシュトークン

RFC 6749 で規定されているように、アプリケーションは、認証された ID とそのアクセス許可を表すアクセス トークンを取得します。 さらに、IBM Cloud では、アクセス・トークンは選択された現在のアカウントも表します。 アプリケーションが IBM Cloud サービスを呼び出すと、このアクセス・トークンは API 呼び出しの一部として HTTP 許可ヘッダーとして送信され、呼び出し元に関する情報が提供されます。 ターゲットの IBM Cloud Service は、アクセス・トークン内のコンテンツに基づいて許可の決定を行います。

図 1: API キーは IAM アクセス トークンに交換され、サービスの呼び出しに使用されます。

特定のユースケースでは、アプリケーションは IAM からリフレッシュ トークンを取得することもできます。 こうすることで、アプリケーションは、前のアクセス トークンの有効期限が切れたときに、新しいアクセス トークンを取得できます。 これは、例えば IBM Cloud Console または IBM Cloud CLI にとって重要です。そうしないと、アクセス・トークンの有効期限が切れた後 (つまり、少なくとも 60 分後、またはそれより前) にエンド・ユーザーが再度ログインする必要があるからです。 リフレッシュ トークンは安全な場所に保存する必要がありますが、それでも最終的にはタイムアウトになってしまいます。 

IBM Cloud の顧客アプリケーションには、IBM Cloud サービスを呼び出すためのアクセス・トークンを作成する XNUMX つの方法があります。

1. API キーを使用してアクセス トークンを取得します (詳細については、こちらをご覧ください):

図 2: IAM API キーをアクセス トークンに交換します。

2. IBM Cloud が管理するコンピューティング・プラットフォームで実行する場合は、アクセス・トークンを取得します。 その方法については、次のブログを参照してください。

図 3: コンピューティング リソース トークンをアクセス トークンに交換します。

どちらの場合でも、アプリケーションは、IBM Cloud が管理するコンピューティング プラットフォームから API キーまたはコンピューティング リソース トークンにアクセスできます。 したがって、アプリケーションがリフレッシュ トークンを保存および使用するメリットはありません。 アプリケーションが新しいアクセス トークンを必要とする場合、API キーまたはコンピューティング リソース トークンを再度使用できます。 したがって、IBM Cloud IAM は、それらのユースケースに対してリフレッシュ・トークンを生成しません。

トークンの形式

IBM Cloud は拡張できるように設計されています。 したがって、IBM Cloud のアクセス・トークンは JSON Web トークン形式を使用します (RFC 7519 も参照)。 JSON Web トークンの標準形式は次のとおりです。

図 4: 標準的な JSON Web トークンの形式。

IBM Cloud アクセス・トークンの署名は、非対称アルゴリズム RS256 を使用して作成されます。 これは、IBM Cloud IAM のみがそれらのアクセス・トークンに署名できるが、どの IBM Cloud サービス (さらにはサード・パーティーのアプリケーションも) も署名鍵の公開部分を使用してトークン署名の有効性を検証できることを意味します。 IBM Cloud IAM が現在有効な署名鍵の公開部分を発表 こちら.

図 5: キー エンドポイントの出力例。

IBM Cloud Services およびその他のアプリケーションは、これらの鍵をダウンロードして XNUMX 時間キャッシュする必要があります。 これらの公開署名キーを使用して、それらのトークンの署名を検証できるようになります。 このようにして、IBM Cloud サービスと API は、関連する待ち時間なしでこれらのトークンを検証できます。 各アクセス トークンの有効性を確認するために IAM を呼び出す必要はありません。 IBM Cloud サービスおよび API ごとに検証負荷がスケールアップされるため、この方法は非常にうまく拡張できます。 結果として、これらのアクセス トークンを取り消すことはできません。取り消すには、各アダプターが IAM でアクセス トークンを確認する必要があります。 このような IAM の呼び出しは、上で説明したすべての利点を破壊することになります。

リフレッシュ トークンは、文書化された形式に従っていません。 IBM Cloud IAM のみがそれらを作成して理解できます。 リフレッシュ トークンの新しいアクセス トークンを取得するには、リフレッシュ トークンを IAM に送信する必要があります。 次に、IAM はリフレッシュ トークンとその関連エンティティを検証し、さまざまな検証が成功した場合はアクセス トークンを作成します。 これは、たとえば、関連ユーザーが IBMid から削除された場合、または関連するサービス ID がもう存在しない場合、リフレッシュ トークンは新しいアクセス トークンの作成に失敗することを意味します。

ログインセッション

ログイン セッションは、エンド ユーザーがログインするときに作成されます。 IBMクラウドコンソール または IBM Cloud コマンドライン・インターフェース (CLI) クライアント。 ユーザーはログインセッションを表示および管理できます インターフェースを使用して。 ユーザーは、このユーザー インターフェイスを使用して個々のログイン セッションを終了したり、自分自身のログイン セッションの概要を取得したりできます。 このようにして、ユーザーはログイン セッションを確認して取り消すことができます。

図 6: ログイン セッションの概要。

次のいずれかのイベントが発生すると、ログイン セッションは終了します。

  • ログイン セッションの有効期限が切れます (デフォルトでは 24 時間)
  • ログイン セッションが、事前定義された時間 (デフォルトでは XNUMX 時間) アクティブに使用されませんでした。
  • ユーザーがログイン セッションから手動でログアウトするか、ログイン セッションを取り消します。
  • 開かれたログインセッションが多すぎます (デフォルトでは制限なし)
図 7: ログイン セッションは 24 時間後に期限切れになります。
図 8: XNUMX 時間アクティビティが確認されないと、ログイン セッションが非アクティブになります。
図 9: ユーザーがログアウトまたは取り消しボタンを押すと、ログイン セッションが取り消されます。

ログインセッション設定の構成

IBM Cloud アカウントの IAM 管理者は、ログイン セッションの特定のパラメーターを構成できます。

  • アクティブセッション: 24 つのログイン セッションの最大存続期間。 この有効期間を過ぎると、ログイン セッションは期限切れとしてマークされます。 ログイン認証情報を再度入力すると、新しいログイン セッションを開始できます。 デフォルトは 720 時間です。 IAM 管理者は、この期間を最大 15 時間まで延長したり、この期間を 7 分まで短縮したりできます。 上の図 24 は、デフォルトの有効期間である XNUMX 時間を超えた場合のシナリオを示しています。
  • 非アクティブのためサインアウトします: ログイン セッションは、アプリケーションと IAM の対話に基づいてアクティブとしてマークされます。 たとえば、リフレッシュ トークンを使用すると、非アクティブ タイマーがリセットされます。 非アクティブを検出する値は、IAM 管理者が少なくとも 15 分、最大で 24 時間に設定できます。 デフォルトでは 8 時間が使用されます。 上の図 XNUMX はこのシナリオを示しており、非アクティブ状態が XNUMX 時間続いた後にログイン セッションを終了します。
  • 同時セッション: デフォルトでは、無制限の数のログイン セッションを作成できます。 ログイン セッションの最大数を制限する理由がある場合があります (たとえば、特定のユーザーに対して並行して実行されるスクリプトの数を制限するため)。 このシナリオでは、同時セッションの制限を設定できます。 新しいログイン セッションが同時セッションの制限を拡張した場合、最も古い実行セッションが取り消されます。 セッションの状態は、図 9 で説明されているように手動で取り消された場合と同じになります。

[トークンの有効期限] セクションのアクセス トークンとリフレッシュ トークンの構成設定は、ログイン セッション用に作成されたトークンとは関係ありません。 これらの設定は、接続されたログイン セッションなしで存在するトークンの動作を制御します。 詳細については、このブログで後ほど説明します。

ログインセッションとトークン

前に説明したように、IBM Cloud コンソールと IBM Cloud CLI は内部でアクセス・トークンとリフレッシュ・トークンを操作して、IBM Cloud サービスと IBM Cloud API を呼び出せるようにします。 IBM Cloud は、OAuth 2.0 モデルのセキュリティーとログイン・セッションのセッション管理機能を組み合わせます。

ログイン時に、呼び出し側アプリケーション (IBM Cloud コンソールなど) は IAM からアクセス・トークンとリフレッシュ・トークンを取得します。 IAM はバックグラウンドでログイン セッションを開始し、アクセス トークンとリフレッシュ トークンをログイン セッションに接続します。 アクセス トークンは取り消すことができないため、アクセス トークンの有効期間は 20 分以下に制限されます。

アクセス トークンの有効期限が切れるたびに、呼び出し側アプリケーションはリフレッシュ トークンを使用して新しいアクセス トークンを取得する必要があります。 セッションには、ログイン時に開始され、アクティビティ (リフレッシュ トークン操作など) が検出されるたびにリセットされる非アクティビティ タイマーがあります。 セッションがアクティブに取り消されるか、セッション全体の有効期限が満了するか、セッションが非アクティブであることを検出すると、セッションは終了します。 セッションが終了すると、すべてのリフレッシュ トークンが機能しなくなります。

図 10: ログイン セッション、アクセス トークン、リフレッシュ トークンの関係。

ログインセッションなしのトークン

ログイン セッションの作成と維持は、大量の計算を必要とする操作です。 したがって、IBM Cloud は、すべての対話に対してログイン・セッションを作成することはできません。 特にサービス呼び出しの場合、多くの場合、ログイン セッションや、セッションを取り消したり、トークンを更新したりする機能は必要ありません (適切な有効期間が選択されている場合)。

リフレッシュトークンを使用しないアクセストークン

このブログの冒頭で説明したように、API キーを使用してアクセス トークンを作成する場合、またはコンピューティング プラットフォームに基づいてアクセス トークンを取得する場合は、リフレッシュ トークンを使用する必要はありません。 API キーを使用するか、コンピューティング プラットフォームが提供するコンピューティング リソース トークンに基づいて、いつでも新しいアクセス トークンを作成できます。 したがって、IBM Cloud IAM は、これらのシナリオではリフレッシュ・トークンを生成しません。 また、バックグラウンドでログイン セッションを作成することはありません。

ログインセッションなしでトークンにアクセスして更新する

サービス ID を表す API キーを使用して IBM Cloud CLI にログインする場合、この対話ではログイン・セッションは作成されません。 ただし、CLI はアクセス トークンの有効期限が切れるまでにかかる時間よりも長く実行されることが予想されるため、CLI には更新トークンが必要になります。 IBM Cloud IAM は、ログイン・セッションに接続されていないアクセス・トークンとリフレッシュ・トークンを作成します。

これらのトークンは通常、CLI 内でのみ使用されることが想定されているため、悪用に対して適切に保護されている環境でのみ使用されます。

トークンの有効期限の構成

IAM 設定を使用すると、関連するログイン セッションがないアクセス トークンとリフレッシュ トークンの有効期間を構成できます。

  • アクセストークン: このアカウント内で作成されたアクセス トークンの有効期間は、ログイン セッションから独立しています。 デフォルト値は 60 分です。 これは、API キーのアクセス・トークンを作成する場合、デフォルトで、IBM Cloud Services によって次の 60 分間有効として扱われるアクセス・トークンを取得することを意味します。 アクセス トークンの有効期間を制限する場合は、より小さい値を選択できます。 必要なすべての IBM Cloud サービスを引き続き実行できる値を選択することを検討してください。 COS バケット内のデータ エンジンを使用した検索など、長時間実行される一部の操作は動作しなくなる可能性があります。
  • リフレッシュトークン: デフォルトでは、リフレッシュ トークンは最大 72 時間有効です。 これは、サービス ID の API キーを使用して IBM Cloud CLI にログインした場合、この IBM Cloud CLI は必要に応じていつでもアクセス・トークンをリフレッシュできるため、今後 72 時間動作し続けることができることを意味します。 アカウントにそのような要件がない場合は、リフレッシュ トークンの有効期間をより低い値に下げることができます。 これにより、リフレッシュ トークンを使用して続行する長時間実行サービスの最大実行時間が制限されることを考慮してください。 繰り返しますが、この構成は、ログイン セッションから独立して作成されたリフレッシュ トークンにのみ適用されます。

まとめ

IBM Cloud IAM は、アクセス・トークンを使用して、クライアントが IBM Cloud サービスを呼び出せるようにします。 API 対話の場合、IBM Cloud IAM はリフレッシュ・トークンを生成する必要をできる限り回避します。 このルールの XNUMX つの例外は、IBM Cloud CLI 操作でのサービス ID の使用です。 アクセス・トークンの有効期間を超えて IBM Cloud との長時間にわたる対話を可能にするために、IBM Cloud IAM は、エンド・ユーザーがセッションの有効期限と取り消しを制御できるログイン・セッションを提供します。

IAM 設定を確認して、ニーズに合致しているかどうかを確認してください。

図 11: ログイン セッションとトークンに関連する IAM 設定。

このセクションのアクセス トークンとリフレッシュ トークンの XNUMX つの有効期限設定に注意してください。 トークンの有効期限 IBM Cloud CLI 内の API 対話およびサービス ID セッションにのみ関連します。 IBM Cloud Console または同様のアプリケーションでの通常のユーザー セッションでは、 ログインセッション。 アクセス トークンとリフレッシュ トークンの有効期限は、次のセッション構成パラメータによって間接的に影響されます。 ログインセッション.

詳細については、次のリソースをご覧ください。


クラウドの詳細




ハイブリッド クラウドの例、アプリケーション、使用例

7 分読みますデジタル主導のビジネスの動的な環境に歩調を合わせるために、組織はハイブリッド クラウドを採用し続けています。ハイブリッド クラウドは、パブリック クラウド、プライベート クラウド、オンプレミス インフラストラクチャを組み合わせて統合し、2022 つすべてにわたってオーケストレーション、管理、アプリケーションのポータビリティを提供します。 IBM の委託を受けて独立系調査会社が実施した 77 年の調査「IBM Transformation Index: State of Cloud」によると、ビジネスおよび IT プロフェッショナルの XNUMX% 以上がハイブリッド クラウド アプローチを採用していると回答しています。 アジャイルで柔軟な…




IBM Cloud Functions から IBM Code Engine に移行する方法

5 分読みますIBM Cloud Functions から移行する場合、IBM Cloud Code Engine は可能なデプロイメント・ターゲットの 2021 つです。 コード エンジンは、選択できる (または必要な) アプリ、ジョブ、および (最近の機能) を提供します。 この投稿では、コード エンジン関数の操作方法に関するいくつかの論点を提供し、ヒントとコツを共有します。 IBM Cloud Code Engine は、コンテナ化されたワークロードを実行するだけでなく、フルマネージドのサーバーレス プラットフォームです。 XNUMX 年 XNUMX 月から大きく進化しました。




センサー、信号、相乗効果: IBM との Downer のデータ探索の強化

3 分読みます都市交通の分野では、精度が極めて重要です。 オーストラリアとニュージーランドの総合サービスの大手プロバイダーである Downer は、精緻な輸送マトリックスの守護者であると自負しており、業務効率の向上を継続的に追求しています。 200 を超える列車と多数のセンサーを備えたダウナーは、膨大な量のデータを蓄積しました。 Downer は自社のデータから実用的な洞察を定期的に明らかにしていますが、IBM® Client Engineering とのパートナーシップは、この膨大なデータセットのさらなる可能性を探ることを目的としていました。




IBM Cloud と Satellite 全体にわたるハイブリッド・クラウド・バンキング・アプリケーションの安全かつ準拠したデプロイメントのベスト・プラクティス

10 分読みます金融サービスの顧客は、アプリケーションを最新化することをますます求めています。 これには、アジャイル技術と DevSecOps を使用した、コード開発とメンテナンスの最新化 (不足しているスキルを支援し、エンド ユーザーが必要とする革新と新しいテクノロジを可能にする)、展開と運用の改善が含まれます。 モダナイゼーションの一環として、クライアントはアプリケーションの「目的に最適な」導入場所を柔軟に決定できることを望んでいます。 これは、ハイブリッドが機能するいずれかの環境に存在する可能性があります。

IBM ニュースレター

最新の思想的リーダーシップと新たなトレンドに関する洞察を提供するニュースレターとトピックの最新情報を入手してください。

今すぐ会員登録します。

その他のニュースレター

スポット画像

最新のインテリジェンス

スポット画像