Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Sign in With Apple" provider #318

Merged
merged 26 commits into from
Sep 20, 2019

Commits on Sep 8, 2019

  1. Basic Apple provider

    Add a very basic Sign In with Apple provider based on currently available information.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    cffa395 View commit details
    Browse the repository at this point in the history
  2. Implement Apple provider

    Fully implement the provider for Sign In with Apple based on current available functionality.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    5c3d7cd View commit details
    Browse the repository at this point in the history
  3. Enable Sign In with Apple

    Enable Sign In with Apple in the MVC sample app without hard-coding secrets.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    f78fa43 View commit details
    Browse the repository at this point in the history
  4. Update tests

    Update the tests for the updated provider implementation.
    Fix incorrect test method name.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    7ba0afb View commit details
    Browse the repository at this point in the history
  5. Enable token lifetime validation

    Enable the validation of token lifetimes.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    7a24782 View commit details
    Browse the repository at this point in the history
  6. Add null annotations

    Add [NotNull] attributes to relevant methods.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    c0fc31c View commit details
    Browse the repository at this point in the history
  7. Improve exception handling

    Pre-validate the ID token has a value.
    Change catch clause to improve logging.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    cd8ed33 View commit details
    Browse the repository at this point in the history
  8. Extend integration tests

    Extend the integration tests for additional scenarios such as no validation, invalid tokens and using a configured client secret.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    9bc3817 View commit details
    Browse the repository at this point in the history
  9. Move expiry period to options

    Move the configured lifetime for generated client secrets to the options class.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    404730e View commit details
    Browse the repository at this point in the history
  10. Add ClientSecretExpiresAfter validation

    Add validation for the value of ClientSecretExpiresAfter.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    8b11fe7 View commit details
    Browse the repository at this point in the history
  11. Add tests for options validation

    Add unit tests for options validation.
    Improve exception type.
    Fix incorrect if condition that meant not all values were validated correctly.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    c7b2f74 View commit details
    Browse the repository at this point in the history
  12. Add unit tests for client secret

    Add unit tests for the generated client secret's format.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    05a8102 View commit details
    Browse the repository at this point in the history
  13. Make KeyId required

    Make the KeyId option required if GenerateClientSecret is true.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    9948d08 View commit details
    Browse the repository at this point in the history
  14. Fix test

    Fix the expiry not being set.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    5e72f38 View commit details
    Browse the repository at this point in the history
  15. Fix Linux and macOS secret generation

    Work around platform differences between Windows and Linux/macOS by supporting .p12/.pfx certificates for Linux/macOS and using p8 for Windows.
    .NET Core 3.0 adds support for .p8 on both platforms.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    2d4794a View commit details
    Browse the repository at this point in the history
  16. Add password option for pfx files

    Add an option for specifying a password for PFX files.
    Add a test private key that has a password for use on macOS.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    13012dd View commit details
    Browse the repository at this point in the history
  17. Fix flaky test

    Fix flaky test by setting the expiry to 2 seconds to eliminate rounding issues.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    b9f329a View commit details
    Browse the repository at this point in the history
  18. Add UsePrivateKey() method

    Add UsePrivateKey() extension method that configures a private key file to use to auto-generate client secrets.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    210fbf9 View commit details
    Browse the repository at this point in the history
  19. Bump System.IdentityModel.Tokens.Jwt

    Bump System.IdentityModel.Tokens.Jwt to 5.3.0 to ensure that incompatibility with .NET Standard 1.4 doesn't affect consumers.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    94f1737 View commit details
    Browse the repository at this point in the history
  20. Set response_mode to form_post

    React to changes Apple have made to the sign-in service, and use form_post as the response mode.
    This requires reimplementing HandleRemoteAuthenticateAsync() by using either for Form or Query based on whether it is an HTTP POST.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    67dc9a3 View commit details
    Browse the repository at this point in the history
  21. Use latest C# version

    Fix the build by enabling the latest version of C#.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    eae3d43 View commit details
    Browse the repository at this point in the history
  22. Retrieve user details after sign-in

    Get the user's name and email address, if available, as claims after signing in with an Apple ID. These details are only available the first time the user signs in; if they are not persisted they cannot currently be obtained again.
    martincostello committed Sep 8, 2019
    Configuration menu
    Copy the full SHA
    4a93eb6 View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2019

  1. Update branding

    Use "Sign in with Apple" instead of "Sign In with Apple".
    martincostello committed Sep 15, 2019
    Configuration menu
    Copy the full SHA
    74f607a View commit details
    Browse the repository at this point in the history
  2. Access events via options

    Use the same approach as the other OAuth handlers and access the Events property via the Options property.
    martincostello committed Sep 15, 2019
    Configuration menu
    Copy the full SHA
    dbbf2db View commit details
    Browse the repository at this point in the history
  3. Resolve logging TODO

    Remove TODO comment.
    Check whether Trace logging is enabled before logging the Apple token response.
    martincostello committed Sep 15, 2019
    Configuration menu
    Copy the full SHA
    785a01a View commit details
    Browse the repository at this point in the history

Commits on Sep 20, 2019

  1. Comment out Apple option

    Comment out the Apple provider as it causes the application to fail to start if the values aren't set and/or the key file does not exist.
    martincostello committed Sep 20, 2019
    Configuration menu
    Copy the full SHA
    eb5ccfd View commit details
    Browse the repository at this point in the history