Tag: adfs

WCF,Claims,ADFS 3.0

我正在尝试了解使用WCF,Claims和ADFS 3.0开发框架所需的内容。 内部用户将针对Active Directory进行身份validation,外部用户将针对SQL Server表进行身份validation,并且授权将存储在实现组和权限的数据库表中。 我正在使用WCF而不是Web Api或OWIN创建API。 我对使用Identity Server或第三方产品不感兴趣,我只是想知道如何创建自定义安全令牌服务以从我的成员资格表中读取并通过我的组和权限表设置声明。 我找不到任何关于此的信息。 Visual Studio 2015中没有Identity和Access控件,似乎没有使用WCF,仅使用Web Api,OWIN和MVC?

如何validation此ADFS令牌?

在我的MVC站点上,如果我检测到正在使用ADFS帐户,我会重定向到ADFS登录页面。 用户输入其ADFS凭据后,ADFS站点WsFederationMessage回我的站点。 如何validation作为此WsFederationMessage一部分呈现给我的站点的ADFS令牌? 在AuthenticationHandler中间件类中,我有以下调用ValidateToken方法的相关代码: IFormCollection form = await Request.ReadFormAsync(); WsFederationMessage wsFederationMessage = new WsFederationMessage(form); if (!wsFederationMessage.IsSignInMessage) { Request.Body.Seek(0, SeekOrigin.Begin); return null; } var token = wsFederationMessage.GetToken(); if (wsFederationMessage.Wresult != null && Options.SecurityTokenHandlers.CanReadToken(token)) { SecurityToken validatedToken; ClaimsPrincipal principal = Options.SecurityTokenHandlers.ValidateToken(token, Options.TokenValidationParameters, out validatedToken); … } 我尝试调用ValidateToken时收到此错误: 描述:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 exception详细信息:System.IdentityModel.SignatureVerificationFailedException:ID4037:无法从以下安全密钥标识符“SecurityKeyIdentifier”解析validation签名所需的密钥 IsReadOnly = False,Count = 1,Clause [0] = […]

未指定用于在url处与联合服务进行通信的绑定

我目前正在使用ADFS作为安全令牌服务。 我想将WCF服务与ADFS联合起来。 我创建了WCF服务并使用Federation实用程序添加了ADFS的STS引用。 为了使用联合wcf服务,我创建了WPF应用程序并添加了服务引用。 我使用以下代码调用了服务api。 var client = new SecureWpfApplication.ServiceReference1.Service1Client(); Uri uri = new Uri(“http://tempuri.org/”); ICredentials credentials = CredentialCache.DefaultCredentials; NetworkCredential credential = credentials.GetCredential(uri, “Basic”); client.ClientCredentials.Windows.ClientCredential = credential; client.ClientCredentials.SupportInteractive = false; client.GetData(323); 我收到错误“未指定用于与’https:// {ADFS服务器} / adfs / services / trust / 13 / usernamemixed’的联合服务进行通信的绑定”。 怎么解决这个? 我创建了像wcf一样的服务配置 我收到错误“未指定在’ https://adfsserver.com/adfs/services/trust/13/usernamemixed ‘上用于与联合服务通信的绑定。

使用Windows服务上托管的WCF对ADFS进行身份validation

我有一个wcf服务,查询ADFS的SAML令牌。 这是从Web到查询ADFS并获取SAML令牌的常见代码段。 然而它总是最终在线返回通道处断开。问题(rst); 。 错误是ID3082:请求范围无效或不受支持。 至少在高级别,我无法确定错误是在ADFS服务器端还是在配置WCF服务的方式或代码中。 请帮忙。 public SecurityToken GetSamlToken() { using (var factory = new WSTrustChannelFactory( new UserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential), new EndpointAddress(new Uri(“https://serv/adfs/services/trust/13/usernamemixed”)))) { factory.Credentials.UserName.UserName = “username”; factory.Credentials.UserName.Password = “password”; factory.Credentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None; factory.TrustVersion = TrustVersion.WSTrust13; WSTrustChannel channel = null; try { string KeyType; var rst = new RequestSecurityToken { RequestType = WSTrust13Constants.RequestTypes.Issue, AppliesTo = new […]

使用AD FS和OWIN的SSO如何创建帐户和处理权限

我配置了一个使用AD FS的Web App,为此我使用了OWIN。 对于登录,一切都好。 如果我是域名的用户并访问该网站,则会自动连接。 但我想要的是在登录后自己处理用户和角色。 所以我想用这个AD帐户检查我的数据库中是否存在用户(此过程将在另一个应用程序登录之前生成) 我想使用Microsoft的Identity来处理声明(角色和权限)。 但我不明白如何将我的代码用于处理来自AD FS(使用Ws-Federation)的成功连接,并添加validation并填写正确的角色。 我在ConfigureAuth中的代码: public partial class Startup { private static string realm = ConfigurationManager.AppSettings[“ida:Wtrealm”]; private static string adfsMetadata = ConfigurationManager.AppSettings[“ida:ADFSMetadata”]; private NLogLoggingService _loggingService; public void ConfigureAuth(IAppBuilder app) { _loggingService = new NLogLoggingService(“Startup”); _loggingService.Debug(“ConfigureAuth”); app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType); app.UseCookieAuthentication(new CookieAuthenticationOptions()); app.UseWsFederationAuthentication( new WsFederationAuthenticationOptions { Wtrealm = realm, MetadataAddress = adfsMetadata, //CallbackPath […]

使用表单身份validation为AD FS配置WIF

我们有一个ASP.NET Web Forms(.Net 3.5)网站应用程序使用表单身份validation。 该应用程序具有不同的自定义身份validation服务,使用不同的SSO方法(例如CAS)来validation用户,这些是针对不同的客户端实现的。 现在要求实现基于AD FS的身份validation服务,而不对表单身份validation配置进行核心更改。 我的问题: 如何在.Net 3.5网站中配置SAM 而不是重定向到STS,是否可以将用户名和密码从我的登录页面传递到AD FS代理并获得saml响应? 我的目的是从saml响应中读取自定义属性值(例如,雇员编号),然后继续使用当前的身份validation模块。 可能吗? 此问题基于AD FS和表单身份validation中的讨论,将非常感谢任何帮助。

如何设置有效的内部部署ADFS URI?

我有一个.NET 4.6.2 Windows客户端应用程序,它需要从我们的内部部署ADFS服务器获取身份validation令牌,并使用它来调用ASP.NET核心REST API。 它的客户端名称,id(GUID)和重定向URI已在ADFS中注册。 我正在使用最新的ADAL(v3.13)库来促进身份validation。 我试图获得一个令牌,如ADAL示例代码所示,如​​下所示: AuthenticationContext authenticationContext = new AuthenticationContext(“https:///”, false); var result = authenticationContext.AcquireTokenAsync(, clientId, redirectUri, new PlatformParameters(PromptBehavior.Auto)); AcquireTokenAsync调用返回错误,说: 基于浏览器的身份validation对话框无法完成。 原因:服务器未找到与请求的URI(统一资源标识符)匹配的任何内容。 谁能告诉我: 在https:///或错误中是否引用了“请求的URI”? 我是否需要以某种方式向ADFS注册或 ,如果是,如何? 我需要的任何其他信息才能使其工作? 谢谢! 彼得

从ADFS声明auth

我尝试通过WPF应用程序连接到SharePoint Online实例。 我发现这篇文章描述了一个可能的解决方案,但问题是特定实例前面有一个Active Directory联合身份validation服务(ADFS),我不知道如何获取身份validation令牌。 (我无法为我的应用程序创建证书以对adfs进行身份validation。) 任何已经完成此操作的人都可以通过一些代码片段来支持我吗?