【问题标题】:Implement OpenIdDict auth backend(Asp.Net core) to be able to auth with model entity and LinkedIn authorization实施 OpenIdDict 身份验证后端(Asp.Net 核心),以便能够使用模型实体和 LinkedIn 授权进行身份验证
【发布时间】:2020-01-23 07:20:28
【问题描述】:

目标是能够通过以下方式登录移动应用程序(反应原生):

  • 在应用程序中username and password
  • "Login with LinkedId" 功能。

我对这个主题进行了很多研究,阅读了 Kévin Chalet (@Pinpoint) 的博客系列,还从以下位置克隆了示例:https://github.com/openiddict/openiddict-samples

我已经创建了测试服务器应用:https://github.com/Jamaxack/OpenIdConnectAuthLinkedIn

我可以使用 https://oidcdebugger.com 测试对 LinkedIn 的授权,但现在我很困惑。没有https://oidcdebugger.com我如何测试LinkedIn授权?例如邮递员?对于我的情况,我应该使用什么身份验证流程?

 options.AllowImplicitFlow()
        .AllowPasswordFlow()
        .AllowAuthorizationCodeFlow()
        .AllowRefreshTokenFlow();

提前致谢。

【问题讨论】:

    标签: asp.net-core openid-connect linkedin-api openiddict


    【解决方案1】:

    您可以使用Authorization Code Flow通过Linkedin登录并向会员请求权限。

    如果使用 Postman,您可以尝试以下步骤:

    1. 添加新请求,点击Authorization,选择OAuth 2.0TYPE,设置Add authorization data toRequest Headers。如果要检查 Postman 生成的授权标头和参数,请单击 Preview Request 按钮。

    2. 单击Get New Access Token 按钮。输入正确的回调 url、auth url、token url、client id、client secret 和 scopes,回调 url 应该与linkedin 应用程序门户中的一个寄存器匹配。

    3. 现在您应该会看到一个屏幕,提示您登录到您的 LinkedIn 帐户。在Application Authorization Confirmation页面点击Allow后,您将在Postman中获得token。

    4. 向 api https://api.linkedin.com/v2/me 发出 Get 请求,使用令牌作为授权承载令牌标头,您将从linkedin API 端点获得正确的响应。

    【讨论】:

    • 感谢您的回答。现在对我来说使用 AllowAuthorizationCodeFlow() 能够通过 LinkedIn 进行授权是有意义的,但是我应该在设置 AllowPasswordFlow() 和 AllowImplicitFlow() 中启用本地用户名和密码(用户数据存储在应用程序数据库中)的身份验证怎么样?
    • 不同的是,您可以使用linkedin作为外部身份提供者,该过程是当您的本地应用程序需要登录时,它会重定向到OpenID身份验证服务器,用户可以选择使用asp.net身份的社交登录或者选择使用linkedin登录,在linkedin登录后,OpenIdDict auth server 将获取声明并创建它自己的令牌并返回到您的本地应用程序,您的本地应用程序将解码令牌并获取用户声明。
    • 另一个过程是你的原生应用程序直接将用户名/密码传递给你的OpenID认证服务器,如果凭证正确,它直接将令牌返回给你的原生应用程序,即资源所有者流程,此流程不使用linkedin auth。
    • 这样您的 OpenID 身份验证服务器应该同时启用代码流(.AllowAuthorizationCodeFlow()) 和资源所有者流(.AllowPasswordFlow())。它们是不同的身份验证过程
    猜你喜欢
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    相关资源
    最近更新 更多