2016-09-27 105 views
0

我想要做的事是什么这个库的设计目的是:允许我的.NET代码(当前是测试控制台应用程序)从ADFS中为当前用户检索令牌,并使用令牌进行身份验证并调用REST Web API端点。 This article将其称为ADAL支持的基本流程。我的组织运行Windows Server 2012 SP2 ADFS。控制台应用程序和ADFS都是内部部署的。ADAL .NET到ADFS

任何人都可以指出我如何设置和使用它的完整示例?代码片段很好,但是周围有很多没有解释的内容 - 比如什么是Authentication Context端点?我问我的系统管理员该怎么办?他们给了我一个STS终点,但似乎并不奏效。我认为我需要的不仅仅是一个服务器URL,可能需要传递一个查询字符串或其他扩展名,但我找不到任何解释。事实上,我发现的所有示例和示例都涉及向Azure注册客户端应用程序,而我并未使用Azure。

我的代码目前看起来是这样的:

AuthenticationContext authenticationContext = new AuthenticationContext("https://sts.myorg.co.za"); 
var token = authenticationContext.AcquireToken("http://myservices/service1", "a8cb2a71-da38-4cf4-9023-7799d00e09f6", new Uri("http://TodoListClient")); 

但调用AquireToken失败,异常说This method overload is not supported by 'https://sts.myorg.co.za'

任何帮助或指针赞赏!

谢谢, 彼得

回答

0

你应该通过validateAuthority = false以ADAL的构造。

+0

谢谢,我从[文档](https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/wiki/ADAL-.NET-Q-&-A)看到,这是需要的对于ADFS,它不支持权限验证。你能帮助解决其他ADFS特定问题吗?所有[示例](https://github.com/Azure-Samples/active-directory-dotnet-native-desktop)都有特定于Azure的说明,例如获取和使用我的应用程序的客户端ID。如何用ADFS做到这一点?或者程序不同,如果是这样,我在哪里可以找到文档或示例?谢谢! – Peter