認証/認可

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 アクセスの権限を得ることができます。

565

2. アプリケーション権限

アプリケーション内に閉じた root 権限です。アプリケーションを跨ぐ操作は許容されません。独自定義の認可フロー ( grant_type=https://auth.mimi.fd.ai/grant_type/application_credentials )を用います。アプリケーション権限では、アプリケーションIDとアプリケーションシークレットをクレデンシャルとして mimi の認証プロバイダが認証し、アクセストークンを発行します。

525

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 の認証プロバイダが認証し、アクセストークンを発行します。

525

What’s Next

各権限で利用可能なスコープや、スコープの一覧は、以下をご参照ください。