Identityserver4, параметр вопрос. Поток кода авторизации - PullRequest
0 голосов
/ 17 января 2019

Я реализую готовое решение с использованием IDserver4 (2.3) для .netcore 2.2, которое связывается с клиентом FHIR, вызывая: URL / API / OpenID / openapp? Запуск = 12345t6u-34o4-2r2y-0646-gj6g123456t5 & ISS = MyService & launchOrganization = наклон с некоторыми имитированными областями HL7 и т. д. Поток в порядке до конечной точки токена, обслуживающей токены доступа и идентификатора, используя быстрый запуск IIS с сертификатами и всеми лицевыми панелями.

Моя проблема заключается в том, что клиент требует, чтобы параметр был передан внешнему клиенту, указывающему на файл или что-то на сервере, где у меня есть некоторые данные о тестируемом пациенте, хранящиеся / или обслуживаемые как Json.

Любой компетентный способ передать параметр с телом или заголовком, например? И вы делаете это при авторизации или аутентификации, или вместе с токенами? Давайте назовем это контекстом. Служба закрыла меня, когда я достигну этого. Говорит это на их стороне 'TypeError: Параметр "url" должен быть строкой, а не неопределенной "

Спасибо заранее. Получил, используя:

public class CustomClaimInjection : ICustomTokenRequestValidator
{
    private readonly HttpContext _httpContext;

    public CustomClaimInjection(IHttpContextAccessor contextAccessor)
    {
        _httpContext = contextAccessor.HttpContext;
    }

    public Task ValidateAsync(CustomTokenRequestValidationContext context)
    {
        var client = context.Result.ValidatedRequest.Client;
        //client.Claims.Add(new Claim("sub", sub));  // this will be [client_sub]

        context.Result.CustomResponse = new Dictionary<string, object>
    {
        {"example-launchcontext", "https://url/" }
    };

        return Task.CompletedTask;

        //return Task.FromResult(0);
    }
}

1 Ответ

0 голосов
/ 03 февраля 2019

Мне кажется, я понимаю вашу проблему сейчас и думаю, что вы хотели бы, чтобы успешная аутентификация вернула дополнительную информацию о том, где хранится файл пациента. Я бы сохранил это в токене как требование, поскольку оно может быть выражено как утверждение о предмете (пользователь). Это можно сделать в зарегистрированной (через внедрение зависимостей) реализации IProfileService. В реализации GetProfileDataAsync вы можете установить выданные заявки, используя свойство параметра «ProfileDataRequestContext» «IssuedClaims». Эти утверждения будут использоваться для заполнения токена id, который вы должны искать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...