OIDC 是否有标准来修改和添加用户登录时的操作步骤?

huangapple go评论63阅读模式
英文:

Is there a standard for OIDC to modify and add actions to the user journey when it logs in?

问题

I just wanted to now if there is an OIDC standard (or from other foundation), RFC or others (in draft, complete or incomplete) regarding integrating extra steps in an authentication flow (ex. "Authorization Code Flow").

我的用例是要集成重定向到外部页面,以向原始令牌添加更多声明(例如“身份验证证明”解决方案)...

More like a redirect/callback flow that allows that id_token "augment".

我已经重新查看了当前的OpenId Specs以及受欢迎的IdPs(Okta、Auth0、Azure B2C...)的解决方案,它们似乎都实施了自己的解决方案:

  • Okta:工作流程
  • Auth0:操作
  • Azure B2C:修改用户过程的策略

是否没有此程序的标准?
像与OIDC联合有关的东西可能吗?

英文:

I just wanted to now if there is an OIDC standard (or from other foundation), RFC or others (in draft, complete or incomplete) regarding integrating extra steps in an authentication flow (ex. "Authorization Code Flow").

My use case would be to integrate redirects to external pages to add more claims to the original token (ex. "Identity Proofing" solutions)...

More like a redirect/callback flow that allows that id_token "augment".

I have already revisited current OpenId Specs and solutions from popular IdPs (Okta, Auth0, Azure B2C...) and all of them appears to implement their own solution:

  • Okta: workflows
  • Auth0: actions
  • Azure B2C: policies to modify the user journey

Is there no standard for this procedure?
Like something related with OIDC federation maybe?

答案1

得分: 1

自定义行为超出了标准范围:

  • OAuth未定义用户身份验证的工作方式,但它始终存在于基于用户的流程中。

  • OpenID Connect在认证前后添加了额外的规则,但同样未定义其工作方式。

可扩展性通常由某种插件来管理,该插件会添加额外的步骤到授权服务器的行为中。示例可能包括:

  • 一个自定义声明提供程序,用于在发放令牌时查找要包含在访问令牌中的额外声明,例如通过调用您提供的API。

  • 一个自定义屏幕用于特定的身份验证方法,例如在医疗身份验证工作流中输入患者标识符。

插件模型的工作方式由授权服务器的实施者决定,并未标准化。然而,在许多实际系统中,这可能是一个关键要求。在这种情况下,确保正确的可扩展性是选择授权服务器的主要因素之一。其中一些服务器仅支持非常有限的自定义。

英文:

Custom behavior is outside of standards:

  • OAuth does not define how user authentication works, yet it is always there in user based flows

  • OpenID Connect puts additional rules into what happens before and after authentication, but again does not define how it works

Extensibility is usually managed by some kind of plugin that adds extra steps to the behaviour of the authorization server. Examples might be:

  • A custom claims provider that looks up extra claims to include in the access token at the time of token issuance, eg by calling an API that you provide

  • A custom screen for a bespoke authentication method, eg entering a patient identifier in a medical authentication workflow

How the plugin model works is up to the implementers of the authorization server, and is not standardised. In many real world systems it can be a critical requirement though. In such cases, ensuring the right extensibility is one of the main factors when choosing an authorization server. Some of them support only very limited customization.

huangapple
  • 本文由 发表于 2023年5月25日 18:31:16
  • 转载请务必保留本文链接:https://go.coder-hub.com/76331314.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定