Как авторизовать мою службу ресурсов WebAPI? - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть сервер авторизации, который выдает токены JWT, используя OAuth2. Я не создал новую службу ресурсов, которая использует Auth Server для получения токена и аутентификации запроса. На моем сервере ресурсов я пометил контроллер атрибутом Authorize, и у меня проблема в том, что, хотя в моем файле Startup.cs указан URL-адрес службы аутентификации, я все равно получаю код состояния 401 при выполнении вызова на ресурсе Обслуживание. Вопрос в том, как правильно для стороннего поставщика, который имеет учетную запись пользователя в службе аутентификации, предназначенную для аутентификации по вызову API и получения токена? Должны ли они сначала вызвать службу аутентификации для получения токена, а затем вызвать службу ресурсов с токеном в заголовке. Пожалуйста, смотрите код ниже:

Startup.cs

 private void ConfigureOAuth(IAppBuilder app)
    {
        ISettings settings = new Settings();
        app.UseJwtBearerAuthentication(
            new JwtBearerAuthenticationOptions
            {
                AuthenticationMode = AuthenticationMode.Active,
                AllowedAudiences = new[] { "allowclientId" },
                IssuerSecurityKeyProviders = new IIssuerSecurityKeyProvider[]
                {
                    new SymmetricKeyIssuerSecurityKeyProvider("issuerUrl", TextEncodings.Base64Url.Decode("clientSecret"))
                }
            });
    }

BusinessController.cs

[Authorize]
[Route("api/business")]
public class BusinessController 
    : ApiController
{
    private readonly IBusinessService _businessService;

    #region Ctor

    public BusinessController(IBusinessService businessService)
    {
        _businessService = businessService;
    }

    #endregion

    /// <summary>
    /// Retrieve a list of businesses
    /// </summary>
    /// <returns>Response</returns>
    [HttpGet]
    public IHttpActionResult Get()
    {
        var response = _businessService.Get();
        return Ok(response);
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...