IdentityServer4是否具有验证访问令牌的API?

时间:2016-12-30 06:49:01

标签: c# php .net identityserver4

我有一个使用IdentityServer4构建的Identity Server。

我有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应用程序中,我可以通过使用范围&#34; php.es.api&#34;调用RequestClientCredentialsAsync方法轻松获取访问令牌。然后添加此承载令牌并将请求发送到PHP API。

问题是我不知道IdentityServer4是否具有API,以便PHP应用程序可以调用它来验证访问令牌。我谷歌并没有找到任何有关此API的文档。

我是否必须在用于PHP或其他非.NET应用程序的Identity Server应用程序中编写新API以验证令牌?

PHP应用程序中的.NET应用程序访问资源,如下所示。

IdentityServer4

1 个答案:

答案 0 :(得分:1)

有一个名为introspection endpoint的标准端点,IdentityServer4支持它。你最好的办法是在PHP中找到一个oauth客户端来做到这一点。如果您使用自包含承载令牌,则可以在不需要反向信道通信的情况下验证令牌,因为承载令牌由您的提供商签名,并且您的提供商在验证令牌所需的发现文档中列出了其密钥(/.well -known / OpenID的配置)。我不太熟悉PHP,无法指出正确的方向,那里有很酷的库