【发布时间】:2020-07-17 15:45:14
【问题描述】:
我正在开发一个使用 IdentityServer4 对用户进行身份验证的 MVC Web 项目,然后该 Web 应用程序使用 IdentityServer(授权代码流)提供给用户的访问令牌来调用 API。 IdentityServer 已配置为使用 Azure AD 作为外部身份提供程序,这是用户登录的主要机制。这一切都很好。
通过身份验证后,我需要查询网络应用的数据库以确定:
- 如果用户帐户被授权登录
- 检索特定于应用程序的用户声明
IdentityServer 文档 (http://docs.identityserver.io/en/latest/reference/profileservice.html) 建议为此实现 IProfileService 接口,我已经这样做了。我希望 ProfileService 调用 Web 应用程序的 API 来检索有关用户的信息,以避免强制 IdentityServer 需要了解/直接访问数据库。然而,我的问题是调用 API 虽然需要访问令牌。
是否可以在 ProfileService 的 IsActiveAsync / GetProfileDataAsync 方法中检索当前用户的令牌?我找不到可靠的文档来确定令牌是否在那时生成。在身份验证/授权方面,我也是个菜鸟,这是一个很大的话题!
我的想法是使用 ProfileService 中的客户端凭据流来调用 API,只是为了填充初始令牌。但是,我不知道这是否是一个绝对糟糕的想法......或者是否有任何更好的概念可以让我参考我可以调查。
谁能指出我正确的方向?
【问题讨论】:
标签: identityserver4 bearer-token