dotnet core 2 API 和守护程序应用程序中的 Azure AD 身份验证
Azure AD Authentication in dotnet core 2 API and daemon application
我正在努力确定使用 Azure Active Directory 对我的 dotnet 核心网站进行身份验证的最佳途径 API。
情况如下:
- 在 Azure Active Directory 中创建的应用程序,Web API 对用户进行身份验证。它有多个关联的应用程序角色。
- 需要向 Web 进行身份验证的守护程序应用程序 API。
解决身份验证情况的最佳方案是什么?很难找到关于如何实际解决这个问题的明确文档。
感谢您的建议和帮助!
您的守护程序应用程序需要使用应用程序权限(成员类型为应用程序的应用程序角色)来调用 API。
您可以在此处查看如何定义它们:https://joonasw.net/view/defining-permissions-and-roles-in-aad.
例如,这是清单中的样子:
{
"appRoles": [
{
"allowedMemberTypes": [
"Application"
],
"displayName": "Read all todo items",
"id": "f8d39977-e31e-460b-b92c-9bef51d14f98",
"isEnabled": true,
"description": "Allow the application to read all todo items as itself.",
"value": "Todo.Read.All"
}
]
}
然后您将应用权限分配给您的守护程序应用。
之后,只需使用守护程序应用程序的客户端凭据进行身份验证即可。
以 ADAL.NET 为例,您将使用 ClientCredential
+ API 的资源 URI 获取令牌。
您可以从 API 的应用程序注册(属性 blade、应用程序 ID URI)中找到 URI。
然后您可以将生成的访问令牌附加到 HTTP 请求,API 可以从 appid
声明中找到调用应用程序的人,并从 roles
声明中找到什么应用程序他们拥有的权限。
我正在努力确定使用 Azure Active Directory 对我的 dotnet 核心网站进行身份验证的最佳途径 API。
情况如下:
- 在 Azure Active Directory 中创建的应用程序,Web API 对用户进行身份验证。它有多个关联的应用程序角色。
- 需要向 Web 进行身份验证的守护程序应用程序 API。
解决身份验证情况的最佳方案是什么?很难找到关于如何实际解决这个问题的明确文档。
感谢您的建议和帮助!
您的守护程序应用程序需要使用应用程序权限(成员类型为应用程序的应用程序角色)来调用 API。 您可以在此处查看如何定义它们:https://joonasw.net/view/defining-permissions-and-roles-in-aad.
例如,这是清单中的样子:
{
"appRoles": [
{
"allowedMemberTypes": [
"Application"
],
"displayName": "Read all todo items",
"id": "f8d39977-e31e-460b-b92c-9bef51d14f98",
"isEnabled": true,
"description": "Allow the application to read all todo items as itself.",
"value": "Todo.Read.All"
}
]
}
然后您将应用权限分配给您的守护程序应用。
之后,只需使用守护程序应用程序的客户端凭据进行身份验证即可。
以 ADAL.NET 为例,您将使用 ClientCredential
+ API 的资源 URI 获取令牌。
您可以从 API 的应用程序注册(属性 blade、应用程序 ID URI)中找到 URI。
然后您可以将生成的访问令牌附加到 HTTP 请求,API 可以从 appid
声明中找到调用应用程序的人,并从 roles
声明中找到什么应用程序他们拥有的权限。