MobileFirst Server を使用した外部リソースの認証

improve this page | report issue

概説

保護リソースは、MobileFirst Server 上で実行することも (例えば、アダプターなど)、外部サーバー上で実行することもできます。 Mobile Foundation に付属の検証モジュールを使用して、外部サーバー上のリソースを保護できます。

このチュートリアルでは、MobileFirst アクセス・トークンを検証するフィルターを実装することにより、外部リソース・サーバーを保護する方法を学習します。
そのような保護を実装する際は、すべてをカスタム・コードにすることも、フローの一部をカプセル化した Mobile Foundation ヘルパー・ライブラリーのいずれかを使用することもできます。

前提条件:

フロー

外部リソースの保護のダイアグラム

MobileFirst Server には、イントロスペクション・エンドポイントというコンポーネントがあります。このコンポーネントで、MobileFirst アクセス・トークンに含まれるデータを検証したり、それらのデータを抽出したりできます。 このイントロスペクション・エンドポイントは REST API 経由で使用できます。

  1. アプリケーションが Mobile Foundation クライアント SDK を使用して、保護リソースに対するリソース要求呼び出し (または HTTP 要求) を行います。要求には、Authorization ヘッダー (クライアント・アクセス・トークン) が付いている場合もあれば、ない場合もあります。
  2. イントロスペクション・エンドポイントと通信するために、リソース・サーバー上のフィルターは、それ自身のために別のトークンを取得する必要があります (機密クライアントのセクションを参照してください)。
  3. リソース・サーバー上のフィルターは、ステップ 1 のクライアント・アクセス・トークンを抽出し、それを検証のためにイントロスペクション・エンドポイントに送信します。
  4. MobileFirst 許可サーバーがトークンを無効 (またはトークンが存在しない) と判断した場合、クライアントは、必要なスコープ用の新しいトークンを取得するためにリソース・サーバーによってリダイレクトされます。 MobileFirst クライアント SDK が使用される場合、この部分は内部で行われます。

機密クライアント

イントロスペクション・エンドポイントはスコープ authorization.introspect によって保護されている内部リソースであるため、リソース・サーバーは、そこにデータを送信するために別のトークンを取得する必要があります。 許可ヘッダーを付けずにイントロスペクション・エンドポイントへの要求を試行すると、401 応答が返されます。

外部リソース・サーバーが authorization.introspect スコープ用のトークンを要求できるようにするには、MobileFirst Operations Console からそのサーバーを機密クライアントとして登録する必要があります。

機密クライアントのチュートリアルで詳細を参照してください。

MobileFirst Operations Console で、「設定」→「機密クライアント」の下に新規エントリーを追加します。 「クライアント秘密鍵」「API 秘密鍵」値を選択します。 「許可されるスコープ」に、必ず authorization.introspect を設定してください。

機密クライアントの構成

実装

このフローは、さまざまな REST API に直接 HTTP 要求を行うことにより、手動で実装できます (資料を参照してください)。
Mobile Foundation は、提供されるトラスト・アソシエーション・インターセプターを使用するか、または提供される Java トークン・バリデーターを使用するその他の任意の Java ベース・フィルターを使用して、WebSphere サーバー上でこれを実現するのを支援するためのライブラリーも提供しています。

Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on February 28, 2020