ADFS MFA适配器AuthenticationMethods

时间:2017-03-02 22:33:59

标签: c# adfs3.0

我创建了ADFS 3.0 MFA适配器以提供第二因素身份验证。 在IAuthenticationAdapterMetadata.AuthenticationMethods中,我指定了一个Auth方法(在网上找到了一些例子)。

public string[] AuthenticationMethods
{
    get { return new string[] { "http://schemas.microsoft.com/ws/2012/12/authmethod/otp" }; }
}

我理解当我的MFA适配器成功验证它需要返回时 注册的Auth方法:

    public IAdapterPresentation TryEndAuthentication(IAuthenticationContext context, IProofData proofData, HttpListenerRequest request, out Claim[] claims){
    ...

      if (status.AuthSuccess){
            System.Security.Claims.Claim claim = new System.Security.Claims.Claim("http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", "http://schemas.microsoft.com/ws/2012/12/authmethod/otp");
            claims = new System.Security.Claims.Claim[] { claim };
            return null;
       } 
}

我正在做这件事。如果我的ADFS服务器上没有后端应用程序(如Office 365),这样可以正常工作。最低限度的消息显示用户已登录。

我在使用后端应用程序(Office 365)设置的服务器上安装了我的ADFS插件。 当用户尝试登录时(通过Outlook门户也称为依赖方启动登录),我的插件会被调用第二个因素。如上面关于成功验证第二因素所解释的那样,插件返回已注册的AuthMethod。 这里的预期行为是用户成功登录App(O365)基本上App登陆页面出现。但相反,我看到用户登出并返回Portal登录屏幕。

所以我的问题是:我做错了什么?我似乎在插件中做得对。它与我们在AuthenticationMethods中定义的内容有关。 我可以为AuthenticationMethods定义任何自定义URI,还是有标准的? 我需要配置插件外的其他声明或依赖方设置吗? 除了在线示例和练习创建插件之外,我无法找到详细解释这些内容的具体文档。

0 个答案:

没有答案