Я создал пользовательский поставщик аутентификации для AD FS MFA.
Я определил утверждение метода аутентификации в метаданных:
public string[] AuthenticationMethods
{
get { return new string[] { "https://schemas.microsoft.com/ws/2012/12/authmethod/otp" }; }
}
У меня также есть метод TryEndAuthentication (это только для лабораторных целей я изменю жестко закодированный штифт, как только эта часть сработает):
public IAdapterPresentation TryEndAuthentication(IAuthenticationContext context, IProofData proofData, System.Net.HttpListenerRequest request, out System.Security.Claims.Claim[] claims)
{
claims = null;
IAdapterPresentation result = null;
string pin = proofData.Properties["pin"].ToString();
if (pin == "12345")
{
System.Security.Claims.Claim claim = new System.Security.Claims.Claim("https://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", "https://schemas.microsoft.com/ws/2012/12/authmethod/otp");
claims = new System.Security.Claims.Claim[] { claim };
}
else
{
result = new AdapterPresentation("Authentication failed.", false);
}
return result;
}
Но при развертывании этого в моей AD FS выдается эта ошибка при правильном входе в систему: ![The Authentication provider did not return an authentication method claim](https://i.stack.imgur.com/O2OWr.png)
Кто-нибудь знает, что пошло не так?