開発シーケンス図
一般的な OSS ベースのアプリ開発には、次の 4 つの要素があります。
- OSS: アップロード、ダウンロード、アップロードコールバックなどの機能を提供します。
- 開発者のモバイルクライアント (クライアントとも呼ばれるモバイルアプリケーションや Web アプリケーション): 開発者が提供するサービスを使用して OSS にアクセスします。
- アプリケーションサーバー: クライアントと対話します。 このサーバーは開発者のサービスに使用されます。
- Alibaba Cloud STS: 一時的な認証情報を発行します。
ベストプラクティス
サービス開発プロセス
- 一時的な認証情報を使用したデータのアップロード
以下は、一時的な認証情報を使用したデータのアップロードプロセスを示しています。
プロセスの説明は次のとおりです。
- クライアントからアプリケーションサーバに対して、OSS へのデータアップロードリクエストが送信されます。
- アプリケーションサーバから STS にリクエストが送信されます。
- 一時的な認証情報 (STS AccessKey とトークン) が、 STS からアプリケーションサーバーに返されます。
- クライアントで認証情報 (STS AccessKey とトークン) を取得すると、モバイルクライアント SDK を呼び出して、データを OSS にアップロードします。
- クライアントでデータが OSS に正常にアップロードされます。 コールバックが設定されていなければ、プロセスは完了です。 コールバックが設定されている場合、OSS で関連するインタフェースが呼び出されます。
注記:
- クライアントからアップロードを試行するたびに、アプリケーションサーバーに承認をリクエストする必要はありません。 認証が取得されるたびに、クライアントではSTS から返された一時的な認証情報は、期限切れになるまでキャッシュに保存されます。
- STS はアップロード向けのきめ細かいアクセス制御機能が備わっているため、オブジェクトレベルでクライアントのアクセス許可を制限できます。 これにより、異なるクライアントによって OSS にアップロードされたオブジェクトが完全に分離されるため、アプリケーションのセキュリティが大幅に向上します。
詳細は、「認証済みの第三者によるアップロード (Authorized third-party upload)」をご参照ください。
- 署名付き URL またはフォーム認証を使用したデータアップロード
下図は、署名付き URL またはフォーム認証によるデータアップロードのプロセスを示しています。
プロセスの説明は次のとおりです。
- クライアントからアプリケーションサーバに対して、OSS へのデータアップロードリクエストが送信されます。
- 認証情報 (署名付き URL またはフォーム) がアプリケーションサーバーからクライアントに返されます。
- クライアント側で承認 (署名付き URL またはフォーム) を取得するると、モバイルクライアント SDK を呼び出してデータをアップロードするか、フォームアップロードを使用してデータを OSS に直接アップロードします。
- クライアントでデータが OSS に正常にアップロードされます。 コールバックが設定されていなければ、プロセスは完了です。 コールバックが設定されている場合、OSS で関連するインタフェースが呼び出されます。
詳細は、「認証済みの第三者によるアップロード (Authorized third-party upload)」をご参照ください。
- 一時的な認証情報を使用したデータのダウンロード
一時的な認証情報によるデータダウンロードのプロセスは、一時的な認証情報によるデータダウンロードのプロセスと似ています。
- クライアントからアプリケーションサーバに対して、OSS へのデータダウンロードリクエストが送信されます。
- アプリケーションサーバーから STS にリクエストが送信され、一時的な認証情報 (STS AccessKey とトークン) が取得されます。
- 一時的な認証情報 (STS AccessKey とトークン) が、アプリケーションサーバーからクライアントに返されます。
- クライアントで認証情報 (STS AccessKey とトークン) を取得すると、モバイルクライアント SDK を呼び出して、データを OSS からダウンロードします。
- クライアントでデータが OSS に正常にダウンロードされます。
注記:
- ダウンロードでは、一時的な認証情報のキャッシュがクライアントに保存されるため、アクセス速度が向上します。
- STS はダウンロード向けのきめ細かいアクセス制御機能を備えています。 アップロードとダウンロードに対するアクセス制御機能は、各モバイルクライアントの OSS ストレージスペースを分離するのに役立ちます。
- 署名付き URL を使用したデータのダウンロード
署名付き URL 認証によるダウンロードプロセスは、署名付き URL 認証によるアップロードプロセスと似ています。
- クライアントからアプリケーションサーバに対して、OSS へのデータのダウンロードリクエストが送信されます。
- 署名付き URL が、アプリケーションサーバーからクライアントに返されます。
- クライアント側で認証(署名付き URL)を取得すると、モバイルクライアント SDK を呼び出して OSS からデータをダウンロードします。
- クライアントでデータが OSS に正常にダウンロードされます。
説明 クライアント側で開発者の AccessKey を保存することはできません。 アプリケーションサーバーによって署名された URL、または STS で発行された一時的な認証情報 STS とトークンの AccessKey) のみを取得できます。
ベストプラクティス
参照情報
- Android SDK:オブジェクトのアップロード (Upload objects)
- iOS SDK:オブジェクトのアップロード (Upload objects)