├── .editorconfig
├── .gitignore
├── GitVersion.yml
├── LICENSE
├── Orleans.Security.Build.sln
├── Orleans.Security.sln
├── Orleans.Security.sln.DotSettings
├── README.md
├── azure-pipelines.yml
├── docs-builder
├── .stylelintrc.json
├── .travis.yml
├── 404.html
├── CODE_OF_CONDUCT.md
├── Gemfile
├── Index1.jpg
├── Index2.jpg
├── LICENSE.txt
├── README.md
├── Rakefile
├── _config.yml
├── _includes
│ ├── head.html
│ ├── head_custom.html
│ ├── js
│ │ └── custom.js
│ ├── nav.html
│ ├── title.html
│ └── vendor
│ │ └── anchor_headings.html
├── _layouts
│ ├── about.html
│ ├── default.html
│ ├── home.html
│ ├── page.html
│ ├── post.html
│ ├── table_wrappers.html
│ └── vendor
│ │ └── compress.html
├── _sass
│ ├── base.scss
│ ├── buttons.scss
│ ├── code.scss
│ ├── color_schemes
│ │ └── dark.scss
│ ├── content.scss
│ ├── custom
│ │ └── custom.scss
│ ├── labels.scss
│ ├── layout.scss
│ ├── navigation.scss
│ ├── overrides.scss
│ ├── search.scss
│ ├── support
│ │ ├── _functions.scss
│ │ ├── _variables.scss
│ │ ├── mixins
│ │ │ ├── _buttons.scss
│ │ │ ├── _layout.scss
│ │ │ ├── _typography.scss
│ │ │ └── mixins.scss
│ │ └── support.scss
│ ├── tables.scss
│ ├── typography.scss
│ ├── utilities
│ │ ├── _colors.scss
│ │ ├── _layout.scss
│ │ ├── _lists.scss
│ │ ├── _spacing.scss
│ │ ├── _typography.scss
│ │ └── utilities.scss
│ └── vendor
│ │ └── normalize.scss
│ │ ├── README.md
│ │ ├── normalize.scss
│ │ └── package.json
├── assets
│ ├── css
│ │ ├── dark-mode-preview.scss
│ │ └── just-the-docs.scss
│ ├── images
│ │ ├── just-the-docs.png
│ │ └── search.svg
│ └── js
│ │ ├── dark-mode-preview.js
│ │ ├── just-the-docs.js
│ │ ├── search-data.json
│ │ └── vendor
│ │ └── lunr.min.js
├── bin
│ └── just-the-docs
├── docs
│ ├── authorization
│ │ ├── authorization.md
│ │ ├── claims-based-authorization.md
│ │ ├── overview.md
│ │ ├── policy-based-authorization.md
│ │ ├── resource-based-authorization.md
│ │ ├── role-based-authorization.md
│ │ └── simple-authorization.md
│ └── releases
│ │ ├── releases.md
│ │ └── version-1-1.md
├── index.md
├── just-the-docs.gemspec
├── lib
│ └── tasks
│ │ └── search.rake
├── package-lock.json
├── package.json
├── resources
│ ├── Drawing1.vsdx
│ └── Drawing2.vsdx
└── script
│ └── build
├── docs
├── 404.html
├── CNAME
├── CODE_OF_CONDUCT.md
├── Index1.jpg
├── Index2.jpg
├── assets
│ ├── css
│ │ ├── dark-mode-preview.css
│ │ └── just-the-docs.css
│ ├── images
│ │ ├── just-the-docs.png
│ │ └── search.svg
│ └── js
│ │ ├── dark-mode-preview.js
│ │ ├── just-the-docs.js
│ │ ├── search-data.json
│ │ └── vendor
│ │ └── lunr.min.js
├── docs
│ ├── authorization.html
│ ├── authorization
│ │ ├── claims-based-authorization.html
│ │ ├── overview.html
│ │ ├── policy-based-authorization.html
│ │ ├── resource-based-authorization.html
│ │ ├── role-based-authorization.html
│ │ └── simple-authorization.html
│ ├── releases.html
│ └── releases
│ │ └── version-1-1.html
├── index.html
└── resources
│ ├── Drawing1.vsdx
│ └── Drawing2.vsdx
├── samples
├── aspnetcore-co-hosting
│ ├── ApiAndSiloHost
│ │ ├── ApiAndSiloHost.csproj
│ │ ├── Controllers
│ │ │ └── UserController.cs
│ │ ├── Orleans
│ │ │ └── AspNetCoreAccessTokenProvider.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── Startup.cs
│ │ ├── appsettings.Development.json
│ │ └── appsettings.json
│ ├── Grains
│ │ ├── AuthorizationConfig.cs
│ │ ├── GlobalSecretStorageGrain.cs
│ │ ├── Grains.csproj
│ │ ├── IGlobalSecretStorageGrain.cs
│ │ ├── IUserGrain.cs
│ │ └── UserGrain.cs
│ ├── IdentityServer
│ │ ├── IdentityServer.csproj
│ │ ├── IdentityServerConfig.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── Quickstart
│ │ │ ├── Account
│ │ │ │ ├── AccountController.cs
│ │ │ │ ├── AccountOptions.cs
│ │ │ │ ├── ExternalController.cs
│ │ │ │ ├── ExternalProvider.cs
│ │ │ │ ├── LoggedOutViewModel.cs
│ │ │ │ ├── LoginInputModel.cs
│ │ │ │ ├── LoginViewModel.cs
│ │ │ │ ├── LogoutInputModel.cs
│ │ │ │ ├── LogoutViewModel.cs
│ │ │ │ └── RedirectViewModel.cs
│ │ │ ├── Consent
│ │ │ │ ├── ConsentController.cs
│ │ │ │ ├── ConsentInputModel.cs
│ │ │ │ ├── ConsentOptions.cs
│ │ │ │ ├── ConsentViewModel.cs
│ │ │ │ ├── ProcessConsentResult.cs
│ │ │ │ └── ScopeViewModel.cs
│ │ │ ├── Device
│ │ │ │ ├── DeviceAuthorizationInputModel.cs
│ │ │ │ ├── DeviceAuthorizationViewModel.cs
│ │ │ │ └── DeviceController.cs
│ │ │ ├── Diagnostics
│ │ │ │ ├── DiagnosticsController.cs
│ │ │ │ └── DiagnosticsViewModel.cs
│ │ │ ├── Extensions.cs
│ │ │ ├── Grants
│ │ │ │ ├── GrantsController.cs
│ │ │ │ └── GrantsViewModel.cs
│ │ │ ├── Home
│ │ │ │ ├── ErrorViewModel.cs
│ │ │ │ └── HomeController.cs
│ │ │ ├── SecurityHeadersAttribute.cs
│ │ │ └── TestUsers.cs
│ │ ├── Startup.cs
│ │ ├── Views
│ │ │ ├── Account
│ │ │ │ ├── AccessDenied.cshtml
│ │ │ │ ├── LoggedOut.cshtml
│ │ │ │ ├── Login.cshtml
│ │ │ │ └── Logout.cshtml
│ │ │ ├── Consent
│ │ │ │ └── Index.cshtml
│ │ │ ├── Device
│ │ │ │ ├── Success.cshtml
│ │ │ │ ├── UserCodeCapture.cshtml
│ │ │ │ └── UserCodeConfirmation.cshtml
│ │ │ ├── Diagnostics
│ │ │ │ └── Index.cshtml
│ │ │ ├── Grants
│ │ │ │ └── Index.cshtml
│ │ │ ├── Home
│ │ │ │ └── Index.cshtml
│ │ │ ├── Shared
│ │ │ │ ├── Error.cshtml
│ │ │ │ ├── Redirect.cshtml
│ │ │ │ ├── _Layout.cshtml
│ │ │ │ ├── _Nav.cshtml
│ │ │ │ ├── _ScopeListItem.cshtml
│ │ │ │ └── _ValidationSummary.cshtml
│ │ │ ├── _ViewImports.cshtml
│ │ │ └── _ViewStart.cshtml
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ ├── tempkey.jwk
│ │ ├── tempkey.rsa
│ │ └── wwwroot
│ │ │ ├── css
│ │ │ ├── site.css
│ │ │ ├── site.less
│ │ │ ├── site.min.css
│ │ │ └── site.scss
│ │ │ ├── favicon.ico
│ │ │ ├── icon.jpg
│ │ │ ├── icon.png
│ │ │ ├── js
│ │ │ ├── signin-redirect.js
│ │ │ └── signout-redirect.js
│ │ │ └── lib
│ │ │ ├── bootstrap
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── css
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.css.map
│ │ │ │ └── bootstrap.min.css
│ │ │ ├── dist
│ │ │ │ ├── css
│ │ │ │ │ ├── bootstrap-grid.css
│ │ │ │ │ ├── bootstrap-grid.css.map
│ │ │ │ │ ├── bootstrap-grid.min.css
│ │ │ │ │ ├── bootstrap-grid.min.css.map
│ │ │ │ │ ├── bootstrap-reboot.css
│ │ │ │ │ ├── bootstrap-reboot.css.map
│ │ │ │ │ ├── bootstrap-reboot.min.css
│ │ │ │ │ ├── bootstrap-reboot.min.css.map
│ │ │ │ │ ├── bootstrap.css
│ │ │ │ │ ├── bootstrap.css.map
│ │ │ │ │ ├── bootstrap.min.css
│ │ │ │ │ └── bootstrap.min.css.map
│ │ │ │ └── js
│ │ │ │ │ ├── bootstrap.bundle.js
│ │ │ │ │ ├── bootstrap.bundle.js.map
│ │ │ │ │ ├── bootstrap.bundle.min.js
│ │ │ │ │ ├── bootstrap.bundle.min.js.map
│ │ │ │ │ ├── bootstrap.js
│ │ │ │ │ ├── bootstrap.js.map
│ │ │ │ │ ├── bootstrap.min.js
│ │ │ │ │ └── bootstrap.min.js.map
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ │ └── glyphicons-halflings-regular.woff2
│ │ │ ├── js
│ │ │ │ ├── bootstrap.js
│ │ │ │ └── bootstrap.min.js
│ │ │ └── scss
│ │ │ │ ├── _alert.scss
│ │ │ │ ├── _badge.scss
│ │ │ │ ├── _breadcrumb.scss
│ │ │ │ ├── _button-group.scss
│ │ │ │ ├── _buttons.scss
│ │ │ │ ├── _card.scss
│ │ │ │ ├── _carousel.scss
│ │ │ │ ├── _close.scss
│ │ │ │ ├── _code.scss
│ │ │ │ ├── _custom-forms.scss
│ │ │ │ ├── _dropdown.scss
│ │ │ │ ├── _forms.scss
│ │ │ │ ├── _functions.scss
│ │ │ │ ├── _grid.scss
│ │ │ │ ├── _images.scss
│ │ │ │ ├── _input-group.scss
│ │ │ │ ├── _jumbotron.scss
│ │ │ │ ├── _list-group.scss
│ │ │ │ ├── _media.scss
│ │ │ │ ├── _mixins.scss
│ │ │ │ ├── _modal.scss
│ │ │ │ ├── _nav.scss
│ │ │ │ ├── _navbar.scss
│ │ │ │ ├── _pagination.scss
│ │ │ │ ├── _popover.scss
│ │ │ │ ├── _print.scss
│ │ │ │ ├── _progress.scss
│ │ │ │ ├── _reboot.scss
│ │ │ │ ├── _root.scss
│ │ │ │ ├── _spinners.scss
│ │ │ │ ├── _tables.scss
│ │ │ │ ├── _toasts.scss
│ │ │ │ ├── _tooltip.scss
│ │ │ │ ├── _transitions.scss
│ │ │ │ ├── _type.scss
│ │ │ │ ├── _utilities.scss
│ │ │ │ ├── _variables.scss
│ │ │ │ ├── bootstrap-grid.scss
│ │ │ │ ├── bootstrap-reboot.scss
│ │ │ │ ├── bootstrap.scss
│ │ │ │ ├── mixins
│ │ │ │ ├── _alert.scss
│ │ │ │ ├── _background-variant.scss
│ │ │ │ ├── _badge.scss
│ │ │ │ ├── _border-radius.scss
│ │ │ │ ├── _box-shadow.scss
│ │ │ │ ├── _breakpoints.scss
│ │ │ │ ├── _buttons.scss
│ │ │ │ ├── _caret.scss
│ │ │ │ ├── _clearfix.scss
│ │ │ │ ├── _deprecate.scss
│ │ │ │ ├── _float.scss
│ │ │ │ ├── _forms.scss
│ │ │ │ ├── _gradients.scss
│ │ │ │ ├── _grid-framework.scss
│ │ │ │ ├── _grid.scss
│ │ │ │ ├── _hover.scss
│ │ │ │ ├── _image.scss
│ │ │ │ ├── _list-group.scss
│ │ │ │ ├── _lists.scss
│ │ │ │ ├── _nav-divider.scss
│ │ │ │ ├── _pagination.scss
│ │ │ │ ├── _reset-text.scss
│ │ │ │ ├── _resize.scss
│ │ │ │ ├── _screen-reader.scss
│ │ │ │ ├── _size.scss
│ │ │ │ ├── _table-row.scss
│ │ │ │ ├── _text-emphasis.scss
│ │ │ │ ├── _text-hide.scss
│ │ │ │ ├── _text-truncate.scss
│ │ │ │ ├── _transition.scss
│ │ │ │ └── _visibility.scss
│ │ │ │ ├── utilities
│ │ │ │ ├── _align.scss
│ │ │ │ ├── _background.scss
│ │ │ │ ├── _borders.scss
│ │ │ │ ├── _clearfix.scss
│ │ │ │ ├── _display.scss
│ │ │ │ ├── _embed.scss
│ │ │ │ ├── _flex.scss
│ │ │ │ ├── _float.scss
│ │ │ │ ├── _overflow.scss
│ │ │ │ ├── _position.scss
│ │ │ │ ├── _screenreaders.scss
│ │ │ │ ├── _shadows.scss
│ │ │ │ ├── _sizing.scss
│ │ │ │ ├── _spacing.scss
│ │ │ │ ├── _stretched-link.scss
│ │ │ │ ├── _text.scss
│ │ │ │ └── _visibility.scss
│ │ │ │ └── vendor
│ │ │ │ └── _rfs.scss
│ │ │ └── jquery
│ │ │ ├── LICENSE.txt
│ │ │ ├── README.md
│ │ │ ├── dist
│ │ │ ├── jquery.js
│ │ │ ├── jquery.min.js
│ │ │ ├── jquery.min.map
│ │ │ ├── jquery.slim.js
│ │ │ ├── jquery.slim.min.js
│ │ │ └── jquery.slim.min.map
│ │ │ ├── jquery.js
│ │ │ ├── jquery.min.js
│ │ │ └── jquery.min.map
│ └── WebClient
│ │ ├── Controllers
│ │ └── HomeController.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ └── launchSettings.json
│ │ ├── Startup.cs
│ │ ├── Views
│ │ ├── Home
│ │ │ ├── Index.cshtml
│ │ │ └── UserProfile.cshtml
│ │ └── _ViewImports.cshtml
│ │ ├── WebClient.csproj
│ │ ├── appsettings.Development.json
│ │ └── appsettings.json
├── dotnet-5
│ ├── Api
│ │ ├── Api.csproj
│ │ ├── Controllers
│ │ │ └── UserController.cs
│ │ ├── Orleans
│ │ │ ├── AspNetCoreAccessTokenProvider.cs
│ │ │ └── OrleansClusterClientProvider.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── Startup.cs
│ │ ├── appsettings.Development.json
│ │ └── appsettings.json
│ ├── ConsoleClient
│ │ ├── ConsoleClient.csproj
│ │ └── Program.cs
│ ├── Grains
│ │ ├── GlobalSecretStorageGrain.cs
│ │ ├── Grains.csproj
│ │ └── UserGrain.cs
│ ├── GrainsInterfaces
│ │ ├── AuthorizationConfig.cs
│ │ ├── GrainsInterfaces.csproj
│ │ ├── IGlobalSecretStorageGrain.cs
│ │ └── IUserGrain.cs
│ ├── IdentityServer
│ │ ├── IdentityServer.csproj
│ │ ├── IdentityServerConfig.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ ├── Quickstart
│ │ │ ├── Account
│ │ │ │ ├── AccountController.cs
│ │ │ │ ├── AccountOptions.cs
│ │ │ │ ├── ExternalController.cs
│ │ │ │ ├── ExternalProvider.cs
│ │ │ │ ├── LoggedOutViewModel.cs
│ │ │ │ ├── LoginInputModel.cs
│ │ │ │ ├── LoginViewModel.cs
│ │ │ │ ├── LogoutInputModel.cs
│ │ │ │ ├── LogoutViewModel.cs
│ │ │ │ └── RedirectViewModel.cs
│ │ │ ├── Consent
│ │ │ │ ├── ConsentController.cs
│ │ │ │ ├── ConsentInputModel.cs
│ │ │ │ ├── ConsentOptions.cs
│ │ │ │ ├── ConsentViewModel.cs
│ │ │ │ ├── ProcessConsentResult.cs
│ │ │ │ └── ScopeViewModel.cs
│ │ │ ├── Device
│ │ │ │ ├── DeviceAuthorizationInputModel.cs
│ │ │ │ ├── DeviceAuthorizationViewModel.cs
│ │ │ │ └── DeviceController.cs
│ │ │ ├── Diagnostics
│ │ │ │ ├── DiagnosticsController.cs
│ │ │ │ └── DiagnosticsViewModel.cs
│ │ │ ├── Extensions.cs
│ │ │ ├── Grants
│ │ │ │ ├── GrantsController.cs
│ │ │ │ └── GrantsViewModel.cs
│ │ │ ├── Home
│ │ │ │ ├── ErrorViewModel.cs
│ │ │ │ └── HomeController.cs
│ │ │ ├── SecurityHeadersAttribute.cs
│ │ │ └── TestUsers.cs
│ │ ├── Startup.cs
│ │ ├── Views
│ │ │ ├── Account
│ │ │ │ ├── AccessDenied.cshtml
│ │ │ │ ├── LoggedOut.cshtml
│ │ │ │ ├── Login.cshtml
│ │ │ │ └── Logout.cshtml
│ │ │ ├── Consent
│ │ │ │ └── Index.cshtml
│ │ │ ├── Device
│ │ │ │ ├── Success.cshtml
│ │ │ │ ├── UserCodeCapture.cshtml
│ │ │ │ └── UserCodeConfirmation.cshtml
│ │ │ ├── Diagnostics
│ │ │ │ └── Index.cshtml
│ │ │ ├── Grants
│ │ │ │ └── Index.cshtml
│ │ │ ├── Home
│ │ │ │ └── Index.cshtml
│ │ │ ├── Shared
│ │ │ │ ├── Error.cshtml
│ │ │ │ ├── Redirect.cshtml
│ │ │ │ ├── _Layout.cshtml
│ │ │ │ ├── _Nav.cshtml
│ │ │ │ ├── _ScopeListItem.cshtml
│ │ │ │ └── _ValidationSummary.cshtml
│ │ │ ├── _ViewImports.cshtml
│ │ │ └── _ViewStart.cshtml
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ ├── tempkey.jwk
│ │ ├── tempkey.rsa
│ │ └── wwwroot
│ │ │ ├── css
│ │ │ ├── site.css
│ │ │ ├── site.less
│ │ │ ├── site.min.css
│ │ │ └── site.scss
│ │ │ ├── favicon.ico
│ │ │ ├── icon.jpg
│ │ │ ├── icon.png
│ │ │ ├── js
│ │ │ ├── signin-redirect.js
│ │ │ └── signout-redirect.js
│ │ │ └── lib
│ │ │ ├── bootstrap
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── css
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.css.map
│ │ │ │ └── bootstrap.min.css
│ │ │ ├── dist
│ │ │ │ ├── css
│ │ │ │ │ ├── bootstrap-grid.css
│ │ │ │ │ ├── bootstrap-grid.css.map
│ │ │ │ │ ├── bootstrap-grid.min.css
│ │ │ │ │ ├── bootstrap-grid.min.css.map
│ │ │ │ │ ├── bootstrap-reboot.css
│ │ │ │ │ ├── bootstrap-reboot.css.map
│ │ │ │ │ ├── bootstrap-reboot.min.css
│ │ │ │ │ ├── bootstrap-reboot.min.css.map
│ │ │ │ │ ├── bootstrap.css
│ │ │ │ │ ├── bootstrap.css.map
│ │ │ │ │ ├── bootstrap.min.css
│ │ │ │ │ └── bootstrap.min.css.map
│ │ │ │ └── js
│ │ │ │ │ ├── bootstrap.bundle.js
│ │ │ │ │ ├── bootstrap.bundle.js.map
│ │ │ │ │ ├── bootstrap.bundle.min.js
│ │ │ │ │ ├── bootstrap.bundle.min.js.map
│ │ │ │ │ ├── bootstrap.js
│ │ │ │ │ ├── bootstrap.js.map
│ │ │ │ │ ├── bootstrap.min.js
│ │ │ │ │ └── bootstrap.min.js.map
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ │ └── glyphicons-halflings-regular.woff2
│ │ │ ├── js
│ │ │ │ ├── bootstrap.js
│ │ │ │ └── bootstrap.min.js
│ │ │ └── scss
│ │ │ │ ├── _alert.scss
│ │ │ │ ├── _badge.scss
│ │ │ │ ├── _breadcrumb.scss
│ │ │ │ ├── _button-group.scss
│ │ │ │ ├── _buttons.scss
│ │ │ │ ├── _card.scss
│ │ │ │ ├── _carousel.scss
│ │ │ │ ├── _close.scss
│ │ │ │ ├── _code.scss
│ │ │ │ ├── _custom-forms.scss
│ │ │ │ ├── _dropdown.scss
│ │ │ │ ├── _forms.scss
│ │ │ │ ├── _functions.scss
│ │ │ │ ├── _grid.scss
│ │ │ │ ├── _images.scss
│ │ │ │ ├── _input-group.scss
│ │ │ │ ├── _jumbotron.scss
│ │ │ │ ├── _list-group.scss
│ │ │ │ ├── _media.scss
│ │ │ │ ├── _mixins.scss
│ │ │ │ ├── _modal.scss
│ │ │ │ ├── _nav.scss
│ │ │ │ ├── _navbar.scss
│ │ │ │ ├── _pagination.scss
│ │ │ │ ├── _popover.scss
│ │ │ │ ├── _print.scss
│ │ │ │ ├── _progress.scss
│ │ │ │ ├── _reboot.scss
│ │ │ │ ├── _root.scss
│ │ │ │ ├── _spinners.scss
│ │ │ │ ├── _tables.scss
│ │ │ │ ├── _toasts.scss
│ │ │ │ ├── _tooltip.scss
│ │ │ │ ├── _transitions.scss
│ │ │ │ ├── _type.scss
│ │ │ │ ├── _utilities.scss
│ │ │ │ ├── _variables.scss
│ │ │ │ ├── bootstrap-grid.scss
│ │ │ │ ├── bootstrap-reboot.scss
│ │ │ │ ├── bootstrap.scss
│ │ │ │ ├── mixins
│ │ │ │ ├── _alert.scss
│ │ │ │ ├── _background-variant.scss
│ │ │ │ ├── _badge.scss
│ │ │ │ ├── _border-radius.scss
│ │ │ │ ├── _box-shadow.scss
│ │ │ │ ├── _breakpoints.scss
│ │ │ │ ├── _buttons.scss
│ │ │ │ ├── _caret.scss
│ │ │ │ ├── _clearfix.scss
│ │ │ │ ├── _deprecate.scss
│ │ │ │ ├── _float.scss
│ │ │ │ ├── _forms.scss
│ │ │ │ ├── _gradients.scss
│ │ │ │ ├── _grid-framework.scss
│ │ │ │ ├── _grid.scss
│ │ │ │ ├── _hover.scss
│ │ │ │ ├── _image.scss
│ │ │ │ ├── _list-group.scss
│ │ │ │ ├── _lists.scss
│ │ │ │ ├── _nav-divider.scss
│ │ │ │ ├── _pagination.scss
│ │ │ │ ├── _reset-text.scss
│ │ │ │ ├── _resize.scss
│ │ │ │ ├── _screen-reader.scss
│ │ │ │ ├── _size.scss
│ │ │ │ ├── _table-row.scss
│ │ │ │ ├── _text-emphasis.scss
│ │ │ │ ├── _text-hide.scss
│ │ │ │ ├── _text-truncate.scss
│ │ │ │ ├── _transition.scss
│ │ │ │ └── _visibility.scss
│ │ │ │ ├── utilities
│ │ │ │ ├── _align.scss
│ │ │ │ ├── _background.scss
│ │ │ │ ├── _borders.scss
│ │ │ │ ├── _clearfix.scss
│ │ │ │ ├── _display.scss
│ │ │ │ ├── _embed.scss
│ │ │ │ ├── _flex.scss
│ │ │ │ ├── _float.scss
│ │ │ │ ├── _overflow.scss
│ │ │ │ ├── _position.scss
│ │ │ │ ├── _screenreaders.scss
│ │ │ │ ├── _shadows.scss
│ │ │ │ ├── _sizing.scss
│ │ │ │ ├── _spacing.scss
│ │ │ │ ├── _stretched-link.scss
│ │ │ │ ├── _text.scss
│ │ │ │ └── _visibility.scss
│ │ │ │ └── vendor
│ │ │ │ └── _rfs.scss
│ │ │ └── jquery
│ │ │ ├── LICENSE.txt
│ │ │ ├── README.md
│ │ │ ├── dist
│ │ │ ├── jquery.js
│ │ │ ├── jquery.min.js
│ │ │ ├── jquery.min.map
│ │ │ ├── jquery.slim.js
│ │ │ ├── jquery.slim.min.js
│ │ │ └── jquery.slim.min.map
│ │ │ ├── jquery.js
│ │ │ ├── jquery.min.js
│ │ │ └── jquery.min.map
│ ├── SiloHost1
│ │ ├── Program.cs
│ │ └── SiloHost1.csproj
│ └── WebClient
│ │ ├── Controllers
│ │ └── HomeController.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ └── launchSettings.json
│ │ ├── Startup.cs
│ │ ├── Views
│ │ ├── Home
│ │ │ ├── Index.cshtml
│ │ │ └── UserProfile.cshtml
│ │ └── _ViewImports.cshtml
│ │ ├── WebClient.csproj
│ │ ├── appsettings.Development.json
│ │ └── appsettings.json
└── dotnetcore-3-1
│ ├── Api
│ ├── Api.csproj
│ ├── Controllers
│ │ └── UserController.cs
│ ├── Orleans
│ │ ├── AspNetCoreAccessTokenProvider.cs
│ │ └── OrleansClusterClientProvider.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ ├── Startup.cs
│ ├── appsettings.Development.json
│ └── appsettings.json
│ ├── ConsoleClient
│ ├── ConsoleClient.csproj
│ └── Program.cs
│ ├── Grains
│ ├── GlobalSecretStorageGrain.cs
│ ├── Grains.csproj
│ └── UserGrain.cs
│ ├── GrainsInterfaces
│ ├── AuthorizationConfig.cs
│ ├── GrainsInterfaces.csproj
│ ├── IGlobalSecretStorageGrain.cs
│ └── IUserGrain.cs
│ ├── IdentityServer
│ ├── IdentityServer.csproj
│ ├── IdentityServerConfig.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ ├── Quickstart
│ │ ├── Account
│ │ │ ├── AccountController.cs
│ │ │ ├── AccountOptions.cs
│ │ │ ├── ExternalController.cs
│ │ │ ├── ExternalProvider.cs
│ │ │ ├── LoggedOutViewModel.cs
│ │ │ ├── LoginInputModel.cs
│ │ │ ├── LoginViewModel.cs
│ │ │ ├── LogoutInputModel.cs
│ │ │ ├── LogoutViewModel.cs
│ │ │ └── RedirectViewModel.cs
│ │ ├── Consent
│ │ │ ├── ConsentController.cs
│ │ │ ├── ConsentInputModel.cs
│ │ │ ├── ConsentOptions.cs
│ │ │ ├── ConsentViewModel.cs
│ │ │ ├── ProcessConsentResult.cs
│ │ │ └── ScopeViewModel.cs
│ │ ├── Device
│ │ │ ├── DeviceAuthorizationInputModel.cs
│ │ │ ├── DeviceAuthorizationViewModel.cs
│ │ │ └── DeviceController.cs
│ │ ├── Diagnostics
│ │ │ ├── DiagnosticsController.cs
│ │ │ └── DiagnosticsViewModel.cs
│ │ ├── Extensions.cs
│ │ ├── Grants
│ │ │ ├── GrantsController.cs
│ │ │ └── GrantsViewModel.cs
│ │ ├── Home
│ │ │ ├── ErrorViewModel.cs
│ │ │ └── HomeController.cs
│ │ ├── SecurityHeadersAttribute.cs
│ │ └── TestUsers.cs
│ ├── Startup.cs
│ ├── Views
│ │ ├── Account
│ │ │ ├── AccessDenied.cshtml
│ │ │ ├── LoggedOut.cshtml
│ │ │ ├── Login.cshtml
│ │ │ └── Logout.cshtml
│ │ ├── Consent
│ │ │ └── Index.cshtml
│ │ ├── Device
│ │ │ ├── Success.cshtml
│ │ │ ├── UserCodeCapture.cshtml
│ │ │ └── UserCodeConfirmation.cshtml
│ │ ├── Diagnostics
│ │ │ └── Index.cshtml
│ │ ├── Grants
│ │ │ └── Index.cshtml
│ │ ├── Home
│ │ │ └── Index.cshtml
│ │ ├── Shared
│ │ │ ├── Error.cshtml
│ │ │ ├── Redirect.cshtml
│ │ │ ├── _Layout.cshtml
│ │ │ ├── _ScopeListItem.cshtml
│ │ │ └── _ValidationSummary.cshtml
│ │ ├── _ViewImports.cshtml
│ │ └── _ViewStart.cshtml
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── tempkey.rsa
│ └── wwwroot
│ │ ├── css
│ │ ├── site.css
│ │ ├── site.less
│ │ └── site.min.css
│ │ ├── favicon.ico
│ │ ├── icon.jpg
│ │ ├── icon.png
│ │ ├── js
│ │ ├── signin-redirect.js
│ │ └── signout-redirect.js
│ │ └── lib
│ │ ├── bootstrap
│ │ ├── css
│ │ │ ├── bootstrap.css
│ │ │ ├── bootstrap.css.map
│ │ │ └── bootstrap.min.css
│ │ ├── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ └── glyphicons-halflings-regular.woff2
│ │ └── js
│ │ │ ├── bootstrap.js
│ │ │ └── bootstrap.min.js
│ │ └── jquery
│ │ ├── jquery.js
│ │ ├── jquery.min.js
│ │ └── jquery.min.map
│ ├── SiloHost1
│ ├── Program.cs
│ └── SiloHost1.csproj
│ └── WebClient
│ ├── Controllers
│ └── HomeController.cs
│ ├── Program.cs
│ ├── Properties
│ └── launchSettings.json
│ ├── Startup.cs
│ ├── Views
│ ├── Home
│ │ ├── Index.cshtml
│ │ └── UserProfile.cshtml
│ └── _ViewImports.cshtml
│ ├── WebClient.csproj
│ ├── appsettings.Development.json
│ └── appsettings.json
├── src
├── Directory.Build.props
├── Orleans.Security.Authorization
│ ├── AllowAnonymousAttribute.cs
│ ├── AssertionRequirement.cs
│ ├── AuthorizationFailure.cs
│ ├── AuthorizationHandler.cs
│ ├── AuthorizationHandlerContext.cs
│ ├── AuthorizationOptions.cs
│ ├── AuthorizationPolicy.cs
│ ├── AuthorizationPolicyBuilder.cs
│ ├── AuthorizationResult.cs
│ ├── AuthorizationServiceCollectionExtensions.cs
│ ├── AuthorizationServiceExtensions.cs
│ ├── AuthorizeAttribute.cs
│ ├── ClaimsAuthorizationRequirement.cs
│ ├── DefaultAuthorizationEvaluator.cs
│ ├── DefaultAuthorizationHandlerContextFactory.cs
│ ├── DefaultAuthorizationHandlerProvider.cs
│ ├── DefaultAuthorizationPolicyProvider.cs
│ ├── DefaultAuthorizationService.cs
│ ├── DenyAnonymousAuthorizationRequirement.cs
│ ├── IAllowAnonymous.cs
│ ├── IAuthorizationEvaluator.cs
│ ├── IAuthorizationHandler.cs
│ ├── IAuthorizationHandlerContextFactory.cs
│ ├── IAuthorizationHandlerProvider.cs
│ ├── IAuthorizationPolicyProvider.cs
│ ├── IAuthorizationRequirement.cs
│ ├── IAuthorizationService.cs
│ ├── IAuthorizeData.cs
│ ├── LoggingExtensions.cs
│ ├── NameAuthorizationRequirement.cs
│ ├── OperationAuthorizationRequirement.cs
│ ├── Orleans.Security.Authorization.csproj
│ ├── PassThroughAuthorizationHandler.cs
│ ├── Properties
│ │ └── Resources.Designer.cs
│ ├── Resources.resx
│ └── RolesAuthorizationRequirement.cs
├── Orleans.Security.Client
│ ├── AssemblyInfo.cs
│ ├── AuthorizationServiceCollectionExtensions.cs
│ └── Orleans.Security.Client.csproj
├── Orleans.Security.Clustering
│ ├── AssemblyInfo.cs
│ ├── AuthorizationServiceCollectionExtensions.cs
│ └── Orleans.Security.Clustering.csproj
├── Orleans.Security.Interoperability
│ ├── AssemblyInfo.cs
│ ├── Authorization
│ │ ├── GrainAuthorizationFilterBase.cs
│ │ ├── IncomingGrainCallAuthorizationFilter.cs
│ │ └── OutgoingGrainCallAuthorizationFilter.cs
│ ├── GrainWithClaimsPrincipal.cs
│ ├── Orleans.Security.Interoperability.csproj
│ ├── RuntimeMethodBinder.cs
│ └── ServiceCollectionExtensions.cs
└── Orleans.Security
│ ├── AccessToken
│ ├── AccessTokenAnalyzer.fs
│ ├── AccessTokenIntrospectionResult.fs
│ ├── AccessTokenIntrospectionServiceDefault.fs
│ ├── AccessTokenType.fs
│ ├── AccessTokenVerificationResult.fs
│ ├── AccessTokenVerifierOptions.fs
│ ├── AccessTokenVerifierWithCaching.fs
│ ├── AccessTokenVerifierWithTracing.fs
│ ├── DefaultAccessTokenVerifier.fs
│ ├── IAccessTokenIntrospectionService.fs
│ ├── IAccessTokenVerifier.fs
│ ├── IdS4DiscoveryDocumentProvider.fs
│ ├── InvalidAccessTokenException.fs
│ └── JwtSecurityTokenVerifier.fs
│ ├── AccessTokenSetterFilter.fs
│ ├── AssemblyInfo.fs
│ ├── Authorization
│ ├── AuthorizationAdmission.fs
│ ├── AuthorizationExecutor.fs
│ └── IAuthorizationExecutor.fs
│ ├── Caching
│ ├── AccessTokenCache.fs
│ └── IAccessTokenCache.fs
│ ├── Configuration.fs
│ ├── ConfigurationKeys.fs
│ ├── DiscoveryDocumentShortInfo.fs
│ ├── Extensions.fs
│ ├── GlobalSettings.fs
│ ├── GrainWithClaimsPrincipal.fs
│ ├── IAccessTokenProvider.fs
│ ├── IdentityServer4Info.fs
│ ├── LoggingEvents.fs
│ ├── NotAuthorizedException.fs
│ ├── Orleans.Security.fsproj
│ └── ServiceCollectionExtensions.fs
└── test
├── Orleans.Security.IntegrationTests.Functional
├── AccessTokenTests
│ └── AccessTokenVerificationTests.fs
├── Assembly.fs
├── AuthorizationTests
│ ├── ClaimsBasedAuthorizationTests.fs
│ ├── PolicyBasedAuthorizationTests.fs
│ ├── ResourceBasedAuthorizationTests.fs
│ ├── RoleBasedAuthorizationTests.fs
│ └── SimpleAuthorizationTests.fs
├── Initialization
│ ├── ClusterSetup.fs
│ ├── GlobalConfig.fs
│ ├── IdSClients.fs
│ ├── IdSInstance.fs
│ ├── IdSResources.fs
│ ├── IdSTokenFactory.fs
│ ├── IdentityServer.fs
│ ├── ProfileService.fs
│ ├── SiloClient.fs
│ ├── SiloHost.fs
│ └── Users.fs
├── Orleans.Security.IntegrationTests.FSharp.fsproj
├── Program.fs
└── TestsNUnit.fs
├── Orleans.Security.IntegrationTests.Grains
├── AuthorizationConfig.cs
├── ClaimsBasedAuthorization
│ ├── CityClaim.cs
│ ├── ClaimGrain.cs
│ └── IClaimGrain.cs
├── GlobalSecretStorageGrain.cs
├── IGlobalSecretStorageGrain.cs
├── Orleans.Security.IntegrationTests.Grains.csproj
├── PolicyBasedAuthorization
│ ├── IPolicyGrain.cs
│ └── PolicyGrain.cs
├── ResourceBasedAuthorization
│ ├── DocModifyAuthorizationHandler.cs
│ ├── DocRegistryAccessClaim.cs
│ ├── DocRegistryAccessHandler.cs
│ ├── DocRegistryAccessRequirement.cs
│ ├── Document.cs
│ ├── DocumentsRegistry.cs
│ ├── DocumentsRegistryGrain.cs
│ ├── IDocumentsRegistryGrain.cs
│ ├── IUserGrain.cs
│ └── UserGrain.cs
├── RoleBasedAuthorization
│ ├── IManagerGrain.cs
│ └── ManagerGrain.cs
└── SimpleAuthorization
│ ├── ISimpleGrain.cs
│ └── SimpleGrain.cs
├── Orleans.Security.IntegrationTests.TokenVerification
├── Configuration
│ ├── IdentityServerConfig.cs
│ ├── TestIdentityServer4Builder.cs
│ └── TestUsers.cs
├── Orleans.Security.IntegrationTests.TokenVerification.csproj
├── TestBase.cs
└── TokenVerificationTests.cs
├── Orleans.Security.IntegrationTests
├── AuthorizationTests.cs
├── Configuration
│ ├── AuthorizationTestConfig.cs
│ ├── EmailVerifiedHandler.cs
│ ├── EmailVerifiedRequirement.cs
│ ├── FakeAccessTokenProvider.cs
│ ├── FakeAccessTokenVerifier.cs
│ ├── GenderRequirement.cs
│ ├── LoggedInUser.cs
│ ├── RoleAndGenderCombinationHandler.cs
│ ├── RoleIsPresentRequirement.cs
│ ├── TestClientBuilder.cs
│ ├── TestClusterBuilder.cs
│ └── TestClusterOptions.cs
├── GrainsForTests
│ ├── AuthorizationTestGrain.cs
│ └── IAuthorizationTestGrain.cs
├── Orleans.Security.IntegrationTests.csproj
└── SetUpTestEnvieronment.cs
└── Orleans.Security.Tests
├── AuthorizationAdmissionTests.cs
└── Orleans.Security.Tests.csproj
/.editorconfig:
--------------------------------------------------------------------------------
1 | # All files
2 | [*]
3 | guidelines = 80, 120
4 |
5 | # C# or VB files
6 | [*.{cs,vb}]
7 | guidelines = 80, 120
8 | # ARGB color format (red with 25% opacity)
9 | guidelines_style = 2px dotted 40ff0000
10 |
11 | # F# files
12 | [*.{fs}]
13 | guidelines = 80, 120
14 | # ARGB color format (red with 25% opacity)
15 | guidelines_style = 2px dotted 40ff0000
--------------------------------------------------------------------------------
/GitVersion.yml:
--------------------------------------------------------------------------------
1 | mode: ContinuousDelivery
2 | branches: {}
3 | ignore:
4 | sha: []
5 | merge-message-formats: {}
6 |
--------------------------------------------------------------------------------
/Orleans.Security.sln.DotSettings:
--------------------------------------------------------------------------------
1 |
The page you requested could not be found. Try using the navigation {% if site.search_enabled %}or search {% endif %}to find what you're looking for or go to this site's home page.
12 | -------------------------------------------------------------------------------- /docs-builder/Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | gemspec 3 | -------------------------------------------------------------------------------- /docs-builder/Index1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Async-Hub/Orleans.Security/4a9fc66d439e16c662036b1f14e60d57e1b059c4/docs-builder/Index1.jpg -------------------------------------------------------------------------------- /docs-builder/Index2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Async-Hub/Orleans.Security/4a9fc66d439e16c662036b1f14e60d57e1b059c4/docs-builder/Index2.jpg -------------------------------------------------------------------------------- /docs-builder/Rakefile: -------------------------------------------------------------------------------- 1 | Dir.glob('lib/tasks/*.rake').each {|r| import r} 2 | -------------------------------------------------------------------------------- /docs-builder/_includes/head_custom.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Async-Hub/Orleans.Security/4a9fc66d439e16c662036b1f14e60d57e1b059c4/docs-builder/_includes/head_custom.html -------------------------------------------------------------------------------- /docs-builder/_includes/js/custom.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Async-Hub/Orleans.Security/4a9fc66d439e16c662036b1f14e60d57e1b059c4/docs-builder/_includes/js/custom.js -------------------------------------------------------------------------------- /docs-builder/_includes/title.html: -------------------------------------------------------------------------------- 1 | {% if site.logo %} 2 | 3 | {% else %} 4 | {{ site.title }} 5 | {% endif %} 6 | -------------------------------------------------------------------------------- /docs-builder/_layouts/about.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 | {{ content }} 6 | -------------------------------------------------------------------------------- /docs-builder/_layouts/home.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 | {{ content }} 6 | -------------------------------------------------------------------------------- /docs-builder/_layouts/page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 | {{ content }} 6 | -------------------------------------------------------------------------------- /docs-builder/_layouts/post.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 | {{ content }} 6 | -------------------------------------------------------------------------------- /docs-builder/_layouts/table_wrappers.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: vendor/compress 3 | --- 4 | 5 | {% assign content_ = content | replace: 'You do not have access to that resource.
6 |Would you like to logut of IdentityServer?
7 |You have successfully authorized the device
6 |Please enter the code displayed on your device.
7 |Once complete, you may close this tab.
7 |@ViewBag.Response
15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /samples/aspnetcore-co-hosting/WebClient/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 2 | 3 | -------------------------------------------------------------------------------- /samples/aspnetcore-co-hosting/WebClient/WebClient.csproj: -------------------------------------------------------------------------------- 1 |You do not have access to that resource.
6 |Would you like to logut of IdentityServer?
7 |You have successfully authorized the device
6 |Please enter the code displayed on your device.
7 |Once complete, you may close this tab.
7 |@ViewBag.Response
15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /samples/dotnet-5/WebClient/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 2 | 3 | -------------------------------------------------------------------------------- /samples/dotnet-5/WebClient/WebClient.csproj: -------------------------------------------------------------------------------- 1 |You do not have access to that resource.
8 |Would you like to logout of IdentityServer?
11 | 19 |8 | Please enter the code displayed on your device 9 |
10 | 14 |Once complete, you may close this tab
5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /samples/dotnetcore-3-1/IdentityServer/Views/Shared/_ValidationSummary.cshtml: -------------------------------------------------------------------------------- 1 | @if (ViewContext.ModelState.IsValid == false) 2 | { 3 |@ViewBag.Response
15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /samples/dotnetcore-3-1/WebClient/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 2 | 3 | -------------------------------------------------------------------------------- /samples/dotnetcore-3-1/WebClient/WebClient.csproj: -------------------------------------------------------------------------------- 1 |