C# 使用AD/ADFS和.NET本机客户端的SSO
我的问题是关于Active Directory(AD)、Active Directory联合服务(ADFS)、单点登录(SSO)和SAML的 我们有一个客户机/服务器应用程序,其规格如下: -客户端:基于.NET4.7.2和C的WPF.NET本机客户端# -服务器:基于JavaSpring的REST服务 一个主要需求是使用AD/ADFS的SSO。 在最好的情况下,应该对用户进行seamlessy/silent身份验证 主要限制是基于Windows Server 2012 R2的AD和ADFS 在下图中,您可以了解我们计划如何使用ADF实现SSOC# 使用AD/ADFS和.NET本机客户端的SSO,c#,single-sign-on,saml,adfs,wif,C#,Single Sign On,Saml,Adfs,Wif,我的问题是关于Active Directory(AD)、Active Directory联合服务(ADFS)、单点登录(SSO)和SAML的 我们有一个客户机/服务器应用程序,其规格如下: -客户端:基于.NET4.7.2和C的WPF.NET本机客户端# -服务器:基于JavaSpring的REST服务 一个主要需求是使用AD/ADFS的SSO。 在最好的情况下,应该对用户进行seamlessy/silent身份验证 主要限制是基于Windows Server 2012 R2的AD和ADFS 在
- .NET本机客户端尝试在没有身份验证的情况下使用REST服务李>
- REST服务将.NET本机客户端重定向到ADFS服务器李>
- .NET本机客户端尝试使用当前登录的用户凭据(Windows登录)获取SAML令牌
- 如果当前用户ist授予ADFS服务器响应和SAML令牌
- NET本机客户端获取SAML令牌并将其传递给REST服务
- 如果接受SAML令牌,则授予用户访问权限
- 如果不接受SAML令牌,则用户应在应用程序中获得登录屏幕
- 我需要WIF吗
- WCF呢
- 我能做什么李>
- 我可以阅读或尝试什么
- 还有其他图书馆吗
- 有什么例子吗
private static void Main(string[] args)
{
string adfs = "https://ad-fs.adlab.local";
string adfsEndpoint = "https://ad-fs.adlab.local/adfs/services/trust/13/usernamemixed";
string appServer = "https://ad-server.adlab.local/sampapp/";
var factory = new WSTrustChannelFactory(new UserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential), adfsEndpoint);
factory.TrustVersion = TrustVersion.WSTrust13;
var channelCredentials = factory.Credentials;
channelCredentials.UserName.UserName = "Administrator@adlab";
channelCredentials.UserName.Password = "SsoLab2019";
channelCredentials.SupportInteractive = false;
RequestSecurityToken rst = new RequestSecurityToken
{
RequestType = RequestTypes.Issue,
AppliesTo = new EndpointReference(appServer),
KeyType = KeyTypes.Bearer
};
var channel = factory.CreateChannel();
try
{
var token = (GenericXmlSecurityToken)channel.Issue(rst);
Console.Write(token.TokenXml.OuterXml);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
不,我必须想办法让SAML令牌静音/无缝。我认为您不需要WIF或WCF。你看过这本指南了吗@MarileeTurscak MSFT我已经检查了你发布的链接。问题是,我们的客户有Windows Server 2012 R2服务器。