Ejemplo n.º 1
0
 public OpenIddictController(
     [NotNull] OpenIddictManager <TUser, TApplication> manager,
     [NotNull] OpenIddictOptions options)
 {
     Manager = manager;
     Options = options;
 }
        /// <summary>
        /// Determines whether the refresh token flow has been enabled.
        /// </summary>
        /// <param name="options">The OpenIddict options.</param>
        /// <returns><c>true</c> if the refresh token flow has been enabled, <c>false</c> otherwise.</returns>
        public static bool IsRefreshTokenFlowEnabled([NotNull] this OpenIddictOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            return(options.GrantTypes.Contains(OpenIdConnectConstants.GrantTypes.RefreshToken));
        }
        /// <summary>
        /// Determines whether the authorization code flow has been enabled.
        /// </summary>
        /// <param name="options">The OpenIddict options.</param>
        /// <returns><c>true</c> if the authorization code flow has been enabled, <c>false</c> otherwise.</returns>
        public static bool IsAuthorizationCodeFlowEnabled([NotNull] this OpenIddictOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            return(options.GrantTypes.Contains(OpenIdConnectConstants.GrantTypes.AuthorizationCode));
        }
        public void IsRefreshTokenFlowEnabled_ReturnsAppropriateResult(bool enabled)
        {
            // Arrange
            var options = new OpenIddictOptions();

            if (enabled)
            {
                options.GrantTypes.Add(OpenIdConnectConstants.GrantTypes.RefreshToken);
            }

            // Act and assert
            Assert.Equal(enabled, options.IsRefreshTokenFlowEnabled());
        }
 public AuthorizationController(
     UserManager <User> userManager,
     IOptionsSnapshot <OpenIddictOptions> openIddictOptions,
     SignInManager <User> signInManager,
     IOptions <IdentityOptions> identityOptions,
     OpenIddictScopeManager <OpenIddictScope> scopeManager,
     AuthorizationServerDbContext context)
 {
     _userManager       = userManager;
     _signInManager     = signInManager;
     _scopeManager      = scopeManager;
     _context           = context;
     _identityOptions   = identityOptions.Value;
     _openIddictOptions = openIddictOptions.Get(OpenIdConnectServerDefaults.AuthenticationScheme);
 }
Ejemplo n.º 6
0
        public void Configure(string name, OpenIddictOptions options)
        {
            // Ignore OpenIddict handler instances that don't correspond to the instance managed by the OpenID module.
            if (!string.Equals(name, OpenIdConnectServerDefaults.AuthenticationScheme, StringComparison.Ordinal))
            {
                return;
            }

            var settings = _openIdService.GetOpenIdSettingsAsync().GetAwaiter().GetResult();

            if (!_openIdService.IsValidOpenIdSettings(settings))
            {
                return;
            }

            options.ProviderType                = typeof(OpenIddictProvider <OpenIdApplication, OpenIdAuthorization, OpenIdScope, OpenIdToken>);
            options.DataProtectionProvider      = _dataProtectionProvider;
            options.RequireClientIdentification = true;
            options.EnableRequestCaching        = true;

            if (settings.AccessTokenFormat == OpenIdSettings.TokenFormat.JWT)
            {
                options.AccessTokenHandler = new JwtSecurityTokenHandler();
            }

            if (settings.TestingModeEnabled)
            {
                options.SigningCredentials.AddEphemeralKey();
                options.AllowInsecureHttp = true;
            }
            else if (settings.CertificateStoreLocation.HasValue && settings.CertificateStoreName.HasValue && !string.IsNullOrEmpty(settings.CertificateThumbPrint))
            {
                try
                {
                    options.AllowInsecureHttp = false;
                    options.SigningCredentials.Clear();
                    options.SigningCredentials.AddCertificate(settings.CertificateThumbPrint, settings.CertificateStoreName.Value, settings.CertificateStoreLocation.Value);
                }
                catch (Exception exception)
                {
                    _logger.LogError("An error occurred while trying to register a X.509 certificate.", exception);
                    throw;
                }
            }

            if (settings.EnableAuthorizationEndpoint)
            {
                options.AuthorizationEndpointPath = "/OrchardCore.OpenId/Access/Authorize";
            }
            if (settings.EnableTokenEndpoint)
            {
                options.TokenEndpointPath = "/OrchardCore.OpenId/Access/Token";
            }
            if (settings.EnableLogoutEndpoint)
            {
                options.LogoutEndpointPath = "/OrchardCore.OpenId/Access/Logout";
            }
            if (settings.EnableUserInfoEndpoint)
            {
                options.UserinfoEndpointPath = "/OrchardCore.OpenId/UserInfo/Me";
            }
            if (settings.AllowPasswordFlow)
            {
                options.GrantTypes.Add(OpenIdConnectConstants.GrantTypes.Password);
            }
            if (settings.AllowClientCredentialsFlow)
            {
                options.GrantTypes.Add(OpenIdConnectConstants.GrantTypes.ClientCredentials);
            }
            if (settings.AllowAuthorizationCodeFlow || settings.AllowHybridFlow)
            {
                options.GrantTypes.Add(OpenIdConnectConstants.GrantTypes.AuthorizationCode);
            }
            if (settings.AllowRefreshTokenFlow)
            {
                options.GrantTypes.Add(OpenIdConnectConstants.GrantTypes.RefreshToken);
            }
            if (settings.AllowImplicitFlow || settings.AllowHybridFlow)
            {
                options.GrantTypes.Add(OpenIdConnectConstants.GrantTypes.Implicit);
            }
        }
Ejemplo n.º 7
0
 public void Configure(OpenIddictOptions options)
 {
 }