Phi*_*son 2 ws-federation owin asp.net-identity asp.net-identity-2
在一个评估各种不同身份提供者的项目中,我有一个代码库已经使用WsFederation Owin包成功通过Azure AAD和Okta进行了身份验证.评估列表中的下一个是内部托管的ADFS.和前两个一样:
我进入了idp登录页面,
登录,
使用带有表单变量的POST发送回主机(在本地运行),包括wtresult表单变量中的RequestSecurityTokenResponse.
发出外部登录cookie
我的ExternalLoginCallback函数被调用
不同之处在于:
var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
if (loginInfo == null)
{
return RedirectToAction("Login");
}
Run Code Online (Sandbox Code Playgroud)
loginInfo为null.以下是我尚未解读的潜在线索.如果我没有设置
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
Run Code Online (Sandbox Code Playgroud)
在我的初创公司中,我在User.Identity中获得了经过身份验证的声明身份.但是,此身份中没有用户名,姓名或角色声明.如果比较从Okta和ADFS返回的令牌,则有两个不同之处.两者都有upn,name和role声明,但ADFS声明是SAML 1.0声明,其中Okta是SAML 2.0.另一个区别是ADFS签名方法是sha265,其中Okta是sha1.
这些差异会导致我的问题吗?配置ADFS的人不知道指定这些东西的方法,是否可以将WsFederation中间件配置为请求特定的东西或使用ADFS正在使用的东西?
已找到答案.需要将saml nameid声明类型添加到ADFS,以便OWIN中间件将其作为有效的外部登录进行选择.感谢这篇文章指出了细节.
http://darb.io/blog/2014/06/30/WebAPI-and-ADFS-as-external-login-provider/
| 归档时间: |
|
| 查看次数: |
1764 次 |
| 最近记录: |