PropelAuth Python のリリース

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-20 08:34:10912ブラウズ

PropelAuth Python velease

本日、基本 Python ライブラリの新しいバージョンと、FastAPI、Flask、および Django Rest Framework のフレームワーク固有のライブラリのリリースをリリースできることを嬉しく思います。

大きな変更点をいくつか見てみましょう!

入力サポートの改善 (重大な変更)

これまでに Python ライブラリを使用したことがある場合は、タイプ ヒントにはまだ不十分な点がたくさんあると思います。最新のリリースでは、すべてのリクエストのタイプヒントとすべてのレスポンスのデータタイプが追加されました。

PropelAuth Python velease

PropelAuth Python velease

注: これは、応答で以前に (** 演算子を使用して) 解凍していた場合に特に問題が発生します。応答は以前は辞書でしたが、現在は明示的なデータ型です。

キー検索などの一般的に使用される関数を実装しました (response["user_id"] は引き続き機能しますが、現在は response.user_id が優先されます)。私たちは通常、重大な変更を避けるように努めていますが (これは 3 年間で 2 回目です)、これはかなり狭い問題のように感じました。

ユーザークラスの改善

アクセス許可のチェックを簡単にするために、次のような User オブジェクトで関数を直接呼び出すことができるようになりました。

  • user.has_permission_in_org(orgId, 'can_export_reports')
  • user.is_role(orgId, 'Admin')
  • user.get_active_org().has_permission('api_key::write')

これらにより、Auth オブジェクトを参照する代わりに User オブジェクトを渡すことができ、モック/テストも簡単になります。

新しい API

これは私たちの Python ライブラリに固有のものではありませんが、次のような多くの新しい API をリリースしました。

  • すべてのユーザー セッションを強制的にログアウトします
  • 顧客用の SAML セットアップ リンクを作成します (これにより、顧客は SAML を自分で管理できるようになります)
  • 保留中の招待の取得と取り消し
  • 既存の設定からの移行に役立つ、legacy_org_id のサポート

完全なリストについては、こちらのリファレンス ドキュメントをご覧ください。

例 - 料金プランによる簡単な機能ゲーティング

PropelAuth では、幸運なことに、多くの B2B SaaS 企業の成長を最前列で見てきました。認証プロバイダーは、企業の歴史の重要な瞬間 (最初の立ち上げ、最初の顧客のオンボーディング、最初の企業顧客のクロージングなど) で最も重要になります。あなたの成長に合わせて私たちができる最も重要なことは、邪魔をしないことです。

だからこそ、私たちはこの FastAPI ルートに本当に満足しています:

@app.post("/api/expensive-action")
async def do_expensive_action(user: User = Depends(auth.require_user)):
    org = user.get_active_org()

    if org == None or \
       not org.user_has_permission("can_do_expensive_action"):
        raise HTTPException(status_code=403, detail="Forbidden")

    return do_expensive_action_inner(user, org)

一見すると、これは非常に単純なルートのように見えますが、いくつかの重要な部分があります:

  • 依存関係が挿入されたユーザーは、パスワード、SSO、SAML など、あらゆる種類の認証されたユーザーで動作します。
  • ロールマッピングを使用すると、無料プランの組織の管理者は高価な機能を実行できませんが、有料プランの組織の管理者はできるようにすることができます。 > コストのかかるアクションを実行します。
  • 支払いプロバイダーからの Webhook を処理し、次のようにロール マッピングを設定することで、これをプログラムで強制できます。
@app.post("/api/expensive-action")
async def do_expensive_action(user: User = Depends(auth.require_user)):
    org = user.get_active_org()

    if org == None or \
       not org.user_has_permission("can_do_expensive_action"):
        raise HTTPException(status_code=403, detail="Forbidden")

    return do_expensive_action_inner(user, org)

  • SAML 接続 URL をプログラムで生成することで、SAML や SCIM などの高度な機能へのセルフサービス アクセスを提供することもできます。これにより、各 ID プロバイダー (Okta、Azure AD など) に固有の手順を使用してユーザーがこれらの機能をセットアップできるようになります。 、ADFS など)。

そして一番いいところは?上記と同じコード スニペットは引き続き機能します。顧客の要件が複雑になっても、コードは複雑になりません。

質問がありますか?フィードバック?

私たちは、皆様からのフィードバックに基づいてライブラリとサービスの改善に常に努めています。このリリースに関するご質問や将来の改善に関するご提案がございましたら、お気軽にお問い合わせください。

以上がPropelAuth Python のリリースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。