{"id":13409116,"url":"https://github.com/stcarrez/ada-security","last_synced_at":"2025-03-04T21:28:58.866Z","repository":{"id":25949784,"uuid":"29391381","full_name":"stcarrez/ada-security","owner":"stcarrez","description":"Ada Security - OAuth 2.0 client and server framework to secure web applications","archived":false,"fork":false,"pushed_at":"2024-09-08T08:26:16.000Z","size":1047,"stargazers_count":22,"open_issues_count":1,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-09-08T17:10:26.799Z","etag":null,"topics":["ada","authentication","jwt","oauth","oauth2","openid","permissions"],"latest_commit_sha":null,"homepage":"","language":"Ada","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stcarrez.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/Security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-01-17T13:05:59.000Z","updated_at":"2024-09-08T08:26:19.000Z","dependencies_parsed_at":"2024-10-26T04:53:09.798Z","dependency_job_id":"5dc70388-8f53-4ff1-be5a-96406de63b36","html_url":"https://github.com/stcarrez/ada-security","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stcarrez%2Fada-security","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stcarrez%2Fada-security/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stcarrez%2Fada-security/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stcarrez%2Fada-security/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stcarrez","download_url":"https://codeload.github.com/stcarrez/ada-security/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241924436,"owners_count":20043216,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ada","authentication","jwt","oauth","oauth2","openid","permissions"],"created_at":"2024-07-30T20:00:58.115Z","updated_at":"2025-03-04T21:28:58.833Z","avatar_url":"https://github.com/stcarrez.png","language":"Ada","funding_links":[],"categories":["Frameworks"],"sub_categories":["Web"],"readme":"# Ada Security Library\n\n[![Alire](https://img.shields.io/endpoint?url=https://alire.ada.dev/badges/security.json)](https://alire.ada.dev/crates/security)\n[![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-security/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-security/summary)\n[![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-security/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-securit/xunits)\n[![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-security/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-security/summary)\n[![Documentation Status](https://readthedocs.org/projects/ada-security/badge/?version=latest)](https://ada-security.readthedocs.io/en/latest/?badge=latest)\n[![Download](https://img.shields.io/badge/download-1.5.0-brightgreen.svg)](http://download.vacs.fr/ada-security/ada-security-1.5.0.tar.gz)\n[![License](https://img.shields.io/badge/license-APACHE2-blue.svg)](LICENSE)\n[![GitLab](https://img.shields.io/badge/repo-GitLab-6C488A.svg)](https://gitlab.com/stcarrez/ada-security)\n[![Commits](https://img.shields.io/github/commits-since/stcarrez/ada-security/1.5.0.svg)](Commits)\n\nAda Security provides a security framework which allows applications to define\nand enforce security policies. This framework allows users to authenticate by using\n[OpenID Authentication 2.0](https://openid.net/specs/openid-authentication-2_0.html)\nas well as [OAuth 2.0](https://oauth.net/2/) protocol.\nIt allows a web application to integrate easily with Yahoo!, Gitlab, Github, Facebook and\nGoogle+ authentication systems.\nThe Ada05 library includes:\n\n* An OpenID client authentication,\n* An OAuth 2.0 client authentication,\n* An OpenID Connect authentication framework,\n* An OAuth 2.0 server authentication framework,\n* A policy based security framework to protect the resources\n\n![Ada Security Overview](https://github.com/stcarrez/ada-security/wiki/images/AdaSecurity.jpg)\n\nThe Ada Security library is used by the\n[Ada Web Application](https://gitlab.com/stcarrez/ada-awa)\nand the [OpenAPI Ada library](https://github.com/stcarrez/swagger-ada)\nto provide authentication and access control to users within the web applications.\n\n## Version 1.5.1  - Aug 2024\n  - Cleanup build environment to drop configure\n\n[List all versions](https://gitlab.com/stcarrez/ada-security/blob/master/NEWS.md)\n\n## Using with Alire\n\nIf you are using [Alire](https://alire.ada.dev/) in your project, run the following command\nwithin your [Alire](https://alire.ada.dev/) project to use the library:\n\n```\nalr with security\n```\n\n## Using without Alire\n\nIf you don't have [Alire](https://alire.ada.dev/) or want to build and install the library\non a specific place, run a `setup` command to configure the build as well as installation\ndirectory.\nFor a detailed description on how you can configure, build and install the library\nrefer to the [Installation](https://ada-security.readthedocs.io/en/latest/Installation/) guide.\nOtherwise, you can easily configure and build the library with the steps described below.\n\nThe `HAVE_ALIRE` configuration allows you to disable the build with [Alire](https://alire.ada.dev/):\n\n```\nmake setup BUILD=debug PREFIX=/build/install HAVE_ALIRE=no\n```\n\nSince this build method does not verify that all dependencies are met, make sure that you\nhave already built and install the following components and they are available to `gprbuild`\nthrough `ADA_PROJECT_PATH` if needed:\n\n* [Ada Utility Library](https://gitlab.com/stcarrez/ada-util/)\n\nThen build, run the unit tests and install by using:\n\n```\nmake\nmake test\nmake install\n```\n\nTo use the installed libraries, make sure your `ADA_PROJECT_PATH` contains the directory\nwhere you installed the libraries (configured by the `PREFIX=\u003cpath\u003e` option in the setup phase).\nThe installed GNAT projects are the same as those used when using [Alire](https://alire.ada.dev/).\n\n\n## Running the tests\n\nThe unit tests are built and executed with:\n\n```\nmake test\n```\n\n## Samples\n\nThe package provides a simple AWS server that illustrates the OpenID and OpenConnect\nauthentication.  Because OAuth2 relies exclusively on HTTPS, you must use an AWS\nserver that has the SSL support.  Build it as follows:\n\n```\ncd samples\nalr build\n```\n\nBefore launching the demo server, you must update the 'samples.properties' file\nand change the lines that contain PUT-HERE-YOUR-FACEBOOK-xxx with your client ID\nand client secrets.  This change\nis required by the OAuth and OpenID Connect framework only.\nThen, run the server:\n```\n   bin/auth_demo\n```\nand redirect your browser to:\n```\n   http://localhost:8080/atlas/login.html\n```\n# Documentation\n\nThe Ada Security sources as well as a wiki documentation is provided on:\n\n- [Ada Security Programmer's Guide](https://ada-security.readthedocs.io/en/latest/)\n- [Overview](https://gitlab.com/stcarrez/ada-security/wiki)\n- [Security Overview](https://gitlab.com/stcarrez/ada-security/wiki/Security)\n\n\n# Other Documentation\n\nThe OAuth literature is quite complete on the Internet and there are several good tutorials and\ndocumentation.\n- [Facebook Login](https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow)\n- [Using OAuth 2.0 to Access Google APIs](https://developers.google.com/identity/protocols/OAuth2)\n- [Yahoo OAuth 2.0 Guide](https://developer.yahoo.com/oauth2/guide/)\n- [Salesforce OAuth 2.0 Guide](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_understanding_authentication.htm)\n(this is a good guide if you want to learn)\n\n# References\n\n- [RFC 6749: The OAuth 2.0 Authorization Framework](https://tools.ietf.org/html/rfc6749)\n- [RFC 6750: The OAuth 2.0 Authorization Framework: Bearer Token Usage](https://tools.ietf.org/html/rfc6750)\n- [RFC 6819: OAuth 2.0 Threat Model and Security Considerations](https://tools.ietf.org/html/rfc6819)\n- [OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-core-1_0.html)\n\n# Sites Using Ada Security\n\n* [Java 2 Ada](https://blog.vacs.fr/)\n* [Ada France](https://www.ada-france.org/adafr/index.html)\n* [Atlas](https://demo.vacs.fr/atlas/index.html)\n* [Jason Project Manager](https://vdo.vacs.fr/vdo/index.html)\n* [Porion Build Manager](https://porion.vacs.fr/porion/index.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstcarrez%2Fada-security","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstcarrez%2Fada-security","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstcarrez%2Fada-security/lists"}