├── .github ├── CODEOWNERS ├── zizmor.yml ├── release.yml ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md ├── ISSUE_TEMPLATE │ └── feature_request.md └── SECURITY.md ├── samples └── Mvc.Client │ ├── Views │ ├── _ViewStart.cshtml │ ├── Home │ │ └── Index.cshtml │ └── Authentication │ │ └── SignIn.cshtml │ ├── wwwroot │ └── favicon.ico │ ├── web.config │ ├── Controllers │ └── HomeController.cs │ ├── appsettings.json │ ├── Program.cs │ └── Properties │ └── launchSettings.json ├── eng ├── key.snk ├── common │ ├── BuildConfiguration │ │ └── build-configuration.json │ ├── dotnet-install.cmd │ ├── build.cmd │ ├── sdl │ │ ├── packages.config │ │ └── NuGet.config │ ├── CIBuild.cmd │ ├── init-tools-native.cmd │ ├── dotnet.cmd │ ├── dotnet.ps1 │ ├── internal │ │ ├── NuGet.config │ │ └── Directory.Build.props │ ├── cross │ │ ├── x86 │ │ │ └── tizen │ │ │ │ └── tizen.patch │ │ ├── armel │ │ │ └── tizen │ │ │ │ └── tizen.patch │ │ ├── arm │ │ │ └── tizen │ │ │ │ └── tizen.patch │ │ ├── arm64 │ │ │ └── tizen │ │ │ │ └── tizen.patch │ │ └── riscv64 │ │ │ └── tizen │ │ │ └── tizen.patch │ ├── PSScriptAnalyzerSettings.psd1 │ ├── cibuild.sh │ ├── enable-cross-org-publishing.ps1 │ ├── msbuild.ps1 │ ├── post-build │ │ └── nuget-validation.ps1 │ ├── dotnet-install.ps1 │ └── dotnet.sh ├── Signing.props └── Version.Details.xml ├── test └── AspNet.Security.OAuth.Providers.Tests │ ├── xunit.runner.json │ ├── Apple │ ├── test.pfx │ ├── test.p8 │ └── TestKeys.cs │ ├── Infrastructure │ └── Program.cs │ ├── Notion │ └── bundle.json │ ├── Myob │ └── bundle.json │ ├── HealthGraph │ └── bundle.json │ ├── Buffer │ └── bundle.json │ ├── Onshape │ └── bundle.json │ ├── DeviantArt │ └── bundle.json │ ├── Reddit │ └── bundle.json │ ├── Typeform │ └── bundle.json │ ├── Calendly │ └── bundle.json │ ├── Vimeo │ └── bundle.json │ ├── Webflow │ └── bundle.json │ ├── Ebay │ └── bundle.json │ ├── Xumm │ └── bundle.json │ ├── NetEase │ └── bundle.json │ ├── Asana │ └── bundle.json │ ├── Zoho │ └── bundle.json │ ├── CiscoSpark │ └── bundle.json │ ├── Docusign │ └── bundle.json │ ├── Baidu │ └── bundle.json │ ├── ArcGIS │ └── bundle.json │ ├── Amazon │ └── bundle.json │ ├── MailChimp │ └── bundle.json │ ├── Discord │ └── bundle.json │ ├── Yandex │ └── bundle.json │ ├── VisualStudio │ └── bundle.json │ └── Zendesk │ └── bundle.json ├── package-icon.png ├── .vscode ├── extensions.json ├── launch.json └── tasks.json ├── global.json ├── docs ├── trovo.md ├── digitalocean.md ├── smartsheet.md ├── trakt.md ├── foursquare.md ├── reddit.md ├── xumm.md ├── amocrm.md ├── snapchat.md ├── odnoklassniki.md ├── twitch.md ├── gitcode.md ├── zendesk.md ├── jumpcloud.md ├── gitee.md ├── weibo.md ├── bitbucket.md ├── kroger.md ├── kook.md ├── qq.md ├── vkontakte.md ├── patreon.md ├── linear.md ├── moodle.md ├── amazon.md ├── stackexchange.md ├── webflow.md ├── eveonline.md ├── line.md ├── okta.md ├── salesforce.md ├── battlenet.md ├── workweixin.md ├── github.md └── miro.md ├── src ├── AspNet.Security.OAuth.Keycloak │ ├── KeycloakAuthenticationAccessType.cs │ └── AspNet.Security.OAuth.Keycloak.csproj ├── AspNet.Security.OAuth.Docusign │ ├── DocusignAuthenticationEnvironment.cs │ └── AspNet.Security.OAuth.Docusign.csproj ├── AspNet.Security.OAuth.SuperOffice │ ├── SuperOfficeAuthenticationEnvironment.cs │ └── AspNet.Security.OAuth.SuperOffice.csproj ├── AspNet.Security.OAuth.Line │ ├── AspNet.Security.OAuth.Line.csproj │ └── LineAuthenticationConstants.cs ├── AspNet.Security.OAuth.Zalo │ └── AspNet.Security.OAuth.Zalo.csproj ├── AspNet.Security.OAuth.GitLab │ ├── AspNet.Security.OAuth.GitLab.csproj │ └── GitLabAuthenticationConstants.cs ├── AspNet.Security.OAuth.Gitee │ ├── AspNet.Security.OAuth.Gitee.csproj │ └── GiteeAuthenticationConstants.cs ├── AspNet.Security.OAuth.Miro │ ├── AspNet.Security.OAuth.Miro.csproj │ └── MiroAuthenticationConstants.cs ├── AspNet.Security.OAuth.Okta │ └── AspNet.Security.OAuth.Okta.csproj ├── AspNet.Security.OAuth.QQ │ └── AspNet.Security.OAuth.QQ.csproj ├── AspNet.Security.OAuth.Xumm │ ├── XummAuthenticationConstants.cs │ └── AspNet.Security.OAuth.Xumm.csproj ├── AspNet.Security.OAuth.Zoho │ └── AspNet.Security.OAuth.Zoho.csproj ├── AspNet.Security.OAuth.AdobeIO │ ├── AspNet.Security.OAuth.AdobeIO.csproj │ └── AdobeIOAuthenticationConstants.cs ├── AspNet.Security.OAuth.Baidu │ ├── AspNet.Security.OAuth.Baidu.csproj │ └── BaiduAuthenticationConstants.cs ├── AspNet.Security.OAuth.Deezer │ └── AspNet.Security.OAuth.Deezer.csproj ├── AspNet.Security.OAuth.Ebay │ └── AspNet.Security.OAuth.Ebay.csproj ├── AspNet.Security.OAuth.Feishu │ ├── AspNet.Security.OAuth.Feishu.csproj │ └── FeishuAuthenticationConstants.cs ├── AspNet.Security.OAuth.Huawei │ ├── AspNet.Security.OAuth.Huawei.csproj │ └── HuaweiAuthenticationConstants.cs ├── AspNet.Security.OAuth.Kroger │ └── AspNet.Security.OAuth.Kroger.csproj ├── AspNet.Security.OAuth.Naver │ └── AspNet.Security.OAuth.Naver.csproj ├── AspNet.Security.OAuth.Amazon │ └── AspNet.Security.OAuth.Amazon.csproj ├── AspNet.Security.OAuth.AmoCrm │ └── AspNet.Security.OAuth.AmoCrm.csproj ├── AspNet.Security.OAuth.GitCode │ └── AspNet.Security.OAuth.GitCode.csproj ├── AspNet.Security.OAuth.Imgur │ ├── AspNet.Security.OAuth.Imgur.csproj │ └── ImgurAuthenticationConstants.cs ├── AspNet.Security.OAuth.Linear │ ├── AspNet.Security.OAuth.Linear.csproj │ └── LinearAuthenticationConstants.cs ├── AspNet.Security.OAuth.Moodle │ ├── AspNet.Security.OAuth.Moodle.csproj │ └── MoodleAuthenticationConstants.cs ├── AspNet.Security.OAuth.NetEase │ └── AspNet.Security.OAuth.NetEase.csproj ├── AspNet.Security.OAuth.PingOne │ └── AspNet.Security.OAuth.PingOne.csproj ├── AspNet.Security.OAuth.Reddit │ ├── RedditAuthenticationConstants.cs │ └── AspNet.Security.OAuth.Reddit.csproj ├── AspNet.Security.OAuth.Trakt │ ├── AspNet.Security.OAuth.Trakt.csproj │ └── TraktAuthenticationConstants.cs ├── AspNet.Security.OAuth.VkId │ ├── AspNet.Security.OAuth.VkId.csproj │ └── VkIdAuthenticationConstants.cs ├── AspNet.Security.OAuth.Zendesk │ └── AspNet.Security.OAuth.Zendesk.csproj ├── AspNet.Security.OAuth.Zoom │ └── AspNet.Security.OAuth.Zoom.csproj ├── AspNet.Security.OAuth.Atlassian │ └── AspNet.Security.OAuth.Atlassian.csproj ├── AspNet.Security.OAuth.Bilibili │ ├── AspNet.Security.OAuth.Bilibili.csproj │ └── BilibiliAuthenticationConstants.cs ├── AspNet.Security.OAuth.Coinbase │ └── AspNet.Security.OAuth.Coinbase.csproj ├── AspNet.Security.OAuth.KakaoTalk │ └── AspNet.Security.OAuth.KakaoTalk.csproj ├── AspNet.Security.OAuth.Kook │ └── AspNet.Security.OAuth.Kook.csproj ├── AspNet.Security.OAuth.Lichess │ └── AspNet.Security.OAuth.Lichess.csproj ├── AspNet.Security.OAuth.MailRu │ ├── AspNet.Security.OAuth.MailRu.csproj │ └── MailRuAuthenticationConstants.cs ├── AspNet.Security.OAuth.Notion │ ├── AspNet.Security.OAuth.Notion.csproj │ └── NotionAuthenticationConstants.cs ├── AspNet.Security.OAuth.QuickBooks │ ├── AspNet.Security.OAuth.QuickBooks.csproj │ └── QuickBooksAuthenticationConstants.cs ├── AspNet.Security.OAuth.Twitter │ ├── AspNet.Security.OAuth.Twitter.csproj │ └── TwitterAuthenticationConstants.cs ├── AspNet.Security.OAuth.Untappd │ ├── UntappdAuthenticationConstants.cs │ └── AspNet.Security.OAuth.Untappd.csproj ├── AspNet.Security.OAuth.Webflow │ └── AspNet.Security.OAuth.Webflow.csproj ├── AspNet.Security.OAuth.Weibo │ └── AspNet.Security.OAuth.Weibo.csproj ├── AspNet.Security.OAuth.Airtable │ └── AspNet.Security.OAuth.Airtable.csproj ├── AspNet.Security.OAuth.Alipay │ └── AspNet.Security.OAuth.Alipay.csproj ├── AspNet.Security.OAuth.ArcGIS │ └── AspNet.Security.OAuth.ArcGIS.csproj ├── AspNet.Security.OAuth.Asana │ └── AspNet.Security.OAuth.Asana.csproj ├── AspNet.Security.OAuth.Buffer │ └── AspNet.Security.OAuth.Buffer.csproj ├── AspNet.Security.OAuth.Calendly │ └── AspNet.Security.OAuth.Calendly.csproj ├── AspNet.Security.OAuth.Dropbox │ └── AspNet.Security.OAuth.Dropbox.csproj ├── AspNet.Security.OAuth.Harvest │ └── AspNet.Security.OAuth.Harvest.csproj ├── AspNet.Security.OAuth.HubSpot │ ├── AspNet.Security.OAuth.HubSpot.csproj │ └── HubSpotAuthenticationConstants.cs ├── AspNet.Security.OAuth.JumpCloud │ └── AspNet.Security.OAuth.JumpCloud.csproj ├── AspNet.Security.OAuth.Mixcloud │ └── AspNet.Security.OAuth.Mixcloud.csproj ├── AspNet.Security.OAuth.Patreon │ ├── PatreonAuthenticationConstants.cs │ └── AspNet.Security.OAuth.Patreon.csproj ├── AspNet.Security.OAuth.Paypal │ └── AspNet.Security.OAuth.Paypal.csproj ├── AspNet.Security.OAuth.Slack │ ├── AspNet.Security.OAuth.Slack.csproj │ └── SlackAuthenticationConstants.cs ├── AspNet.Security.OAuth.Snapchat │ ├── AspNet.Security.OAuth.Snapchat.csproj │ └── SnapchatAuthenticationConstants.cs ├── AspNet.Security.OAuth.Spotify │ ├── AspNet.Security.OAuth.Spotify.csproj │ └── SpotifyAuthenticationConstants.cs ├── AspNet.Security.OAuth.Strava │ └── AspNet.Security.OAuth.Strava.csproj ├── AspNet.Security.OAuth.Trovo │ ├── AspNet.Security.OAuth.Trovo.csproj │ └── TrovoAuthenticationConstants.cs ├── AspNet.Security.OAuth.Twitch │ └── AspNet.Security.OAuth.Twitch.csproj ├── AspNet.Security.OAuth.Typeform │ └── AspNet.Security.OAuth.Typeform.csproj ├── AspNet.Security.OAuth.Vimeo │ ├── AspNet.Security.OAuth.Vimeo.csproj │ └── VimeoAuthenticationConstants.cs ├── AspNet.Security.OAuth.Vkontakte │ ├── AspNet.Security.OAuth.Vkontakte.csproj │ └── VkontakteAuthenticationConstants.cs ├── AspNet.Security.OAuth.Weixin │ └── AspNet.Security.OAuth.Weixin.csproj ├── AspNet.Security.OAuth.Yammer │ ├── AspNet.Security.OAuth.Yammer.csproj │ └── YammerAuthenticationConstants.cs ├── AspNet.Security.OAuth.Yandex │ └── AspNet.Security.OAuth.Yandex.csproj ├── AspNet.Security.OAuth.Basecamp │ └── AspNet.Security.OAuth.Basecamp.csproj ├── AspNet.Security.OAuth.Contentful │ └── AspNet.Security.OAuth.Contentful.csproj ├── AspNet.Security.OAuth.Fitbit │ ├── AspNet.Security.OAuth.Fitbit.csproj │ └── FitbitAuthenticationConstants.cs ├── AspNet.Security.OAuth.GitHub │ ├── AspNet.Security.OAuth.GitHub.csproj │ └── GitHubAuthenticationConstants.cs ├── AspNet.Security.OAuth.Pipedrive │ └── AspNet.Security.OAuth.Pipedrive.csproj ├── AspNet.Security.OAuth.Smartsheet │ ├── AspNet.Security.OAuth.Smartsheet.csproj │ └── SmartsheetAuthenticationConstants.cs ├── AspNet.Security.OAuth.Autodesk │ ├── AspNet.Security.OAuth.Autodesk.csproj │ └── AutodeskAuthenticationConstants.cs ├── AspNet.Security.OAuth.BattleNet │ └── AspNet.Security.OAuth.BattleNet.csproj ├── AspNet.Security.OAuth.DigitalOcean │ └── AspNet.Security.OAuth.DigitalOcean.csproj ├── AspNet.Security.OAuth.Discord │ └── AspNet.Security.OAuth.Discord.csproj ├── AspNet.Security.OAuth.EVEOnline │ ├── EVEOnlineAuthenticationConstants.cs │ ├── EVEOnlineAuthenticationServer.cs │ └── AspNet.Security.OAuth.EVEOnline.csproj ├── AspNet.Security.OAuth.Nextcloud │ └── AspNet.Security.OAuth.Nextcloud.csproj ├── AspNet.Security.OAuth.ServiceChannel │ ├── AspNet.Security.OAuth.ServiceChannel.csproj │ └── ServiceChannelAuthenticationConstants.cs ├── AspNet.Security.OAuth.Streamlabs │ └── AspNet.Security.OAuth.Streamlabs.csproj ├── AspNet.Security.OAuth.Yahoo │ ├── AspNet.Security.OAuth.Yahoo.csproj │ └── YahooAuthenticationConstants.cs ├── AspNet.Security.OAuth.Bitbucket │ ├── AspNet.Security.OAuth.Bitbucket.csproj │ └── BitbucketAuthenticationConstants.cs ├── AspNet.Security.OAuth.DeviantArt │ ├── DeviantArtAuthenticationConstants.cs │ └── AspNet.Security.OAuth.DeviantArt.csproj ├── AspNet.Security.OAuth.ExactOnline │ ├── AspNet.Security.OAuth.ExactOnline.csproj │ └── ExactOnlineAuthenticationConstants.cs ├── AspNet.Security.OAuth.Instagram │ └── AspNet.Security.OAuth.Instagram.csproj ├── AspNet.Security.OAuth.MailChimp │ └── AspNet.Security.OAuth.MailChimp.csproj ├── AspNet.Security.OAuth.Onshape │ └── AspNet.Security.OAuth.Onshape.csproj ├── AspNet.Security.OAuth.Shopify │ └── AspNet.Security.OAuth.Shopify.csproj ├── AspNet.Security.OAuth.Foursquare │ └── AspNet.Security.OAuth.Foursquare.csproj ├── AspNet.Security.OAuth.Myob │ └── AspNet.Security.OAuth.Myob.csproj ├── AspNet.Security.OAuth.Salesforce │ ├── AspNet.Security.OAuth.Salesforce.csproj │ ├── SalesforceAuthenticationEnvironment.cs │ └── SalesforceAuthenticationConstants.cs ├── AspNet.Security.OAuth.SoundCloud │ ├── AspNet.Security.OAuth.SoundCloud.csproj │ └── SoundCloudAuthenticationConstants.cs ├── AspNet.Security.OAuth.HealthGraph │ └── AspNet.Security.OAuth.HealthGraph.csproj ├── AspNet.Security.OAuth.LinkedIn │ └── AspNet.Security.OAuth.LinkedIn.csproj ├── AspNet.Security.OAuth.Odnoklassniki │ ├── AspNet.Security.OAuth.Odnoklassniki.csproj │ └── OdnoklassnikiAuthenticationConstants.cs ├── AspNet.Security.OAuth.WordPress │ └── AspNet.Security.OAuth.WordPress.csproj ├── AspNet.Security.OAuth.WorkWeixin │ ├── AspNet.Security.OAuth.WorkWeixin.csproj │ └── WorkWeixinAuthenticationConstants.cs ├── AspNet.Security.OAuth.CiscoSpark │ └── AspNet.Security.OAuth.CiscoSpark.csproj ├── AspNet.Security.OAuth.StackExchange │ ├── AspNet.Security.OAuth.StackExchange.csproj │ └── StackExchangeAuthenticationConstants.cs ├── AspNet.Security.OAuth.Apple │ ├── AppleAuthenticationConstants.cs │ └── AspNet.Security.OAuth.Apple.csproj ├── AspNet.Security.OAuth.VisualStudio │ └── AspNet.Security.OAuth.VisualStudio.csproj └── AspNet.Security.OAuth.Xero │ ├── AspNet.Security.OAuth.Xero.csproj │ └── XeroAuthenticationConstants.cs ├── Directory.Build.targets ├── Directory.Packages.props └── NuGet.config /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /samples/Mvc.Client/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /eng/key.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnet-contrib/AspNet.Security.OAuth.Providers/HEAD/eng/key.snk -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/xunit.runner.json: -------------------------------------------------------------------------------- 1 | { 2 | "methodDisplay": "method" 3 | } 4 | -------------------------------------------------------------------------------- /package-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnet-contrib/AspNet.Security.OAuth.Providers/HEAD/package-icon.png -------------------------------------------------------------------------------- /eng/common/BuildConfiguration/build-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "RetryCountLimit": 1, 3 | "RetryByAnyError": false 4 | } 5 | -------------------------------------------------------------------------------- /.github/zizmor.yml: -------------------------------------------------------------------------------- 1 | rules: 2 | anonymous-definition: 3 | disable: true 4 | undocumented-permissions: 5 | disable: true 6 | -------------------------------------------------------------------------------- /eng/common/dotnet-install.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0dotnet-install.ps1""" %*" -------------------------------------------------------------------------------- /eng/common/build.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0build.ps1""" %*" 3 | exit /b %ErrorLevel% 4 | -------------------------------------------------------------------------------- /samples/Mvc.Client/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnet-contrib/AspNet.Security.OAuth.Providers/HEAD/samples/Mvc.Client/wwwroot/favicon.ico -------------------------------------------------------------------------------- /eng/common/sdl/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /eng/common/CIBuild.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0Build.ps1""" -restore -build -test -sign -pack -publish -ci %*" 3 | -------------------------------------------------------------------------------- /eng/common/init-tools-native.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | powershell -NoProfile -NoLogo -ExecutionPolicy ByPass -command "& """%~dp0init-tools-native.ps1""" %*" 3 | exit /b %ErrorLevel% -------------------------------------------------------------------------------- /.github/release.yml: -------------------------------------------------------------------------------- 1 | changelog: 2 | exclude: 3 | authors: 4 | - aspnet-contrib-service-account[bot] 5 | - dependabot[bot] 6 | - github-actions[bot] 7 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "editorconfig.editorconfig", 4 | "github.vscode-github-actions", 5 | "ms-dotnettools.csharp" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Apple/test.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aspnet-contrib/AspNet.Security.OAuth.Providers/HEAD/test/AspNet.Security.OAuth.Providers.Tests/Apple/test.pfx -------------------------------------------------------------------------------- /eng/common/dotnet.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: This script is used to install the .NET SDK. 4 | :: It will also invoke the SDK with any provided arguments. 5 | 6 | powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0dotnet.ps1""" %*" 7 | exit /b %ErrorLevel% 8 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Apple/test.p8: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgU208KCg/doqiSzsVF5sknVtYSgt8/3oiYGbvryIRrzSgCgYIKoZIzj0DAQehRANCAAQfrvDWizEnWAzB2Hx2r/NyvIBO6KGBDL7wkZoKnz4Sm4+1P1dhD9fVEhbsdoq9RKEf8dvzTOZMaC/iLqZFKSN6 3 | -----END PRIVATE KEY----- -------------------------------------------------------------------------------- /samples/Mvc.Client/web.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /eng/Signing.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "10.0.101", 4 | "allowPrerelease": true, 5 | "rollForward": "major" 6 | }, 7 | 8 | "tools": { 9 | "dotnet": "10.0.101" 10 | }, 11 | 12 | "msbuild-sdks": { 13 | "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25517.104", 14 | "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25517.104" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /eng/common/dotnet.ps1: -------------------------------------------------------------------------------- 1 | # This script is used to install the .NET SDK. 2 | # It will also invoke the SDK with any provided arguments. 3 | 4 | . $PSScriptRoot\tools.ps1 5 | $dotnetRoot = InitializeDotNetCli -install:$true 6 | 7 | # Invoke acquired SDK with args if they are provided 8 | if ($args.count -gt 0) { 9 | $env:DOTNET_NOLOGO=1 10 | & "$dotnetRoot\dotnet.exe" $args 11 | } 12 | -------------------------------------------------------------------------------- /eng/common/internal/NuGet.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /docs/trovo.md: -------------------------------------------------------------------------------- 1 | # Integrating the Trovo Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddTrovo(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | }); 12 | ``` 13 | 14 | ## Required Additional Settings 15 | 16 | _None._ 17 | 18 | ## Optional Settings 19 | 20 | _None._ -------------------------------------------------------------------------------- /docs/digitalocean.md: -------------------------------------------------------------------------------- 1 | # Integrating the DigitalOcean Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddDigitalOcean(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | }); 12 | ``` 13 | 14 | ## Required Additional Settings 15 | 16 | _None._ 17 | 18 | ## Optional Settings 19 | 20 | _None._ 21 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "Run tests", 6 | "type": "coreclr", 7 | "request": "launch", 8 | "preLaunchTask": "build", 9 | "program": "dotnet", 10 | "args": [ 11 | "test" 12 | ], 13 | "cwd": "${workspaceFolder}/test/AspNet.Security.OAuth.Providers.Tests", 14 | "console": "internalConsole", 15 | "stopAtEntry": false 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /eng/common/internal/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | false 6 | false 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Keycloak/KeycloakAuthenticationAccessType.cs: -------------------------------------------------------------------------------- 1 | // Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 2 | // See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 3 | // for more information concerning the license and the contributors participating to this project. 4 | 5 | namespace AspNet.Security.OAuth.Keycloak; 6 | 7 | public enum KeycloakAuthenticationAccessType 8 | { 9 | Confidential, 10 | Public, 11 | BearerOnly, 12 | } 13 | -------------------------------------------------------------------------------- /eng/common/cross/x86/tizen/tizen.patch: -------------------------------------------------------------------------------- 1 | diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so 2 | --- a/usr/lib/libc.so 2016-12-30 23:00:08.284951863 +0900 3 | +++ b/usr/lib/libc.so 2016-12-30 23:00:32.140951815 +0900 4 | @@ -2,4 +2,4 @@ 5 | Use the shared library, but some functions are only in 6 | the static library, so try that secondarily. */ 7 | OUTPUT_FORMAT(elf32-i386) 8 | -GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-linux.so.2 ) ) 9 | +GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux.so.2 ) ) 10 | -------------------------------------------------------------------------------- /eng/common/cross/armel/tizen/tizen.patch: -------------------------------------------------------------------------------- 1 | diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so 2 | --- a/usr/lib/libc.so 2016-12-30 23:00:08.284951863 +0900 3 | +++ b/usr/lib/libc.so 2016-12-30 23:00:32.140951815 +0900 4 | @@ -2,4 +2,4 @@ 5 | Use the shared library, but some functions are only in 6 | the static library, so try that secondarily. */ 7 | OUTPUT_FORMAT(elf32-littlearm) 8 | -GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-linux.so.3 ) ) 9 | +GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux.so.3 ) ) 10 | -------------------------------------------------------------------------------- /eng/common/PSScriptAnalyzerSettings.psd1: -------------------------------------------------------------------------------- 1 | @{ 2 | IncludeRules=@('PSAvoidUsingCmdletAliases', 3 | 'PSAvoidUsingWMICmdlet', 4 | 'PSAvoidUsingPositionalParameters', 5 | 'PSAvoidUsingInvokeExpression', 6 | 'PSUseDeclaredVarsMoreThanAssignments', 7 | 'PSUseCmdletCorrectly', 8 | 'PSStandardDSCFunctionsInResource', 9 | 'PSUseIdenticalMandatoryParametersForDSC', 10 | 'PSUseIdenticalParametersForDSC') 11 | } -------------------------------------------------------------------------------- /eng/common/cross/arm/tizen/tizen.patch: -------------------------------------------------------------------------------- 1 | diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so 2 | --- a/usr/lib/libc.so 2016-12-30 23:00:08.284951863 +0900 3 | +++ b/usr/lib/libc.so 2016-12-30 23:00:32.140951815 +0900 4 | @@ -2,4 +2,4 @@ 5 | Use the shared library, but some functions are only in 6 | the static library, so try that secondarily. */ 7 | OUTPUT_FORMAT(elf32-littlearm) 8 | -GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-linux-armhf.so.3 ) ) 9 | +GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux-armhf.so.3 ) ) 10 | -------------------------------------------------------------------------------- /samples/Mvc.Client/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | using Microsoft.AspNetCore.Mvc; 8 | 9 | namespace Mvc.Client.Controllers; 10 | 11 | public class HomeController : Controller 12 | { 13 | [HttpGet("~/")] 14 | public ActionResult Index() => View(); 15 | } 16 | -------------------------------------------------------------------------------- /docs/smartsheet.md: -------------------------------------------------------------------------------- 1 | # Integrating the Smartsheet Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddSmartsheet(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | 12 | // At least one scope must be passed 13 | options.Scope.Add("READ_SHEETS"); 14 | }); 15 | ``` 16 | 17 | ## Required Additional Settings 18 | 19 | _None._ 20 | 21 | ## Optional Settings 22 | 23 | _None._ 24 | -------------------------------------------------------------------------------- /eng/common/cross/arm64/tizen/tizen.patch: -------------------------------------------------------------------------------- 1 | diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so 2 | --- a/usr/lib64/libc.so 2016-12-30 23:00:08.284951863 +0900 3 | +++ b/usr/lib64/libc.so 2016-12-30 23:00:32.140951815 +0900 4 | @@ -2,4 +2,4 @@ 5 | Use the shared library, but some functions are only in 6 | the static library, so try that secondarily. */ 7 | OUTPUT_FORMAT(elf64-littleaarch64) 8 | -GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-aarch64.so.1 ) ) 9 | +GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux-aarch64.so.1 ) ) 10 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Infrastructure/Program.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Infrastructure; 8 | 9 | /// 10 | /// A stub class representing the program class for the test application. 11 | /// 12 | public sealed class Program 13 | { 14 | } 15 | -------------------------------------------------------------------------------- /eng/common/cross/riscv64/tizen/tizen.patch: -------------------------------------------------------------------------------- 1 | diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so 2 | --- a/usr/lib64/libc.so 2016-12-30 23:00:08.284951863 +0900 3 | +++ b/usr/lib64/libc.so 2016-12-30 23:00:32.140951815 +0900 4 | @@ -2,4 +2,4 @@ 5 | Use the shared library, but some functions are only in 6 | the static library, so try that secondarily. */ 7 | OUTPUT_FORMAT(elf64-littleriscv) 8 | -GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-riscv64-lp64d.so.1 ) ) 9 | +GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux-riscv64-lp64d.so.1 ) ) 10 | -------------------------------------------------------------------------------- /docs/trakt.md: -------------------------------------------------------------------------------- 1 | # Integrating the Trakt Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddTrakt(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | }); 12 | ``` 13 | 14 | ## Required Additional Settings 15 | 16 | _None._ 17 | 18 | ## Optional Settings 19 | 20 | | Property Name | Property Type | Description | Default Value | 21 | |:--|:--|:--|:--| 22 | | `ApiVersion` | `string` | The Trakt API version to use. | `"2"` | 23 | -------------------------------------------------------------------------------- /samples/Mvc.Client/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Dropbox": { 3 | "ClientId": "jpk24g2uxfxe939", 4 | "ClientSecret": "qbxvkjk5la7mjp6" 5 | }, 6 | "GitHub": { 7 | "ClientId": "49e302895d8b09ea5656", 8 | "ClientSecret": "98f1bf028608901e9df91d64ee61536fe562064b" 9 | }, 10 | "Google": { 11 | "ClientId": "560027070069-37ldt4kfuohhu3m495hk2j4pjp92d382.apps.googleusercontent.com", 12 | "ClientSecret": "n2Q-GEw9RQjzcRbU3qhfTj8f" 13 | }, 14 | "Twitter": { 15 | "ClientId": "6XaCTaLbMqfj6ww3zvZ5g", 16 | "ClientSecret": "Il2eFzGIrYhz6BWjYhVXBPQSfZuS4xoHpSSyD9PI" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /docs/foursquare.md: -------------------------------------------------------------------------------- 1 | # Integrating the Foursquare Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddFoursquare(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | }); 12 | ``` 13 | 14 | ## Required Additional Settings 15 | 16 | _None._ 17 | 18 | ## Optional Settings 19 | 20 | | Property Name | Property Type | Description | Default Value | 21 | |:--|:--|:--|:--| 22 | | `ApiVersion` | `string` | The API version to use. | `"20150927"` | 23 | -------------------------------------------------------------------------------- /eng/common/cibuild.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | source="${BASH_SOURCE[0]}" 4 | 5 | # resolve $SOURCE until the file is no longer a symlink 6 | while [[ -h $source ]]; do 7 | scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" 8 | source="$(readlink "$source")" 9 | 10 | # if $source was a relative symlink, we need to resolve it relative to the path where 11 | # the symlink file was located 12 | [[ $source != /* ]] && source="$scriptroot/$source" 13 | done 14 | scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" 15 | 16 | . "$scriptroot/build.sh" --restore --build --test --pack --publish --ci $@ 17 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Docusign/DocusignAuthenticationEnvironment.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Docusign; 8 | 9 | /// 10 | /// Used to determine which environment to use. 11 | /// 12 | public enum DocusignAuthenticationEnvironment 13 | { 14 | Production = 0, 15 | Development = 1 16 | } 17 | -------------------------------------------------------------------------------- /docs/reddit.md: -------------------------------------------------------------------------------- 1 | # Integrating the Reddit Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddReddit(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | }); 12 | ``` 13 | 14 | ## Required Additional Settings 15 | 16 | _None._ 17 | 18 | ## Optional Settings 19 | 20 | | Property Name | Property Type | Description | Default Value | 21 | |:--|:--|:--|:--| 22 | | `UserAgent` | `string?` | The `User-Agent` string to use for Reddit API requests. | `null` | 23 | -------------------------------------------------------------------------------- /docs/xumm.md: -------------------------------------------------------------------------------- 1 | # Integrating the Xumm Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | public void ConfigureServices(IServiceCollection services) 7 | { 8 | services.AddAuthentication(options => /* Auth configuration */) 9 | .AddXumm(options => 10 | { 11 | options.ClientId = "my-api-key"; 12 | options.ClientSecret = "my-api-secret"; 13 | }); 14 | } 15 | 16 | public void Configure(IApplicationBuilder app) 17 | { 18 | app.UseAuthentication(); 19 | app.UseAuthorization(); 20 | } 21 | ``` 22 | 23 | ## Required Additional Settings 24 | 25 | _None._ 26 | -------------------------------------------------------------------------------- /docs/amocrm.md: -------------------------------------------------------------------------------- 1 | # Integrating the amoCRM Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddAmoCrm(options => 8 | { 9 | options.Account = "my-account"; 10 | options.ClientId = "client-id"; 11 | options.ClientSecret = "client-secret"; 12 | }); 13 | ``` 14 | 15 | ## Required Additional Settings 16 | 17 | | Property Name | Property Type | Description | Default Value | 18 | |:--|:--|:--|:--| 19 | | `Account` | `string?` | The amoCRM account. | `example` | 20 | 21 | ## Optional Settings 22 | 23 | _None._ 24 | -------------------------------------------------------------------------------- /docs/snapchat.md: -------------------------------------------------------------------------------- 1 | # Integrating the Snapchat Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | public void ConfigureServices(IServiceCollection services) 7 | { 8 | services.AddAuthentication(options => /* Auth configuration */) 9 | .AddSnapchat(options => 10 | { 11 | options.ClientId = "my-client-id"; 12 | options.ClientSecret = "my-client-secret"; 13 | }); 14 | } 15 | 16 | public void Configure(IApplicationBuilder app) 17 | { 18 | app.UseAuthentication(); 19 | app.UseAuthorization(); 20 | } 21 | ``` 22 | 23 | ## Required Additional Settings 24 | 25 | _None._ 26 | -------------------------------------------------------------------------------- /docs/odnoklassniki.md: -------------------------------------------------------------------------------- 1 | # Integrating the Odnoklassniki Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddOdnoklassniki(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | }); 12 | 13 | ``` 14 | 15 | ## Required Additional Settings 16 | 17 | _None._ 18 | 19 | ## Optional Settings 20 | 21 | | Property Name | Property Type | Description | Default Value | 22 | |:--|:--|:--|:--| 23 | | `PublicSecret` | `string?` | The Public App Key from the application registration email. | `null` | 24 | -------------------------------------------------------------------------------- /docs/twitch.md: -------------------------------------------------------------------------------- 1 | # Integrating the Twitch Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddTwitch(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | }); 12 | ``` 13 | 14 | ## Required Additional Settings 15 | 16 | _None._ 17 | 18 | ## Optional Settings 19 | 20 | | Property Name | Property Type | Description | Default Value | 21 | |:--|:--|:--|:--| 22 | | `ForceVerify` | `bool` | Whether to send the `force_verify=true` query string parameter with authenticating users. | `false` | 23 | -------------------------------------------------------------------------------- /eng/common/sdl/NuGet.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /eng/common/enable-cross-org-publishing.ps1: -------------------------------------------------------------------------------- 1 | param( 2 | [string] $token 3 | ) 4 | 5 | 6 | . $PSScriptRoot\pipeline-logging-functions.ps1 7 | 8 | # Write-PipelineSetVariable will no-op if a variable named $ci is not defined 9 | # Since this script is only ever called in AzDO builds, just universally set it 10 | $ci = $true 11 | 12 | Write-PipelineSetVariable -Name 'VSS_NUGET_ACCESSTOKEN' -Value $token -IsMultiJobVariable $false 13 | Write-PipelineSetVariable -Name 'VSS_NUGET_URI_PREFIXES' -Value 'https://dnceng.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/dnceng/;https://devdiv.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/devdiv/' -IsMultiJobVariable $false 14 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.SuperOffice/SuperOfficeAuthenticationEnvironment.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.SuperOffice; 8 | 9 | /// 10 | /// Used to map usage to specific online environment, i.e. development, stage or production. 11 | /// 12 | public enum SuperOfficeAuthenticationEnvironment 13 | { 14 | Development, 15 | Stage, 16 | Production 17 | } 18 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Apple/TestKeys.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Apple; 8 | 9 | internal static class TestKeys 10 | { 11 | internal static async Task> GetPrivateKeyAsync(CancellationToken cancellationToken = default) 12 | => (await File.ReadAllTextAsync(Path.Combine("Apple", "test.p8"), cancellationToken)).AsMemory(); 13 | } 14 | -------------------------------------------------------------------------------- /samples/Mvc.Client/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 |
2 | @if (User?.Identity?.IsAuthenticated ?? false) 3 | { 4 |

Welcome, @User.Identity.Name

5 | 6 |

7 | @foreach (var claim in Context.User.Claims) 8 | { 9 |

@claim.Type: @claim.Value
10 | } 11 |

12 | 13 | Sign out 14 | } 15 | 16 | else 17 | { 18 |

Welcome, anonymous

19 | Sign in 20 | } 21 |
22 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Notion/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "comment": "https://developers.notion.com/docs/authorization#authorizing-public-integrations", 6 | "uri": "https://api.notion.com/v1/oauth/token", 7 | "method": "POST", 8 | "contentFormat": "json", 9 | "contentJson": { 10 | "access_token": "someaccesstoken", 11 | "workspace_name": "mif", 12 | "workspace_icon": "icon", 13 | "bot_id": "mybot" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### Provider name 2 | 3 | 6 | 7 | ### Expected behavior 8 | 9 | 12 | 13 | ### Actual behavior 14 | 15 | 18 | 19 | ### Steps to reproduce 20 | 21 | 24 | 25 | ### Additional information 26 | 27 | 30 | -------------------------------------------------------------------------------- /docs/gitcode.md: -------------------------------------------------------------------------------- 1 | # Integrating the GitCode Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddGitCode(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | 12 | // GitCode does not support setting scopes via requests to the API. 13 | // The configuration of scopes (App permissions) are instead managed 14 | // within the OAuth app management in GitCode itself. 15 | }); 16 | ``` 17 | 18 | ## Required Additional Settings 19 | 20 | _None._ 21 | 22 | ## Optional Settings 23 | 24 | _None._ 25 | -------------------------------------------------------------------------------- /docs/zendesk.md: -------------------------------------------------------------------------------- 1 | # Integrating the Zendesk Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddZendesk(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | options.Domain = "https://glowingwaffle.zendesk.com"; 12 | }); 13 | ``` 14 | 15 | ## Required Additional Settings 16 | 17 | | Property Name | Property Type | Description | Default Value | 18 | |:--|:--|:--|:--| 19 | | `Domain` | `string?` | The Zendesk domain (_Account URL_) to use for authentication. | `null` | 20 | 21 | ## Optional Settings 22 | 23 | _None._ 24 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Line/AspNet.Security.OAuth.Line.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Line authentication. 9 | CoCo Lin 10 | aspnetcore;authentication;line;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Zalo/AspNet.Security.OAuth.Zalo.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Zalo authentication. 9 | HoangITK 10 | aspnetcore;authentication;oauth;security;zalo 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /docs/jumpcloud.md: -------------------------------------------------------------------------------- 1 | # Integrating the JumpCloud Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddJumpCloud(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | options.Domain = "oauth.id.jumpcloud.com"; 12 | }); 13 | ``` 14 | 15 | ## Required Additional Settings 16 | 17 | _None._ 18 | 19 | ## Optional Settings 20 | 21 | | Property Name | Property Type | Description | Default Value | 22 | |:--|:--|:--|:--| 23 | | `Domain` | `string?` | The JumpCloud domain to use for authentication. | `"oauth.id.jumpcloud.com"` | 24 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.GitLab/AspNet.Security.OAuth.GitLab.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling GitLab authentication. 9 | twsl 10 | aspnetcore;authentication;gitlab;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Gitee/AspNet.Security.OAuth.Gitee.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Gitee authentication. 9 | HahaMango 10 | aspnetcore;authentication;gitee;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Miro/AspNet.Security.OAuth.Miro.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Miro authentication. 9 | Jerrie Pelser 10 | aspnetcore;authentication;miro;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Okta/AspNet.Security.OAuth.Okta.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security provider enabling Okta authentication. 9 | Martin Costello 10 | okta;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.QQ/AspNet.Security.OAuth.QQ.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling QQ authentication. 9 | zhengchun;huww98 10 | aspnetcore;authentication;oauth;qq;security;tencent 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Xumm/XummAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Xumm; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class XummAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Picture = "urn:xumm:picture"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Zoho/AspNet.Security.OAuth.Zoho.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Zoho authentication. 9 | Denys Goncharenko 10 | aspnetcore;authentication;oauth;zoho;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /docs/gitee.md: -------------------------------------------------------------------------------- 1 | # Integrating the Gitee Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddGitee(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | }); 12 | ``` 13 | 14 | ## Required Additional Settings 15 | 16 | _None._ 17 | 18 | ## Optional Settings 19 | 20 | | Property Name | Property Type | Description | Default Value | 21 | |:--|:--|:--|:--| 22 | | `UserEmailsEndpoint` | `string` | The address of the endpoint exposing the email addresses associated with the logged in user. | `GiteeAuthenticationDefaults.UserEmailsEndpoint` | 23 | -------------------------------------------------------------------------------- /docs/weibo.md: -------------------------------------------------------------------------------- 1 | # Integrating the Weibo Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddWeibo(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | }); 12 | ``` 13 | 14 | ## Required Additional Settings 15 | 16 | _None._ 17 | 18 | ## Optional Settings 19 | 20 | | Property Name | Property Type | Description | Default Value | 21 | |:--|:--|:--|:--| 22 | | `UserEmailsEndpoint` | `string` | The address of the endpoint exposing the email addresses associated with the logged in user. | `WeiboAuthenticationDefaults.UserEmailsEndpoint` | 23 | -------------------------------------------------------------------------------- /eng/common/msbuild.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding(PositionalBinding=$false)] 2 | Param( 3 | [string] $verbosity = 'minimal', 4 | [bool] $warnAsError = $true, 5 | [bool] $nodeReuse = $true, 6 | [switch] $ci, 7 | [switch] $prepareMachine, 8 | [switch] $excludePrereleaseVS, 9 | [string] $msbuildEngine = $null, 10 | [Parameter(ValueFromRemainingArguments=$true)][String[]]$extraArgs 11 | ) 12 | 13 | . $PSScriptRoot\tools.ps1 14 | 15 | try { 16 | if ($ci) { 17 | $nodeReuse = $false 18 | } 19 | 20 | MSBuild @extraArgs 21 | } 22 | catch { 23 | Write-Host $_.ScriptStackTrace 24 | Write-PipelineTelemetryError -Category 'Build' -Message $_ 25 | ExitWithExitCode 1 26 | } 27 | 28 | ExitWithExitCode 0 -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.AdobeIO/AspNet.Security.OAuth.AdobeIO.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling AdobeIO authentication. 9 | biltongza 10 | adobe;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Baidu/AspNet.Security.OAuth.Baidu.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Baidu authentication. 9 | Chino Chang 10 | aspnetcore;authentication;baidu;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Deezer/AspNet.Security.OAuth.Deezer.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Deezer authentication. 9 | Tolbxela 10 | aspnetcore;authentication;deezer;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Ebay/AspNet.Security.OAuth.Ebay.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling eBay authentication. 9 | Nicola Biancolini 10 | ebay;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Feishu/AspNet.Security.OAuth.Feishu.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Feishu authentication. 9 | Vicente Yu 10 | aspnetcore;authentication;feishu;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Huawei/AspNet.Security.OAuth.Huawei.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Huawei authentication. 9 | Vicente Yu 10 | aspnetcore;authentication;huawei;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Kroger/AspNet.Security.OAuth.Kroger.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Kroger authentication. 9 | Luke Moore 10 | aspnetcore;authentication;kroger;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Naver/AspNet.Security.OAuth.Naver.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Naver authentication. 9 | christallire 10 | aspnetcore;authentication;naver;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Xumm/AspNet.Security.OAuth.Xumm.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Xumm authentication. 9 | Dominique Blomsma 10 | aspnetcore;authentication;oauth;security;xumm 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Amazon/AspNet.Security.OAuth.Amazon.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Amazon authentication. 9 | Martin Costello 10 | amazon;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.AmoCrm/AspNet.Security.OAuth.AmoCrm.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling amoCRM authentication. 9 | Denis Ivanov 10 | amocrm;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Baidu/BaiduAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Baidu; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class BaiduAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Portrait = "urn:baidu:portrait"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.GitCode/AspNet.Security.OAuth.GitCode.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling GitCode authentication. 9 | Gehongyan 10 | aspnetcore;authentication;gitcode;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Huawei/HuaweiAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Huawei; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class HuaweiAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Avatar = "urn:huawei:avatar"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Imgur/AspNet.Security.OAuth.Imgur.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Imgur authentication. 9 | Albireo;Chino Chang 10 | aspnetcore;authentication;imgur;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Line/LineAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Line; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class LineAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string PictureUrl = "urn:line:picture_url"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Linear/AspNet.Security.OAuth.Linear.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Linear authentication. 9 | Jerrie Pelser 10 | aspnetcore;authentication;linear;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Moodle/AspNet.Security.OAuth.Moodle.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Moodle authentication. 9 | HIT-ReFreSH 10 | aspnetcore;authentication;moodle;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.NetEase/AspNet.Security.OAuth.NetEase.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling NetEase authentication. 9 | HahaMango 10 | aspnetcore;authentication;netease;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.PingOne/AspNet.Security.OAuth.PingOne.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security provider enabling PingOne authentication. 9 | Drew Killion 10 | pingone;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Reddit/RedditAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Reddit; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class RedditAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Over18 = "urn:reddit:over18"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Trakt/AspNet.Security.OAuth.Trakt.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Trakt authentication. 9 | TheUltimateC0der 10 | aspnetcore;authentication;oauth;security;trakt 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.VkId/AspNet.Security.OAuth.VkId.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling VK ID authentication. 9 | hscokies 10 | aspnetcore;authentication;oauth;security;vkontakte;vkid 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Zendesk/AspNet.Security.OAuth.Zendesk.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Zendesk authentication. 9 | Levi Muriuki 10 | aspnetcore;authentication;oauth;security;zendesk 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Zoom/AspNet.Security.OAuth.Zoom.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Zoom authentication. 9 | Christian Oluwawibe 10 | aspnetcore;authentication;zoom;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Atlassian/AspNet.Security.OAuth.Atlassian.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Atlassian authentication. 9 | smnsht 10 | atlassian;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Bilibili/AspNet.Security.OAuth.Bilibili.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Bilibili authentication. 9 | Loongle Tse 10 | bilibili;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Coinbase/AspNet.Security.OAuth.Coinbase.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | levimatheri 9 | ASP.NET Core security middleware enabling Coinbase authentication. 10 | aspnetcore;authentication;coinbase;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.KakaoTalk/AspNet.Security.OAuth.KakaoTalk.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling KakaoTalk authentication. 9 | wplong11 10 | aspnetcore;authentication;kakaotalk;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Keycloak/AspNet.Security.OAuth.Keycloak.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security provider enabling Keycloak authentication. 9 | Anto Subash 10 | keycloak;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Kook/AspNet.Security.OAuth.Kook.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling KOOK authentication. 9 | Gehongyan 10 | aspnetcore;authentication;kaiheila;kook;kookapp;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Lichess/AspNet.Security.OAuth.Lichess.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Lichess authentication. 9 | Michael Tanczos 10 | aspnetcore;authentication;lichess;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.MailRu/AspNet.Security.OAuth.MailRu.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling MailRu authentication. 9 | Dmitry Vostryakov 10 | aspnetcore;authentication;mailru;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Notion/AspNet.Security.OAuth.Notion.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Notion authentication. 9 | Vyacheslav Mostovoy 10 | aspnetcore;authentication;oauth;security;notion 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.QuickBooks/AspNet.Security.OAuth.QuickBooks.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling QuickBooks authentication. 9 | RekingShui 10 | quickbooks;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Twitter/AspNet.Security.OAuth.Twitter.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Twitter authentication. 9 | Martin Costello 10 | aspnetcore;authentication;oauth;security;twitter 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Untappd/UntappdAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Untappd; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class UntappdAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Avatar = "urn:untappd:link"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Webflow/AspNet.Security.OAuth.Webflow.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Webflow authentication. 9 | Jerrie Pelser 10 | aspnetcore;authentication;webflow;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Weibo/AspNet.Security.OAuth.Weibo.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Weibo authentication. 9 | zhengchun;Chino Chang 10 | aspnetcore;authentication;oauth;security;weibo 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Myob/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://secure.myob.com/oauth2/v1/authorize", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300", 13 | "user": { 14 | "uid": "my-id", 15 | "username": "John Smith" 16 | } 17 | } 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /docs/bitbucket.md: -------------------------------------------------------------------------------- 1 | # Integrating the Bitbucket Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddBitbucket(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | }); 12 | ``` 13 | 14 | ## Required Additional Settings 15 | 16 | _None._ 17 | 18 | ## Optional Settings 19 | 20 | | Property Name | Property Type | Description | Default Value | 21 | |:--|:--|:--|:--| 22 | | `UserEmailsEndpoint` | `string` | The address of the endpoint exposing the email addresses associated with the logged in user. | `BitbucketAuthenticationDefaults.UserEmailsEndpoint` | 23 | -------------------------------------------------------------------------------- /docs/kroger.md: -------------------------------------------------------------------------------- 1 | # Integrating the Kroger Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddKroger(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | 12 | // Optionally request other permissions 13 | // See https://developer.kroger.com/reference/#section/Authentication for details. 14 | options.Scope.Add("product.compact"); 15 | options.Scope.Add("cart.basic:write"); 16 | }); 17 | ``` 18 | 19 | ## Required Additional Settings 20 | 21 | _None._ 22 | 23 | ## Optional Settings 24 | 25 | _None._ -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Airtable/AspNet.Security.OAuth.Airtable.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Airtable authentication. 9 | Denys Goncharenko 10 | aspnetcore;authentication;oauth;airtable;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Alipay/AspNet.Security.OAuth.Alipay.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Alipay authentication. 9 | LeaFrock;vicente.yu 10 | alipay;alibaba;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.ArcGIS/AspNet.Security.OAuth.ArcGIS.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling ArcGIS authentication. 9 | Dave Timmins;Chino Chang 10 | arcgis;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Asana/AspNet.Security.OAuth.Asana.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Asana authentication. 9 | Adam Reisinger;Chino Chang 10 | asana;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Bilibili/BilibiliAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Bilibili; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class BilibiliAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Face = "urn:bilibili:face"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Buffer/AspNet.Security.OAuth.Buffer.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Buffer authentication. 9 | Jerrie Pelser;Chino Chang 10 | aspnetcore;authentication;buffer;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Calendly/AspNet.Security.OAuth.Calendly.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Calendly authentication. 9 | Denys Goncharenko 10 | aspnetcore;authentication;oauth;calendly;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Docusign/AspNet.Security.OAuth.Docusign.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Docusign authentication. 9 | Denys Goncharenko 10 | aspnetcore;authentication;oauth;docusign;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Dropbox/AspNet.Security.OAuth.Dropbox.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Dropbox authentication. 9 | S Hana;Chino Chang 10 | aspnetcore;authentication;dropbox;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Harvest/AspNet.Security.OAuth.Harvest.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Harvest authentication. 9 | Volodymyr Baydalka 10 | aspnetcore;authentication;harvest;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.HubSpot/AspNet.Security.OAuth.HubSpot.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling HubSpot authentication. 9 | Shayaan Ahmed Farooqi 10 | hubspot;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.JumpCloud/AspNet.Security.OAuth.JumpCloud.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling JumpCloud authentication. 9 | AaronSadlerUK 10 | jumpcloud;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.MailRu/MailRuAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.MailRu; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class MailRuAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string ImageUrl = "urn:mailru:profileimage"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Mixcloud/AspNet.Security.OAuth.Mixcloud.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Mixcloud authentication. 9 | Michael DeMond 10 | aspnetcore;authentication;oauth;security;mixcloud 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Patreon/PatreonAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Patreon; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class PatreonAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Avatar = "urn:patreon:avatar"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Paypal/AspNet.Security.OAuth.Paypal.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Paypal authentication. 9 | Yannic Smeets;Chino Chang 10 | aspnetcore;authentication;oauth;paypal;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Reddit/AspNet.Security.OAuth.Reddit.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Reddit authentication. 9 | Tommy Parnell;Chino Chang 10 | aspnetcore;authentication;oauth;reddit;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Slack/AspNet.Security.OAuth.Slack.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Slack authentication. 9 | Michael Knowles;Chino Chang 10 | aspnetcore;authentication;oauth;security;slack 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Snapchat/AspNet.Security.OAuth.Snapchat.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Snapchat authentication. 9 | Nikola Maksimovic 10 | aspnetcore;authentication;oauth;security;snapchat 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Spotify/AspNet.Security.OAuth.Spotify.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Spotify authentication. 9 | Adam Reisinger;0xNF 10 | aspnetcore;authentication;oauth;security;spotify 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Strava/AspNet.Security.OAuth.Strava.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Strava authentication. 9 | James Holcomb;Jack Thorpe 10 | aspnetcore;authentication;oauth;security;strava 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Trovo/AspNet.Security.OAuth.Trovo.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Trovo authentication. 9 | Albert Zakiev;Chino Chang 10 | aspnetcore;authentication;oauth;security;trovo 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Twitch/AspNet.Security.OAuth.Twitch.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Twitch authentication. 9 | Tommy Parnell;Chino Chang 10 | aspnetcore;authentication;oauth;security;twitch 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Typeform/AspNet.Security.OAuth.Typeform.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Typeform authentication. 9 | Denys Goncharenko 10 | aspnetcore;authentication;oauth;typeform;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Vimeo/AspNet.Security.OAuth.Vimeo.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Vimeo authentication. 9 | Adam Reisinger;Chino Chang 10 | aspnetcore;authentication;oauth;security;vimeo 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Vkontakte/AspNet.Security.OAuth.Vkontakte.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Vkontakte authentication. 9 | Albert Zakiev 10 | aspnetcore;authentication;oauth;security;vkontakte 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Weixin/AspNet.Security.OAuth.Weixin.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Weixin authentication. 9 | zhengchun;Chino Chang 10 | aspnetcore;authentication;oauth;security;weixin 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Yammer/AspNet.Security.OAuth.Yammer.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Yammer authentication. 9 | Albert Zakiev;Chino Chang 10 | aspnetcore;authentication;oauth;security;yammer 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Yandex/AspNet.Security.OAuth.Yandex.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Yandex authentication. 9 | Dmitry Popov;Chino Chang 10 | aspnetcore;authentication;oauth;security;yandex 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Basecamp/AspNet.Security.OAuth.Basecamp.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Basecamp authentication. 9 | Luke Fulliton 10 | basecamp;37signal;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Contentful/AspNet.Security.OAuth.Contentful.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Contentful authentication. 9 | Jerrie Pelser 10 | contentful;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Fitbit/AspNet.Security.OAuth.Fitbit.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Fitbit authentication. 9 | Jason Loeffler;Chino Chang 10 | aspnetcore;authentication;fitbit;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.GitHub/AspNet.Security.OAuth.GitHub.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling GitHub authentication. 9 | Kévin Chalet;Jerrie Pelser 10 | aspnetcore;authentication;github;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Patreon/AspNet.Security.OAuth.Patreon.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Patreon authentication. 9 | Antoine Bichon;Chino Chang 10 | aspnetcore;authentication;oauth;patreon;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Pipedrive/AspNet.Security.OAuth.Pipedrive.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Pipedrive authentication. 9 | Denys Goncharenko 10 | aspnetcore;authentication;oauth;pipedrive;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Smartsheet/AspNet.Security.OAuth.Smartsheet.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Smartsheet authentication. 9 | Steve Albison 10 | aspnetcore;authentication;oauth;smartsheet;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Untappd/AspNet.Security.OAuth.Untappd.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Untappd authentication. 9 | Albert Zakiev;Chino Chang 10 | aspnetcore;authentication;untappd;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /samples/Mvc.Client/Program.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace Mvc.Client; 8 | 9 | public static class Program 10 | { 11 | public static void Main(string[] args) => 12 | CreateHostBuilder(args).Build().Run(); 13 | 14 | public static IHostBuilder CreateHostBuilder(string[] args) => 15 | Host.CreateDefaultBuilder(args) 16 | .ConfigureWebHostDefaults( 17 | (webBuilder) => webBuilder.UseStartup()); 18 | } 19 | -------------------------------------------------------------------------------- /samples/Mvc.Client/Views/Authentication/SignIn.cshtml: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Authentication 2 | @model AuthenticationScheme[] 3 | 4 |
5 |

Authentication

6 |

Sign in using one of these external providers:

7 | 8 | @foreach (var scheme in Model!.OrderBy(p => p.DisplayName)) 9 | { 10 |
11 | 12 | 13 | 14 | 15 |
16 | } 17 |
18 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Autodesk/AspNet.Security.OAuth.Autodesk.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Autodesk authentication. 9 | Jeff Hotchkiss;Chino Chang 10 | aspnetcore;authentication;autodesk;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.BattleNet/AspNet.Security.OAuth.BattleNet.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Battle.net authentication. 9 | Gekctek;Chino Chang 10 | aspnetcore;authentication;battlenet;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.DigitalOcean/AspNet.Security.OAuth.DigitalOcean.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling DigitalOcean authentication. 9 | Elan Hasson 10 | DigitalOcean;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Discord/AspNet.Security.OAuth.Discord.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Discord authentication. 9 | Anders Blankholm;Chino Chang 10 | aspnetcore;authentication;discord;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.EVEOnline/EVEOnlineAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.EVEOnline; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class EVEOnlineAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Scopes = "urn:eveonline:scopes"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Nextcloud/AspNet.Security.OAuth.Nextcloud.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Nextcloud authentication. 9 | Dennis "zAfLu" Everts 10 | aspnetcore;authentication;oauth;security;nextcloud 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.ServiceChannel/AspNet.Security.OAuth.ServiceChannel.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling ServiceChannel authentication. 9 | Hang Yang 10 | servicechannel;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Streamlabs/AspNet.Security.OAuth.Streamlabs.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | 9 | ASP.NET Core security middleware enabling Streamlabs authentication. 10 | Sertay Kabuk 11 | aspnetcore;authentication;oauth;security;streamlabs 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Yahoo/AspNet.Security.OAuth.Yahoo.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Yahoo authentication. 9 | Kévin Chalet;Jerrie Pelser;Chino Chang 10 | aspnetcore;authentication;oauth;security;yahoo 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Bitbucket/AspNet.Security.OAuth.Bitbucket.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Bitbucket authentication. 9 | Steffen Wenz;Chino Chang 10 | aspnetcore;authentication;bitbucket;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.DeviantArt/DeviantArtAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.DeviantArt; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class DeviantArtAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Username = "urn:deviantart:name"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.ExactOnline/AspNet.Security.OAuth.ExactOnline.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling ExactOnline authentication. 9 | Floris Westerman 10 | aspnetcore;authentication;exactonline;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Instagram/AspNet.Security.OAuth.Instagram.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Instagram authentication. 9 | Yannic Smeets;Chino Chang 10 | aspnetcore;authentication;instagram;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.MailChimp/AspNet.Security.OAuth.MailChimp.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling MailChimp authentication. 9 | Igor Simovic;Hayden Hancock 10 | aspnetcore;authentication;mailchimp;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Onshape/AspNet.Security.OAuth.Onshape.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Onshape authentication. 9 | Tathagata Chakraborty;Chino Chang 10 | aspnetcore;authentication;oauth;onshape;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Shopify/AspNet.Security.OAuth.Shopify.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Shopify authentication. 9 | Chris Boaro;Sebastien Biaudet 10 | aspnetcore;authentication;oauth;salesforce;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Directory.Build.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 11 | 12 | 13 | $(Authors) 14 | $(_ProjectCopyright) 15 | false 16 | false 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /eng/Version.Details.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | https://github.com/dotnet/arcade 10 | dd332f2d4e21daa8b79f84251ab156af9a0b11b2 11 | 12 | 13 | 14 | 15 | https://github.com/dotnet/arcade 16 | dd332f2d4e21daa8b79f84251ab156af9a0b11b2 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.DeviantArt/AspNet.Security.OAuth.DeviantArt.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling DeviantArt authentication. 9 | Tommy Parnell;Chino Chang 10 | aspnetcore;authentication;deviantart;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Foursquare/AspNet.Security.OAuth.Foursquare.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Foursquare authentication. 9 | Abhinav Nigam;Chino Chang 10 | aspnetcore;authentication;foursquare;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Myob/AspNet.Security.OAuth.Myob.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling MYOB authentication. 9 | Jordan Knight;Chino Chang 10 | accountright;aspnetcore;authentication;essentials;exo;myob;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Salesforce/AspNet.Security.OAuth.Salesforce.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Salesforce authentication. 9 | Andrew Mattie;Chino Chang 10 | aspnetcore;authentication;oauth;salesforce;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.SoundCloud/AspNet.Security.OAuth.SoundCloud.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling SoundCloud authentication. 9 | Adam Reisinger;Chino Chang 10 | aspnetcore;authentication;oauth;security;soundcloud 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.HealthGraph/AspNet.Security.OAuth.HealthGraph.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling HealthGraph authentication. 9 | Adam Reisinger;Chino Chang 10 | aspnetcore;authentication;healthgraph;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.LinkedIn/AspNet.Security.OAuth.LinkedIn.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling LinkedIn authentication. 9 | Kévin Chalet;Jerrie Pelser;Alvin Stanescu 10 | aspnetcore;authentication;linkedin;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Odnoklassniki/AspNet.Security.OAuth.Odnoklassniki.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Odnoklassniki authentication. 9 | Dmitry Vostryakov 10 | aspnetcore;authentication;odnoklassniki;ok;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.WordPress/AspNet.Security.OAuth.WordPress.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling WordPress authentication. 9 | Kévin Chalet;Jerrie Pelser;Chino Chang 10 | aspnetcore;authentication;oauth;security;wordpress 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.WorkWeixin/AspNet.Security.OAuth.WorkWeixin.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling WorkWeixin\WeCom authentication. 9 | wangqianlong 10 | aspnetcore;authentication;oauth;security;workweixin;wecom;tencent 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.CiscoSpark/AspNet.Security.OAuth.CiscoSpark.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Cisco Spark authentication. 9 | Robert Shade;Chino Chang 10 | aspnetcore;authentication;cisco;ciscospark;oauth;security;spark 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Smartsheet/SmartsheetAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Smartsheet; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class SmartsheetAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string ProfileImage = "urn:smartsheet:profileimage"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.StackExchange/AspNet.Security.OAuth.StackExchange.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling StackExchange authentication. 9 | Andrew Lock;Chino Chang 10 | aspnetcore;authentication;stackexchange;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.StackExchange/StackExchangeAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.StackExchange; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class StackExchangeAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Link = "urn:stackexchange:link"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Apple/AppleAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Apple; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class AppleAuthenticationConstants 13 | { 14 | /// 15 | /// Default value for the token audience. 16 | /// 17 | public const string Audience = "https://appleid.apple.com"; 18 | } 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.VisualStudio/AspNet.Security.OAuth.VisualStudio.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Visual Studio Online authentication. 9 | Albert Zakiev;Chino Chang 10 | aspnetcore;authentication;oauth;security;visualstudio 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Gitee/GiteeAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Gitee; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class GiteeAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Name = "urn:gitee:name"; 17 | public const string Url = "urn:gitee:url"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /docs/kook.md: -------------------------------------------------------------------------------- 1 | # Integrating the KOOK Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddKook(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | 12 | // The scope get_user_info is added by default. 13 | // Please make sure the scope get_user_info is enabled in your KOOK developer center. 14 | // If you do not want to use the default scope indeed, remove it as shown below: 15 | // options.Scope.Remove("get_user_info"); 16 | }); 17 | ``` 18 | 19 | ## Required Additional Settings 20 | 21 | _None._ 22 | 23 | ## Optional Settings 24 | 25 | _None._ 26 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.GitHub/GitHubAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.GitHub; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class GitHubAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Name = "urn:github:name"; 17 | public const string Url = "urn:github:url"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /samples/Mvc.Client/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "https://localhost:44318/", 7 | "sslPort": 44318 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | } 17 | }, 18 | "web": { 19 | "commandName": "Project", 20 | "launchBrowser": true, 21 | "launchUrl": "https://localhost:5001/", 22 | "environmentVariables": { 23 | "ASPNETCORE_ENVIRONMENT": "Development" 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Feishu/FeishuAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Feishu; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class FeishuAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string UnionId = "urn:feishu:unionid"; 17 | public const string Avatar = "urn:feishu:avatar"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Trovo/TrovoAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Trovo; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public class TrovoAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string ChannelId = "urn:trovo:channelid"; 17 | public const string ProfilePic = "urn:trovo:profilepic"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Fitbit/FitbitAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Fitbit; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class FitbitAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Avatar = "urn:fitbit:avatar"; 17 | public const string Avatar150 = "urn:fitbit:avatar150"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Vimeo/VimeoAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Vimeo; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class VimeoAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string FullName = "urn:vimeo:fullname"; 17 | public const string ProfileUrl = "urn:vimeo:profileurl"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Yammer/YammerAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Yammer; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class YammerAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string JobTitle = "urn:yammer:job_title"; 17 | public const string WebUrl = "urn:yammer:link"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/HealthGraph/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://runkeeper.com/apps/token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://api.runkeeper.com/user", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "userID": "my-id" 20 | } 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /docs/qq.md: -------------------------------------------------------------------------------- 1 | # Integrating the QQ Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddQQ(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | }); 12 | ``` 13 | 14 | ## Required Additional Settings 15 | 16 | _None._ 17 | 18 | ## Optional Settings 19 | 20 | | Property Name | Property Type | Description | Default Value | 21 | |:--|:--|:--|:--| 22 | | `ApplyForUnionId` | `bool` | Set if the UnionID should be retrieved and put into user claims. | `false` | 23 | | `UserIdentificationEndpoint` | `string` | The address of the endpoint to use for user identification. | `QQAuthenticationDefaults.UserIdentificationEndpoint` | 24 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Xero/AspNet.Security.OAuth.Xero.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling Xero authentication. 9 | Albert Zakiev 10 | xero;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /docs/vkontakte.md: -------------------------------------------------------------------------------- 1 | # Integrating the Vkontakte Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddVkontakte(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | }); 12 | ``` 13 | 14 | ## Required Additional Settings 15 | 16 | _None._ 17 | 18 | ## Optional Settings 19 | 20 | | Property Name | Property Type | Description | Default Value | 21 | |:--|:--|:--|:--| 22 | | `ApiVersion` | `string` | The API version to use. | `"5.131"` | 23 | | `Fields` | `ISet` | The [profile fields](https://vk.com/dev/fields "User object") to return from the API. | `[ "id", "first_name", "last_name", "photo_rec", "photo", "hash" ]` | 24 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Apple/AspNet.Security.OAuth.Apple.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security provider enabling Apple authentication. 9 | Martin Costello 10 | apple;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Bitbucket/BitbucketAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Bitbucket; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class BitbucketAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string DisplayName = "urn:bitbucket:name"; 17 | public const string Website = "urn:bitbucket:url"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Buffer/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://api.bufferapp.com/1/oauth2/token.json", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://api.bufferapp.com/1/user.json", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "id": "my-id" 20 | } 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for a new feature for AspNet.Security.OAuth.Providers 4 | 5 | --- 6 | 7 | ### Is your feature request related to a problem? Please describe. 8 | 9 | 12 | 13 | ### Describe the solution you'd like 14 | 15 | 18 | 19 | ### Describe alternatives you've considered 20 | 21 | 24 | 25 | ### Additional context 26 | 27 | 30 | -------------------------------------------------------------------------------- /docs/patreon.md: -------------------------------------------------------------------------------- 1 | # Integrating the Patreon Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddPatreon(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | }); 12 | ``` 13 | 14 | ## Required Additional Settings 15 | 16 | _None._ 17 | 18 | ## Optional Settings 19 | 20 | | Property Name | Property Type | Description | Default Value | 21 | |:--|:--|:--|:--| 22 | | `Fields` | `ISet` | The list of fields to retrieve from the user information endpoint. | `[ "first_name", "full_name", "last_name", "thumb_url", "url" ]` | 23 | | `Includes` | `ISet` | The list of related data to include from the user information endpoint. | `[]` | 24 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.AdobeIO/AdobeIOAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.AdobeIO; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class AdobeIOAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string AccountType = "urn:adobeio:account_type"; 17 | public const string EmailVerified = "urn:adobeio:email_verified"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /docs/linear.md: -------------------------------------------------------------------------------- 1 | # Integrating the Linear Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddLinear(options => 8 | { 9 | options.ClientId = configuration["Linear:ClientId"] ?? string.Empty; 10 | options.ClientSecret = configuration["Linear:ClientSecret"] ?? string.Empty; 11 | 12 | // 'read' scope is added by default. Add additional scopes required 13 | // options.Scope.Add("write"); 14 | 15 | // Additional authorization parameters can also be added 16 | // options.AdditionalAuthorizationParameters.Add("prompt", "consent"); 17 | }) 18 | ``` 19 | 20 | ## Required Additional Settings 21 | 22 | _None._ 23 | 24 | ## Optional Settings 25 | 26 | _None._ 27 | -------------------------------------------------------------------------------- /docs/moodle.md: -------------------------------------------------------------------------------- 1 | # Integrating the Moodle Provider 2 | 3 | Applies to the Moodle plugin [HIT-ReFreSH/moodle-local_oauth](https://github.com/HIT-ReFreSH/moodle-local_oauth). 4 | 5 | ## Example 6 | 7 | ```csharp 8 | services.AddAuthentication(options => /* Auth configuration */) 9 | .AddMoodle(options => 10 | { 11 | options.ClientId = "my-client-id"; 12 | options.ClientSecret = "my-client-secret"; 13 | options.Domain = "mymoodlesite.com"; 14 | }); 15 | ``` 16 | 17 | ## Required Additional Settings 18 | 19 | | Property Name | Property Type | Description | Default Value | 20 | |:--|:--|:--|:--| 21 | | `Domain` | `string?` | The Moodle domain (_Org URL_) of your site. For example: "mymoodlesite.com". | `null` | 22 | 23 | ## Optional Settings 24 | 25 | _None._ 26 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.ExactOnline/ExactOnlineAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.ExactOnline; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class ExactOnlineAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Division = "urn:exactonline:division"; 17 | public const string Company = "urn:exactonline:company"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /docs/amazon.md: -------------------------------------------------------------------------------- 1 | # Integrating the Amazon Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddAmazon(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | 12 | // Optionally request the user's postal code, if needed 13 | options.Scope.Add("postal_code"); 14 | options.Fields.Add("postal_code"); 15 | }); 16 | ``` 17 | 18 | ## Required Additional Settings 19 | 20 | _None._ 21 | 22 | ## Optional Settings 23 | 24 | | Property Name | Property Type | Description | Default Value | 25 | |:-:|:-:|:-:|:-:| 26 | | `Fields` | `ISet` | The fields of the user's profile to return. | `[ "email", "name", "user_id" ]` | 27 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.EVEOnline/EVEOnlineAuthenticationServer.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth; 8 | 9 | /// 10 | /// Defines a list of servers used to determine the appropriate 11 | /// API endpoints when communicating with EVEOnline. 12 | /// 13 | public enum EVEOnlineAuthenticationServer 14 | { 15 | /// 16 | /// Live server. 17 | /// 18 | Tranquility = 0, 19 | 20 | /// 21 | /// Test server. 22 | /// 23 | Singularity = 1 24 | } 25 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.SuperOffice/AspNet.Security.OAuth.SuperOffice.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling SuperOffice authentication. 9 | Anthony Yates 10 | superoffice;aspnetcore;authentication;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Vkontakte/VkontakteAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Vkontakte; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class VkontakteAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string PhotoUrl = "urn:vkontakte:photo:link"; 17 | public const string ThumbnailUrl = "urn:vkontakte:photo_thumb:link"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Autodesk/AutodeskAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Autodesk; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class AutodeskAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string EmailVerified = "urn:autodesk:emailverified"; 17 | public const string TwoFactorEnabled = "urn:autodesk:twofactorenabled"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Trakt/TraktAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Trakt; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class TraktAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Vip = "urn:trakt:vip"; 17 | public const string VipEp = "urn:trakt:vip_ep"; 18 | public const string Private = "urn:trakt:private"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.GitLab/GitLabAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.GitLab; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class GitLabAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Name = "urn:gitlab:name"; 17 | public const string Avatar = "urn:gitlab:avatar"; 18 | public const string Url = "urn:gitlab:url"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Onshape/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://oauth.onshape.com/oauth/token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://cad.onshape.com/api/users/sessioninfo", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "id": "my-id", 20 | "name": "John Smith" 21 | } 22 | } 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /docs/stackexchange.md: -------------------------------------------------------------------------------- 1 | # Integrating the StackExchange Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddStackExchange(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | options.RequestKey = "my-request-key"; 12 | }); 13 | ``` 14 | 15 | ## Required Additional Settings 16 | 17 | | Property Name | Property Type | Description | 18 | |:--|:--|:--|:--| 19 | | `RequestKey` | `string` | The application request key. | 20 | 21 | ## Optional Settings 22 | 23 | | Property Name | Property Type | Description | Default Value | 24 | |:--|:--|:--|:--| 25 | | `Site` | `string` | The site the users being authenticated are registered with. | `"StackOverflow"` | 26 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.EVEOnline/AspNet.Security.OAuth.EVEOnline.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(DefaultNetCoreTargetFramework) 5 | 6 | 7 | 8 | ASP.NET Core security middleware enabling EVEOnline authentication. 9 | Mariusz Zieliński;Chino Chang;Matthew Moore 10 | aspnetcore;authentication;eveonline;oauth;security 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Slack/SlackAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Slack; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class SlackAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string TeamId = "urn:slack:team_id"; 17 | public const string TeamName = "urn:slack:team_name"; 18 | public const string UserId = "urn:slack:user_id"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Snapchat/SnapchatAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Snapchat; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class SnapchatAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string TeamId = "organization_id"; 17 | public const string MemberStatus = "member_status"; 18 | public const string UserId = "id"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /docs/webflow.md: -------------------------------------------------------------------------------- 1 | # Integrating the Webflow Provider 2 | 3 | > [!IMPORTANT] 4 | > When you create the OAuth application in Webflow, make sure to enable the Authorized user (Read-only) [scope](https://developers.webflow.com/v2.0.0/data/reference/scopes). If this scope is not enabled, retrieving the user information will fail, resulting in the entire authorization flow to fail. 5 | 6 | ## Example 7 | 8 | ```csharp 9 | services.AddAuthentication(options => /* Auth configuration */) 10 | .AddWebflow(options => 11 | { 12 | options.ClientId = configuration["Webflow:ClientId"] ?? string.Empty; 13 | options.ClientSecret = configuration["Webflow:ClientSecret"] ?? string.Empty; 14 | }) 15 | ``` 16 | 17 | ## Required Additional Settings 18 | 19 | _None._ 20 | 21 | ## Optional Settings 22 | 23 | _None._ 24 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Yahoo/YahooAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Yahoo; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class YahooAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string FamilyName = "urn:yahoo:familyname"; 17 | public const string GivenName = "urn:yahoo:givenname"; 18 | public const string Picture = "urn:yahoo:picture"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /docs/eveonline.md: -------------------------------------------------------------------------------- 1 | # Integrating the EVE Online Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddEVEOnline(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | }); 12 | ``` 13 | 14 | ## Required Additional Settings 15 | 16 | _None._ 17 | 18 | ## Optional Settings 19 | 20 | | Property Name | Property Type | Description | Default Value | 21 | |:--|:--|:--|:--| 22 | | `Server` | [`EVEOnlineAuthenticationServer`](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers/blob/dev/src/AspNet.Security.OAuth.EVEOnline/EVEOnlineAuthenticationServer.cs "EVEOnlineAuthenticationServer enumeration") | The EVE Online server to use. | `EVEOnlineAuthenticationServer.Tranquility` | 23 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.ServiceChannel/ServiceChannelAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.ServiceChannel; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class ServiceChannelAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string ProviderId = "urn:servicechannel:providerId"; 17 | public const string ProviderName = "urn:servicechannel:providerName"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/DeviantArt/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://www.deviantart.com/oauth2/token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://www.deviantart.com/api/v1/oauth2/user/whoami/", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "userid": "my-id", 20 | "username": "John Smith" 21 | } 22 | } 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /docs/line.md: -------------------------------------------------------------------------------- 1 | # Integrating the Line Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddLine(options => 8 | { 9 | options.ClientId = "my-channel-id"; 10 | options.ClientSecret = "my-channel-secret"; 11 | }); 12 | ``` 13 | 14 | ## Required Additional Settings 15 | 16 | _None._ 17 | 18 | ## Optional Settings 19 | 20 | | Property Name | Property Type | Description | Default Value | 21 | |:--|:--|:--|:--| 22 | | `Prompt` | `bool` | Used to force the consent screen to be displayed even if the user has already granted all requested permissions. | `false` | 23 | | `UserEmailsEndpoint` | `string` | The address of the endpoint exposing the email addresses associated with the logged in user. | `LineAuthenticationDefaults.UserEmailsEndpoint` | 24 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Reddit/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://www.reddit.com/api/v1/access_token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://oauth.reddit.com/api/v1/me", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "id": "my-id", 20 | "name": "John Smith", 21 | "over_18": true 22 | } 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /.github/SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security policy 2 | 3 | ## Supported Versions 4 | 5 | Only versions of the providers that target versions of ASP.NET Core that are in support by Microsoft are supported by the maintainers. 6 | 7 | The .NET Core and ASP.NET Core support policy, including currently supported versions, can be found at the [.NET and .NET Core Support Policy page](https://dotnet.microsoft.com/platform/support/policy/dotnet-core). 8 | 9 | ## Reporting a Vulnerability 10 | 11 | Security issues and bugs should be reported privately by emailing [contact@kevinchalet.com](mailto:contact@kevinchalet.com). 12 | 13 | You should receive a response within 48 hours. If for some reason you do not, please follow up via email to ensure we received your original message. 14 | 15 | Please do not open GitHub issues for anything you think might have a security implication. 16 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Odnoklassniki/OdnoklassnikiAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Odnoklassniki; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class OdnoklassnikiAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Image1 = "urn:ok:image1"; 17 | public const string Image2 = "urn:ok:image2"; 18 | public const string Image3 = "urn:ok:image3"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Spotify/SpotifyAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Spotify; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class SpotifyAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Product = "urn:spotify:product"; 17 | public const string ProfilePicture = "urn:spotify:profilepicture"; 18 | public const string Url = "urn:spotify:url"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Typeform/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://api.typeform.com/oauth/token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "Bearer", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": 3600 13 | } 14 | }, 15 | { 16 | "uri": "https://api.typeform.com/me", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "user_id": "id", 20 | "email": "testuser@example.com", 21 | "alias": "Test Name" 22 | } 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Notion/NotionAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Notion; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class NotionAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string WorkspaceName = "urn:notion:workspace_name"; 17 | public const string WorkspaceIcon = "urn:notion:workspace_icon"; 18 | public const string BotId = "urn:notion:bot_id"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.WorkWeixin/WorkWeixinAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.WorkWeixin; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class WorkWeixinAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Avatar = "urn:workweixin:avatar"; 17 | public const string Mobile = "urn:workweixin:mobile"; 18 | public const string Alias = "urn:workweixin:alias"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.SoundCloud/SoundCloudAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.SoundCloud; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class SoundCloudAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string City = "urn:soundcloud:city"; 17 | public const string FullName = "urn:soundcloud:fullname"; 18 | public const string ProfileUrl = "urn:soundcloud:profileurl"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Calendly/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://auth.calendly.com/oauth/token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "Bearer", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": 3600 13 | } 14 | }, 15 | { 16 | "uri": "https://api.calendly.com/users/me", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "resource": { 20 | "email": "testuser@example.com", 21 | "name": "Test User" 22 | } 23 | } 24 | } 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /docs/okta.md: -------------------------------------------------------------------------------- 1 | # Integrating the Okta Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddOkta(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | options.Domain = "https://dev-000000.okta.com"; 12 | }); 13 | ``` 14 | 15 | ## Required Additional Settings 16 | 17 | | Property Name | Property Type | Description | Default Value | 18 | |:--|:--|:--|:--| 19 | | `AuthorizationServer` | `string` | The Okta custom authorization server to use for authentication. | `default` | 20 | | `Domain` | `string?` | The Okta domain (_Org URL_) to use for authentication. This can be found on the `/dev/console` page of the Okta admin portal for your account. | `null` | 21 | 22 | ## Optional Settings 23 | 24 | _None._ 25 | -------------------------------------------------------------------------------- /docs/salesforce.md: -------------------------------------------------------------------------------- 1 | # Integrating the Salesforce Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddSalesforce(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | }); 12 | ``` 13 | 14 | ## Required Additional Settings 15 | 16 | _None._ 17 | 18 | ## Optional Settings 19 | 20 | | Property Name | Property Type | Description | Default Value | 21 | |:--|:--|:--|:--| 22 | | `Environment` | [`SalesforceAuthenticationEnvironment`](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers/blob/dev/src/AspNet.Security.OAuth.Salesforce/SalesforceAuthenticationEnvironment.cs "SalesforceAuthenticationEnvironment enumeration") | The Salesforce environment to use. | `SalesforceAuthenticationEnvironment.Production` | 23 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Vimeo/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://api.vimeo.com/oauth/access_token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://api.vimeo.com/me", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "uri": "https://vimeo.local/my-id", 20 | "name": "John Smith", 21 | "link": "https://vimeo.local/JohnSmith" 22 | } 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Webflow/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://api.webflow.com/oauth/access_token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "bearer", 11 | "scope": "authorized_user:read" 12 | } 13 | }, 14 | { 15 | "uri": "https://api.webflow.com/v2/token/authorized_by", 16 | "contentFormat": "json", 17 | "contentJson": { 18 | "id": "545bbecb7bdd6769632504a7", 19 | "email": "some@email.com", 20 | "firstName": "Some", 21 | "lastName": "One" 22 | } 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /eng/common/post-build/nuget-validation.ps1: -------------------------------------------------------------------------------- 1 | # This script validates NuGet package metadata information using this 2 | # tool: https://github.com/NuGet/NuGetGallery/tree/jver-verify/src/VerifyMicrosoftPackage 3 | 4 | param( 5 | [Parameter(Mandatory=$true)][string] $PackagesPath # Path to where the packages to be validated are 6 | ) 7 | 8 | # `tools.ps1` checks $ci to perform some actions. Since the post-build 9 | # scripts don't necessarily execute in the same agent that run the 10 | # build.ps1/sh script this variable isn't automatically set. 11 | $ci = $true 12 | $disableConfigureToolsetImport = $true 13 | . $PSScriptRoot\..\tools.ps1 14 | 15 | try { 16 | & $PSScriptRoot\nuget-verification.ps1 ${PackagesPath}\*.nupkg 17 | } 18 | catch { 19 | Write-Host $_.ScriptStackTrace 20 | Write-PipelineTelemetryError -Category 'NuGetValidation' -Message $_ 21 | ExitWithExitCode 1 22 | } 23 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Ebay/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://api.ebay.com/identity/v1/oauth2/token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "refresh_token_expires_in": 300, 13 | "expires_in": 300 14 | } 15 | }, 16 | { 17 | "uri": "https://apiz.ebay.com/commerce/identity/v1/user", 18 | "contentFormat": "json", 19 | "contentJson": { 20 | "userId": "my-id", 21 | "username": "John Smith" 22 | } 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Xumm/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://oauth2.xumm.app/token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://oauth2.xumm.app/userinfo", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "sub": "my-r-address", 20 | "name": "John Smith", 21 | "email": "john.smith@xumm.me", 22 | "picture": "Avatar" 23 | } 24 | } 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/NetEase/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "comment": "https://reg.163.com/help/help_oauth2.html", 6 | "uri": "https://reg.163.com/open/oauth2/token.do", 7 | "method": "POST", 8 | "contentFormat": "json", 9 | "contentJson": { 10 | "access_token": "secret-access-token", 11 | "expires_in": "5184000" 12 | } 13 | }, 14 | { 15 | "comment": "See https://reg.163.com/help/help_oauth2.html", 16 | "uri": "https://reg.163.com/open/oauth2/getUserInfo.do", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "userId":"820014421", 20 | "username":"urstest_mreg" 21 | } 22 | } 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Moodle/MoodleAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Moodle; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class MoodleAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string IdNumber = "urn:moodle:idnumber"; 17 | public const string MoodleId = "urn:moodle:id"; 18 | public const string Language = "urn:moodle:lang"; 19 | public const string Description = "urn:moodle:desc"; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Imgur/ImgurAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Imgur; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class ImgurAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Bio = "urn:imgur:bio"; 17 | public const string Created = "urn:imgur:created"; 18 | public const string ProExpiration = "urn:imgur:proexpiration"; 19 | public const string Reputation = "urn:imgur:reputation"; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.VkId/VkIdAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.VkId; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class VkIdAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Avatar = "urn:vkid:avatar:link"; 17 | public const string IsVerified = "urn:vkid:verified"; 18 | } 19 | 20 | public static class AuthenticationProperties 21 | { 22 | public const string DeviceId = "DeviceId"; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Asana/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://app.asana.com/-/oauth_token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://app.asana.com/api/1.0/users/me", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "data": { 20 | "id": "my-id", 21 | "name": "John Smith", 22 | "email": "john@john-smith.local" 23 | } 24 | } 25 | } 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /Directory.Packages.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.HubSpot/HubSpotAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.HubSpot; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class HubSpotAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string HubId = "urn:HubSpot:hub_id"; 17 | public const string UserId = "urn:HubSpot:user_id"; 18 | public const string AppId = "urn:HubSpot:app_id"; 19 | public const string HubDomain = "urn:HubSpot:hub_domain"; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Linear/LinearAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Linear; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class LinearAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string OrganizationId = "urn:linear:organization_id"; 17 | 18 | public const string OrganizationName = "urn:linear:organization_name"; 19 | 20 | public const string OrganizationUrlKey = "urn:linear:organization_urlkey"; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Zoho/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://accounts.zoho.com/oauth/v2/token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "Bearer", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": 3600 13 | } 14 | }, 15 | { 16 | "uri": "https://accounts.zoho.com/oauth/user/info", 17 | "method": "GET", 18 | "contentFormat": "json", 19 | "contentJson": { 20 | "ZUID": "1234567890", 21 | "Email": "testuser@example.com", 22 | "Display_Name": "User Name" 23 | } 24 | } 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Salesforce/SalesforceAuthenticationEnvironment.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Salesforce; 8 | 9 | /// 10 | /// Defines a list of environments used to determine the appropriate 11 | /// OAuth2 endpoints when communicating with Salesforce. 12 | /// 13 | public enum SalesforceAuthenticationEnvironment 14 | { 15 | /// 16 | /// Use login.salesforce.com in the OAuth2 endpoints. 17 | /// 18 | Production = 0, 19 | 20 | /// 21 | /// Uses test.salesforce.com in the OAuth2 endpoints. 22 | /// 23 | Test = 1 24 | } 25 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/CiscoSpark/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://api.ciscospark.com/v1/access_token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://api.ciscospark.com/v1/people/me", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "id": "my-id", 20 | "displayName": "John Smith", 21 | "emails": [ 22 | "john@john-smith.local" 23 | ] 24 | } 25 | } 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Docusign/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://account.docusign.com/oauth/token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "Bearer", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": 3600 13 | } 14 | }, 15 | { 16 | "uri": "https://account.docusign.com/oauth/userinfo", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "email": "testuser@example.com", 20 | "name": "User Name", 21 | "given_name": "User", 22 | "family_name": "Name" 23 | } 24 | } 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.QuickBooks/QuickBooksAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.QuickBooks; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class QuickBooksAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string AccountType = "urn:quickbooks:appenvrionment"; 17 | public const string EmailVerified = "urn:quickbooks:email_verified"; 18 | public const string PhoneNumberVerified = "urn:quickbooks:phone_number_verified"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Baidu/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://openapi.baidu.com/oauth/2.0/token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://openapi.baidu.com/rest/2.0/passport/users/getLoggedInUser?access_token=secret-access-token", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "uid": "my-id", 20 | "uname": "my-name", 21 | "portrait": "my-portrait" 22 | } 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /eng/common/dotnet-install.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding(PositionalBinding=$false)] 2 | Param( 3 | [string] $verbosity = 'minimal', 4 | [string] $architecture = '', 5 | [string] $version = 'Latest', 6 | [string] $runtime = 'dotnet', 7 | [string] $RuntimeSourceFeed = '', 8 | [string] $RuntimeSourceFeedKey = '' 9 | ) 10 | 11 | . $PSScriptRoot\tools.ps1 12 | 13 | $dotnetRoot = Join-Path $RepoRoot '.dotnet' 14 | 15 | $installdir = $dotnetRoot 16 | try { 17 | if ($architecture -and $architecture.Trim() -eq 'x86') { 18 | $installdir = Join-Path $installdir 'x86' 19 | } 20 | InstallDotNet $installdir $version $architecture $runtime $true -RuntimeSourceFeed $RuntimeSourceFeed -RuntimeSourceFeedKey $RuntimeSourceFeedKey 21 | } 22 | catch { 23 | Write-Host $_.ScriptStackTrace 24 | Write-PipelineTelemetryError -Category 'InitializeToolset' -Message $_ 25 | ExitWithExitCode 1 26 | } 27 | 28 | ExitWithExitCode 0 29 | -------------------------------------------------------------------------------- /eng/common/dotnet.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # This script is used to install the .NET SDK. 4 | # It will also invoke the SDK with any provided arguments. 5 | 6 | source="${BASH_SOURCE[0]}" 7 | # resolve $SOURCE until the file is no longer a symlink 8 | while [[ -h $source ]]; do 9 | scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" 10 | source="$(readlink "$source")" 11 | 12 | # if $source was a relative symlink, we need to resolve it relative to the path where the 13 | # symlink file was located 14 | [[ $source != /* ]] && source="$scriptroot/$source" 15 | done 16 | scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" 17 | 18 | source $scriptroot/tools.sh 19 | InitializeDotNetCli true # install 20 | 21 | # Invoke acquired SDK with args if they are provided 22 | if [[ $# > 0 ]]; then 23 | __dotnetDir=${_InitializeDotNetCli} 24 | dotnetPath=${__dotnetDir}/dotnet 25 | ${dotnetPath} "$@" 26 | fi 27 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/ArcGIS/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://www.arcgis.com/sharing/rest/oauth2/token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://www.arcgis.com/sharing/rest/community/self?f=json&token=secret-access-token", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "username": "my-id", 20 | "fullName": "John Smith", 21 | "email": "john@john-smith.local" 22 | } 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Miro/MiroAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Miro; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class MiroAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string OrganizationId = "urn:miro:organization_id"; 17 | 18 | public const string OrganizationName = "urn:miro:organization_name"; 19 | 20 | public const string TeamId = "urn:miro:team_id"; 21 | 22 | public const string TeamName = "urn:miro:team_name"; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Xero/XeroAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Xero; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class XeroAuthenticationConstants 13 | { 14 | public static class ClaimNames 15 | { 16 | /// 17 | /// Unique user identifier. 18 | /// 19 | public const string UserId = "xero_userid"; 20 | 21 | /// 22 | /// User email address. 23 | /// 24 | public const string Email = "email"; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Amazon/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://api.amazon.com/auth/o2/token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://api.amazon.com/user/profile?fields=email,name,user_id,postal_code", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "user_id": "my-id", 20 | "name": "John Smith", 21 | "email": "john@john-smith.local", 22 | "postal_code": "90210" 23 | } 24 | } 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/MailChimp/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://login.mailchimp.com/oauth2/token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://login.mailchimp.com/oauth2/metadata", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "accountname": "John Smith", 20 | "login": { 21 | "login_id": "my-id", 22 | "login_email": "john@john-smith.local" 23 | } 24 | } 25 | } 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0.0", 3 | "tasks": [ 4 | { 5 | "label": "build", 6 | "command": "dotnet", 7 | "type": "process", 8 | "args": [ 9 | "build", 10 | "${workspaceFolder}/test/AspNet.Security.OAuth.Providers.Tests/AspNet.Security.OAuth.Providers.Tests.csproj", 11 | "/property:GenerateFullPaths=true", 12 | "/consoleloggerparameters:NoSummary" 13 | ], 14 | "problemMatcher": "$msCompile" 15 | }, 16 | { 17 | "label": "watch", 18 | "command": "dotnet", 19 | "type": "process", 20 | "args": [ 21 | "watch", 22 | "run", 23 | "${workspaceFolder}/test/AspNet.Security.OAuth.Providers.Tests/AspNet.Security.OAuth.Providers.Tests.csproj", 24 | "/property:GenerateFullPaths=true", 25 | "/consoleloggerparameters:NoSummary" 26 | ], 27 | "problemMatcher": "$msCompile" 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /docs/battlenet.md: -------------------------------------------------------------------------------- 1 | # Integrating the BattleNet Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddBattleNet(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | options.Region = BattleNetAuthenticationRegion.Europe; 12 | }); 13 | ``` 14 | 15 | ## Required Additional Settings 16 | 17 | | Property Name | Property Type | Description | Default Value | 18 | |:--|:--|:--|:--| 19 | | `Region` | [`BattleNetAuthenticationRegion`](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers/blob/dev/src/AspNet.Security.OAuth.BattleNet/BattleNetAuthenticationRegion.cs "BattleNetAuthenticationRegion enumeration") | The region used to determine the appropriate API endpoints. | `BattleNetAuthenticationRegion.America` | 20 | 21 | ## Optional Settings 22 | 23 | _None._ 24 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Discord/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://discord.com/api/oauth2/token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://discord.com/api/users/@me", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "id": "my-id", 20 | "username": "John Smith", 21 | "email": "john@john-smith.local", 22 | "discriminator": "1234", 23 | "avatar": "dummy-avatar-hash" 24 | } 25 | } 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /NuGet.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /docs/workweixin.md: -------------------------------------------------------------------------------- 1 | # Integrating the WorkWeixin Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddWorkWeixin(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | options.AgentId = "my-agent-id"; 12 | }); 13 | ``` 14 | 15 | ## Required Additional Settings 16 | 17 | 18 | | Property Name | Property Type | Description | Default Value | 19 | |:--|:--|:--|:--| 20 | | `AgentId` | `string` | Gets or sets the web application ID of the licensor. | `null` | 21 | 22 | 23 | ## Optional Settings 24 | 25 | | Property Name | Property Type | Description | Default Value | 26 | |:--|:--|:--|:--| 27 | | `UserIdentificationEndpoint` | `string` | The address of the endpoint to use for user identification. | `WorkWeixinAuthenticationDefaults.UserIdentificationEndpoint` | 28 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Yandex/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://oauth.yandex.ru/token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://login.yandex.ru/info", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "id": "my-id", 20 | "login": "John Smith", 21 | "first_name": "John", 22 | "last_name": "Smith", 23 | "emails": [ 24 | "john@john-smith.local" 25 | ] 26 | } 27 | } 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Salesforce/SalesforceAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Salesforce; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class SalesforceAuthenticationConstants 13 | { 14 | public static class Claims 15 | { 16 | public const string Email = "urn:salesforce:email"; 17 | public const string RestUrl = "urn:salesforce:rest_url"; 18 | public const string ThumbnailPhoto = "urn:salesforce:thumbnail_photo"; 19 | public const string UtcOffset = "urn:salesforce:utc_offset"; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/AspNet.Security.OAuth.Twitter/TwitterAuthenticationConstants.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) 3 | * See https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers 4 | * for more information concerning the license and the contributors participating to this project. 5 | */ 6 | 7 | namespace AspNet.Security.OAuth.Twitter; 8 | 9 | /// 10 | /// Contains constants specific to the . 11 | /// 12 | public static class TwitterAuthenticationConstants 13 | { 14 | /// 15 | /// Contains claim types specific to Twitter. 16 | /// 17 | public static class Claims 18 | { 19 | /// 20 | /// The claim for the friendly name of a user, as shown on their profile. 21 | /// 22 | public const string Name = "urn:twitter:name"; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/VisualStudio/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://app.vssps.visualstudio.com/oauth2/token", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://app.vssps.visualstudio.com/_apis/profile/profiles/me", 17 | "contentFormat": "json", 18 | "contentJson": { 19 | "id": "my-id", 20 | "publicAlias": "John Smith", 21 | "displayName": "John", 22 | "emailAddress": "john@john-smith.local" 23 | } 24 | } 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /test/AspNet.Security.OAuth.Providers.Tests/Zendesk/bundle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/justeat/httpclient-interception/master/src/HttpClientInterception/Bundles/http-request-bundle-schema.json", 3 | "items": [ 4 | { 5 | "uri": "https://glowingwaffle.zendesk.com/oauth/tokens", 6 | "method": "POST", 7 | "contentFormat": "json", 8 | "contentJson": { 9 | "access_token": "secret-access-token", 10 | "token_type": "access", 11 | "refresh_token": "secret-refresh-token", 12 | "expires_in": "300" 13 | } 14 | }, 15 | { 16 | "uri": "https://glowingwaffle.zendesk.com/api/v2/users/me", 17 | "method": "GET", 18 | "contentFormat": "json", 19 | "contentJson": { 20 | "user": { 21 | "id": 35436, 22 | "name": "Johnny Agent", 23 | "email": "johnnyagent@zendesk.com" 24 | } 25 | } 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /docs/github.md: -------------------------------------------------------------------------------- 1 | # Integrating the GitHub Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddGitHub(options => 8 | { 9 | options.ClientId = "my-client-id"; 10 | options.ClientSecret = "my-client-secret"; 11 | 12 | // Optional domain name for GitHub Enterprise on-premises deployments 13 | options.EnterpriseDomain = "github.corp.local"; 14 | }); 15 | ``` 16 | 17 | ## Required Additional Settings 18 | 19 | _None._ 20 | 21 | ## Optional Settings 22 | 23 | | Property Name | Property Type | Description | Default Value | 24 | |:--|:--|:--|:--| 25 | | `EnterpriseDomain` | `string?` | The domain name to use for a GitHub Enterprise on-premises deployment. | `null` | 26 | | `UserEmailsEndpoint` | `string` | The address of the endpoint exposing the email addresses associated with the logged in user. | `GitHubAuthenticationDefaults.UserEmailsEndpoint` | 27 | -------------------------------------------------------------------------------- /docs/miro.md: -------------------------------------------------------------------------------- 1 | # Integrating the Miro Provider 2 | 3 | ## Example 4 | 5 | ```csharp 6 | services.AddAuthentication(options => /* Auth configuration */) 7 | .AddMiro(options => 8 | { 9 | options.ClientId = configuration["Miro:ClientId"] ?? string.Empty; 10 | options.ClientSecret = configuration["Miro:ClientSecret"] ?? string.Empty; 11 | }) 12 | ``` 13 | 14 | ## Required Additional Settings 15 | 16 | _None._ 17 | 18 | ## Optional Settings 19 | 20 | _None._ 21 | 22 | ## Retrieving the user's email address 23 | 24 | The Miro provider does not return the user's email address, since the API endpoints to do that is available only on the Miro Enterprise plan. If you are on the Miro Enterprise plan, you can use the access token returned by the authentication flow to retrieve the user's email address yourself by following the Miro documentation for [getting the user info and email](https://developers.miro.com/docs/get-user-info-and-email). 25 | 26 | --------------------------------------------------------------------------------