Morph

ロール付与によるアクセスコントロール (RBAC) - ローンチウィーク #3

ローンチウィーク
2025-02-06
三橋 啓多
Co-founder, COO

MorphのRBACの概要

Morphが提供するAIアプリのためのインフラストラクチャの一つに、ユーザー認証と、ロールベースのアクセス制限があります。招待したチームメンバーには、チームレベルの権限と、プロジェクトレベルの権限を付与できます。

以下のデモでは、ダッシュボードで設定したロールに応じて、Pythonでの処理を切り替えています。

チームレベルのロール

チームレベルのロールによって、それぞれのユーザーがプロジェクトに対してどのような操作ができるかを設定します。チームレベルの権限は事前に定義されたものから選ぶことができます。

  • Admin … チームのリソースに対する全ての権限を持ちます。他メンバーのプロジェクトへのアクセスも編集できます。
  • Developer … プロジェクトの作成・編集とプロジェクトのデプロイができます。
  • Contributor … 招待されたプロジェクトのデプロイができます
  • Viewer … 招待されたプロジェクトの閲覧ができます。

プロジェクトレベルのロール

チームレベルのロールとは別に、プロジェクトレベルのロールを設定することができます。プロジェクトレベルのロールは自由な文字列で設定できます。

この文字列は、Python関数の中で、次のように使用することができます。

@morph.func
def sql_agent(
    context: MorphGlobalContext,
) -> Generator[MorphChatStreamChunk, None, None]:
    # context.user_info comes from user's authentication info.
    if "marketing_manager" not in context.user_info["roles"]:
        yield stream_chat("You are not authorized to use this feature. / please login as marketing_manager.")
        return
    # use LLM to generate the response

このように、ダッシュボードで設定したロールを使いこなすことで、細かな権限管理を実現することができます。Pythonで詳しくロジックを構築すれば、従来のデータツールやBIではできなかったような複雑な条件の権限管理が実現可能です。

また、これがビルトインのユーザー認証を用いて実現されているので、わざわざ社内向けアプリのために、複雑なユーザー認証フローをアプリケーション側で開発しなくても良いのが、Morphの強みです!


関連記事