我正在制作Thinktecture v3的演示。其意图是让身份服务器作为自己的网站在Azure网站下运行。
还有其他(多个) Azure网站将使用身份服务器对用户进行身份验证。
基于入门演练(请参阅https://github.com/thinktecture/Thinktecture.IdentityServer.v3/wiki/Getting-started),我的大部分工作都完成了。
我遇到麻烦的地方是证书。
对于演示,我想创建我自己的证书-但我不确定我需要做什么。任何指导都会有帮助。
我对此还有其他问题:
发布于 2015-08-13 01:01:00
扩展到最低特权答案时,我认为“正确”的方法是将它们安装在Azure信任存储中,但在我的例子中,我是从嵌入式资源中提供它们的,如idsrv3示例所示。
以下是一些对我有用的细节。创建自签名证书:
"C:\Program Files (x86)\Windows Kits\8.1\bin\x64\makecert.exe" -r -pe -n "CN=MyAppIdentity" -sky signature MyApp.cer -sv MyApp.pvk
"C:\Program Files (x86)\Windows Kits\8.1\bin\x64\pvk2pfx.exe" -pvk MyApp.pvk -spc MyApp.cer -pfx MyApp.pfx -pi MyPassword -po MyPassword尽管有pvk2pfx.exe文档,但我发现,如果不提供-po,那么pfx将不会保留与pvk和X509Certificate2()密码问题相同的密码。
对于我来说,idsrv3示例证书在蔚蓝上工作得很好,使用了idsrv3示例代码:
var assembly = typeof(Certificate).Assembly;
using (var stream = assembly.GetManifestResourceStream("MyCompany.Identity.Website.Config.idsrv3test.pfx"))
{
return new X509Certificate2(ReadStream(stream), "idsrv3test");
}然而,当我制作我自己的证书时,它在使用上面代码的本地测试中工作得很好,但是在Azure上,我必须添加一些额外的标志才能使它工作。我不一定确定使用这些工具的含义,但它们确实有效,所以这是一个开始:
using (var stream = assembly.GetManifestResourceStream("MyCompany.Identity.Website.Config.MyApp.pfx"))
{
return new X509Certificate2(ReadStream(stream),
"MyPassword",
X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
}https://stackoverflow.com/questions/26654056
复制相似问题