我正在研究联邦身份验证的概念验证。
我已经创建了一个自定义STS(基本上是重写了Windows Identity Foundation Basic STS样本),并设置了依赖方来成功使用它。
PoC的下一阶段是使用Azure ACS允许使用Google/LiveID/etc凭证联合登录,以及自定义STS提供的凭据。
一切正常,除了我不能让Azure ACS接受自定义STS的令牌。
给出的错误有:
ACS20001: An error occurred while processsing a WS-Federation sign-in response
ACS50008: SAML token is invalid
ACS50026: Principal with name 'mysts.mycorp.co.uk' is not a known principal
现在,对我来说,这看起来像是ACS无法从自定义STS解密SAML令牌,但是Azure ACS中安装的唯一解密证书是用于签名和加密自定义STS响应令牌的证书。
我在这里错过了什么?
答案当然就在我眼前……
ACS要求STS的联合元数据中的发行者名称与令牌中的发行者名称完全匹配…
在我的app.config中,我错过了发行者名称的http://
- ACS将缺乏介绍人解释为证书参考,并且正在寻找发行者CN=mysts.mycorp.co.uk
而不是http://mysts.mycorp.co.uk
的证书