CAS 多因素身份验证提供程序选择
CAS Multifactor Authentication Provider Selection
我正在使用版本 6.1.4 中的 cas-overlay-template 项目。我在我的 CAS 上实现了两个 mfa 提供程序,Google Authenticator 和 CAS Simple。两者都有效,我分别测试了它们,得到了预期的结果。
直到现在,我一直在激活 mfa 修改 cas.properties 文件添加此属性:cas.authn.mfa.globalProviderId=mfa-gauth
当我想使用 Google,或 cas.authn.mfa.globalProviderId=mfa-simple
当我使用 CAS 本身。
好吧,在 CAS 文档中提到可以启用提供程序 selection 菜单,如果只需添加此属性即可解决多个问题:cas.authn.mfa.provider-selection-enabled=true
。所以,我的配置如下:
cas.authn.mfa.provider-selection-enabled=true
cas.authn.mfa.globalProviderId=mfa-gauth
cas.authn.mfa.globalProviderId=mfa-simple
但是当我尝试使用任何用户登录时(我使用的是默认用户 casuser:Mellon),CAS 没有向我显示我可以 select 以下 mfa 提供商的菜单, 直接转到mfa-simple provider.
我做错了什么?
Well, in CAS documentation is mentioned that is possible to enable a provider selection menu, if resolved more than one just by adding this properties:
到目前为止一切顺利。
So, my configuration is the following:
这就是问题所在。您 resolving/triggering 不只是一个提供者。您从 mfa-gauth
开始,然后用 mfa-simple
覆盖它。在 CAS 6.1.x 中,globalProviderId
只接受一个标识符。它不是接受多个值的列表或任何类型的容器。这已在下一个版本中解决。
目前,要解析多个提供者,您需要将 MFA 提供者分配给注册的服务定义。像这样:
{
"@class": "org.apereo.cas.services.RegexRegisteredService",
"serviceId": "^(https|imaps)://.*",
"name": "Example",
"id": 1,
"description": "This service definition defines a service.",
"evaluationOrder": 1,
"multifactorPolicy" : {
"@class" : "org.apereo.cas.services.DefaultRegisteredServiceMultifactorPolicy",
"multifactorAuthenticationProviders" : [ "java.util.LinkedHashSet", [ "mfa-duo", "mfa-gauth" ] ]
}
}
这意味着可以在每个应用程序的基础上启用提供商选择。或者,您可以编写一个 groovy 小脚本将 return 多个提供程序返回 CAS,从而允许选择菜单显示菜单项。
阅读 this post 了解完整详情。
我正在使用版本 6.1.4 中的 cas-overlay-template 项目。我在我的 CAS 上实现了两个 mfa 提供程序,Google Authenticator 和 CAS Simple。两者都有效,我分别测试了它们,得到了预期的结果。
直到现在,我一直在激活 mfa 修改 cas.properties 文件添加此属性:cas.authn.mfa.globalProviderId=mfa-gauth
当我想使用 Google,或 cas.authn.mfa.globalProviderId=mfa-simple
当我使用 CAS 本身。
好吧,在 CAS 文档中提到可以启用提供程序 selection 菜单,如果只需添加此属性即可解决多个问题:cas.authn.mfa.provider-selection-enabled=true
。所以,我的配置如下:
cas.authn.mfa.provider-selection-enabled=true
cas.authn.mfa.globalProviderId=mfa-gauth
cas.authn.mfa.globalProviderId=mfa-simple
但是当我尝试使用任何用户登录时(我使用的是默认用户 casuser:Mellon),CAS 没有向我显示我可以 select 以下 mfa 提供商的菜单, 直接转到mfa-simple provider.
我做错了什么?
Well, in CAS documentation is mentioned that is possible to enable a provider selection menu, if resolved more than one just by adding this properties:
到目前为止一切顺利。
So, my configuration is the following:
这就是问题所在。您 resolving/triggering 不只是一个提供者。您从 mfa-gauth
开始,然后用 mfa-simple
覆盖它。在 CAS 6.1.x 中,globalProviderId
只接受一个标识符。它不是接受多个值的列表或任何类型的容器。这已在下一个版本中解决。
目前,要解析多个提供者,您需要将 MFA 提供者分配给注册的服务定义。像这样:
{
"@class": "org.apereo.cas.services.RegexRegisteredService",
"serviceId": "^(https|imaps)://.*",
"name": "Example",
"id": 1,
"description": "This service definition defines a service.",
"evaluationOrder": 1,
"multifactorPolicy" : {
"@class" : "org.apereo.cas.services.DefaultRegisteredServiceMultifactorPolicy",
"multifactorAuthenticationProviders" : [ "java.util.LinkedHashSet", [ "mfa-duo", "mfa-gauth" ] ]
}
}
这意味着可以在每个应用程序的基础上启用提供商选择。或者,您可以编写一个 groovy 小脚本将 return 多个提供程序返回 CAS,从而允许选择菜单显示菜单项。
阅读 this post 了解完整详情。