2016-12-30 3 views
1

У меня есть Identity Server, который построен с использованием IdentityServer4.У IdentityServer4 есть API для проверки токена доступа?

У меня есть 2 приложения (1 .NET, 1 PHP), которые получают доступ к ресурсам друг друга и используют этот 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 могло вызывать его для аутентификации маркера доступа. Я google и не вижу никаких упоминаний об этом API.

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

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

IdentityServer4

ответ

1

Там является стандартной конечной точки для этого называется introspection endpoint и поддерживается IdentityServer4. Лучше всего найти Oauth-клиента в PHP, который делает это. Если вы используете самонесущие токены на предъявителя, вы можете проверить токены без необходимости обратного канала, поскольку токены-носители подписываются вашим провайдером, а ваш провайдер имеет свои ключи, перечисленные в документе обнаружения, требуемом для проверки токенов (/ .well -known/конфигурация OpenID). Я не слишком хорошо знаком с PHP, чтобы указать вам в правильном направлении относительно того, какие классные библиотеки могут быть там

+0

Я пытаюсь вызвать конечную точку introspect, но она всегда возвращает страницу входа в систему, это не объект, как в документе IdentityServer4, хотя мой granttype - ClientCredentials. –

+0

Я не нашел библиотеку для проверки токена доступа в PHP. Я временно использую конечную точку интроспекции, и если я добавляю секрет в область действия, она работает хорошо. Большое спасибо. –

Смежные вопросы