如何解决了解如何还通过OneLogin获取用于Web应用程序的下游API访问的访问令牌
我已经待了好几天了,文档对我来说还是不清楚,也许我只是没有正确阅读。
我有一个很棒的WASM应用程序(https:// localhost:5001),它可以从api中提取数据。该api需要进行身份验证,因此我只想在标头中传递访问令牌。
在OneLogin管理控制台中,我创建了一个名为“ testApp”的OIDC应用,令牌端点为“无”(PKCE)。
在blazor上设置oidcauthentication非常简单。我原来只是用
builder.Services.AddOidcAuthentication(options =>
{
builder.Configuration.Bind("OneLogin",options.ProviderOptions);
})
但是我很快意识到我无法增加观众。所以我遵循了本指南..
auth0 oidc for blazor 这是我修改的实际代码的github,以创建具有受众字符串的自定义provideroptions github repo
我也没有设置它的问题。但是,我遇到的困难是OneLogin设置的方面看起来多么复杂。
在阅读他们的文档onelogin api auth docs时,没有现代示例将其设置为超出邮递员的导入范围。下载导入文件可提供一组相当有条理的api,但是我不知道需要去哪里。
首先,我创建了一个Api身份验证服务器
{
"description": "API","configuration": {
"access_token_expiration_minutes": 20,"refresh_token_expiration_minutes": 20,"resource_identifier": "https://localhost:5005","audiences": [
"https://localhost:5005/worker","https://localhost:5005/user"
]
},"name": "API"
}
然后我创建了一个范围
{ "value": "custom:scope","description": "A custom scope" }
然后我添加了api auth服务器客户端。我去了管理面板,并从网址中获取了应用程序ID。 https:// {domain} .onelogin.com / apps / {appId} / edit /#configuration
并添加了api身份验证服务器
这使我从邮递员的api中回来
[
{
"name": "TestApp","app_id": 1111111,"scopes": [
{
"id": 172,"description": "A custom scope","value": "custom:scope"
}
],"api_auth_id": 1246001
}]
因此从这一点看来,我已经拥有了我需要的一切?除了我仍然无法获得它来创建访问令牌。我回到我的应用程序并使用修改后的服务,并将受众群体添加到我的appsettings.json
"OneLogin": {
"Authority": "https://{domain}.onelogin.com/oidc/2/","ClientId": "{clientId from onelogin}","ResponseType": "code","DefaultScopes": "openid profile groups","Audience": "https://localhost:5005"
除非它仍然没有将额外的访问者添加到访问令牌中,否则当我在标头中添加访问令牌时,导致我的api调用失败。如果有人能弄清楚我哪里出了问题,我将非常感激。
解决方法
呜呼。我自己想通了。我一切都好,但听众错了。他们在他们的文档中讨论了有多个受众(例如example.com/blah和example.com/bleh),但让受众只是example.com,然后具有不同的作用域,PER Web服务实际上可以正常工作。
因此,当我创建example2.com并将其添加到受众群体中时,我的两个api都将可以访问。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。