IdentityServer4 是否有 API 来验证访问令牌?
Does IdentityServer4 have API to validate an access token?
我有一个使用 IdentityServer4 构建的身份服务器。
我有 2 个应用程序(1 个 .NET,1 个 PHP)相互访问资源并使用此身份服务器验证请求中的访问令牌 header。
在 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 应用程序中,我可以通过调用范围为 "php.es.api" 的方法 RequestClientCredentialsAsync 轻松获取访问令牌。然后添加此不记名令牌并将请求发送到 PHP API.
问题是我不知道 IdentityServer4 是否有 API 以便 PHP 应用程序可以调用它来验证访问令牌。我 google 并没有找到任何提及此 API 的文档。
我是否必须在 Identity Server 应用程序中为 PHP 或其他非 .NET 应用程序编写新的 API 来验证令牌?
.NET 应用程序从 PHP 应用程序访问资源,如下所示。
有一个称为 introspection endpoint 的标准端点,IdentityServer4 支持它。最好的办法是在 PHP 中找到一个可以执行此操作的 oauth 客户端。如果您使用的是独立的不记名令牌,则无需反向通道通信即可验证令牌,因为不记名令牌由您的提供商签名,并且您的提供商在验证令牌所需的发现文档中列出了其密钥 (/.well-known/openid-configuration).我对 PHP 不太熟悉,无法为您指明正确的方向,了解那里可能有哪些很酷的库
我有一个使用 IdentityServer4 构建的身份服务器。
我有 2 个应用程序(1 个 .NET,1 个 PHP)相互访问资源并使用此身份服务器验证请求中的访问令牌 header。
在 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 应用程序中,我可以通过调用范围为 "php.es.api" 的方法 RequestClientCredentialsAsync 轻松获取访问令牌。然后添加此不记名令牌并将请求发送到 PHP API.
问题是我不知道 IdentityServer4 是否有 API 以便 PHP 应用程序可以调用它来验证访问令牌。我 google 并没有找到任何提及此 API 的文档。
我是否必须在 Identity Server 应用程序中为 PHP 或其他非 .NET 应用程序编写新的 API 来验证令牌?
.NET 应用程序从 PHP 应用程序访问资源,如下所示。
有一个称为 introspection endpoint 的标准端点,IdentityServer4 支持它。最好的办法是在 PHP 中找到一个可以执行此操作的 oauth 客户端。如果您使用的是独立的不记名令牌,则无需反向通道通信即可验证令牌,因为不记名令牌由您的提供商签名,并且您的提供商在验证令牌所需的发现文档中列出了其密钥 (/.well-known/openid-configuration).我对 PHP 不太熟悉,无法为您指明正确的方向,了解那里可能有哪些很酷的库