{ "info": { "author": "Andrey Kislyuk", "author_email": "kislyuk@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Fusillade\n=========\n\nFusillade (Federated User Identity Login & Access Decision Engine) is a\nservice and library for managing user authentication and authorization\nin federated services. Fusillade is built to be simple and to leverage\nwell-known auth protocols and standards toegther with existing global,\nscalable and supported IaaS APIs.\n\n- The AuthN functionality in Fusillade consists of a login endpoint\n that delegates user authentication to any configured `OpenID\n Connect `__ compatible identity\n providers.\n- The AuthZ part of Fusillade is an\n `ABAC `__\n system leveraging the familiar syntax and reliable infrastructure of\n `AWS IAM `__.\n\nTogether, these two subsystems provide an easy API for your application\nto answer the following questions:\n\n- How do I instruct the user to log in?\n- Who is the user performing this API request?\n- Is this user authorized to perform action A on resource R?\n- How do I delegate to the user an appropriately restricted ability to\n access cloud (IaaS) resources directly through IaaS (GCE, AWS) APIs?\n\nTo do this, your application should define an access control model\nconsisting of the following:\n\n- A list of trusted OIDC-compatible identity providers\n- A naming schema for actions (for example, ``GetWidget``,\n ``CreateFolder``, ``DeleteAppointment``, ``UpdateDocument``)\n- A naming schema for resources in the following format:\n ``arn:org-name:service-name:*:*:path/to/resource``\n- A default policy assigned to new users, for example:\n ``json { \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": [ \"dss:*\", ], \"Resource\": \"arn:hca:dss:*:*:subscriptions/FIXME/*\" } ] }``\n\nInstalling and configuring Fusillade\n------------------------------------\n\nUsing Fusillade as a service\n----------------------------\n\nUsing Fusillade as a library\n----------------------------\n\nUsing Fusillade as a proxy\n--------------------------\n\nBundling native cloud credentials\n---------------------------------\n\nAWS\n~~~\n\nGCP\n~~~\n\nService access control\n----------------------\n\nTo use Fusillade, your service must itself be authenticated and\nauthorized. The access control model for this depends on how you're\nusing Fusillade.\n\nLibrary - Cooperative model\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nWhen using Fusillade as a library, your application's AWS IAM role is\nalso your Fusillade access role. The library uses AWS Cloud Directory\nand AWS IAM using your application's IAM credentials. (TODO: add links\nfor ACD/IAM IAM and show sample policy)\n\nService - Enforced model\n~~~~~~~~~~~~~~~~~~~~~~~~\n\nWhen using Fusillade as a service, your application is itself subject to\nan IAM policy governing its ability to read and write permissions data.\nThe Fusillade service administrator configures the Fusillade policy\ngoverning this in the service configuration.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/humancellatlas/fusillade", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "fusillade", "package_url": "https://pypi.org/project/fusillade/", "platform": "MacOS X", "project_url": "https://pypi.org/project/fusillade/", "project_urls": { "Homepage": "https://github.com/humancellatlas/fusillade" }, "release_url": "https://pypi.org/project/fusillade/0.0.1/", "requires_dist": null, "requires_python": "", "summary": "Federated User Identity Login & Access Decision Engine", "version": "0.0.1" }, "last_serial": 4289857, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "eb74f00af51450a4586d201de0d98446", "sha256": "868ea60640b85c02ed60e86d1ad650c309dea12aa48678a9607e8a60681911b0" }, "downloads": -1, "filename": "fusillade-0.0.1.tar.gz", "has_sig": true, "md5_digest": "eb74f00af51450a4586d201de0d98446", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2916, "upload_time": "2018-01-11T19:15:15", "url": "https://files.pythonhosted.org/packages/66/02/a83d11a8b2b4aaa48d9e728db7bed2fa5a7dece668da7862bc8a2e00a166/fusillade-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "eb74f00af51450a4586d201de0d98446", "sha256": "868ea60640b85c02ed60e86d1ad650c309dea12aa48678a9607e8a60681911b0" }, "downloads": -1, "filename": "fusillade-0.0.1.tar.gz", "has_sig": true, "md5_digest": "eb74f00af51450a4586d201de0d98446", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2916, "upload_time": "2018-01-11T19:15:15", "url": "https://files.pythonhosted.org/packages/66/02/a83d11a8b2b4aaa48d9e728db7bed2fa5a7dece668da7862bc8a2e00a166/fusillade-0.0.1.tar.gz" } ] }