Dotnet OpenId在运行时连接更改范围



我正在使用keycloak与我的dotnet应用程序一起处理身份验证-与keycloak 18我想使用动态作用域,并且通过它,我还需要能够根据当前用户和运行时的操作改变我的作用域值。

这个用例是用户通过选择一些选项增加了额外的作用域,需要在运行时由keycloak计算,想象一个用户选择了一个应用程序,一个名为app的动态作用域基于这个app:<APP_ID>发生了变化,然后keycloak需要计算新的作用域,用户可以随时通过与UI交互来改变这个作用域。

目前我的启动配置认证在AddOpenIdConnect与一些默认的范围,但我不知道如何动态地改变这些范围在运行时为个别用户。

作用域是在设计时固定的值,表示一个数据区域和该数据上允许的操作。一个例子可能是products_read,这是你的应用程序在管理用户登录时唯一需要知道的事情。

声明在需要动态行为时使用。上述范围可以由user_typesubscription_level的两个权利要求组成。这些声明可以在令牌发布时为不同的用户分配不同的值。Keycloak可以通过API调用或数据库查找来收集这些值。

最终结果是,范围和两个声明都被颁发给访问令牌,并且在后端可用于授权目的。Claims最佳实践一文中有关于此设计模式的更多信息。

最新更新