Есть ли у IdentityServer4 API для проверки токена доступа?

У меня есть сервер идентификации, созданный с использованием IdentityServer4.

У меня есть 2 приложения (1 .NET, 1 PHP), обращающиеся к ресурсам друг друга и использующие этот Identity Server для проверки токена доступа в заголовке запроса.

В приложении Identity Server я добавляю конфигурацию клиента, как показано ниже

clients.Add(
            new Client
            {
                ClientId = "myClientId",
                ClientName = "My Client Name",
                ClientSecrets = new List<Secret>
                {
                    new Secret("secret".Sha256())
                },
                AllowedGrantTypes = GrantTypes.ClientCredentials,
                AllowedScopes = new List<string>
                {
                    "php.es.api"
                }
            });

Из приложения .NET я могу легко получить токен доступа, вызвав метод RequestClientCredentialsAsync с областью действия "php.es.api". Затем добавьте этот токен-носитель и отправьте запрос в PHP API.

Проблема в том, что я не знаю, есть ли у IdentityServer4 API, чтобы приложение PHP могло вызывать его для аутентификации токена доступа. Я гуглил и не нашел никаких упоминаний об этом API в документах.

Нужно ли мне писать новый API в приложении Identity Server для PHP или других приложений, отличных от .NET, для проверки токена?

Ресурсы доступа приложения .NET из приложения PHP, как показано ниже.

IdentityServer4


person Kevin Hoang    schedule 30.12.2016    source источник


Ответы (1)


Для этого существует стандартная конечная точка, называемая конечной точкой интроспекции. и поддерживается IdentityServer4. Лучше всего найти в PHP клиент oauth, который сделает это. Если вы используете автономные токены-носители, вы можете проверять токены без необходимости обмена данными по обратному каналу, потому что токены-носители подписаны вашим провайдером, и у вашего провайдера есть свои ключи, перечисленные в документе обнаружения, необходимом для проверки токенов (/.well -known / openid-configuration). Я не слишком знаком с PHP, чтобы указать вам в правильном направлении, какие классные библиотеки могут быть там.

person Lutando    schedule 30.12.2016
comment
Я пытаюсь вызвать интроспективную конечную точку, но она всегда возвращает страницу входа, это не объект, как в документе IdentityServer4, хотя мой тип предоставления - ClientCredentials. - person Kevin Hoang; 03.01.2017
comment
Я не нашел библиотеки для проверки токена доступа в PHP. Я временно использую конечную точку самоанализа, и если я добавлю секрет в область видимости, она будет работать хорошо. Большое спасибо. - person Kevin Hoang; 16.01.2017