API 認証のユースケースを理解します。ビジネス要件に基づいて、API 認証を有効化し、認証ルールを構成し、オーソライザーインターフェイスを定義し、API に認証ルールを適用します。
機能
API 認証機能を使用すると、企業は MGS で共通の API アクセス認証ルールを定義できます。
認証 API A を作成し、ゲートウェイ管理で構成してから、サービス API B 構成に関連付けます。
クライアントがバックエンドサービス API B へのリクエストを開始すると、MGS は API 認証構成に従ってリクエストヘッダーまたは Cookie から認証パラメーターを抽出し、コンテキストに配置してから、サービス API B に関連付けられた認証 API A を呼び出します。認証 API A サーバーは、コンテキスト内のパラメーターに基づいてサービス権限検証を実行する必要があります。
検証が有効な場合、MGS は検証結果プリンシパルをリクエストヘッダーに追加し、バックエンドサービス API B に渡します。キャッシュが必要な場合は、MGS は検証結果プリンシパルをキャッシュして、認証のパフォーマンスを向上させます。

ユースケース
シナリオ 1
顧客が分散セッションを持っている場合、ログイン後にセッション ID が生成されます。認証プロセスは次のとおりです。
ユーザー A がインターフェイスへのログインをリクエストします。ログインに成功すると、ユーザー A はセッション ID とセッション情報を生成し、それらを分散キャッシュ
sessionId: {username:A, age:18, ...}に保存し、sessionId をクライアントに配信します。ユーザー A は、ログイン認証が必要なインターフェイスをリクエストします。ゲートウェイはリクエストヘッダーから sessionId を取得し、認証システムに送信します。認証システムは sessionId に基づいて分散キャッシュからユーザー情報を取得し、
{username:A, age:18,...}をゲートウェイに返します。ゲートウェイはログインが成功したと判断し、
{username:A, age:18,...}をヘッダーに追加し、リクエストをバックエンドサービスサーバーに転送します。
シナリオ 2
クライアントは HMAC ベースの認証スキームを使用します。認証プロセスは次のとおりです。
ユーザー A がログインに成功すると、トークンがクライアントに発行され、
token=hmac(username+password)となります。ユーザー A は、ログイン認証が必要なインターフェイスをリクエストします。ゲートウェイはヘッダーからトークンを取得し、認証システムに送信します。認証システムは HMAC に従って HMAC を再度計算します。一致する場合、ユーザー情報を
{username:A, age:18,...}にしてゲートウェイに返します。ゲートウェイはログインが成功したと判断し、
{username:A, age:18,...}をリクエストヘッダーに追加し、リクエストをバックエンドサービスサーバーに転送します。
手順
認証ルールの構成
mPaaS コンソールにログインします。 左側のナビゲーションウィンドウで、バックグラウンド接続 > モバイルゲートウェイサービス を選択します。
ゲートウェイの管理API 承認承認 API を作成する詳細 タブをクリックします。 セクションで、 をクリックするか、既存の認証ルールの [アクション] 列の をクリックします。
承認 API 名: 必須。承認ルールの名前。
承認 API: 必須。この API は、リクエストの承認を確認するために使用されます。
キャッシュ承認結果: 承認の検証結果をキャッシュするかどうかを示します。
キャッシュ TTL: 検証結果のキャッシュ有効期間。
ID ソースソースフィールドを追加: をクリックした場合は、認証に使用されるリクエストパラメーターとリクエスト ID を入力します。これは次のフィールドで構成されます。
場所: パラメーターの場所(
headerまたはcookie)。フィールド: パラメーターの名前。
説明API リクエストの ID ソースフィールドがない場合、認証検証は失敗します。
オーソライザーインターフェイスの定義
バックエンドシステムによって提供される認証インターフェイスが HTTP の場合、認証 API を POST メソッドとして構成する必要があります。
認証関係を追加する前に、業務システムは事前に Auth API を開発する必要があります。API が認証関係を検証する必要がある場合、認証検証のために Auth API が呼び出されます。Auth API の定義 (リクエストとレスポンス) は、次の基準に従います。
AuthRequest
public class AuthRequest {
private Map<String,String> context;
}AuthResponse
public class AuthResponse {
private boolean success;
private Map<String,String> principal;
}インターフェイス例
@PostMapping("/testAuth")
public AuthResponse testAuth(@RequestBody AuthRequest authRequest) {
String sid = authRequest.getContext().get("sid");
Map<String, String> principal = new HashMap<>();
principal.put("uid", sid + "_uid");
AuthResponse authResponse = new AuthResponse();
authResponse.setSuccess(true);
authResponse.setPrincipal(principal);
return authResponse;
}レスポンスの
successフィールドの値がtrueの場合、ゲートウェイはキャッシュポリシーに基づいてprincipal情報をキャッシュし、principal情報をリクエストのheaderに入れて、バックエンド業務システムに透過的に送信します。プリンシパルがない場合は、空のマップを渡す必要があります。認証を検証するためのレスポンスの
successフィールドの値がfalseの場合、ゲートウェイは 2000 エラーコードを返します。クライアントは 2000 として対応する操作を実行する必要があります。たとえば、ログインボックスが表示されます。
認証ルールの使用
承認ルールが構成された後、API 構成ページで [詳細設定] > [API 承認] を選択して、API の承認機能を有効にできます。
API 認証を使用するには、API 承認ゲートウェイの管理 ページで 機能が有効になっていることを確認します。次の手順を実行して、機能を有効にします。
mPaaS コンソールにログインします。左側のナビゲーションウィンドウで、モバイル ゲートウェイ サービス をクリックします。
ゲートウェイの管理API 承認 タブをクリックし、 が有効になっていることを確認します。
この API は、バックエンドシステムをリクエストする前に認証検証を実行します。パスすると、リクエストは受け入れられ、ゲートウェイはリクエストをバックエンドシステムにルーティングします。そうでない場合、リクエストは拒否され、呼び出し元は認証失敗のエラーレスポンスを受け取ります。