我创建了一个新的 ASP.NET Core MVC 6.0 Web 应用程序 >> 并将其定义为使用 Azure AD 进行身份验证,如下所示:-
然后我被要求创建拥有的应用程序,所以我创建了一个名为“ad”的应用程序,如下所示:-
在我的应用程序的应用程序设置中,我得到了这些设置:-
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "*****",
"TenantId": "***",
"ClientId": "***",
"CallbackPath": "/signin-oidc"
},
看来 Visual Studio 为我们做了所有的工作。但是当我访问 Azure 中的“ad”应用程序>>时,我发现该应用程序没有任何客户端凭据,所以这样可以吗,如下所示:-
第二个问题,如果我想定义凭据,似乎我有两个选择;创建客户端 key 或证书。那么它们之间有什么区别呢?如果我们添加客户端凭据,那么我们是否需要相应地更新我们的 asp.net 应用程序?
谢谢
最佳答案
请注意:客户端 key 和证书是 Azure AD 应用程序的密码,可用于对应用程序进行身份验证。
我尝试在我的环境中重现相同的结果,并得到如下结果:
您可以在创建应用程序时创建client_secret
,如下所示:
appsettings.json
文件如下所示:
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "*****",
"TenantId": "***",
"ClientId": "***",
"ClientSecret" : "***"
"CallbackPath": "/signin-oidc"
},
否则,您可以在 Azure 门户中手动生成客户端 key ,如下所示:
有关证书身份验证,请参阅此 MsDoc .
- 为了证明应用程序身份,生成 token 时需要客户端 key 或证书。
- 证书比客户端 key 更安全。
- 证书比客户端 key 更昂贵。
- 访问 API 时,需要客户端 key 。
- 客户端 key 或证书为应用程序提供安全性,阻止匿名访问。
关于azure - 为 Azure AD 的应用程序注册创建客户端凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75334636/