标签: acs

在Azure Staging插槽中使用ACS

我目前正在Microsoft Azure中实现一个Web应用程序.我关心的是如何与ACS一起使用临时插槽.

我想将我的应用程序推送到临时插槽,验证它是否正常工作然后进行生产的VIP交换.

除了ACS的配置外,该方法非常简单.由于临时插槽在部署期间获得随机URL,因此需要在之后执行ACS配置.必须使用新的临时插槽URL配置ACS中的WebRole的web.config和依赖方应用程序.

Vittorio Bertocchi在他的博客文章中描述了如何在不重新部署的情况下更新web.config,我想在部署到登台后可以使用脚本更新ACS.

这种方法看起来相当复杂和脆弱; 我正在为我的部署过程寻找一个简单而可靠的解决方案.有没有我错过的东西?

由于ACS配置在生产插槽中非常简单和直接,我一直在考虑在暂存插槽中跳过应用程序的测试,并且只使用它来执行VIP交换到生产(应用程序将在其自己的测试中进行测试"QA"托管服务).

您如何看待这种方法?Azure中的托管服务之间是否存在任何差异?

azure staging acs

9
推荐指数
1
解决办法
504
查看次数

NameIdentifier和IdentityProvider(WIF)声明可用于唯一标识任何用户吗?

考虑使用访问控制服务(ACS)Windows Identity Foundation(WIF)来保护我的WCF数据服务Web API应用程序.

如何使用声明来唯一标识用户?

我的想法是使用标准声明NameIdentifier和WIF声明IdentityProvider的组合来为任何用户创建唯一ID.

这个组合真的稳定而独特吗?IP会突然改变它的IdentityProvider字符串吗?

这里的想法是将两半的连接字符串存储为任何用户的唯一ID.

NameIdentifier声明是否有任何安全隐患?

干杯,

M.

azure claims-based-identity claims wif acs

8
推荐指数
1
解决办法
1025
查看次数

是否可以在不编辑web.config的情况下获得ACS声明?

是否可以在不编辑web.config的情况下为azure ACS设置领域URL,声明类型等?你能以某种方式以编程方式设置这些必需的元素吗?

编辑:具体我想摆脱这个:

<federatedAuthentication>
    <wsFederation passiveRedirectEnabled="true" issuer="https://mynamespace.accesscontrol.windows.net/v2/wsfederation" realm="http://localhost:81/" requireHttps="false" />
</federatedAuthentication>
Run Code Online (Sandbox Code Playgroud)

基本上,我不希望在Web配置中指定域,而是在代码中指定.我已经尝试重写ClaimsAuthenticationManager并将部分注释到与FederatedAuthentication相关的代码中.我的被​​覆盖的身份验证代码被命中,但它不包含任何声明.我假设这是因为FederatedAuthentication是一个中介,它在正常访问被覆盖的ClaimsAuthenticationManager之前执行自己的身份验证.有没有办法以类似的方式覆盖FederatedAuthentication部分?或者是否有信息传递到我可以用来执行我自己的身份验证的重写的身份验证方法?

c# azure claims-based-identity wif acs

8
推荐指数
1
解决办法
3379
查看次数

使用不同的redirect_uri和openid.realm参数从Google OpenID 2.0迁移到OpenID Connect

我正在从Google OpenID 2.0迁移到OpenID Connect.我目前正在使用微软ACS,它使用Googles折旧的OpenID 2.0进行身份验证.这意味着我的领域自动设置为" https://mywebsite.accesscontrol.windows.net:443/v2/openid ".

ACS没有升级计划,所以我已经开始直接与Google OpenID Connect集成.我正在关注Googles迁移文档,该文档说我可以添加一个 openid.realm参数(设置为OpenID 2.0使用的域),然后获取映射现有用户帐户所需的openid_id.此外,它说,redirect_uri 需求是相同openid.realm.我猜出于安全原因.

所以我的问题是我无法将重定向uri设置为与领域相同,因为领域是ACS端点,例如

https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=id.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Fmywebsite.com%3A2018%2F&scope=openid%20profile%20email&state=state&openid.realm=https%3A%2F%2Fmywebsite.accesscontrol.windows.net%3A443%2Fv2%2Fopenid
Run Code Online (Sandbox Code Playgroud)

我试过设置不同但我收到错误

'领域与redirect_uri/origin不匹配.错误代码:5'

Google计划支持这样的案例吗?

有关如何解决这个问题的想法吗?

google-openid oauth-2.0 acs google-oauth openid-connect

8
推荐指数
1
解决办法
937
查看次数

ACS和facebook登录 - > display = touch坏了吗?

我正在使用ACS来对抗Facebook.在本周之前,我可以将display = touch添加到ACS提供的URL的末尾.现在当我这样做时,我得到一个"HTTP 500内部服务器错误".

有任何想法吗?URL类似于:

https://www.facebook.com/dialog/oauth?client_id=myid&redirect_uri=myreturnurl&scope=email&display=touch

我试过m.facebook.com的结果相同.

再次,这工作之前...如果我删除display = touch(或将其更改为display = popup)一切都很好.

我希望这能在WP7应用程序上显示,因此触摸:)

谢谢SR

更新:文档说"显示对话框的显示模式.可以是页面,弹出窗口,iframe,触摸或wap.".Touch和wap返回"HTTP 500内部服务器错误".

facebook oauth touch windows-phone-7 acs

7
推荐指数
1
解决办法
1514
查看次数

客户端WPF应用程序如何通过Azure上的WCF服务进行身份验证?

我目前正在考虑创建一个部署到azure云的应用程序.考虑Azure优于亚马逊的主要原因是访问控制服务.我希望为我的应用程序接受尽可能多的不同凭据类型,尤其是Facebook.

一些用户将使用基于HTML的应用程序,其他用户将使用WPF客户端应用程序.问题是,如何使用他们想要的任何提供程序对客户端进行身份验证,然后与WCF服务进行通信.我猜我需要在我的应用程序中使用Web浏览器组件,或弹出一个外部浏览器(理想情况下支持偏执用户的两个选项),但我不清楚如何将该连接用于WCF服务.

c# wpf wcf azure acs

7
推荐指数
1
解决办法
2034
查看次数

如何在Metro App(C#)中获取ACS令牌

我正在编写一个Metro应用程序,用户应该使用acs进行身份验证.

现在我已经包含了一个nuget包(Windows8.Identity.AccessControl),我可以获取identitprovider列表并登录,但是我如何才能收到令牌(我需要nameidentifier)?

在azure工具包中有一个示例,但用JavaScript编写,我无法弄清楚如何执行此操作:(.

我和acs一起使用WP7应用程序,我没有遇到任何问题.

谢谢你的帮助.:)

c# token acs microsoft-metro

7
推荐指数
1
解决办法
806
查看次数

您是否可以在azure acs中同时拥有客户端证书安全性和服务身份验证

我们有一个WCF服务,它需要azure的acs服务提供的令牌,并且acs配置为使用内置的服务身份进行身份验证.

我们是否也只允许通过客户端证书身份验证访问此服务(因此只有安装了证书的客户端才能调用该服务),还提供用户名和密码以提供给acs服务以获取acs服务提供的令牌建立服务索赔(最终为其他用户)

或者是一个还是另一个?

我们也将最终使用https进行服务,以防万一.

security wcf certificate azure acs

7
推荐指数
1
解决办法
287
查看次数

WIF SessionSecurityToken到期

我正在尝试实现滑动会话到期.我正在使用Windows Azure ACS,.Net 4.5,WIF.当我第一次收到令牌时,我正在做的是将其默认过期时间设置为2小时,并将该令牌写入cookie,如下面的代码所示:

internal void SetSession(ClaimsPrincipal principal)
{
    var sessionToken = new SessionSecurityToken(principal, TimeSpan.FromMinutes(120));
    FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(sessionToken);
    Thread.CurrentPrincipal = principal;
}
Run Code Online (Sandbox Code Playgroud)

在这个时候,如果我检查ValidFrom,并ValidTo在属性sessionToken变量,我得到适当的值,如下面的截图:

在此输入图像描述

现在实现滑动会话到期,我SessionAuthenticationModule_SessionSecurityTokenReceived在我的Global.asax文件中处理事件,如下所示:

    void SessionAuthenticationModule_SessionSecurityTokenReceived(object sender, SessionSecurityTokenReceivedEventArgs e)
    {
        var sessionToken = e.SessionToken;
    }
Run Code Online (Sandbox Code Playgroud)

但是,当我检查令牌的ValidFromValidTo属性时,它不是我在将令牌编写为cookie时设置的内容,如下面的屏幕截图所示:

在此输入图像描述

不知道为什么会这样.任何人都可以解释一下我做错了什么.

更新:

这是我注意到的一件有趣的事情.我实现滑动会话的方式是检查令牌的ValidTo属性并将其与当前日期/时间(UTC)进行比较.如果差异小于5分钟,我将ValidTo时间增加2小时并重新发出cookie,如下面的代码所示:

    void SessionAuthenticationModule_SessionSecurityTokenReceived(object sender, SessionSecurityTokenReceivedEventArgs e)
    {
        var sessionToken = e.SessionToken;
        var currentDateTime = DateTime.UtcNow.Ticks;
        var sessionExpirationDateTime = sessionToken.ValidTo.Ticks;
        if (sessionExpirationDateTime >= currentDateTime)
        {
            var renewTokenWindow …
Run Code Online (Sandbox Code Playgroud)

azure claims-based-identity wif acs .net-4.5

7
推荐指数
1
解决办法
2572
查看次数

身份和访问工具.未在vs2012菜单中列出

我已经安装了Identity and Access Tool版本1.1.0,安装成功后我重新启动了VS2012但仍然无法在项目菜单中看到"Identity and Access".

azure acs

7
推荐指数
2
解决办法
1267
查看次数