Alibaba Cloud API Gateway は、クライアントリクエストに対して複数の認証方式を提供しています。これには、Alibaba Cloud App 認証、JWT プラグイン、サードパーティ権限付与などがあります。Alibaba Cloud App 認証では、署名認証と AppCode を使用した簡易認証の 2 つの方式から選択できます。このトピックでは、AppCode を使用した簡易認証の方法について説明します。
注意事項
簡易認証では、複雑な署名プロセスは不要です。ただし、ネットワーク上で AppCode をプレーンテキストで送信するため、セキュリティリスクが生じます。
クライアントと API Gateway 間の通信には HTTPS を使用する必要があります。データ送信に HTTP を使用しないでください。簡易認証では AppCode がプレーンテキストで送信されるため、暗号化されていない HTTP プロトコルを使用すると、ネットワークパケットが傍受された場合に AppCode が漏洩するリスクが高くなります。
概要
-
署名認証の詳細については、「署名認証による API の呼び出し」をご参照ください。
-
AppCode を使用した簡易認証は、API Gateway が発行した
AppCodeを使用してクライアントを認証します。クライアントは、リクエストヘッダーまたはquery parameterとしてAppCodeを含めることで認証を行います。これにより、迅速にAPIを呼び出すことができます。-
AppCode を使用した簡易認証を使用する API を作成します。
-
アプリを作成して
AppCodeを取得します。 -
API を呼び出すための権限をアプリに付与します。
-
API Gateway が発行した
AppCodeを使用して認証を行います。
-
AppCode 認証用の API の作成
-
API Gateway コンソールにログインします。左側のナビゲーションウィンドウで、[API 管理] > [API グループ] を選択します。[API グループ] ページで、右上の [グループの作成] をクリックします。
-
[グループの作成] ページで、[インスタンス] ドロップダウンリストから API Gateway インスタンスを選択し、[グループ名] と [BasePath] を入力して、[OK] をクリックします。
-
左側のナビゲーションウィンドウで、 を選択します。[API] ページで、右上の [API の作成] をクリックします。
-
[API の作成] ページの [基本情報] セクションで、作成した [グループ] を選択します。[API 名] を入力します。[セキュリティ認証] で [Alibaba Cloud App] を選択します。[AppCode 認証] で、[AppCode 認証を有効にする (ヘッダー)] または [AppCode 認証を有効にする (ヘッダーとクエリ)] を選択します。
次の表に、AppCode 認証のオプションを示します。
オプション
説明
Alibaba Cloud Marketplace に公開後に有効化
このオプションはデフォルトで無効になっています。API が Alibaba Cloud Marketplace に公開されている場合、このオプションを有効にすると、リクエストヘッダーでの AppCode 認証が許可されます。
AppCode 認証を無効にする
AppCode 認証は無効になります。API が Alibaba Cloud Marketplace に公開されているかどうかに関わらず、すべての API 呼び出しで署名認証を使用する必要があります。
AppCode 認証を有効にする (ヘッダー)
AppCode 認証が有効になります。API が Alibaba Cloud Marketplace に公開されているかどうかに関わらず、AppCode はリクエストヘッダーでのみ渡すことができます。
AppCode 認証を有効にする (ヘッダーとクエリ)
AppCode 認証が有効になります。API が Alibaba Cloud Marketplace に公開されているかどうかに関わらず、AppCode はリクエストヘッダーまたはクエリパラメーターとして渡すことができます。
-
[署名アルゴリズム] を選択し、[次へ] をクリックします。
-
[API リクエストの定義] ステップで、API リクエストを設定します。詳細については、「API リクエストの定義」をご参照ください。その後、[次へ] をクリックします。
-
[バックエンドサービスの定義] ステップで、バックエンドサービスを設定します。詳細については、「バックエンドサービス情報の定義」をご参照ください。その後、[次へ] をクリックします。
-
[応答の定義] ステップで、応答を設定します。詳細については、「応答の定義」をご参照ください。その後、[保存] をクリックします。
-
API パラメーターを定義する際に、
AppCodeのパラメーターを追加する必要はありません。 -
API を作成した後、デバッグのために環境に公開できます。
アプリの作成
-
API Gateway コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。[アプリ] ページで、右上の [アプリの作成] をクリックします。
-
[アプリの作成] ダイアログボックスで、[アプリ名] を入力し、[OK] をクリックします。
-
新しいアプリごとに
AppCodeが自動的に生成されます。AppCode を確認するには、[アプリ] ページに移動し、アプリ名をクリックして [アプリ詳細] ページを開きます。 -
Alibaba Cloud Marketplace のユーザーが API を購入すると、自動的にアプリが作成されます。
AppCode API を使用するためのアプリへの権限付与
-
API Gateway コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。[API] ページで、作成した API を見つけ、[アクション] 列で
をクリックし、次に [権限付与] をクリックします。 -
権限付与ダイアログボックスで、[環境] を選択し、[権限付与の有効期間] を設定します。[権限を付与するアプリの選択] で、[マイアプリ] セクションを見つけ、[検索] をクリックしてアカウント内のアプリを表示します。目的のアプリを選択し、[追加] をクリックしてから、[OK] をクリックします。
AppCode を使用した認証
AppCode は、request header または query parameter の 2 つの方法で提供できます。
方法1:ヘッダーで AppCode を渡す
-
request headerにAuthorizationパラメーターを追加します。 -
Authorizationフィールドの値は、APPCODEで始まり、その後にスペースと AppCode 値が続く必要があります。フォーマット:Authorization:APPCODE例:
Authorization:APPCODE 3F2504E04F8911D39A0C0305E82C3301重要バックエンドサービスが HTTP 関数である場合、
Authorizationヘッダーはバックエンドサービスに渡されません。HTTP 関数のAuthorizationパラメーターがそれを上書きします。そのため、AppCode はクエリパラメーターとして渡すことを推奨します。
方法2:クエリパラメーターとして AppCode を渡す
-
リクエストの
queryにAppCodeパラメーターを追加します。パラメーター名は大文字と小文字を区別しません。appcode、appCode、APPCODE、またはAPPCodeを使用できます。 -
AppCodeパラメーターの値は、ご利用のAppCodeの値です。
例:
http://<your_domain_name>?AppCode=3F2504E04F8911D39A0C0305E82C3301</your_domain_name>