如何使用 ASP.NET Core 3.1 将 Android 应用程序集成到 Identity Server 以进行身份验证?
Posted
技术标签:
【中文标题】如何使用 ASP.NET Core 3.1 将 Android 应用程序集成到 Identity Server 以进行身份验证?【英文标题】:How to integrate Android App to Identity Server with ASP.NET Core 3.1 for Authentication? 【发布时间】:2021-01-26 13:44:03 【问题描述】:我已经使用 Angular 模板创建了 ASP.NET Core 项目,并使用 Visual Studio 进行了身份验证。现在我正在开发 android 应用程序,并希望将其与我现有的 ASP.NET CORE 3.1 WEB API(后端)集成。 我在 appsettings.json 中为我的 android 应用添加了客户端,如下所示:
"IdentityServer":
"Clients":
"MyAngularApp":
"Profile": "IdentityServerSPA"
,
"MyMobileApp":
"Profile": "NativeApp"
当我调用我的配置端点“https://localhost:4042/_configuration/MyMobileApp”时,我得到了以下响应;
"authority":"https://localhost:4042","client_id":"MyMobileApp","redirect_uri":"urn:ietf:wg:oauth:2.0:oob","post_logout_redirect_uri":"urn:ietf:wg:oauth:2.0:oob","response_type":"code","scope":"offline_access MyAppAPI openid profile"
我有以下问题;
redirect_uri 中的“urn:ietf:wg:oauth:2.0:oob”是什么意思?
当我像这样在客户端设置中添加 redirect_uri 时,
“MyMobileApp”:“Profile”:“NativeApp”,“RedirectUri”:“com.example.myapplication”
但是当我调用端点时我没有得到我定义的redirect_uri “https://localhost:4042/_configuration/MyMobileApp”,作为回应我得到了这个 "redirect_uri":"urn:ietf:wg:oauth:2.0:oob"。那么,如何更改默认的 RedirectUri?
我在 Android 中使用 AppAuth 库与 Identity Server 集成。
【问题讨论】:
【参考方案1】:在 appsetting.json 中尝试您必须使用 IdentityServer - 客户端尝试这可能是您的问题将得到解决
"IdentityServer":
"IssuerUri": "urn:sso.company.com",
"Clients": [
"Enabled": true,
"ClientId": "local-dev",
"ClientName": "Local Development",
"ClientSecrets": [ "Value": "<Insert Sha256 hash of the secret encoded as Base64 string>" ],
"AllowedGrantTypes": [ "implicit" ],
"AllowedScopes": [ "openid", "profile" ],
"RedirectUris": [ "https://localhost:5001/signin-oidc" ],
"RequireConsent": false
]
【讨论】:
使用此客户端配置时,出现编译时错误“ System.InvalidOperationException: 'Type '' is not supported.'此异常最初是在此调用堆栈中引发的: Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ConfigureClients.GetClients() Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ConfigureClients.Configure(Microsoft.AspNetCore.ApiAuthorization.IdentityServer.ApiAuthorizationOptions) Microsoft.Extensions.Options .OptionsFactory以上是关于如何使用 ASP.NET Core 3.1 将 Android 应用程序集成到 Identity Server 以进行身份验证?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 ASP.NET Core 3.1 将 Android 应用程序集成到 Identity Server 以进行身份验证?
如何在 Asp.net Core 3.1 中使用 Ajax 刷新或重新加载 ViewComponent?
如何将对象数组发送到服务器。 Asp.Net Core 3.1 405 方法不允许