Giter VIP home page Giter VIP logo

myusa's Introduction

MyUSA is now deprecated

All development on MyUSA has ceased. However, 18F hasn't stopped working on single sign-on for government. We're now developing Login.gov. If you're interested in the underlying identity provider implementation, see the identity-idp repo.

MyUSA

MyUSA logo

MyUSA (my.usa.gov) is a reusable platform for agencies to rapidly build government services. MyUSA consists of:

  • An easier way for Americans to sign in to and register with federal websites.
  • A way for Americans to manage their interactions with the Federal government.
  • A way for Americans to store the work they have ongoing with various government websites for later use.

MyUSA capabilities can be embedded in websites or accessed through APIs by client organizations. With the MyUSA website, Americans can directly manage their preferences, profile information, and government services.

Use of MyUSA is governed by the MyUSA Terms and Conditions.

Technically, MyUSA consists of:

  • An OAuth 2.0 / OpenID Connect provider
  • An account system that authenticates via email, phone, or external identity providers
  • APIs for reading user profiles
  • APIs for sending notifications or creating tasks for users
  • A web application for managing your interaction with MyUSA, such as updating your profile
  • A website with information about MyUSA

MyUSA is a service of 18F and the Office of Citizen Services and Innovative Technologies at the General Services Administration.

Running MyUSA

Please read the MyUSA Installation and Deployment Guide for information about how to set up your development environment and deploy the MyUSA application server.

More information about how MyUSA works can be found in the MyUSA wiki.

Contributing to MyUSA

Please read the MyUSA Contribution Guide and submit a pull request.

License

The project is in the public domain, and all contributions will also be released in the public domain. By submitting a pull request, you are agreeing to waive all rights to your contribution under the terms of the CC0 Public Domain Dedication.

This project constitutes an original work of the United States Government.

myusa's People

Contributors

adam-at-mobomo avatar adelevie avatar afeld avatar alex avatar bkautter avatar danhoward avatar dlapiduz avatar gbinal avatar jackiekazil avatar jgrevich avatar mikefab avatar monfresh avatar noahkunin avatar polastre avatar ryanrusnak avatar yozlet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

myusa's Issues

User can abort and return to app

User needs a way to get back to the original application even if they decide to abort the process at any stage of the process.

Implement notifications endpoint

This is the final API endpoint that provides API compatibility with the existing MyUSA API. Implement the notifications API endpoint and associated tests.

User needs access to "legal stuff"

User needs access to "legal stuff" from the homepage

This includes

  • Privacy policy
  • Terms of service [#108]
  • What we do with your information (can be part of one of the above)
  • SORN
  • PIA
  • PRA / OMB Control #
  • Linking Policy

Partner app logout

User needs a way for partner apps to log them out, such as in "kiosk mode".

For whatever mechanism MyUSA provides, the developer needs to know in which cases this should be used.

User needs help expectations

User needs to know what help / support / assistance they can expect.

For example, MyUSA may be in alpha and not provide the full range of support options available in production applications.

User can log out / switch account

Users need the ability to say "hey, this is not me!". They need the ability to log out and/or switch to another user account.

This story applies to an already logged in user that is in process at some point in the approval / authentication flow (eg, the first screen that the user sees is to approve the application).

Add external identity relation to user record

For external identity providers.

We need:

  • IdentityProvider table
  • ExternalUserIdentity table joining User to IdentityProvider, and includes a uid and maybe other information? (Do we store the OAuth token?)

Need OpenID Connect Profile Endpoint

OpenID connect specifies the claims that should be provided by OpenID providers.

The current api/profile endpoint provides our own format of each field.

We should either:

  • Update api/profile to match OpenID Connect (note: this may break current clients)
  • Create a new api/profile/openid that provides OpenID Connect formatted profile response (alternatively, provide api/openid or api/profile-openid

Full list of claims:
http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims

Note that we should add fields for:

  • email verified
  • phone verified

Obviously some of the claims do not apply to us at this stage (eg, picture).

Add Authentication APIs

Define, create tests, and implement APIs and an API scope for a front-end server to implement authentication (username/password check, or OAuth login).

Create dev environment on AWS

We need a development/test environment on AWS to test features that we're working on. It should use the provisioning described in #16.

User can access implementation info (eg, API)

On the homepage, the user is able to access the information necessary to connect their application with MyUSA, such as how to implement their application to communicate with MyUSA APIs.

Devise config/initializer should be an example

We need to change the config/initializers/devise.rb to be a ".example" file since it contains keys. For example:

  # The secret key used by Devise. Devise uses this key to generate
  # random tokens. Changing this key will render invalid all existing
  # confirmation, reset password and unlock tokens in the database.
  # config.secret_key = 'f2d9d5c8d1e6f7a0a43a19bb09e9379ea49a5b6757f8c135c11f59b27c3c3de92f8a460903f8e1aa4ddd0cd2899eaef6846832501d518eed3b72752be10be257'

User can contact MyUSA

User has the ability to contact MyUSA program with questions / enchancements

Fields include:

  • Name
  • Email
  • Description / text entry

Integrate Songkick OAuth Provider Gem

Complete the integration of the Songkick version of the OAuth Provider Gem. We previously used our own fork of the Gem. Also, this means bringing over all of the code and setting up the database tables.

Login email tells how to complete authentication

User needs to know how to complete their login through email. The user receives an email and needs to know:

  • How to complete the login process
  • Any important information about the link provided

User can deny an app

User can deny an application.

Yep, basically give the user the option to deny an application in the approval flow.

User can use either email or EIP auth

User has the ability to use either email authentication or EIP authentication after previously signing up with either email or EIP.

Examples:

  • Sign up with Google. Next time the user authenticates, they type in their email address and go through the standard authentication flow (providing missing info as necessary)
  • Sign up using email address. Go through standard auth flow. The next time the user logs in, they log in with Google which uses the same email address. The same MyUSA account is used for the user instead of creating a new user.

User needs feedback on forms

User needs to know what's wrong when filling out a form, how to fix the error, and given a pathway to success.

Implement profile endpoint

Bring over the API server components for the /profile API endpoint, and get the tests to pass (assuming user is already authenticated through some other TBD mechanism, see #5)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.