認証/認可
mimi では安全にAPIやサービスを利用して頂くにあたり、OAuth2に準拠した形で認証、認可を行います。クライアントは、クレデンシャルの認証を経てリソースに対して適切な権限が付与された(即ち認可された)アクセストークンと交換します。そうして得たアクセストークンで mimi の各種サービスやAPIが利用可能となります。
mimi Auth(認証/認可)APIでは、スコープという変数によって、アクセストークンで利用できるリソースと操作の範囲を制御します。mimi で利用可能なスコープについては、こちらを参照してください。
mimi のデベロッパーは、mimi API で作成するアプリケーションやクライアントに対して、使用するスコープを設定します。アクセストークン発行時に認可を要求するスコープは、そこで設定されているものでなければなりません。アクセストークンには生存期間があり、期限を過ぎると無効になります。権限の種類によっては、リフレッシュによりアクセストークンの生存期間の延長を行うことができます。
権限の種類について
アクセストークンは権限に基づき発行されます。アクセストークン発行APIをリクエストする際に、以下の権限を指定します。それぞれの権限の詳細についても以降で詳しく説明します。
1. デベロッパー権限
デベロッパー権限は、独自定義の認可フロー(grant_type=https://auth.mimi.fd.ai/grant_type/developer_credentials )によって、全てのスコープに対する全権限が付与されます。共有秘密鍵であるアプリケーションシークレットによって、デベロッパー権限のサブセットであるアプリケーション権限を、セキュアな外部認証サーバーに移譲することができます。
アクセストークン発行時、デベロッパーはOpenID Connect 規格準拠の認証プロバイダ(OP)により認証されます。現在、Google OpenID Connectをサポートしています。認証通過後アクセストークンを発行することで、以降の API アクセスの権限を得ることができます。
2. アプリケーション権限
アプリケーション内に閉じた root 権限です。アプリケーションを跨ぐ操作は許容されません。独自定義の認可フロー ( grant_type=https://auth.mimi.fd.ai/grant_type/application_credentials )を用います。アプリケーション権限では、アプリケーションIDとアプリケーションシークレットをクレデンシャルとして mimi の認証プロバイダが認証し、アクセストークンを発行します。
3. クライアント権限
各クライアントに閉じた権限です。クライアントからの直接リクエストの場合は独自定義の認可フロー( grant_type=https://auth.mimi.fd.ai/grant_type/client_credentials ) を、
外部認証サーバーからの転送リクエストの場合は独自定義の認可フロー( grant_type=https://auth.mimi.fd.ai/grant_type/application_client_credentials ) を用います。
クライアントからの直接リクエストの場合
アプリケーションID:クライアントID、クライアントシークレットをクレデンシャルとしてクライアントを mimi の認証プロバイダが認証し、アクセストークンを発行します。
Updated about 1 year ago