gpt4 book ai didi

asp.net-core - 如何正确使用身份服务器 4 的自省(introspection)端点?

转载 作者:行者123 更新时间:2023-12-03 14:38:35 25 4
gpt4 key购买 nike

我正在使用 Identity Server 4,并且我正在尝试使用自省(introspection)端点,但只是通过文档我没有得到它。

文档只是给出了这个例子

POST /connect/introspect
Authorization: Basic xxxyyy

token=<token>

现在,为什么会有这个基本身份验证以及应该是什么 xxxyyy?我的意思是,我的应用程序中没有设置基本身份验证。我刚刚在 ConfigureServices 中使用 ASP.NET Core 设置了 Identity Server 4,如下所示。 :
services.AddIdentityServer()
.AddTemporarySigningCredential()
.AddInMemoryApiResources(ApiResourceProvider.GetAllResources())
.AddAspNetIdentity<Usuario>();

Configure
app.UseIdentity();
app.UseIdentityServer();

现在我尝试了一个 POST 到/connect/introspect 的正文只是 token=<token> ,但它返回了 404。

我相信我真的没有得到它。

我们如何在 ASP.NET Core 中将自省(introspection)端点与 Identity Server 4 一起使用?

最佳答案

IdSvr4 的实现非常棒,但是文档还有很多不足之处——我花了一个小时在互联网上搜索,以便能够提出一个可行的解决方案。如果您不熟悉某个概念,被告知“阅读规范”并不总是有帮助 - 这在他们的论坛上经常发生。
所以 - 你必须传递给 POST /connect/introspect是范围 secret 。
您可以通过更改 config.cs 来配置快速入门。类(class)。如果您已对其进行了自定义,或者未使用快速入门,您将需要更新您使用的任何数据存储 - 但这个概念应该(希望)是清晰的。

public static IEnumerable<ApiResource> GetApiResources()
{
return new List<ApiResource>
{
new ApiResource("MyResource", "My_Resource_DisplayName")
{
ApiSecrets = new List<Secret>
{
new Secret("hello".Sha256())
},
Scopes=
{
new Scope("MY_CUSTOM_SCOPE")
}
}
};
}
现在...
  • 确保您的客户具有 MY_CUSTOM_SCOPE 范围
  • 确保您已请求范围 MY_CUSTOM_SCOPE获得不记名 token 时。

  • 现在,制作一个 API 资源名称和 secret 的 Base64 编码字符串,如下所示: Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("{0}:{1}", userName, password)));其中用户名是 MyResource密码为明文 hello (obv。使用您自己的值!) - 应该以如下所示的字符串结尾: TXlSZXNvdXJjZTpoZWxsbw==现在,您可以发布到 IDSvr4...
    POST /connect/introspect
    Authorization: Basic TXlSZXNvdXJjZTpoZWxsbw==
    Accept: application/json
    Content-Type: application/x-www-form-urlencoded

    token=<YOUR_TOKEN>
    因此,只要您的不记名 token 具有范围 MY_CUSTOM_SCOPE (或者你最终调用它的任何东西) - 你现在应该能够使用 IdSvr 的内省(introspection)端点来获取有关它的信息。

    关于asp.net-core - 如何正确使用身份服务器 4 的自省(introspection)端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42126909/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com