标签: acs

如何获取仅限 Sharepoint 应用程序模型的刷新令牌?

我们有客户要求使用仅共享点应用程序模型对共享点进行在线身份验证。通过向 Microsoft Azure ACS 发布请求来获取访问令牌,” https://accounts.accesscontrol.windows.net/cde6fa59-abb3-4971-be01 -2443c417abcd/tokens/OAuth/2”,使用 postman 工具在请求正文中包含 client_credentials。

访问令牌过期后,如何获取刷新令牌?

从上面的请求中,我们只获得访问令牌。我们是否有一个单独的端点来检索刷新令牌。

请帮忙。在此输入图像描述

oauth acs sharepoint-apps sharepoint-online

5
推荐指数
1
解决办法
680
查看次数

验证SWT令牌REST WCF服务

我目前正在开发一个WPF客户端,它从Windows Azure AppFabric ACS获取SWT令牌.有了这个令牌,我想使用RESTful WCF服务.我使用本教程获取SWT令牌,它完美无缺.在这个MSDN教程的帮助下,我创建了RESTful WCF服务.

问题是令牌可能具有错误的格式,因为令牌验证器无法验证它(IsHMACValid令牌验证器的方法中的错误,swtWithSignatur.Length == 1).

与服务器联系的令牌示例:

{"appliesTo":"http://localhost:7100/Service/Default.aspx","context":null,"created":1326996221,"expires":1326999821,"securityToken":"<?xml version="1.0" encoding="utf-16"?><wsse:BinarySecurityToken wsu:Id="uuid:74ba5667-04ea-4074-9544-aaafb570c648" ValueType="http://schemas.xmlsoap.org/ws/2009/11/swt-token-profile-1.0" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">aHR0cCUzYSUyZiUyZnNjaGVtYXMueG1sc29hcC5vcmclMmZ3cyUyZjIwMDUlMmYwNSUyZmlkZW50aXR5JTJmY2xhaW1zJTJmZW1haWxhZGRyZXNzPXBhdHJpY2suZWNrZXIlNDBnbWFpbC5jb20maHR0cCUzYSUyZiUyZnNjaGVtYXMueG1sc29hcC5vcmclMmZ3cyUyZjIwMDUlMmYwNSUyZmlkZW50aXR5JTJmY2xhaW1zJTJmbmFtZT1QYXRyaWNrK0Vja2VyJmh0dHAlM2ElMmYlMmZzY2hlbWFzLnhtbHNvYXAub3JnJTJmd3MlMmYyMDA1JTJmMDUlMmZpZGVudGl0eSUyZmNsYWltcyUyZm5hbWVpZGVudGlmaWVyPWh0dHBzJTNhJTJmJTJmd3d3Lmdvb2dsZS5jb20lMmZhY2NvdW50cyUyZm84JTJmaWQlM2ZpZCUzZEFJdE9hd2xzM1doNlgwRFJ6d1BsdzU2a1R0WURmLVNNaDZxZFJtQSZodHRwJTNhJTJmJTJmc2NoZW1hcy5taWNyb3NvZnQuY29tJTJmYWNjZXNzY29udHJvbHNlcnZpY2UlMmYyMDEwJTJmMDclMmZjbGFpbXMlMmZpZGVudGl0eXByb3ZpZGVyPUdvb2dsZSZBdWRpZW5jZT1odHRwJTNhJTJmJTJmbG9jYWxob3N0JTNhNzEwMCUyZlNlcnZpY2UlMmZEZWZhdWx0LmFzcHgmRXhwaXJlc09uPTEzMjY5OTk4MjEmSXNzdWVyPWh0dHBzJTNhJTJmJTJmZmhiYXlhenVyZW5zLmFjY2Vzc2NvbnRyb2wud2luZG93cy5uZXQlMmYmSE1BQ1NIQTI1Nj1SUnN3OUJTSlc2ZFJ0MjJyNkNkcjZWZHpyJTJicTF6MHlhV0FMNVdlJTJiJTJmV3owJTNk</wsse:BinarySecurityToken>","tokenType":"http://schemas.xmlsoap.org/ws/2009/11/swt-token-profile-1.0"}

在Windows Azure管理门户中,我选择SWT了我的依赖方应用程序的令牌格式.根据第一个教程,SWT令牌的格式看起来不错,但令牌验证器不会接受它.

PS:如果有人正在尝试第二个教程(如何:使用ACS部署到Windows Azure的REST WCF服务进行身份验证):我认为步骤3中的第11点存在错误,您必须修改该web.config文件(system/webService部分)不存在).配置应如下所示:

<?xml version="1.0"?>
<configuration>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <add name="SWTModule" type="SecurityModule.SWTModule, SecurityModule" />
    </modules>
  </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

c# azure acs

4
推荐指数
1
解决办法
2314
查看次数

Azure ACS并为其上的用户存储信息与本地?

我正在使用Azure ACS并将其合并到我的.NET 4.0网站的SSO策略中.我在规则组页面上看到,可以存储一堆不同的声明并将其传递回RP(例如国家,街道地址,电话等).您似乎还可以返回要创建的任何声明类型.这让我想到了许多与为用户存储信息有关的问题:

  • 在ACS与本地数据库表中存储用户信息(nameidentifier除外)是否有意义?
  • 听起来你可以在其中制作无限制的规则组和规则.那是对的吗?
  • 我会与公司内部的不同公司和用户打交道.为每个公司创建规则组然后为每个用户制定规则是明智的选择吗?
  • 似乎API非常强大,并且可以通过注册页面等自动完成此操作.正确还是不正确?
  • 是否可行并建议对ACS运行查询以返回有关用户的信息(例如,当他们离线时查询他们的电子邮件地址以向他们发送有关某事的消息)
  • 您是否可以从ACS获取批量信息用于报告目的?

azure claims-based-identity acs

3
推荐指数
1
解决办法
1175
查看次数

使用和ADFS实现ACS作为STS

我们正在尝试使用ACS示例4(来自http://claimsid.codeplex.com/)作为ADFS项目的模板.对ADFS身份验证服务的被动请求没有问题.在示例中,联合提供程序是自定义STS,并且示例工作正常.

现在我们希望用自己的ADFS替换自定义联合提供程序(示例中的Adatum FP).

我们现在的设置如下(隐藏名称空间)

  • ServiceClient:控制台应用程序,调用服务
  • 服务:WCF Webservice,返回字符串的Single方法.这是默认[Ordertracking.Services in sample]
  • Services.Authentication:我们的自定义身份提供商.这是默认的[Litware.SimulatedIssuer in sample]
  • ADFS:我们的联邦提供商[FederationProvider.Adatum in example]

ServiceClient想要调用服务,并且从配置中知道它必须从IP(Services.Authentication)获取令牌.然后将令牌传递给ADFS,ADFS验证令牌并将新令牌发送回ServiceClient.客户端new将FP令牌传递给服务,并且服务(作为ADFS上的依赖方)根据ADFS验证令牌,并执行服务方法.

问题:

用ADFS替换示例中的STS似乎打破了集成.我们似乎正在从IP中正确获取令牌,但是在将IP令牌传递给ADFS时遇到了问题.看来我们的Audience Uri有问题,但我们补充道

https://'adfs fqdn'/ adfs/services/Trust/13/IssuedTokenMixedSymmetricBasic256

客户端异常 我们在客户端中使用此InnerException InnerException获取MessageSecurityException {"ID3242:无法对安全令牌进行身份验证或授权."}

[System.ServiceModel.FaultException]: {"ID3242: The security token could not be authenticated or authorized."}
Data: {System.Collections.ListDictionaryInternal}
HelpLink: null
InnerException: null
Message: "ID3242: The security token could not be authenticated or authorized."
Source: null
StackTrace: null
TargetSite: null
Run Code Online (Sandbox Code Playgroud)

ADFS调试日志

<TraceRecord xmlns="http://schemas.microsoft.com/2009/10/IdentityModel/TraceRecord" Severity="Error">
    <Description>Handled exception.</Description>
    <AppDomain>Microsoft.IdentityServer.ServiceHost.exe</AppDomain>
    <Exception>
        <ExceptionType>Microsoft.IdentityModel.Tokens.AudienceUriValidationFailedException, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35</ExceptionType>
        <Message>ID1038: The AudienceRestrictionCondition was not …
Run Code Online (Sandbox Code Playgroud)

.net c# wcf adfs acs

3
推荐指数
1
解决办法
6245
查看次数

使用azure acs和mvc3时,检测用户登录的最佳位置是什么?

我希望能够检测用户何时使用被动ac登录我的应用程序,以便我可以将它们添加到我的数据库中,如果这是第一次使用我的应用程序.现在我正在订阅WSFederationAuthenticationModule.SignedIn,但我觉得我错过了什么.主要是我不确定订阅活动的最佳位置,我让它在PostAuthenticateRequest内部工作,但它有点hacky.有什么建议?

此代码来自global.asax

    public override void Init()
    {

        base.Init();

        PostAuthenticateRequest += (s, e) =>
        {
            try
            {
                FederatedAuthentication.WSFederationAuthenticationModule.SignedIn -= SignedIn;
            }
            finally
            {
                FederatedAuthentication.WSFederationAuthenticationModule.SignedIn += SignedIn;
            }

        };


    }


    private void SignedIn(object sender, EventArgs e)
    {
       //do something
    }
Run Code Online (Sandbox Code Playgroud)

编辑:

现在我将使用一个标志变量来确保我只订阅一次SignedIn.除非有人有任何其他建议:)感谢Sandrino的帮助.这就是我现在所拥有的.

    private static bool isFirstRequest = true;

    public override void Init()
    {


        base.Init();

        PostAuthenticateRequest += (s, e) => { 
        if (isFirstRequest)
        {
             FederatedAuthentication
                 .WSFederationAuthenticationModule.SignedIn += SignedIn;
             isFirstRequest = false;
        }

        };

    }


    private void SignedIn(object sender, EventArgs e)
    {

        //do something …
Run Code Online (Sandbox Code Playgroud)

azure windows-identity acs

3
推荐指数
1
解决办法
1938
查看次数

如何将Azure Active Directory(WAAD)连接到Windows Azure访问控制服务(ACS)?

我已经在使用ACS,并且很乐意将Azure Active Directory设置为身份提供者.

我似乎无法找到从WAAD获取ADFS信息的任何方法,但我猜它还处于早期......

有谁知道这是否可能?

adfs active-directory azure acs azure-active-directory

3
推荐指数
1
解决办法
2544
查看次数

使用自定义STS从访问控制服务注销

我正在使用带有自定义STS的Windows Azure访问控制服务.我可以通过ACS登录我的应用程序,但是我在登出功能方面遇到了麻烦.我在我的应用程序中尝试过这段代码.

        WSFederationAuthenticationModule fam = FederatedAuthentication.WSFederationAuthenticationModule;

        try
        {
            FormsAuthentication.SignOut();
        }
        finally
        {
            fam.SignOut(true);
        }
        Page.Response.Redirect("default.aspx");
Run Code Online (Sandbox Code Playgroud)

但似乎它从ACS注销用户而不是从自定义STS注销.从STS注销我该怎么办?应用(RP),ACS或STS中的问题可能出在哪里?

我认为ACS应该要求自定义STS注销用户,但似乎它没有这样做.我错过了什么?

windows azure acs

3
推荐指数
1
解决办法
3937
查看次数

Azure ACS身份验证是如何安全的?

感谢Gaurav Mantri 在C#中回答我之前提出的Azure ACS设置问题.

但是能有人向我解释,如何以下线路保护

if (!ClaimsPrincipal.Current.Identity.IsAuthenticated)
Run Code Online (Sandbox Code Playgroud)

ACS模式中的客户端很方便中间人,他可能无法登录到Facebook,例如,这被转发到ACS(我假设这部分是安全的),但现在ACS告诉客户回去关于失败的依赖方.

最后一部分是如何获得保障的?什么阻止客户端篡改ACS消息"失败"到"成功"?Asp.Net如何知道如何验证签名并解密消息?

就此而言,它用于加密/签署消息交换的密钥是什么?那在webfarm/Azure环境中如何工作?

asp.net security encryption azure acs

3
推荐指数
1
解决办法
713
查看次数

Azure AKS 客户端密钥已过期 - 如何更改?

我有一个在 Azure (AKS / ACS) 上运行的 Kubernetes 集群。我使用门户创建了集群。使用现已过期的客户端密钥自动创建了 aadClient。

有人可以告诉我如何设置我已经创建的新客户端密码吗?

目前 AKS 无法更新负载均衡器值或挂载持久存储。

谢谢你!

azure acs kubernetes

3
推荐指数
1
解决办法
6070
查看次数

将Azure ACS名称标识符从Live ID与已知用户列表相匹配?

从仅在stackoverflow上发布的问题来看,Azure ACS似乎令许多实施者失望,因为它无法为Windows Live ID用户提供电子邮件地址.这不仅有助于注册新成员,而且还可以对返回成员进行身份验证.如果没有一些明确的流程,成员将身份提供商凭证连接到他们的帐户,那么后者的目的是否仍然可以实现?

ACS确实为Live ID用户提供的"nameidentifier"声明是否可能与已注册成员的正确编码的电子邮件地址相匹配?这是我设想的过程:

  1. 访客在依赖方网站上注册,无需通过ACS 进行身份验证.存储成员记录,包括恰好也在Live ID中注册的电子邮件地址.
  2. 网站哈希使用特定于Live ID的哈希函数提供电子邮件地址,并存储除原始地址之外的用户可能使用Live ID进行身份验证的机会.
  3. 成员返回时没有识别cookie,并选择通过ACS对Live ID凭证进行身份验证.
  4. ACS返回Live ID的nameidentifier声明.
  5. 网站将nameidentifier与步骤2中的哈希地址进行匹配.
  6. 网站登录会员.

有谁知道这样的哈希函数是否可以公开?

干杯

BillVo

azure windows-live-id acs

2
推荐指数
1
解决办法
1655
查看次数