我使用IdentityServer4和我自己的登录页面创建了一个IdentityServer应用程序 . 当用户登录(或由于凭据无效而无法登录)时,我需要创建该交互的审核日志记录 . 我的系统有一个单独的Web服务来处理审计日志记录 . 为了从我的IdentityServer实例中的登录页面调用该服务,我需要一个访问令牌 . 在IdentityServer4中是否有一个类/方法,我可以调用它来创建一个访问令牌?在我的应用程序实例中对令牌 endpoints 进行Web服务调用以获取令牌似乎有点过分 .
即我的IdentityServer应用程序需要能够为外部客户端创建访问令牌,但它还需要能够创建它们以供自己使用,以允许它能够调用外部服务,如审计日志记录 .
或者我看错了什么?
2 回答
只需将“IdentityServerTools”注入您的类,它就具有必要的API .
创建访问令牌的类是
DefaultTokenService
,它的可访问性级别为public
.https://github.com/IdentityServer/IdentityServer4/blob/dev/src/IdentityServer4/Services/DefaultTokenService.cs
相关方法是:
所以似乎有可能 .
或者我看错了什么?
我可能会推迟那个产品所有者 .
但我确实觉得你可以这么讽刺
使用client_credentials授权类型将IdentityServer注册为客户端,并允许其访问Audit Logging Api Resource .
让IdentityServer客户端从自身获取access_token
然后作为IdentityServer客户端进行调用以审核记录Api资源,然后转向并回调到IdentityServer以验证它刚刚生成的access_token .
这是其他客户工作的方式,为什么不呢?
EDIT
仅仅是为了文档,这里是我基于最低权限指令的内容: